1-玩转STM32之啥是嵌入式
1.1 嵌入式系统定义
IEEE(美国电气和电子工程师协会)对嵌入式系统的定义:用于控制、监视或者辅助操作机器和设备的装置。国内普遍定义:以应用为中心,以计算机技术为基础,软件和硬件可剪切,适用于应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
1.2 嵌入式系统的特点
嵌入式主要特点有:专用性、体积小、功耗低、成本低、稳定性高、实用性、技术密集、生命周期长、不可垄断性等。
1.3 应用领域
1 新能源 2 智能硬件3 汽车电子4 工业控制 5 互联网/物联网6 仪器仪表/工业自动化7 通信/电信/网络设备等。
1.4 嵌入式系统体系
嵌入式系统的硬件层一般由嵌入式处理器、内存、人机接口、复位/看门狗电路、I/O接口电路组成,它是整个系统运行的基础,通过人机接口和I/O接口实现和外部的通信。
1.4.1 硬件架构
嵌入式系统的硬件架构以嵌入式处理器为核心,由存储器、外围设备、通信模块、电源及复位等必要的辅助接口组成。
1.4.2 软件层
嵌入式系统软件结构一般有3个层面:设备驱动层、OS层、应用层(包括永健抽象层、应用程序)。由于嵌入式系统的多样性,需要根据不同的硬件电路和嵌入式系统应用的特点,对软件部分进行裁剪。
1. 设备驱动层
一般由:板级支持包、驱动程序组成。作用:为上层程序提供外围设备的操作接口,并实现设备的驱动程序。1)板级支持包(board support package)介于主板硬件和嵌入式系统操作系统中驱动程序之间的一层。BSP为上层的驱动程序提供了访问硬件的寄存器函数包。BSP可分为以下三大功能:(1) 系统上电时的硬件初始化。比如:对系统内存、寄存器及设备的中断进行设置。(2) 为嵌入式系统访问硬件驱动程序提供支持。(3) 集成硬件相关的和硬件无关的嵌入式操作系统所需的模块。2) 驱动程序只有安装了驱动程序,嵌入式操作系统才能操作硬件平台,驱动程序控制嵌入式操作系统和硬件之间的交互。驱动程序提供一组嵌入式操作系统可理解的抽象接口函数。
2. OS层
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,是嵌入式系统的重要组成部分。嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统具有通用操作系统的基本特点。在一般情况下,嵌入式开发操作系统可以分为两类,一类是面向控制、通信等领域的嵌入式实时操作系统(RTOS),如VxWorks、PSOS、QNX、mCOS-Ⅲ、RT-Thread、FreeRTOS等;另一类是面向消费电子产品的嵌入式非实时操作系统,如Linux、Android、iOS等,这类产品包括智能手机、机顶盒、电子书等
3. 应用层
1)硬件抽象层
硬件抽象层本质上就是一组对硬件进行操作的API接口,是对硬件功能抽象的结果。硬件抽象层通过API为嵌入式操作系统和应用程序提供服务。但是,在Windows和Linux操作系统下,硬件抽象层的定义是不同的
2)应用程序
应用程序是为完成某项或某几项特定任务而被开发运行于操作系统之上的程序,例如文件操作、图形操作等。在操作系统上编写应用程序一般需要一些应用程序接口。应用程序接口(Application Programming Interface,API)又称为应用编程接口,是软件系统不同组成部分衔接的约定。
1.5 存储系统
1.5.1 嵌入式处理器分类
1、ARM内核微处理器 主流。在移动应用市场占了绝大部分的市场份额。包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore、 ARM11、 Cortex-A系列等。ARM是一个只卖知识产权(IP)的公司,目前获得购买了ARM 核授权许可的大公司很多,包括华为、Qualcomm、Apple、Samsung、ST、NXP、TI等,他们都在ARM 核的基础上进行了设计,形成自己的处理器。2、嵌入式微控制器MCU 单片机芯片内部集成ROM/EPROM、RAM、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash、EEPROM等各种必要功能和外设。嵌入式微控制器目前的品种和数量最多,比较有代表性通用系列包括8051、AVR、PIC、ARM Cortex-M 等。3、数字信号处理器DSP DSP处理器主要专门用于信号处理方面,其在系统结构方面进行了特殊设计,在数字滤波、FFT、频谱分析等密集数学运算领域有大规模的应用。DSP一般用在算法快速执行,做控制比较困难。为了追求高执行效率,不适合运行操作系统,核心代码使用汇编。嵌入式DSP 处理器比较有代表性的产品是Texas Instrument的 TMS320 系列和Analog的ADSP系列。4、嵌入式SoC 用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统。单个芯片完成整个系统的主要逻辑功能。基于FPGA实现的SoPC技术 ,是现在嵌入式系统设计发展趋势之一。1 、Altera公司的FPGA ,交叉使用ARM、MIPS以及Nios等多种内核。2 、Xilinx公司的FPGA,植入PowerPC结构处理器。
1.5.2 存储系统
存储器的主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取,嵌入式系统的运作是围绕着存储在存储器中的指令和数据进行的,存储系统在嵌入式系统中的作用非常重要,存储系统需要根据应用和设计需求选择合适的存储器。
随机存取存储器(RAM,易失性存储器)随机存取是指随机存取存储器(Random Access Memory,RAM)存储单元的内容可按需随意取出或存入,读写速度很快,且速度与存储单元的位置无关。RAM在断电时将丢失其存储内容,RAM主要用于存储短时间使用的程序(1)静态随机存储器(Static Random Access Memory,SRAM) (2)动态随机存取存储器(Dynamic Random Access Memory,DRAM) (3)同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM) 2. 只读存储器(ROM,非易失性存储器) 存储在只读存储器(Read-OnlyMemory,ROM)中的数据可以在掉电后不丢失,ROM主要用于存储程序和一些数据(常量、系数等),存储在其中的数据只能读不能改,需要使用特定的方法擦除和烧录数据。(1)只读存储器(Read-OnlyMemory,ROM)。 ROM内部的资料是在ROM的制造工序中,用特殊的方法烧录进去的,一般不能擦除或修改 (2)电可擦除可编程ROM(Electrically Erasable Programmable ROM,EEPROM)。 一般通过特定的指令来擦除和修改其存储内容,一般以页的形式进行擦除,不必将资料全部擦除。 3. 闪存存储器(Flash存储器,非易失性存储器) 闪存存储器又称Flash存储器,是电可擦除的ROM,在使用上与EEPROM类似。但是二者的寻址方法不同,存储单元的结构也不同,Flash存储器的电路结构较简单,同样容量占芯片面积较小,成本比EEPROM低。Flash存储器分为NOR Flash存储器和NAND Flash存储器。(1) NOR Flash存储器。 有自己的地址线和数据线,可以采用类似于Memory的随机访问方式,但是擦除仍要按块来进行,不能进行先行写操作。NOR Flash存储器可以在芯片内执行,所以NOR Flash存储器可以直接用作执行程序存储器。(2) NAND Flash存储器。 数据、地址、控制线都是共用的,不能线性访问数据,需要软件区控制读取时序,按页读取,按块擦除,不适合芯片内执行。但是,存储密度较高,因此主要用于海量数据存储(4) eMMC(Embedded Multi Media Card)存储器。 采用统一的MMC标准接口,把高密度NAND Flash 存储器及MMC控制器封装在一片BGA芯片中,eMMC存储器具有快速、可升级的特点,主要作固态硬盘使用。1.5.3 I/O接口
嵌入式系统中的1/O接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线,负责处理器和外围设备之间的信息交换。目前嵌入式系统中常用的通用设备接口有GPIO接口(通用可编程接口)、UART接口(通用串行通信接口)、Ethernet接口(以太网接口)、USB接口(通用串行总线接口)、I2C接口(现场总线接口)、I2S接口、SPI接口(串行外围设备接口)、CAN总线接口、Bluetooth接口(蓝牙接口)、Camera Link接口、SD卡接口等。
嵌入式操作系统特点完成某一项或有限项功能。在性能和实时性方面有严格的限制。成本和可靠性通常是影响设计的重要因素。占有资源少、易于连接。系统功能可针对需求进行裁剪、调整,以便满足最终产品的设计要求。
存储芯片 emmc、Nand flash、Nor flash之间有什么区别
随着存储领域的发展,有很多不同的存储介质,今天ICMAX就带大家来分一分emmc、Nand flash、Nor flash之间的区别。
一、定义及区别
emmc:全称为embeded MultiMedia Card,是一种嵌入式非易失性存储器系统,由Nand flash和Nand flash控制器组成,以BGA方式封装在一款chip上。
Nand flash:一种存储数据介质;若要读取其中的数据,需要外接的主控电路。
Nor flash:也是一种存储介质;它的存储空间一般比较小,但它可以不用初始化,可以在其内部运行程序,一般在其存储一些初始化内存的固件代码。
这里主要重点讲的是emmc 和Nand flash 之间的区别,主要区别如下:
(1) 在组成结构上:emmc存储芯片简化了存储器的设计,将NAND Flash芯片和控制芯片以MCP技术封装在一起,省去零组件耗用电路板的面积,同时也让手机厂商或是计算机厂商在设计新产品时的便利性大大提高。而NAND Flash仅仅只是一块存储设备,若要进行数据传输的话,只能通过主机端的控制器来进行操作,两者的结构图如下:
(2) 在功能上:eMMC则在其内部集成了 Flash Controller,包括了协议、擦写均衡、坏块管理、ECC校验、电源管理、时钟管理、数据存取等功能。相比于直接将NAND Flash接入到Host 端,eMMC屏蔽了 NAND Flash 的物理特性,可以减少 Host 端软件的复杂度,让 Host 端专注于上层业务,省去对 NAND Flash 进行特殊的处理。同时,eMMC通过使用Cache、Memory Array 等技术,在读写性能上也比 NAND Flash要好很多。而NAND Flash 是直接接入 Host 端的,Host 端通常需要有 NAND Flash Translation Layer,即 NFTL 或者 NAND Flash 文件系统来做坏块管理、ECC等的功能。另一方面,emmc的读写速度也比NAND Flash的读写速度快,emmc的读写可高达每秒50MB到100MB以上;
二、emmc的初始化和数据通信
emmc与主机之间通信的结构图:
其中包括Card Interface(CMD,DATA,CLK)、Memory core interface、总线接口控制(Card Interface Controller)、电源控制、寄存器组。
图中寄存器组的功能见下表:
CID: 卡身份识别寄存器 128bit,只读, 厂家号,产品号,串号,生产日期。
RCA: 卡地址寄存器,可写的16bit寄存器,存有Device identification模式由host分配的通信地址,host会在代码里面记录这个地址,MMC则存入RCA寄存器,默认值为0x0001。保留0x0000以用来将all device设置为等待CMD7命令状态。
CSD: 卡专有数据寄存器部分可读写128bit,卡容量,最大传输速率,读写操作的最大电流、电压,读写擦出块的最大长度等。
SCR: 卡配置寄存器, 可写的 64bit 是否用Security特性(LINUX不支持),以及数据位宽(1bit或4bit)。
OCR: 卡操作电压寄存器 32位, 只读,每隔0.1V占1位, 第31位卡上电过程是否完成。
(5)Device Identification Mode和初始化
MMC通过发CMD的方式来实现卡的初始化和数据通信
Device Identification Mode包括3个阶段Idle State、Ready State、Identification State。
Idle State下,eMMC Device会进行内部初始化,Host需要持续发送CMD1命令,查询eMMC Device是否已经完成初始化,同时进行工作电压和寻址模式协商:eMMC Device 在接收到这些信息后,会将OCR的内容(MMC出厂就烧录在里面的卡的操作电压值)通过 Response 返回给 Host,其中包含了 eMMC Device 是否完成初始化的标志位、设备工作电压范围 Voltage Range 和存储访问模式 Memory Access Mode 信息。
如果 eMMC Devcie 和 Host 所支持的工作电压和寻址模式不匹配,那么 eMMC Device 会进入Inactive State。
Ready State,MMC完成初始化后,就会进入该阶段。
在该 State 下,Host 会发送 CMD2命令,获取eMMC Device 的CID。
CID,即 Device identification number,用于标识一个 eMMC Device。它包含了 eMMC Device 的制造商、OEM、设备名称、设备序列号、生产年份等信息,每一个 eMMC Device 的 CID 都是唯一的,不会与其他的 eMMC Device 完全相同。
eMMC Device 接收到CMD2后,会将 127 Bits 的CID的内容通过 Response返回给 Host。
Identification State,发送完 CID 后,eMMC Device就会进入该阶段。
Host 会发送参数包含 16 Bits RCA 的CMD3命令,为eMMC Device 分配 RCA。设定完 RCA 后,eMMC Devcie 就完成了 Devcie Identification,进入 Data Transfer Mode。
注:emmc初始化和数据通信的过程,有点类似USB协议,USB控制器去发送请求给USB设备,以IN包和OUT包的形式去建立与USB设备之间的通信,默认状态下,USB设备也是0地址的,与控制器分配设备地址。(感兴趣的可以看一下USB2.0的协议,主要是第8和9章内容)
三、eMMC工作电压和上电过程
根据工作电压的不同,MMC卡可以分为两类:
High Voltage MultiMediaCard,工作电压为3.3V左右。
Dual Voltage MultiMediaCard,工作电压有两种,1.70V~1.95V和2.7V~3.6V,CPU可以根据需要切换
我所使用的eMMC实测工作电压VCC为2.80V~2.96V,VCCQ为1.70V~1.82V。
其中VCC为MMC Controller/Flash Controller的供电电压,VCCQ为Memory和Controller之间I/O的供电。
上电初始化阶段MMC时钟频率为400KHz,需要等电压调整到它要求的VCC时(host去获取OCR中记录的电压值,上面有说),MMC时钟才会调整到更高的正常工作频率。
相关问答
西数新推出的iNAND IX EM132 嵌入式 工业级eMMC SSD有何特点?本周,西部数据(WD)推出了首款面向工业和物联网应用的嵌入式eMMC存储设备,它就是iNANDIXEM132驱动器。其基于该公司的64层BiCS33DTLCNAND闪存打....
NAND Flash和Nor Flash到底有什么区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
单片机到底属不属于 嵌入式 系统? - anthidy 的回答 - 懂得这个问题就如同:发动机到底属不属于车辆?个人是这么理解的:嵌入式系统是一个比较宽泛的概念,许多控制芯片,甚至微机的架构都能构建嵌入式系统;至于...
单片机到底属不属于 嵌入式 系统? - 72XR1XAcm 的回答 - 懂得单片机只是嵌入式的核心部分,通过单片机和必要的外部元件组合起来,完成一定的功能,那才称为嵌入式,比如简单的MP3就是个嵌入式系统,里面是单片机、n...
NANDflash和NORflash的区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
西数发布96层3D NAND UFS 2.1存储,你怎么看?2018年NAND闪存价格下跌,智能手机的存储容量也越来越大,今年皇帝版手机容量提升到了512GB,锤子科技的坚果R1还首发了1TB存储,中低端手机容量也达到了64GB,12...2...
星趣控3980是什么型号?星趣控3980是一款高性能的工业级嵌入式计算平台,基于ARMCortex-A9双核处理器,主频1GHz,内存容量为256MBDDR3,存储容量为1GBNANDFlash。该平台具有丰富的...
Serial flash和nor flash nand flash有什么区别?性能差别:对于Flash的写入速度,其实是写入和擦除的综合速度,NandFlash擦除很简单,而NorFlash需要将所有位全部写0(这里要说明一下,Flash器件写入只能把1写为0...
Kioxia(前东芝)推出的512GB车载eUSF存储器新品,有着怎样的特点?铠侠(Kioxia/前东芝存储器公司)刚刚宣布扩大了其嵌入式USF存储产品的阵容。其基于该公司的BiCS3DTLCNAND闪存、最高容量512GB,能够适应很宽的工作...
iwdh是什么接口?1.iwdh是一个接口。2.iwdh是指"InterfaceforWirelessDisplayandHandover",它是一种用于无线显示和切换的接口标准。它提供...