五种通信总线协议详解-创新互联
基础:
UART硬件连接
UART控制器
一般情况下处理器中都会集成UART控制器,我们使用UART进行通信时只需要对其内部的相关寄存器进行设置即可
Exynos4412下的UART控制器(Exynos4412的主频是1000兆)
设置引脚功能的本质是让引脚在芯片内部连接到某一个对应的控制器上
这里可以设置为GPIO、UART和PWM三种功能
通信基础 - 并行和串行
并行通信:
例如:char 类型的数据 1个字节8位 BIT[0] - BIT[7]可以一次性传送过去
串行通信:
过独木桥
单工和双工
单工通信:
发送器 -> 接收器
波特率(每秒钟传送的二进制位的个数)
波特率用于描述UART通信是的通信速度,其单位为(bps bit per second)即每秒钟传送的bit的数量
一、URAT(Universal Asynchronous Receiver Transmitter)
通用异步收发器,是一种通用的串行、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信
异步:收发双方时钟不同步
如果连续发了两个0或者两个1或者多个1或0,如何去判断1和0的个数?
方式一:通过时间去判定,波特率,每秒钟发送的二进制位的个数,那这样子可能会因为两部机器的时间有不同步而产生错位的情况
如何避免?
采用串行通信方式,每次只允许一个位通过,这样子就避免了错位的问题
串口通信可以避免累计误差的出现
UART存在的问题
1)电气接口不统一
字节传送与应答
IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位
同步信号
IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定。
典型IIC时序
1)主机向从机发送数据
2)从机向主机发送数据
注:阴影部分表示数据由主机向从机传送,无阴影部分表示从机向主机传送;A表示应答,A非表示非应答,S表示起始信号,P表示终止信号
3)主机先向从机发送数据,然后从机再向主机发送数据
停止有两种方式
1、主机不发
2、从机不接
五、SPI总线
SPI总线没有起始信号和终止信号
SPI(Serial Per ipheral Interface)是串行外设接口的缩写,SPI是一种高速的、全双工、同步的串行通信总线;SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备Master输入从设备Out输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、CS(片选)SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;
什么时候会用到4根以上的线?
多个从机的时候
寻址方式
当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备
通信过程
SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高电平表示逻辑‘1’,低电平表示逻辑‘0’;一个字节传送完成后无需应答即可开始下一个字节的传送;SPI总线采用同步方式工作,
时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送;
无应答过程可能会存在主机一直在发,但是从机没有接收到的情况
极性和相位
SPI总线有
四种不同的工作模式(00,01,10,11),取决于极性(CPOL)和相位(CPHL)这两个因素
CPOL表示SCLK空闲时的状态
CPOL=O,空闲时SCLK为低电平
CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
CPHA=0,每个周期的第一个时钟沿采样
CPHA=1,每个周期的第二个时钟沿采样
IIC和SPI的异同
相同点
1.均采用串行步的方式
2.均采用TTL电平,传输距离和应用场景类似
3.均采用主从方式工作
不同点
1.IIC为半双工,SPI为全双工
2.IIC有应答机制,SPI无应答机制
3.IIC通过向总线广播从机地址来寻址,SPl通过向对应从机发送使能信号来寻址
4.IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可调
SPI缺点
需要占用主机较多的口线(每个从机都需要一根片选线);
只支持单个主机;
没有指定的流控制,没有应答机制确认是否接收到数据
。
优点:
支持全双工操作;
操作简单;
数据传输速率较高。
网站题目:五种通信总线协议详解-创新互联
网站URL:http://ybzwz.com/article/edisg.html
![](/upload/otherpic27/8f7c1000716f4c6db665fe7b472e1afa.jpg)
![](/upload/otherpic27/ca867a6e9cea48ae80d7c9a7361729ef.jpg)
![](/upload/otherpic27/b3364243c852444da784a09e3f22b885.jpg)
![](/upload/otherpic27/dc06b372d7694de9a5e1b51214d0cb9c.jpg)
![](/upload/otherpic27/f40e80f0f2b74a2384c02bafc3855fae.jpg)
- UART只是对信号的时序进行了定义,而未定义接口的电气特性
- UART通信时一般直接使用处理器使用的电平,即TTL电平,但不同的处理器使用的电平存在差异,所以不同的处理器使用的UART通信时一般不能直接相连
- UART没有规定不同器间连接时连接器的标准,所以不同期间之间通过UART通信时连接很不方便
- 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,所以需要使用电平转换芯片才能与TTL电路连接
- 通信速度较低
- 易产生共模干扰,抗噪声干扰性较弱
- 传输距离较短(15m)
- 接口的信号电平值较低,不易损坏接口电路的芯片,且与TTL电平兼容,可方便地与TTL电路连接
- 通信速度快
- 抗噪声干扰性强
- 传输距离较远(1500m)
- 可实现多节点组网
- 主机发送起始信号启用总线
- 主机发送一个字节数据指明从机地址和后续字节的传送方向
- 被寻址的从机发送应答信号回应主机
- 发送器发送一个字节数据(这一个字节的数据最后一位来决定除第一次发送的是主机发送给从机还是从机发给主机)
- 接收器发送应答信号回应发送器... …(循环步骤4、5)
- 通信完成后主机发送停止信号释放总线
- IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据
- 主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,‘0'表示主机发送数据,'1'表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器
- SCL为高电平时,SDA由高变低表示起始信号
- SCL为高电平时,SDA由低变高表示停止信号
- 起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态,停止信号产生后总线处于空闲状态
![](/upload/otherpic27/00cfca4e39104f6091ded5ddee508813.jpg)
![](/upload/otherpic27/7156db756f1b455492b96745e90be0d0.jpg)
![](/upload/otherpic27/649500540e934ebca67a9815a936ded1.jpg)
![](/upload/otherpic27/f8a128c21a9847bf90c60de13771a0f0.jpg)
![](/upload/otherpic27/ca780cd6777d4193b58869e0e923a297.jpg)
![](/upload/otherpic27/37c18723e6dc4ef2bccc7b73215b9ac4.jpg)
![](/upload/otherpic27/22ead9629c7641d7a624379a795aca0d.jpg)
![](/upload/otherpic27/d57180614e9d41cb9dc729e40747b4a6.jpg)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站题目:五种通信总线协议详解-创新互联
网站URL:http://ybzwz.com/article/edisg.html