UART通信原理

波特率

就是每秒传送的bit数。

UART常用的波特率:

1200 baud = 1200bit/s833.3333 μs/bit

2400 baud = 2400bit/s416.6666 μs/bit

4800 baud = 4800 bit/s208.3333 μs/bit

9600 baud = 9600bit/s104.1666 μs/bit

19200 baud = 19200bit/s52.0833 μs/bit

38400 baud = 38400bit/s26.0416 μs/bit

57600 baud = 38400bit/s17.3611 μs/bit

115200 baud = 115200bit/s8.6805 μs/bit

总线空闲状态

当总线空闲时,常为1(高电平)。

数据传送单位

字节为一个传输单位。

每个单位字节按如下顺序包含以下内容:

Frame

起始位

数据位

奇偶校验位

停止位

Size

1 bit

5-9 bit

0-1 bit

1-2 bit

起始位:0b0

(必须是0)

数据位:0bxxxx_xxxx

(通常为8 bit,也可能是5 bit、6 bit、7 bit、9 bit,根据实际通信协议决定)

(发送时,先发低位,后发高位;接收时,先收高位,再收低位)

奇偶校验位:0bx

(分为无校验、奇校验、偶校验、常1、常0,根据实际通信协议决定)

停止位:0b1

(必须是1。通常是1 bit,也可能是2 bit或其他,根据实际通信协议决定)

举例

发送端向接收端按以下协议传输数据:

通信数据量

2 byte

波特率

4800 baud

起始位

1 bit

停止位

1 bit

数据位

8 bit

奇偶校验位

Odd(奇校验)

若某次通信建立后,传输指令0xA5 0x04,波形如下: 

(上图采用plant uml工具绘制,代码如下:)

@startuml
hide time-axis
scale 1 as 25 pixels

robust "发送端" as TX

TX has 1,0

@0
TX is 1

@1

@2
' 发送开始
'起始位
@3
TX is 0
'数据位0xA5 先低后高
@4
TX is 1

@5
TX is 0

@6
TX is 1

@7
TX is 0

@8
TX is 0

@9
TX is 1

@10
TX is 0

@11
TX is 1
'奇偶校验位
@12
TX is 0
'停止位
@13
TX is 1
'一个单位完成,开始发下一个单位
'起始位
@14
TX is 0
'数据位0x04 先低后高
@15
TX is 0

@16
TX is 0

@17
TX is 1

@18
TX is 0

@19
TX is 0

@20
TX is 0

@21
TX is 0

@22
TX is 1
'奇偶校验位
@23
TX is 0
'停止位
@24
TX is 1

@30

highlight 3 to 4 #lightblue
highlight 4 to 12 #lightgreen
highlight 12 to 13 #lightyellow
highlight 13 to 14 #pink

highlight 14 to 15 #lightblue
highlight 15 to 23 #lightgreen
highlight 23 to 24 #lightyellow
highlight 24 to 25 #pink

legend
Bule: 起始位
Green: 数据位
Yellow: 奇偶校验位
Pink: 停止位
end legend
@enduml

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值