嵌入式系统设计课件_第1页
嵌入式系统设计课件_第2页
嵌入式系统设计课件_第3页
嵌入式系统设计课件_第4页
嵌入式系统设计课件_第5页
已阅读5页,还剩493页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计

第一课、嵌入式系统概述嵌入式系统的历史与概念无所不在的嵌入式系统普适计算嵌入式系统的基本组成与设计嵌入式热点领域一、什么是嵌入式系统Embeddedsystem个人电脑≠嵌入式系统计算机工业的分类以往计算机分类:大型计算机、中型机、小型机和微计算机目前计算机分类:超级计算机,大型计算机、工作站、微计算机、亚微计算机亚微计算机(嵌入式计算机)是以嵌入式系统的形式隐藏在各种装置、产品和系统中历史电脑用于控制设备或嵌入系统的历史几乎电脑自身的历史一样长计算机控制系统单片机掀起电子化浪潮微处理器高速发展推动了嵌入式系统嵌入式系统的演变8031/8051单片机系统,自行编写程序;68360/386EX控制系统,自己编写简单的操作系统;32位嵌入式处理器+pSoS嵌入式操作系统+tcp/ip协议栈;各种SoC+嵌入式Linux/VxWorks+嵌入式Web设备server以及各种复杂网络协议栈+GUI图形界面+无线模块=现代可移动的网络智能设备后PC技术的时代小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备嵌入式系统是这个后PC时代的擎天之柱1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。嵌入式简单定义嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统狭义定义使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统微处理器专指32位以上的微处理器嵌入式系统的定义以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统

二、无所不在的嵌入式系统嵌入式系统的应用远远超过了各种通用计算机一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器:键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem、网卡、声卡、打印机、扫描仪、数字相机、USB集线器等均是由嵌入式处理器控制的。在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。

经典应用CISCO的路由器华为、中兴的以太网交换机恒基伟业的商务通PDA;摩托罗拉的手机美国宇航局的火星探测器Sony的机器狗AIBO嵌入式系统的应用领域(一)

家用市场机顶盒、掌上电脑、DVD、MP3、数码相机、数字电视、WebTV、网络冰箱、网络空调、家庭网关、智能家用电器、车载导航器系统等通信市场电话交换系统,电缆系统,卫星和全球定位系统(L3D),数据交换设备,移动电话等工业市场制造工厂,污水处理系统,发电站和电力传输系统,自动化工厂,控制系统开发,维护和测试的工具,石油提炼和相关的贮运设施,建筑设备,计算机辅助制造系统,能源控制系统,核电站,机器人系统等商业和金融市场自动柜员机,信用卡系统,售货端系统,安全系统等嵌入式系统的应用领域(二)办公市场电话系统,传真系统,复印机,计时系统,照相机和摄象机运输市场航空、铁路、公路运输系统,燃料服务,航空管理,信令系统,雷达系统,交通指挥系统,停车系统,售票系统,乘客信息系统,检票系统,行李处理系统,应急设备等建筑市场电力供应,备用电源和发电机,火警控制系统,供热和通风系统,电梯和升降系统,车库管理,安保系统,电子门锁系统,楼宇管理系统,闭路电视系统,电子保险柜,警铃等医疗市场心脏除颤器,心脏起搏器,患者信息和监视系统,MN光设备,理疗控制系统,电磁成像系统等军事武器控制嵌入式系统热点应用信息家电车载系统军事工业医疗器械信息家电应用特点市场巨大低成本要求利润空间小竞争激烈人机界面友好网络化车载系统应用特点与汽车工业相配套利润空间较大可靠性要求较高无线通讯要求军事工业应用特点市场垄断性强高利润可靠性要求高安全性要求高成本要求布不高军事工业产品数字化单兵信息装备夜视扫描、全球定位、指挥通信医疗行业应用特点市场广阔,进入门槛较高利润极高三、普适计算Pervasive

Computing

普适计算是指使用小型计算设备、在位置不断移动的过程中或在地理位置分布很广的范围内,在不稳定的通信条件下实现联机事务处理和企业核心数据访问。普适计算是指无所不在的、随时随地可以进行计算的一种方式;主要针对移动设备;普适计算设备可以一直或间断地连接着网络普适计算和无线互联及网络计算比较普适计算是网络计算的自然延伸它使得不仅PC机而且其它小巧的智能设备也可以连接到网络中,从而方便人们即时地获得信息并采取行动人们就可以以一种一致的方式,使用所喜欢的设备(主要是嵌入式系统设备),随时随地获得信息普适计算需要的条件第一,处理器价格越来越便宜,而体积越来越小,使得计算机功能得以广泛应用。可以将计算机部件安装在任何用于监控或采集数据的各种小型计算物理设备上,例如家用电器、数据采集器、跟踪器等。第二,高的网络带宽也确保了网络连接更快、更方便、更便宜,更完善的网络保证了网络连接的质量和效率。第三,现在已被广泛应用的蜂窝技术也有了很大的发展。蜂窝式移动通讯系统的覆盖能力和范围比任何通信系统都要广,且价格低廉。

蜂窝电话不必插在墙壁上,用户在任何地方都能打。通过蜂窝技术的连接,不用物理连线就可以将POS销售机连到局域网上。

普适计算的特性间断连接普适计算的第一个特征是间断连接,是服务器能否不时地同用户(特别是移动用户)保持联系。用户必须能够存取服务器信息,在中断联系的情况下,可以处理这些信息。轻量计算即计算资源相对有限。普适计算主要用于商业用途的数据处理,通常针对移动办公的工作人员和需要经常在旅途中存取公司系统数据的职员,他们需要不受地域和时间限制地获取和处理核心系统上的数据。

普适计算对数据库的要求第一,在普适计算设备上安装一个系统开销低的小型数据库管理系统,用于在本地存取信息。第二,在软件的分布、数据备份和恢复、移动存取等方面,要具备高效、实时的数据复制能力。第三,普适计算也与电子商务紧密联系在一起,那些电子商务应用程序要求能够交流、存取信息。普适计算对于系统开销的要求按普适计算对于系统开销的要求通常可以分为三种类型,分别使用三类操作系统,适用于不同类型的用户,针对不同的市场,有三种不同的数据存储需求。第一种是Windows

