第18章DUART_第1页
第18章DUART_第2页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、18章DUART本早介绍MPC8394E的两个通用异步接收器/发送器(UARTuniversalasynchronousreceiver/transmitter)。介绍其功能操作、DUART的初始化步骤、以及DUART寄存器的编程细节和特性。18.1概述DUART包括两个通用异步接收器/发送器(UART)。这两个UART独立工作。本章所有UART相关的讨论都是针对其中一个接收器/发送器而言的。各UART通过系统时钟进行时钟同步。DUART编程模型和PC16552D兼容。UART为点对点接口,即只能够把两个UART设备连到连接信号上。如图18-1所示,每个UART模块的组成如下: 接收和发送缓冲

2、区 用于数据流控制的清除发送输入端口(CTS)和请求发送输出端口RTS 用于产生波特率的16位计数器 中断控制逻辑数据intA31地址总线A控制V>图18-1UART结构图18.1.1 特性DUART包括以下特性: 全双工操作。 可编程模式,兼容原来的PC16450UART和PC16550D(能工作在FIFO模式下的PC16450改进版本)。 PC16450寄存器复位值。 用于发送器和接收器的FIFO模式,提供16字节的FIFO。 采用标准的异步通信位(START、STOP和奇偶校验)封装和解封串行数据。 可屏蔽发送、接收、线路状态和MODEM状态中断。 软件可编程的波特率发生器,将系统

3、时钟用1到(216-1)分频,为发送器和接收器引擎生成16倍时钟。 清除发送CTT和发送就绪RTSMODEM控制功能。 软件可选择的串行数据格式(数据长度、奇偶校验、1/1.5/2停止位、波特率)。 线路和MODEM状态寄存器。 线路断开(Line-break)检测和产生。 内部诊断支持、本地环路和断开功能。 具有优先级的中断报告。 过载、奇偶校验和帧错误检测。18.1.2 操作模式信道提供一个全双工的异步发送器和接收器,使用源自系统时钟的操作频率。发送器接收写入发送器保持寄存器(UTHR)的并行数据。在FIFO模式下,将数据直接放入发送器FIFO的内部发送器移位寄存器中。发送器将数据转换成串

4、行位流,插入START、STOP和可选的奇偶校验位。最后将打包好的串行数据流输出到信道发送器串行数据输出信号线(SOUT)。可以轮询或中断驱动发送器状态。接收器接收信道接收器串行数据输入信号线(SIN)的串行数据位,将它们转换成并行格式,检测START位、奇偶校验位(如果有的话)和STOP位,将组装好的字符(去掉了START、STOP和奇偶校验位)从UART的接收器缓冲区(或FIFO)传输进来,以响应接收器缓冲寄存器读操作。可以轮询或中断驱动接收器状态。18.2 外部信号说明本节包括信号概述及详细信号说明。18.2.1信号概述表18-1汇总了DUART信号。注意,尽管实际设备的信号名称常带有如

5、表所示的前缀“UART_”,但本章一般采用功能(缩写的)信号名称。表18-1DUART信号概述信号名称I/O引脚数复位值状态含义UARTSIN1:2I21串行输入数据UART1和UART2UARTSOUT1:2O21串行输出数据UART1和UART2UART_CTS1:2I21清除发送UART1和UART2UART_RTS1:2O21请求发送UART1和UART218.2.2详细信号说明DUART信号的详细说明见表18-2。表18-2DUART详细信号说明信号I/O说明UART_SIN1:2I串行数据输入。在UART1和UART2的接收器上通过各自的串行数据输入信号接收数据,先接收最低有效位。

