微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 光纤CAN总线自愈环网的研究

光纤CAN总线自愈环网的研究

时间:02-11 来源:不详 点击:

网络状态发光二极管D_sr或D_sl灭,表示网络对应光纤通道出了故障。当本节点CAN控制器选择左通道数据接收时,输出端rx_l/r为高电平;当本节点CAN控制器选择右通道数据接收时,输出端rx_l/r为低电平。输入端reset为复位端,低电平有效;clk0为时钟输入端,输入时钟的频率为20MHz。
图2
    2.2 CPLD功能结构

CPLD为控制环网自愈接口单元,控制电路由分频器、中心状态机、发送数据选择器、接收数据选择器组成,如图4所示。

2.3 分频器

通讯接口CPLD时钟频率为20MHz。在光纤CAN自愈环网中,各节点CAN控制器SJAl000和CPLD接口采用独立的工作时钟。为使状态机产生的flag的信号与CAN控制器数据传送同步,以保证两个数据选择器的切换和数据传送同步,应正确选择状态机的时钟。本文中CAN网数据传送波特率是125kbit/s,状态.机时钟rxclk的速率设计为数据传送波特率的8倍,即1Mbit/s,保证在一个CAN数据位周期中可对数据读取多次,提高抗干扰能力。所以分频器的功能为产生1MHz的时钟频率。

2.4 中心状态机

依据CAN 2.0B协议,CAN网络数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。数据场长度可为0~8个字节。帧起始位是一个显性位低电?quot;0";帧结束是由7个隐性位"1"组成的序列;在数据帧传送中,使用位添充技术编码,保证数据帧位流中不会出现5个连续的"1''或''0"。

中心控制状态机是本设计的核心单元。中心状态机的功能是:(1),检测CAN数据帧的帧起始和帧结束,产生相应的发送数据标志信号flag_txd、flag_r和flag_l。(2)产生网络通信状态标志sync_r和sync_l。中心状态机由:三个状态机组成:本节点CAN控制器状态机、左通道状态机和右通道状态机。它们分别判别各通道(TX、PIN_L和PIN_R)是否有数据传送。下面对各处状态机的解释均以本节点CAN控制器状态机为例。

    各状态机设置了61个状态, 即idle、S1、S2、S3…S60。当总线空闲时,状态机处于空闲态idle,此时rxclk上沿到来,检测到txd=0时,状态机转向S1,同时发送数据标志置位信号flag_txd="1";第二上沿时,状态机无条件转向S2;第三上沿时,状态机无条件转向S3;第四上沿时,状态机无条件转向S4;第五上沿到来时,此时是数据位的中央位置,数据稳定,对数据再次读取,若txd="0"的条件仍成立,表示帧起始到来,状态机转向S5;否则flag_txd="0",同时状态机转向空闲态idle,等待帧起始的到来。

当状态机处于S5时,此后rxclk(1MHz)每过一个时钟周期,状态机状态前进一步(S6、S7、S8、S9、S10、S11、S12、……、S58、S59、S60);每过8个时钟周期,对CAN总线上的数据位进行一次检测(S12、S20、S28、S36、S44、S52、S60),保证每次检测在数据位(位周期)中央。当连续7次txd="1"时,检测到"1"表示"帧结束''到来,发送数据标志复位flag_txd="0",等待下一次帧起始的到来;否则状态机返回状态S5,等待帧结束的到来。

网络通信状态sync_r、sync _l是进行环网自愈的重要依据。如上所述,当左右通道发送数据状态标志flag="1''时,各通道网络通信状态sync="1",网络状态发光二极管D_sr、D_sl亮;当帧结束到来时,flag="0",启动网络通信状态计数群count,其时钟为rxclk=1MHz,当计数器为30000时(30ms),sync="0",网络状态发光二极管D_sr、D_sl灭。这表示某数据帧传输后,如果再也检测不到其它数据帧起始,则网络出了故障。如果在30ms内能检测到数据帧起始(flag置位),网络通信状态标志sync持续为"1"。 计数器达到满值的时间应为估算的帧间最短时间间隔。

2.5 数据选择器

发送数据选择器和接收数据选择器的功能是实现链路搭建(即通道选择)。为保证网络正常工作,CAN网络延时应小于一个数据宽度(位周期)。为使链路搭建时间尽可能短,使用最高时钟频率(20MHz)控制两个数据选择器。

在发送数据选择器中,CPLD检测三路通道数据txd、pin_l、pin_r。各通道数据具有不同的优先级。优先级的设置为:当本节点发送数据(txd="0"或flag_txd="1'')时,左右通道发送CAN控制鞣⑺投薚X的数据,即led_r=txd,led_l=txd。若本节点不发送数据,则依据sync_r和sync_l选择发送数据,当左右通道均正常时,选择对侧数据发送,led_r=pin_l,led_l=pin

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top