微控制器(µC)是当今各种先进电子产品的核心,它需要与一个或多个外设器件通信。以前,µC的外设是以存储器映射方式与数据和地址总线连接的。对地址线译码以获得片选信号,从而在有限的地址范围内为每个外设分配唯一的地址。这种接口类型所需的最少引脚数(除电源和地之外)为:8 (数据) + 1 (R//W) + 1 (/CS) + n条地址线[n = log2(内部寄存器或存储器字节的数目)]。例如,与一个16字节外设通信时,需要的引脚数为:8 +1 + 1 + 4 = 14。这种接口的访问速度快,但较多的引脚数也同时带来了封装尺寸增大和总成本提高的问题。要降低成本和缩小封装尺寸,串行接口显然是理想的替代方案。
选择串行总线并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)和电压外,设计者还应该考虑以下几点:
除这些特性外,具体应用还会提出更多要求,如供电方式、隔离、噪声抑制、µC (主机)与外设(从机)间的最大传输距离、以及电缆连接方式(总线型、星型、可承受线路反接等)。提出类似要求的应用包括楼宇自动化、工业控制和抄表等,并且都已制定了相应的标准。1, 2
表1. 串行总线系统概括
表2. 1-Wire、LIN总线和SensorPath总线系统的性能差异
除了时钟线外,I²C/SMBus还为总线上传输的每个字节提供一个应答位。这使得有效数据速率降低了12%。通信过程开始于一个启动条件,并跟随从器件地址和一个数据方向位(读/写),最后结束于一个停止条件。对于1-Wire系统,首先需要满足网络层的要求(即选择某个特定器件,执行search ROM命令或者广播);接下来发送与特定器件相关的命令代码,该代码同时会影响数据的传输方向(读/写)。
原有I²C和SMBus总线系统的一个突出问题是其有限的7位地址空间。由于可提供超过127种不同器件类型,我们无法根据从器件地址推断器件功能。此外,许多I²C器件还允许用户随意设置1个或多个地址位,以在总线上挂接多个相同器件。这种特性进一步减少了可用的地址空间。解决地址冲突问题的标准做法是将总线系统划分成若干段,某一时刻可在软件控制下激活某个网络段。该网络段需要增加更多硬件,也使应用固件更为复杂。I²C系统不具备网络节点查找或枚举功能,因此很难处理节点数动态变化的系统。这一问题可借助SMBus Specification Version 2.013中的地址分辨率协议得以解决。但是,支持该特性的SMBus器件极为稀少。
LVDS18、RS-48519和CAN20可实现挂接主机和从机的总线型结构,甚至可以连接多个主机。这些标准中低压差分信号(LVDS)是速率最快的,如果总线长度不超过10m,可工作在100Mbps速率下。可用的数据速率及吞吐可以更快或更慢,具体取决于网络尺寸。LVDS电气标准专为背板应用而设计,支持热插拔功能,但不包含任何协议。
RS-485也仅定义了电气参数。RS-485定义了负载和每条总线的最大负载数目(32),而不是以节点的形式给出。一个电气节点的负载可以小于1。12m网络距离下的典型数据速率可高达35Mbps,1200m距离下数据速率可达100kbps,这些特性足以满足数据采集和控制应用。RS-485设备的协议通常基于原来设计用于RS-232的部分协议。
与此不同,控制器局域网(CAN)为分布式实时控制定义了通信协议,安全性非常高,专门面向汽车应用和工业自动化领域。数据速率从40m距离下的1Mbps到1000m距离下的50kbps。寻址方式是基于消息的,协议本身对节点数没有任何限制。CAN节点支持热插拔,网络节点数可以动态变化。
关键字:串行总线
引用地址:选择串行总线
选择串行总线并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)和电压外,设计者还应该考虑以下几点:
- 通过何种方式选择某个外设(通过硬件片选输入或软件协议)。
- 外设如何与µC保持同步(借助一条硬件时钟线,或借助内嵌于数据流中的时钟信息)。
- 数据是在单根线上传输(在“高”和“低”之间转换),还是在一对差分线上传输(两根线按相反的方向同时转换其电压)。
- 通信线路的两端均使用匹配电阻实现阻抗匹配(通常用于差分信号传输),还是不匹配或仅在一端匹配(通常用于单端总线)。
除这些特性外,具体应用还会提出更多要求,如供电方式、隔离、噪声抑制、µC (主机)与外设(从机)间的最大传输距离、以及电缆连接方式(总线型、星型、可承受线路反接等)。提出类似要求的应用包括楼宇自动化、工业控制和抄表等,并且都已制定了相应的标准。1, 2
表1. 串行总线系统概括
电路板到背板的应用需求
提供外设功能的串行总线系统不应该给应用系统增加任何沉重的负荷。尤其需要注意以下几点:- 互连布线一定要简单(信号线越少越好)。
- 必须能够轻松地通过软件实现协议(或所选的µC/µP本身提供这种接口)。
- 需要提供功能广泛的器件。
- 总线系统必须易于扩展。
表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²C12和SMBus13器件。根据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接口
SPI14和MICROWIRE15 (SPI的子集)均需要为每个从器件提供一条额外的片选线。由于具有片选信号,SPI协议只定义了针对存储器地址和状态寄存器的读/写命令。它不提供应答功能。通常,SPI器件的数据输入和数据输出采用不同的引脚。鉴于数据输出在除了读操作外的任何情况下均为三态(禁止),因此可将两个数据引脚接到一起以构成单根双向数据线。当其它总线系统无法提供所需的功能或需要较高的数据传输速率时,可选用SPI总线,它可以支持2Mbps或更高的速率。SPI和MICROWIRE的不利因素在于产生CS信号的译码逻辑,以寻址某个特定器件。但是不会产生地址冲突问题。和I²C总线一样,不提供节点查找功能。主机无法根据从器件的逻辑地址来推断器件功能,因此很难管理节点动态变化的网络。RS-485、LVDS、CAN、USB 2.0和FireWire
我们对这些标准进行讨论,以举例说明差分传输的特点。这类总线系统中传输速率最快的两种是FireWire16和USB 2.017,它们采用点对点电气连接。使用先进的节点或集线器,可以构成树状拓扑的虚拟总线,数据包从源发送至端点(USB),或采用对等传输(FireWire),突发数据速率高达480Mbps (USB 2.0)或1600Mbps (FireWire)。尺寸有限的数据包以及接收/缓冲/重发通信机制增加了传输时间,反过来降低了有效的数据吞吐能力。USB的拓扑和协议允许最多连接126个节点,FireWire允许最多63个节点,使用无源电缆时节点间的最大传输距离为4.5m。专为包括PC外设、多媒体、工业控制和航空(仅FireWire)应用而设计,USB和FireWire器件可以带电插入系统(热插拔)。该特性允许网络节点数动态变化。LVDS18、RS-48519和CAN20可实现挂接主机和从机的总线型结构,甚至可以连接多个主机。这些标准中低压差分信号(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。
上一篇:基于TMS320LF2407的CAN总线数控系统底层测控模块
下一篇:塑料光纤实现RS-232的无源高速高压隔离
推荐阅读最新更新时间:2024-05-03 00:26
示波器在汽车行业中的应用 LIN、CAN 和 FlexRay 串行总线调试
Keysight InfiniiVision 2000、3000 和 4000 X 系列示波器提供 CAN 和 LIN 触发与解码以及 CAN 眼图模板测试功能,帮助您更快速地调试汽车串行总线。InfiniiVision 3000 和 4000 X 系列还提供 FlexRay 触发和解码以及 FlexRay 眼图模版测试功能。 为了改善系统通信效率,降低成本,今天所有的汽车设计都采用了大量的串行总线通信协议。I2C 和 SPI 协议最常用于电子控制单元 (ECU) 的芯片间通信。对于各种汽车子系统 (例如舒适性控制系统、防盗锁、传动系统和引擎控制) 之间的长距离串行通信和控制,CAN、LIN 和 FlexRay 协议是当今汽车行业
[测试测量]
I2C串行总线的操作程序
起始信号(时钟线为高,数据线由高变低): void AT24C04_Start() { SDA = 1; //拉高数据线 SCL = 1; //拉高时钟线 Delay5us(); //延时 SDA = 0; //产生下降沿 Delay5us(); //延时 SCL = 0; //拉低时钟线 } 结束信号:(时钟线为高,数据线由低变高) void AT24C04_Stop() { SDA = 0; //拉低数据线 SCL = 1; //拉高时钟线 Delay5u
[单片机]
单线串行总线可传递相互隔离的电源和数据
医疗和工业应用经常为了病人和设备操作员的人身安全要求隔离电压达到2500Vac或更高。该隔离屏障不仅要把电源传输到传感器件上,而且还要传送往来于该器件上的数据。 每一个穿越隔离屏障的数据信号都要求隔离。因此,在这些应用中,设计者可以通过选用串行总线而不是并行总线来节约成本。串行总线包括SPI、I2C和Dallas单线串行总线。 Dallas单线总线只需要一根数据线(外加地线)来进行双向通讯。由于光隔离器是单向器件,典型的单线传输需要两个光耦,数据流的每个方向上各用一个(而SPI和I2C总线则至少需要三个光耦)。 该单线串行总线不仅允许传输双向数据流,而且还可以寄生电源模式传递电源。用一个隔离的变换器来为传感器
[电源管理]
基于IEEE1394b的双向传输设备驱动程序设计
现有的大部分数据传输接口总线造价比较高,且难以满足实际运用中对传输速率的要求,成了阻碍整个系统性能提高的一大屏障。IEEE-1394是现今最高速的串行总线接口之一,IEEE1394lb更是在原有IEEE1394的基础上速度更快,支持距离更长,在实时批量数据传输方面有广泛的应用前景。 基于1394传输系统设备驱动文献,大部分都是基于IEEE1394a的,而IEEE1394b以其更高的速度展现出了更大的魅力,对实时大批量的数据传输具有重大意义,但是Microsoft并没有提供对1394b的支持,在Windows自带的1394不能支持其S800的速度,因此1394b在应用上受到局限,Unibrian提供了FireAPI SDK
[模拟电子]
揭开测试测量的小秘密——每周一考 【第7周】
1、汽车电子中有哪些常见的串行总线有哪些? 2、目前示波器能提供对哪些总线进行眼图模板测量? 3、同时进行CAN和LIN总线解码时,在一个窗口中交替显示和用两个窗口并列显示有什么优点? ----------------------------------我是答案分界线---------------------------------------- 1、汽车电子中有哪些常见的串行总线有哪些? 汽车电子包括多媒体子系统、显示子系统、自适应导航子系统、驾驶员信息子系统等,包括的串行信号总线也因子系统的不同而不同,总的来讲,国内汽车电子最常见的为CAN,LIN两种总线,高档汽车目前全球有两三家公司采用FlexRay 总线,汽车的娱乐
[测试测量]
工业以及汽车应用中多种串行总线特性及比较
微处理器中常用的集成串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。 微处理器中常用的集成
[嵌入式]
调试嵌入式系统设计中的低速串行总线
引言 今天,嵌入式系统几乎遍布在人类社会的每个角落。嵌入式系统可以简单定义为属于大型系统或机器一部分的一种专用计算机系统,其目的是为该系统或机器提供监测和控制服务。典型的嵌入式系统在开机时会开始运行某些专用应用,直到关闭时才会停止。当前设计和生产的几乎每个电子设备都是嵌入式系统。嵌入式系统实例包括:
– 电子闹表 - 自动柜员机 – 移动电话蜂窝手机 – 计算机打印机 – 防抱死刹车控制器 – 微波炉 – 导弹使用的惯性引导系统 – DVD播放机 – 个人数字助理(PDA) – 工业自动化和监测使用的可编程程控逻辑控制器(PLC) – 便携式音乐播放机 – 可能还包括烤面
[嵌入式]
如何验证和分析复杂的串行总线链路模型
信号的更快传输速度和不断缩小的几何形状要求有强大的数据链路应用程序来支持在实时示波器上进行实况波形建模、测量和仿真。在设计方面,发射器和接收器位置采用先进均衡技术来应对这些挑战的趋势。更小的形状因子使信号存取更加困难,成为非理想的探测点。这会导致由于阻抗间断性而在采集信号时产生损耗和反射,而在理想测量位置则不存在这种情况。 串行数据链路分析应用程序允许用户装载测量电路的电路模型,其中包括测试和测量夹具以及用于采集DUT(被测器件)波形的仪器。这能帮助从采集波形去嵌(De-embed)由夹具和测试设备(如探头和示波器)造成的损耗和反射。去嵌这些效应能够提高测量精度,并且有时直接关乎测试的通过或失败。此外,链路分析应用程序还允许用
[测试测量]