通信协议|常用硬件通信协议(UART、IIC、SPI、CAN)总结介绍

前言

硬件通信协议决定了硬件之间的通信方式并会影响通信质量,需根据不同的需求提前选择不同的通信协议以确定硬件连接拓扑图
根据通信时发送数据的位数可以分为并行通信以及串行通信。
其中串行通信同一时刻仅使用一个数据线进行通信,同一时刻仅能收发一位数据。抗扰能力更强,通信速度较慢、距离较远
并行通信可使用多根数据线同时进行数据传输,同一时刻可以收发多位数据。抗扰能力弱,通信速度较快、距离较近
根据通信双方对信息的收发处理能力可以分为全双工、半双工以及单工
全双工:同一设备可以同时接收发送数据,如通话时的通信模式,信号可以在两个设备同时正向反向传输
半双工:同一设备可以既可以接收数据,也可以发送数据,但不可以同时进行,如对讲机的通信模式,信号可以在两个设备之间正向或反向传输,但同一时刻只能单向传输
单工:同一设备只能接收或者发送数据,如常见红外遥控的通信模式,信号只能单向传输
根据传输时是否有时钟线可分为同步传输以及异步传输。一般情况下,异步传输以字节为单位,同步传输以数据帧或数据块为单位。
参考up:爱上半导体

UART

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART),是异步收发传输器,通信时一般需要三根线进行连接,分别为RXD、TXD以及GND,是一种一对一的通信方式,故传输信号时仅需要直接将传输的信息按既定的协议编码后发送,接收端接收信号后按协议解析即可。通常用于不同设备之间的近距离通信,结构简单。
UART通信时需确定通信设备两端的波特率保持一致(即通信时收发设备每秒接收或发送的数据量是一致的,在理解为比特率一致,比特率=波特率*码元所占位数)。波特率为每秒传输的符号数或称码元数,码元可以理解解析信息的最小单元,当码元仅有01两种状态时仅占一位,此时波特率=比特率
UART硬件连接

硬件连接要注意共地

IIC

IIC总线是一种双向二线制同步串行总线,只需要两根线即可在连接于总线上的器件之间传送信息,可用于多器件之间的通信,常用于板卡内部通信。
IIC硬件连接

通信时SCL为时钟同步信号线,SDA为数据传输信号线,仅有SCL中为高电平时SDA中的数据才能进行有效传输。
传输时标准信号帧如下
iic标准信号帧

通信拓扑结构中的每一个设备有一个属于自己的硬件地址,在传输时,每一个数据帧在起始位后需加入目标设备的硬件地址,然后再进行数据编码。通信时,由主机向对应地址从机发起读写请求,从机会对主机发出相应。通信时主从机的关系不是恒定的,可以根据传输需求改变。

CAN

控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线。can协议使用差分信号进行信号传输,因此需要两根线同时传输信号,一般将两根信号线螺旋为双绞线。传输时,通过保证两条线中的信号的压差不变提高数据传输的可靠性,因此适合长距离运输。
CAN硬件连接

传输时标准信号帧如下
can标准协议帧

SPI

串行外设接口(Serial Peripheral Interface, SPI)是一种高速的、全双工、同步的通信总线,通信拓扑结构中存在一个主机,其余的均为从机,只能主机与从机之间相互通信。硬件连接图如下
SPI硬件连接图

其中SS是片选信号,SCK是时钟信号,MOSI(master output slaver input)是主机对从机的写信号线,SIMO(slaver input master output)是主机对从机的读信号线。
SPI标准通信协议中存在有四种传输模式,存在一定的局限性
四种设计模式

总结

一些个人理解:通信设备之间的通信协议并不是一成不变的,所有通信的本质都是进行信号的传递,选择通信协议时需要根据信号传输的速度、效率、所用芯片、所用传感器以及信号量大小等等因素综合考虑
以上仅是一些常用的主流的标准通信协议

  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值