`
473687880
  • 浏览: 483428 次
文章分类
社区版块
存档分类
最新评论

数字接口SPI和I2C的区别与联系概述

 
阅读更多


1.SPI接口概述


SPI:高速同步串行口。是一种标准的四线同步双向串行总线。
  SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200.
  SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
  SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
  (1)SDO – 主设备数据输出,从设备数据输入
  (2)SDI – 主设备数据输入,从设备数据输出
  (3)SCLK – 时钟信号,由主设备产生
  (4)CS – 从设备使能信号,由主设备控制
  其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
  接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。
  要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
  在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
  最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
  AT91RM9200的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及 /SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO 是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。SPI总线可以配置成单主单从,单主多从,互为主从。
  SPI的片选可以扩充选择16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的选择。






----------------------------------------------------------------------------------





2.I2C接口概述


I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
  I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
  开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
  结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
  应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
  目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。
分享到:
评论

相关推荐

    DSP接口电路设计与编程

    介绍了以数字信号处理器(DSP)为核心的实时数字信号处理的系统设计,详细论述了DSP与多种外围接口电路的设计方法,包括各种存储器、模数和数模转换电路、异步串行接口、地址/数据复用总线、扩展I/O、CPCI总线,以及...

    STM32F2单片机技术培训基础学习资料文档(15个).zip

    STM32F2技术培训_通信接口_I2C.pdf STM32F2技术培训_通用同步异步收发器_USART.pdf STM32F2技术培训_通用定时器_TIM.pdf STM32F2技术培训_通用输入输出端口_GPIO.pdf STM32F2系列技术培训_概述.pdf STM32F2系列技术...

    STM32F2系列技术培训 +完整课件下载

    STM32F2技术培训_通信接口_I2C.pdf STM32F2技术培训_通用定时器_TIM.pdf STM32F2技术培训_通用输入输出端口_GPIO.pdf STM32F2技术培训_直接存储器访问_DMA.pdf STM32F2系列技术培训_电源管理_PWR.pdf STM32F2系列...

    STM32F2系列技术培训 完整课件下载. 很实用。

    STM32F2技术培训_通信接口_I2C.pdf STM32F2技术培训_通用定时器_TIM.pdf STM32F2技术培训_通用输入输出端口_GPIO.pdf STM32F2技术培训_直接存储器访问_DMA.pdf STM32F2系列技术培训_电源管理_PWR.pdf STM32F2系列...

    单片机接口技术实用子程序电子书及其配套源代码

    本书所涉及到的数据接口包括RS-232、RS-422、RS-485、I2C、SPI、MICROWIRE、1-WIRE以及CAN总线接口。 本书实例丰富、层次清晰、语言通俗,有较强的实用性,既可作为广大单片机开发人员和系统设计人员的查询手册,也...

    ARM嵌入式C编程标准教程2

    本书从ARM处理器技术和ADS 1.2开发环境讲起,讲解ARM嵌入式C编程的方方面面,包含S3C2410片上资源、中断系统、I/O口、串口通信、触摸屏控制、实时时钟、LCD显示、DMA控制、PWM控制、看门狗电路、I2C控制、I2S控制、...

    ARM嵌入式C编程标准教程

    本书从ARM处理器技术和ADS 1.2开发环境讲起,讲解ARM嵌入式C编程的方方面面,包含S3C2410片上资源、中断系统、I/O口、串口通信、触摸屏控制、实时时钟、LCD显示、DMA控制、PWM控制、看门狗电路、I2C控制、I2S控制、...

    ARM嵌入式C编程标准教程4

    本书从ARM处理器技术和ADS 1.2开发环境讲起,讲解ARM嵌入式C编程的方方面面,包含S3C2410片上资源、中断系统、I/O口、串口通信、触摸屏控制、实时时钟、LCD显示、DMA控制、PWM控制、看门狗电路、I2C控制、I2S控制、...

    ARM嵌入式C编程标准教程01

    本书从ARM处理器技术和ADS 1.2开发环境讲起,讲解ARM嵌入式C编程的方方面面,包含S3C2410片上资源、中断系统、I/O口、串口通信、触摸屏控制、实时时钟、LCD显示、DMA控制、PWM控制、看门狗电路、I2C控制、I2S控制、...

    arm嵌入式C编程标准教程(随书代码)

    本书从ARM处理器技术和ADS 1.2开发环境讲起,讲解ARM嵌入式C编程的方方面面,包含S3C2410片上资源、中断系统、I/O口、串口通信、触摸屏控制、实时时钟、LCD显示、DMA控制、PWM控制、看门狗电路、I2C控制、I2S控制、...

    JAVA_API1.6文档(中文)

    javax.sound.midi 提供用于 MIDI(音乐乐器数字接口)数据的 I/O、序列化和合成的接口和类。 javax.sound.midi.spi 在提供新的 MIDI 设备、MIDI 文件 reader 和 writer、或音库 reader 时提供服务提供者要实现的...

    嵌入式课件

    6.2.1 I2C接口基本原理与结构 6.2.2 S3C2410A的I2C接口 6.2.3 S3C2410A的I2C接口应用实例 6.3 USB接口 6.3.1 USB接口基本原理与结构 6.3.2 S3C2410A的USB控制器 6.3.3 S3C2410A的USB接口电路与驱动程序 6.4 SPI接口 ...

    STM32F10xxx参考手册

    8.3.9 I2C1复用功能重映射 120 8.3.10 SPI 1复用功能重映射 120 8.3.11 SPI3复用功能重映射 120 8.3.12 以太网复用功能重映射 121 8.4 AFIO寄存器描述 121 8.4.1 事件控制寄存器(AFIO_EVCR) 121 8.4.2 复用...

    USB2642中文数据手册.pdf

    此外, USB2642还提供了1个I2C™转USB桥接器和1个 SD转USB桥接器。 I2C桥接器可控制以50 KHz串行时 钟运行的任何I2C从器件。 亮点 • PortMap - 灵活的端口映射和禁止顺序,支持多平台设计 • PortSwap - 可编程USB...

    java api最新7.0

    javax.sound.midi 提供用于 MIDI(音乐乐器数字接口)数据的 I/O、序列化和合成的接口和类。 javax.sound.midi.spi 在提供新的 MIDI 设备、MIDI 文件 reader 和 writer、或音库 reader 时提供服务提供者要实现的接口...

    CLRC663设计参考原理图

    主机接口:SPI、I2C、UART 高达8个通用IO SAM接口 512字节FIFO缓冲器可降低主机控制器的性能要求 快速开发 支持NFC Cockpit和NFC读卡器库 完整的开发套件 包括许可 包括NXP ISO/IEC14443-A和Innovatron ISO/IEC14443...

    STM32L4x1高级ARM_32位MCU单片机技术手册中文资料628页完整版

    33集成电路(I2C)接口 34通用同步异步接收发射机(USART) 35低功率通用异步接收发射机(LPUART) 36串行外设接口(SPI) 37串行音频接口(SAI) 38单线协议主接口(SWPMI) 39SD / SDIO / MMC卡主机接口(SDMMC) ...

    DSP控制器及其应用

    2.5.1 与外部存储器和I/O空间接口的信号 2.5.2 程序储存器 2.5.3 局部数据存储器 2.5.4 全局数据存储器 2.5.5 I/O空间 2.6 程序控制 2.7 时钟源模块 2.8 系统复位 第3章 片内外设 3.1 事件管理模块 3.1.1 通用定时器...

Global site tag (gtag.js) - Google Analytics