维普资讯 http://www.cqvip.com 轻型汽车技术2008(1/2)总221/222 技术纵横 19 基于CAN总线的汽车虚拟仪表技术 谢正光尹明德 (南京航空航天大学机电学院) 摘要 本文以汽车CAN总线为基础,根据CAN总线的特点和工作原理,构建了一个监测 节点,以达到监测汽车状态的目的。文章中主要介绍了系统的软、硬件设计。硬件采用了 笔记本电脑和ZLG系列CAN接口设备——cANmini;软件设计部分主要介绍了在 LabVIEW开发平台下调用VCI函数来控制设备卡,并设计了收、发控制系统以及仿真汽 车虚拟前面板的人机界面,为汽车状态监测提供了有力的工具。 关键词:CAN总线虚拟仪表VCI函数 引 言 2.1 CAN总线的特点 CAN网络具有很低的生产成本、很高的实时处 自20世纪90年代以来,随着集成电路和单片 理能力,并且在恶劣的强电磁干扰的情况下能够有 机在汽车上的广泛应用,汽车上由ECU(电子控制 可靠的工作能力,已经成为目前汽车制造中必须采 单元)控制的部件数量越来越多,例如防抱死制动 用的技术手段且有了一定的发展。现在CAN总线 装置(ABS)、电控门窗装置、电子燃油喷射装置、安全 技术的优点越来越突出:低成本;极高的总线利用; 气囊装置、主动悬架等。随着车上ECU数量逐渐增 高速的数据传输速率;可靠的错误处理和检错机 多,一种新的概念——控制器局域网CAN(Con_ 制,发送的信息遭到破坏时,可自动重发。并且CAN troverArea Network)的概念也就应运而生了。在 采用非破坏性总线仲裁技术,当多个节点同时向总 CAN系统中,各主要总成、部件的ECU作为总线节 线发送信息时,优先级较低的节点会主动退出发 点相互以串行方式连接到CAN总线上。CAN信号 送,而最高优先级的节点可不受影响地传输数据, 是由各个相连的ECU传输的,ECU可以接收所需的 所以CAN网络不会在负载很重时出现瘫痪的问题, 来自总线的信息,忽略与其无关的数据。按照我国汽 这使汽车引入CAN网络有如下优点:减少了线束的 车电子技术发展规划,进入21世纪后轿车电子技术 数量和线束的容积,提高了电子系统的可靠性、可 可达国外20世纪90年代水平,届时也将会有大量 维护性;采用通用传感器,达到数据共享的目的;改 智能电子控制单元被引入。因此,为缩短同国外轿车 善了系统的灵活性,通过系统的软件可以实现系统 技术水平的差距,提高自身竞争力,必须研究、开发 功能的变化。 自己的汽车局域总线监测系统。 2-2 CAN总线的工作原理 本文设计了一种汽车CAN总线监测系统,该系 当CAN工作时,总线上的一个节点发送数据, 统也属于总线上的一个节点,通过该节点来实现对 它以报文形式广播网络中的所有节点。对每个节点 CAN总线上各类报文信号的收发,并通过LabVIEW 来说,无论数据是不是发给自己的都可对其进行接 设计虚拟仿真面板来显示,以达到更直观地效果。 收。每组报文开头的l1位或29位字符为标识符, 2 CAN总线的特点和工作原理 定义了报文的优先级。在同一系统中标识符是唯一 的,不可能有两个节点发送具有相同标识符的报 维普资讯 http://www.cqvip.com
2O 技术纵横 轻型汽车技术2008(1/2)总221/222 文,当几个同时竞争的总线读取时,这种配置十分重 要。当一个节点要向其他节点发送数据时,该节点的 操作。VCI函数的使用流程如图2所示。 CPU将要发送的数据和自己的标识符传送给本节 点的CAN芯片,并处于准备状态,当它收到总线分 配时,转为发送报文状态。CAN芯片将数据根据协 议组织成一定的报文格式发出,这时网上的其他节 点处于接收状态。每个处于接收状态的节点对接收 到的报文进行检测,判断这些报文是否是发给自己 的,以确定是否需做进一步的处理。为保证总线的交 通畅通,重要信息在发生总线访问冲突时优先发送, 合理地安排数据信息和总线访问优先级显得十分重 要。 3硬件设计 在一个完善的CAN总线汽车电子控制系统中, 各个控制器通过CAN总线相互连接在一起而交换 信息(如车速、发动机转速等)。这种相互连接带来 图2接口厍函数使用流程 4.1.1数据结构 VCI函数库中定义了一些数据结构用于数据交 换,在使用VCI函数前应该先创建这些数据结构。 在LabVlEW中创建这些结构时应该使用簇—— Cluster。一个簇就是一个由若干不同的数据类型的 成员组成的集合体,类似于C语言中的结构。其成 员可以是任意的数据类型,但必须都是控件或都是 显示件。成员的逻辑顺序是由它们被放人簇的先后 的好处是,传感器信号可以供许多控制器同时使用, 且所有控制器享有相同的信息。智能传感器节点可 准确无误地接收各类传感器信号,同时排除各种干 扰信号。另一方面,通过这种连接可以在整个系统内 增加新的节点、开发更新的功能,并降低系统的成 本。CAN网络结构示意图如图1所示。 一多蓐 傅 管~一 j曩苣} ¨一一.I 一 一一一PC(LabVIEW)1 顺序决定的。例如VCI—CAN—OBJ结构体在 VCITransmit和VCI_Receive函数中被用来传送 _可扩备展用节 点 1.r { ZIG CAN设备接口卡 CAN信息帧,如图3所示。 ‘ r 下工 ’ 僳留位 0: CAN总线 :0 l0 ▲ ▲ I▲ 1 r 1 r 1 r 1.r 智能传感器节点1 智能传感器节点2 智能传感器节点3 (模拟量) (脉冲量) (开关量) 图1 CAN网络结构示意图 4 软件设计 4.1 CAN报文收、发控制 图3 VCI_CAN_OBJ结构体 4.1.2调用VCI库函数 Visual CAN Interface(VCI)函数库是专门为ZL— 在LabVlEW 8.0中调用VCI库函数的过程比 较方便简捷。LabVlEW在Advanced函数子模板中 提供了Calling Library Function Node,只要知道动态 连接库里被导出的函数名称及其参数,就可以通过 GCAN系列设备在PC上使用而提供的应用程序接 口。库里的函数从ControlCAN.dll中导出,在Lab— VIEW8.0中可以直接使用这些库函数而无需额外的 维普资讯 http://www.cqvip.com 轻型汽车技术2008(1/2)总221/222 Calling Library Function Node调用。ZLG VCI函数库 已经提供了库里的函数声明,因此,在1.abVIEW中 使用VCI函数库将通过Calling Library Function Node来实现。属性设置页面如图4所示。调用成功 后,即可很方便的对其具体参数进行赋值了,如图5 所示。 图4 CLF节点调用 图5 VCl_lnitCan函数的使用 在CAN报文收发控制程序中实现了设备接口 卡的控制;CAN的初始化配置;CAN报文数据的收 发,并将在CAN总线上收发的数据在列表中显示, 并能分别对这些数据存储为Excel文件。每个步骤 都设置了是否成功的红绿指示灯,使整个过程更加 清晰明朗,也便于程序的调试。 程序当中有2个主要的While循环:主循环,收 发数据循环。这两个循环是并行运行的。其中,在主 循环中使用事件驱动机制处理用户在前面板的操 作。接收和发送数据的过程是在同一个while循环 中,这个循环在程序一开始时就一直运行,直到前面 板上的stop按钮被按下并在其Value Change事件 中使stop2的值变为False时才停止。在循环当中, 只有设备已经启动成功时才会进行相应的操作。 技术纵横 21 在收发循环中VCI_Reveive函数一次只读取一 帧,输出的数据保存到VCI_CAN—OBJ—R结构中,如 果VCI—Reveive函数执行成功的话,就把接收到的 数据显示在数据接收表格中,并通过格式转换,以 字符形式保存到指定的Excel文件中。 发送数据的过程与接收数据的过程相似。当前 面板上的发送按钮或连续发送按钮被按下时,才会 把VCI_CAN—OBJJ结构中的数据通过vcL Transmit函数发送到CAN总线上d发送成功后,把 发送的数据显示在发送表格中,并通过格式转换, 以字符形式保存到指定的Excel文件中。 c^■l 性蠹■;^l●■■●t触■ }I2 图6 CAN报文收、发控制程序 4.2 CAN报文分析 汽车传感器得到的信号有模拟量、脉冲量和开 关量。 模拟量信号:水温表传感器输出信号 (3-50011)、燃油表传感器输出信号(3~5000),均采 用8位A/D采样,以8 bits数据表示,在CAN总线 上以一个数据帧表示。 脉冲量信号:舌簧式、霍尔式等车速传感器的 输出信号(0~1000 Sz),以16 bits数据表示,在CAN 总线上以一个数据帧表示。发动机转速信号 (0~1000 Sz),以16 bits数据表示,在CAN总线上以 一个数据帧表示。脉冲量信号数据更新时间不大于 100ms。 各种开关量信号:包括发动机电气故障信号、 洗窗液液位报警信号、燃油量不足报警信号、机油 量不足报警信号、冷却液温度报警信号、功能检查 信号(充电)、制动蹄片磨损报警信号、各车门开关信 维普资讯 http://www.cqvip.com 22 技术纵横 轻型汽车技术2008(1/2)总221/222 号、远光指示灯信号、前后雾灯指示信号、示宽指示 灯信号、安全气囊信号、左右转向指示灯信号、安全 带指示灯信号等。每个开关量信号以1 bit数据表 示,所有开关量信号在CAN总线上以一个数据帧表 示。 不能满足要求的,本系统设计了一个汽车前面板的 虚拟仪表仿真界面,如图6所示。 该面板结合了传统仪表和数字仪表的优点,使 接收到的CAN信号直观的显示在该面板上,并将报 警信号指示灯设计成闪烁与报警音相结合,能更好 的实现汽车监测的功能。 系统从CAN总线上接收到报文后,根据报文的 ID部分来识别该报文来自于哪个节点,再对报文数 据部分进行对应的格式转换,从而得到所需的数据。 4.3 CAN报文显示——虚拟前面板仿真 5结束语 本系统仅是一个仿真模拟模型,只实现了两个 CAN节点的互连,缺少多节点的互连调试,因而难 通常的CAN系统分析软件虽然都实现总线上 CAN报文的接收、发送、存储等功能,但是,对于数 据都是以帧所规定的标准格式以十六进制格式来显 示,同时按照收发的先后时间顺序列出在表格中。要 进行具体情况下的汽车状态监测,这些软件显然是 柚 t雌_ 酬眦 x . 于发现通信冲突等其它可能存在的问题。此外,由 于时间和实际条件的原因,暂时还未进行实车的 CAN系统试验,有待于今后针对具体车型制订相应 应用层协议,并通过试验来进一步验证系统的可靠 性和实用性。 参考文献 1饶运涛,邹继军,郑勇芸.现场总线CAN原 理与应用技术.北京:北京航空航天大学出版社. 2003 2周立功.CANmini用户手册. 广州周立功 单片机发展有限公司 3李宏梅,佟为明.一种汽车局域总线监控系 统的设计Ⅱ1,低压电器.2003 Nol 4杨乐平,李海涛,杨磊.LabVIEW程序设计 与应用(第2版).北京:电子工业出版社,2005 5杨乐平,李海涛.LabVIEW高级程序设计. 图7汽车虚拟前面板 北京:清华大学出版,2003 jkjkjkj jkjkjkjkjkjkjkjkjkjkj j j 坐jk jk jkjkjkjkj jkjkjkjkjkjk j jkjkjkjk jkjkjkj 奇瑞38款新车5年内上市日前在北京召开的奇瑞商务年会上,奇瑞汽车 的副总经理李峰表示:从08年开始将逐步加大新 车的推进力度,并在未来5年致力于拓展产品线,共 计有38款新车将陆续浮出水面。08—09年期间,奇 瑞将会推出8款车型,包括A级车、微型车、B级车 和MPV、SUV车型:2010年推出9款新车,主要为 B级车的扩展车型;201 1年也将推出10款车,其中 今年有4款投产 包括C级车;201 2年则将推出1 1款新车,其中将 会有一款D级车。另外,奇瑞今年在国内的销量目 标欲达到30万辆,海外销售目标18万辆。 迈入2008年,奇瑞众多值得期待的新车开始 陆续投放,包括微型车、A级车、B级车和MPV车 型。近日,记者从奇瑞汽车获悉,奇瑞今年的新车投 放将集中于今年前三个季度。 (李韵)