两个单片机iic通讯程序_嵌入式设备中,多种通讯方式的总结

#科技V计划# 在嵌入式系统中,我们时常会使用到一些通讯。主要的通信方式主要包括以下几种:全双工,半双工,串行与并行通讯方式,同步和异步等。这几种方式也是嵌入式通讯的中需要掌握的几个特点。下面先介绍以下这几种通讯方式的定义,也方便大家进行理解分析。

f568a2732e5d03fc9a362495f041b855.png

全双工:可以双向同时进行数据的收与发。

半双工:不可同时进行双向数据的收发,但是可以分开进行收发数据。

单工:只可以单方向进行传输数据。

串行通信:数据进行一位一位的发送,只需要一条数据线就行。

并行通信:一组8位的数据同时发送过去,但是需要8根数据线。

同步通信:在两台设备之间公用同一个时钟信号,数据传输大部分为有效数据,传输效率高。

异步通信:在两台设备之间只有数据信号没有时钟信号,传输数据包含各种标志符,导致传输效率低。

通过上面对几个名词的解释,特点的分析,相信大家对于这几种方式都已经有了概念。像全双工,半双工,单工从这个名词定义上就可以区分他们的区别,需要注意的是这三种方式传输数据的特性。

e0e30a41703a9d2c7ea4fe9e2b2e148e.png

对于并行通信与串行通信可以从几特性上对他们进行区分。例如在通信距离串行通信更远,在通信距离上也强于并行通信,成本上也更低廉,因为只需要一根数据线就够了。但是他的传输速率相对来说就要慢很多,一位一位传输相对于并行的8位传输速率上肯定是要慢很多的。

通过对以上几个通讯间介绍,大家基本已经有了概念。下面主要给大家讲解一下嵌入式中,UART,SPI,IIC的一些区别于联系。这也是结合以上知识点进行区分记忆的。

UART通信

uart就是我们常说的串口,一般用于电路调速比较多,一些电路板也可以用来下载程序。在主从机进行通信的过程中,至少需要接三根线,RX,TX和GND。这里重点提一下地线,这里双方共地很重要,这一点之前遇到过一个坑 。这里就不详细说明了。tx线主要用于进行数据发送,rx线主要用于接收数据。这里注意一点,主从机数据线是相反的。也就是说你的主机接tx线,需要跟从机的rx线进行连接。

23f725992c3f75006e699cb60fd03a1f.png

串口传输数据有起始位,结束位,校验位,以及有效数据位。一般用一个逻辑0的电平信号表示起始位,用1,2个逻辑1信号表示结束位。有效数据一般在5-8位数据。里面的校验位一般使用奇偶校验。使用串口调试助手的时候,也会有这个选项,大家可以注意。

IIC通信

IIC通信需要使用两根线,一根时钟线SCL和一根数据线SDA。IIC通信只需要两根线,因此它的接线相对简单,但是数据传输协议相对复杂一点。

这里假设主机A给从机B发送数据(A的SCL接B的SCL,A的SDA接B的SDA)。起初SDA和SCL上的电平都为高电平。然后A先把SDA拉低,等SDA变为低电平后再把SCL拉低(以上两个动作构成了IIC的起始位)。有了起始位,此时SDA就可以发送数据了,与此同时,SCL发送一定周期的脉冲(周期和PCLK有关,一般会在IIC的控制寄存器中设置)。

SDA发送数据和SCL发送脉冲的要符合的关系是:SDA必须在SCL是高电平是保持有效,在SCL是低电平时发送下一位(SCL会在上升沿对SDA进行采样)。规定一次必须传8位数据,8位数据传输结束后A释放SDA,但SCL再发一个脉冲(这是第九个脉冲),这会触发B通过将SDA置为低电平表示确认(该低电平称为ACK)。最后SCL先变为高电平,SDA再变为高电平(以上两个动作称为结束标志)如果B没有将SDA置为0,则A停止发送下一帧数据。

4eab753a87956cc9d4de48594115df33.png

数据有效性:当SCL为高电平时读取的SDA信号为有效信号,SCL低电平为数据无效,所以通常用来SDA的高低电平的转换。

9dbbe67c9a5e8405f047f694133f94dd.png

SPI通信

SPI是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。是一种高速全双工通信总线,一主多从。

14ba5bba9ebaece3cfe061b11b7e6eae.png

SPI 接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,片选信号低电平有效。如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。

下一期将给大家介绍三种通信方式的区别与联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值