摘要:本文对基于双绞线的 CAN 总线特性进行了归纳和分析,论述了在 CAN 总线物理层用光纤替代双绞线实现 CAN 总线通信的原理,重点对基于集线器的单光纤 CAN 总线网络构型进行了研究和探索,提出了一种基于集线器的单光纤 CAN总线网络通信技术,并构建了网络模型进行了有关的性能测试和验证。
关键字:光纤;CAN 总线;光模块;集线器;电磁干扰
引言
CAN 控制器局域网(Controller Area Network)起源于德国 Bosch 公司,由于其独特的多主非破坏逐位仲裁机制、高可靠的数据传输、良好的开放性、较高的性价比、国际范围的标准化和广泛的器件来源,迅速在众多工业自动化领域得到了广泛应用,成为发展最快、最具前途的现场总线之一。
CAN 总线作为一种应用越来越广泛的现场总线,一直以来都是采用金属双绞屏蔽线作为组网传输介质,尽管采用差分方式传输的 CAN 总线已经具有较好的抗干扰能力,但是,对于一些特殊场合,如:电磁环境恶劣、高电压、强磁场等应用场合,金属双绞屏蔽线的 CAN 网络就无法适应了。近年来,随着光纤通信技术的快速发展,光纤作为新兴的信息传输介质,具有独特的免电磁干扰特性和抗恶劣环境、不辐射电磁波、不导电的优良品质。因此,本文在分析了双绞线 CAN 总线特性的基础上,提出一种新型的光纤 CAN 总线接口和网络构型,以促进光纤 CAN 总线技术的发展和应用。
金属双绞线 总线接口特性分析
典型的金属双绞线 CAN 总线接口电路如图 1所示。 (图片)
图1 典型的金属双绞线 CAN 总线接口电路 收发器 PCA82C250 是设备中 CAN 总线控制器SJA1000和外部双绞屏蔽线CAN总线网络之间的接口。它向总线提供差分驱动,它的主要功能是将CAN 总线控制器 TX0 端输出信号的 TTL 电平变换为 CAN 总线上的“隐性”(逻辑“1”)或“显性”(逻辑“0”);并将 CAN 总线上的逻辑电平变换为 CAN总线控制器可以识别的 TTL 电平,从 RX0 端输入。其真值表见表 1。(图片) 收发器发送/接收数据的原理详见参考文献[1]。除了上述收发器的功能之外,CAN 总线接口还具有下列重要特性。
1)“线与”功能:当 TXD=‘1’发送“隐性”电平时,驱动器使 PNP 管和 NPN 管截止,总线的状态由其它节点的输出状态决定,只有当总线上所有节点都输出“隐性”位时,总线状态才为“隐性”;否则,只要有一个节点发送“显性”位,网线 CANH 被钳位在高电平,CANL被钳位在低电平,则此时网络状态必为“显性”位。故收发器 RXD 端的信号是所有节点 TXD信号“相与”逻辑运算的结果;
2)“在线监听”功能:控制器从 TX0 端发出的信号,通过收发器在总线上“线与”后,从 RXD输出给控制器 RX0 端接收,实现总线的“在线监听”功能;
3)节点故障保护功能:当某个节点故障时,CAN总线控制器可能连续发送“显性”位“霸占”总线,造成系统瘫痪,此时,收发器中的保护电路将自动将本节点断开;
4)非破坏逐位竞争总线仲裁机制:该机制是利用CAN 控制器的“在线监听”和收发器的硬件“线与”功能,当多个节点发生竞争,逐位同时向网络发送报文标识符时,如果控制器发送出去的位值和“在线监听”读回的位值一致,则继续发送下一位参与竞争;如果发送出去的位值和“在线监听”读回的位值不一致,即本节点优先级低(数值大,该位值为 1,即隐性),则控制器判定本节点退出竞争。
总体设计
3.1. 系统构型
目前,已经研究和开发出来的光纤 CAN 总线网络主要有总线型、环形和星型等网络构型,且基本采用双光纤分别实现信号的收/发功能。本文提出了一种新型的基于集线器形式的单光纤 CAN 总线网络,属于星型网络构型,采用点对点方式通信。
3.2. 光纤物理层定义
本研究在 CAN 总线网络的物理层保留了 CAN控制器,重新设计网络物理层,以收/发一体化的光模块替代 CAN 收发器,以波分复用的单光纤替代金属双绞屏蔽线,收/发采用不同波长的光波进行信息传输,并保证网络物理层之上完全符合 CAN 总线标准的定义。
3.3. “显性”和“隐性”位定义
本研究中“显性”和“隐性”位定义为:光纤中有光信号传输时表示“显性”位,无光时表示“隐性”位。
在 CAN 控制器(如:SJA1000)的发送端 TX0和接收端 RX0 处,仍然保持现有的定义不变:逻辑“0”定义为“显性”电平;逻辑“1”定义为“隐性”电平。
3.4. 非破坏总线仲裁机制设计
CAN 总线网络的非破坏总线仲裁机制之所以能够实现的一个重要特性就是收发器硬件的“线与”功能。本研究采用复杂可编程逻辑器件 CPLD 的“逻辑与”来实现。只要确保 CAN 总线控制器 TX0 和RX0 端的信号特征不变,非破坏逐位竞争的总线仲裁机制就可以实现,并且 CAN 总线网络的数据链路层以上均保持不变。
3.5. 收发器容错机制设计
在双绞线 CAN 总线中,CAN 收发器具有故障节点自动关闭功能。即当 CAN 控制器硬件故障,长期发送“显性”位时,CAN 收发器自动关闭本节点。在光纤 CAN 总线网络中,该功能由集线器 CPLD 中的逻辑来实现。
3.6. 光路设计要素
3.6.1. 收/发一体化光模块
CAN 总线通讯时,总线上传输的是直流信号,因此,必须采用能够传输直流的光模块。目前能传输基带信号的收发一体模块的最高带宽为 10MHz,本研究选 2MHz。该模块通过 TTL 电平与 CAN 控制器接口,并采用波分复用(WDM)技术将收/发光波耦合到一根光纤中,从而实现单纤双向通信。
本研究特别定制了以下两种:
FC型光模块(FC型连接器):发送波长=1310nm;接收波长=1550nm;
SC型光模块(SC型连接器):发送波长=1550nm;接收波长=1310nm。
3.6.2. 光纤和通信窗口
由于本研究应用环境的 CAN 总线长度只有几十米,总线速率不超过 1Mbps,故选用对光源技术要求较低、衰减较小(功耗低)和芯径较粗(可靠性较高)的玻璃多模光纤。
多模玻璃光纤主要有850nm、1310nm和1550nm三个通信窗口。两个节点间选用某个波长作为发射窗口、另一个波长作为窗口则可实现单根光纤上的双向通信。本研究中采用 1550nm 和 1310nm 两个窗口实现双向通信。
技术方案
4.1. 光纤接口物理层设计
典型的光路组成如图 2 所示。(图片)
图 2 光纤接口连接框图 FC 型收发一体化光模块由光电子器件、功能电路和光接口等组成。光电子器件包括发射和接收两部分。发射部分:输入一定码率的电信号经内部的驱动芯片处理后驱动发光二极管(LED)发射出相应速率的调制光信号,其内部带有光功率自动控制电路,使输出的光信号功率保持稳定。接收部分:一定码率的光信号输入光模块后由光探测二极管转换为电信号,经前置放大器后输出相应码率的电信号。发送和接收光波通过 FC 光纤连接器进入光纤。集线器中采用 SC 型收发一体化光模块完成光/电和电/光的转换,其输出端 TD 和输入端 RD 直接与 CPLD 连接。
FC型和SC型收发一体化光模块的收/发光波波长对应互置,共享一根光纤,互不干扰。如:FC 型光模块的发送波长为 1310nm,则 SC 型光模块的接收波长就是 1310nm。
4.2. 系统的组成
如图 3 所示,本研究采用以光纤 CAN 总线集线器为中心的星型网络构型,集线器通过单光纤与 N个节点连接。在节点中保留 CAN 总线控制器,舍弃了双绞线网络中的收发器和双绞线,代之以收/发一体化光模块和单根光纤进行信号的转换和传输,详见图 2。总线集线器是实现 CAN 总线网络“线与”功能的关键设备,集线器以 CPLD 为核心,各节点发送的信号 RX(1)~RX(n)相与后,通过 TX(1)~TX(n) 同时回传给各节点,从而实现光纤 CAN 总线网络“线与”功能。(图片)
图 3 基于集线器的单光纤 CAN 总线网络构型 4.3. 工作原理
如图 2 和图 3 所示,1#节点 CAN 总线控制器的数据发送端 TX0 将报文标识符逐位发送给反向器,“显性”为“0”,“隐性”为“1”;经过反向器后,“显性”为“1”,“隐性”为“0”;FC 型光模块的 TD 端接收“1”时,LED 发送波长为 1310nm 的光波,接收“0”时,不发光,因此,经过光模块后,光纤中有光表示“显性”,无光表示“隐性”。
光波通过光纤到达光纤 CAN 总线集线器,经过SC 型光纤连接器进入 SC 型光模块,经过光/电转换后,以电信号形式从 SC 型光模块的 RD 端输出,此时,信号“显性”为“1”,“隐性”为“0”;此信号通过 CPLD 的 1#光口的 RX(1)进入 CPLD,各节点发送的信号 RX(1)~RX(n)按照下列公式进行逻辑运算:
TX(1),TX(2)...TX(n)=RX(1)&RX(2)&...&RX(n-1)&RX(n)
其含义是将输入到 CPLD 中的 n 个输入信号RX(1),RX(2)…RX(n-1),RX(n)全部相“与”后,再送回 n 个输出 TX(1),TX(2)…TX(n-1),TX(n),从而,采用 CPLD 逻辑“与”实现了双绞线的“线与”功能。
“相与”后的信号通过 CPLD 的 TX(1)端发送给 SC 型光模块的 TD 端,SC 型光模块的 TD 端接收“1”时,LED 发送波长为 1550nm 的光波,接收“0”时,不发光,此时,光纤中有光表示“显性”,无光表示“隐性”。
光波通过光纤到达 1#节点,经过 FC 型光纤连接器返回 FC 型光模块,经过光/电转换后,以电信号形式从 FC 型光模块的 RD 端输出,此时,信号“显性”为“1”,“隐性”为“0”;此信号通过反向器反向后,信号特性变为“显性”为“0”,“隐性”为“1”,此信号送入 SJA1000 的 RX0 端被控制器采集,并进行仲裁。
仲裁原理:如果 1#节点的 CAN 总线控制器TX0端发送出去的状态位值与此时RX0端收到的位值不一致,则该节点退出竞争;反之,如果一致,则该节点继续发送下一位参与竞争,直至最后胜出,取得总线控制权。
系统建模与测试
基于上述方案,我们建立了两套系统模型,两套系统模型都是基于光纤 CAN 总线集线器的网络模型,只是节点机不同,一个系统的节点机为单片机节点机,另一个是对现有工控机的 CAN 总线板卡进行光纤化改进,在已有双绞线系统中直接替换物理层。系统规模为 8 个节点机,光纤长度为 10m。
在此模型上,进行了收/发一体化光模块的转换延时、总线通信速率和报文丢失率(近似误码率)等方面的简单测试,测试情况见表 2。(图片) 结论
通过上述研究和测试,可以得出以下几个方面的结论:
1) 本技术方案符合 CAN 总线标准对物理层信号传输特性的要求,能够在不改变顶层协议的前提下,实现 CAN 总线特有的多主非破坏逐位竞争机制;
2) 星型网络拓扑结构相对于光纤环网构型,本研究光/电和电/光转换环节少,在同样光纤长度条件下,本技术方案可实现较高的通信速率;
3) 采用集线器组网方式,只需增加集线器的端口数,就可以扩展 CAN 总线网络的规模,且无总线负载匹配问题,故不会影响网络可达到的最高通信速率;
4) 采用基于波分复用双向信息传输技术的收/发一体化光模块单光纤连接方式,简化了系统的构型,减少了配置,便于组成更为复杂的系统网络;
5) 光纤 CAN 总线网络具有免电磁干扰能力,极大地提高了 CAN 总线网络在恶劣电磁环境中的生存力、安全性和可靠性;消除了双绞线网络信号衰减和收发器负载能力差的固有缺陷,便于扩大网络规模(节点数量)和提高通信速率。
参考文献
[1] 《现场总线 CAN 原理与应用技术》饶运涛等著
8/21/2012
|