嵌入式通信协议一览

无论哪种通信协议目的就是规定信息传输的格式,比如是向谁传输,是读还是写,传送的是数据还是命令。

一,串行

包括数据线和时钟线

1.IIC

数据线(SDL)时钟线(SCL),同步半双工,高位在前,一个主设备,多个从设备。

总线空闲时,两根线都是高电平,所有的数据须在SCL为高电平时保持稳定,所以定义SCL为高,SDA由高变低为起始;SCL为高,SDA由低变高为结束。

只有一根数据线,读写的状态怎么切换?SDA线一般由主设备控制,起始状态后,主设备发送的第一字节数据位从设备地址(一般是7位),第8位告知后面的数据是读是写。当从设备收到与自己匹配的地址,需给出应答信号。主发完第一个字节后,在第九个时钟前释放SDA,SDA被上拉电阻拉高,此时从设备就可以控制SDA线,把它拉低。当第九个时钟被主设备释放后,主设备会检查SDA线状态,为低代表从给出应答。从在SCL线拉低后,立即释放SDA线。

2. SPI

同步,高速,全双工,三根数据线(MOSI,MISO,SCK)

SPI是[单主设备( single-master) ]通信协议,这意味着总线中的只有一支中心设备能发起通信。当SPI主设备想读/写[从设备]时,它首先拉低[从设备]对应的SS线(SS是低电平有效), 接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,[主设备] 把信号发到MOSI实现"写”,同时可对MISO采样而实现"读”。

3.UART

UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)通信协议中,每个数据位不是直接通过时钟来打拍的,而是通过设置的波特率来控制。

高位在前,全双工即通信的双方可以同时发送和接收数据。

通信线空闲时为高电平,当有数据传送,首先一个起始位(低),数据帧(一般是八位),奇偶校验位(非必要),停止位(高),完成一次数据传送。

数据如何同步?TX和RX设定相同的数据收发速度(波特率)。接收器在每个数据位的中心时刻进行采样,以匹配发送器的发送速率。

4.CAN

CAN(Controller Area Network,控制器局域网),多用于汽车领域,采用差分线传输,抗干扰能力强。

二,并行

传输速度较并行慢,因为在传输过程要注意各路数据的对齐。并行所需的线路资源较多,且各传输线之间可能存在干扰。串行传输虽然只传送一路信号,但可以尽可能地提高传输速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值