基于C80C51的A320模拟器硬件仿真方案研究解析
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所示。
![](../img/eep/emb/emb-58150mgl3mp3zr2c.jpg)
由于各节点间存在逻辑控制关系,所以采用多主方式通信,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所示。
![](../img/eep/emb/emb-58151u4lq2ao0kdp.jpg)
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字节数据,由于上位机负责主要逻辑运算,所以上位机应能根据
C80C51A320模拟 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)