6、状态含义有效/无效一代表正在UART接口上接收的数据。时序有效/无效一个内部逻辑米样信号,rxcnt,利用波特率发生器的频率在SIN上采样数据。UART_S0UT1:2O串行数据输出。当发送器禁用、空闲或在本地回送模式操作时,置位UART1和UART2(标记状态)的串行输出数据信号。将数据从这些信号移出,先发送最低有效位。状态含义有效/无效一代表在各自UART接口上发送的数据。时序有效/无效一个内部逻辑米样信号,rxcnt,利用波特率发生器的频率更新并且驱动SOUT上的数据。UART_CTS1:2I清除发送。分别连接到总线上其他UART设备的RTS输出。可以设定在信号状态变化时产生中断。状态含

7、义有效/无效一代表各自UART清除发送的状态。时序有效/无效一在每个系统时钟的上升沿采样。UART_RTS1:2O请求发送。可以由接收器或发送器设定为自动有效和无效。当连接到发送器的CTS输入时,可以使用这个信号控制串行数据流。状态含义有效/无效一代表正在各自UART发送的数据。时序有效/无效一在每个系统时钟的上升沿更新和驱动。18.3内存映射/寄存器定义有两套完整的DUART寄存器集合(一套为UART1服务,一套为UART2服务)。这两个UART完全相同,只是UART1的寄存器偏移地址在0x0_4500(本地),UART2的寄存器偏移地址在0x0_4600(本地)。在本章中,寄存器用单词首字

8、母缩写的符号来表示,例如LCR表示UART1和UART2的线路控制寄存器。每个UART接口中的寄存器均用于配置、控制和状态。分频系数锁存器访问位,ULCRDLAB,用来访问分频系数锁存的低位和高位寄存器和备用功能寄存器。有关ULCKDLAB的更多信息参见18.3.1.7节“线路控制寄存器(ULCK1和ULCR2)”。所有DUART寄存器均只有1个字节宽,因此读写这些寄存器都必须是字节宽度的操作。表18-3提供了寄存器汇总,以及包含每个寄存器详细信息的节和页的参考°0x4000-0x4FFF中未定义的字节地址空间是保留的。表18-3DUART寄存器汇总表偏移寄存器访问复位值节/页0x0

9、_4500URBRULCRDLAB=0UART1接收器缓冲寄存器R0x0018.3.1.1/18-6UTHRULCRDLAB=0UART1发送器保持寄存器W0x0018.3.1.2/18-6UDLBULCRDLAB=1UART1分频器低有效字节寄存器R/W0x0018.3.1.3/18-70x0_4501UIERULCRDLAB=0UART1中断允许寄存器R/W0x0018.3.1.4/18-8UDMBULCRDLAB=1UART1分频器高有效字节寄存器R/W0x0018.3.1.3/18-70x0_4502UIIRULCRDLAB=0UART1中断ID寄存器R0x0118.3.1.5/18-

10、9UFCRULCRDLAB=0UART1FIFO控制寄存器W0x0018.3.1.6/18-10UAFRULCRDLAB=1UART1备用功能寄存器R/W0x0018.3.1.12/18-160x0_4503ULCRULCRDLAB=xUART1线路控制寄存器R/W0x0018.3.1.7/18-110x0_4504UMCRULCRDLAB=xUART1MODEM控制寄存器R/W0x0018.3.1.8/18-130x0_4505ULSRULCRDLAB=xUART1线路状态寄存器R0x6018.3.1.9/18-130x0_4506UMSRULCRDLAB=xUART1MODEM状态寄存器R

11、0x0018.3.1.10/18-150x0_4507USCRULCRDLAB=xUART1临时寄存器(用于测试读写操作)R/W0x0018.3.1.11/18-150x0_4510UDSRULCRDLAB=xUART1DMA状态寄存器R0x0118.3.1.13/18-160x0_4600URBRULCRDLAB=0UART2接收器缓冲寄存器R0x0018.3.1.1/18-6UTHRULCRDLAB=0UART2发送器保持寄存器W0x0018.3.1.2/18-6UDLBULCRDLAB=1UART2分频器最低有效字节寄存器R/W0x0018.3.1.3/18-70x0_4601UIERU