CE,它具有典型的前端办公形式应用程序,是用于商务处理的完整操作系统,在小型轻便个人计算机上运行。用户用微型键盘输入数据,整个系统开销大约为2

MB,所以数据库的开销很小

,大约只有1

MB,物理存储量约在500

MB~600

MB之间。

第二种是手持设备(又叫掌上机,Palm),运行生产商特制的掌上机操作系统(Palm

OS)。这种设备比Windows

CE设备更小,通过手写笔进行数据录入,配有一个很小的浏览窗口。通常该设备上数据库可用的内存容量小于1MB,物理存储量在500

MB以下。

第三种设备的代表是汽车的内置计算机部件。这种设备只有100

KB的内存,没有硬盘存储,运行用专用的实时操作系统开发商开发的操作系统。普适计算用途及前景普适计算主要用于商业,通常针对移动办公的工作人员和需要经常存取公司系统信息的职员。数字家庭能通过家庭网关将宽带网络接入家庭,家庭内部的网络可以是无线或有线的。在家庭内部,手持设备、PC或者家用电器通过有线或者无线的方式连接到网络,从而提供了一个无缝、交互和普适计算的环境。四、嵌入式系统的基本组成与设计

嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”交叉学科先进的计算机技术半导体技术电子技术各个行业面向具体应用嵌入式系统的产品特征

硬件:嵌入式处理器的功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等方面嵌入式软件生命周期=嵌入式产品软件以只读存储器为载体不可以随意更换嵌入式处理器

嵌入式系统的核心部件

品种总量已经超过1000多种,流行体系结构有30几个系列,其中8051体系的占有多半嵌入式系统硬件主流32,64位微处理器是目前嵌入式系统的核心主要硬件厂商包括Intel,Motorola,Philip,AMD等每个月都有新产品出现嵌入式计算机内核分类

嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU)

嵌入式微控制器(MicrocontrollerUnit,MCU)

嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)

嵌入式片上系统(SystemOnChip)

嵌入式微处理器(EMPU)

通用计算机中的CPU专门设计的电路板

只保留和嵌入式应用有关的母板功能

增强工作温度、抗电磁干扰、可靠性等方面功能与和工业控制计算机相似嵌入式处理器目前主要有Am186/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等嵌入式微控制器(MCU)又称单片机

以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、EEPROM等各种必要功能和外设微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。

嵌入式微控制器(MCU)代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300等。另外还有许多半通用系列如:支持USB接口的MCU8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及众多专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。

嵌入式DSP处理器(EDSP)DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器(EDSP)有代表性的产品是TexasInstruments的

TMS320系列和Motorola的DSP56000系列。TMS320系列处理器包括用于控制的C2000系列,移动通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已经发展成为DSP56000,DSP56100,DSP56200和DSP56300等几个不同系列的处理器。嵌入式片上系统(SOC)在一个硅片上实现一个复杂的系统

整个嵌入式系统大部分均可集成到一块或几块芯片中去应用系统电路板将变得很简洁

SOC可以分为通用和专用两类。通用系列包括Infineon(Siemens)的TriCore,Motorola的M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等。专用SOC一般专用于某个或某类系统中。有代表性的产品是Philips的SmartXA嵌入式系统软件的特征

(1)软件要求固态化存储

(2)软件代码高质量、高可靠性

(3)系统软件(OS)的高实时性是基本要求

(4)多任务操作系统是知识集成的平台和走向工业标准化道路的基础

嵌入式软件主流VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。Os-9是主要为高科技产品设计的,提高了很好的安全和容错性,并且有很好的升级能力和灵活性。PalmOs,是Palm公司的操作系统,和微软的WindowsCE是PDA操作系统的两大巨头。嵌入式系统软件

1、嵌入式系统设计语言

2、嵌入式操作系统

3、嵌入式系统开发环境实时在线仿真系统ICE高级语言编译器源程序模拟器

设计嵌入式系统的第一步确定指令系统,以指导选择嵌入式内核嵌入式微内核嵌入式微处理器嵌入式控制器嵌入式DSPSOC(在片系统)本章介绍微处理器(ARM),DSP(SHARC)一、计算机体系结构1、冯.诺依曼结构五大部件:ALU,Controller,Memory,Input,Output核心部件:早期是CPU,后来是Memory存储程序(storedprogram):程序以数字形式存在,可以与数据一样被读写指令执行次序:顺序跳转程序计数器ProgramCounter(PC)2、哈佛体系结构程序与数据有单独的存储器PC只能指向程序存储器目前仍然广泛应用指令cache与数据cache适用于实时信号处理(大部分的DSP)大量数据流入计算机数据必须在精确的时间内处理完成3、RISC与CISCCISC:复杂指令系统计算机RISC:精简指令系统计算机RISC一般性能比CISC高4、汇编语言种类1)堆栈型汇编PushaPushbAddPopc2)累加器型汇编LoadaAddbStorec3)通用寄存器型汇编Load$1,ALoad$2,BAdd$3,$1,$2Store$3,C二、ARM处理器属于RISC体系自己不制造VLSI设备,只提供授权ARM:只设计内核的英国公司ARM内核系列ARM720TARM720T特性Features:

32/16-bitRISCarchitecture(ARMv4T)Power-efficientthree-stagepipeline32-bitALUandhigh-performancemultiplier8KByteunifiedcacheMemoryManagementUnit(MMU)Extensivedebugfacilities:

–EmbeddedICE-RTreal-timedebugunit

–JTAGinterfaceunit

