1、 概述 USART 0和USART 1串行通信接口,它们能够分别运行于异步UART模式和同步SPI模式。两个USART具有相同的功能,并分配了各自的引脚。
2、 UART模式 UART模式提供异步串行接口。在UART模式中,接口使用2线或者含有RXD、TXD、RTS和CTS的4线。UART模式具有以下特点: a) 8位或9位有效载荷 b) 奇校验、偶校验或者无奇偶校验 c) 配置起始位和停止位电平 d) 配置LSB或者MSB首先传送 e) 独立收发中断 f) 独立收发DMA触发 g) 奇偶校验和帧校验出错状态 UART模式提供全双工异步传输,而且接收端的位同步不会干扰发送功能。发送的一个UART字节含有1个开始位、8个数据位、1个作为可选项的第9位数据或者奇偶校验位、1个或2个停止位。注意被发送的数据看做1个字节,虽然数据经常包含8位或者9位。 UART操作由USART控制状态寄存器(UxCSR)和UART控制寄存器(UxUCR)来控制的,其中x是USART编号,0或1; 当UxCSR.MODE设1时,USART选择的是UART模式。
2.1、UART发送 当USART收发数据缓存器(UxDBUF)写入数据,该字节传送到TXDx输出引脚上,UART开始发送。UxDBUF寄存器是双缓存的。 当传送开始时UxCSR.ACTIVE位置高,当传送结束时UxCSR.ACTIVE位置低。当传送结束后,UxCSR.TX_BYTE位置1。当UxDBUF寄存器准备接收新的发送数据时,将产生一个中断请求。该中断在开始传送后就立即发生;因此,当字节正在发送时,新的字节能够装入数据缓存器。
2.2、UART接收 当UxCSR.RE位置1时,UART启动接收数据。然后UART搜索RXDx输入脚的有效起始位,并设置UxCSR.ACTIVE为高位。当检测到一个有效起始位,接收到的字节被转移到接收寄存器。当接收完毕时,UxCSR.RX_BYTE位置1并产生一个接收中断请求。与此同时,UxCSR.ACTIVE变低位。 UxDBUF寄存器里接收到的数据是有效的,当UxDBUF数据被读取后,硬件将清除UxCSR.RX_BYTE位。 注意:当应用读取UxDBUF时,它不会马上清除UxCSR.RX_BYTE位,这是非常重要的。清除UxCSR.RX_BYTE位会使UART认为UART RX转移寄存器是空的,甚至认为它可能正在等待数据(通常由于连续传输)。(。。。。未翻译完)
2.3、UART硬件流控制 当UxUCR.FLOW位设1后,硬件流控制功能被启用。当接收寄存器是空的并接收使能后,RTS输出器设低电平。在CTS输入脚变低电平之前,不会发生字节传输。 2.4、UART特征格式 如果寄存器UxUCR中的BIT9和PARITY都被设置为1,那么奇偶校验产生而且检测使能。奇偶校验计算出来,作为第9位来传送。在接收期间,奇偶校验位计算出来而且与收到的第9位进行比较。如果奇偶校验出错,则UxCSR.ERR位设置为1。当UxCSR读取时,UxCSR.ERR位清0。 被传送的停止位数量可设为1位或2位,由寄存器UxUCR.SPB来设置。接收器总是检查1个停止位。如果接收到的第1个停止位不是期望的停止位电平,通过设置UxCSR.FE为高电平来标记出现帧错误。当UxCSR被读取后,UxCSR.FE被清除。当UxUCR.SPB被设置后,接收器将检查2位停止位。 注意,当第1个停止位被检查为OK时,接收中断被设置。如果第2位不是OK,将有一个设置帧出错位(UxCSR.FE)的延迟,这个延迟取决于波特率。
(...未翻译)
8、USART寄存器 每一个USART都有5个寄存器,如下 --UxCSR:USART 0/1 控制和状态器 --UxUCR:USART 0/1 UART控制器 --UxGCR:USART 0/1 一般控制器 --UxDBUF:USART 0/1 收发数据缓存器 --UxBAUD:USART 0/1 波特率控制器 U0CSR/U1CSR:控制和状态器
U0UCR/U1UCR:USART 0/1 UART控制器
U0GCR/U1GCR:USART 0/1 一般控制器
U0DBUF/U1DBUF:USART 0/1 收发数据缓存器
U0BAUD/U1BAUD:USART 0/1 波特率控制器
|
|
来自: xingwangjy > 《CC2530》