日期:2023-01-24 阅读量:0次 所属栏目:学前教育
0 引言
由于在汽车工业的快速发展过程中,需要安装在汽车上的电子设备不继增加,因此点对点连接这些汽车电子设备的专用电子线路迅速膨胀,连接起来更加复杂和繁琐。为进一步提高系统的可靠性和故障诊断能力,将连接线路进行简化,使数据资源在各电控单元之间进行共享更加方便,汽车网络总线技术就是有效解决这个问题的方法[1-2]。
在车载网络通信中,由于CAN总线具有布线简单、典型的总线型结构、能够有效地节约布线和维护成本、性能稳定可靠、实时性与抗干扰能力强、传输的距离远等一系列优点,因此在现代工业控制中应用广泛。由于CAN总线通信网络的设计有很多参数需要设置,而CAN总线工作性能直接受到这些参数设定的影响,但是在没有辅助工具帮助的情况下,参数的有效设定只能凭汽车工程师的经验和不断地尝试摸索。因此,需要有合适的工具和可行的方法对CAN总线网络进行有效的仿真和评估,从而提高汽车工程师设计CAN总线网络以及在评估CAN总线网络性能方面的效率[4]。
1 CAN总线协议分析
为了能实现对CAN总线网络的仿真,非常有必要对CAN总线通讯协议进行深入研究。须建立起任意两个或多个CAN设备之间的兼容性,这是CAN总线通讯协议定义的目的。
CAN总线具有以下特性[5]:①报文的优先权;②保证延迟时间;③设置灵活;④系统内数据的一致性(System Wide Data Consistency);⑤多主机(对等);⑥错误检测和错误标定;⑦当总线处于空闲时,能够自动将破坏的报文重新传输;⑧能够将网络节点的永久性错误和暂时性错误区分开,并且可以将CAN的错误节点自动关闭。
CAN的ISO/OSI参考模型的分层结构如图1所示[6]。
从其参考模型的分层结构可以看出,CAN通讯协议的结构划分为两层:数据链路层(Data Link Layer)与物理层(Physical Layer)。在CAN中,为了解决不同通信节点之间进行消息传输时的电气属性,物理层为所有通信节点共享使用。
2 嵌入式硬件仿真环境SkyEye的结构
利用仿真软件来对嵌入式系统的各种硬件进行模拟,开发人员不需要利用开发板,直接在仿真环境中运行嵌入式系统,实现嵌入式软件的开发、调试、运行,能够大大提高开发速度并降低开发成本。SkyEye是一个开源软件项目,中文名字为“天目”[7],能够在通用的Windows操作系统和Linux操作平台上对目前主流的嵌入式开发板及外部设备进行软件仿真,实现一个可扩展的硬件模拟框架,使系统软件能够在仿真平台上运行。SkyEye软件的核心在于目标模拟模块,操作系统与系统软件在SkyEye仿真环境中运行时可以使人根本意识不到是在一个计算机的虚拟系统上运行。SkyEye目前在教学、科研等众多领域都得到了广泛应用。
目前SkyEye的最新版本已经完全和原先的GDB/ARMulator分离,并对原先的GDB/ARMulator进行了全面的扩充和改变[8]。总体上分为四个模块仓库:①体系结构模块仓库(Architecture Module Repository);②外设模块仓库(Device Module Repository);③接口模块仓库(Interface Module Repository);④功能模块仓库(Function Module Repository)。
SkyEye仿真环境结构如图2所示[9]。
3 软件仿真平台的构建和实现
为了实现对CAN总线通讯协议进行仿真,我们需要在不具备硬件环境的条件下来构建软件仿真平台。通过这个软件仿真平台,能够一目了然地观察到CAN总线的数据正常发送、接收、处理和总线的仲裁,以及错误节点的故障界定等运行过程。SkyEye仿真平台还可以运行自定义的CAN总线应用层协议[10]。
构建软件仿真实验平台的主要步骤为:第一步,在电脑的操作系统里安装虚拟计算机软件VMware Workstation;第二步,打开虚拟计算机软件VMware Workstation,将红帽子Ylmf Linux Y1.5系统直接安装在虚拟环境中;第三步,打开Linux操作系统,在Linux环境中将SkyEye仿真软件进行安装。程序采用Microsoft VC实现,采用的实验环境为Dell Inspiron 15R-5537笔记本,2.30GHz主频,内存4GB,100Mbps的网络带宽 [2]。
仿真CAN总线发送和接收数据的具体实验步骤如下。
⑴ 用超级用户登录红帽子Linux系统。
⑵ 打开一个终端。
⑶ 切换到/dev/shm/目录:cd /dev/shm/。
⑷ 创建目录can_vbus:mkdir can_vbus。
⑸ 更改目录can_vbus的访问权限为0666:chmod 0666 can_vbus。
⑹ 切换到用户根目录:cd /home/lh1111/。
⑺ 进入CAN 目录:cd CAN/。
⑻ 进入Sja1000-vcan目录:cd Sja1000-vcan。 ⑼ 进入vcanbus目录:cd vcanbus。
⑽ 运行vcanbus程序:./vcanbus。
⑾ 打开另外一个终端。
⑿ 切换到用户根目录:cd /home/lh1111/。
⒀ 进入asp目录:cd asp。
⒁ 因为SkyEye已经被安装在/bin目录下,所以运行SkyEye的命令为:skyeye -e asp -c skyeye.conf(-e选项表示要执行的目标文件,-c选项表示配置文件),这时可以在终端上看到显示信息(该窗口表示的是发送节点)如图3所示。
按上述步骤所设计的仿真方案,我们可以利用SkyEye软件仿真平台较为真实地模拟出汽车类CAN网络应用程序开发的环境和过程。
4 实验结果分析
四种传输速率下的测试平均时间如图5所示。从图5可以直观地看出:它是一个从高到低的平均传输时间,考虑系统负载方面,负载越大,则系统运行越慢。最左边的矩形表示:在200ms的传输速度下,相比其他三种传输速度下的延迟时间要高得多,系统的负载是最高的,也就是说系统的反应时间就越长。当传输速率达到500ms以后,传输延迟时间开始趋于平均,这说明系统的负载(即运行负荷)没有那么大了。从以上仿真实验可以看出,通过SkyEye硬件模拟平台对CAN通讯协议进行仿真,我们所设计的CAN节点不但在节点间的数据通信上是正确的,而且CAN通信网络也能达到较高的传输速率。实验结果表明,所设计的仿真方案是有效和可行的。
5 在计算机实践课教学中的应用
目前各高校在计算机实践课教学,特别是实验室建设方面都有很大投入,但是由于各种原因,比如学生人数多、实验室教学任务繁重,而有些实验需要移除计算机还原卡等保护工具,从而导致实验室维护起来困难。在实际的计算机实践课教学过程中,造成了部分实验由于缺少实验环境而无法按要求实现,这是影响教学质量提高的一个瓶颈。因此创建可行的实验环境就显得尤其重要。仿真环境的构建,即利用虚拟机技术就可以很好地解决这个问题。通过安装虚拟机软件,在原有的计算机硬件设备配置不变的前提下,构建SkyEye软件仿真平台,虚拟计算机、网络设备等,可以轻松地构建虚拟的计算机网络实验环境。目前虚拟机技术在我校实验室中得到了推广应用,在“操作系统”和“计算机网络”课程的教学过程中,使用虚拟机技术构建仿真实验环境进行实践课的教学,取得了较好的教学效果,有助于教学质量的提高。
6 结束语
为了方便CAN总线网络应用的开发,需要有可行的方法和合适工具对CAN总线网络进行有效而快速的仿真和评估。本文研究的目的在于开发一套基于SkyEye的CAN总线通信协议仿真工具,借助于SkeEye虚拟机的功能,并加入CAN网络协议的支持,用于CAN总线应用的分析和评估。仿真实验表明,该方案是有效、可行的。在目前的计算机实践课教学中,使用虚拟机技术构建仿真实验环境进行实践课的教学,可以充分利用实验室的资源,取得良好的教学效果,提高教学质量。
本文链接:http://www.qk112.com/lwfw/jiaoyulunwen/xueqianjiaoyu/236838.html