【CANN】SPI通信、I2C通信

举报
哥的时代 发表于 2023/11/13 16:35:25 2023/11/13
【摘要】 以上就是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通信的相关知识点,希望对你有所帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。