–InterfacefordirectconnectiontoEmbeddedTraceMacrocell(ETM)集成ARM内核的芯片ARM720T-CirrusLogic公司EP7312三星:应用于手持设备与网络设备Intel:StrongArm系列&Xscale系列Motorola:手持设备(由68改过来)CirrusLogic:EP7312ARM内核ARM内核被授权给数百家厂商ARM主要应用于无线局域网、3G、手机、手持设备、有线网络通讯应用形式:集成到专用芯片中作控制器ARM体系结构ARM7采用冯.诺依曼体系ARM9采用哈佛体系对汇编程序员透明ARM基本数据类型两种:32位长的字4个8bit的字节地址32位地址长度可以配置为低序或者高序字的最低位放最低位字节(低序)字的最低位放最高位字节(高序)2.1汇编书写模式属于通用寄存器型(GPR)汇编Load-Store结构数据必须装载到寄存器才能运算Load从内存装到寄存器Store从寄存器存储到内存ARM的寄存器16个通用寄存器r0…r15r15同时做PC1个特殊寄存器:当前程序状态寄存器CPSR在进行运算时被自动设置CPSR高四位为NZCVN:负数Z:为0C:进位V:溢出2.2数据运算1)寄存器型指令:addr0,r1,r2r1寄存器的内容加r2寄存器的内容,存到r0算术运算Add加Adc进位加Sub减Sbc进位减Rsb:逆减Rsc:进位逆减Mul:乘Mla:乘且累加逻辑运算And:按位与Orr:按位或EOR:按位异或BIC:位清除移位运算LSL:逻辑左移(添0)LSR:逻辑右移(添0)ASL:算术左移ASR:算术右移ROR:循环右移RRX:带进位位的循环右移比较指令CMP:比较CMN:比较求反TST:按位测试TEQ:按位测试求反移动指令MOV:移动MVN:移动求反内存访问指令LDR:装入STR:存储LDRH:装入半字STRH:存储半字LDRSH:装入半个带符号字LDRB:装入字节STRB:存储字节ADR:设置寄存器为地址2)立即数寻址Addr0,r1,#23)寄存器间接寻址LDRr0,[r1,#4]4)自动变址LDRr0,[r1,#16]!r1的内容加16,然后用这个新值作为地址5)后变址LDRr0,[r1],#16把r1为地址的内存数据载入到r0,然后把r1的值加入16并把新值赋值给r16)例子:x=(a+b)-c;ADRr4,aLDRr0,[r4]ADRr5,bLDRr1,[r5]ADDr3,r0,r1ADRr4,cLDRr2,[r4]SUBr3,r3,r2LDRr4,xSTRr3,[r4]2.3控制流1)B指令分支指令分支目标计算例子B#100表示当前程序计数器的值加上400。(100字长)2)条件码EQ:等于0,Z=1NE:不等于0,Z=0CS:进位置1,C=1CC:进位清除:C=0MI:负数,N=1PL:非负数:N=0VS:溢出,V=1VC:非溢出:V=0HI:无符号大于,C=1且Z=0LS:无符号小于或等于,C=0或Z=1GE:有符号小于或等于,N=VLT:有符号小于,N≠VGT:有符号大于,Z=0且N=VLE:有符号小于或等于,Z=1或N≠V3)例子:If(a>b){X=5;Y=c+d;}ElseX=c-d;ADRr4,aLDRr0,[r4]ADRr4,bLDRr1,[r4]CMPr0,r1 ;a<b?BGEfblock ;ifa>=b,gotofblockMOVr0,#5ADRr4,xSTRr0,[r4]ADRr4,cLDRr0,[r4]ADRr4,dLDRr1,[r4]ADDr0,r0,r1 ;a+bADRr4,ySTRr0,[r4]Bafter ;branchtoendfblock:ADRr4,cLDRr0,[r4]ADRr4,dLDRr1.[r4]SUBr0,r0,r1 ;a-bADRr4,xSTRr0,[r4]after:同样c程序,用汇编可以写成不需要跳转的。如下:ADRr4,aLDRr0,[r4]ADRr4,bLDRr1,[r4]CMPr0,r1 ;a<b?MOVLTr0,#5ADRLTr4,xSTRLTr0,[r4]ADRLTr4,cLDRLTr0,[r4]ADRLTr4,dLDRLTr1,[r4]ADDLTr0,r0,r1 ;a+bADRLTr4,ySTRLTr0,[r4]ADRGEr4,cLDRGEr0,[r4]ADRGEr4,dLDRGEr1.[r4]SUBGEr0,r0,r1 ;a-bADRGEr4,xSTRGEr0,[r4]2.4函数X=a+b;Foo(x);Y=c-d;汇编:BLfoo ;分支链接分支前将当前pc值存在r14中。返回只要MOVr15,r14调用过程必须注意不覆盖r14嵌套调用上述方法不适用于嵌套调用嵌套调用时,将返回地址存堆栈Voidf1(inta){f2(a);}f1 LDRr0,[r13]STRr13!,[r14]STRr13!,[r0]BLf2SUBr13,#4LDRr13!,r15三、SHARC处理器使用哈佛结构的DSP例子:R1=DM(M0,I0),R2=PM(M8,I8); !注释LABEL: R3=R1+R2;每条指令用分号结束,!开始为注释3.1存储器结构SHARC指令48位基本数据字32位地址位32位片上带大量的存储器系列中的21061有1Mbit片上存储器存储器包括PM:程序存储器DM:数据存储器芯片外还能够加更多的存储器数据类型32位IEEE单精度浮点40位IEEE扩展精度浮点32位整数主要设计为浮点密集型运算适用DSP改进的哈佛结构程序存储器可以包含数据与指令数据可以并行取出3.2体系结构整数操作使用R0到R15,16个整数寄存器浮点操作使用F0到F15,16个浮点寄存器所有数据都是40bit,如果32位数据存储时,存在高32位三个数据功能单元一个ALU一个乘法器一个移位器三个模式寄存器算术状态(ASTAT)粘着(STKY)模式1(MODE1)3.3整数运算Rn=Rx+Ry 加Rn=Rx-Ry 减Rn=Rx+Ry+CI 进位加Rn=Rx-Ry+CI-1 借位减Rn=(Rx+Ry)/2 平均COMP(Rx,Ry) 比较Rn=Rx+CI 进位加Rn=Rx+CI-1 借位加Rn=Rx+1 加1Rn=Rx-1 减1Rn=-Rx 求反Rn=ABSRx 绝对值Rn=PASSRx 将Rx拷贝到RnRn=RxandRy逻辑加Rn=RxorRy 逻辑或Rn=RxxorRy 逻辑异或Rn=NotRx 逻辑非Rn=Min(Rx,Ry) 求最小值Rn=Max(Rx,Ry) 求最大值Rn=ClipRxbyRy 在[-Ry,Ry]范围内截取Rx溢出处理溢出导致最大范围的值不是循环3.4浮点运算Fn=Fx+FyFn=Fx-FyFn=ABS(Fx+Fy)Fn=ABS(Fx-Fy)Fn=(Fx+Fy)/2COMP(Fx,Fy)Fn=-FxFn=ABSFxFn=PassFxFn=RNDFx 舍入Fn=ScalbFxbyRy 用Ry换算成Fx的指数Rn=MantFx 提取Fx的尾数Rn=LOGBFx 把Fx的指数换算成整数Rn=FIXFx,Rn=TRUNCFx将浮点转换成整数Rn=FLOATRxbyRy,FLOATRx将整数换成浮点Fn=RECIPSFx 为倒数创建种子Fn=RSQRTSFx 为倒数平方根创建种子Fn=FxCOPYSIGNFy 把Fy的符号拷贝到FxFn=Min(Fx,Fy)Fn=Max(Fx,Fy)Fn=ClipFxbyFy3.5SHARC的移位操作Rn=LSHIFTRxbyRy 逻辑移位Ry位Rn=RnORSHIFTRxbyRy 逻辑移位并逻辑或Rn=ASHIFTRxbyRy 算术移位Rn=RnORASHIFTRxbyRy 算术移位并逻辑或Rn=ROTRxbyRy 循环移位Ry位Rn=BCLRRxbyRy 清Rx中的一位Rn=BSETRxbyRY 设Rx中的一位Rn=BTGLRxbyRy 切换Rx中的1位BTSTRxbyRy 测试Rx中的1位Rn=FDEPRxbyRy 将Rx中的域累计进Rn中Rn=RnORFDEPRxbyRy 使用OR操作累计并符号扩展Rn=FEXTRxbyRy 提取Rx中的域Rn=EXPRx 提取指数域Rn=EXPRx(Ex) 从ALU中提取指数域Rn=LEFTZRx 提取引导0的个数Rn=LEFTORx 提取引导1的个数Rn=FPACKFx 将32位浮点数转换为16位浮点数Rn=FUNPACKRn 将16位浮点数转换为32位浮点数3.6数操作状态位ASTAT中有AZ,AU,AN,AV,AC,AI,MN,MV,MU,MI,SZ,SV,SSSTKY中溢出位AOS,MOS,MVS,MUS,MIS具体含义略3.7内存操作装入存储体系结构提供用来控制装入和存储的特殊寄存器两个数据地址发生器(DAG)一个是数据存储器一个是程序存储器DAG能够象对数组一样进行访问数据3.8DAG寻址模式1)最简单的立即值R0=DM(0x20000000)或者R0=RM(_a)或DM(_a)=R02)绝对地址3)具有更新的后修改模式R0=DM(I3,M1)DM(I2,1)=R14)基址加偏移量寻址R0=DM(M1,I0)如I0=0x20000000,M1=4将0x20000004数据装入R05)循环缓冲区6)反位寻址应用于FFT3.9程序例子X=(a+b)-cR0=DM(_a);R1=DM(_b);R3=R1+R2;R2=DM(_c);R3=R3-R2;DM(_x)=R33.10控制流JUMPfoo跳转到foo三种寻址方式直接寻址间接寻址相对PC寻址条件跳转eg:IFGTJUMPfoo;SHARC分支条件EQ ALU=0LT ALU<0LE ALU<=0AC ALU进位AV ALU溢出MV 乘法器溢出MS 乘法器符号SV 移位器溢出SZ 移位器为0FLAG0_IN 标志0输入FLAG1_IN 标志1输入FLAG2_IN 标志2输入FLAG3_IN 标志3输入TF 位测试LCE 循环计数器期满NOTLCE 循环计数器未期满例子If(a>b)y=c-d;Elsey=c+d;可并行执行的汇编R1=DM(_a);R8=DM(_b);R2=DM(_c);R4=DM(_d);R12=R2+R4,R0=R2-R4;COMP(R8,R1);IFGER0=R12DM(_y)=R0函数调用Callfoo;IFGTCALL(PC,100); !执行pc+100处的函数RTS函数返回嵌套调用需要设计堆栈3.11指令并行性允许几个操作同时执行允许一条指令进行多数据提取以下操作可以在单指令完成:定点累加和加、减或平均浮点乘法和ALU操作乘法与双加减限制:操作数的来源来自不同输入口概述

