李亚南, 王伊瑾
(河北农业大学 信息科学与技术学院, 河北 保定 071001)
CAN(controller area network)总线技术是工业自动控制领域应用最广的一种控制网络技术[1],是工业控制实现网络化、信息化的关键技术。CAN总线广泛应用于汽车网络,简化了车内布线,便于检查维修,增强了汽车的安全性、可靠性,节约了制造成本。本课程的学习不仅要让学生掌握CAN总线技术的原理与应用,而且要提高学生对网络通信协议的理解和工程实践开发应用能力。
课程涉及大量通信概念、协议,学习内容抽象、晦涩,单纯的理论教学难以让学生理解和掌握,实践教学是学生学好CAN总线技术的有效方法。传统的实践方法存在以下不足:(1)汽车台架投入大、场地受限、维护困难;(2)实验板对网络控制和设计的体现不够;(3)对课程涉及的知识点的体现和辅助力度不够。
针对以上问题,本文提出一套基于CAN总线的汽车网络实验系统,采用现代化的软、硬件技术构建3D虚拟仿真实验平台,最终效果将在一辆虚拟汽车上进行全视角立体仿真展示。
本实验项目所在的“三维实验平台”,以计算机仿真技术和网络技术为依托,采用面向对象的软件架构,集实物仿真、智能指导、虚拟实验结果自动批改和教学管理于一体,具有良好的自主性、交互性和可扩展性。如图1所示,本项目将教学平台及资源分为5层,直到完成虚拟实验教学环境的构建。下面将按照从上至下的顺序分别阐述各层的任务与内容。
图1 系统总体架构图
(1) 用户层。本设计中用户分为高级管理员、管理员以及普通用户,不同级别对应用系统层的可操作内容不同,主要区别在于系统管理应用。超级管理员可以对虚拟实验部分、数据展示、数据查询和系统管理进行全部操作,管理员则只可操作部分系统管理内容,普通用户只能对虚拟实验进行操作。
(2) 应用系统层。应用系统层不仅包括数据展示、数据查询及系统管理,还根据课程实验需要,利用业务支撑层和数据资源层提供的各种工具,创建虚拟实验教学实例,主要包括汽车CAN通信系统状态模拟、汽车CAN通信故障检修、汽车网络节点通信设计等。
(3) 业务支撑层。业务支撑层包含业务服务支撑、网络传输服务支撑、数据传输服务支撑和安全服务支撑,负责支撑应用系统层各功能之间的协调工作。
(4) 数据资源层。数据资源层包括空间数据库、业务数据库和设备状态库,负责应用系统层及业务支撑层的数据运用。
(5) 基础平台层。基础平台层硬件部分包括高性能服务器、数据采集设备、海量存储和网络,软件部分包括操作系统、三维仿真系统和数据库管理系统。基础平台层主要负责前面四层的运行。
本设计通过虚拟现实、跨平台应用程序开发引擎Unity3D,采用编程语言C#,对整个系统场景进行搭建,在场景搭建完成基础上对三维建筑、模型等元素进行可视化操作,实现了三维仿真技术、三维动画仿真技术、人机交互技术、光照模拟技术、三维漫游技术等。
(1) 三维仿真技术。三维仿真技术是利用计算机技术创建逼真的、具有多种感知的虚拟环境,用户可通过使用各种传感设备同虚拟环境中的实体相互作用的一种技术[2]。在该项目中,参与者可以通过数据手套、数据衣、鼠标、键盘与汽车和场景进行交互。通过使用3D Studio Max构建汽车和修车厂等真实比例为1∶1的模型,再通过Unity3D调整材质、效果等,从而实现三维仿真功能。
(2) 三维动画仿真技术。三维动画仿真技术能够将真实物体的动作模拟成一个虚拟的动画,三维动画具有真实、精确、可操作性强等优点[3]。本仿真平台中,汽车在接收到指令时的运动模拟、汽车与人交互时的动作模拟、泊车和驾驶中的运动状态模拟等,所用到的就是三维动画仿真技术。
(3) 人机交互技术。人机交互技术是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术[4]。除了常规的鼠标、键盘的传统交互方式,本仿真平台还利用数据手套、数据衣捕获参与者的“姿势信息”对手和身体的运动进行跟踪,完成自然的人机交互。
(4) 光照模拟技术。本平台中所有场景的灯光烘焙都使用了光照模拟技术,例如修理厂场景屋顶上的灯光以及物体影子的模拟、户外行驶中汽车的光照和阴影效果等。系统将不同的光照信息,如户外的阳光、修理厂室内的灯光保存在光照贴图的不同通道里,通过Shader将这些信息进行处理,动态地为场景调整不同的光照风格。
(5) 三维漫游技术。本仿真平台中,在对汽车的观测和与汽车的互动操作中都广泛使用了三维漫游技术。参与者可从任意角度和距离并选择任意精细程度,对仿真场景和汽车模型进行身临其境的全方位审视。例如在对汽车的驾驶操作过程中,参与者可以在“操作者”和“旁观者”模式中选择并自由切换。
以汽车网络节点和通信设计中的“车窗控制单元设计与仿真运行”实验为例。实验的主要任务是设计一个基于CAN总线的汽车车窗通信网络,该实验包括智能节点硬件的设计及通信协议的设计和仿真。实验采用闯关式任务法,把一个整体的设计项目细化成6个层层递进的任务,实验任务主要界面如图2所示。每个任务目标明确,内容完整,让学生能有的放矢地去把握。实验任务涉及尽可能多的知识点,考虑单个任务与整个教学内容之间的联系,涵盖了课程的多项知识与技能。
图2 车窗控制单元设计与仿真运行实验任务主要界面
此为第1项任务,即搭建汽车CAN网络中的各个控制单元,宏观地认识汽车CAN通信系统的主要控制单元及整体体系结构。
汽车网络中,根据各控制单元对通信速度的不同需求,通常设置成两种不同通信速度的CAN总线,即汽车的CAN总线分成低速网和高速网两个通信网络,由网关控制器(gateway controller)协调高、低速网络之间的数据通信[5]。
(1) 低速网。通信速度不大于125 kbps,目前常用的为100 kbps,主要用于中央门锁、自动门窗、自动空调、汽车定位等舒适系统[5]。
(2) 高速网。通信速度可达1 Mbps,目前常用的为500 kbps,主要用于汽车动力控制系统,如发动机管理系统、自动变速箱、制动防抱死装置等[5]。
此为第2项任务,即完成车窗控制单元的CAN通信智能节点的硬件结构设计。该实验以四窗车型为例进行硬件结构布置,以驾驶侧为主节点,副驾驶侧、左后侧、右后侧为从节点。主节点负责主驾驶侧的车窗控制和向CAN总线发送对其他车窗的控制报文,各个从节点通过按键控制各自车窗,发送相应报文,并接收总线上相应报文,做出相应动作。
CAN总线智能节点由6部分组成:微处理器STC89C51、CAN控制器SJA1000、光电耦合器6N137、CAN收发器89C250、车窗控制电路和按键模块电路。微处理器STC89C51负责SJA1000的初始化,通过对SJA1000的寄存器进行配置,使各节点按照CAN总线的协议进行数据传送。CAN收发器89C250主要用作信号电平转换,产生CAN总线要求的差分信号电平,是CAN控制器和物理总线之间的接口[6]。高速光耦6N137实现了总线上各节点间的电气隔离。
CAN应用协议主要规定以下三方面内容:信息标识符的分配、报文滤波机制的设定和报文数据帧含义的设定。实验通过以下三个步骤指导参与者实现一个CAN网络应用协议的设计。
(1) 信息标识符的分配。CAN为多主机工作方式,所有节点都可发送报文,发送报文的ID是节点的标识符,体现了该节点的优先级。系统采用的SJA1000是一款独立的CAN控制器,支持CAN2.0A和CAN2.0B协议[6]。本设计信息标识符采用静态分配策略及BasicCAN模式,需要对11位标识符进行分配[6]。
此为第3项任务,即由参与者根据优先级的要求进行信息标识符分配,并观测到不同优先级报文的ID仲裁过程。标识符(11位)分配策略:信息功能码(2位)+节点号(4位)+单元号(5位)。信息功能码考虑了通信中的三种通信形式:报警、控制、信息帧;节点号分配给四个车窗控制节点;车窗控制单元的单元号由系统给定。
在这个过程中,参与者可通过设置四个车窗动作节点发送报文ID的方式,来控制不同功能帧、不同节点的优先级,并观测到不同优先级报文的仲裁过程。CAN总线采用“载波监测、多主掌控/冲突避免”(CSMA/CA)的仲裁机制[7]。在这种机制下,汽车总线上的四个车窗节点平等地申请总线的控制权,当某一时刻,总线上有多个节点要求发送数据时,总线根据标识符按位仲裁,使具有高优先级的数据不受任何损坏地传输。
(2) 报文滤波机制的设定。报文滤波是CAN总线技术最有用的特色之一,通过报文滤波,可以很容易地实现点对点、一点对多点的通信。各个节点的滤波参数如何设置,是系统组网的关键之一。CAN网络的报文滤波由验收屏蔽寄存器AMR和验收码寄存器ACR控制。在BasicCAN模式下,只有当验收代码寄存器的位(ACR.7—ACR.0)与信息标识符的高8位(ID.10—ID.3)相等,或与验收屏蔽寄存器的相应位(AMR.7—AMR.0)相“或”为1,信息才被接收[6]。
在任务4中,参与者通过设置控制节点验收滤波器ACR和AMR寄存器对报文ID进行过滤,并观测到验收滤波器对ID的滤波过程。
(3) 报文数据帧含义的设定。此为第5项任务,即参与者定义特定数据帧对应的动作,完成自定义CAN应用层协议。在BasicCAN模式下,有8个字节的数据帧,参与者设定某一个ID可能的动作和状态对应的数据帧。仿真过程中汽车会根据该协议做出相应的动作,并发送相应数据到CAN总线网络。
此为第6项任务,即综合应用三维虚拟仿真技术、三维动画仿真技术、人机交互技术、光照模拟技术、三维漫游技术和XML数据解析技术等,实现与汽车的三维立体交互。参与者可通过两种方式观测自定义应用协议对汽车的作用,一是通过控制窗口向汽车输入自定义的CAN应用层协议数据帧后,汽车有相应的反应;二是操作汽车,会看到相应的数据帧出现在汽车总线中。参与者既可利用VR头盔、数据衣、数据手套,感受到VR的全视角立体感和全新的、智能的感知体验,也可通过鼠标交互,以三维立体模型的形式展示。
教育部《关于开展虚拟仿真实验教学中心建设工作的通知》中提出,“虚拟仿真实验教学建设工作是高等教育信息化的组成部分,是学科专业与信息技术深度融合的产物”。本文构建的基于CAN总线技术的汽车网络仿真实验平台,利用最新虚拟现实产品和最新三维仿真技术,致力于降低实践教学成本,打造多样化的教学环境,突破时间和空间的限制,增强实践教学的互动性。实验平台全面展示了CAN总线技术的关键知识,能够系统地考查参与者应用设计能力,增强教学的直观性和认知性,是一种有着强大活力的现代教学平台。