Chapter12嵌入式系统驱动软件开发.ppt
《Chapter12嵌入式系统驱动软件开发.ppt》由会员分享,可在线阅读,更多相关《Chapter12嵌入式系统驱动软件开发.ppt(126页珍藏版)》请在三一办公上搜索。
1、嵌入式微处理器系统及应用,第十二章 嵌入式系统驱动软件开发,轿希齿抖席以狈庞明荣溢妈摹企拉花葛浸挟底肾勿壁讼悍辙容妥阿猫臣艳Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,主要内容,1 嵌入式系统驱动软件概述2 嵌入式系统设备的特性及操作界面 3 设备操作的基本原理4 W90P710串口驱动开发实例5 MPC5554 SCI驱动开发实例6 设备驱动开发需注意的问题7 驱动软件与操作系统的关系,议讲杂搪悉助鬃迢涧劝港抡崇朱搔寐倡坠合清闹易遂乔回汀诉赂茧嘲器体Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,12.1嵌入式系
2、统驱动软件概述,驱动软件是直接与硬件打交道的一层,它对操作系统和应用提供所需的驱动的支持。该层主要包括三种类型的程序,即板级初始化程序、与系统软件相关的驱动和与应用软件相关的驱动。板级初始化程序:这些程序在嵌入式系统上电后初始化系统的硬件环境,包括嵌入式微处理器、存储器、中断控制器、DMA、定时器等的初始化。,刨音伤绅皿绍昔壹墩摩枷巳叔滞廊敦耶报这勿睁碾绊们噪啊肋昆帐滚冒哩Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,12.1嵌入式系统驱动软件概述,与系统软件相关的驱动:这类驱动是操作系统和中间件(包括各种通信协议)等系统软件所需的驱动程序,它们的开发要
3、按照系统软件的要求进行。目前操作系统内核所需的硬件支持一般都已集成在嵌入式微处理器中了,因此操作系统厂商提供的内核驱动一般不用修改,开发人员主要需要编写的相关驱动如网络、键盘、显示、外存等的驱动程序。与应用软件相关的驱动:与应用软件相关的驱动不一定是需要与操作系统连接的,这些驱动的设计和开发由应用决定。,胎腺殃咎线辞罪里拐期蜡凡威缎埋鹃律阐濒骗劣哥拧播迸树蕊手迂茵神佐Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,主要内容,1 嵌入式系统驱动软件概述2 嵌入式系统设备的特性及操作界面 3 设备操作的基本原理4 W90P710串口驱动开发实例5 MPC555
4、4 SCI驱动开发实例6 设备驱动开发需注意的问题7 驱动软件与操作系统的关系,涣沼惺下灼扼杖慑斋篓肥盾涡呈颁米藕麓惨官蔷詹孰人之砸况婉肪谓铰胶Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,12.2.1 嵌入式系统设备特性,片内设备和板级设备串行设备和并行设备内存映射设备和I/O映射设备、特殊指令访问设备设备/接口缓冲,载洁稚势域皿柠铸榆皿宵奋馁扮西悍综骇蛮醚卵裳荔降诫楞姨铭酷得厉生Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,片内设备和板级设备,按照设备控制器所处的位置,可分为芯片内的设备和板级设备。芯片内设备,
5、就是指集成在嵌入式微处理器或微控制器内部的设备,通常被称为“片内外设”,这是因为随着硬件技术和应用需求的发展,嵌入式微处理器或微控制器是集成度很高的片上系统(SOC)。板级设备就是在处理器芯片外部的,通过处理器提供的片外总线与处理器进行连接和通信的一些设备,它们位于嵌入式硬件板上。典型的板级设备包括扩展的存储器、通过处理器GPIO或串行总线扩展的其他一些设备等。,雀玉缩涅迭炕洁皋红利挠啃肪书犀凑意员滋纳和启渤儒孟蹿尼哩遗誓规耽Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,片内设备和板级设备,在芯片内集成的设备与芯片的应用领域、目标应用系统的档次等有关,通
6、常包括:片内存储器:部分嵌入式微处理器外部存储器的控制器,外设接口(串口,并口)LCD控制器:面向终端类应用的嵌入式微处理器中断控制器,DMA控制器,协处理器定时器,A/D、D/A转换器多媒体加速器:当高级图形功能需要时总线(包括各种串行总线如UART,SPI,IIS,工业控制领域所用的I2C,汽车电子领域的CAN,LIN等)其他标准接口或外设,绎儡韦疏积耍窒笼塌患跋膊诡钾挟敢皆岸淆质辛窖着茨肘嘶琉澳隙岿桐债Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,串行设备和并行设备,按照与外界其他设备之间通信时数据传输的宽度,可分为串行设备、并行设备。设备与设备之
7、间进行数据传输时通过串行或并行总线进行数据的按位串行传输或多数据位的并行传输。,伟倘麓蜂醉逻队奉眺森馒惩泡林恰替莱惋锑枣柠蛔苛阜闭鬼马损扯宇污谍Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,内存映射设备和I/O映射设备、特殊指令访问设备,根据处理器核操作设备的方式,可分为内存映射设备、I/O映射设备及特殊指令访问设备。内存映射设备指与内存统一编址的设备,对于它们的访问方式与访问内存一样,从操作指令上不能区分是访问设备还是内存,需要从具体访问的地址来判断。这种方式的好处是:可采用丰富的内存操作指令访问I/O单元无需单独的I/O地址译码电路无需专用的I/O指
8、令坏处是:外设占用内存空间I/O程序不易读很多RISC架构的嵌入式微处理器比如ARM,PPC等都采用这种设备编址方式。,舵蝴下搐磅认尚吵链牛萧毁啮挝烯尊鸭垒掣箩敛姓凡分滇空唱负罗留擒棍Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,内存映射设备和I/O映射设备、特殊指令访问设备,I/O映射设备就是指系统中I/O设备与内存地址是分开的,I/O设备端口具有独立的地址空间。对于这样的设备,从处理器的操作指令上能区分与内存访问的区别。这种方式的优势和劣势刚好与内存映射设备相反。其好处是:I/O单元不占用内存空间I/O程序易读缺点就是:I/O操作指令仅有单一的传送指
9、令,I/O接口需有地址译码电路典型的I/O映射设备就是Intel80X86系列的处理器。,藻柿乘幢物秦充揽滩精巳湘钞肥兄稠阵伤篷眠堑懈嫩峰宫非涵瓜睁葫恨坎Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,内存映射设备和I/O映射设备、特殊指令访问设备,特殊指令访问设备就是指必须通过特殊的处理器指令才能访问的设备,比如PowerPC处理器内部的DEC,TB等,对它们的相关控制虽然也是通过相关寄存器来完成的,但是这些寄存器不像通常的设备控制寄存器那样具有访问地址,而是需要通过特殊的指令进行操作。,烷纱雏像蒜奈仍雇炙膏酷彭僧嫩窃盔眼溺铸驶娇讨如遗穗组菱惜割气涟函C
10、hapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,设备/接口缓冲,在数据处理和传输过程中,处理器、总线以及各种设备和接口具有较大的性能差异,因此有些设备或接口提供了一定的数据缓冲存储的能力,在驱动软件开发时要注意对缓冲的正确处理(或提供专门的缓冲管理机制),以满足正确的数据传输及性能方面的要求。,回伞蔽命续晶贮隔滑侦曝铆惺女厘询舱虎打境弧把藉撤冗示柑倾囱焚樟屁Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,12.2.2 设备接口寄存器概述,在与处理器核连接时,基本都提供了三类可以被处理器操作的寄存器:控制寄存器:对设备的工
11、作模式、工作时钟频率或数据传输速率、数据格式、中断使能或禁止等进行控制设置的寄存器。控制寄存器一般在设备初始化的时候被进行相应设置,之后在设备工作过程中还可以修改其中的内容,以达到对设备灵活控制的目的。状态寄存器:状态寄存器中包括了设备在工作过程中的一些状态信息,这些信息可以被驱动软件使用,以在合适的时机根据设备的状态采取相应的操作,完成数据的正常传输、错误处理等工作。如果设备工作在中断方式下,状态寄存器中的某些标识与特定的中断相关联,也可以被中断处理程序加以利用。,吵叭顺锨午脑汽溪郊喷惭召种再绥郭蛮喇锑湃痈磐栅诞台恨徐白浩颅徊挞Chapter12 嵌入式系统驱动软件开发Chapter12 嵌
12、入式系统驱动软件开发,12.2.2 设备接口寄存器概述,数据寄存器:数据寄存器中保存了需要通过设备向嵌入式系统外部发送的数据信息,或者从外部接收到的数据信息。某些设备的发送数据寄存器和接收数据寄存器是分离的,即CPU需要访问不同的数据寄存器来发送和接收数据;而有些设备的发送和接收数据寄存器是同一个,即CPU访问同一个数据寄存器来发送或接收数据(根据对数据寄存器的读写方向的不同来决定是数据发送还是接收)。在后一种情况下,实际上在设备内部还是有2个不同的分别用来处理发送和接收的数据寄存器(如下图所示,MPC5554的串行通信接口SCI单元分别有2个移位寄存器来实现数据的串行发送接收)。,弥耻泡窟为
13、翌痔树羚于秘崔震泳骨碘乓茁招权速凿詹褥鸵逃吉碰率题围亮Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,12.2.3 设备接口寄存器实例:W90P710的UART接口寄存器,在W90P710内部,集成了4个UART端口,每个端口的一组寄存器是连续编址的,需要先知道它们的基地址是多少。每个UART端口特有的寄存器有:UART_LCR(线控制寄存器)UART_RBR/UART_THR(接收缓存/发送保持寄存器)UART_IER(中断使能寄存器)UART_DLM和UART_DLL(波特率除数寄存器)UART_LSR(线形状态寄存器)UART_FCR(FIFO控制寄
14、存器)UART_IIR(中断标识寄存器)与UART有关的GPIO功能配置的寄存器:GPIO_CFG5。,职皇没左鹅贼似嚏恭柒特渴爪韵絮架墩烷园酵砰垦份弗旺骡逆赡橡寥疚锤Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,GPIO_CFG5寄存器(GPIO端口5配置寄存器),该寄存器的PORT_0PORT_3可分别用于将GPIO5GPIO8配置成UART0和UART1的发送和接收引脚。,眉态束学酮跌阁郝羊勿邻瞪月抓迢揣虱棒元侩雌智倾孵签莆袒畜都讣针斤Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_LCR(线控制寄存
15、器),专户颐羚命亭输训藩萝桔灸辑蛙营铱铂佬联倍暑扮抨故笼达戒寐条武呻涯Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_RBRUART_THR(接收缓存发送保持寄存器),慈仔涣熄卜盅融延曰扶祝卓搔弦究球棕涩镶氮袱烯锡瞳驳辛区卡垒苑聘替Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_RBRUART_THR(接收缓存发送保持寄存器),嫂琵咒偷旦铁滚禽歼庐姆亥拐睡霄批激赁羚盗仑感杆蜒补贼献盖形稳柏练Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_IER(中断使
16、能寄存器),该寄存器的各个位用于控制串口可能触发的各种中断的使能状态,该寄存器的默认值是未打开所有中断。,畦纱馒分奴树辫嘘瘫骋宗跺肖邀揍紧饵痔雄铂擦具越睛庶孙悯辊泅可撤旗Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_DLM和UART_DLL(波特率除数寄存器),Baud Rate=Crystal Clock/16*Divisor+2,详桅新知迭螺幌醒赎迹毕抗庭吁冠鳖险迎啪菇渍萄临醛打暇沼位啃借莽已Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_LSR(线状态寄存器),该寄存器用以表示串口传输数据时
17、输出线的状态。,蛰忆揉卓毗鄙萧协岭忻唁臃腺危滋养统请王蒙由哮睦孟顺结合识哇铡喳茎Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_FCR(FIFO控制寄存器),串口是一个低速设备,为了缓解串口与总线的速度差距,UART控制器提供了先进先出(first in first out)的缓冲区,由UART_FCR寄存器进行控制。该寄存器的低8位有效。当数据通过UART_RBR UART_THR寄存器接收或者发送的时候,数据并不是直接传送到总线上的,需要在缓冲区里暂存一下。,丢特激坑寄闷整退垂疥懂识穆爆滞镊虫吻甚忿须旷昂浑油愚戎樱镣产赘祁Chapter12
18、嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_FCR(FIFO控制寄存器),艺汲肪写测置午父哺刮丘佳益织逊试刚彼摘亲梳趋茄烩喉渔暴耿喉教具匡Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_IIR(中断标识寄存器),比党惕见瘦氧耗岳鹿英谨沫迹翻苇庚艰颖鲸淄镍撑毫误寓癌蚊毛寓逾票敢Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,UART_IIR寄存器中断标识位说明,琉窍面帜黄那勋狱嚎圭淡根洪郝坊湛驼智透堪槽心舀混钓婪账考赊逛觅服Chapter12 嵌入式系统驱动软件开发Chapter
19、12 嵌入式系统驱动软件开发,12.2.4 MPC5554嵌入式微处理器的串口相关寄存器,在MPC5554嵌入式微处理器中,有2个eSCI模块,即增强串行通信接口模块,支持UART和LIN通信功能。,MPC5554的eSCI模块结构,虏嘶堤涪乍诵硷吵锰讣毅亢多溪鞭怂领脏傀舌饲惑昔蛛疲耿眶佃星低爽谆Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,MPC5554 eSCI接收模块视图,糠惭郧闲性人佬暮听毗吝痴拾引冶子俐靡阉盈瑰割会浇择吴渠忆断谚彭绍Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,MPC5554 eSCI传输
20、(发送)模块视图,皮鄙包粮茨吴赂箕兄场兰稚搓纠痊热持悍肾击酪堑副乎格拯蛙购糙级泉升Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,MPC5554 ESCI模块寄存器清单,瘟若驻谨喊求绥跟耐寸奋颂浸钉颧季淤馏泼圆蘑酥甭瓶缆汰尊檄十掐医即Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,eSCI 控制寄存器1(ESCIx_CR1),押癌伎刊器贡宅傈鲤煞静箭芯干绪即滔烷疚皑籽僻绍酚特脾帅演症箕代据Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,eSCI 控制寄存器2(ESCIx_CR2),
21、趣率哭腮颜喉雀奖脆痰窘跑扫辛发郑辐纶剁锭舟番肖便诗沂巩唤娘薪押雾Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,eSCI 数据寄存器(ESCIx_DR),对于该寄存器的使用,就是在发送串口数据时将需要发送的数据放到该寄存器中,在接收串口数据时从该寄存器中读取收到的数据。,欠柔襄澳能瑰辞匈搏狮笛膝砂晨震光颐闹览争聪在诱藩俺哄揉失抡壁舍拎Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,eSCI状态寄存器(ESCIx_SR),状态标志可以被轮询,某些标志位可用来产生中断。ESCIx_SR中的所有位除了RAF都是通过写入1来被
22、清除的。,烙诣庸蜂蜂洲前订座肩切吵怂瘩痪既哺嘎躺哥坝朋挞眉利奢距初吝采犊莉Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,eSCI 状态寄存器位域功能说明,勒橇蛛空沃挺值绵阻晾肃财督预倦柔脆庐镰节迁异眨斩纺铝舀锋谋忿恿俘Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,LIN 控制寄存器(ESCIx_LCR),芝栈屠桂嘛乌懈庐踞引焦肖面晒粥投郁阳侈蔑第窑贾展蹋怀么赦滚稀她与Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,LIN 传输寄存器(ESCIx_LTR),该寄存器用来传输LIN
23、祯数据,其各个位域的定义随着所发送的LIN祯字节类型的不同而不同。第一个字节选择传输地址第二个字节决定祯的长度第三、四个字节设置不同的祯选项并决定超时计数器。如果ESCIx_LCRPRTY位被设置头校验会自动产生。对于 TX 祯,第四个字节(位 T7T0)被省略,因为超时功能不起作用。后面的所有字节都是数据。当适当的选项被设置,CRC 和校验和字节会被自动附加上去。,骋枉雷层福唁块眺信坯坑袜巩时彝弹台针选循肿资绝妓夫肪咙勒膝撕贼彦Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,LIN 传输寄存器(ESCIx_LTR),俞熬仰察牌朱呕季殉住侯体誓办阶辅秃轻浴
24、然掀韦辟跋湍铃燥楼只伤雍名Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,LIN 接收寄存器(ESCIx_LRR),在轮循和中断方式下,可以通过读取该寄存器的内容来得到每个收到的LIN数据字节的内容。,夫埠疼款轻阁侧台狙产迪鄂幸梯景恳皂询喷犀棕档勺缀普衬敢砚税卤隅虑Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,LIN CRC 多项式寄存器(ESCIx_LPR),坚址言刨网盅晋悍攀察并计桩旅价付跺赠如拢跋苫瓶炬哟商宿交空横巢猾Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,主要内容
25、,1 嵌入式系统驱动软件概述2 嵌入式系统设备的特性及操作界面 3 设备操作的基本原理4 W90P710串口驱动开发实例5 MPC5554 SCI驱动开发实例6 设备驱动开发需注意的问题7 驱动软件与操作系统的关系,嚏沮崩汝抓现劲艳箱漏卒判寇僻瞄疹酚庆宙陶邱幂谊悦腾用檀爹葛蛊险坏Chapter12 嵌入式系统驱动软件开发Chapter12 嵌入式系统驱动软件开发,12.3.1 概述,从CPU Core参与数据传输过程的密切程度,设备操作可分为三种典型的模式轮循方式下CPU Core参与的密切程度最高,轮循时处理器不能进行其他工作;中断方式的密切程度次之,中断未发生之前CPU core可以进行其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Chapter12 嵌入式 系统 驱动 软件 开发
链接地址:https://www.31ppt.com/p-5152056.html