【CANN】SPI通信、I2C通信
一、SPI通信
1.SPI通信
SPI是英语Serial Peripheral interface的缩写,顾名思义就是==串行外围设备接口==。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在== EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器==之间。
SPI是一种==高速==的,==全双工==,==同步的通信总线==,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如MSP430单片机系列处理器。
SPI优点
1):支持全双工通信
2):通信简单
3):数据传输速率快
SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:
- (1)MOSI- SPI总线主机输出/从机输入(SPI Bus Master Output/Slave lnput)。
- (2)MISO-SPI总线主机输入/从机输出( SPI Bus Master Input/Slave Output)。
- (3)SCLK一时钟信号,由主设备产生。
- (4)CS-从设备使能信号,由主设备控制Chip select) ,有的IC此pin脚叫SS。
2.SPI通信原理
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。
注:有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI。
3.CPOL时钟极性、CPHA时钟相位
CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿,数据发送是在下降沿。
CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,也就是SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
CPOL=1,CPHA=O:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是SCLK由高电平到低电平的跳变。所以数据采集是在下降沿,数据发送是在上升沿。
CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,也就是SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。
二、I2C通信
1.I2C通信
I2C总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信;I2C总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;I2C总线硬件结构简单,简化了PCB布线,降低了系统成本,提高了系统可靠性,因此在各个领域得到了广泛应用。
I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试,故障可以立即被寻址,软件也有利于标准化和模块化,缩短开发时间。
I2C总线上可挂接的设备数量受总线的最大电容400pF限制。
串行的8位双向数据传输速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。
总线具有极低的电流消耗,抗噪声干扰能力强,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽。
2.I2C通信原理
1.I2C的起始和结束条件
- 起始条件:在SCL线是高电平时SDA线从高电平向低电平切换这个情况表示起始条件。
- 停止条件:当SCL是高电平时SDA线由低电平向高电平切换表示停止条件。
如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便﹔但是,没有这种接口的微控制器在每个时钟周期至少要采样SDA线两次来判别有没有发生电平切换。
2.数据传送格式
- (1)字节传送与应答:每一个字节必须保证是8位长度。数据传送时,送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。
- (2)数据帧格式:12C总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/,用“0”表示主制发送数据(T), “1”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。
在总线的一次数据传送过程中,可以有以下几种组合方式:
1.主机向从机发送数据,数据传送方向在整个传送过程中不变
2.主机在第一个字节后,立即由从机读数据
3.在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。
总结
以上就是SPI通信、I2C通信的相关知识点,希望对你有所帮助。
- 点赞
- 收藏
- 关注作者
评论(0)