单位文秘网 2022-02-07 08:13:15 点击: 次
摘 要:文章介绍基于CANoe环境,来模拟控制器与ECU控制单元在can总线上的数据通信过程。
关键词:can总线;信号;消息;环境变量
1 引言
CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一,在自动化领域的应用非常广泛,其特点是结构简单、成本低,但速度高、实时性和可靠性好。
CANoe是德国Vector公司开发的一款功能非常强大的CAN总线开发测试软件,可以实现真实总线的实时监控,半实物仿真和全虚拟总线的仿真。它包含CAN网络数据库编辑器CANdb++,虚拟节点CANPL语言编程,用户自定义面板组件 Panel Generator以及一些集成的调试监控组件,能满足各种开发测试的需要。本文将介绍如何基于这些工具模拟CAN总线的数据通信,实现特定的一些功能。
2 CAN总线数据库的设计
CANdb++是CANoe内置的工具,用来描述CAN总线的一些对象,这些对象包括:(1)CAN节点。具体包括CAN总线网络中所有节点的名称以及通信ID。(2)信号signal。信号signal代表一种类型的变量,一般用消息中的一位或者几位来表示。一般包含的主要信息有:startbit,即开始位;length,即这个变量的长度是多少位的。除此之外还有最大值最小值的设置等等。(3)消息Message。Message的实质就是在CAN总线上通信的数据帧,一个Message包含的主要信息有:ID,表明这个数据帧是从哪个节点发出的;DLC,也就是数据帧的长度,即多少个字节(Byte);信号signal,一个消息一般含有一个或多个信号。(4)环境变量(environment variables)。环境变量是信号的另一个身份,用以在CANPL编程和Panel面板时进行变量绑定。
在使用CANdb++之前,首先需要在CANoe中建立一个CAN总线的节点网络。将两个虚拟节点分别命名为CAB和ECU,用来表示控制器单元和ECU单元。如图1所示。
图1
打开CANdb++,建立数据库。其中重要的几个项目是Environment variables,network nodes,Message和Signals。在CANdb++的左侧栏可以查看。
首先建立两个节点,分别为cab_node和ECU_node,然后建立两个Message,分别表示CAB发给ECU的消息和ECU发给CAB的消息。根据我们实际采集的通信数据,将两个Message的ID分别设置为0x2A4和0x2A5(16进制),DLC设置为3,表示每个消息长度为3个字节。
然后再建立所需要的信号。根据需要,建立了5个信号,并将这5个信号都绑定到CAB_to_ECU这个消息上,每个信号长度为1bit,即都只占用CAB_to_ECU这个消息的1位。具体是第几位根据采集的实际通信数据经过分析可以得到,并做相应的设置。最终建好的数据库如图2所示。
3 基于 Panel Desinger的界面设计
在CANoe的主界面中点击file->open Panel Desinger即可打开Panel Designer组件。Panel Designer是一个很简单易学的工具,通过拖拽控件和属性设置即可完成界面的设计和变量的绑定。
ToolBox是各种常用的显示控件,包括有按钮,指示灯开关,复选框,文本框,静态文本等等。
通过拖拽ToolBox里的指示灯和静态文本控件,我们建立一个如图3所示的界面。
图3
界面完成后,需要在Properties中进行一些设置。Display Only属性表示是否只显示,在这里可以设置为true,指示灯不需要进行操作,只需要读取变量进行显示;State Count 设置为2,表示只有两个状态;Switch Value设置为0:1,表示指示灯只有0或1的取值;Symbol Filter设置为Environment Variables,然后点击Symbol,会出现一个列表,一一绑定到数据库中相应的环境变量。完成之后点击保存,保存好的文件为.xvp格式的文件。类似地设置CAB端的界面,并将所有控件与数据库中相应的环境变量绑定。
4 基于CANPL编程语言进行通信模拟
CANPL全称为CAN Access Programming Language,是一种类C语言的编程语言,语法与C语言基本相同,不同的是,它是一种面向事件的编程语言,有自己特定的程序结构。
CANPL的事件语句大体上分为三种,即总线事件,键盘事件,时间事件。
总线事件:on message Message{……} 表示接受到指定消息时执行。
键盘事件:on key "a"表示按键盘"a"时反应。
时间事件:timer Mytimer 将Mytimer申明为以秒为单位的定时器;setTimer(Mytimer,20)表示将定时器设置为20秒间隔,并启动。
通过编写CANPL程序,实现CAB和ECU双节点的数据通信,在Canoe的Trace版面下可以查看模拟过程中的实时数据。最终数据如图4。
参考文献
[1]史久根.CAN现场总线系统设计技术,2004年.
[2]陈觉晓,孙泽昌.基于canoe的实时can总线数据纪录软件的设计方法[J].测控技术,2006 vol25(2):45-47.
[3]CANoe Manual Verion 52.[R].Germany:Vector InformatikGmbH,2005.
作者简介:徐雨晨(1990-),男,安徽省合肥市,同济大学软件工程专业,硕士,研究方向:多媒体与虚拟现实。
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-141-97323-1.html
上一篇:浅议电力系统继电保护技术及其前景
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用