论文部分内容阅读
汽车上CAN(Controller Area Network)控制系统变得越来越复杂,然而先硬件后软件的传统开发方法降低了CAN应用的开发效率。如何摆脱由于硬件尚未到位导致CAN应用开发和测试滞后的困境,从而缩短开发周期、提高效率,成为汽车电子系统中迫切需要解决的问题,而应用原型的开发有利于解决这个问题。目标硬件仿真平台和环境的构建是CAN应用原型开发的关键。因此,本文以CAN控制器为仿真目标,结合嵌入式开发板虚拟平台SkyEye的仿真机制和执行方式,仿真其硬件寄存器的功能,同时借助SocketCAN网络协议栈的功能,实现一个由虚拟CAN节点构成的CAN网络,为CAN网络通讯应用原型的开发和测试提供一个虚拟硬件环境。主要工作如下:首先,在介绍了原型开发方法和概述了CAN总线技术的基础上,分析了嵌入式系统仿真平台SkyEye的仿真机制,尤其深入研究了外围设备的仿真方法和执行方式,为后续CAN应用原型开发平台仿真工作的展开奠定了基础。其次,针对以SJA1000为例的独立型CAN网络控制器的内部组成结构、寄存器和RAM的功能进行了分析,提出了虚拟CAN网络节点的仿真需求;在保证能够正常通信基础上,对CAN网络控制器的功能进行了裁剪,结合SkyEye外围设备的运行原理,提出了仿真思路;按照SkyEye的外围设备仿真框架实现了CAN控制器的功能仿真,包括:数据结构设计、配置与初始化、提供给虚拟微控制器的I/O访问API及消息的发送和接收,从而构建了一个以SkyEye为基础的CAN应用原型开发的平台。再次,在分析了CAN网络通信原理和特点的基础上,提出了CAN网络通信的仿真需求;通过对比分析CAN网络通信协议栈SocketCAN和LinCAN的实现方法,选择利用SocketCAN进行CAN网络虚拟节点间通信的方案;然后借助虚拟CAN网络接口VCAN实现了基于SocketCAN协议栈的CAN网络的仿真,从而为CAN应用原型的运行和测试提供了一个完整的虚拟CAN硬件环境。最后,在TOPPERS/ASP操作系统上开发CAN网络通讯应用原型,对虚拟的CAN控制器功能进行验证,并对影响虚拟CAN网络性能的因素进行评估。仿真运行和实验结果表明,所仿真的CAN控制器和CAN网络的功能是正确的,可以用于中低速CAN网络中通讯程序的前期开发和调试。