第一篇:嵌入式存储卡总结
嵌入式作业
1、NandFlash和NorFlash的区别 它们是两种并行FLASH
Flash存储器又称闪存,是一种可以在线多次擦除的非易失性存储器,即掉电后数据不会丢失,具体积小、功耗低、抗振性强等优点,为嵌入式系统中典型的两种存储设备。
(1)NOR型Flash:如SST39VF160,可以直接读取芯片内存储器的数据,速度比较快,但价格较高;芯片内执行(XIP,eXecute In Place),应用程序可以直接在Flash上运行,不必再把代码读到系统RAM中;
(2)NAND型Flash:如K9F2808U0C,内部数据以块为单位存储,地址线和数据线共用,使用控制信号选择;极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也快,应用NAND型的困难在于Flash的管理需要特殊的系统接口。(3)二者的差别:
接口差别:NOR型Flash采用的SRAM接口,提供足够的地址引脚来寻址,可以很容易的存取其片内的每一个字节;NAND型Flash使用复杂的I/O口来串行的存取数据,各个产品或厂商的方法可能各不相同,通常是采用8个I/O引脚来传送控制、地址、数据信息。
读写的基本单位:NOR型Flash操作是以“字”为基本单位,而NAND型Flash以“页面”为基本单位,页的大小一般为512字节。
性能比较:NOR型Flash的地址线和数据线是分开的,传输效率很高,程序可以在芯片内部执行,NOR型的读速度比NAND稍快一些;NAND型Flash写入速度比NOR型Flash快很多,因为NAND读写以页为基本操作单位。
容量和成本:NAND型Flash具有较高的单元密度,容量可以做得比较大,加之其生产过程更为简单,价格较低;NOR型Flash占据了容量为1~16MB闪存市场的大部分,而NAND型Flash只是用在8~128MB的产品中,这也说明NOR主要用在代码存储介质中,NAND适合数据存储在CompactFlash、PC Cards、MMC存储卡市场上所占的份额最大。
软件支持: NAND型和NOR型Flash在进行写入和擦除时都需要MTD(Memory Technology Drivers,MTD已集成在Flash芯片内部,它是对Flash进行操作的接口。),这是它们的共同特点;但在NOR型Flash上运行代码不需要任何的软件支持,而在NAND型Flash上进行同样操作时,通常需要驱动程序,即内存技术驱动程序MTD。
2、对比总结外部设备(1)MMC MMC卡(Multimedia Card)翻译成中文为“多媒体卡”。是一种快闪存储器卡标准。在1997年由西门子及SanDisk共同开发,技术基于东芝的NAND快闪记忆技术,因此较早期基于IntelNOR快闪记忆技术的记忆卡,例如CF卡更细小。MMC卡大小与一张邮票差不多,约24mm x 32mm x 1.5mm。
可反复进行读写记录30 万次。驱动电压为2.7-3.6V。MMC卡的的容量多达 2 GB,并且用于几乎所有使用存储卡的设备上。、针脚兼容的MMC卡可以用在所有支持SD卡的设备上。MMC卡原本使用1bit串联界面,但较新的标准则容许同时传送4 bit或8 bits的资料。,但由于MMC卡仍可被兼容SD卡的设备所读取,因此仍有使用。
MMC的发展目标主要是针对数码影像、音乐、手机、PDA、电子书、玩具等产品,尺寸只有32mm x 24mm x 1.4mm,只有1.5克。MMC也是把存贮单元和控制器一同做到了卡上,智能的控制器使得MMC保证兼容性和灵活性。
MMC存贮卡可以分为MMC和SPI两种工作模式,MMC模式是标准的默认模式,具有MMC的全部特性。而SPI模式则是MMC存贮卡可选的第二种模式,这个模式是MMC协议的一个子集,主要用于只需要小数量的卡(通常是1个)和低数据传输率(和MMC协议相比)的系统,这个模式可以把设计花费减到最小,但性能就不如MMC。
MMC被设计作为一种低成本的数据平台和通讯介质,它的接口设计非常简单:只有7针!接口成本低于0.5美元。在接口中,电源供应是3针,而数据操作只用3针的串行总线即可(SPI模式再加上1针用于选择芯片)。
MMC的操作电压为2.7伏到3.6伏,写/读电流只有27mA和23mA,功耗很低。它的读写模式包括流式、多块和单块。最小的数据传送是以块为单位的,缺省的块大小为512bytes。MMC卡也有小尺寸的型号,大约是正常尺寸的一半:24 mm × 18 mm × 1.4这种可选的尺寸称为小尺寸的多媒体卡或者RS-MMC,它是在2004年发布的。RS-MMC卡只是小型号的MMC卡,使用一个简单的机械转接延长它,一个RS-MMC卡能够用在任何MMC(或SD)插槽。RS-MMC卡的容量高达1 GB。
移动式MMC4是老式的RS-MMC的一个翻版,因为它使用了与RS-MMC同样的连接方式和连结标准,但是它的尺寸大约是正常MMC卡的一半。这个标准也定义了secureMMC的规范,它的加密特征类似于Secure Digital或者MagicGateMemory Sticks。
SD卡不是仅有的获得安全数字卡协会认可的快速存储卡标准。其它的安全数字卡协会格式包括miniSD和microSD(在被安全数字卡协会认可以前称为TransFlash)。
这些小型卡能够通过一个转换器(连结电路以及物理连接)在全尺寸的MMC/SD/SDIO插槽上使用。然而,需要注意的是,在SD尺寸上制造输入/输出设备已经非常困难了,在更小的尺寸上制造就变得更加不切实际。
由于SD插槽仍然支持MMC卡,单独发展的更小的MMC变体也与支持SD的设备兼容。与miniSD和microSD(它们与SD有很大不同,制造机械转换器已经很不现实)不同,RS-MMC插槽保持了与全尺寸MMC卡的后向兼容,因为RS-MMC仅仅是短一点儿的MMC卡。关于这些变体的更多信息参见多媒体卡。
大多数,也许是全部的MMC闪存卡都支持SPI模式,尽管每个法定要求但是不支持这种模式将带来严重的兼容性问题。SanDisk、Ritek/Ridata和Kingmax制造的所有闪存卡好像都支持SPI。并且,MMC卡可以认为在电气性能上等同于SD卡,但是它使用一个较薄的包装并且禁止了SD的功能(这样就不再需要支付SD的版权费)。
MMC定义了SPI和1位MMC/SD协议。基本的SPI协议已经作为许多微控制器的一个标准特点存在了许多年。从社会的观点来看,定义一个新的不兼容的SD/MMC协议的理由是值得怀疑的;开发一个不兼容的并且是非必需的新协议可能有利于贸易协会收取授权费用和成员费用,但是它在许多方面增加了硬件和软件的费用。新的协议使用开放的信号转换接头(open collector signalling)以允许在同一总线上使用多个存储卡,但是这实际上在使用更高时钟频率时带来了问题。尽管SPI使用三条共享的信号线外加一个单独的芯片选择每个存储卡,新协议允许多达30块存储卡连结到同样的三条线上(不包含片选),这样做的代价是更加复杂的闪存卡初始化和需要每个卡有一个唯一的序列号用于即插即用;这个特性实际上很少使用并且由于速度和功耗问题在新标准中不建议它的使用。有类似所有权的1位协议被扩展到四位宽(SD和MMC)和八位宽用来支持更高速度,但是计算机产业的其它大部分都在向更高速度更窄的通道转移;标准的SPI能够简单地使用更高数据速度的时钟(如133 MHz)以获得比四位SD更高的性能--没有更高时钟速度的嵌入式处理器无论如何也不能处理更快速度的数据。SD协会放弃了一些旧的一位MMC协议命令的支持并且添加了另外一些与版权保护相关的命令。
(2)SD卡
安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写PDA)和多媒体播放器等。SD卡(Secure Digital Memory Card)是一种基于半导体闪存工艺的存储卡,SD卡具有大容量、高性能、安全等多种特点的多功能存储卡,它比MMC卡多了一个进行数据著作权保护的暗号认证功能(SDMI规格),读写速度比MMC卡要快4倍,达2M/秒。
SD卡的技术是基于Multimedia Card(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。(SD卡外型采用了与MMC卡厚度一样的导轨式设计,以使SD设备可以适合MMC卡。SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。采用了NAND型Flash Memory,基本上和SmartMedia的一样,平均数据传输率能达到2MB/s。
设有SD卡插槽的设备能够使用较簿身的MMC卡,但是标准的SD卡却不能插入到MMC卡插槽。SD卡能够于CF卡和PCMCIA卡上,插上转接器使用;而miniSD卡和microSD卡亦能插上转接器于SD卡插槽使用。一些USB连接器能够插上SD卡,而且一些读卡器亦能够插上SD卡,并由许多连接埠,例如USB、FireWire等存取使用。SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。
SD卡容量目前有3个级别,那就是SD,SDHC和SDXC
SD容量有8MB、16MB、32MB、64MB、128MB、256MB、512MB、1GB、2GB
(所有SD和SDIO卡都必须支持较老的SPI/MMC模式。这个模式支持慢速的四线序列接口(时钟、序列输入,序列输出,芯片选择),兼容于序列终端接口(SPI)和许多微控制器。
MMC模式不支持SD卡的加密特性。从免费的文档里也找不到这些细节。但对于大多数消费者来讲,这无关痛痒,用户只是用来储存不受保护的数据。
SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式(独立指令和数据通道,独有的传输格式),4位SD模式(使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)
SD卡内嵌的数字版权保护方案是按4C提出的可纪录介质内容保护标准(CPRM)所制定。其核心是使用了Cryptomeria密码(也称为“C2”)。这一特性是保密的。DVD-Audio光盘也采用了与CPPM非常相似的加密方案。SD卡(Secure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
SD卡在24mm×32mm×2.1mm的体积内结合了SanDisk快闪记忆卡控制与MLC(Multilevel Cell)技术和Toshiba(东芝)0.16u及0.13u的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏。
SD卡体积小巧,广泛应用在数码相机上,是由日本的松下公司、东芝公司和SanDisk公司共同开发的一种全新的存储卡产品,最大的特点就是通过加密功能,保证数据资料的安全保密。SD卡在外形上同MultiMedia Card卡保持一致,并且兼容MMC卡接口规范。不过注意的是,在某些产品例如手机上,SD卡和MMS卡是不能兼容的。SD 卡在售价方面要高于同容量的MultiMedia Card卡。
SD卡多用于MP3随身听、数码摄像机、数码相机等,其投影面积与MMC卡相同,只是略微厚一点,为2.1mm,但是SD卡的容量大得多,且读写速度也MMC卡快4倍。同时,SD卡的接口与MMC卡是兼容的,支持SD卡的接口大多支持MMC卡。2013年SD卡在数码相机中正在迅速普及,大有成为主流之势。SD卡在2013年的发展很快,已经开始威胁到CF卡的市场分额了。这是由于SD卡的体积要比CF卡小很多,并且SD卡在容量、性能和价格上和CF卡的差距越来越小,而这两年支持SD卡的手机迅速在市场走热,因此,SD卡的迅速成长绝对不是偶然的。最重要的一点就是MMC卡也能和SD卡相兼容,这也正是SD卡迅速走红的原因之一。(3)Memory Stick 最初的Memory Stick提供最多128MB的容量,以及Memory Stick Select容许两张128MB的容量于一张卡内。而含有8GB容量的Memory Stick,已于2006年在拉斯维加斯举行的国际消费电子展中公布,但根据索尼公司的资料,Memory Stick PRO最大可能容量为32GB。一般而言,Memory Stick是用来为手提式装置作为储存媒体的, 以易于移除的方式来被PC存取。例如,索尼的数码相机用Memory Sticks来储存影像档。以Memory Stick读卡器(一般是一个以USB或其他连线方式连接的细小的盒子),用户可不需把索尼数码相机接到电脑而复制图片。有Memory Stick在数码相机的索尼用户、数码音乐播放机,PDA,手提电话,PSP,和其他的装置以及索尼的VAIO个人电脑早已包含Memory Stick插槽。除了从数码相机复制影像档外,用户还可以复制任何类型的档案到记忆棒内或把档案从记忆棒内复制出来。市面上也有PCMCIA、CompactFlash或3.5"存软盘接口的读卡器。兼容性方面,较老的MS卡能够在较新的读取装置上使用,(较短的Memory StickDuo 加上一个适配器后也可以使用)。但是,Memory Stick PRO 和 Memory Stick PRO Duo 通常不能在较老的读取装置上使用。
记忆棒是索尼独家开发的标准,第三方的生产厂家还有SanDisk和Lexar。尽管它是索尼独家支持的标准,记忆棒还是比其它独家支持的快闪存储格式寿命更长。除了外型小巧、具有极高稳定性和版权保护功能以及方便地使用于各种记忆棒系列产品等特点外,记忆棒的优势还在于索尼推出的大量利用该项技术的产品,如DV摄像机、数码相机、VAIO个人电脑、彩色打印机、Walkman、IC录音机、LCD电视等,而PC卡转换器、3.5英寸软盘转换器、并行出口转换器和USB读写器等全线附件使得记忆棒可轻松实现与PC及苹果机的连接。
记忆棒的缺点一是只能在索尼数码相机和PSP中使用,二是容量尚不够大。
尺寸为:50mm x 21.5mm x 2.8mm,重4克。采用精致醒目的蓝色外壳(新的MG为白色),并具有写保护开关。和很多Flash Memory存储卡不同,Memory Stick规范是非公开的,没有什么标准化组织。采用了Sony自己的外型、协议、物理格式和版权保护技术,要使用它的规范就必须和Sony谈判签订许可。Memory Stick也包括了控制器在内,采用10针接口,数据总线为串行,最高频率可达20MHz,电压为2.7伏到3.6伏,电流平均为45mA。可以看出这个规格和差不多同一时间出现的MMC颇为相似。Memory Stick PRO是大容量记忆棒的最终解决方案。大部分老的读取装置也能支持MS PRO。通过Flash ROM的更新,其它较老的读卡器也能兼容MS PRO。MS PRO的传输速率更快,最大支持容量能达到32GB(截至05年6月,最大容量4GB)。所有大于1GB的MS PRO都支持高速传输模式,大容量的记忆棒相比同样容量的SD卡或者CF卡,价格要高的多。
索尼在2005年9月30日宣布,它与SanDisk的合资工厂会推出一种新的记忆棒格式,新的Memory Stick Micro(M2)尺寸仅 15 × 12.5 × 1.2 毫米,理论上支持32 GB。最高传输速度160 MB/秒。特性:
标准传输速度: 最高写速度: 14.4 M比特/秒(1.8 MB/秒);最高读速度: 19.6 M比特/秒(2.5 MB/秒)PRO 传输速度:传输: 160 M比特/秒(20 MB/秒)最小写速度: 15 M比特/秒 Micro 传输速度:传输: 160 M比特/秒(20 MB/秒)外形尺寸:
标准版: 50.0 mm(宽)× 21.5 mm(高)× 2.8 mm(厚)Duo: 31.0 mm(宽)× 20.0 mm(高)× 1.6 mm(厚)Micro: 15.0 mm(高)× 12.5 mm(宽)× 1.2 mm(厚)(4)CompactFlash卡
CompactFlash(CF卡)最初是一种用于便携式电子设备的数据存储设备。作为一种存储设备,它革命性的使用了闪存,于1994年首次由SanDisk公司生产并制定了相关规范。当前,它的物理格式已经被多种设备所采用。从外形上CF卡可以分为两种:CFI型卡以及稍厚一些的CFII型卡。从速度上它可以分为CF卡、高速CF卡(CF+/CF2.0规范)、CF3.0、CF4.0,更快速的CF4.1标准也在2007年被采用。CFII型卡槽主要用于微型硬盘等一些其他的设备。
CF是与出现更早且尺寸更大的PCMCIAI型内存卡竞争的第一批闪存标准之一,它最初是建立在英特尔的或非型闪存的基础上,之后改为使用与非型闪存。CF是最老也是最成功的标准之一,尤其适合专业相机市场。它具有比其他存储方式更长的寿命以及较低的单位容量成本,同时也可以在较小的尺寸上提供较大的容量。
CF卡可以通过适配器直接用于PCMCIA卡插槽,也可以通过读卡器连接到多种常用的端口,如USB、Firewire等。另外,由于它具有较大的尺寸(相对于较晚出现的小型存储卡而言),大多数其他格式的存储卡可以通过适配器在CF卡插槽上使用,其中包括SD卡/MMC卡、MemoryStickDuo、XD卡以及SmartMedia卡等。
闪存型存储设备具有非易失性和固态,所以它比磁盘驱动器更稳固,耗电量仅相当于磁盘驱动器的5%,却仍然具有较快的传输速率(SanDiskExtremeIV型CF卡的写入速度和读取速度可达40MB/s)。它们的工作电压为3.3volts或5volts,可以在不同的系统间转换。闪存型CF卡可以适应极端的温度变化,工业标准的闪存卡可以在-45至85摄氏度的范围内工作。
CF接口已广泛用于PDA、笔记本电脑、数码相机和包括台式机在内的各种设备。
到2007年,CF卡的容量规格从最小的8MB到最大可达64GB。当前已达到256GB,最高读写速度160MB/s。(5)XDpictureCard
XD卡,全称为XDPictureCard,是专为存储数码照片开发的一种存储卡。以袖珍的外形、轻便、小巧等特点成为时下风尚。XD卡具有超大的存储容量和优秀的兼容性,能配合各式读卡器,可以方便的与个人电脑连接。
XD卡是由日本奥林巴斯株式会社和富士有限公司联合推出的一种新型存储卡,有邮票般大小、极其紧凑的外形。外形尺寸为20mm×25mm×1.7mm,总体积只有0.85立方厘米,约为2克重,是目前较为轻便、小巧的数字闪存卡。
XD卡是较为新型的闪存卡,相比于其它闪存卡,它拥有众多的优势特点。
XD卡的理论最大容量可达8GB,具有很大的扩展空间。目前市场上见到的XD卡有512MB、1GB、2GB等不同的容量规格。
XD卡采用单面18针接口,理论上图像存储容量最高可达8GB,2004年富士与奥林巴斯联合推出了存储容量最高达1GB的 xD 卡。而且其读写速度也更高,(读取速率为5MB/S,写入速率为3MB/S左右)可以满足大数据量写入,功耗也更低,XD-Picture存储卡不仅可以同时用于个人电脑适配卡和USB读卡机,使之非常容易与个人电脑连接,而且其还可配合Compact Flash转接适配器,并允许在数码相机里做为Compact Flash卡存储介质使用。虽然XD卡目前的价格有些昂贵,不过由于随着闪存芯片及其它存储卡价格的不断下滑,XD卡的价格将有较大的降价空间。
目前市面上常见到的xD卡有三种类别:标准型、M型、H型
这三种的尺寸都是一样的,不同的地方在于采用的技术以及芯片不同,所以速度也不同。
最早推出的XD卡就是所谓的标准型,这点没有什么争议,标准测试出来的数值大概在读取5M/秒、写入3M/秒。
M型就是采用MLC技术生产的xD卡,这是2005年发表的,为的就是降低售价。然而却碰到与奥林巴斯以及富士一些旧款机型不兼容的问题,而且由于速度慢(MLC最大的缺点),在录像功能上时常出现问题,标准测试出来的数值大概在读取4M/秒、写入2.5M/秒。
H型,就是HIGH-SPEED的意思,读写速度比标准型快2倍、比M型快三倍,名副其实的HIGH SPEED。(6)MMCMobile 为了获得更好的节电性能,MMC协会推出了既能在低电压下工作又能兼容原有RS-MMC的存储卡--MMC moboile,它能在1.65~19.5V和2.7~3.6V电压两种模式下工作,理论传输速度最高可达52MB/s。被称之为双电压RS-MMC。MMC moboile与RS-MMC卡的尺寸大小完全一致,最大的区别在于MMC moboile具有13个金手指。(7)MMC micro 相比microSD卡,MMC micro的体积略大一些,为12mm×14mm×1.1mm。与MMC moboile一样都支持双电压,适用于对尺寸和电池续航能力要求很高的手机以及其他手持便携式设备。传输速度上前面的快(8)MINISD
miniSD卡是SD卡发展而来,性能和传统的SD卡并无大的区别,miniSD卡和SD卡一样,都具有每秒2MB的数据传输速度。与传统SD卡一样,miniSD卡同样具有硬件数据写保护保护开关,可避免储存内容不慎删除的风险。miniSD卡特点是体积小巧(体积只有21.5×20x1.4mm,相比较原来的SD卡减少了40%的体积)、性能稳定,可配合专用转接卡使用,完全兼容标准SD卡插槽。而且miniSD卡采用的是低耗电的设计,比SD卡更适用于移动通信设备,因此主要进攻手机、PDA、掌上电脑的信息终端。
与TF卡相比,miniSD卡就要常见得多了,同样作为一款身材比较苗条的多媒体卡,miniSD卡在手机市场中的使用就要广泛得多了,比如摩托罗拉MPX100、松下X700、BQ S700等品牌的多种手机产品都支持它。同时通过扩展卡它又能作为标准的SD卡使用,非常方便。(9)microSD
Micro SD Card,原名Trans-flash Card(TF卡),2004年正式更名为Micro SD Card,由SanDisk(闪迪)公司发明。在Micro SD面市之前,手机制造商都采用嵌入式记忆体,虽然这类模组容易装设,然而有着无法应实际应潮流需求的困扰--容量被限制住了,无法再有升级空间。Micro SD仿效SIM卡的应用模式,即是同一张卡可以应用在不同型号的行动电话内,让行动电话制造商不用再为插卡式的研发设计而伤脑筋。Micro SD卡足以堪称可移动式的储存IC。Micro SD卡是一种极细小的快闪存储器卡,其格式源自SanDisk创造,原本这种记忆卡称为T-Flash,及后改称为Trans Flash;而重新命名为Micro SD的原因是因为被SD协会(SDA)采立。另一些被SDA采立的记忆卡包括Mini SD和SD卡。其主要应用于移动电话,但因它的体积微小和储存容量的不断提高,已经使用于GPS设备、便携式音乐播放器和一些快闪存储器盘中。它的体积为 15mm x 11mm x1mm,差不多相等于手指甲的大小,是现时最细小的记忆卡。它也能通过SD转接卡来接驳于SD卡插槽中使用。现时MicroSD卡提供128MB、256MB、512MB、1G、2G、4G、8G、16G、32G和64G的容量(MWC 2014 世界移动通信大会期间,SanDisk打破了储存卡最高64GB容量的传统,正式发布了一款容量高达128GB的 Micro SD XC 储存卡。
3、自己手机中的硬件设备
CPU高通骁龙600其中搭载gpu为Adreno320
摄像传感器:背照式2代CMOS
蓝牙4.0
不支持SD卡扩展
第二篇:嵌入式总结
一、嵌入式系统原理与应用课程总结
这个学期我学习了《嵌入式原理与应用》这门课程,虽然这个学期马上就要结束了,对嵌入式的学习也要告一段落了,但是我觉得收获还是很大的。学期开始,我开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,真是茫然无从下手。虽然一个学期的学习时间不是很长,但是我觉得对嵌入式系统也已经有了一个大致的概念。对它的历史发展与今后展望都有了一定的了解。嵌入式技术的掌握是需要一个过程的,对嵌入式技术的全面掌握是有相当难度的。如果要真正掌握的话还是需要一步步积累才能熟练掌握的,所以我们还要自己多加学习,不断地回顾以前学到的知识,也要吸收新的概念与技术,使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的乐趣,更加清楚的认识到自己在软件开发学习上的一些不足之处,并且不断改进以提高自己。
通过这门课程的学习,我了解到了嵌入式系统是一种为特定设备服务,软硬件可裁剪的计算机系统,其英文名称是Embedded System。嵌入式系统的范围很广,特点是形式变化多样、体积小,可以灵活地适应各种设备的需求。嵌入式系统的一些例子:手机、汽车、ATM、数字电视、医疗仪器等等。嵌入式系统本身是一个相对模糊的定义,一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是“用于控制,监视或者辅助操作机器和设备的装备”。一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。嵌入式系统的发展是从电子计算机诞生以来,计算机的发展有两个方向:一个方向是体积大型化、处理能力超强的大型计算机;另一个是向体积小型化,功能多样化的方向发展。嵌入式微控制器,即传统意义上的单片机,是目前嵌入式系统的前身。一般都是8位或者16位。嵌入式微处理器,单片机的发展时间较早,处理能力很低,只能应用在一些相对简单的控制领域。嵌入式微处理器是近几年随着大规模集成电路发展同步发展起来的。与单片机相比,嵌入式微处理器的处理能力更强,主流的嵌入式微处理器都是32位的。嵌入式微处理器在一个芯片上集成了复杂的功能,有的还把常见的外部设备控制器也集成到芯片内部。未来嵌入式系统的发展方向,随着微电子技术的发展和电子制造工艺的进步,嵌入式系统硬件的体积会不断缩小,系统稳定性也在不断增强,可以把更多功能集成到一个芯片上;同时功耗方面也不断降低。随着网络的普及和IPv6技术的应用,IPv6技术主要解决了IPv4的IP地址数目紧缺的现状,越来越多的嵌入式设备也会加入到网络中。典型的嵌入式系统的组成,嵌入式系统包括硬件和软件。硬件包括了嵌入式微处理器和嵌入式微控制器以及一些外围元器件和外部设备;软件包括了嵌入式操作系统和应用软件。嵌入式系统硬件种类繁多,有许多硬件和软件的解决方案,不同嵌入式系统软硬件很难兼容,软件必须修改而硬件必须重新设计才能使用。不仅如此,我们还要对软件硬件都有所了解才可以逐渐有所领悟。软件和硬件都是学习嵌入式系统必不可少的方面。其实我现在仍旧觉得在嵌入式系统这个博大精深的领域,我还有太多太多不懂的地方,需要学习的还有很读。嵌入式软件开发应用广泛而且前景很好,目前正处于人才紧缺的关口,嵌入式技术在未来能够得到更加广泛的应用。学好嵌入式,C语言很重要,所以感觉自己有必要在学习、积累一下这方面的知识。很多东西的学习不死一帆风顺也是比较耗时的,嵌入式也不例外,要想学好还必须下大力气,还必须坚持。这次的课程让我明确了一点:嵌入式开发对于提升我们的系统知识有很大的帮助,尤其是操作系统的知识。嵌入式系统开发对于我们的知识面要求非常的广,且要有一定的深度。,平时上完理论课很少有时间上机进行时间或者隔几天才上机练习,等到上机时一些东西可能遗忘了,比较耗费时间。在课上,有老师在前面演示我们感觉看得懂或感觉没问题,可轮到我们独立完成的时候,因为实际操作的少,跟着问题就来了。有些即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习的方法,一些软件开发需要注意的细节,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,结果什么也学不好。经过这次的课程,我真真确确地感受到了嵌入式在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的水平根本检查不出来是哪里出了错。这时候,老师都会耐心的过来帮助我们一起去解决。在平时我们就需要好好的查阅书籍或者上网搜集相关资料去解决问题。
在了解了基础知识的情况下,我们还同步地进行了上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有很多的指导操作,主要还是要凭借自己去摸索练习。其中的困难可想而知。然而坚持就是胜利,只要坚持做下去。通过这学期的实验课程,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获”。没有付出,何谈回报呢?再者,通过这学期的实验课程,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
其实,我觉得最大的收获不仅仅是我学习到了多少知识,还有学习给我的感悟。首先是心态。一定要有一个积极的心态,独立解决问题的意识,培养扎实基础的认识。不要什么东西都感觉跟简单,很多东西可能是看似简单,就不去做了或者不屑一做,以至于性网上搜搜就可以了,这样很不好。有自己的东西有自己的付出才会有程序运行成功时的喜悦和小自豪,这样也有助于培养自己的兴趣。要时刻牢记态度决定一切。其次是兴趣,感觉学习工作中兴趣很关键,只是一个引发人积极性的问题,有了兴趣就自觉了,效率自然就高了。再次要敢于尝试和挑战。不要安于现成的程序,而且不要害怕失败,在程序调试的过程中这点尤为重要,“发现出问题然后解决问题”是一个积累经验的过程,而且很高效。最后要不懈追求。对于源代码进行不断的完善,要尽可能的实现课题所要求的功能。对于初学者或者开发较少的人来说,大量大写程序还是有必要的,但同时要注意思考,理解其实现的内在意义。还可以自己添加一些有意义的功能来实现。当看到自己编写的程序正常运行时,兴趣也会随之而来,乐此不疲,形成一个良性循环。我相信在以后的学习工作中,我也会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!
第三篇:嵌入式实验总结
如今,嵌入式系统已经在众多电气电子产品上应用,有人预测今后5年发展形势看好。嵌入式是典型的交叉学科,电信、电子、电气、计算机、通信等等都有涉及。
嵌入式理论、实践要求多、门槛高,只有理论、实践同步才能在积累中更好的渐次掌握,这学期我们针对嵌入式入门做了一些实验,通过自己动手和实验箱、实验软件打交道,对嵌入式编程形成初步了解,为今后进一步发展打基础。
实验环境:
武汉创维特公司JXARM9-2410开发板、PC;
Linux、windows操作平台;
DNW、VMwareWorkstation应用软件;
《ARM9嵌入式技术及Linux高级实践教程》、实验参考资料等;
实验内容及目标:
阅读样例程序,进行:
1.熟悉JXARM9-2410开发板、相关应用软件的使用,能成功运行示例实验程序(demo-led);
2.使用VMware,修改demo-led源程序,使开发板上数码管按照demo-led显示方式显示;
3.使用VMware、DNW,修改相关源程序,实现开发板键盘输入的字符在DNW中显示;
4.使用VMware、DNW,修改相关源程序,实现对直流电机转动状态的控制;
观看教学视频,进行交叉编译:
1.加载linux内核;
2.配置、编译linux内核;
3.Windows、linux跨平台文件共享;
4.编译、运行linux程序(helloworld)
5.Linux下编译数码管显示驱动程序;
6.Linux下编译摄像头、GPRS驱动程序;
学习嵌入式是一个漫长的过程,学好它还是需要一番的功夫。通过嵌入式实验由浅入深的动手实践,我渐渐对嵌入式有了具体概念,也逐渐对其产生了兴致和好奇心。
对于初学者,还有一点小建议,不要好高骛远,要脚踏实地.
第四篇:嵌入式 知识点总结
1、嵌入式系统的特点:
(1).嵌入式系统的个性化很强,软件系统和硬件在不同的应用中均有差异;(2).由通用计算机系统发展而来,根据应用对软硬件进行裁剪;(3).高的可靠性,强的实用性;
(4).高的耗电量直接影响系统的成本及电源寿命;
2、什么是嵌入式系统?
嵌入式系统是以应用为中心,以计算机技术为基础,采用可剪裁硬件,适用于对功能,可靠性,成本,体积,功耗等有严格要求的专用计算机系统。
3、采用RISC架构的ARM微处理器一般具有如下特点:(1).体积小、功耗低、成本低、性能高;
(2).支持Thumb(16位)/ARM(3位)双指令集,能很好地兼容8位/16位器件;(3).大量使用寄存器,指令执行速度快;(4).大多数数据操作都在寄存器中完成;(5).寻址方式灵活简单,执行效率高;(6).采用固定长度的指令格式;
4、嵌入式系统开发流程:
选择嵌入式处理器(硬件平台)---选择嵌入式操作系统(软件平台)-----开发嵌入式应用软件-----测试通过---(是)---系统测试-----开发结束
5、嵌入式系统软件设计流程:
代码编程(C/汇编源程序)-----交叉编译(OBJ文件)-----交叉函数库----交叉链接(系统映像文件)---(重定向与下载)---目标板----调试;
6、ARM9E处理器有独立的指令缓存(ICACHE)和数据缓存(DCACHE);
7、ARM9系列处理器共有37个寄存器,其中31个属于通用寄存器,6个为ARM处理器;
8、ARM总共有7种不同的处理器模式,分别是:用户模式,快速中断模式,外部中断模式,管理模式,数据访问中止模式,未定义指令中止模式,系统模式
9、R13一般作为栈指针SP;R14被称为连接寄存器LR,作用:一是在通过BL或者BLX指令调用子程序时存放当前子程序的返回地址;二是在发生异常时用来保存该模式基于PC的返回地址;R15是程序计数器PC,用来保存处理器取值的地址;
10、流水线技术的工作原理:
ARM7采用的是3级流水线:FETCH/DECODE/EXECUTE.此时在EXECUTE阶段要完成大量的工作,包括寄存器和存储器的读写操作、移位操作、ALU操作等,这导致在执行阶段往往需要多个时钟周期,从而成为系统性能的瓶颈。
ARM9采用5级流水线技术,分别是FETCH/DECODE/EXECUTE/MEMORY/WRITE.FETCH阶段和之前功能相同,即从指令存储器中取值;DECODE阶段除了译码之外,还读取寄存器操作数;EXECUTE阶段执行运算,产生ALU运算结果或产生存储器地址;MEMORY阶段进行存储器的读写操作;WRITE阶段将结果写回寄存器;
11、ARM9使用一个统一的TLB来缓存页表信息,TLB主页分为两个部分:主TLB和锁定TLB;
12、ARM总共有7种处理器异常:复位异常、未定义指令异常、软件中断异常、指令预取终止异常、数据访问终止异常、外部访问终止异常、快速中断请求异常
13、(1).复位异常和软件中断异常时,处理器进入管理模式;(2).未定义指令异常时,处理器进入未定义模式;
(3).指令预取终止异常和数据访问终止异常时,处理器进入中止模式;(4).外部中断请求时,处理器进入外部中断模式;(5).快速中断请求时,处理器进入快速中断模式; 14.ARM运行状态:ARM状态和Thumb状态;ARM指令必须在ARM状态下执行,同样,Thumb指令也必须处于Thumb状态下执行。
15.ARM状态和Thumb状态切换可以通过BX指令来实现。
16.ARM指令集有5种形式的位移操作:LSL:逻辑左移;LSR:逻辑右移;ASR:算术右移;ROR:循环右移;RRX:带扩展的循环右移;
17.立即数并不是任意数都是合法的,在立即数寻址中,分配给立即数的空间是12位,8位用于保存一个常数,4位用于保存循环右移基数,而循环右移每次需要移动偶数位,即右移的位数是基数*2;假设常数为A,循环右移位数为N,则最后得到的立即数=A循环右移(N*2位);
18.ARM指令的寻址方式及特点:(1)立即寻址;
(2).寄存器偏移寻址;(3).寄存器偏移寻址;(4).寄存器间接寻址;(5).基址变址寻址;(6).多寄存器寻址;
(7).堆栈寻址:满递增堆栈、空递增堆栈、满递减堆栈、空递减堆栈; 19.LDR和STR LDR指令:从内存读取数据装入寄存器; STR指令:将寄存器中的数据存入内存;
20.CDP:是协处理器数据处理指令:用来执行特定的数据操作; MCR:将ARM寄存器中的数据传输到协处理器寄存器中;
MRC:数据传输方向与MCR指令相反,它将协处理器寄存器中的数据传送到ARM处理器寄存器中;
21.ADR:小范围的地址读取伪指令,主要用来读取基于PC相对偏移的地址或基于寄存器相对偏移的地址;
LDR:大范围伪地址读取伪指令,用于加载32位的立即数或是一个地址值; 22.Thumb跳转指令:
B:是Thumb指令中唯一可以条件执行的指令; BL:带链接的长跳转;
BX:指令在跳转的同时,会选择性的切换指令集; BLX:带链接的跳转,并选择性的切换指令集;
23.MMU:其作用主要有2个方面:一是地址映射,负责将虚拟地址映射成物理地址;二是对地址访问的保护和限制;提供硬件机制的内存访问授权,大多数使用虚拟存储器的系统都使用一种称为分页机制,虚拟地址空间划分成大小相同的一组页,每个页有一个用来标记它的页号,而相应的物理地址空间也被进行划分,单位帧、页和页帧的大小必须相同,虚拟地址被送往MMU,MMU将虚拟地址转化为物理地址。
24.进程调度策略可分为:“抢占式调度”和”非抢占式调度”;
25.在用户空间中,进程是由进程标识符(PID)表示的,一个PID在进程的整个生命期间不会更改,但PID可以在进程进行销毁后重新使用;对用户来说,PID是唯一标识一个进程的数字值;
26.Linux进程还可以通过exec系统调用产生; 27.Linux操作系统有三种进程调度策略:(1).分时调度策略;(2).先到先服务的实时调度策略;(3).时间片轮的实时调度策略; 28.嵌入式文件系统分类:(1).基于Flash的文件系统:
JFFS2文件系统;YAFFS文件系统;Cramfs;Romfs;其他文件系统;
(2).基于RAM的文件系统: RamDisk;Ramfs/Tmpfs(3).网络文件系统NFS 29.Boot Loader 阶段一:1.基本的硬件初始化:a.屏蔽所有中断;b.设置CPU的速度和时钟频率;c.RAM初始化;d.初始化LED;30.ARM-Linux内存管理原理:从两方面入手:一是Linux内核对内存的管理(包括最重要的地址映射、内存空间的分配以及地址访问的限制,即保护机制);二是体系对内存管理方面的特殊性;
31.Linux虚拟内存的实现需要6种机制的支持:地址映射机制、请求页机制、内存分配回收机制、缓存和刷新机制、交换机制和内存共享机制; 32.Linux虚拟内存实现机制间的相互关系:
地址映射机制----请求页机制----内存分配和回收机制---交换机制----缓存和刷新机制
33.进程,又称作任务,是一个动态的执行过程,是处于执行期的程序,进程是系统资源分配的最小单位。
34.在Linux系统中,所有的进程都是fork出来的,它们有个共同的祖先:0号进程;
35.init是内核启动的第一个用户级进程,也是系统的第一个真正的进程,是其他所有进程的父进程,所以init内核线程(或进程)的标识符为1,init有很多重要的任务,负责完成系统的一些初始化设置任务,以及执行系统初始化程序,init程序使用/etc/inittab作为脚本文件来创建系统中的新进程;
36.进程的销毁通过以下三个事件驱动:正常的进程结束、信号、exit函数的调用;
37.进程调度时机可分为:主动调度和被动调度;按细分的话:(1)进程状态转换;(2)当前进程的时间片用完;(3)设备驱动程序;(4)进程从中断、异常以及系统调用返回到用户态; 38.选择进程的依据:policy、priority、counter、rt_priority; 39.内核模块全称为动态可加载内核模块,是Linux内核向外部提供的一个插口,简称为模块; 40.加载模块有两种方法:第一种是通过insmod命令手工将module载入内核;第二种是根据需要载入module;kerneld的主要功能是module载入内核和将它卸载出内核; 41.中断是一个流程,一般经过三个环节:中断相应、中断处理、中断返回;
42.ARM-Linux的系统调用原理:系统调用的过程和中断有类似之处,当CPU遇到自陷指令后,跳转到内核态,操作系统首先保存当前运行的信息,然后根据系统调用号来查找相应的函数去执行,执行完了以后恢复原先保存的运行信息返回,比如通常应用程序所用的fork()函数,它是经过包装的函数,其最终的实现是系统调用;
43.在UNIX系统下有两种方式实现系统调用:通过经过封装的C库或者直接调用;
44.系统调用的过程和中断有类似之处,当CPU遇到自陷指令后,跳转到内核态,操作系统首先保存当前运行的信息,然后根据系统调用号查找相应的函数去执行,执行完了以后恢复原先保存的运行信息返回;通过不同的向量索引可以使CPU立即转入不同的处理程序; 45.init进程是系统所有进程的起点,内核在完成核内参数init=XXX来设置init进程,init进程需要读取/etc/inittab文件作为其行为指针,inittab是以行为为单位的描述性(非执行性)文本; 46.存储文件系统的设备称为block设备(块设备);
47.设备驱动的接口API都是从文件管理器API中继承下来的,所以这些设备API都有open().close().read().write().lseek()和ioctl()等与文件API类似的接口;
48.Linux也使用文件管理器,但是它的文件管理器使用了VFS(虚拟文件系统),正是VFS让Linux能够支持目前多种文件系统。VFS具备访问各种各样的文件系统的能力,也是因为VFS在内部去适应各种不同文件系统的差异,而提供给用户进程的是统一的文件API。49.JFFS2嵌入式文件系统原理:
首先JFFS2是一个日志结构文件系统,包含数据和元数据的节点在闪存上顺序存储。JFFS2定义了三种节点类型:JFFS2_NODETYPE_INODE, JFFS2_NODETYPE_DIRENT,JFFS2_NODETYPE_CLEANMARKER。JFFS2中I节点的信息并没有全部存放在内存,mount操作时,会为节点建立映射表,但是这个映射表并不全部存放在内存中,存放在内存中的节点信息是一个缩小尺寸的结构体。JFFS2使用了多个级别的待回收块队列。JFFS2写平衡策略是在垃圾收集中实现的,垃圾收集的时候会读取系统时间,使用这个系统时间产生一个伪随机数。利用这个伪随机数结合不同的待回收链表选择要进行回收的链表。50.JFFS2克服了JFFS中以下缺点:
(1).使用了基于哈希表的日志节点结构,大大加快了对节点的操作速度;(2).支持数据压缩;
(3).提供了”写平衡”支持;
(4).支持多种节点类型(数据I节点,目录I节点等);(5).提高了对闪存的利用率,降低了内存的消耗;
51.系统调用是操作系统内核和应用程序之间的接口,而设备驱动程序则是操作系统内核和机器硬件之间的接口;
52.Linux支持三类硬件设备:字符设备、块设备、网络设备; 53.Linux内核设备模型的目的和功能:
目的:设备模型提供独立的机制表示设备,并表示其在系统中的拓扑结构,这样使系统具有以下优点:代码重复最小;提供如引用计数这样的统一机制;列举系统中所有设备,观察其状态,查看其连接总线;用树的形式将全部设备结构完整、有效地展现,包括所有总线和内部连接;将设备和对应驱动联系起来,将设备按照类型分类;从树的叶子向根的方向依次遍历,确保以正确顺序关闭各个设备的电源;初衷是为了节能,有助于电源管理,通过建立表示系统设备拓扑关系的树结构,能够在内核中实现智能的电源管理;
功能:将系统中的设备组织成层次结构,然后向用户程序提供内核数据结构信息; 54.同步机制的分类及特点:
(1).同步锁:适用于保持时间段的情况,可以在任何上下文使用,不可以睡眠,任何时候,只能有一个持有者;
(2).信号量:不能用在内核之外,是一种睡眠锁,适用于锁会被长期持有的情况,允许多个持有者;
(3).原子操作:在执行完毕前绝不会被任何其他任何或时间打断,是最小的执行单位,主要用在资源计数上;
(4).完成事件:适用于需要睡眠和唤醒的情景,不会引起资源竞争;
55.表示字符设备的设备文件可以通过”ls-l”命令输出的第一列中的“c”来识别,而块设备则用“b”标识;
56.dev t是一个32位的无符号数,其高12位用来表示主设备号,低20位用来表示次设备号;
Register_chrdev_region()函数和alloc_chrdev_region()函数用于分配设备号,这两个函数最终都会调用_register_chrdev_region()函数来注册一组设备的编号范围,它们的区别是后者是以动态的方式分配的,unregister_chrdev_region()函数则用于释放设备号。Alloc_chrdev_region()函数用于动态申请设备号范围,通过指针参数返回实际分配的起始设备号;
Dev_ti_rdev:对于设备文件而言,此成员包含实际的设备号; Struct cdev *i_cdev:字符设备在内核中是用cdev结构来表示的,此成员是指想cdev结构的指针;
57.I/O接口是微控制器必须具备的最基本外设功能。通常在ARM里,所有I/O都是通用的,称为GPIO(通用输入输出);GPIO接口一般至少会有两个寄存器,即控制寄存器和数据寄存器;
58.同步外设接口是由摩托罗拉公司推出的一种高速的、全双工、同步的串行总线; 59.SPI的工作模式有两种:主模式和从模式;
60.字符设备以字节为单位进行读写,而块设备则以块为单位,块设备的I/O请求都有对应的缓冲区并使用了请求队列对请求进行管理,块设备还支持随机访问,而字符设备只能顺序访问。Linux中每一个块设备里请求都有一个I/O请求队列,每个请求队列都有调度器的插口。
61.Bio是底层对部分块设备的I/O请求描述,其包含了驱动程序执行请求所需的全部信息,通常一个I/O请求对应一个bio。I/O调度器可将联系的bio合并成一个请求。
62.MMC/SD卡驱动结构:a.文件结构;b.块设备驱动;c.MMC/SD核心;d.MMC/SD接口;
第五篇:嵌入式论文总结
嵌入式论文总结
所谓嵌入式系统(Embedded Systems).实际上是“嵌入式计算机系统”的简称,它是相对于通用计算机系统而言的。在有些系统里也有计算机,但是计算机是作为某个专用系统中的一个部件而存在的。像这样“嵌入”到更大、专用的系统中的计算机系统,称之为“嵌入式计算机”、“嵌入式计算机系统”或“嵌入式系统”。
在日常生活中,早已存在许多嵌入式系统的应用,如天天必用的移动电话、带在手腕上的电子表、烹调用的微波炉、办公室里的打印机、汽车里的供油喷射控制系统和防抱死刹车系统(ABS).以及现在流行的个人数字助理(PDA)、数码相机、数码摄像机等等,它们内部都有一个中央处理器CPU。
嵌入式系统无处不在,从家庭中的洗衣机、电冰箱、小汽车,到办公室中的远程会议系统等,都属于可以使用嵌入式技术进行开发和改造的产品。嵌入式系统本身是一个相对模糊的定义,一个手持的MP3和一个P(:104的微型工业控制计算机都可以认为是嵌入式系统。根据英国电气工程师协会(IEE)的定义:嵌入式系统是用来控制或监视机器、装置或工厂等大规模系统的设备。可以看出此定义是扶应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。国内对嵌入式系统的一般定义是:以应用为中心.以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
嵌入式系统在应用数量上远远超过了各种通用计算机。一台通用计算机的外部设备中就包含了5~10个嵌入式微处理器,键盘、硬盘、显示器、Modem、网卡、声卡、打印机、扫描仪、数码相机、集线器等均是由嵌入式处理器进行控制的。在制造工业、过程控制、通信、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面,嵌入式系统都有用武之地。在大型嵌入式应用系统中,为了使嵌入式开发更方便、快捷,需要具备一种稳定、安全的软件模块集合,用来管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等,这样的软件模块集合就是嵌入式操作系统。嵌入式操作系统的引入大大扩展了嵌入式系的功能,方便了应用软件的设计,但同时也占用了嵌入式系统的宝贵资源。一般在比较大型或多任务的应用场合.才考虑使用嵌入式操作系统。
早期的嵌入式系统几乎都用于控制,或多或少都有些实时要求,所以从前“嵌入式操作系统”实际上是“实时操作系统”的代名词。近年来,由于手持式计算机和掌上电脑等设备的出现,也有了许多不带实时要求的嵌入式系统。另一方面,由于C:PU速度的提高,一些原先被认为是“实时”的反应速度现在已经很普遍了,以前需要在“实时操作系统”上才能实现的应用,现在己不难在常规的操作系统上实现。在这样的背景下,“嵌入式操作系统”和“实时操作系统”就成了不同的概念和名词
嵌入式系统是应用于特定环境下、面对专业领域的应用系统,不同于通用计算机系统的多样化和适用性。它与通用计算机系统相比具有以下特点:
(l)嵌入式系统通常是面向特定应用的,一般都有实时要求。嵌入式处理器大多工作在为特定用户群所设计的系统中,通常具有功耗低、体积小、集成度高、成本低等特点,从而使嵌入式系统的设计趋于小型化、专业化,同时移动能力大大增强,与网络的耦合也越来越紧密。
(2)嵌入式系统是将先进的计算机技术、半导体工艺、电子技术和通信网络技术与各领域的具体应用相结合的产物。这一特点决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
(3)嵌入式系统与具体应用有机地结合在一起,其升级换代也与具体产品同步进行。因此,嵌入式系统产品一旦进入市场,一般具有较长的生命周期。
(4)嵌入式系统的硬件和软件都必须高效率地设计,在保证稳定、安全、可靠的基础上,量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能。这样,才能最大限度地降低应用成本。在县体应用中,对处理器的选择决定了产品的市场竞争力。(5)嵌入式系统常常还有减小功耗的要求。这一方面是为了省电,因为嵌入式系统往往以电池供电;另一方面是要减少发热量,因为嵌入式系统中常常没有风扇等排热手段。
(6)可靠性与稳定性对于嵌入式系统有着特别重要的意义,所以即使逻辑上的系统结构相同,在物理组成上也会有所不同。由于对所用元器件(包括接插件、电源等等)的质量和可靠性要求都比较高,所以元器件的平均无故障时间MTBF-(Mean Time Between F-ailure)成为关键性的参数。此外,环境温度也是需要重点考虑的参数。
嵌入式系统以应用为中心,强调体积和功能的可裁剪性,是以完成控制、监视等功能为目标的专用系统。在嵌入式应用系统中.执行任务的软硬件都嵌入在实际的设备环境中,通过专门的I/()接口和外界交换信息。它们执行的任务程序一般不由用户编制。
嵌入式系统主要用于各种信号处理与控制,目前己在国防、国民经济及社会生活各领域普遍应用操作系统OS(Operation Systems)是一组计算机程序的集合,用来有效地控制和管理计算机的硬件和软件资源,即合理地对资源进行调度,并为用户提供方便的应用接口。它为应用ARM9嵌入式系统设支持软件提供运行环境,即为程序开发者提供功能强、使用方便的开发环境。
从资源管理的角度,操作系统主要包含如下功能。1.处理器管理
对处理器进行分配,并对其运行进行有效的控制和管理。在多任务环境下,合理分配由任务共享的处理器,使CPU能满足各程序运行的需要,提高处理器的利用率,并能在恰当的时候收回分配给某任务的处理器。处理器的分配和运行都是以进程为基本单位进行的,因此对处理器的管理可以归结为对进程的管理,包括进程控制、进程同步、进程通信、作业调度和进程调度等。2.存储器管理
存储器管理的主要任务,是为多道程序的运行提供良好的环境,包括内存分配、内存保护、地址映射、内存扩充等。例如,为每道程序分配必要的内存空间,使它们各得其所,且不致因互相重叠而丢失信息;不因某道程序出现异常情况而破坏其他程序的运行;方便用户使用存储器;提高存储器的利用率;能从逻辑上来扩充内存等。3.设备管理
完成用户提出的设备请求,为用户分配l/()设备;提高C.PU和l/()的利用率;提高l/()速度.方便用户使用l/()设备。设备管理包括缓冲管理、设备分配、设备处理、形成虚拟逻辑设备等。4.文件管理
在计算机中,大量的程序和毅据是以文件的形式存放的。文件管理的主要任务就是对系统文件和用户文件进行管理,方便用户的使用,保证文件的安全性。文件管理包括对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等。
5.用户接口
用户与操作系统的接口是用户能方便地使用操作系统的关键所在。用户通常只需以命令形式和系统调用即程序接口形式与系统打交道。使用图形用户接口(GUI).可以将文字、图形和图像集成在一起,用非常容易识别的图标将系统的各种功能、应用程序和文件直观地表示出来,用户可以通过鼠标来获取操作系统的服务。
随着l_inux的迅速发展,嵌入式Linux现在已经有许多版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-I_inux和堪萨斯大学的KURT-I_inux)和一般的嵌入式Linux(如riClinux和Pocket I。lnux等)。其中.RT-Iinux通过把通常的Iinux任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的I。Inux任务又保证强实时性能的目的。另一种常用的嵌入式Linux是riClinux.它是针对没有MMU的处理器而设计的。它不能使用处理器的虚拟内存管理技术,对内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。它专为嵌入式系统做了许多小型化的工作。
嵌入式系统与通用计算机在以下几个方面有比较明显的差别: 1.人机交互界面
嵌入式系统和通用计算机之间的最大区别就在于人机交互界面。嵌入式系统可能根本就不存在键盘、显示器等设备,它所完成的事情也可能只是监视网络情况或者传感器的变化情况,并按照事先规定好的过程及时完成相应的处理任务。2.有限的功能
嵌入式系统的功能在设计时已经定制好,在开发完成投入使用之后就不再变化。系统将反复执行这些预定好的任务,而不像通用计算机那样可以随时运行新任务。虽然嵌入式操作系统可以添加新的任务,删除旧的任务,但这样的变化对嵌入式系统而言是关键性变化,有可能会对整个系统行为产生影响。3.时间关键性和稳定性
嵌入式系统可能要求实时响应,具有严格的时序性。同时,嵌入式系统还要求有非常可靠的稳定性。其工作环境可能非常恶劣,如高温、高压、低温、潮湿等,这就要求在设计时考虑目标系统的工作环境,合理选择硬件和保护措施。软件稳定也是一个重要特征。软件系统需要经过反复测试,达到预先规定的要求才能真正投入使用。
嵌入式软件的开发与传统软件的开发有许多共同点,它继承了许多传统软件的开发习惯。由于嵌入式软件运行于特定昀目标应用环境,而该目标环境只针对特定的应用领域,所以嵌入式软件的功能比较专一,只完成预期要完成的功能。出于对系统成本方面的考虑,应用系统的C:PU、存储器、通信资源都恰到好处。嵌入式软件的开发具有其自身的特点:
在Iinux的发展历程中.Unix和Minix扮演着十分重要的角色。1990年,芬兰人Unus 'ror-valds在赫尔辛基大学接触到Unix;但是当时上机学习要排队等候很长时间,所以I。inus购买了自己的PC机,希望安装一个类似的操作系统。由于Unix的内核代码不容易得到,所以他安装了Minix。Minix是一个基于微内核技术的类似于Unix的操作系统,是Andrew Tanebaum教授利用业余时间开发的用于教学的操作系统。当时.Minix并不是完全免费的,而且Andrew Tane-baum教授不允许别人为Minix再加入其他东西,目的是为了教学的简明扼要。