嵌入式系统的核心部件是各种类型的嵌入式处理器。嵌入式CPU具有处理速度快、I/O功能强、功率损耗低及实时响应快等特点。RISC(ReducedInstructionSetComputer)型处理器且有结构简单、处理速度快和处理功能强等优点,新型的嵌入式系统大多数都采用RISC型处理器作为核。ARM公司的ARM、Hitachi公司的SH、MIPS/LSILogic/IDT/Aldeny/Toshiba公司的MIPS和Motorola公司的M-Core等都是新型嵌入式系统常用的RISC型处理器。ARM嵌入式CPU

ARM架构处理器已在高性能、低功耗、低成本的嵌入式应用领域占据领先地位。ARM公司是嵌入式RISC处理器的知识产权IP供应商它为ARM架构处理器提供了ARM处理器内核(如ARM7TDMI、ARM9TDMI、ARM10TDMI等)和ARM处理器核(ARM710T/720T/740T、ARM920T/922T/940T、ARM926E/966E及ARM1020E等)ARM系列产品表示ARM系列产品很多,以ARM7系列为例,其内核ARM7TDMI表示为:·ARM7:

ARM系列具有32位整数运算核·T:内含16位压缩指令集Thumb·D:支持片内Debug调试,·M:采用增强型乘法器(Multiplier),·I:内含嵌入式ICE宏单元另外,各产品的后缀提供了各种形式与功能的选择:·-S:可综合的软核Softcore·-E:具有DSP的功能·-J:Jazeller,允许直接执行Java字节码ARM架构ARM架构自诞生至今,已经发生了很大的演变,至今已定义5种不同的版本V1版架构V2版架构V3版架构V4版架构V5版架构V1版架构该版架构只在原型机ARM1出现过,其基本性能:基本的数据处理指令(无乘法)字节、半字和字的LOAD/STORE指令转移指令,包括子程序调用及链接指令软件中断指令寻址空间:64M字节(226)V2版架构该版架构对V1版进行了扩展,如ARM2与ARM3(V2a版)架构,增加了以下功能:乘法和乘加指令支持协处理器操作指令快速中断模式SWP/SWPB的最基本存储器与寄存器交换指令寻址空间:64M字节V3版架构把寻址空间增至32位(4G字节),增加了当前程序状态寄存器CPSR(CurrentProgramStatusRegister)和程序状态保存寄存器SPSR(SavedProgramStatusRegister)以便于异常(Exception)的处理。增加了中止(Abort)和未定义二种处理器模式。ARM6就采用该版架构。指令集变化如下:增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器增加了从异常处理返回的指令功能。V4版架构V4版架构是目前应用最广的ARM体系结构,对V3版架构进行了进一步扩充,有的还引进了16位的Thumb指令集,使ARM使用更加灵活。ARM7、ARM8、ARM9和StrongARM都采用该版架构。指令集中增加了以下功能:符号化和非符号化半字及符号化字节的存/取指令增加了16位Thumb指令集完善了软件中断SWI指令的功能处理器系统模式引进特权方式时使用用户寄存器操作把一些未使用的指令空间捕获为未定义指令V5版架构这是最近推出ARM架构,在V4版基本上增加了一些新的指令,ARM10和XScale都采用该版架构,这些新增指令有:带有链接和交换的转移BLX指令计数前导零CLZ指令BRK中断指令增加了信号处理指令(V5TE版)为协处理器增加更多可选择的指令StrongARM架构处理器

