什么是单片机的通信接口
作为一名优秀的硬件工程师,相信在设计图纸和写程序的过程中,I2C和SPI芯片肯定是十分常见的,而且在许多项目这两者是比不可少的。那到底什么是IIC和SPI呢?今天小编就和大家分享一下。
对于许多初学者而言,包括小编在刚开始接触单片机的时候,经常听到同事说起I2C和SPI,但是一直不知道是什么意思。其实I2C和SPI和单片机的串口或者CAN一样都是一种通信接口,而且都是有标准的协议的,只是它们的时序不同,仅此而已。
在实际的使用过程中,用I2C的芯片最常见的是EEPROM芯片,比如AT24CXX系列。使用SPI通信的芯片一般外置FLASH芯片,蓝牙芯片,RFID等等。
I2C通信需要用到两个引脚:。SCL表示的是时钟引脚,SDA表示的是数据引脚。如下图所示。
(上面的图表示的是EEPROM芯片)
(上面的图表示的是时钟芯片)
SPI通信需要4个引脚:SPI_CS,SPI_SCK,SPI_MOSI,SPI_MISO。SPI通信芯片的引脚名称一般都是这种写法,例如SPI_MOSI表示的意思就是“主机输出从机输入”主机一般就是指我们的单片机,从机是指待操作的芯片。
SPI标准的通信过程是:先把片选SPI_CS引脚拉低,SPI_SCK引脚输出时钟,然后就可以在SPI_SMOSI引脚上输出数据,同时可以在MISO上获得数据了。
(下面这幅图是一个SPI FLASH的芯片,芯片引脚和标注的名称意思一致)
目前市场上常见的单片机中,大部分使用的都是带有I2C口和SPI口的,有的还有有可能还会有好几个I2C口和SPI口。比如现在比较流行的STM32,Freescale,NXP,PIC等单片机。但是有的单片机本身不带硬件I2C口和SPI口的,也可以通过模拟的方式通信。并且对于新手而言,学习一下用普通引脚模拟是十分有必要的,以为这样对他们的通信本质理解更深刻。
在实际的通信全程中,其实单片机就是要控制相应引脚的高低电平,或者检测输入引脚的高低电平的过程。IIC和SPI就是控制引脚的高低电平,本质上和点灯没什么区别,只是在时序上有标准的要求。
IIC中是用两条线来通信,一条时钟线(SCK),一条数据线(SDA)。时钟线用来产生一个脉冲,再说的直接一点,就是把引脚变高变低的信号,用延时函数来确定频率。如下图:这就是个时钟信号
比如我们规定,在SCK高电平时,读取SDA的电平,连续8个SCK读一个字节。数据的那一端,在检测到低电平的时候,就把要发送的数据按照位体现在数据引脚上面。例如一个数据:0x88,写成二进制以后就是1000 1000。我们来看一下传输这个数据的过程:从机检测时钟引脚,检测到一个下降沿(就是从高电平落到了低电平),就把要发送的数据的bit7体现在数据引脚上,例如1000 1000的bit7是1,就把数据引脚变高电平,主机在时钟引脚的高电平,检测这个数据引脚,把这个位记录下来,从机再次发现时钟引脚的下降沿后,再把数据的bit6体现在数据引脚上,由于1000 1000 的bit6是0,所以从机把数据引脚拉低,然后当时钟引脚为高电平的时候,主机检测数据引脚的高低电平,再把bit6记录下来,……以此8次,就可以把一个字节由从机传输到主机了。是不是很简单呢?
SCK的速率,是指数据传输的快慢,通过控制SCK电平之间的时间间隔就可以。
I2C通信,SPI通信,只不过是在我刚才讲的例子上面,又多了一些协议内容。具体的协议,你们随便找一个I2C和SPI通信接口的芯片看一下时序图就可以了。我们要做的,就是用单片机的引脚,把它的时序做出来。
玩转电子硬件,每晚与您相约今日头条!
单片机硬件设计:RS232通讯接口电路设计及分析
今天讲解RS232的典型接口电路。
1. 什么是RS232接口
说到RS232有的朋友可能比较陌生,但是如果说到串口大家可能就恍然大悟。什么是RS232?RS232是PC电脑上常用的通讯接口之一,通常以DB9的形式出现,例如台式机的com1和com2口。电脑的串口如下图所示。
DB9分为公头和母头,什么是公头、母头,看下面的图片。
顾名思义,母头就是带孔的,公头就是带针的,自己联想一下,呵呵。
2. RS232接口电路硬件设计
在用单片机设计RS232通信系统的时候,是将单片机的TTL电平转换成RS232电平,在转换的过程中需要相应的转换芯片。最常用的转换芯片是MAX232,相信用过STC51单片机开发板的朋友,都用这个接口下载过程序。
既然是通信接口,那自然少不了单片机的UART接口,所以在单片机选型的时候只需要选择带有UART片上资源的单片机即可。
3. 抗干扰设计
在讲CAN通信接口和RS485通信接口的时候都讲到了抗干扰设计。所使用的两种方法都一样。
通讯隔离,使用数字隔离芯片进行隔离;
线路限流,在通讯线上串入自恢复保险丝;
对于RS485接口典型电路 和CAN接口典型电路 等,大家可以查看订阅号里的历史文章。
本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。
公众号:micropoint8。嵌入式学习网_振兴网:www.picmcu.com
相关问答
51 单片机 的串行口有哪几种工作方式?51单片机串口有四种工作方式:1、方式0串行接口的工作方式0为移位寄存器I/O方式。在串行口外接移位寄存器以扩展I/O接口,也可以外接串行同步I/O的设备2、方...
单片机 哪个 接口 具有双功能?SPI是英语SerialPeripheralInterface的缩写,顾名思义就是串行外围设备接口。SPI是一种高速的、全双工、同步通信总线,标准的SPI也仅仅使用4个引脚,.....
单片机 有几个输入输出 接口 ?单片机通常具有多个输入输出接口,具体数量取决于单片机的型号和规格。常见的单片机如8051、AVR、PIC等,一般都具有多个通用输入输出引脚,可以用于连接外部设备...
单片机 ,什么是串行口,什么是并行口? - 小葵的杂货铺 的回...串口数据是按1位为单位传输数据的口,51单片机是P3.0、P3.1组成串口。并口是以1字节为单位传输数据的口,51单片机一般以P0口扩展并口。两种接口都是...
单片机 ,什么是串行口,什么是并行口? - 小小一个小明 的回...两种接口都是用来传送二进制数据的接口形式。串行接口,一般有一根时钟线,一根数据线,一个时钟周期传送二进制1位,要传送一个字节至少需要8个时钟周...
单片机 的总线是什么?三总线就是通常所说的地址总线,数据总线,控制总线。在51单片机中,为了与并行接口的外设及扩展存储器传输数据就需要扩展三总线,P2P0合起来构成16位地址总线...
232通讯线能不能连接 单片机 ?1、单片机系统与电脑的RS-232接口通信,必须把单片机的信号电平(TTL电平)转换成计算机的RS-232C电平(或者反过来把计算机的RS-232C电平转换成单片机的TTL电平...
51 单片机 的USB通讯端口是哪两个?首先需要确定开发者选择的51单片机是否有USB通讯模块,如果没有,那肯定就没有标准对外接口,需要用IO口来模拟,IO口模拟的话,只要支持输入输出并有输入上拉功...
单片机 能否通过总线通讯控制多个传感器?回答如下:是的,单片机可以通过总线通讯控制多个传感器。单片机通常具有多个通信接口,如I2C、SPI、UART等,可以通过这些接口与传感器进行通信。传感器可以通过...
单片机 有几种 接口 ?pc常见的接口包括pcie、sata、usb、hdmi、vga、lan、wifi、bluetooth。某些单片机的开发板,会把uart转usb,usb2.0,以太网,wifi模块,蓝牙模块集成在同...