12、LCRDLAB=0UART2中断允许寄存器R/W0x0018.3.1.4/18-8UDMBULCRDLAB=1UART2分频器最高有效字节寄存器R/W0x0018.3.1.3/18-70x0_4602UIIRULCRDLAB=0UART2中断ID寄存器R0x0118.3.1.5/18-9UFCRULCRDLAB=0UART2FIFO控制寄存器W0x0018.3.1.6/18-10UAFRULCRDLAB=1UART2备用功能寄存器R/W0x0018.3.1.12/18-160x0_4603ULCRULCRDLAB=xUART2线路控制寄存器R/W0x0018.3.1.7/18-110x0_46

13、04UMCRULCRDLAB=xUART2MODEM控制寄存器R/W0x0018.3.1.8/18-130x0_4605ULSRULCRDLAB=xUART2线路状态寄存器R0x6018.3.1.9/18-130x0_4606UMSRULCRDLAB=xUART2MODEM状态寄存器R0x0018.3.1.10/18-150x0_4607USCRULCRDLAB=xUART2临时寄存器R/W0x0018.3.1.11/18-150x0_4610UDSRULCRDLAB=xUART2DMA状态寄存器R0x0118.3.1.13/18-1618.3.1寄存器说明下面几节介绍UART1和UART2的

14、寄存器。18.3.1.1接收器缓冲寄存器(URBR1和URBR2)这些寄存器包含接收到的来自UART总线上的数据。在FIFO模式下,读时返回接收到的第一个字节。关于FIFO状态信息,参看UDSRRXRDY的说明。除了过载情况外,URBR按接收顺序返回数据。参看1831.9节“线状态寄存器(ULSR1和ULSR2)”中的ULSRQE说明。图18-2显示了接收器缓冲寄存器。注意,这些寄存器和UTHR具有相同的偏移。偏穆:0110_4500,0s0_4600访问:用户只读07图18-2接收器缓冲寄存器(URBR1和URBR2)表18-4说明了URBR。表18-4URBR字段说明位名字说明0-7DAT

15、A从UART总线上收到的数据只读18.3.1.2发送器保持寄存器(UTHR1和UTHR2)写这些8位寄存器引起UART设备以ULCR(线路控制寄存器)中配置的格式在UART总线上传输5到8个数据位。在FIFO模式下,写入UTHR的数据被放入FIFO。写入UTHR的数据是送到UART总线上的数据,并且写入UTHR的第一个字节就是送到总线上的第一个字节。UDSRTXRDY指示何时FIFO满了。参见表18-21和表18-22。图18-3显示了UTHR中的位。偏移:0x0.4500,0x0_4600访问:用户只写图18-3发送器保持寄存器(UTHR1和UTHR2)表18-5说明了UTHR。表18-5U

16、THR字段说明位名字说明0-7DATA写入UTHR的数据只写18.3.1.3分频器高位和低位有效字节寄存器(UDMB和UDLB)UDLB和分频器高有效字节寄存器(UDMB)连接在一起构成分频器,用来实现DUART输入时钟的分频。波特率发生器的输出频率为波特率的16倍,因此期望的波特率=平台时钟频率/(16xUDMB|UDLB)。等价的,UDMB|UDLB|0b0000=平台时钟频率/期望的波特率。可以通过特定的输入时钟频率产生的波特率如表18-8所示。图18-4显示了UDMB的位。0x0_4501,0x0_4601访问:用户读/写07读UDMB复位全零表18-4分频器高字节寄存器(UDMB1和

17、UDMB2)表18-6说明了UDMB。表18-6UDMB字段说明位名字说明0-7UDMB分频器高有效字节图18-5显示了UDLB的位。偏0x0_4500,0x0_4600访问:用户读/写07读UDLB复傥全零表18-5分频器低有效字节寄存器(UDLB1和UDLB2)表18-7说明了UDLBo表18-7UDLB字段说明位名字说明0-7UDLB分频器最低有效字节。它和UDMB连接在一起。表18-8给出了不同输入时钟频率的波特率。表18-8波特率示例波特率(十进制)分频器输入时钟(系统时钟)频率(MHz)误差百分数(十进制)十进制十六进制9,60017366C82660.006419,2008683

