摘要:本文对基于双绞线的 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 总线接口还具有下列重要特性。
目前,已经研究和开发出来的光纤 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)技术将收/发光波耦合到一根光纤中,从而实现单纤双向通信。
如图 3 所示,本研究采用以光纤 CAN 总线集线器为中心的星型网络构型,集线器通过单光纤与 N个节点连接。在节点中保留 CAN 总线控制器,舍弃了双绞线网络中的收发器和双绞线,代之以收/发一体化光模块和单根光纤进行信号的转换和传输,详见图 2。总线集线器是实现 CAN 总线网络“线与”功能的关键设备,集线器以 CPLD 为核心,各节点发送的信号 RX(1)~RX(n)相与后,通过 TX(1)~TX(n) 同时回传给各节点,从而实现光纤 CAN 总线网络“线与”功能。
光波通过光纤到达 1#节点,经过 FC 型光纤连接器返回 FC 型光模块,经过光/电转换后,以电信号形式从 FC 型光模块的 RD 端输出,此时,信号“显性”为“1”,“隐性”为“0”;此信号通过反向器反向后,信号特性变为“显性”为“0”,“隐性”为“1”,此信号送入 SJA1000 的 RX0 端被控制器采集,并进行仲裁。
仲裁原理:如果 1#节点的 CAN 总线控制器TX0端发送出去的状态位值与此时RX0端收到的位值不一致,则该节点退出竞争;反之,如果一致,则该节点继续发送下一位参与竞争,直至最后胜出,取得总线控制权。
系统建模与测试
基于上述方案,我们建立了两套系统模型,两套系统模型都是基于光纤 CAN 总线集线器的网络模型,只是节点机不同,一个系统的节点机为单片机节点机,另一个是对现有工控机的 CAN 总线板卡进行光纤化改进,在已有双绞线系统中直接替换物理层。系统规模为 8 个节点机,光纤长度为 10m。