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

2011-07-17 15:16:36来源: 互联网

   根据国家建设民航强国的需要,国内对飞机模拟机的需求不断增大,但目前国内模拟机研制规模不能满足日益增长的市场需求,若引进国外模拟机,则不仅成本高昂,且不利于技术掌握,因此扩大模拟机自主研发规模成为必然趋势。考虑到各种机型的驾驶舱功能的共性,即系统模块多、通信频繁、结构复杂而导致模块间布线繁杂,以及由此产生的干扰等问题,提出一种驾驶舱硬件仿真方案,该方案可以满足驾驶舱各模块间稳定通信,且简化布线。

1 方案确立
   
驾驶舱仿真主要以报文的形式承载各系统模块的操作信息,通过上位机完成逻辑运算,实现驾驶舱功能仿真。驾驶舱仿真设计的原则是稳定,即整个驾驶舱网络应具备一定的容错能力,在数据传输过程中若产生冲突竞争,则应有一种机制解决冲突,且不丢失数据,而CAN(Co-ntroller Area Network)是一种有效支持分布式控制或实时控制的串行通信网络,具有突出的可靠性、实时性和灵活性,基于此选取CAN总线作为整个驾驶舱网络通信方案。由于飞机驾驶舱结构复杂、功能繁多,所以需对驾驶舱进行功能模块划分,各模块间通过CAN总线进行通信,以下即从系统总体设计、CAN节点通信接口硬件设计和数据传输软件设计3个方面详细阐述该方案。

2 系统总体设计
   
飞机驾驶舱中的显示部分主要有电子飞行仪表系统(Electronic Flight Instrument System,EFIS),飞机电子中央监控(Electronic Centralized Aircraft Monito-ring,ECAM),分别由3台触摸屏显示器显示,其显示逻辑统一由上位机控制。操作部分有顶版、中央操纵
台、遮光板,侧杆,这4部分全部由硬件实现,基于区域划分的原则将其进行模块划分,每二模块为一节点。整体架构如图1所示。


    由于各节点间存在逻辑控制关系,所以采用多主方式通信,CAN总线网络上任一节点均可作为主节点向其他节点发送数据。上位机作为其中一个节点,通过CAN总线智能适配卡与网络上的各节点进行通信,负责主要的逻辑运算和驾驶舱显示功能的控制,其他节点不仅完成操作动作的采集,还根据逻辑要求互相控制。

3 CAN节点通信接口硬件电路设计
   
由于驾驶舱各节点间的控制逻辑复杂,数据量大,通信频繁,故对各节点主控芯片的存储容量有较高的要求,且对CAN总线网络中数据传输的稳定性也有较高要求。选取C80C51F040作主控芯片,因其拥有4 352 B RAM以及64 KB的FLASH,满足程序应用需要。它内部集成CAN控制器,它兼容CAN技术规范2.0A和2.0B,主要由CAN内核、消息RAM(独立于CIP51的RAM)、消息处理单元和控制寄存器组成。CAN内核由CAN协议控制器和负责报文收发的串行/并行转换RX/TX移位寄存器组成。消息RAM用于存储报文目标和每个目标的仲裁掩码。这种CAN处理器有32个随意配置为发送和接收的报文目标,并且每一个报文目标都有自己的识别掩码,所有的数据传输和接收滤波都是由CAN控制器完成,而不是由CIP51完成。C8051F04O所具备的完善的CAN总线控制器和独立的CAN信息缓冲区,可以解决MCU(Micro Control Unit)与CAN总线之间串/并转换、不同节点间波特率误差的校正、以及MCU与CAN总线通信的冲突竞争和同步等问题,为CAN总线网络具有较高稳定性提供了可靠的保障。
CAN总线的收发器选用TI公司的SN65HVD230芯片,该芯片正常模式下的低电流设计使得芯片的发热量小(典型数值为370μA),而且其优化的驱动器设计使得信号质量得到进一步改善;为进一步提高系统抗干扰能力,在主控芯片C80C51F040和收发器SN65HVD230之闻加入光耦6N137进行电气隔离,由于通信信号传输到导线的端点时会发生反射,反射信号会干扰正常信号的传输,因而总线两端接有终端电阻以消除反射信号,有效隔离CAN总线上的干扰信号,提高了系统可靠性。如图2所示。



4 数据传输软件设计
   
在CAN总线上发送的每一条报文都具有惟一的一个11位或29位数字ID,当发生冲突时,仲裁器就根据ID值的大小决定优先级最高的ID发送,其他的退出总线。CAN总线状态取决于二进制数0而不是1,即信号是线“与”关系:当一个节点发送1,另一个节点发送0时,其他节点接收到的是信号0。所以ID值越小,该保报文拥有的优先权越高。

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


    协议采用Data0~Data4五个字节承载所有信息,信息内容包括板号(Penal Number)、件号(Component Number)、部件类别(Component Sort)、部件状态值(整数部分和小数部分)和小数标志位(Dot)。经过整合,共有32块面板,所以使用5位二进制表示面板号,板号(PN0~PN4)对应Data3.3~Data3.7;每块面板上的部件数均少于128,跳开关面板上部件最多,为125个,所以采用7位二进制表示件号,件号(CN0~CN6)对应Data4.O~Data4.6;根据部件输出状态将其分为5类,分别是按钮、波段开关、电位器、显示屏和跳开关,所以用3位二进制表示件类别,部件类别(CS0~CS2)对应Data3.O~Data3.2;部件状态值整数部分(Int0~Int15)对应Data1.0~Data1.7和Data2.0~Data2.7,状态值小数部分(Dec0~Dec7)对应Data0.0~Data0.7,小数标志位(Dot)对应data4.7。

4.2 通信实现
   
CAN总线节点数据传输的实现主要分为三部分,分别是初始化设置、发送数据和接收数据。初始化CAN控制器的一般步骤如下:
    (1)将SFRPAGE寄存器设置为CAN0_PAGE;
    (2)将CAN0CN寄存器中的INIT和CCE位设置为1;
    (3)设置位定时寄存器和BRP扩展寄存器中的时序参数;
    (4)初始化每个消息对象或将其MsgVal位设置为无效;
    (5)将INIT位清零。接收数据有查询和中断两种方式,本文在设计时采用中断方式。接收数据程序流程图如图4所示。


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

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

关键字:模拟器  硬件  仿真  方案

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0717/article_7202.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
模拟器
硬件
仿真
方案

小广播

独家专题更多

TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved