根据国家建设民航强国的需要, 国内对飞机模拟机的需求不断增大, 但目前国内模拟机研制规模不能满足日益增长的市场需求, 若引进国外模拟机, 则不仅成本高昂, 且不利于技术掌握, 因此扩大模拟机自主研发规模成为必然趋势。考虑到各种机型的驾驶舱功能的共性, 即系统模块多、通信频繁、结构复杂而导致模块间布线繁杂, 以及由此产生的干扰等问题, 提出一种驾驶舱硬件仿真方案, 该方案可以满足驾驶舱各模块间稳定通信, 且简化布线。
1 方案确立
驾驶舱仿真主要以报文的形式承载各系统模块的操作信息, 通过上位机完成逻辑运算, 实现驾驶舱功能仿真。驾驶舱仿真设计的原则是稳定, 即整个驾驶舱网络应具备一定的容错能力, 在数据传输过程中若产生冲突竞争, 则应有一种机制解决冲突, 且不丢失数据, 而CAN( Cont roller A rea Netw or k) 是一种有效支持分布式控制或实时控制的串行通信网络, 具有突出的可靠性、实时性和灵活性,基于此选取CAN 总线作为整个驾驶舱网络通信方案。由于飞机驾驶舱结构复杂、功能繁多, 所以需对驾驶舱进行功能模块划分, 各模块间通过CAN 总线进行通信, 以下即从系统总体设计、CAN 节点通信接口硬件设计和数据传输软件设计3 个方面详细阐述该方案。
2 系统总体设计
飞机驾驶舱中的显示部分主要有电子飞行仪表系统( Elect ronic Flight Inst rument System, EFIS) , 飞机电子中央监控( Elect ronic Cent ralized Aircraft Mo nitoring , ECAM), 分别由3 台触摸屏触摸屏
触控屏(Touch panel)又称为触控面板,是个可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。 [全文]
图1 整体架构图
由于各节点间存在逻辑控制关系, 所以采用多主方式通信, CAN 总线网络上任一节点均可作为主节点向其他节点发送数据。上位机作为其中一个节点, 通过CAN 总线智能适配卡与网络上的各节点进行通信, 负责主要的逻辑运算和驾驶舱显示功能的控制, 其他节点不仅完成操作动作的采集, 还根据逻辑要求互相控制。
3 CAN 节点通信接口硬件电路设计
由于驾驶舱各节点间的控制逻辑复杂, 数据量大,通信频繁, 故对各节点主控芯片的存储容量有较高的要求, 且对CAN 总线网络中数据传输的稳定性也有较高要求。选取C80C51F040 作主控芯片, 因其拥有4 352 B RAM 以及64 KB 的FLA SH, 满足程序应用需要。它内部集成CAN 控制器, 它兼容CAN 技术规范2. 0A 和2. 0B, 主要由CAN 内核、消息RAM( 独立于CIP51 的RAM) 、消息处理单元和控制寄存器组成。
CAN 内核由CAN 协议控制器和负责报文收发的串行/ 并行转换RX/ T X 移位寄存器组成。消息RAM 用于存储报文目标和每个目标的仲裁掩码。这种CAN处理器有32 个随意配置为发送和接收的报文目标, 并且每一个报文目标都有自己的识别掩码, 所有的数据传输和接收滤波都是由CAN 控制器完成, 而不是由CIP51 完成。C8051F040 所具备的完善的CAN 总线控制器和独立的CAN 信息缓冲区, 可以解决MCUMCU
MCU Microcontroller(微控制器)又可简称MCU 或μ C,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM、RAM、 CPU、I/O 集合在同一个芯片中,为不同的应用场合做不同组合控制.微控制器在经过这几年不断地研究,发展,历经4 位,8 位, 到现在的16 位及32 位,甚至64 位.经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。 [全文]
CAN 总线的收发器选用TI 公司的SN65HVD230芯片, 该芯片正常模式下的低电流设计使得芯片的发热量小( 典型数值为370 A), 而且其优化的驱动器设计使得信号质量得到进一步改善; 为进一步提高系统抗干扰能力, 在主控芯片C80C51F040 和收发器SN65HVD230 之间加入光耦光耦
光耦全称是光耦合器,英文名字是:optical coupler,英文缩写为OC,亦称光电隔离器,简称光耦。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。目前它已成为种类最多、用途最广的光电器件之一。 [全文] 电阻,物质对电流的阻碍作用就叫该物质的电阻。电阻小的物质称为电导体,简称导体。电阻大的物质称为电绝缘体,简称绝缘体。 [全文]
图2 CAN 节点通信接口原理图
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 所示。
图3 报文数据功能定义
协议采用Data0~ Data4 五个字节承载所有信息,信息内容包括板号( Penal Number ) 、件号( Compo nentNumber) 、部件类别( Component Sor t) 、部件状态值( 整数部分和小数部分) 和小数标志位( Do t ) 。经过整合,共有32 块面板, 所以使用5 位二进制表示面板号, 板号( PN0~ PN4) 对应Data3. 3~ Data3. 7; 每块面板上的部件数均少于128, 跳开关开关
开关是最常见的电子元件,功能就是电路的接通和断开。接通则电流可以通过,反之电流无法通过。在各种电子设备、家用电器中都可以见到开关。 [全文] 波段开关,是一个很古老的名字。实际上应该叫做多刀多掷开关,因为它不仅仅能做波段开关,也能做其它的用途。至于需要多少刀(就是多少组触点),看你的电路的需要。当然至少两组以上,才能称为波段开关。至于需要多少掷(就是多少个档位),也要根据你的需要。从2档到10多档的都有哈。你的老师没有告诉你买多少组触点的,多少档位的。如果仅仅作波段开关,则是少4组触点,最多6组触点足够。档位的话,有多少个波段,就需要多少的档位,至少2档吧。“波段开关”的型式也是多样的,常见的是旋转式的,也有推拉式的,还有按键(琴键)式的。体积也是有大有小。自己选择了哈。 [全文] 电位器是一种可调的电子元件。用于分压的可变电阻器。在裸露的电阻体上,紧压着一至两个可移金属触点。触点位置确定电阻体任一端与触点间的阻值。按材料分线绕、炭膜、实芯式电位器;按输出与输入电压比与旋转角度的关系分直线式电位器(呈线性关系)、函数电位器(呈曲线关系)。主要参数为阻值、容差、额定功率。广泛用于电子设备,在音响和接收机中作音量控制用。 [全文]
4. 2 通信实现
CAN 总线节点数据传输的实现主要分为三部分,分别是初始化设置、发送数据和接收数据。初始化CAN 控制器的一般步骤如下:
( 1) 将SFRPAGE 寄存器设置为CA N0_PA GE;
( 2) 将CAN0CN 寄存器中的IN IT 和CCE 位设置为1;
( 3) 设置位定时寄存器和BRP 扩展寄存器中的时序参数;
( 4) 初始化每个消息对象或将其MsgVal 位设置为无效;
( 5) 将INIT 位清零。接收数据有查询和中断两种方式, 本文在设计时采用中断方式。接收数据程序流程图如图4 所示。
当总线上有数据传入时程序进入中断, 读取中断寄存器的值, 该值对应32 个消息对象中的其中一个消息号, 将该消息号写入IFx 命令请求寄存器, 读取IFx 报文控制寄存器, 查看标志位NewData, 值为1 表示有新数据, 值为0 表示没有新数据, 读取完当前数据后查看数据块结束标识位Eob, 值为1 表示数据块结束, 当前数据接收完成; 值为0, 表示数据块没有结束, 将消息号增一, 继续接收下一个消息对象中的数据, 直至接收完成。发送数据时需配置寄存器, 设定报文ID, 此外还需在将数据写入数据寄存器的时候, 先写高位后写低位,即先对CAN 0DAT H 赋值, 再对CAN0DAT L 赋值, 最后将消息号写入IFx 命令请求寄存器即启动数据传送。
图4 数据接收流程图
5 结 语
实际测试表明, 模块间通信稳定, 抗干扰性强, 且布线简洁。该方案已经应用于机载电子系统故障诊断模拟机, 虽然该模拟机是针对A320 机型, 但是该方案也可扩展应用到其他机型的模拟机, 具有广阔的应用前景。
上一篇:基于RS - 485 总线的数据采集系统
下一篇:基于CAN总线的A320模拟器硬件仿真方案研究
推荐阅读最新更新时间:2024-05-02 21:24