微控制器是当今各种先进电子产品的核心,它需要与一个或多个外设设备进行通信。以前,微控制器的外设是以存储器映射方式与数据和地址总线连接的。对地址线进行译码以得到片选信号,从而在有限的地址范围内为每个外设指定唯一的地址。这种接口类型所需的最少引脚数(除电源和地之外)为:8 (数据) + 1 (R/W) + 1 (CS) + n条地址线 ,n = log2M,(M为内部寄存器数目)。例如,对于具有4个寄存器的外设来说,完成通信所需要的引脚数为:8 + 1 + 1 + 2 = 12。虽然这种接口的访问时间快,但也同时带来了封装尺寸增大和总成本提高的问题。要降低成本和缩小封装尺寸,串行接口显然是理想的替代方案。
如表1所示,确定一个串行接口并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)和电压外,设计者还应该考虑以下几点:
* 通过何种方式选择某个外设(是通过硬件片选线控制,如SPI和Microwire;还是通过软件协议实现)。
* 外设如何与微控制器保持同步(是借助一条硬件时钟线,如I2C、SMBus、SPI和Micorwire;还是借助于内嵌在数据流中的时钟信息)。
* 数据是用单线传输(单端,在“高”和“低”之间切换),还是在线对上传输(差分,两条线按相反的方向同时转换其电压,如CAN、LVDS、USB和Firewire)。
* 通信线的末端使用匹配电阻实现阻抗匹配(通常用于差分传输),还是不进行匹配(通常用于单端总线)。
除了上述特性外,具体应用还会提出更多要求,如微控制器和外设间的最大距离以及电缆连接方式要求(总线型配置、星型配置、可抑制噪声或承受线路反接等)。类似应用包括楼宇自动化、工业控制和抄表等,并且都已制定了相关的标准。
应用需求
提供外设功能的串行总线系统不应该给系统自身增加任何沉重的负荷。尤其需要注意以下几点:
* 互连布线一定要简单(信号线越少越好)。
* 必须能够轻松地通过软件实现协议(或者所选用的μC/μP本身提供这种接口)。
* 需要有广泛的功能器件可供选择。
* 必须能够轻松扩展总线网络。

表1. 各种串行数据网络的特性
从表1可以看出,1-Wire、LINbus和Sensorpath需要最少的信号线,即只需要一条数据线。表2列出了更多细节信息。

表2. 1-Wire、LIN和Sensorpath的性能差异
I2C/SMBus与1-Wire
如果实际应用可以提供时钟线,则总线选择范围可扩展到I2C和SMBus。SMBus可以看作是100 kbps I2C总线规范增加了超时特性后的衍生总线类型。在某个节点与总线主机失去同步的情况下,超时特性可防止总线发生闭锁,而I2C系统则需要经过一次上电复位过程才能从这种故障状态恢复至正常工作状态。在1-Wire系统中,复位/在线检测周期可将通信接口复位至确定的启动条件下。除了时钟线外,I2C/SMBus还为总线上传输的每个字节提供一个应答位。通信过程开始于一个启动条件,并跟随从器件地址和一个数据方向位(读或写),最终结束于一个停止条件。对于1-Wire系统,首先需要满足网络层的要求(即选择某个特定器件,执行Search ROM命令或者广播);接下来发送与特定器件相关的命令代码,该代码同时会影响数据的传输方向(读或写)。
SPI/MICROWIRE
SPI和MICROWIRE (SPI的子集)均需要为每个器件提供一条额外的片选线。由于具有片选信号,因此SPI协议只定义了针对存储器地址和状态寄存器的读/写命令。通常,SPI器件的数据输入和数据输出采用不同的引脚。鉴于数据输出在除了读操作外的任何情况下均为三态(禁止),因此可将两个数据引脚接到一起以构成单根双向数据线。当其它总线系统无法提供所需的功能或需要较高的数据传输速率时,可选用SPI总线,它可以支持2Mbps或更高的速率。
本文小结
与LINbus和Sensorpath器件相比,1-Wire器件可提供最广泛的功能和网络驱动器。I2C/SMBus除了需要数据线和参考地之外,还需要时钟线和电源VCC ;当然可供选择的器件功能也非常多。SPI/MICROWIRE需要额外的片选线,但可以提供更高的数据速率。1-Wire器件的简单接口使其成为下列应用的最佳选择:全球识别号、电路板/配件标识、温度传感器和执行装置等。具有安全存储器和质询-响应机制的1-Wire器件则能以最低的成本实现双向认证和软件代码保护。
作者:BERNHARD LINKE
Dallas 半导体/美信集成
京公网安备 11011202001138号
