嵌入式系统通讯协议

Posted 一叶知秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式系统通讯协议相关的知识,希望对你有一定的参考价值。

#######I2C#######

I2C is a two wire protocol used to connect one or more "masters" with one or more "slaves".  salve devices包括了温度,湿度,运动感应器,以及EEPROMs.

和SPI相比,在软件编写方面,I2C要更复杂,因为I2C需要处理很多错误情况,SPI不需要。而且SPI比I2C快很多,(1-3Mbit/sec vs 100-400kbit/sec). I2C最大的优点就是

不论有多少设备,两条线就够了(因为设备并联),而SPI需要为每个设备一条线。而且和SPI的选择线不同,每个I2C设备都有internal addresses and are selected by a master through the transmission of this address over the bus. 所以当有大量设备时,I2C是个很好的选择。

I2C总线是由数据总线SDA和时钟SCL构成的串行总线,各种被控制器件均并列在这条总线上,每个器件都有一个唯一的地址识别,可以作为总线上的一个发送或接收器件。

I2C总线的几种信号状态:1. 空闲状态:SDA和SCL都为高电平。2.开始条件(S):SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。

3. 结束条件(P):SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。4. 数据有效:在SCL的高电平期间,SDA保持稳定,数据有效,SDA的改变只能发生在SCL低电平期间。

5. ACK信号:数据传输的过程中,接收器件每接收一个字节数据,要产生一个ACK信号,向发送器件发出特定的低电平脉冲,表示已经接收到数据。

总体来说就是:刚开始的时候SCL和SDA都是高电平,想要传输数据时,SDA拉低,并在SCL低电平期间,传输数据,一直保持到SCL高电平结束,在SCL低电平时,再次改变数据,进行传输。当结束传输时,在SCL低电平时,将SDA拉高。

write Transcation: S + Slave Address + R/W(-)=0  + A + Data + A + Data + A/A(-) + P

Read Transaction: S + Slave Address + R/W(-) =1 + A + Data + A + Data + A(-) + P

以上是关于嵌入式系统通讯协议的主要内容,如果未能解决你的问题,请参考以下文章

涂鸦智能暖风机嵌入式系统创建

涂鸦智能全功能智慧植物生长系统(嵌入式)

openssh

嵌入式操作系统与嵌入式处理器

(14)嵌入式软件开发工程师技能要求总结

CAN总线通讯时CANH和CANL压差式多少