STM32从入门到入土之UART解析——个人学习版

 UART  即通用异步接收器/发送器,是最常用的设备间通信协议之一

硬件电路

  • 简单的双向串口通讯有两根通讯线(发送端TX,接受端RX)
  • TX与RX需要交叉连接当只需要单向传输时,可以直接一根线
  • 电平不一致时,需要加电平转换芯片

 听到串口通讯时时常会想到RS232和RS485通讯,其实UART是软件协议,RS232和RS485是硬件协议

RS232和RS485他们都是基于UART软件协议运行的

电平标准 

电平标准是数据0和1的表达方式,是传输线缆中认为规定的电压与数据的对应关系,常用串口电平标准如下

  • TTL电平:+3.3V或5V表示1,0V表示0;芯片中通讯用此标准
  • RS232电平:-3~-15表示1,+3~+15表示0;用了反逻辑,因为电压较大,所以不适合热插拔
  • RS485电平:两线电压+2~+6表示1,-2~-6表示0;差分信号

串口参数及时序

  • 波特率:串口通讯的速率
    • 因为是异步通讯,交互双方需要默认一个统一的通讯速率
    • 在0和1的数据传输中,读取方每个周期都会检查线路的电平信号,波特率一致,则读取周期一致
  • 起始位:标志一个数据真的开始,固定位低电平
    • 当RX脚侦测一个周期内到电平信号从高电平变化为低电平时,则设备进入获取数据帧阶段
  • 数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
    • 低位先行的意思是8位的数据从低位开始发送,一直发送8次,一共经历8个周期。
    • 有些地方说数据位能到9位,其实是把校验位放到数据位中达成8+1=9位数据位
  • 校验位:用于数据验证,更具数据位计算得来
    • 奇校验,偶校验,无校验
    • 奇校验:数据位后多了一位,当数据位中有偶数个1,则在此位补1;当数据位中有奇数个1时,不用补
    • 偶校验:数据位后多了一位,当数据位中有奇数个1,则在此位补1;当数据位中有偶数个1时,不用补
    • 无校验,数据位后没有多余位
    • 引申有CRC校验
  • 停止位:用于数据帧与帧之间的间隔,固定为高电平
    • 停止位长度可以控制,比如设置1位或者2位,这个是为了调整数据帧与帧之间的间隔,1位值固定高电平一个周期,2位则固定高电平2个周期

      当起始位从高电平拉低到低电平,经过了数据位,校验位,直到停止位将电平信号拉高到高电平,一个数据帧的发送便完成了。

帧结构 

帧结构=起始位+数据位+校验位+停止位

 思考问题

为什么同样基于UART标准的RS232只能一主一从通讯而RS485则能一主多从通讯?

 他们是改变了硬件还是软件,如何改变的呢?

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Envis_liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值