UART总线

一,学习初衷

        原来自己也学过UART协议,知道原理,没有实际细致的去研究过,现在工作中通信都是UART,今天看底层代码的时候,有点晕,不知道设置的那些都是什么,重新再来过一遍,顺便做一下笔记,加深一下理解

二,通信基础

1,并行和串行

        下图所示为并行,通俗讲就是有多条数据线,发送数据的时候,可以一次性发送字节中的多个bit

       下图所示为串行,通俗讲就是只有一条数据线,发送数据的时候,只能一个bit一个bit发送

        并行总线多条线会有干扰,所以实际应用中多是串行总线

2,单工和双工

        单工只能单方向通信,一方只能发,一方只能收,如下图示

        双工在同一时刻既能收又能发

        半双工在同一时刻,只能一个方向发送,但是不同时间还可以接收

3,波特率

        用于描述UART通信时的通信速度,其单位为bps(bit per second),即每秒钟传送的bit的数量

4,同步和异步

        同步:收发双方时钟同步

        异步:收发双方各有各的时钟,时钟不同步

二,UART协议

        1,是什么?

        UART通用异步收发器,是一种通用的串行,异步通信总线,该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信 

        UART帧格式如下所示:

        空闲位必须是高电平

        起始位是低电平,表示一次通信的开始

        数据位要先发低位再发高位,比如0X55,二进制是01010101,发送的时候,要发成10101010

        校验位是前面数据位1的总数是奇数还是偶数,奇数的话就为0,偶数就是1,可有可无,非必须,只能校验不能修正,通信速度变慢。

        停止位位数是1/1.5/2位

        串口区分是发了几个1或者几个0,通过波特率来判断,比如波特率是1,那就是1S发一个BIT

连续的高电平看有多少个波特率,就是发了多少个1.

        串口通信因为两个设备的时钟不同步,所以不允许连续发送,防止累计误差出现,最多发一个字节,然后高电平空闲,再重新开始。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值