光纤CAN总线自愈环网的研究
摘要:介绍了光纤单CAN网络的工作特点及其不足。为提高光纤CAN网络的生存性,设计了光纤CAN总线自愈环网。采用塑料地(POF)为传输介质,用波长为650nm的红光光电收发器件实现光/电转换。分析了CAN网络数据帧的结构特点,给出了基于CPLD的自愈接口电路的实现方法。通过组建车载光纤CAN总线自愈环网,证明该网络不但具有自愈功能,还能消除光纤CAN环形网络中的阻塞现象。
关键词:CAN 自愈环 CPLD 接口电路 塑料光纤
CAN总线是德国Bosch公司于20世纪80年代初为解决汽车中众多数据交换而开发的一种串行数据通信协议。由于其具有卓越的特性,CAN总线成为目前公认的几种最有前途的现场总线之一。CAN总线的传输介质可以是双绞线、光纤和同轴电缆。目前双绞线CAN总线已得到了广泛应用,各项技术已经成熟。双绞线CAN网络在技术在容易实现、造价低廉,且对环境电磁辐射有一定抑制能力。但是当工作环境特别复杂时,其抗干扰能力并不十分令人满意。如在电动汽车现场,情况较为复杂,车载电气系统会产生强电磁干扰,将导致双绞线CAN网络不能正常工作。与双绞线和同轴电缆相比,光纤的优越性能--强大的抗EMI能力引起人们的关注。为进一步提高CAN网络的性能,应采用光纤作传输介质。由于车载局域网传送距离短,同时为了降低车载光纤CAN网络的成本,可选用塑料光纤(POF)作为传输介质。塑料光纤在高速短距离通信传输中成本低、易连接、可绕性好、重量轻,故组网成本低。德国宝马公司在2002年3月上市的最高级新款轿车"BMW7系列''中采用于50m POF构筑车内局域网。
光纤CAN网作为一种工业底层控制局域网,其拓扑结构与常用局域网一样,基本拓扑结构有总线形、环形和晕形。在光纤单环CAN网络中,由于器件的延时将导致环路信号自激,使环形CAN网络堵塞(或称为锁死)。为遵守CAN总线控制器在链路层的协议,应设计一种光纤CAN单环网专用逻辑控制单元LCU。该单元的功能是:对CAN总线数据实现收发控制,即主节点对接收到的数据不转发,当数据沿光纤环回到原发送节点时,立即被剔除;从节点对接收数据实现转发。同时还可消除环形光纤CAN总线网络的自激现象,保证环网不被堵塞。
Q光纤单环网络中,节点或链路的故障可能造成网络的瘫痪。为了提高光纤环网的生存性,应构成具有自愈功能的光纤双环自愈网。
图1
1 光纤自愈环CAN网总体设计
1.1 光纤自愈环结构
光纤自愈环CAN网络如图1所示。该网络有两条光纤环路--顺时针环和逆时针环,各节点CAN控制器SJAl000通过接口电路与双环光纤网相连,接口电路由Altera公司出产的复杂可编程逻辑器件(CPLD)EPM7128S、两个光发送器LEDR和LEDL、两个光接收器PINR和PINL组成。
1.2 接口电路的功能
光纤自愈环CAN网接口电路的功能是:(1)当光纤双环通信正常时(如图2(a)所示),各节点右端光发送器 LEDR传送左端光接收器PINL的数据,信号顺时针传送;同理LEDL传送PINR的数据,信号逆时针传送,即发送器选择对侧数据转发。(2)当单根光纤故障时(如图2(b)所示),下游C节点接口电路实现环回,由于左侧光接收器PINL无信号,右端光发送器LEDR选择同侧光接收器PINR数据转发。(3)当任意节点间两根光纤故障时(如图2(c)所以),如BC节点间光纤被切断时,则B、C两个节点与光纤切断点相连执行环回功能。此时,从A到C的信号AC则先经顺时针环到B,再经逆时针环过A、D后到达C。而信号CA则仍经顺时针环传输。这种自愈功能保证在故障情况下仍能维持环的连续性。故障排除后,倒换开关自动返回原来位置。(4)实现节点CAN控制器数据选择接收。其原则为:对于各节点接收的顺、逆时针数据,选择PINL、PINR中先到达的数据接收。(5)实现节点数据选择发送。其原则为:当总线空闲时,选择本节点CAN控制器发送端TX发送数据,可消除环形光纤CAN总线网络的自激现象,保证环网不被堵塞;当本节点CAN控制器为接收节点时,选择对侧数据发送;当本节点CAN控制器为接收节点时,且对侧光纤通道故障,则选择同侧数据发送。(6)判别各通道帧起始和帧结束,鉴别总线是否空闲,网络是否故障。如判断到左测光接收器PINL有数据帧正在传送时,产生左侧发送数据标志flag_l和网络通信状态标志sync_l。
2 接口电路设计
光纤CAN自愈网的自愈功能及收发控制功能由可编程逻辑器件(ALTERA EPM7128SLC84一15)实现,编程采用VHDL语言。下面进行具体介绍。
2.1 输入输出口设置
图3为接口电路CPLD的I/O口示意图。其中,输入输出pin_l、led_l、1ed_r、pin_r分别与光/电转换模块PINL、LEDL、LEDR、PINR相连:txd、rxd分别与CAN痉制器的数据发送端TX、接收端RX相连;flag_txd=1代表本节点CAN控制器TX0正在发送数据帧;flag_l=1代表左侧通道正在发送数据帧;flag__r=1代表右侧通道正在发送单据帧。sync_l为左侧网络通信状态标志,sync_r为右侧网络通信状态标志。当左通道正常时,输出sync_1="l",驱动网络状态发光二极管D_sl亮;当右通道正常时,输出sync_r="1",驱动网络状态发光二极管D_sr亮;若网络状态发光二极管D_sr或D_sl灭,表示网络对应光纤通道出了故障。当本节点