StrongARM是Intel公司为手持式消费类电子设备和移动计算与通信的嵌入式处理器。采用StrongARM架构的处理器有:SA-1:StrongARM处理器内核SA-110:StrongARM处理器核SA-1100:通用处理器MPUSA-1110:通用处理器MPUIXP1200:采用StrongARM核的网络处理器StrongARM架构主要特性StrongARM处理器核内核:SA-1、指令快存I-Cache:16K字节、数据快存D-Cache:8K字节、微小数据Cache:512字节、存储器管理单元IMMU和DMMU、读和写缓冲器存储器控制模块支持各种ROM、FLASH(闪存)、DRAM和SRAM、支持PCMCIA系统控制模块通用可中断GPIO:28根、看门狗定时计数器、间隔定时器、电源管理控制器、中断控制器、片上振荡器:2个(含锁相环)外围控制模块LCD液晶驱动控制器、串行接口UART、红外接口irDA、数字单频Codec接口目前,大量应用的是改进型SA-1110处理器。在SA-1100处理器基础上,增加了以下功能:DMA控制器:6通道,以提高LCD显示和I/O传送的效率实时时钟RTC串行外围接口SPISA-1110处理器已取代了SA-1100处理器,与其配套的SA-1111芯片,扩展了PS/2键盘与鼠标接口、USB的主机接口以及PCMCIA/CF接口。XScale架构处理器

XScale架构处理器是新一代为无线手持式应用产品开发的嵌入式处理器,是PCA开发式平台架构中的应用子系统与通信子系统中的嵌入式处理器XScale微架构处理器的时钟可以达1GHz、功耗1.6W,并能达到1200MIPS。IOP310、IOP321、PXA210、PXA25X、PXA26X、PXA27XXScale系统结构图

XScale架构特点(一)采用7/8级超级流水线动态跳转预测、分支目标缓冲器BTB(BranchTargetBaffer)支持多媒体处理技术新增乘/加器MAC、40位累加器、兼容ARMV5TE指令、特定DSP型协处理器CP0指令快存(I-Cache):32K字节数据快存(D-Cache):32K字节可以重构为28K字节片内RAM微小数据快存(Mini-DCache):2K字节指令存储器管理单元IMMU32路变换后备缓冲器TLB(快表)动态电源管理XScale架构特点(二)数据存储器管理单元DMMU32路变换后备缓冲器TLB(快表)中断控制器总线控制器1G字节/秒、ECC协议调试(Debug)接口:性能监控:协处理器CP14、硬件断点、硬件观察点、BKPT指令、异常中断、JTAG接口、迹缓冲器第二章、嵌入式体系结构嵌入式指令集嵌入式CPU存储器IO设计SOC储器的几个相关性能指数容量存储器容量用S=W×l×m表示,W为存储器字长,l为存储器字数,m则为存储器体数速度访问时间(accesstime)Ta:从存储器接到读请求到所读的字传送到数据总线上的时间间隔。存储周期Tm:连续两次访问存储器之间所必需的最小时间间隔。一般Tm>Ta。存储带宽Bm:存储器被连续访问时所提供的数据传输速流,单位是位(或字节)/秒价格存储器的价格通常用单位字节价格来表示。若总容量为S的存储器的总价格为C,则单位字节价格c=C/S。存储器设计目标高速度大容量低价格设计目标实现依据存储器的工艺实现技术有了突飞猛进的发展,高速、大容量、低价的存储器件以惊人的速度生产出来。所有程序都具有这样的行为特性:空间和时间局部性。90/10原理:一个程序他的90%的时间都只花在10%的代码上根据以上局部性原则(ThePrincipleofLocality),我们就可以利用各种不同的价格、速度、容量的存储器的组合设计出一个多层(multiplelevel)存储系统存储器层次结构在嵌入式系统中所用到的存储器主要有:触发器(Flip-FlopsandLatches)、寄存器(RegisterFiles)、静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)、闪速存储器(flash)、磁盘(MagneticDisk)等这些存储器的速度,为触发器最快,寄存器次之,SRAM再次,DRAM较慢,然后是flash,磁盘最慢。而价格正好反之,磁盘的每兆字节价格最便宜,触发器最贵。存储器层次结构图存储器层次结构的特性第一、就是数据的包含性,即上层的数据,在下一层中都能找到。第二、下层存储器将自己的地址映射到高层的存储器。存储器层次结构几个基本概念块(Block):相邻两级间的信息交换单位。命中(Hit):相邻两层存储层次中,访问地址可以直接在高层存储器中访问到。命中时间(hittime):访问高层存储器所需的时间,其中包括本次访问是命中还是失效的判定时间。命中率(HitRate):相邻两层存储层次中,访问地址可以直接在高层存储器中访问到的概率。失效率(MissRate):等于1-命中率。失效损失(misspenalty):用低层存储器中相应的块替换高层存储器中的块,并将该块传送到请求访问的设备(通常是CPU)的时间。存储器层次结构的性能评价存储器层次结构的性能参数是平均存储访问时间(averagememory-accesstime)平均存储访问时间=命中时间+失效率×失效损失失效率与块大小之间的关系当块大小过小时,失效率很高当高层存储器容量保持不变时,失效率有一最低限值,此时块大小的变化对失效率没有影响当块大小超过某定值后,(这一定值又称为污染点),失效率呈现随块大小增加而上升的趋势CACHE简介

虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,特别是与CPU/内存之间的存取速度有关。若CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力普遍在CPU与常规主存储器之间增设了一级或两级高速小容量存储器,称之为高速缓冲存储器(Cache)CACHE的地址映射方式全相联Cache在全相联Cache中,存储的块与块之间,以及存储顺序或保存的存储器地址之间没有直接的关系。直接映像Cache直接映像Cache不同于全相联Cache,地址仅需比较一次。在直接映像Cache中,由于每个主存储器的块在Cache中仅存在一个位置,因而把地址的比较次数减少为一次。组相联Cache组相联Cache是介于全相联Cache和直接映像Cache之间的一种结构。这种类型的Cache使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率Cache与DRAM存取的一致性控制CACHE读取贯穿读出式(LookThrough)旁路读出式(LookAsideCACHE写写通式(WriteThrough)回写式(CopyBack)主存简介主存是非常重要存储和记忆部件,用以存放数据(包括原始数据、中间结果和最终结果)和程序。主存大都采用DRAM芯片实现一般说来,容量越大速度越快的存储器就能给系统带来越高的性能。与微机相比,嵌入式系统的主存一般比较小。同时在有些嵌入式系统中也有用Flash存储器作为主存使用的情况。DRAM与SRAM主要差别对DRAM芯片来说,在读出数据之后还需重新写回数据,因而它的访问延迟和存储周期不同。SRAM的访问时间与存储周期则没有差别;为防止信息丢失,DRAM需要定期刷新每个存储单元,SRAM却不需要;DRAM设计强调容量,而对SRAM设计来说,容量和速度同样重要。就可以比较的存储器设计技术而言,DRAM的容量大概为SRAM的16倍,而SRAM的存储周期比DRAM的约快8~16倍地址转换和存储保护用户编程时使用的地址称为逻辑地址(相对地址)。把程序在内存种的实际地址称为物理地址(绝对地址)。为了保证程序的正确运行必须把程序和数据的逻辑地址转换为物理地址,这一工作称为地址转换或重定位静态重定位在作业装入时由作业装入程序实现地址转换动态重定位在程序执行时实现地址转换虚拟存储器虚拟存储器(VirtualMemory)技术是一种通过硬件和软件的综合来扩大用户可用存储空间的技术虚拟存储器主要是为了满足应用程序对高速大容量主存的需求虚拟存储器实现的重定位是由一个地址映象表机构完成虚拟存储器还提供存储共享和保护机制闪速存储器(FLASH)相对传统的EEPROM芯片,这种芯片可以用电气的方法快速地擦写由于快擦写存储器不需要存储电容器,故其集成度更高,制造成本低于DRAM它使用方便,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以快擦写存储器技术发展最迅速NOR技术NOR技术(亦称为Linear技术)闪速存储器是最早出现的FlashMemory,目前仍是多数供应商支持的技术架构。它源于传统的EPROM器件,与其它FlashMemory技术相比,具有可靠性高、随机读取速度快的优势,在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。NOR技术FlashMemory具有以下特点:(程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行,而无需先将代码下载至RAM中再执行;可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作。由于NOR技术FlashMemory的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。NAND技术NAND技术FlashMemory具有以下特点:以页为单位进行读和编程操作,1页为256或512B(字节);以块为单位进行擦除操作,1块为4K、8K或16KB。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。芯片尺寸小,引脚少,是位成本(bitcost)最低的固态存储器,将很快突破每兆字节1美元的价格限制。芯片包含有失效块,其数目最大可达到3~35块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。Samsung公司在1999年底开发出世界上第一颗1GbNAND技术闪速存储器。基于NAND的存储器可以取代硬盘或其他块设备。AND技术AND技术是Hitachi公司的专利技术。AND技术与NAND一样采用“大多数完好的存储器”概念Hitachi和Mitsubishi公司采用0.18μm的制造工艺,并结合MLC技术,生产出芯片尺寸更小、存储容量更大、功耗更低的512Mb-ANDFlashMemory,再利用双密度封装技术DDP(DoubleDensityPackageTechnology),将2片512Mb芯片叠加在1片TSOP48的封装内,形成一片1Gb芯片。HN29V51211T具有突出的低功耗特性,读电流为2mA,待机电流仅为1μA由于其内部存在与块大小一致的内部RAM缓冲区,使得AND技术不像其他采用MLC的闪速存储器技术那样写入性能严重下降。由EEPROM派生的闪速存储器EEPROM具有很高的灵活性,可以单字节读写(不需要擦除,可直接改写数据),但存储密度小,单位成本高。部分制造商生产出另一类以EEPROM做闪速存储阵列的FlashMemory,如ATMEL、SST的小扇区结构闪速存储器(SmallSectorFlashMemory)和ATMEL的海量存储器(Data-FlashMemory)。这类器件具有EEPROM与NOR技术FlashMemory二者折衷的性能特点:读写的灵活性逊于EEPROM,不能直接改写数据。与EEPROM比较,具有明显的成本优势。存储密度比EEPROM大,但比NOR技术FlashMemory小第二章、嵌入式体系结构嵌入式指令集嵌入式CPU存储器IO设计SOC总线

总线的带宽总线的带宽指的是一定时间内总线上可传送的数据量,即我们常说的每秒钟传送多少MB的最大稳态数据传输率。与总线带宽密切相关的两个概念是总线的位宽和总线的工作时钟频率。总线的位宽总线的位宽指的是总线能同时传送的数据位数,即我们常说的32位、64位等总线宽度的概念。总线的位宽越宽则总线每秒数据传输率越大,也即总线带宽越宽。总线的工作时钟频率总线的工作时钟频率以MHz为单位,工作频率越高则总线工作速度越快,也即总线带宽越宽。ISAIBM公司于1981年推出的基于8位机PC/XT的总线,称为PC总线为了能够合理地开发外插接口卡,由Intel公司,IEEE和EISA集团联合开发了与IBM/AT原装机总线意义相近的ISA总线ISA总线有98只引脚。其中62线的一段基于8位的PC总线,可以独立使用,连接8位的扩展卡,而62线与36线相加后就扩展成标准的16位ISA,连接16位的扩展卡PCI1991年下半年,Intel公司首先提出了PCI的概念,并联合IBM、Compaq、AST、HP、DEC等100多家公司成立了PCI集团,其英文全称为:PeripheralComponentInterconnectSpecialInterestGroup(外围部件互连专业组),简称PCISIG。PCI有32位和64位两种,32位PCI有124引脚,64位有188引脚,目前常用的是32位PCI。32位PCI的数据传输率为133MB/s,大大高于ISA。I2C总线在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C(interIC总线)I2C总线支持任何一种IC制造工艺I2C已经成为世界性的工业标准每个I2C器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)SPI总线串行外围设备接口SPI(serialperipheralinterface)总线技术是Motorola公司推出的一种同步串行接口SPI总线是一种三线同步总线,因其硬件功能很强总线上可以连接多个可作为主机的MCU,装有SPI接口的输出设备,输入设备如液晶驱动、A/D转换等外设也可以简单连接到单个TTL移位寄存器的芯片总线上允许连接多个能作主机的设备,但在任一瞬间只允许有一个设备作为主机PC104总线1992年IEEE开始着手为PC和PC/AT总线制定一个精简的IEEEP996标准(草稿),PC104作为基本文件被采纳,叫做IEEEP996.1兼容PC嵌入式模块标准PC104有两个版本,8位和16位,分别与PC和PC/AT相对应。PC104PLUS是专为PCI总线设计的,可以连接高速外接设备CAN总线CAN,全称为“ControllerAreaNetwork”,即控制器局域网,是国际上应用最广泛的现场总线之一CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误并行接口

所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,容易出错并口的工作模式主要有如下几种:SPP标准工作模式。SPP数据是半双工单向传输的,传输速率仅为15Kb/s,速度较慢,但几乎可以支持所有的外设,一般设为默认的工作模式。EPP增强型工作模式。EPP采用双向半双工数据传输,其传输速度比SPP高,可达2MB/s。EPP可细分为EPP1.7和EPP1.9两种模式,目前较多外设使用此工作模式。ECP扩充型工作模式。ECP采用双向全双工数据传输,传输速率比EPP要高。串口串行口的典型代表是RS-232-C及其兼容插口,25针串行口还具有20mA电流环接口功能,用9、11、18、25针来实现。RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。一般嵌入式系统提供标准的RS232C接口,该接口采用负逻辑,与CMOS、TTL电路的相连需要专用集成电路进行电平转换。最高传输速率为20kb/s,最大传输线长为30米USBUSB全称UniversalSerialBus(通用串行总线)。USB接口是现在比较流行的接口,用于将使用USB的外围设备连接到主机。在USB的网络协议中,每个USB的系统有且只有一个hostUSB最大的好处在于能支持多达127个外设,并且可以独立供电、并且支持热拔插PCMCIAPCMCIA全名为PersonalComputerMemoryCardInternationalAssociation凡符合此协会定义的界面规定技术所设计的界面卡,便可称为PCMCIA卡或简称为PC卡PCMCIA卡共分成四种规格,分别是TYPEⅠ、TYPEⅡ、TYPEⅢ及CardBusPCMCIA卡轻巧、方便携带“热插拔”(HotPlugging)功能CF卡红外线接口液晶显示液晶显示屏(liquidcrystaldisplay:LCD)用于显示GUI(图象用户界面)环境下的文字和图象数据,适用于低压、微功耗电路从选型角度,我们将常见液晶分为以下几类:段式(也称8字)、字符型和图形点阵从色彩上分,LCD显示屏分为单色、灰度和彩色三种按背光将液晶分类,有透射式、反射式、半反半透式液晶三类触摸屏嵌入式系统中的触摸屏分为电阻式、电容式和电感式三种其中电阻式触摸屏最为常用电阻触摸屏的工作部分一般由三部分组成,两层透明的阻性导体层、两层导体之间的隔离层、电极触摸屏工作时,上下导体层相当于电阻网络,当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。电容式触摸屏电容式触摸屏是一块四层复合玻璃屏,玻璃屏的内表面和夹层各涂一层ITO,四个角引出四个电极。当用户触摸电容屏时,由于人体电场,用户手指和工作面形成一个耦合电容,因为工作面上接有高频信号,于是手指会吸收一个很小的电流,这个电流分别从屏的四个角上的电极中流出,理论上流经四个电极的电流与手指头到四角的距离成比例,控制器通过对四个电流比例的精密计算,得出位置电感式触摸屏电感式触摸屏的工作原理是在触摸笔中安装LC谐振线圈通过改变与安装有激励线圈及感应线圈的触摸屏之间的空间距离,使电磁场发生变化从而计算出触点的位置语音输入输出技术语音识别输入的实现可以在嵌入式处理器功能足够强大时用相应的软件实现也可以使用专用芯片增加一个硬件功能模块语音识别技术以识别方法来分,有模板匹配法、随机模型法和概率语法分析法。这三种方法都属于统计模式识别方法。以识别范围来分,分为语音从属(speaker-dependent)模式和语音独立(speaker-independent)模式6个I/O口实现的5×5按键矩阵的示意图

第二章、嵌入式体系结构嵌入式指令集嵌入式CPU存储器IO设计SOCSOCSystemonChip简介从狭义角度讲,它是信息系统的芯片集成,是将系统集成在一块芯片上从广义角度讲,SoC就是一个微小型系统SoC不是各个芯片功能的简单叠加,而是从整个系统的功能和性能出发,用软硬结合的设计和验证方法,利用IP复用及深亚微米技术,在一个芯片上实现复杂的功能SoC是ASIC(ApplicationSpecificIntegratedCircuits)设计方法学中的新技术SoC是市场和技术共同推动的结果从市场层面上看,人们对集成系统的需求也在提高据预测,SoC销售额将从2002年的136亿美元,增长到2007年的347亿美元,年增长率超过20%。从技术层面上看,以下几个方面推动了SoC技术的发展微电子技术的不断创新和发展计算机性能的大幅度提高综合开发工具的自动化和智能化程度不断提高硬件描述语言的发展SoC芯片设计中的IP模块SoC的设计基础是IP(IntellectualProperty)复用技术。已有的IC电路以模块的形式在SoC芯片设计中调用这些可以被重复使用的IC模块就叫做IP模块

IP模块是一种预先设计好,已经过验证,具有某种确定功能的集成电路、器件或部件。它有3种不同形式:软IP核(softIPcore)、固IP核(firmIPcore)和硬IP核(hardIPcore)SoC的发展重点总线结构及互连技术软、硬件的协同设计技术IP可重用技术低功耗设计技术可测性设计方法学超深亚微米实现技术BSP的概念BSP全称“板级支持包”(BoardSupportPackages),说的简单一点,就是一段启动代码,和计算机主板的BIOS差不多,但提供的功能区别就相差很大在WindowsCE中,BSP是驱动程序、OEM适应层(OEMAdaptationLayers,OAL)、硬件抽象层(HAL)以及启动设备和使外设正常工作所需BIOS文件的集合。BSP和BIOS区别BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化..)、装入操作系统并调度操作系统向硬件发出的指令。BSP是和操作系统绑在一起运行,尽管BSP的开始部分和BIOS所做的工作类似,但是BSP还包含和系统有关的基本驱动BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置,但是程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中不同系统中的BSP一个嵌入式操作系统针对不同的CPU,会有不同的BSP即使同一种CPU,由于外设的一点差别BSP相应的部分也不一样BSP的特点与功能

硬件相关性因为嵌入式实时系统的硬件环境具有应用相关性,所以,作为高层软件与硬件之间的接口,BSP必须为操作系统提供操作和控制具体硬件的方法。操作系统相关性不同的操作系统具有各自的软件层次结构,

因此,不同的操作系统具有特定的硬件接口形式。BSP的设计与实现

为实现上述两部分功能,设计一个完整的BSP需要完成两部分工作:(1)设计初始化过程,完成嵌入式系统的初始化;(2)设计硬件相关的设备驱动,完成操作系统及应用程序对具体硬件的操作。嵌入式系统初始化以及BSP的功能嵌入式系统的初始化过程是一个同时包括硬件初始化和软件初始化的过程;而操作系统启动以前的初始化操作是BSP的主要功能之一初始化过程总可以抽象为三个主要环境,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。初始化过程片级初始化:主要完成CPU的初始化,包括设置CPU的核心寄存器和控制寄存器,CPU核心工作模式以及CPU的局部总线模式等。片级初始化把CPU从上电时的缺省状态逐步设置成为系统所要求的工作状态。这是一个纯硬件的初始化过程。板级初始化:完成CPU以外的其他硬件设备的初始化。除此之外,还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时饮食软硬件两部分在内的初始化过程。系统级初始化:这是一个以软件初始化为主的过程,主要进行操作系统初始化。BSP将控制转交给操作系统,由操作系统进行余下的初始化操作。包括加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,比如网络系统、文件系统等;最后,操作系统创建应用程序环境并将控制转交给应用程序的入口。硬件相关的设备驱动程序BSP另一个主要功能是硬件相关的设备驱动。与初始化过程相反,硬件相关的设备驱动程序的初始化和使用通常是一个从高层到底层的过程。尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用而是在系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。BSP开发的前提和步骤

