什么是单片机的通信接口
作为一名优秀的硬件工程师,相信在设计图纸和写程序的过程中,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
相关问答
单片机 有几种 接口 ?pc常见的接口包括pcie、sata、usb、hdmi、vga、lan、wifi、bluetooth。某些单片机的开发板,会把uart转usb,usb2.0,以太网,wifi模块,蓝牙模块集成在同...
单片机 ,什么是串行口,什么是并行口? - 小小一个小明 的回...两种接口都是用来传送二进制数据的接口形式。串行接口,一般有一根时钟线,一根数据线,一个时钟周期传送二进制1位,要传送一个字节至少需要8个时钟周...
单片机 有几个输入输出 接口 ?单片机通常具有多个输入输出接口,具体数量取决于单片机的型号和规格。常见的单片机如8051、AVR、PIC等,一般都具有多个通用输入输出引脚,可以用于连接外部设备...
51 单片机接口 ?51单片机是一种常用的微控制器,具有多种接口用于连接外部设备。常见的接口包括GPIO(通用输入输出口)、UART(串行通信口)、SPI(串行外设接口)、I2C(串行总...5...
单片机 4端口分别是哪四个?以8051单片机为例:8051单片机的4个I/O口在结构上是基本相同的,但又各具特点。这四个端口都是8位双向口,每个端口都包括一个锁存器、一个输出驱动器...以8051...
单片机接口 打不开?是用的串口烧写程序吧,基本好了端口打开失败要看你的设备管理器有没有串口设备,没有的话就是驱动和硬件有问题是用的串口烧写程序吧,基本好了端口打开失败要...
我想要接一个12电源,在 单片机接口 如何才能做到,求助?你这个是单片机开发板吧,很多单片机都是5V电源,也有12或者24V的,12V的开发板供电,找个12V电源,我看你这线接头是十字槽螺钉,跟很多家用保险开关差不多,很...
单片机的 p0p1p2 接口 有什么区别吗?单片机的P0、P1、P2接口在功能和用途上有所区别。P0、P1、P2是单片机的I/O口,用于与外部设备进行数据交互。它们的区别主要体现在以下几个方面:1.功能区别:P0...
单片机 +电脑usb 接口 供电?USB供电电流最好在100mA以下,如果超过的话,要在USB驱动的描述符上做修改。如果你的USB只是用来供电而没有USH协议的话,就没辙了。如果只是最小系统的话,不...
单片机 usb 接口 怎么焊接?单片机的USB接口焊接需要准备USB插座、焊锡、焊台等工具。首先,将USB插座的排针插入PCB板的对应位置,并用夹子固定。然后,使用焊锡和焊台进行焊接,将每个排针...