选择串行总线
摘要:本应用笔记讨论微控制器作为当今各种先进电子产品的核心,与一个或多个外设器件的通信技术。以前,微控制器的外设是以存储器映射方式与数据和地址总线连接的。但是,由于较多的引脚数,增大了封装尺寸,并提高了总体成本。要降低成本和缩小封装尺寸,串行接口显然是理想的替代方案,例如:1-Wire®、SPI、I²C、USB等,它们代表了不同的物理网络尺寸、网络驱动器、电源、数据速率及功能选择。不同类型的接口具有不同的优势,而1-Wire接口在串行通信中不失为一种创新设计。 本文还发表于Maxim
工程期刊,第59期(PDF, 876kB)。
微
控制器(µC)是当今各种先进电子产品的核心,它需要与一个或多个外设器件通信。以前,µC的外设是以存储器映射方式与数据和地址
总线连接的。对地址线译码以获得片选信号,从而在有限的地址范围内为每个外设分配唯一的地址。这种接口类型所需的最少引脚数(除电源和地之外)为:8 (数据) + 1 (R//W) + 1 (/CS) + n条地址线[n = log2(内部寄存器或存储器字节的数目)]。例如,与一个16字节外设通信时,需要的引脚数为:8 + 1 + 1 + 4 = 14。这种接口的访问速度快,但较多的引脚数也同时带来了封装尺寸增大和总成本提高的问题。要降低成本和缩小封装尺寸,
串行接口显然是理想的替代方案。
选择串行总线并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)和
电压外,设计者还应该考虑以下几点:
- 通过何种方式选择某个外设(通过硬件片选输入或软件协议)。
- 外设如何与µC保持同步(借助一条硬件时钟线,或借助内嵌于数据流中的时钟信息)。
- 数据是在单根线上传输(在“高”和“低”之间转换),还是在一对差分线上传输(两根线按相反的方向同时转换其电压)。
- 通信线路的两端均使用匹配电阻实现阻抗匹配(通常用于差分信号传输),还是不匹配或仅在一端匹配(通常用于单端总线)。
表1以矩阵的形式展示了各种通用总线系统之间的差异。16种可能组合中只有4种通用类型为大家所熟知。
除这些特性外,具体应用还会提出更多要求,如供电方式、隔离、噪声抑制、µC (主机)与外设(从机)间的最大传输距离、以及
电缆连接方式(总线型、星型、可承受线路反接等)。提出类似要求的应用包括楼宇自动化、工业控制和抄表等,并且都已制定了相应的标准。
1, 2表1. 串行总线系统概括电路板到背板的应用需求
提供外设功能的串行总线系统不应该给应用系统增加任何沉重的负荷。尤其需要注意以下几点:
- 互连布线一定要简单(信号线越少越好)。
- 必须能够轻松地通过软件实现协议(或所选的µC/µP本身提供这种接口)。
- 需要提供功能广泛的器件。
- 总线系统必须易于扩展。
使用软件协议完成寻址的单端、自同步系统需要的信号线最少。从表1可以看出,1-Wire、LIN总线和SensorPath能够满足这些条件。在这类总线系统中,还需要考虑其它因素(见
表2)。
表2. 1-Wire、LIN总线和SensorPath总线系统的性能差异 | 1-Wire3 | LIN Bus4 | SensorPath5 |
Physical Network Size | Board or backplane, can be expanded up to ~300m | ~40m | Board |
Network Drivers (Hardware) | Drivers are available for RS-232, I²C, USB, and general µP port pins6, 7 | Drivers are available for µP port pins | Super-I/O chips, µP port pins |
Network Drivers (Software) | Available free for various platforms, including µCs8 | Available free for Freescale™ µCs | Not available |
Power Supply | Through the data line (typical case), local VCC (some devices) | Through the data line | Local VCC |
Data Rate | Up to ~15kbps (standard) or ~125kbps (overdrive)9 | Up to ~20kbps | Data dependent, up to ~20kbps |
Network Inventory | Through the "search ROM" network function | Not applicable, message-based addressing | Not supported |
Choice of Device Functions | Large variety of device functions, including serial number, instrumentation, secure memories, etc. | Limited to functions needed in automotive applications | Limited to temperature sensors and voltage ADCs |
物理网络尺寸
只有SensorPath局限于电路板尺寸的应用。一定条件下,使用恰当的硬件和软件网络驱动器,可以极大地扩展1-Wire总线网络的距离。
网络驱动器
对于基于协议的网络,设计者需要软件驱动程序来产生通信波形(链路层),识别并寻址网络(网络层)的单个从器件/节点,并发送/接收数据(传输层)。软件驱动程序与特定操作系统和通信端口有关。可提供基于各类端口的1-Wire硬件驱动
芯片(主机)以及适配器,端口类型包括COM、LPT、USB和I²C。在未作匹配的大型网络中,电缆末端、连接器和分支的反射会限制网络的传输性能。
电源
必须为网络中的每个从器件供电,以实现正常工作。最具成本效益的方法是通过数据线远程供电。该方法也称为“寄生供电”,这使得读取系统诊断信息(比如在掉电模式下)成为可能。具体范例请参考应用笔记178中的图3和相关内容:"
利用1-Wire产品标识印刷电路板"
10。当然由于必须为供电留出时间,寄生供电也降低了可用的数据速率。
数据速率
通常来说,数据速率越高,网络传输距离越短,反之亦然。1-Wire系统具有电源传输功能,因此最大数据
传输速率取决于网络的从器件数目以及电缆总长度(电容)。
网络节点查找功能
该特性允许主机识别网络中从器件的数目、类型和地址。这一点对于节点数动态(变化)的网络来说必不可少。请参考
Dallas工程期刊(第2期)
11第22页中的示例。
器件功能选择
范围如果不能提供应用所需要的功能,即使再出色的总线也毫无用处。与LIN总线和SensorPath相比,1-Wire系统目前可以提供最丰富的功能。
I²C/SMBus与1-Wire总线
如果实际应用可以提供时钟线,则总线选择范围可扩展到I²C
12和SMBus
13器件。根据SMBus的规范,它可以看作是100kbps I²C总线规范增加了超时特性后的派生总线类型。在某个节点与总线主机失去同步的情况下,超时特性可避免总线发生闭锁,而I²C系统则需要经过一次上电复位过程,才能从这种故障状态恢复至正常工作状态。在1-Wire系统中,复位/在线检测
周期可将通信接口复位至确定的启动条件下。
除了时钟线外,I²C/SMBus还为总线上传输的每个字节提供一个应答位。这使得有效数据速率降低了12%。通信过程开始于一个启动条件,并跟随从器件地址和一个数据方向位(读/写),最后结束于一个停止条件。对于1-Wire系统,首先需要满足网络层的要求(即选择某个特定器件,执行search ROM命令或者广播);接下来发送与特定器件相关的命令代码,该代码同时会影响数据的传输方向(读/写)。
原有I²C和SMBus总线系统的一个突出问题是其有限的7位地址空间。由于可提供超过127种不同器件类型,我们无法根据从器件地址推断器件功能。此外,许多I²C器件还允许用户随意设置1个或多个地址位,以在总线上挂接多个相同器件。这种特性进一步减少了可用的地址空间。解决地址冲突问题的标准做法是将总线系统划分成若干段,某一时刻可在软件控制下激活某个网络段。该网络段需要增加更多硬件,也使应用固件更为复杂。I²C系统不具备网络节点查找或枚举功能,因此很难处理节点数动态变化的系统。这一问题可借助
SMBus Specification Version 2.013中的地址分辨率协议得以解决。但是,支持该特性的SMBus器件极为稀少。
SPI和MICROWIRE接口
SPI
14和MICROWIRE
15 (
SPI的子集)均需要为每个从器件提供一条额外的片选线。由于具有片选信号,SPI协议只定义了针对存储器地址和状态寄存器的读/写命令。它不提供应答功能。通常,SPI器件的数据输入和数据输出采用不同的引脚。鉴于数据输出在除了读操作外的任何情况下均为
三态(禁止),因此可将两个数据引脚接到一起以构成单根
双向数据线。当其它总线系统无法提供所需的功能或需要较高的
数据传输速率时,可选用SPI总线,它可以支持2Mbps或更高的速率。SPI和MICROWIRE的不利因素在于产生CS信号的译码逻辑,以寻址某个特定器件。但是不会产生地址冲突问题。和I²C总线一样,不提供节点查找功能。主机无法根据从器件的逻辑地址来推断器件功能,因此很难管理节点动态变化的网络。
RS-485、LVDS、CAN、USB 2.0和FireWire
我们对这些标准进行讨论,以举例说明差分传输的特点。这类总线系统中传输速率最快的两种是FireWire
16和USB 2.0
17,它们采用点对点电气连接。使用先进的节点或集线器,可以构成树状拓扑的虚拟总线,数据包从源发送至端点(USB),或采用对等传输(
FireWire),突发数据速率高达480Mbps (USB 2.0)或1600Mbps (FireWire)。尺寸有限的数据包以及接收/缓冲/重发通信机制增加了传输时间,反过来降低了有效的数据吞吐能力。USB的拓扑和协议允许最多连接126个节点,FireWire允许最多63个节点,使用无源电缆时节点间的最大传输距离为4.5m。专为包括PC外设、多媒体、工业控制和航空(仅FireWire)应用而设计,USB和FireWire器件可以带电插入系统(
热插拔)。该特性允许网络节点数动态变化。
LVDS
18、RS-485
19和CAN
20可实现挂接主机和从机的总线型结构,甚至可以连接多个主机。这些标准中
低压差分信号(LVDS)是速率最快的,如果总线长度不超过10m,可工作在100Mbps速率下。可用的数据速率及吞吐可以更快或更慢,具体取决于网络尺寸。LVDS电气标准专为背板应用而设计,支持热插拔功能,但不包含任何协议。
RS-485也仅定义了电气参数。RS-485定义了负载和每条总线的最大负载数目(32),而不是以节点的形式给出。一个电气节点的负载可以小于1。12m网络距离下的典型数据速率可高达35Mbps,1200m距离下数据速率可达100kbps,这些特性足以满足数据采集和控制应用。RS-485设备的协议通常基于原来设计用于
RS-232的部分协议。
与此不同,
控制器局域网(CAN)为分布式实时控制定义了通信协议,安全性非常高,专门面向汽车应用和工业自动化领域。数据速率从40m距离下的1Mbps到1000m距离下的50kbps。寻址方式是基于消息的,协议本身对节点数没有任何限制。CAN节点支持热插拔,网络节点数可以动态变化。
结语
在简单、低成本总线系统中,与LIN总线和SensorPath相比,1-Wire系统的从器件可提供最广泛的功能和网络驱动器。I²C和SMBus除了需要数据线和参考地之外,还需要时钟线和
VCC电源,当然可供选择的器件功能也非常多。SPI和MICROWIRE需要额外的片选线,但可以提供更高的数据速率。除支持寄生供电和网络节点查找功能外,1-Wire接口和协议还支持热插拔,这一特性通常仅在使用差分信号的高速系统以及SMBus 2.0兼容产品中才提供。
iButton®产品是使用极为广泛的热插拔1-Wire器件,热插拔是这类器件的正常工作方式。事实已经证明,1-Wire器件在下列应用中极为有效:全球识别号21、电路板/配件标识与认证
10、
温度检测和执行装置等。另外一种非常成功的1-Wire产品是具有安全存储器和质询-响应机制的器件,它能以最低的成本实现双向认证和软件代码保护
22, 23。
类似文章出现在2006年9月出版的Electronic Products上。参考资料 - Interbus Club. www.interbusclub.com/ (industrial automation)
- The valid M-Bus standard. www.m-bus.com/ (meter reading)
- "Overview of 1-Wire Technology and Its Use." www.maxim-ic.com/AN1796 (intro to 1-Wire)
- LIN Local Interconnect Network. www.lin-subbus.org/ (LIN specification)
- National Semiconductor. "Cost Effective Partitioning of IO and Management Functions in PCs - Introduction of SensorPath™ Technology." www.national.com/nationaledge/jan04/article.html (SensorPath)
- "性能优异的1-Wire网络驱动器" china.maxim-ic.com/AN244 (硬件驱动器)
- "长线1-Wire网络可靠设计指南" china.maxim-ic.com/AN148 (1-Wire网络)
- "1-Wire软件资源指南和器件说明" china.maxim-ic.com/AN155 (软件驱动器)
- "确定多从机1-Wire网络的恢复时间" china.maxim-ic.com/AN3829 (恢复时间)
- "利用1-Wire产品标识印刷电路板" china.maxim-ic.com/AN178 (电路板识别)
- " Dallas工程期刊," 第2期 pdfserv.maxim-ic.com/cn/ej/DallasEJ2.pdf (动态网络)
- "The I²C-Bus Specification, Version 2.1, January 2000." www.nxp.com/acrobat_download/literature/9398/39340011.pdf (I²C)
- "SMBus Specifications." www.smbus.org/specs/ (SMBus)
- "M68HC11E Family." www.freescale.com/files/microcontrollers/doc/data_sheet/M68HC11E.pdf (SPI)
- "MICROWIRE™ Serial Interface." www.national.com/an/AN/AN-452.pdf (MICROWIRE)
- The Air Power Australia Website. "Firewire." www.ausairpower.net/OSR-0201.html (FireWire)
- "USB 2.0 Specification." www.usb.org/developers/docs (USB specification)
- National Semiconductor. "LVDS Owner's Manual: Low-Voltage Differential Signaling." www.national.com/appinfo/lvds/files/ownersmanual.pdf (LVDS)
- Lammert Bies' Website. "RS485 serial information." www.lammertbies.nl/comm/info/RS-485.html (RS-485)
- Robert Bosch GmbH. "CAN Specification, Version 2.0." www.semiconductors.bosch.de/pdf/can2spec.pdf (CAN specification part A)
CAN in Automation (CiA). "CAN Specification 2.0, Part B." www.can-cia.org/downloads/ciaspecifications/?269 (CAN specification part B) - "利用1-Wire器件建立全球标识符" china.maxim-ic.com/AN186 (全球标识符)
- "保护您的研发成果—双向认证及软件功能保护" china.maxim-ic.com/AN3675 (双向认证)
- "利用1-Wire线接口的SHA-1安全存储器实现Xilinx® FPGA的识别及防拷贝机制" china.maxim-ic.com/AN3826 (FPGA保护)