串行总线的选择原则
选择串行总线并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)和电压外,设计者还应该考虑以下几点:
通过何种方式选择某个外设(通过硬件片选输入或软件协议)。 外设如何与µC保持同步(借助一条硬件时钟线,或借助内嵌于数据流中的时钟信息)。 数据是在单根线上传输(在“高”和“低”之间转换),还是在一对差分线上传输(两根线按相反的方向同时转换其电压)。 通信线路的两端均使用匹配电阻实现阻抗匹配(通常用于差分信号传输),还是不匹配或仅在一端匹配(通常用于单端总线)。
表1以矩阵的形式展示了各种通用总线系统之间的差异。16种可能组合中只有4种通用类型为大家所熟知。
除这些特性外,具体应用还会提出更多要求,如供电方式、隔离、噪声抑制、µC (主机)与外设(从机)间的最大传输距离、以及电缆连接方式(总线型、星型、可承受线路反接等)。提出类似要求的应用包括楼宇自动化、工业控制和抄表等,并且都已制定了相应的标准。1, 2
表1. 串行总线系统概括
提供外设功能的串行总线系统不应该给应用系统增加任何沉重的负荷。尤其需要注意以下几点:
互连布线一定要简单(信号线越少越好)。 必须能够轻松地通过软件实现协议(或所选的µC/µP本身提供这种接口)。 需要提供功能广泛的器件。 总线系统必须易于扩展。
使用软件协议完成寻址的单端、自同步系统需要的信号线最少。从表1可以看出,1-Wire、LIN总线和SensorPath能够满足这些条件。在这类总线系统中,还需要考虑其它因素(见表2)。
表2. 1-Wire、LIN总线和SensorPath总线系统的性能差异
物理网络尺寸
只有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²C12和SMBus13器件。根据SMBus的规范,它可以看作是100kbps I²C总线规范增加了超时特性后的派生总线类型。在某个节点与总线主机失去同步的情况下,超时特性可避免总线发生闭锁,而I²C系统则需要经过一次上电复位过程,才能从这种故障状态恢复至正常工作状态。在1-Wire系统中,复位/在线检测周期可将通信接口复位至确定的启动条件下。
除了时钟线外,I²C/SMBus还为总线上传输的每个字节提供一个应答位。这
串行总线选择原 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)