在RS232串口通信中,看到一个奇特的现象,就是需要通信的双方各自独立地设置相同的的数字时钟,即波特率,以确保数字通信的双方的二进制比特传输信号时钟频率是一致的。这种方式简化了通信的硬件实现,但这种不灵活性也带来很大的麻烦。

本文的I2C和SPI总线通信案例,将展现如何通过专用的时钟信号线进行数字时钟同步。

之所以,把这两个案例放在一起,是因为,从通信原理的角度来看,这两种通信方式有极大的相识性,也有一定的差别。

通过比较,可以对计算机数字通信的物理层原理,有一个更加深刻的认识!

第1章 什么是I2C和SPI通信

第2章 I2C和SPI通信案例的需求架构

第3章 I2C和SPI通信的软硬件实现方案

3.1 SPI通信的软硬件架构

3.2 I2C通信的软硬件架构

3.3 一个master,多slave模型

第4章 I2C和SPI通信的原理模型

第5章 信源对信息的发送过程(向寄存器写数据)及其关键原理

5.1 信源

5.2 离散的数据信息

5.3 网络层编码

5.4 物理层信道编码

5.4.1 SPI物理层信道编码

5.4.2 I2C 物理层信道编码

5.5. 电信号的符号/码元编码,英文为symbol

5.6. 信号的发送与接口

5.6.1 SPI信号发送的时序

5.6.2 I2C信号发送的时序

第6章 信道对信息的传输过程

第7章. 信宿对信息的接收过程及其关键原理



第1章 什么是I2C和SPI通信

SPI (Serial Peripheral interface 串行外围设备接口)是由Motorola公司开发的一种 4线制、全双工、同步、主从、串行 总线,是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。

SPI 系统可直接与各个厂家生产的多种标准外围器件直接接口,一般使用4 条线:串行时钟线SCK、主机输人/从机输出数据线MISO、主机输出/从机输人数据线MOSI 和低电平有效的从机选择线SSEL.

I2C总线是由Philips公司开发的一种 2线制、半双工、同步、主从、串行 总线。是微处理控制单元(MCU)和外围设备之间进行通信的同步串行端口。

I2C只需要两根线即可在连接于总线上的器件之间传送信息, 一般使用2条线: SDA(串行数据线)和SCL(串行时钟线)。

上述两个串行总线主要应用在EEPROM、Flash、实时时钟(RTC)、数模转换器(ADC)、网络控制器、MCU、数字信号处理器(DSP)以及数字信号解码器之间。


第2章 I2C和SPI通信案例的需求架构


第3章 I2C和SPI通信的软硬件实现方案

3.1 SPI通信的软硬件架构

中断信号:不属于SPI总线,但可以用于SPI Slave外设通知MCU,其内部发生了某种事件,请求MCU进行读写操作。

CS:SPI支持1个master,连接多个Slave的场景,CS用于选择与Master通信的Slave设备。

SCK: 时钟信号,用于Slave设备从Master设备获取数字通信所必须的同步时钟。

MOSI: Master out Slave In, 用于Master向Slave发送二进制比特数据,即Master向Slave写数据

MISO: Master In Slave Out,用于Slave向Master发送二进制比特数据,即Master从Slave读数据

3.2 I2C通信的软硬件架构

中断信号:不属于I2C总线,但可以用于I2C Slave外设通知MCU,其内部发生了某种事件,请求MCU进行读写操作。

ADDR:I2C支持1个master,连接多个Slave的场景,ADDR信号用于设置某个I2C Slave设备的I2C地址,ADDR也不属于I2C总线。

SCL: 时钟信号,用于Slave设备从Master设备获取数字通信所必须的同步时钟。

SDA: 双向、地址数据线,这是一根复用信号线。(1)地址和数据复用;(2)Master读数据和写数据复用

3.3 一个master,多slave模型


第4章 I2C和SPI通信的原理模型


第5章 信源对信息的发送过程(向寄存器写数据)及其关键原理

5.1 信源

MCU的I2C或SPI驱动程序

5.2 离散的数据信息

需要写入寄存器的数据

5.3 网络层编码

I2C和SPI总线都支持一个master连接多个Slave。

因此这里需要指定:Slave设备的地址 + Slave内部寄存器的地址.

5.4 物理层信道编码

5.4.1 SPI物理层信道编码: FDD

(1)物理层帧帧结构

SPI总线并没有定义物理层的帧结构的标准,不同的Slave芯片设备,采用不同的物理层帧结构,这里仅仅展现其中的一种实现。

从上述示意图可以看出:

  • 比特时钟同步字前导码:无

通信两端的Master和Slave的时钟同步,通过专用的时钟信号线和片选信号的配合完成。