logo资料库

uart协议中文版.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
UARTUARTUARTUART UARTUARTUARTUART(Universal Asynchronous Receiver/Transmitter)即通用异 步收发传输器,工作于数据链路层(协议层之一)。包含了 RS-232、 RS-422、RS-485 串口通信和红外(IrDA) 等等。UART 协议作为一 种低速通信协议,广泛应用于通信领域等各种场合。UART 基本可分 为并口通信及串口通信两种。 异步串口通信协议,工作原理是将传输数据的每个字符以串行方 式一位接一位的传输。图 1 给出了其工作模式: 图 1 UART 工作原理 其中每一位(bit)的意义如下: 起始位:先发出一个逻辑“0”的信号,表示传输字符的开始。 数据位:紧跟起始位之后。数据位的个数可以是 4、5、6、7、8 等,构成一个字符。通常采用 ASCII 码。从最低位开始传送,靠时钟 来定位。 奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得“1” 的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正 确性。 停止位:它是一个字符数据的结束标志。可以是 1 位、1.5 位、 2 位的高电平(逻辑“1”)。 - 1 -
空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送。 波特率:是衡量数据传输速率的指针。表示为每秒钟传送的二进 制位数(bit 数)。例如资料传送速率为 120 字符/秒,而每一个字符 为 10 位,则其传送的波特率为 10×120=1200 字符/秒=1200 波特。 软件 UART 控制:在嵌入式系统或者计算机中,并非直接对串 口直接进行操作,而是通过 SCI(串行通讯接口)模块对其进行控制。 (注:“SCI”首先由 Motorola 微串口微控制器而得名,SCI 另一种说 法是“UART 控制器”)常用的许多芯片中都包含了 SCI ,例如 ARM 的 S3C2410X 芯片内嵌了 3 个串行接口控制器,而 Nios 等软核芯片 则可以用选用 UART(RS232) 的 IP 对 UART 进行控制。PC 机则常用 16650 UART、16750 UART 等控制串口。 如果实现软件操作 UART 时,在 UART 检查端口管脚的串行活 动时,需要占用大量时间,让应用程序停滞,这会使得软件 UART 没有意义。但情况并非如此,来看一下标准的 10 位异步串行协议(包 含一个起始位,一个停止位和 8 个数据位)收发一个字符时的情况(如 图 2 所示)。 图 2 标准 10bitUART 收发字符时序图 在启动一次发送或接收操作之后,串行 UART(不论是软件还是 - 2 -
硬件形式的 UART)并不需要连续监控 I/O 线。在发送一个字符时,每 个位周期,UART 只需驱动一次发送信号线的状态,从起始位到 8 个 数据位直到结束位依次设置每个位的电平。在接收一个字符时, UART 在第一个下降沿时开始工作,之后只需在每个位时隙的中央对 接收线上的信号状态进行一次采样。 数字系统方面,我们可以用一对状态机来表征软件 UART 的行 为,一个状态机用于发送字符,另一个用于接收字符。对一个全双工 的 UART 而言,这两个状态机是并行运行的,需要两个独立的定时 器中断。这两个状态机都有主动和被动两种模式。发送状态机在收到 一个需发送的字符时跳出空闲状态,在结束位发送之后回到空闲状 态。接收状态机在检测到接收线上的一个下降沿时跳出空闲状态。在 检测到这个初始的低电平状态之后(该状态指示起始位已经开始),开 始对位时隙进行递减计数,同时按要求采样信号线上的每个信号位, 包括停止位。 为了避免不必要地占用主应用过多的时间,UART 状态机应该由 一些周期性的基于定时器的中断来激活。接收线上初始下降沿的检测 需要利用一个边沿触发的外部中断单独处理。如果一个状态机的定时 器被设置为每个 bit 周期发出一个中断请求,那么该状态机在每次中 断被触发时能够执行任何需要的操作 (而且如果需要,还能进入到下 一个状态)。用于实现状态机的代码应尽可能优化,因为只要软件 UART 处于活动状态,这些代码就会在后台连续运行。 - 3 -
分享到:
收藏