首页 » 技术文章 » 基于CAN总线的A320模拟器硬件仿真方案研究

基于CAN总线的A320模拟器硬件仿真方案研究

作者:  时间:2011-05-10 19:49  来源:EDN

  41 CAN通信协议设计

  通信协议设计主要包括两部分,确定报文ID和定义报文所含8位数据的每位具体含义。由于报文ID决定其优先级,所以需要根据实际逻辑确定每一报文的优先级,鉴于驾驶舱操作部分部件少于1 000件,所以采用标准格式帧,11位的标识符可以表达211-1等于2 047种报文,满足实际需求。每个报文含有8字节数据,由于上位机负责主要逻辑运算,所以上位机应能根据每一个报文内容精确定位驾驶舱被操作部件,定义其格式如图3所示。

  协议采用Data0Data4五个字节承载所有信息,信息内容包括板号(Penal Number)、件号(Component Number)、部件类别(Component Sort)、部件状态值(整数部分和小数部分)和小数标志位(Dot)。经过整合,共有32块面板,所以使用5位二进制表示面板号,板号(PN0PN4)对应Data33Data37;每块面板上的部件数均少于128,跳开关面板上部件最多,为125个,所以采用7位二进制表示件号,件号(CN0CN6)对应Data4OData46;根据部件输出状态将其分为5类,分别是按钮、波段开关、电位器、显示屏和跳开关,所以用3位二进制表示件类别,部件类别(CS0CS2)对应Data3OData32;部件状态值整数部分(Int0Int15)对应Data10Data1.7Data2.0Data2.7,状态值小数部分(Dec0Dec7)对应Data0.0Data07,小数标志位(Dot)对应data47

  42 通信实现

  CAN总线节点数据传输的实现主要分为三部分,分别是初始化设置、发送数据和接收数据。初始化CAN控制器的一般步骤如下:

  (1)SFRPAGE寄存器设置为CAN0_PAGE

  (2)CAN0CN寄存器中的INITCCE位设置为1

  (3)设置位定时寄存器和BRP扩展寄存器中的时序参数;

  (4)初始化每个消息对象或将其MsgVal位设置为无效;

  (5)INIT位清零。接收数据有查询和中断两种方式,本文在设计时采用中断方式。接收数据程序流程图如图4所示。

  当总线上有数据传入时程序进入中断,读取中断寄存器的值,该值对应32个消息对象中的其中一个消息号,将该消息号写入IFx命令请求寄存器,读取IFx报文控制寄存器,查看标志位NewData,值为1表示有新数据,值为0表示没有新数据,读取完当前数据后查看数据块结束标识位Eob,值为1表示数据块结束,当前数据接收完成;值为0,表示数据块没有结束,将消息号增一,继续接收下一个消息对象中的数据,直至接收完成。发送数据时需配置寄存器,设定报文ID,此外还需在将数据写入数据寄存器的时候,先写高位后写低位,即先对CANODATH赋值,再对CANODATL赋值,最后将消息号写入IFx命令请求寄存器即启动数据传送。

  5 结语

  实际测试表明,模块间通信稳定,抗干扰性强,且布线简洁。该方案已经应用于机载电子系统故障诊断模拟机,虽然该模拟机是针对A320机型,但是该方案也可扩展应用到其他机型的模拟机,具有广阔的应用前景。

相关推荐

基于DTMF和CAN总线的家居安防系统设计方案

CAN总线  AT89S52  2011-09-21

一种混合动力电池监测模块的设计实现

CAN总线  2011-09-07

基于DTMF和CAN总线的家居安防系统设计方案

CAN总线  AT89S52  DTMF  2011-07-26

一种混合动力电池监测模块的设计实现

CAN总线  2011-07-06

基于CAN总线的航空电缆测试系统分布机研究

航空电缆  CAN总线  2011-06-01

基于PIC18F458的CAN总线接口设计

CAN总线  远程控制  2011-05-18
在线研讨会
焦点