uart协议_UART通信协议

UART基本概念

通用异步收发器(Universal Asynchronous Receiver/Transmitter), 通常称作UARTUART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工的发送和接收。

嵌入式里面说的串口也是指的UART,在嵌入式领域可以说是应用非常广泛,在主机与辅助设备直接进行通信,比如使用PC通过UART给主机设备发消息,或者接收主机log等。

c432d91687c4213724b892b5cd529407.png

UART通信协议

UART工作原理是将传输数据的每个字符一位接一位地在UART总线上传输。

起始位:先发出一个逻辑”0”的信号,表示数据传输的开始。

数据位:紧接着起始位之后。 可以是5~8位逻辑0或1 ,构成一个字符。通常采用ASCII码。从最低位开始传送,靠波特率进行定位。

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

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

波特率:是控制数据传输速率的,表示每秒钟传送的位数。常用的波特率115200 9600等。

空闲位: 处于逻辑1状态, 表示当前总线处于空闲状态,没有数据传送。

86c48504065b81a56b2af79ca3218065.png

UART的数据发送和接收

发送时,数据被写入发送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.3v
  • GND:接地pin,一般也可不接,但是如果rx接收的数据有问题,就要接上这个pin
  • RX:接收数据pin
  • TX:发送数据pin
02fec4314be411504431c2dbeba8665b.png

当我们使用putty、SecureCRT等串口工具接收串口数据时出现异常,可能是在终端设置了流控,将流控关闭即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值