基于CAN总线的通讯系统软件框架设计

时间:2013-04-16 14:44:53 作者:吴昊宇

[摘  要]本文主要描述了工控领域中,基于CAN总线的通讯系统软件框架设计。文中分别介绍了该框架的总体结构,结构中各模块的主要软件流程,通讯帧的定义以及最后对整个机制的说明。该系统有比较好的实际应用性,能够适应很多产品的开发。
[关键词]CAN总线;软件框架;通讯系统
[中图分类号]TP336
Software Framework Design of Communication System
Based on the CAN-bus
WU Hao-yu
(Urban Vocational College of Chongqing, Yongchuan, Chongqing 402160, China)
Abstract: This article mainly describes software framework design of communication system based on the CAN-bus in areas of industrial control. Introduced in the framework of the overall structure, the structure of each module in the main software processes, address frames, as well as the definition of the final description of the mechanism as a whole. The system has good practical application, to adapt to the development of many products.
Key words: CAN-bus; software framework; communication system
 
引言
在科技日新月异发展的今天,工业控制系统作为计算机技术应用领域的一个分支,越来越体现出其巨大的潜力以及不可替代的价值。而在工业控制系统中,控制器局部网(CAN-CONTROLLER AREA NETWORK)由于自身特点,已成为国际上应用最广泛的现场总线之一。
CAN总线最早出现在20世纪80年代末的汽车工业中,由德国BOSCH公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。此后,CAN 通过ISO11898及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
CAN总线具备相当多的优点,使其成为许多领域的主要选择。这些优点包括:较长的通讯距离(10Km)、较高的传输速率(1Mbps)、可靠的错误处理机制、可自由配置的节点间接受发送、较强的抗干扰能力等。
 
1 总体框架
工控领域中,对于一个功能相对完整的产品来说,软件部分基本可以分为控制算法、逻辑、HMI、对外通讯等几部分。由于一个机器一般具备不止一个的独立功能,可能需要多个芯片对其进行控制,并且需要提供一系列接口供用户了解机器运行状态或操作机器,所以我们可以采用各功能模块使用相应的控制芯片(如TI的DSP),然后使用一个ARM来完成HMI以及对外接口功能。这样基本可以根据不同功能各自开发不同的软件,并将各个功能发挥到最好。于是,这些不同模块之间的通讯问题便浮出了水面,基于抗干扰能力,通讯速率、效率,稳定性等特点,CAN总线成为我们的首选。
主要框架图(详见图1)。

图1 主要框架图
在通讯系统中,可以将所需要交互的数据大致分为模拟量(电压、电流、功率等)、状态量(标识当前机器运行的状态)、告警量(标识当前需要提醒用户的故障)、设置量(机器运行的相关参数配置)、命令(一次有效,使机器完成相应的动作)五部分。
图中有2路CAN总线,CAN总线1主要用于将各功能模块的信息(模拟量、状态量、告警量)传递给监控模块,监控模块通过CAN总线采集整个机器的信息,加工以后通过LCD、LED、蜂鸣器,或者串口、网口、USB等设备提供给用户;或者用户通过操作HMI接口或者后台软件从监控向各功能模块下达指令(设置量、命令),进行人为控制。
CAN总线2主要用于几个功能模块间交互信息以用于整机逻辑控制,独立于CAN总线1的原因是CAN总线1在模块较多时数据量较大,而有的逻辑对某些状态数据有时间要求,所以单独使用CAN总线2来传递信息,并且这些数据并不需要提供给用户,只是内部使用。
 
2 功能模块软件流程
各模块(无论是ARM还是DSP),只要具备在CAN总线上通讯的功能,我们就认为它是一个通讯节点。以下为各通讯节点的处理流程示意图(详见图2)。

图2 通讯节点的处理流程示意图
我们首先定义各模块的ID(可以为硬件拨码,也可以为软件设置)。这个ID可以识别各节点的身份,任一节点的信息在通讯总线上可以任意传输到任何指定节点。在节点接收并判断到是自己的信息后,将会把缓冲区中的信息取出来,进行解析。然后我们可以根据上文提到的消息类型进行分类处理,处理后发送或响应(也可能不需要响应)处理好的帧。
 