开发的前提:熟悉硬件方面:使用CPU等熟悉工具方面:电表,示波器,逻辑分析仪,硬件仿真器,仿真调试环境。语言方面:汇编语言,C语言。BSP开发的一般步骤如下:硬件主板研制,测试。操作系统的选定,BSP编程。上层应用程序的开发。编写BSP函数BSP对板卡中每个芯片的操作都通过多个函数来完成如果应用程序对板卡的操作都直接通过调用BSP中的函数来完成,那将很不利于源程序的调试,并降低了程序的可移植性把能完成某个特定功能的函数封装在一个库文件中,并放在应用程序与BSP之间对每个芯片来说,都应当有初始化函数和状态读取函数设计实现BSP的一般方法BSP的开发需要具备一定的硬件知识要求掌握操作系统所定义的BSP接口两种快捷方法以经典BSP为参考使用操作系统提供的BSP模板设计实现BSP两部分功能时应采用以下两种不同方法“自底向上”地实现BSP中的初始化操作“自顶向下”地设计硬件相关的驱动程序BSP设计方法的不足与改进目前BSP的设计与实现主要是针对某些特定的文件进行修改直接修改相关文件容易造成代码的不一致性,增加软件设计上的隐形错误,从而增加系统调试和代码维护的难度解决这个问题的一个可行办法是:设计实现一种具有图形界面的BSP开发设计向导,由该向导指导设计者逐步完成BSP的设计和开发,并最终由向导生成相应的BSP文件,而不再由设计人员直接对源文件进行修改。驱动程序

嵌入式Linux驱动程序开发

常用的系统支持

Linux系统网络设备驱动程序

编写Linux网络驱动程序中需要注意的问题

Linux系统驱动程序开发简介Linux中设备被抽象出来,所有设备都看成文件设备的读写和普通文件一样设备驱动程序主要完成这些功能:探测设备和初始化设备从设备接收数据并提交给内核从内核接收数据送到设备检测和处理设备错误Linux设备驱动程序分类Linux系统的设备分为字符设备(chardevice),块设备(blockdevice)和网络设备(networkdevice)三种字符设备是指存取时没有缓存的设备。块设备的读写都有缓存来支持,并且块设备必须能够随机存取(randomaccess)网络设备在Linux里做专门的处理编写驱动程序的一些基本概念读写几乎所有设备都有输入和输出。每个驱动程序要负责本设备的读写操作。操作系统的其他不需要知道对设备的具体读写操作怎样进行,这些都由驱动程序屏蔽掉了。操作系统定义好一些读写接口,由驱动程序完成具体的功能。在驱动程序初始化时,需要把具有这种接口的读写函数注册进操作系统。中断中断在现代计算机结构中有重要的地位。操作系统必须提供驱动程序响应中断的能力。一般是把一个中断处理程序注册到系统中去。操作系统在硬件中断发生后调用驱动程序的处理程序。Linux支持中断的共享,即多个设备共享一个中断。时钟在实现驱动程序时,很多地方会用到时钟。如某些协议里的超时处理,没有中断机制的硬件的轮询等。操作系统应为驱动程序提供定时机制。一般是在预定的时间过了以后回调注册的时钟函数。内核模块模块是内核的一部分,但是并没有被编译到内核里去。它们被分别编译和连接成目标文件。用命令insmod插入一个模块到内核中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论