全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版

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

[复制链接]
1308 0

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
摘要: 针对飞机模拟器硬件仿真时系统模块多、通信频繁、结构复杂而导致模块间布线繁杂, 以及由此产生的干扰等问题, 提出一种基于CAN 总线的驾驶舱仿真方案。该方案中上位机负责逻辑运算, 下位机负责操作信息采集, 通过CAN 总线将上、下位机组成一个网络, 实现驾驶舱功能仿真。阐述系统的总体结构, 设计了整个驾驶舱的数据传输协议, 结合实际应用, 给出了节点中数据收发模块的硬件设计结构和数据传输软件实现方法。实际测试结果表明, 该设计布线简洁, 数据传输稳定可靠, 达到预期目标。
    根据国家建设民航强国的需要, 国内对飞机模拟机的需求不断增大, 但目前国内模拟机研制规模不能满足日益增长的市场需求, 若引进国外模拟机, 则不仅成本高昂, 且不利于技术掌握, 因此扩大模拟机自主研发规模成为必然趋势。考虑到各种机型的驾驶舱功能的共性, 即系统模块多、通信频繁、结构复杂而导致模块间布线繁杂, 以及由此产生的干扰等问题, 提出一种驾驶舱硬件仿真方案, 该方案可以满足驾驶舱各模块间稳定通信, 且简化布线。
    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 台触摸屏显示器显示, 其显示逻辑统一由上位机控制。操作部分有顶版、中央操纵台、遮光板, 侧杆, 这4 部分全部由硬件实现, 基于区域划分的原则将其进行模块划分, 每一模块为一节点。
    由于各节点间存在逻辑控制关系, 所以采用多主方式通信, 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 信息缓冲区, 可以解决MCU ( MicroCo nt ro l U nit ) 与CAN 总线之间串/ 并转换、不同节点间波特率误差的校正、以及MCU 与CAN 总线通信的冲突竞争和同步等问题, 为CAN 总线网络具有较高稳定性提供了可靠的保障。
    CAN 总线的收发器选用TI 公司的SN65HVD230芯片, 该芯片正常模式下的低电流设计使得芯片的发热量小( 典型数值为370 A), 而且其优化的驱动器设计使得信号质量得到进一步改善; 为进一步提高系统抗干扰能力, 在主控芯片C80C51F040 和收发器SN65HVD230 之间加入光耦6N137 进行电气隔离, 由于通信信号传输到导线的端点时会发生反射, 反射信号会干扰正常信号的传输, 因而总线两端接有终端电阻以消除反射信号, 有效隔离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 所示。
    协议采用Data0~ Data4 五个字节承载所有信息,信息内容包括板号( Penal Number ) 、件号( Compo nentNumber) 、部件类别( Component Sor t) 、部件状态值( 整数部分和小数部分) 和小数标志位( Do t ) 。经过整合,共有32 块面板, 所以使用5 位二进制表示面板号, 板号( PN0~ PN4) 对应Data3. 3~ Data3. 7; 每块面板上的部件数均少于128, 跳开关面板上部件最多, 为125 个, 所以采用7 位二进制表示件号, 件号( CN0~ CN6) 对应Data4. 0~ Data4. 6; 根据部件输出状态将其分为5 类,分别是按钮、波段开关、电位器、显示屏和跳开关, 所以用3 位二进制表示件类别, 部件类别( CS0~ CS2) 对应Data3. 0~ Data3. 2; 部件状态值整数部分( Int0~ Int15)对应Data1. 0~ Data1. 7 和Data2. 0~ Data2. 7, 状态值小数部分( Dec0~ Dec7) 对应Data0. 0~ Data0. 7, 小数标志位( Dot ) 对应data4. 7。

举报

回复
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表