关于嵌入式中UART通信协议的简易分析

嵌入式技术

1372人已加入

描述

通用异步收发器(Universal Asynchronous Receiver/Transmitter), 通常称作UART。UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工的发送和接收。嵌入式里面说的串口也是指的UART,在嵌入式领域可以说是应用非常广泛,在主机与辅助设备直接进行通信,比如使用PC通过UART给主机设备发消息,或者接收主机log等。

UART工作原理是将传输数据的每个字符一位接一位地在UART总线上传输。起始位:先发出一个逻辑”0”的信号,表示数据传输的开始。数据位:紧接着起始位之后。 可以是5~8位逻辑0或1 ,构成一个字符。通常采用ASCII码。从最低位开始传送,靠波特率进行定位。

奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。奇偶校验位可有可无。

停止位:它是一次传输的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

波特率:是控制数据传输速率的,表示每秒钟传送的位数。常用的波特率115200 9600等。空闲位:处于逻辑1状态, 表示当前总线处于空闲状态,没有数据传送。

发送时,数据被写入发送FIFO。如果UART 被使能,则会按照预先设置好的参数(波特率、数据位、停止位、校验位等)开始发送数据,一直到发送FIFO 中没有数据。所以在发送数据时要先判断发送FIFO是否为空,只有为空的情况下,才能往FIFO里面写。

接收数据时,UART的接收器会将接收的数据一位一位的移位到接收FIFO中,我们读接收FIFO既可以读到接收到的数据。UART的物理引脚,UART有4个pin(VCC, GND, RX, TX), 用的TTL电平, 低电平为0(0V),高电平为1(3.3V或以上)。

VCC:供电pin,一般是3.3vGND:接地pin,一般也可不接,但是如果rx接收的数据有问题,就要接上这个pinRX:接收数据pinTX:发送数据pin当我们使用putty、SecureCRT等串口工具接收串口数据时出现异常,可能是在终端设置了流控,将流控关闭即可。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分