单片机的I2C和SPI通信的含义
扫描二维码
随时随地手机看文章
I2C和SPI是两种不同的通信协议。
当我们听到这个协议时,它似乎是不可实现的。事实上,协议只是人们定义的一个标准。我们只需要按照这个标准去做。例如,如果公司说我们早上9点上班,我们9点上班,或者我们扣工资,这就是协议。最常用的I2C通信芯片是EEPROM芯片,如ATMEL AT24CXX系列,除此之外还有该芯片的其他一些功能。使用SPI通信的芯片有外部闪存芯片,以及一些用于其他功能的芯片。
I2C通信需要两个引脚:SDA SCL。SCL是时钟引脚,SDA是数据引脚。
SPI通信需要3引脚或4引脚:CS SCK MOSI MISO。SPI通讯芯片销名字不一定是名字,可能有其他的名字,但意思是一样的,比如莫西人销手段“主机机器的输出输入”,SPI接口芯片可能SDI写的,就像SPI设备作为从机,所以它的SDI,这意味着“从机数据输入插口。
SPI通信过程如下:将CS引脚下拉,然后由SCK输出时钟,然后在MOSI引脚上输出数据,在MISO上获得数据。
大多数MCU有I2C端口和SPI端口,可能有几个I2C端口和SPI端口。但是,没有I2C端口和SPI端口的单片机,也可以通过普通引脚来模拟它们的定时通信。
另外,如果你是一个初学者,一定要学会使用通用的pin模拟,以更深入地理解他们通信的本质。
整个通信过程实际上就是对引脚电平进行控制和检测的过程。也就是说,第一天学习控制单片机的引脚电平和检测单片机的引脚电平。因此,I2C通信和SPI通信并不困难。
让我告诉你一个简单的沟通过程。例如,我们将下面的通信名称称为KJLWT。这个名字看起来很有趣,但实际上是中文“technology old naughty boy”的首字母缩写。主要是让大家明白,这个名字是用来吓唬人的。
我们用两条线通信,一条时钟线和一条数据线。时钟线实际上是用来产生脉冲波形的,更直接的是引脚高低信号,如下图所示:
例如,我们规定当时钟引脚高时,读取数据引脚的电平,并且需要8个连续的时钟来读取一个字节。在数据方面,如何给出数据呢?就像那样简单,数据馈送端,当一个低电平被检测到,表示数据在数据引脚上被发送的位。例如,数字0x88以二进制形式写入为10001000。让我们来看看传输这些数据的过程:从机器检测时钟针,检测到一个下降沿(即从高到低水平),数据发送的bit7体现数据大头针,比如bit7是1,1000年,1000年,数据销高水平,高水平的的主机时钟针,针测试数据,记录,从机器再次发现时钟的下降沿销后,和数据bit6反映了数据的别针,由于1000 1000 bit6是0,所以机器的数据确定,然后时钟引脚为高电平,主机检测数据引脚的高电平和低电平,然后记录位6…这样做八次,一个字节就可以从从机传送到主机。是容易的吗?
时钟的速度,也就是数据传输的速度,例如,如果脉冲周期是1秒,也就是1Hz,那么它需要8秒来传输一个字节;如果脉冲周期为1毫秒,即1 kHz,则输出一个字节只需要8毫秒。所以你知道交流的速度意味着什么,对吧?
I2C通信,SPI通信,在我刚才展示的例子之上再多一点协议。对于特定的协议,您可以查看任何I2C和SPI通信接口芯片,并查看序列图。我们要做的就是利用单片机的引脚来进行计时。