您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

CAN中继器设计及其应用

时间:2007-1-20栏目:电子通信论文

程序、主监控程序、接收中断子程序和发送子程序等。初始化子程序的编写方法与一般的CAN总线系统智能节点的初始化子程序的编写方法基本相同,只是在对两个CAN控制器进行初始化时应采用不同的初始化参数。下面主要对主监控程序和接收中断子程序进行介绍。

2.1 主监控程序的设计

主监控程序负责对两路CAN控制器的接收FIFO缓冲区进行监视,如某一路缓冲区非空则向另一路转发。两路缓冲区的容量大小可采用不对称配置。采用这种不对称配置的一个好处在于可以将容量更大的缓冲区分配给通信任务更繁忙的一方,从而尽量避免缓冲区出现溢出。FIFO缓冲区共有两个指针:接

收数据指针和发送数据指针。当两指针不相等时即证明缓冲区中存有有效数据。缓冲区接收数据指针的调整是通过接收中断子程序实现的,而发送数据指针的调整则通过发送子程序实现。在主监控程序中,还用到了一个请求状态标志,该标志在接收中断子程序中建立,用于中继器及时返回本身故障状态或响应上位机的状态查询命令。当该标志为1时,主监控程序会向上位机发送本身状态,并清除该标志。

2.2 接收中断子程序的设计

中继器接收中断子程序流程图如图2所示。在进入中断后,首先判断中断类型。若为错误警告中断,则进行相应处理并建立标志,若为接收中断则接收报文。在报文接收前,要根据接收报文的长度判断接收缓冲区是否会溢出。若会溢出,则判断是否为状态查询命令,是则置位请求状态标志,对于接收的其它报文则丢弃。若缓冲区不会溢出,则接收该报文。接收报文后取出命令字节,判断是否是中继器状态查询命令,若是则置位请求状态标志,不进行缓冲区参数调整(因为是上位机发送给中继器的命令,只要求中继器作出响应而不要求其转发,所以不能放入缓冲区中)。若不是中继器状态查询命令,则不作处理,只进行缓冲区参数调整,接收报文有效。随后进行释放CAN接收缓冲区、恢复现场和中断返回等工作。
CAN中继器设计及其应用
3 CAN中继器在食堂售饭系统的中应用

按上述方法设计的中继器现已成功应用于东华理工学院的食堂售饭系统中。根据学院食堂及各营业网点的实际分布情况,设计的学院食堂售饭系统网络结构如图3所示。从图中可以看出,中继器是组网的关键设备,它将窗口机等终端与服务器连接起来。在该网络结构中,中继器共分两级。中继器1~4为一级中继器,一端与服务器相连,另一端则与各个食堂窗口机等终端构成的子网相连;中继器5为二级中继器,一端与一级中继器相连,另一端与浴室、小卖部等窗口机相连。采用两级中继器的设计,使系统的通信距离可达5km以上,网络终端数目几乎不受限制。

该设计方案已投入实际运行,目前系统网络规模为五台中继器、一百多台窗口机,用餐人数近万人。从系统的实际运行情况来看,性能非常稳定可靠,而且维护和扩容方便,大大提高了食堂的管理水平和工作效率。


上一页  [1] [2] 

下页更精彩:1 2 3 4 下一页