已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
18章 DUART本章介绍MPC8394E的两个通用异步接收器/发送器(UART universal asynchronous receiver/transmitter)。介绍其功能操作、DUART的初始化步骤、以及DUART寄存器的编程细节和特性。18.1 概述DUART包括两个通用异步接收器/发送器(UART)。这两个UART独立工作。本章所有UART相关的讨论都是针对其中一个接收器/发送器而言的。各UART通过系统时钟进行时钟同步。DUART编程模型和PC16552D兼容。UART为点对点接口,即只能够把两个UART设备连到连接信号上。如图18-1所示,每个UART模块的组成如下:l 接收和发送缓冲区l 用于数据流控制的清除发送输入端口()和请求发送输出端口l 用于产生波特率的16位计数器l 中断控制逻辑图18-1 UART结构图18.1.1 特性DUART包括以下特性:l 全双工操作。l 可编程模式,兼容原来的PC16450UART和PC16550D(能工作在FIFO模式下的PC16450改进版本)。l PC16450寄存器复位值。l 用于发送器和接收器的FIFO模式,提供16字节的FIFO。l 采用标准的异步通信位(START、STOP和奇偶校验)封装和解封串行数据。l 可屏蔽发送、接收、线路状态和MODEM状态中断。l 软件可编程的波特率发生器,将系统时钟用1到(216-1)分频,为发送器和接收器引擎生成16倍时钟。l 清除发送和发送就绪MODEM控制功能。l 软件可选择的串行数据格式(数据长度、奇偶校验、1/1.5/2停止位、波特率)。l 线路和MODEM状态寄存器。l 线路断开(Line-break)检测和产生。l 内部诊断支持、本地环路和断开功能。l 具有优先级的中断报告。l 过载、奇偶校验和帧错误检测。18.1.2 操作模式信道提供一个全双工的异步发送器和接收器,使用源自系统时钟的操作频率。发送器接收写入发送器保持寄存器(UTHR)的并行数据。在FIFO模式下,将数据直接放入发送器FIFO的内部发送器移位寄存器中。发送器将数据转换成串行位流,插入START、STOP和可选的奇偶校验位。最后将打包好的串行数据流输出到信道发送器串行数据输出信号线(SOUT)。可以轮询或中断驱动发送器状态。接收器接收信道接收器串行数据输入信号线(SIN)的串行数据位,将它们转换成并行格式,检测START位、奇偶校验位(如果有的话)和STOP位,将组装好的字符(去掉了START、STOP和奇偶校验位)从UART的接收器缓冲区(或FIFO)传输进来,以响应接收器缓冲寄存器读操作。可以轮询或中断驱动接收器状态。18.2 外部信号说明本节包括信号概述及详细信号说明。18.2.1 信号概述表18-1汇总了DUART信号。注意,尽管实际设备的信号名称常带有如表所示的前缀“UART_”,但本章一般采用功能(缩写的)信号名称。表18-1 DUART信号概述信号名称I/O引脚数复位值状态含义UART_SIN1:2I21串行输入数据UART1和UART2UART_SOUT1:2O21串行输出数据UART1和UART2I21清除发送UART1和UART2O21请求发送UART1和UART218.2.2 详细信号说明DUART信号的详细说明见表18-2。表18-2 DUART详细信号说明信号I/O说明UART_SIN1:2I串行数据输入。在UART1和UART2的接收器上通过各自的串行数据输入信号接收数据,先接收最低有效位。状态含义有效/无效 代表正在UART接口上接收的数据。时序有效/无效 一个内部逻辑采样信号,rxcnt,利用波特率发生器的频率在SIN上采样数据。UART_SOUT1:2O串行数据输出。当发送器禁用、空闲或在本地回送模式操作时,置位UART1和UART2(标记状态)的串行输出数据信号。将数据从这些信号移出,先发送最低有效位。状态含义有效/无效 代表在各自UART接口上发送的数据。时序有效/无效 一个内部逻辑采样信号,rxcnt,利用波特率发生器的频率更新并且驱动SOUT上的数据。I清除发送。分别连接到总线上其他UART设备的输出。可以设定在信号状态变化时产生中断。状态含义有效/无效 代表各自UART清除发送的状态。时序有效/无效 在每个系统时钟的上升沿采样。O请求发送。可以由接收器或发送器设定为自动有效和无效。当连接到发送器的输入时,可以使用这个信号控制串行数据流。状态含义有效/无效 代表正在各自UART发送的数据。时序有效/无效 在每个系统时钟的上升沿更新和驱动。18.3 内存映射/寄存器定义有两套完整的DUART寄存器集合(一套为UART1服务,一套为UART2服务)。这两个UART完全相同,只是UART1的寄存器偏移地址在0x0_4500(本地),UART2的寄存器偏移地址在0x0_4600(本地)。在本章中,寄存器用单词首字母缩写的符号来表示,例如LCR表示UART1和UART2的线路控制寄存器。每个UART接口中的寄存器均用于配置、控制和状态。分频系数锁存器访问位,ULCRDLAB,用来访问分频系数锁存的低位和高位寄存器和备用功能寄存器。有关ULCKDLAB的更多信息参见18.3.1.7节“线路控制寄存器(ULCK1 和ULCR2)”。所有DUART寄存器均只有1个字节宽,因此读写这些寄存器都必须是字节宽度的操作。表18-3提供了寄存器汇总,以及包含每个寄存器详细信息的节和页的参考。0x4000-0x4FFF中未定义的字节地址空间是保留的。表18-3 DUART寄存器汇总表偏移寄存器访问复位值节/页0x0_4500URBRULCRDLAB = 0 UART1接收器缓冲寄存器R0x0018.3.1.1/18-6UTHRULCRDLAB = 0 UART1发送器保持寄存器W0x0018.3.1.2/18-6UDLBULCRDLAB = 1 UART1分频器低有效字节寄存器R/W0x0018.3.1.3/18-70x0_4501UIERULCRDLAB = 0 UART1中断允许寄存器R/W0x0018.3.1.4/18-8UDMBULCRDLAB = 1 UART1分频器高有效字节寄存器R/W0x0018.3.1.3/18-70x0_4502UIIRULCRDLAB = 0 UART1中断ID寄存器R0x0118.3.1.5/18-9UFCRULCRDLAB = 0 UART1FIFO控制寄存器W0x0018.3.1.6/18-10UAFRULCRDLAB = 1 UART1备用功能寄存器R/W0x0018.3.1.12/18-160x0_4503ULCRULCRDLAB = x UART1线路控制寄存器R/W0x0018.3.1.7/18-110x0_4504UMCRULCRDLAB = x UART1MODEM控制寄存器R/W0x0018.3.1.8/18-130x0_4505ULSRULCRDLAB = x UART1线路状态寄存器R0x6018.3.1.9/18-130x0_4506UMSRULCRDLAB = x UART1MODEM状态寄存器R0x0018.3.1.10/18-150x0_4507USCRULCRDLAB = x UART1临时寄存器(用于测试读写操作)R/W0x0018.3.1.11/18-150x0_4510UDSRULCRDLAB = x UART1DMA状态寄存器R0x0118.3.1.13/18-160x0_4600URBRULCRDLAB = 0 UART2接收器缓冲寄存器R0x0018.3.1.1/18-6UTHRULCRDLAB = 0 UART2发送器保持寄存器W0x0018.3.1.2/18-6UDLBULCRDLAB = 1 UART2分频器最低有效字节寄存器R/W0x0018.3.1.3/18-70x0_4601UIERULCRDLAB = 0 UART2中断允许寄存器R/W0x0018.3.1.4/18-8UDMBULCRDLAB = 1 UART2分频器最高有效字节寄存器R/W0x0018.3.1.3/18-70x0_4602UIIRULCRDLAB = 0 UART2中断ID寄存器R0x0118.3.1.5/18-9UFCRULCRDLAB = 0 UART2FIFO控制寄存器W0x0018.3.1.6/18-10UAFRULCRDLAB = 1 UART2备用功能寄存器R/W0x0018.3.1.12/18-160x0_4603ULCRULCRDLAB = x UART2线路控制寄存器R/W0x0018.3.1.7/18-110x0_4604UMCRULCRDLAB = x UART2MODEM控制寄存器R/W0x0018.3.1.8/18-130x0_4605ULSRULCRDLAB = x UART2线路状态寄存器R0x6018.3.1.9/18-130x0_4606UMSRULCRDLAB = x UART2MODEM状态寄存器R0x0018.3.1.10/18-150x0_4607USCRULCRDLAB = x UART2临时寄存器R/W0x0018.3.1.11/18-150x0_4610UDSRULCRDLAB = x UART2DMA状态寄存器R0x0118.3.1.13/18-1618.3.1 寄存器说明下面几节介绍UART1和UART2的寄存器。18.3.1.1 接收器缓冲寄存器(URBR1和URBR2)这些寄存器包含接收到的来自UART总线上的数据。在FIFO模式下,读时返回接收到的第一个字节。关于FIFO状态信息,参看UDSRRXRDY的说明。除了过载情况外,URBR按接收顺序返回数据。参看18.3.1.9节“线状态寄存器(ULSR1和ULSR2)”中的ULSROE说明。图18-2显示了接收器缓冲寄存器。注意,这些寄存器和UTHR具有相同的偏移。图18-2 接收器缓冲寄存器(URBR1和URBR2)表18-4说明了URBR。表18-4 URBR字段说明位名字说明0-7DATA从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中的位。图18-3 发送器保持寄存器(UTHR1和UTHR2)表18-5说明了UTHR。表18-5 UTHR字段说明位名字说明0-7DATA写入UTHR的数据 只写18.3.1.3 分频器高位和低位有效字节寄存器(UDMB和UDLB)UDLB和分频器高有效字节寄存器(UDMB)连接在一起构成分频器,用来实现DUART输入时钟的分频。波特率发生器的输出频率为波特率的16倍,因此期望的波特率=平台时钟频率/(16xUDMB|UDLB)。等价的,UDMB|UDLB|0b0000=平台时钟频率/期望的波特率。可以通过特定的输入时钟频率产生的波特率如表18-8所示。图18-4显示了UDMB的位。表18-4 分频器高字节寄存器(UDMB1和UDMB2)表18-6说明了UDMB。表18-6 UDMB字段说明位名字说明0-7UDMB分频器高有效字节图18-5显示了UDLB的位。表18-5 分频器低有效字节寄存器(UDLB1和UDLB2)表18-7说明了UDLB。表18-7 UDLB字段说明位名字说明0-7UDLB分频器最低有效字节。它和UDMB连接在一起。表18-8给出了不同输入时钟频率的波特率。表18-8 波特率示例波特率(十进制)分频器输入时钟(系统时钟)频率(MHz)误差百分数(十进制)十进制十六进制9,60017366C82660.006419,2008683642660.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)。2将除数值减去1。3将第2步的结果乘以100,计算出最终的百分数错误。结果取绝对值(没有负数)。上述三步可以用下面的等式来表示:百分数错误值=(1-AFI/ICF)x10018.3.1.4 中断允许寄存器(UIER1和UIER2)UIER使用户可以屏蔽到MPC8349E可编程中断控制器(PIC)的特定UART中断。图18-6显示了UIER的位。图18-6 中断允许寄存器(UIER1和UIER2)表18-9说明了UIER的字段。表18-9 UIER字段说明位名字说明0-3保留4EMSI允许MODEM状态中断0 屏蔽UMSRDCTS置位时引起的中断。1 在UMSRDCTS改变状态时,允许并宣告中断。5ERLSI允许接收器线路状态中断0 屏蔽对ULSR过载位、奇偶校验位、帧格式错误位或断开中断位置位时产生的中断。1 在ULSR过载位、奇偶校验位、帧格式错位或断开中断置位时,允许并宣告中断。6ETHREI允许发送器保持寄存器空中断0 屏蔽由ULSRTHRE置位时引起的中断。1 当ULSRTHRE置位时,允许并宣告中断。7ERDAI允许接收数据可用中断0 屏蔽新的接收数据可用或接收数据超时时的中断。1 当从外部设备接收了新的数据字符和/或在FIFO模式下发生超时中断时,允许并宣告中断。18.3.1.5 中断ID寄存器(UIIR1和UIIR2)UIIR指示来自相应UART的中断挂起以及什么类型的中断是活动的。它们还指示FIFO是否被允许。DUART将中断分成四个优先级,并将它们记录到对应的UIIR中。按优先顺序的四级中断条件如下:l 接收器线路状态l 接收数据就绪/字符超时l 发送器数据保持寄存器空l MODEM状态更加详细的说明见表18-11。在读取UIIR时,相关的DUART串行信道冻结所有中断并指示挂起的最高优先级中断。在出现读事务时,相关的DUART串行信道记录新中断,但不改变UIIR的内容,直到读访问完成。图18-7显示了UIIR的位。图18-7 中断ID寄存器(UIIR1和UIIR2)表18-10说明了UIIR的字段。表18-10 UIIR字段说明位名字说明0-1FEFIFO允许。反映UFCRFEN的设置。2-3保留4IID3中断ID位,标识表18-11中说明的尚未处理的最高优先级的中断。仅当FIFO模式的超时中断挂起时才将IID3和IID2一起置位。5-6IID2-IID1中断ID位,标识表18-11中说明的尚未处理的最高优先级的中断。7IID0IID0指示有中断挂起0 UART有一个活动中断等待服务。1 没有挂起的中断。UIIR寄存器包含的位的说明见表18-11。表18-11 UIIR IID位汇总IID3IID0优先级中断类型中断说明如何复位中断00010110最高接收器线路状态过载错、奇偶校验错、帧格式错或断开中断。读线路状态寄存器0100第二收到的数据可用FIFO模式下接收的数据可用或达到触发水平。读接收器缓冲寄存器或接收器FIFO中的字节数目降到触发水平以下。1100第二字符超时在最近的四个字符时间内没有字符送入或者移出接收器FIFO,并且在接收器FIFO中至少有1个字符。读接收器缓冲寄存器0010第三UTHR空发送器保持寄存器空。读UIIR或者写UTHR0000第四MODEM状态自上一次读UMSR以来输入值发生了变化。读UMSR18.3.1.6 FIFO控制寄存器(UFCR1和UFCR2)UFCR用于允许和清除接收器和发送器FIFO,设置接收器FIFO触发水平以控制接收数据可用中断,以及选择DMA信号的类型。只能在置位FIFO允许位的时候才可以设定UFCR位。当FIFO模式变成16450模式(非FIFO模式)时,自动从FIFO中清除数据。反之亦然。在清除了接收器FIFO中所有数据之后,并不清除接收器内部移位寄存器。同样的,清除了发送器FIFO中的字节后并不清除发送器内部移位寄存器。TFR和RFR都是自清除的。图18-8显示了UFCR的位。图18-8 FIFO控制寄存器(UFCR1和UFCR2)表18-12说明了UFCR的字段。表18-12 UFCR字段说明位名字说明0-1RTL接收器触发水平。当UIERERDAI 置位且接收器FIFO中的字节数目等于RTL值时,产生接收数据可用中断。00 1字节01 4字节10 8字节11 14字节2-3保留4DMSDMA模式选择。参看18.4.5.2节“DMA模式选择”。0 UDSRRXRDY和UDSRTXRDY位为模式01 如果UFCRFEN=1,则UDSRRXRDY和UDSRTXRDY位为模式15TFR发送器FIFO复位。0 无动作1 清除发送器FIFO中的所有字节,并将FIFO计数器/指针复位为0。6RFR接收器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总线上发送的奇偶位时间槽分配一个固定奇偶值。固定值定义为标记(mark)奇偶(逻辑1)或空(space)奇偶(逻辑0)。ULCRPEN和ULCREPS帮助确定固定奇偶值。参看表18-14。ULCRNSTB定义在数据传输结束时所有发送的停止位的个数。接收器仅检测第一个停止位,而不管所选择的停止位的数目。字长度选择位(1和0)定义发送或接收的一个串行字符的数据位数目。字长度不包括起始位(START),奇偶校验位和停止位(STOP)。图18-9显示了ULCR的位。图18-9 线路控制寄存器(ULCR1 和 ULCR2)表18-13说明了ULCR的字段。表18-13 ULCR字段说明位名字说明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)奇偶;如果PEN=1和EPS=0,选择标记(mark)奇偶。3EPS偶校验选择。参看表18-14。0 如果PEN=1和SP=0,选择奇校验。1 如果PEN=1和SP=0,选择偶校验。4PEN允许奇偶校验0 不产生和校验奇偶。1 为发送器时产生奇偶位,为接收器时校验奇偶。5NTSB停止位(STOP)数目0 在传输的数据中产生一个停止位。1 当选择5位数据长度时,产生1 1/2停止位。当选择6、7或者8位字长度时,产生2个停止位。6-7WLS字长度选择。组成字符长度的位数。00 5位01 6位10 7位11 8位表18-14 使用ULCRPEN、ULCRSP和ULCREPS选择奇偶PENSPEPS选择校验000无奇偶001无奇偶010无奇偶011无奇偶100奇奇偶101偶奇偶110标记(Mark)奇偶111空(Space)奇偶18.3.1.8 MODEM控制寄存器(UMCR1和UMCR2)UMCR控制与UART总线上的外部设备的接口,如图18-10所示。图18-10 MODEM控制寄存器(UMCR1和UMCR2)表18-15说明了UMCR字段。表18-15 UMCR字段说明位名字说明02保留,应清除3LOOP本地回送模式0 正常操作1 工作时,可以从同一个UART的URBR中读取写入UTHR的数据,UMCRRTS和UMSRCTS连接在一起45保留6RTS发送就绪0 使对应的/UART_RTS输出无效。1 使对应的/UART_RTS输出有效。通知外部MODEM或外围设备UART已经准备好发送/接收数据。7保留18.3.1.9 线路状态寄存器(ULSR1和ULSR2)ULSR监控UART总线上的数据传输状态,如图18-11所示。为了从通过UART总线接收的正确字符中分离出状态位,软件应先读ULSR再读URBR。图18-11 线路状态寄存器(ULSR1和ULSR2)表18-16说明了ULSR的字段。表18-16 ULSR字段说明位名字说明0RFE接收器FIFO错误0 当接收器FIFO无错或者读ULSR时没有遗留的接收器FIFO错时清除。1 接收器FIFO中的一个字符遇到错误(帧格式、奇偶校验或者断开中断)时置位。1TEMT发送器空0 UTHR或内部发送器移位寄存器有数据字符。在FIFO模式下,发送器FIFO或内部发送器移位寄存器中有数据字符。1 UTHR和内部发送移位寄存器都为空。在FIFO模式下,发送器FIFO和内部发送器移位寄存器都为空。2THRE发送器保持寄存器空0 UTHR非空1 已经将数据字符从UTHR传输到内部发送器移位寄存器。在FIFO模式下,发送器FIFO内没有数据字符。3BI断开中断0 在读ULSR或在检测到有效数据传输时(即收到停止位)清除。1 收到逻辑0的时长超过起始位+数据位+校验位+1个停止位的时长。在SIN返回到标记状态(逻辑1)并且检测到有效起始位(START)之后才装入新字符。在FIFO模式下,会在FIFO中遇到零字符(零字符在FIFO顶部)。在FIFO模式下,仅存储零字符。4FE帧格式错误0 在读ULSR或将新字符从接收器移位寄存器装入URBR时清除。1 接收数据的停止位错误(仅检查第一个停止位)。在FIFO模式下,当在FIFO中遇到检测到帧格式错的字符时(即该字符在FIFO顶部)置位FE。遇到帧格式错误后需要重新同步。UART假定帧格式错(当希望读到逻辑1(停止位)时却读到逻辑0)是因为停止位覆盖了下一个起始位,因此它认为该逻辑0采样是一个真的起始位,之后就接收后续的新数据。5PE奇偶校验错误0 在读ULSR时或将新字符装入URBR时清除。1 在接收数据时检测到不期望的奇偶校验值。在FIFO模式下,带有错误的字符位于FIFO顶部。6OE过载错误0 读ULSR时清除。1 读URBR之前,它被新字符覆盖。旧字符丢失。在FIFO模式下,接收器FIFO满(不考虑接收器FIFO触发水平),且已将新字符接收到内部接收器移位寄存器。旧字符被新字符覆盖。接收器FIFO中的数据未被覆盖。7DR数据就绪0 在读URBR时或读取了接收器FIFO中的所有数据时清除。1 在URBR或接收器FIFO中收到字符。18.3.1.10 MODEM状态寄存器(UMSR1 和UMSR2)UMSR跟踪为对应UART设置的MODEM(或外部设备)的状态,如图18-12所示。图18-12 MODEM状态寄存器(UMSR1 和UMSR2)表18-17说明了UMSR的字段。表18-17 UMSR字段说明位名字说明02保留,应清除。3CTS清除发送。代表来自外围设备的输入引脚的相反值。0 对应n无效。 1 对应n有效。MODEM或者外设准备好数据传输。46保留,应清除。7DCTSDelta清除发送0 自从上一次读UMSRCTS之后,对应的n信号无变化。1 自从上一次读UMSRCTS 之后,对应的n信号有变化。如果置位UIEREMSI检测该状态,则会引起中断。18.3.1.11 中间结果寄存器(USCR1 和USCR2)USCR用于调试软件或者DUART硬件,如图18-13所示。USCR不影响DUART的操作。图18-13 中间结果寄存器(USCR)表18-18说明了USCR的字段。表18-18 USCR字段说明位名字说明07DATA数据18.3.1.12 备用功能寄存器(UAFR1和UAFR2)UAFR如图18-14所示,允许软件使用同一个写操作同时写UART1和UART2的寄存器。UAFR还提供了用于设备性能监控的方法,以记录波特时钟。图18-14 备用功能寄存器(UAFR)表18-19说明了UAFR的字段。表18-19 UAFR字段说明位名字说明05保留6BO波特时钟选择0 波特时钟不是门控时钟信号1 波特时钟是门控时钟信号7CW并发写允许0 禁止写UART1和UART21 允许并发写对应的UART寄存器。对UART1寄存器进行的写操作同时作用于对应的UART2寄存器,反之亦然。18.3.1.13 DMA状态寄存器(UDSR1 和UDSR2)DMA状态寄存器返回发送器和接收器FIFO的状态,并为对FIFO的DMA数据操作提供帮助。DMA状态寄存器如图18-15所示。图18-15 DMA状态寄存器(UDSR)表18-20说明了UDSR的字段。表18-20 UDS字段说明位名字说明05保留6TXRDY发送器就绪。反映发送器FIFO或者UTHR状态。该状态依赖于所选择的DMA模式,DMA模式由UFCRDMS和UFCRFEN确定。0 清除该位,如表18-22所示。1 置位该位,如表18-21所示。7RXRDY接收器就绪。这个只读位反映接收器FIFO或者URBR的状态。该状态依赖于选择的DMA模式,DMA模式由UFCRDMS和UFCRFEN确定。0 清除该位,如表18-24所示。1 置位该位,如表18-23所示。表18-21 UDSRTXRDY置位条件DMSFENDMA模式含义000在将第一个字符装入发送器FIFO或者UTHR后置位TXRDY。010100111当发送器FIFO满时置位TXRDY。表18-22 UDSRTXRDY清除条件DMSFENDMA模式含义000在发送器FIFO或者UTHR中无字符时清除TXRDY。010100111在发送器FIFO或者UTHR中无字符时清除TXRDY。当发送器FIFO不满时,TXRDY保持清除。表18-23 UDSRRXRDY置位条件DMSFENDMA模式含义000在接收器FIFO或者URBR中无字符时置位RXRDY。010100111在未达到触发水平且无超时时置位RXRDY。表18-24 UDSRRXRDY清除条件DMSFENDMA模式含义000在接收器FIFO或者URBR中至少有一个字符时清除RXRDY。010100111当达到触发水平或者超时时清除RXRDY。RXRDY保持清除,直到接收器FIFO空。18.4 功能说明该通信信道提供一个全双工的异步发送器和接收器,它使用源自系统时钟信号的操作频率进行工作。发送器接受写入UTHR的并行数据。在FIFO模式下,将数据直接放入内部发送器移位寄存器或者FIFO发送器参看18.4.5节“FIFO模式”。发送寄存器将数据转换成为串行位流,并且插入合适的START、STOP和可选的奇偶校验位。最后寄存器将打包好的串行数据流输出到信道的发送器串行数据输出(SOUT)。可以轮询或中断驱动发送器的状态。接收器在信道的接收器串行数据输入(SIN)上接收串行数据,将数据转换成并行格式,并检查START位、STOP位和奇偶校验位。在FIFO模式下,接收器去掉START,STOP和奇偶校验位,然后传输接收器缓冲区或接收器FIFO中的装配好了的字符。在响应UART接收器缓冲寄存器(URBR)读操作时开始传输。可以轮询或中断驱动接收器的状态。18.4.1 串行接口UART总线是一个串行、全双工、点对点的总线,如图18-16所示。因此,只能将两个设备连接到同一个信号上,并且不需要地址或者仲裁总线周期。两个带奇偶校验位和2个停止位的7位数据传输图18-16 UART总线接口事务处理协议举例标准的UART总线传输包括以下三个或四个部分。l START位l 数据传输(最低有效位是总线上的第一个数据位)l 奇偶校验位(可选)l STOP位内部逻辑采样信号rxcnt使用波特率发生器的频率将数据位送往SOUT。下面几节说明串行接口的四个组成部分、波特率发生器,本地回送模式、各种错误和FIFO模式。18.4.1.1 START位UTHR写操作在SOUT信号上产生一个START位。图18-16显示,将START位定义成逻辑0。START位表示一次新的数据传输的开始,数据传输的长度由ULCR中设定的位长度限制。当总线空闲时,SOUT为高。18.4.1.2 数据传输每次数据传输包含5,6,7或8位的数据。发送器和接收器UART设备的ULCR数据位长度在传输开始之前必须达成一致,否则会出现奇偶校验错或者帧错误。在UTHR写入时开始数据传输。同时产生START位,后面紧接着5到8位先前写入UTHR的数据。按照最低位到最高位的顺序驱动数据位。在奇偶校验位和STOP位之后,如果UTHR中写入了新的数据,则开始新的一轮传输。18.4.1.3 奇偶校验位用户可选择使用奇校验、偶校验,无奇偶校验还是固定校验(参看18.3.1.7节“线路控制寄存器(ULCR1和ULCR2)”)。在传输数据之前,接收器和发送器的奇偶校验定义必须一致。在接收数据时,如果检测到非期望的奇偶校验值,则会产生奇偶校验错误。(参看18.3.1.9节“线路状态寄存器(ULSR1和ULSR2)”)。18.4.1.4 STOP位发送器设备通过产生一个停止位(STOP)来结束写传输。STOP位始终为高。用户可以在ULCR中设定STOP位的长度。在传输数据之前,接收器和发送器的STOP位长度必须一致。如果检测到错误STOP位,则发生帧格式错误。18.4.2 波特率发生器逻辑每个UART都包含一个独立的可编程波特率发生器,该发生器以系统时钟作为输入,将输入除以1到216-1进行分频。将波特率定义为可以在UART总线上每秒钟发送的位数。计算波特率的公式如下:波特率=(1/16)X(系统时钟频率/分频值)因此,波特率发生器输出的频率是波特率的16倍。分频值由以下两个8位寄存器组成的16位二进制数决定:l UART分频器高有效字节寄存器(UDMB)l UART分频器低有效字节寄存器(UDLB)在装入上述两个分频系数锁存器的任何一个时,就装入16位的波特率计数器。为确保波特率发生器正常工作,必须在初始化过程中装入分频系数锁存器。在开始传输之前,必须将同一总线上的两个UART设备设定为相同的波特率。允许UAFRBO可以将波特时钟传输到性能监控器。这可以用来确定波特率错误。18.4.3 本地回送模式本地回送模式用于诊断测试。可以从同一个UART的接收器缓冲寄存器中读出写入UTHR的数据。这种模式下,在内部将MODEM控制寄存器的UMCRRTS和MODEM状态寄存器的UMSRCTS连在一起。将发送器的SOUT置为逻辑1,将接收器的SIN端断开。发送器移位寄存器的输出回送到接收器移位寄存器的输入。将(输入信号)断开,将从内部连接到,并且(输出信号)无效。在该诊断模式下,发送出去的数据立刻被接收。在本地回送模式下,可以验证DUART的发送和接收数据路径。注意,在本地回送模式下,发送和接收中断完全有效,可以由中断允许寄存器(UIER)控制。18.4.4 错误下面几节介绍数据在UART总线上传输时可能出现的帧格式、奇偶校验错误和过载错误。如下将要说明的那样,在读线路状态寄存器(ULSR)时,这些错误位通常被清除。18.4.4.1 帧格式错当检测到错误的停止位(STOP)时,就发生帧格式错误并置位ULSRFE。注意,只检测第一个停止位。在FIFO模式下,当FIFO顶部的字符检测到帧格式错误时置位ULSRFE。在帧格式错误发生以后,需要重新同步。 UART假定帧格式错(当希望读到逻辑1(停止位)时却读到逻辑0)是因为停止位覆盖了下一个起始位。读ULSR时或者将一个新字符从接收器移位寄存器装入URBR时,清除ULSRFE。18.4.4.2 奇偶校验错接收数据时,如果检测到不期望的奇偶校验值,则发生奇偶校验错并置位ULSRPE。在FIFO模式下,当FIFO顶部的字符由奇偶校验错时置位ULSRPE。读ULSR时或者将一个新字符装入URBR时,清除ULSRPE。18.4.4.3 过载错当检测到一个新(覆盖字符)停止位且老字符丢失时,就发生过载错并置位ULSROE。在FIFO模式下,当FIFO接收器满(不管接收器FIFO触发水平的设置)且已将新字符接收到内部接收器的移位寄存器之后置位ULSROE。不覆盖FIFO中的数据,仅覆盖移位寄存器中的数据。因此立即发生中断。读ULSR时清除ULSROE。18.4.5 FIFO模式UART使用备用功能模式(FIFO模式)将处理器核从繁重的软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《园林设计初步》2022-2023学年第一学期期末试卷
- 门卫室施工组织设计方案
- 石河子大学《水利工程监理》2023-2024学年第一学期期末试卷
- 石河子大学《临床技能学二》2021-2022学年第一学期期末试卷
- 石河子大学《工业制剂综合实验》2022-2023学年第一学期期末试卷
- 沈阳理工大学《数字信号处理》2023-2024学年第一学期期末试卷
- 沈阳理工大学《面向对象程序设计(C++)》2022-2023学年期末试卷
- 沈阳理工大学《翻译技能综合训练》2022-2023学年第一学期期末试卷
- 沈阳理工大学《车辆振动与噪声控制》2023-2024学年期末试卷
- 沈阳理工大学《包装设计》2023-2024学年第一学期期末试卷
- 家长学校资料(全套完整版)
- 品牌管理智慧树知到课后章节答案2023年下齐鲁工业大学
- 比亚迪财务报表分析
- 水压试验报告(带曲线图)
- Units68单元大单元教学设计课件英语七年级上册
- 2023年CSCO尿路上皮癌诊疗指南
- 在高三学生月考总结表彰会上的讲话
- 高价值医疗设备产品定价过程
- 保险行业创说会-课件
- 初中语文-江城子·密州出猎苏轼教学设计学情分析教材分析课后反思
- -让生活更美好 作文批改评语
评论
0/150
提交评论