18、642660.006438,4004341B22660.006456,00029812A2660.1280128,000130822660.1600256,00065412660.160096,00217087A3330.006419,200108543D3330.006438,40054321F3330.085856,0003721743330.0064128,000163A33330.1472256,00081513330.4672为了得到误差百分数,执行以下三个步骤:1.将输入时钟频率(ICF)除以实际频率输入(AFI),得到正确的除数值(ICF/AFI,这里AFI=波特率X16)o2将

19、除数值减去1。3将第2步的结果乘以100,计算出最终的百分数错误。结果取绝对值(没有负数)。上述三步可以用下面的等式来表示:百分数错误值=(1-AFI/ICF)x10018.3.1.4中断允许寄存器(UIER1和UIER2)UIER使用户可以屏蔽到MPC8349E可编程中断控制器(PIC)的特定UART中断。图18-6显示了UIER的位。僱窸:QxQ_4501i.0xU_4601访问:用户读/写034567-EMSIERLSIETHREIERDAI复位舍零图18-6中断允许寄存器(UIER1和UIER2)表18-9说明了UIER的字段。表18-9UIER字段说明位名字说明0-3一保留4EMSI

20、允许MODEM状态中断0屏蔽UMSRDCTS置位时引起的中断。1在UMSRDCTS改变状态时,允许并宣告中断。5ERLSI允许接收器线路状态中断0屏蔽对ULSR过载位、奇偶校验位、帧格式错误位或断开中断位置位时产生的中断。1在ULSR过载位、奇偶校验位、帧格式错位或断开中断置位时,允许并宣告中断。6ETHREI允许发送器保持寄存器空中断0屏蔽由ULSRTHRE置位时引起的中断。1当ULSRTHRE置位时,允许并宣告中断。7ERDAI允许接收数据可用中断0屏蔽新的接收数据可用或接收数据超时时的中断。1当从外部设备接收了新的数据字符和/或在FIFO模式下发生超时中断时,允许并宣告中断。18.3.1

21、.5中断ID寄存器(UIIR1和UIIR2)UIIR指示来自相应UART的中断挂起以及什么类型的中断是活动的。它们还指示FIFO是否被允许。DUART将中断分成四个优先级,并将它们记录到对应的UIIR中。按优先顺序的四级中断条件如下: 接收器线路状态 接收数据就绪/字符超时 发送器数据保持寄存器空 MODEM状态更加详细的说明见表18-11。在读取UIIR时,相关的DUART串行信道冻结所有中断并指示挂起的最高优先级中断。在出现读事务时,相关的DUART串行信道记录新中断,但不改变UIIR的内容,直到读访问完成。图18-7显示了UIIR的位。023456读FE-IID3I1D2IID1IIDO

22、00000001图18-7中断ID寄存器(UIIR1和UIIR2)表18-10说明了UIIR的字段。表18-10UIIR字段说明位名字说明0-1FEFIFO允许。反映UFCRFEN的设置。2-3一保留4IID3中断ID位,标识表18-11中说明的尚未处理的最高优先级的中断。仅当FIFO模式的超时中断挂起时才将IID3和IID2一起置位。5-6IID2-IID1中断ID位,标识表18-11中说明的尚未处理的最高优先级的中断。7IID0IID0指示有中断挂起0UART有一个活动中断等待服务。1没有挂起的中断。UIIR寄存器包含的位的说明见表18-11。表18-11UIIRIID位汇总IID3IID

