新闻中心

EEPW首页>手机与无线通信>设计应用> 基于CAN的大客飞机航电系统局域网通信设计

基于CAN的大客飞机航电系统局域网通信设计

作者: 时间:2012-06-01 来源:网络 收藏

3.1 主模块
主模块通过调用适当的功能模块,控制初始化及整个软件的流程。
3.2 初始化模块
初始化模块通过调用API函数进行硬件初始化和软件初始化。主要完成各子之间所需要的通道选择、波特率、帧格式、工作方式、发送数据方式、发送数据周期等初始化设置。
3.3 控制模块
控制模块主要完成对系统状态、以及显示的控制,根据操作人员的操作及其他系统节点的相应状态,确定系统运行状态与工作方式的控制与切换、有关数据的控制等。
3.4 数据管理模块
本模块主要完成系统运行过程中,对将要发送的数据进行实时的编码,对接收到的有关数据块进行实时解码。数据处理的主要功能是根据接口控制文件(ICD)文件数据块的大小,配合发送、接收模块完成数据帧的封装和解析。ICD用C++的结构类来表示,并且每个子系统对应一个惟一的ICD文件,ICD文件里面存放有多个数据,形成数据块。数据发送时通过调用软件发送函数,将ICD文件中的参数通过编码组成对应的总线信息帧数据场并以字节的形式进行发送。
3.5 数据通信模块
通信模块通过调用通信卡上底层的API函数,配合数据发送和数据接收等模块完成对各个子系统的数据发送和接收功能。
协议规定数据帧每帧最多携带8个字节的数据。如果数据块的总字节数大于8,那么需要分成多帧传送,并且准确标示数据帧序列号,分辨出帧数据场中的数据对应数据块中的第几个数据。比如在封装时有可能遇到封装某一两字节数据时,本帧目前只能放下一个字节数据,那么本帧将封装低字节,而高字节则被封装进下一帧。程序中int型变量ordernum标示这种情况的封装。接收时按封装的反过程解析数据。
3.6 显示模块
显示界面如图7所示。

本文引用地址://m.amcfsurvey.com/article/154762.htm

a.JPG


图7中左端显示各子系统ICD文件节点名称,右上方显示该子系统从其他子系统接收到的最新数据,右下方显示收到最新数据的物理值及在ICD文件中的属性。状态栏显示系统状态。
3.7 应用层协议
应用层协议并不属于软件编程的范畴,但是2.0协议只规定物理层和链路层的标准,没有规定应用层通信协议,而数据的通信必须按照应用层协议来封装帧、解析帧。目前有很多成熟的工业协议可以选择,但不完全符合本系统的要求,为此,专门制定了针对本系统的应用层协议。
本软件采用扩展格式的数据帧进行通信,扩展帧的29位标识符结构如表1所示,应用层信息帧格式如表2所示。

g.JPG


利用本应用层协议传输数据,可以从信息帧中获取数据来源、顺序、是否为最后一帧等信息,完全满足了仿真系统通信的需要,较好地完成了各个子系统之间的通信。

4 结论
CAN总线具有很好的应用前景,它采用非破坏优先权仲裁技术,可实现多主工作方式,传输时间短,受干扰概率低,系统灵活、可扩展性强,报文摒除了传统的源地址、目标地址的概念,仅用标识符来指示功能信息、优先级信息,安装简单,易于维护,经济性好。该仿真系统已交付使用。使用结果表明,CAN总线通信卡工作良好,系统工作正常,实现了各子系统之间的通信,人机界面友好,为航电综合控制系统不断发展做好技术和物质准备。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