8.5.2 UART基本原理(1)
1.UART通信基础知识
DTE(Data Terminal Equipment)简称数据终端设备;DCE(Data Communications Equipment)简称数据通信设备。
事实上,RS-232C标准的正规名称是"数据终端设备和数据通信设备之间串行二进制数据交换的接口"。通常,将通信线路终端一侧的计算机或终端称为DTE,而把连接通信线路一侧的调制解调器称为DCE。
RS-232C标准中所提到的"发送"和"接收",都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送接收。
所谓"串行通信"是指DTE和DCE之间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度,如图8-42所示。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。
图8-42 串口通信位传输示意图
串行通信有两种基本的类型:异步串行通信和同步串行通信。两者之间***的差别是前者以一个字符为单位,后者以一个字符序列为单位。
本节将以异步串行通信为例,讲解串行通信的编程方法。
(1)异步串行传输格式。串行通信的格式如图8-43所示,包括起始位、数据位和停止位。一般的数据位和停止位是可以编程设置的。数据位有5、6、7、8位可选择,停止位有1、2位可选择。
图8-43 异步串行通信数据传输格式
一个完整的异步通信传输必须经历的步骤为:无传输、起始传输、数据传输、奇偶传输和停止传输。
(2)串行通信数据传输过程。由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有"接收移位寄存器"(串→并)和"发送移位寄存器"(并→串)。
在数据输入过程中,数据一位一位地从外设进入接口的"接收移位寄存器",当"接收移位寄存器"中已接收完一个字符的各位后,数据就从"接收移位寄存器"进入"数据输入寄存器"。CPU从"数据输入寄存器"中读取接收到的字符(并行读取,即D7~D0同时被读至累加器中)。"接收移位寄存器"的移位速度由"接收时钟"确定。
在数据输出过程中,CPU把要输出的字符(并行地)送入"数据输出寄存器","数据输出寄存器"的内容传输到"发送移位寄存器",然后由"发送移位寄存器"移位,把数据一位一位地送到外设。"发送移位寄存器"的移位速度由"发送时钟"确定。
接口中的"控制寄存器"用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口工作方式。
"状态寄存器"的各位称为"状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误。例如,用状态寄存器的D5位为"1"表示"数据输出寄存器"空,用D0位表示"数据输入寄存器"满,用D2位表示"奇偶检验错"等。能够完成上述"串/并"转换功能的电路,通常称为"通用异步收发器"(UART,Universal Asynchronous Receiver and Transmitter)。
【责任编辑:book TEL:(010)68476606】
点赞 0