3 通讯帧的定义及划分
CAN总线以报文(Message)为单位进行信息传送, 报文中包含标识符ID,该ID同时表示了报文的优先权:
发生报文发送冲突时,采用标识符ID来进行仲裁,发送具有最高优先权的报文的节点无影响地继续发送,其它节点自动停发。当总线空闲时,这些节点自动重发报文,下面是报文的具体结构(详见表1):
表1 报文具体结构

Start of Frame CAN Identifier.
11 bits(29bits)
Control Field Data Field
(up to 8 byte)
CRCField ACK Field End of Frame
 
基于CAN Identifier在CAN通讯的重要性,我们可以将此11位(或29位)根据用以传输Source ID,标识此帧数据来的节点。
而Data Field可以支持8个byte,我们将其划分如下(详见表2)。
表2
BYTE/BIT 7 6 5 4 3 2 1 0
0 Destination MAC ID
1 Message Type
2 Data Content
3  
4  
5  
6  
7  
                 
 
Source ID:源ID
Destination MAC ID:目的ID
Message Type:消息类型(可通过这个判断进入不同的处理分支)
Data Content:数据包
其它部分如Start of Frame、Control Field、CRC Field、ACK Field、End of Frame为CAN控制器自行添加。
 
4 通讯机制说明
首先,在机器上电以后,监控模块会对所有功能模块进行参数配置,无法通讯上的节点会由监控模块在HMI中反馈,待人工检查。这样的目的一是检测通讯通道是否有问题,二是可以统一配置整个机器的参数,避免各功能模块的芯片被更换后储存的数据不一致导致逻辑算法出错。
配置完成后,各功能模块进入正常工作模式,机器正常运行。监控模块会通过CAN总线1在1S左右的时间轮询一次各功能模块的运行状态和数据,如果功能模块有运行状态改变或故障,会通过CAN总线1上报。期间用户可以通过HMI接口向各功能模块传递命令已控制机器运行。这个是最正常的运行态,主要起到数据交互的作用。
如果遇到CAN总线错误,则通讯节点自身将重新初始化通讯配置,以求重新连入总线,此时逻辑算法应以最小化系统运行保障最低要求,并且监控模块会上报用户。通讯故障不应该导致机器产生功能模块失效的后果,如果无法获取其它模块的信息,尽量使自己的运行态保持,并且尝试恢复通讯;另一方面监控模块会通过HMI或者后台软件通知用户,使用户在现场检查。
实时性要求较高并且比较重要的信息可以通过CAN总线2传递,这样可以避免与CAN总线1的速度比较慢且信息量较大的数据走一个通道,有效减少出错概率,提高稳定性。
 
 
[参考文献]
[1] 铙运涛,邹继军,王进宏,郑勇芸.现场总线CAN原理与应用技术(第1版)[M].北京: 北京航空航天大学出版社,2007.
[2] 陈珍.基于CAN总线和无线的数据通信系统的设计与实现:[学位论文][D]. 上海: 华东师范大学, 2011.
[3]阳宪惠.现场总线技术及其应用(第2版)[M]. 北京: 清华大学出版社, 2008.
[4] 巩彩丽.基于CAN总线的智能节点通信系统设计:[学位论文][D]. 内蒙古: 内蒙古大学, 2007.
[5]任锐.CAN总线通讯协议设计[J].网络与信息技术, 2007.


更多机电类论文详细信息: 基于CAN总线的通讯系统软件框架设计 论文代写
http://m.400qikan.com/lw-1433 论文代发

相关专题:植物保护专业论文 上市公司互动平台

相关论文

沈阳201医院

论文百科2017-03-26 21:04:52
相关学术期刊
《实用骨科杂志》 《中国中西医结合耳鼻咽喉科杂志》 《沈阳理工大学学报》 《内蒙古公路与运输》 《当代外语研究》 《煤炭技术》 《大众汽车》 《自动化技术与应用》 《中国健康心理学杂志》 《河西学院学报》

< 返回首页