什么是单片机的通信接口
作为一名优秀的硬件工程师,相信在设计图纸和写程序的过程中,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通信接口的芯片看一下时序图就可以了。我们要做的,就是用单片机的引脚,把它的时序做出来。
玩转电子硬件,每晚与您相约今日头条!
搞定pic单片机之pic单片机分类大讲解
对于pic单片机,大家或多或少均有所耳闻。但是,大家对pic单片机有多少了解呢?是否熟知不同类型的pic单片机呢?本文中,将探讨pic单片机的类型分类以及特征。此外,本文的探讨基于pic 8位单片机而进行。
由美国Microchip公司推出的PIC单片机系列产品,首先采用了RISC结构的嵌入式微控制器,其高速度、低电压、低功耗、大电流LCD驱动能力和低价位OTP技术等都体现出单片机产业的新趋势。现在PIC系列单片机在世界单片机市场的份额排名中已逐年升位,尤其在8位单片机市场,据称已从1990年的第20位上升到目前的第二位。PIC单片机从覆盖市场出发,已有三种(又称三层次)系列多种型号的产品问世,所以在全球都可以看到PIC单片机从电脑的外设、家电控制、电讯通信、智能仪器、汽车电子到金融电子各个领域的广泛应用。现今的PIC单片机已经是世界上最有影响力的嵌入式微控制器之一。
PIC 8位单片机产品共有三个系列,即基本级、中级和高级。
1、基本级系列 该级产品的特点是低价位,如PIC16C5X,适用于各种对成本要求严格的家电产品选用。又如PIC12C5XX是世界第一个8脚的低价位单片机,因其体积很小,完全可以应用在以前不能使用单片机的家电产品的空间。
2、中级系列 该级产品是PIC最丰富的品种系列。它是在基本级产品上进行了改进,并保持了很高的兼容性。外部结构也是多种的,从8引脚到68引脚的各种封装,如PIC12C6XX。该级产品其性能很高,如内部带有A/D变换器、E2PROM数据存储器、比较器输出、PWM输出、I2C和SPI等接口。PIC中级系列产品适用于各种高、中和低档的电子产品的设计中。
3、高级系列 该系列产品如PIC17CXX单片机,其特点是速度快,所以适用于高速数字运算的应用场合中,加之它具备一个指令周期内(160ns)可以完成8×8(位)二进制乘法运算能力,所以可取代某些DSP产品。再有PIC17CXX单片机具有丰富的I/O控制功能,并可外接扩展EPROM和RAM,使它成为目前8位单片机中性能最高的机种之一。所以很适用于高、中档的电子设备中使用。
PIC 8位单片机具有指令少、执行速度快等优点,其主要原因是PIC系列单片机在结构上与其它单片机不同。该系列单片机引入了原用于小型计算机的双总线和两级指令流水结构。这种结构与一般采用CISC(复杂指令集计算机)的单片机在结构上是有不同的。
1、双总线结构
具有CISC结构的单片机均在同一存储空间取指令和数据,片内只有一种总线。这种总线既要传送指令又要传送数据(如图1-a所示)。因此,它不可能同时对程序存储器和数据存储器进行访问。因与CPU直接相连的总线只有一种,要求数据和指令同时通过,显然“乱套”,这正如一个“瓶颈”,瓶内的数据和指令要一起倒出来,往往就被瓶颈卡住了。所以具有这种结构的单片机,只能先取出指令,再执行指令(在此过程中往往要取数),然后,待这条指令执行完毕,再取出另一条指令,继续执行下一条。这种结构通常称为冯·诺依曼结构,又称普林斯顿结构。
在这里PIC系列单片机采用了一种双总线结构,即所谓哈佛结构。这种结构有两种总线,即程序总线和数据总线。这两种总线可以采用不同的字长,如PIC系列单片机是八位机,所以其数据总线当然是八位。但低档、中档和高档的PIC系列单片机分别有12位、14位和16位的指令总线。这样,取指令时则经指令总线,取数据时则经数据总线,互不冲突。这种结构如图1-b所示。
指令总线为什么不用八位,而要增加位数呢?这是因为指令的位数多,则每条指令包含的信息量就大,这种指令的功能就强。一条12位、14位或16位的指令可能会具有两条八位指令的功能。因此PIC系列单片机的指令与CISC结构的单片机指令相比,前者的指令总数要少得多(即RISC指令集)。
2、两级指令流水线结构
由于PIC单片机采用了指令空间和数据空间分开的哈佛结构,用了两种位数不同的总线。因此,取指令和取数据有可能同时交叠进行,所以在PIC单片机中取指令和执行指令就采用指令流水线结构(如图2所示)。当第一条指令被取出后,随即进入执行阶段,这时可能会从某寄存器取数而送至另一寄存器,或从一端口向寄存器传送数等,但数据不会流经程序总线,而只是在数据总线中流动,因此,在这段时间内,程序总线有空,可以同时取出第二条指令。当第一条指令执行完毕,就可执行第二条指令,同时取出第3条指令,……如此等等。这样,除了第一条指令的取出,其余各条指令的执行和下一条指令的取出是同时进行的,使得在每个时钟周期可以获得最高效率。
在大多数微控制器中,取指令和指令执行都是顺序进行的,但在PIC单片机指令流水线结构中,取指令和执行指令在时间上是相互重叠的,所以PIC系列单片机才可能实现单周期指令。
只有涉及到改变程序计数器PC值的程序分支指令(例如GOTO、CALL)等才需要两个周期。
此外,PIC单片机的结构特点还体现在寄存器组上,如寄存器I/O口、定时器和程序寄存器等都是采用了RAM结构形式,而且都只需要一个周期就可以完成访问和操作。而其它单片机常需要两个或两个以上的周期才能改变寄存器的内容。上述各项,就是PIC单片机能做到指令总数少,且大都为单周期指令的重要原因。
相关问答
通俗的介绍一下 pic单片机 - CHERRY?BIUBO 的回答 - 懂得为什么要和电脑类比呢?看来你没有用过单片机吧,单片机的结构都是大同小异的。那就象征性地类比下。pic是哈佛结构的,程序存在程序存储器,也就是ROM...
智能车用障碍传感器原理[回答]随着科学技术的进步和发展,对车辆驾驶性能和安全舒适性的要求大为提高,使得车辆上的电子控制单元数量逐步增加。但是,车辆上的电控单元(如,各种...
ATmega16 单片机 和 PIC 16F877 单片机 哪个更常用?选择哪个入门更好?但只针对这个问题,初学单片机编程,我推荐ATmega16单片机。其实单纯从变成角度来说,学那种单片机都可以,但是针对这个问题,我简单说一下选择AVR单片机的原因...
单片机 和ARM有什么区别?欢迎大家关注狗哥,学习更多单片机干货1、单片机指单芯片上集成了控制器、存储器以及如定时器、SPI、IIC等外部设备于一体的片上系统,可以用来执行复杂的功能,...
icsp是什么协议?ICSP:6pin接口,使用SPI协议通信。JTAG:是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。它有多种接口定义10pin、14pin、16pin、20pin。.....
智能车用障碍传感器原理随着科学技术的进步和发展,对车辆驾驶性能和安全舒适性的要求大为提高,使得车辆上的电子控制单元数量逐步增加。但是,车辆上的电控单元(如,各种...
picoway和picture有什么区别?picoway和picture有区别为picoway解释超皮秒又叫“PicoWay”,由美国坎德拉(Candela)公司出品,经过美国的FDA、欧盟的CE、中国的CFDA认证,是有质量和保障的.....
arm 单片机 之间有什么区别_土巴兔装修问答1.C51单片机是8051内核,继承了早期MCS51的技术特性和指令,在国内使用较普及,结构较简单,学生或新生入门通常学这种,但其指令是集中指令集的,存在三...
一般16位 单片机 有哪些?一般16位单片机有很多种类,其中包括常见的8051系列、PIC系列、AVR系列、ARMCortex-M系列等。这些单片机具有较高的计算能力和更多的存储空间,适用于需要处理...
求推介完全兼容 PIC 12F1822的国产8位 单片机 有吗?[回答]英锐恩的EN8F1822是RISC内核,完全兼容PIC12F1822,2KROM,128BytesRAM,256BytesEEPROM,单片机自带ADC,支持USART/SPI/I2C协议,...