#科技V计划# 在嵌入式系统中,我们时常会使用到一些通讯。主要的通信方式主要包括以下几种:全双工,半双工,串行与并行通讯方式,同步和异步等。这几种方式也是嵌入式通讯的中需要掌握的几个特点。下面先介绍以下这几种通讯方式的定义,也方便大家进行理解分析。
全双工:可以双向同时进行数据的收与发。
半双工:不可同时进行双向数据的收发,但是可以分开进行收发数据。
单工:只可以单方向进行传输数据。
串行通信:数据进行一位一位的发送,只需要一条数据线就行。
并行通信:一组8位的数据同时发送过去,但是需要8根数据线。
同步通信:在两台设备之间公用同一个时钟信号,数据传输大部分为有效数据,传输效率高。
异步通信:在两台设备之间只有数据信号没有时钟信号,传输数据包含各种标志符,导致传输效率低。
通过上面对几个名词的解释,特点的分析,相信大家对于这几种方式都已经有了概念。像全双工,半双工,单工从这个名词定义上就可以区分他们的区别,需要注意的是这三种方式传输数据的特性。
对于并行通信与串行通信可以从几特性上对他们进行区分。例如在通信距离串行通信更远,在通信距离上也强于并行通信,成本上也更低廉,因为只需要一根数据线就够了。但是他的传输速率相对来说就要慢很多,一位一位传输相对于并行的8位传输速率上肯定是要慢很多的。
通过对以上几个通讯间介绍,大家基本已经有了概念。下面主要给大家讲解一下嵌入式中,UART,SPI,IIC的一些区别于联系。这也是结合以上知识点进行区分记忆的。
UART通信
uart就是我们常说的串口,一般用于电路调速比较多,一些电路板也可以用来下载程序。在主从机进行通信的过程中,至少需要接三根线,RX,TX和GND。这里重点提一下地线,这里双方共地很重要,这一点之前遇到过一个坑 。这里就不详细说明了。tx线主要用于进行数据发送,rx线主要用于接收数据。这里注意一点,主从机数据线是相反的。也就是说你的主机接tx线,需要跟从机的rx线进行连接。
串口传输数据有起始位,结束位,校验位,以及有效数据位。一般用一个逻辑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停止发送下一帧数据。
数据有效性:当SCL为高电平时读取的SDA信号为有效信号,SCL低电平为数据无效,所以通常用来SDA的高低电平的转换。
SPI通信
SPI是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。是一种高速全双工通信总线,一主多从。
SPI 接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,片选信号低电平有效。如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。
下一期将给大家介绍三种通信方式的区别与联系。