服务热线:021-59578001
中文
新闻中心
新闻中心

I2CSPIUART1-Wire并行接口这几种常用嵌入式通信协议你都了解吗

发表时间:2024-01-07 22:17:06 来源:华体会登录

  I2C/SPI/UART/1-Wire/并行接口这几种常用嵌入式通信协议,你都了解吗

  随着通信与计算机整合时代的到来,数字化、宽带化和智能化已成为未来通信发展的方向,人类社会对电信业务从质量到业务种类都提出慢慢的升高的要求,而接入网作为电信网的重要组成部分,连接本地交换机与用户,是整个电信网的毛细血管和瓶颈,实现数字化、宽带化和业务综合化的关键。 嵌入式系统是以应用为中心的硬件设计和面向应用的软件产品开发为基础的专用计算机系统,大范围的应用于制造工业、过程控制、通信、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费产品等领域。

  在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线。下面将逐一说明常用的板上通信接口。

  1. I2C总线C总线是一种同步、双向、半双工的两线式串行接口总线。这里,半双工的含义是指在任意给定的时刻,只有一个方向上是可以通信的。I2C总线最早由Philips半导体公司于20世纪80年代研发面市。I2C最初的设计目标是为微处理器/微控制器系统与电视机外围芯片之间的连接提供简单的方法。I2C总线由两条总线组成:串行时钟线SCL和串行数据线SDA。SCL线负责产生同步时钟脉冲,SDA线负责在设备间传输串行数据。I2C总线是共享的总线系统,因此能将多个I2C设备连接到该系统上。连接到I2C总线上的设备既可以用作主设备,也可以用作从设备。主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可当作发送设备或接收设施。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。在相同的总线C支持多个主设备的同时存在。图2-26显示了I2C总线上主设备和从设备的连接关系。

  基于输入缓冲区和漏极开路晶体管(或者是集电极开路晶体管),可以构建I2C总线接口。当总线处于空闲状态的时候,漏极开路晶体管(或者是集电极开路晶体管)处于悬空状态,输出导线(SDA和SCL)为高阻态。为了使总线正常工作,应该使用上拉电阻,将两条总线都上拉到供电电压(TTL系列器件为+5V,CMOS系列器件为+3.3V)。上拉电阻通常取值为2.2K。使用上拉电阻,总线上输出导线处于空闲状态的时候,对应于高电平。

  通过将设备地址线硬件连接到所需的逻辑电平上,可以分配I2C设备的地址。在嵌入式设备中,当设计嵌入式硬件的时候,需要分配各种I2C设备的地址并完成硬件连接。系统与I2C从设备通信的工作顺序如下:

  I2C总线支持三种不同的数据速率:标准模式(数据速率为100kb/秒,即100kbps)、快速模式(数据速率为400kb/秒,即400kbps)、高速模式(数据速率为3.4Mb/秒,即3.4Mbps)。第一代I2C设备设计所支持的数据速率只有100kbps,新一代I2C设备则能够以高达3.4Mbps的数据速率工作。

  SPI总线是同步、双向、全双工的4线式串行接口总线,最早由Motorola公司提出。SPI

  是由“单个主设备+多个从设备”构成的系统。需要说明的是:在系统中,只要任意时刻只有一个主设备是处于激活状态的,就可以存在多个SPI主设备。为实现通信,SPI共有4条信号线)主设备出、从设备入(Master Out Slave In,MOSI):由主设备向从设备传输数据的信号线,也称为从设备输入(Slave Input/Slave Data In,SI/SDI)。

  SPI的工作是基于移位寄存器的;为实现数据传输或数据接收,主设备和从设备包含了专用移位寄存器。移位寄存器的长度取决于具体设备,通常是8的整数倍。数据在从主设备传输到从设备的过程中,主设备移位寄存器中的数据从MOSI管脚移出,然后通过从设备的MOSI管脚,输入到从设备的移位寄存器中。与此同时,由从设备移位寄存器移位出来的数据,通过MISO管脚,输入到主设备的移位寄存器中。也就是说,主设备和从设备的移位寄存器构成了一个循环缓冲区。对于特定类型的器件,能够最终靠配置寄存器(比如,对于Motorola公司生产的68HC12型控制器,需要配置SPI控制寄存器的LSBF位),决定最先发送的数据位是最高位还是最低位。

  与I2C总线相比,SPI总线更适于数据流传输。SPI的不足之处在于,SPI不支持数据确认机制。

  的串行数据传输不需要用时钟信号来同步传输的发送端和接收端,而是依赖于发送设备和接收设施之间预定义的配置。对于发送设备和接收设施来说,两者的串行通信配置(波特率、单位字的位数、奇偶校验、起始位数与结束位、流量控制)应该设置为完全相同。通过在数据流中插入特定的比特序列,可以指示通信的开始与结束。当发送一个字节数据的时候,需要在比特流的开头加上起始位,并在比特流的末尾加上结束位。数据字节的最低位紧接在起始位之后。

  起始位用于告知接收设施:数据字节将要到达接收端。然后,接收设施按照设定的波特率,选中其数据接收线。如果波特率是x比特/秒,那么每个比特可用的时隙是1/x秒。接收设施会精确地在比特可用时隙一半的位置,定时选中数据接收线。如果通信使用了奇偶校验功能,那么UART发送设备会在发送数据流中增加奇偶校验位(取值为1,表示传输比特流中含有奇数个1;取值为0,则表示传输比特流中含有偶数个1)。UART接收设施计算接收到的数据位的奇偶校验结果,并与接收到的奇偶校验位作比较。UART接收设施丢弃掉接收比特流中的起始位、结束位、奇偶校验位,并将接收到的串行比特数据转换成字(比如,考虑8比特对应于1个字节的情况,接收到8比特,最先接收到的数据位是LSB,最后接收到的数据位是MSB)。为实现正确的通信,发送设备的数据传输线应该连接到接收设施的数据接收线显示了UART的连接图。

  除了串行数据传输功能以外,UART还可以为控制串行数据流提供硬件握手信号支持。很多半导体厂商都提供了相应的UART芯片。NaTIonal半导体公司生产的8250 UART是具有标准设置的UART,用于IBM PC的早期设计中。

  如今,大多数微处理器/控制器都集成有UART功能,并为串行数据传输与接收提供内置式的指令支持。

  1-Wire接口是由Maxim Dallas半导体公司(首页为开发的异步半双工通信协议,也称为Dallas 1-Wire®协议。其中,按照主-从通信模型,只使用单条信号线-Wire总线的一个重要特征是,该总线允许在信号线C从设备在信号线上使用内部电容器(其典型取值为800 pF)来驱动设备。1-Wire接口支持在总线上连接单个主设备以及一个或多个从设备。图2-29显示了1-Wire总线上主设备和从设备的连接关系图。

  每台1-Wire设备都具有全球唯一可识别的64位识别码信息,存储在设备内部。对于多台从设备连接到1-Wire总线上的情况,通过解读唯一的识别码,可以寻址总线上存在的各立设备。识别码由以下三个部分所组成:8位的类别码、48位的序列号以及前56比特数据的8位CRC校验结果。与1-Wire从设备通信的具体流程如下:

  (1) 主设备将复位脉冲发送到1-Wire总线) 总线上的从设备通过确认脉冲予以回应。

  1-Wire总线上的所有通信都是由主设备发起的。其中,通信的最小间隔是时长为60微秒的时隙。复位脉冲占用8个时隙。在通信的开始阶段,主设备将1-Wire总线 μs),从而发出复位脉冲。如果总线上存在从设备,而且已经准备好进行通信,那么从设备将通过确认脉冲来回应主设备;也就是说,从设备将1-Wire总线-Wire总线,需要总线 μs,然后在该时隙的其余时间段释放总线。为了在总线,主设备需要将总线拉低,其维持的时间至少为1个时隙(60 μs),最多为2个时隙(120 μs)。为了由从设备读出位值,主设备需要将总线 μs。为了响应主设备的读数据请求,如果从设备想要发送位值1,那么从设备只需要在该时隙的其余时间段释放总线;如果从设备想要发送位值0,那么从设备需要在该时隙的其余时间段将总线. 并行接口

  板上并行接口(parallel interface)通常用于系统与外围设备之间的通信,其中,外围设备通过存储器映射到系统的主控端。只要嵌入式系统的主控处理器/控制器含有并行总线,支持并行总线的设备就可以直接连接到该总线系统上。外围设备与主控端之间具有控制信号接口,能控制并行总线上的数据通信。这里,通信的控制信号包括读/写信号和设备选择信号。一般说来,外围设备具备了设备选择线;只有当主控处理器选通该线的时候,该设备才是有效的。数据传输的方向可以是从主控端到外围设备,也可以是从外围设备到主控端;这是通过读和写控制信号线来控制的。只有主控处理器能够控制读控制信号和写控制信号。一般说来,外围设备通过存储器映射到主控处理器,从而能够访问分配的地址范围。此时,设备需要用地址译码电路来产生芯片选择信号。当处理器选择的地址位于设备指定范围内的时候,译码电路对芯片选择线进行触发,从而激活设备。然后,处理器可以使能相应的控制线(分别是RD与WD),从而由设备读出数据,或者是向设备写入数据。为实现并行通信,系统要严格遵循时序规范。前面已经提到过,并行通信是由主控处理器启动的。如果某外围设备想要对通信进行初始化,那就能向处理器发出中断,告知有关信息。为实现上述功能,设备的中断线需要连接到处理器的中断线上,并且主控处理器需要触发相应的中断。需要说明的是,主控处理器的数据总线宽度决定了并行接口的宽度,可以是4位、8位、16位、32位、64位等。设备支持的总线宽度应该与主控处理器完全相同。图2-30显示了并行接口总线上主控处理器和设备的连接关系图。