串行总线节省I/O管脚
SPI总线接口
串行外设接口(SPI)在主机和一个或多个从属设备间利用同步串行通讯提供了基本的通讯。主机发起所有与从属设备通讯的要求,并提供控制传输速率的时钟信号。SPI并未提供高级的协议,所以在主机(如微控制器)与外设(如ADC或编码解码器)间的通讯,并不需要时间进行内部管理。由于缺少协议,SPI芯片厂商就要提出自己的位与字节管理方案。最简单的SPI接口要求三条信号线路(时钟、主机输入与从属设备输出、主机输出与从属设备输入)与接地。
SPI通讯每次是一个字节,但从属设备接收数据时缺少自动应答,而且,通讯不能对特定的SPI芯片寻址,因此每个SPI从属设备必须提供一个活动低态(active-low)芯片选择(/CS)输入管脚。主机将其单独的/CS管脚驱动到逻辑0来选择一个从属设备,如果只有一个SPI从属设备,可用硬连线将芯片选择管脚与地连接起来(节省一个I/O管脚),例如,一个ADC可使用/CS信号的上升沿来触发一个转换过程。
SPI设备会很快地用完所有用来产生/CS信号的I/O管脚,如果超过三个SPI设备,可考虑使用一个3路到8路解码器/解复用器,通过主机的3或4个I/O管脚最多可为8个SPI设备产生/CS信号,也可使用SPI芯片,如Maxim MAX7317能为电路中增加10个通用I/O管脚。
I2C串行总线
由先前的Philips Semiconductors在上个世纪八十年代开发的I2C通讯总线需要两条双向信号线路,一条用于时钟,另一条用于数据,另外再需要接地线。它与SPI总线不同,一个I2C连线在多主机结构中可连接包括一个以上的控制设备,外设包括实时时钟、存储器、LCD驱动器和模拟转换器。
所有的I2C设备都有预设的唯一地址,所以不需要芯片选择线路。I2C I/O厂商可在其产品上设置能允许几个相同设备在一个I2C总线上工作的可编程引脚。Analog Devices(ADI)公司的AD7991是一颗双通道的12位ADC,在一个I2C总线上开发人员可使用最多五个这种芯片。首先,规范委员会分配给芯片厂家唯一的7位设备地址,但这些地址很快就会用完,I2C规范现在包含10位的地址,工程师们可在一个I2C总线上将具7位或10位地址的芯片混和使用。
通信以100Kbps(标准)、400Kbps(快速)或3.4Mbps(高速)这三种速度中的一种进行,尽管有些公司提供总线延伸器(extender)和中继器(repeater),但400pF的最大线电容还是限制了I2C通信的长度。
与SPI从属设备不同,I2C协议包括一个应答部分。信号线路的“线与(wired-AND)”属性让接收设备将数据线路拉低一个时钟周期,以对接收字节进行应答,I2C规范并不包括误差校正,但可用软件实施该功能。
1-Wire总线取代双线
Dallas Semiconductor开发的专有1-Wire(一线)总线技术其通信和电源都使用一条信号线路(还需要一个地线),通信涉及到一个主机和一个或多个从属设备,如传感器、EPROM及电池监控器。异步通讯使用准确定时的脉冲宽度来再现数据。逻辑“1”状态下数据线路拉低15?s或更少,而逻辑“0”状态则将线路拉低最少60?s(外设在通讯线路空闲时可从中吸收少量的功率)。
每个1-Wire设备都有一个唯一的64位ID号码,该号码可提供一个8位的设备类型识别符、48位地址和8位CRC值。48位地址保证了在1-Wire线路上设备不会产生冲突,主机中的软件可监测设备类型要及其串行端口数量。Dallas Semiconductor是Maxim Integrated Products公司的子公司,生产多种1-Wire设备。但据我所知,并没有其它厂商生产1-Wire芯片。
- 串行总线---差分互连(差分线)之共模、奇模、偶模(04-26)
- RS-422/485串行总线隔离技术及应用解决方案(12-21)
- 串行总线的计算机数控系统(12-20)
- SPI、I2C、UART三种串行总线协议的区别(12-16)
- 通用串行总线架构(USB)的目的主要基于以下三方面考虑(12-15)
- 低速串行总线信号的采集解码和调试(12-15)