五部门关于开展2024年新能源汽车下乡活动的通知
单片机 I2C和SPI通信的不同
单片机 I2C和SPI通信的不同I2C和SPI是两种不同的通信协议。听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已,我们只要遵照这个标准去做事,就可以。比如公司规定早上
I2C和SPI是两种不同的通信协议。
听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已,我们只要遵照这个标准去做事,就可以。比如公司规定早上9点上班,我们就9点上班,不然就会扣薪水,这就是个协议。
用I2C通信的芯片常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,还有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同样,还有其他功能的一些芯片。
I2C通信需要用到两个引脚:SDA SCL。SCL是时钟引脚,SDA是数据引脚。
(这是EEPROM芯片)(这是时钟芯片)SPI通信需要3个引脚或者4个引脚:CS SCK MOSI MISO。SPI通信芯片的引脚名称不一定都是这几个名称,可能还有会别的名称,但是意思是一样的,例如MOSI引脚的意思是“主机输出从机输入”,某个SPI接口的芯片就有可能会写成SDI,因为这个SPI器件是作为从机的,所以它的SDI的意思就是“从机数据输入引脚”。
SPI通信过程为:把CS引脚拉低,然后SCK输出时钟,然后就可以在MOSI引脚上输出数据,同时可以在MISO上获得数据了。
(这是一个SPI FLASH芯片,DO是MISO,DI是MOSI,CLK是SCK,功能一样,叫法不一样而已)(这是一个SPI接口的ADC芯片,Dout是MISO,DCLOCK就是SCK,这个芯片有3个SPI引脚)大部分单片机上面都会带有I2C口和SPI口,有可能还会有好几个I2C口和SPI口。不过,不带I2C口和SPI口的单片机,也可以通过普通引脚的模拟他们的时序来进行通信。
而且,如果是初学者的话,一定要学习一下用普通引脚模拟,对他们的通信本质理解更深刻。
通信全程,其实就是控制引脚高低电平和检测引脚高低电平的过程,话说,控制单片机的引脚高低电平和检测引脚的高低电平,天学单片机就会了,所以,I2C通信和SPI通信也没什么难的地方。
给大家讲一个简单的通信过程,例如我们称下面的通信名称为KJLWT,名字是不是看起来很吊,其实是“科技老顽童”的拼音首字母,因为接下来的协议是我刚刚发明的,所以以此命名^_^。主要是让大家理解,名称就是用来吓唬人的。
我们用两条线来通信,一条时钟线,一条数据线。时钟线,其实就是用来产生一个脉冲波形,再说的直接一点,就是把引脚变高变低的信号,如下图:
(这就是个时钟信号)例如我们规定,在时钟引脚为高电平的时候,读取数据引脚的电平,连续8个时钟,就可以读到一个字节了。那给数据的那一端,要怎么给数据呢?也很简单,给数据的那一端,在检测到低电平的时候,就把要发送的数据按照位体现在数据引脚上面。例如一个数据:0x88,写成二进制以后就是1000 1000。我们来看一下传输这个数据的过程:从机检测时钟引脚,检测到一个下降沿(就是从高电平落到了低电平),就把要发送的数据的bit7体现在数据引脚上,例如1000 1000的bit7是1,就把数据引脚变高电平,主机在时钟引脚的高电平,检测这个数据引脚,把这个位记录下来,从机再次发现时钟引脚的下降沿后,再把数据的bit6体现在数据引脚上,由于1000 1000 的bit6是0,所以从机把数据引脚拉低,然后当时钟引脚为高电平的时候,主机检测数据引脚的高低电平,再把bit6记录下来,……以此8次,就可以把一个字节由从机传输到主机了。是不是很简单呢?
时钟的速率,就是传输数据的快慢,以上面讲的为例,如果脉冲的周期为1秒钟,也就是1Hz,那么传输一个字节就需要8秒钟;如果脉冲的周期为1毫秒,也就是1KHz,那么输出一个字节只需要8毫秒。这下你就理解通信的速率是什么意思了吧?
I2C通信,SPI通信,只不过是在我刚才讲的例子上面,又多了一些协议内容。具体的协议,你们随便找一个I2C和SPI通信接口的芯片看一下时序图就可以了。我们要做的,就是用单片机的引脚,把它的时序做出来。
上一篇:电源PCB设计的十个要点
-
在 20 米铜缆通信链路中使用均衡器和电缆组件2023-03-28
-
三态开关接口使用一个微控制器引脚2023-03-25
-
采用通用串行总线USB技术的高速数据采集卡的设计方案2023-03-25
-
使用一个微控制器输入引脚读取多个开关和电位器设置2023-03-25
-
从 PC 的串行端口实现简单的 IR 数据传输2023-03-24
-
适用于具有 5V 至 36V 输入的 12V 系统的基于电解电容器的数据备份电源解决方案2023-03-23
-
移动通信天线中使用变压器常见3个难题及解决方案2023-03-16
-
智己数据“掺水”,是替行业潜规则背了锅2023-03-15
-
使用外部 PLL 改善 FPGA 通信接口时钟抖动2023-03-14
-
数据存储在非易失性存储器中2023-03-07
-
确保电池供电的物联网传感器节点中的故障安全数据存储2023-03-02
-
电源集成:智能真无线耳机设计中的通信接口2023-03-01
-
TI - 实时控制和通信领域的 IT/OT 融合如何推动工业自动化2023-02-27
-
一月社融数据公布,报复性消费没有如约而至2023-02-14
-
织好智能汽车数据安全防护网,任重道远2023-01-03