23、0优先级中断类型中断说明如何复位中断0001一一一一0110最高接收器线路状态过载错、奇偶校验错、帧格式错或断开中断。读线路状态寄存器0100第二收到的数据可用FIFO模式下接收的数据可用或达到触发水平。读接收器缓冲寄存器或接收器FIFO中的字节数目降到触发水平以下。1100第二字符超时在最近的四个字符时间内没有字符送入或者移出接收器FIFO,并且在接收器FIFO读接收器缓冲寄存器中至少有1个字符。0010AVr*第二UTHR空发送器保持寄存器空。读UIIR或者写UTHR0000第四MODEM状态自上一次读UMSR以来CTS输入值发生了变化。读UMSR18.3.1.6FIFO控制寄存器(UFC

24、R1和UFCR2)UFCR用于允许和清除接收器和发送器FIFO,设置接收器FIFO触发水平以控制接收数据可用中断,以及选择DMA信号的类型。只能在置位FIFO允许位的时候才可以设定UFCR位。当FIFO模式变成16450模式(非FIFO模式)时,自动从FIFO中清除数据。反之亦然。在清除了接收器FIFO中所有数据之后,并不清除接收器内部移位寄存器。同样的,清除了发送器FIFO中的字节后并不清除发送器内部移位寄存器oTFR和RFR都是自清除的。图18-8显示了UFCR的位。偏移:0x0_45(iJ0x.4&b:22456访问=用户只读701读写RTL-DMSTFRRFRFEN复位.姿零图

25、18-8FIFO控制寄存器(UFCR1和UFCR2)表18-12说明了UFCR的字段。表18-12UFCR字段说明位名字说明0-1RTL接收器触发水平。当UIERERDAI置位且接收器FIFO中的字节数目等于RTL值时,产生接收数据可用中断。001字节014字节10 8字节11 14字节2-3一保留4DMSDMA模式选择。参看18.4.5.2节“DMA模式选择”。0UDSRRXRDY和UDSRTXRDY位为模式01如果UFCRFEN=1,贝9UDSRRXRDY和UDSRTXRDY位为模式15TFR发送器FIFO复位。0无动作1清除发送器FIFO中的所有字节,并将FIFO计数器/指针复位为0o6

26、RFR接收器FIFO复位0无动作1清除接收器FIFO中的所有字节,并将FIFO计数器/指针复位为0。7FENFIFO允许0禁止并清除FIFO1允许发送器和接收器FIFO18.3.1.7线路控制寄存器(ULCR1和ULCR2)ULCR规定UART总线的数据格式并且设置分频器锁存访问位ULCRDLAB,分频器锁存访问位控制访问分频锁存高有效位和低有效位寄存器以及备用功能寄存器。初始化ULCR后,当UART总线上活动时,软件不能重写ULCR。只有当收到最后停止(STOP)位并且总线上不再有新字符传输时,软件才能重写ULCR。固定(stick)校验位,ULCRSP,为UART总线上发送的奇偶位时间槽分

27、配一个固定奇偶值。固定值定义为标记(mark)奇偶(逻辑1)或空(space)奇偶(逻辑0)。ULCRPEN和ULCREPS帮助确定固定奇偶值。参看表18-14。ULCRNSTB定义在数据传输结束时所有发送的停止位的个数。接收器仅检测第一个停止位,而不管所选择的停止位的数目。字长度选择位(1和0)定义发送或接收的一个串行字符的数据位数目。字长度不包括起始位(START),奇偶校验位和停止位(STOP)。图18-9显示了ULCR的位。偏稳:0占_4前玄叩MCL4曲旨访问:用户读/写01234567DLABEPSPENNSTBWLS复位'全零图18-9线路控制寄存器(ULCR1和ULCR2)表18-13说明了ULCR的字段。表18-13ULCR字段说明位名字说明0DLAB分频器锁存访问位0访问除UDLB、UAFR和UDMB以外的所有寄存器。1可以访问UDMB、UDLB和UAFR。1SB设置断开。0发送正常UTHR数据到SOUT信号。1强制SOUT信号为逻辑0。不影响UTHR中的数据。2SP固定奇偶0禁止固定奇偶。1如果PEN=1和EPS=1,选择空(space)奇偶;如

温馨提示

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

评论

0/150

提交评论