基于SkyEye的CAN总线通信测试

2022-09-05 09:57:11 digiproto
通信技术,通常也被称做通信工程,是电子工程的重要分支,指以电磁波、声播或光波的形式将信息通过电脉冲从发送端(信源)传输到一个或多个接受端(信宿)的过程所涉及的技术。日常生活的信息交换基本都会应用到通信技术:计算机、手机应用网络或无线电波的调制实现信息传递,而航空航天领域中的飞行器除了应用无线电进行信息传输外,还会利用通信总线来实线数据的快速传递。


总线(Bus)指计算机各部件间执行信息传输工作的公共通信干线,是由导线组成的传输线束,通常由数据线、地址线、控制线构成。如将主板比作一座城市,就可将总线理解为城市中的公共汽车,按照固定行车路线传输信息。常见的总线有RS422/RS485总线、I2C总线、SPI总线、CAN总线(常用于汽车电子控制系统)、1553B总线(常用于航空、航天、军事等领域的电子联网系统)、1394总线(常用于航空系统领域)、FC总线(常用于航空航天领域)等。


本文将主要就应用于汽车电子控制系统的CAN总线通信展开讨论。


CAN总线通信


在现代汽车高速发展趋势下,汽车使用的发动机电控系统、防抱死系统(Antilock Brake System,ABS)、自适应巡航系统(Adaptive Cruise Control,ACC)、车载多媒体系统等越来越多的电子控制系统之间庞大的数据交换已无法采用传统的导线“点对点”连接来进行传输。据统计,中型轿车需要的线束插头为300个以上,插针总数在1800-2200个,线束总长超过2千米,装配极为复杂,故障率也极高。

can总线.png

▲图1. 常见的CAN总线控制器应用


控制器局域网(Controller Area Network, CAN)总线为目前国际上应用最为广泛的现场总线之一,是德国博世公司(Bosch)于20世纪80年代初专为汽车行业开发的串行通信协议,自1993年开始被广泛应用于各种车辆与电子设备上。CAN总线有着容错率高、抗电磁干扰能力强、实时性高、成本低等优点,被誉为自动化领域的计算机局域网,为实现分布式控制系统各节点之间实时、可靠的数据通信提供了强有力的技术支持。


CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可使用光缆连接并同时支持多主控制器。


CAN总线上的每个节点(站)发送数据时都会以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否发给自己,都将对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。


当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当CPU收到总线分配时,将转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,此时其它站将处于接收状态,并对其接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否进行接收。


CAN总线是一种面向内容的编址方案,易于建立高水准的控制系统并可供灵活配置,无需在硬件或软件进行修改便可在CAN总线中增加新站。当所提供的新站为纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址,允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。


CAN总线特征


1、报文(Message):总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。


2、信息路由(Information Routing):在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。


3、标识符(Identifier):要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。


4、数据一致性:应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。


5、位传输速率:不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。


6、优先权:由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。


7、远程数据请求(Remote Data Request):通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。


8、仲裁(Arbitration):只要总线空闲,任何节点都可以向总线发送报文。


9、节点不分主从:CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统,CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的"调度"。


在CAN2.0B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有11位标识符的帧称之为标准帧,而含有29位标识符的帧称为扩展帧。


基于仿真平台的虚拟总线通信设计


硬件设备资源紧张会影响开发人员或测试人员在硬件设备上进行通信总线功能的测试需求,可以通过仿真平台搭建虚拟总线来进行嵌入式软件中总线功能的测试,还可提供仿真平台所提供的总线监视功能来监控软件运行过程中的总线通信数据,方便开发人员进行故障排查。


本文以CAN总线为例,简单介绍虚拟CAN总线的设计实现。


1. 实现can_linker总线设备,用于不同节点间CAN报文的传输。

2. 实现CAN控制器设备,作为一个设备节点,用于发送或接收总线报文。


通信设计:所有CAN设备节点都可以连接在can_linker上,当一个CAN设备节点发送报文,首先发送给can_linker设备,can_linker设备在转发给其他所有连接在该总线设备上的CAN节点,即广播给CAN总线中所有节点,再由接收节点根据报文本身特征判断是否接收这帧信息。


基于SkyEye的虚拟CAN总线应用场景


有如下的CAN总线应用场景,需要仿真4个SVCU计算节点,每个计算节点包含两个CPU,每个CPU上有两路CAN口,分别连接到2个CAN总线上,即CAN A、CAN B总线各自有8个CAN节点,以此来搭建仿真通信系统组用于验证多个计算节点应用系统配置的数据有效性。上述场景整体框架如下图所示:

image (8).png

▲ 图2. CAN总线应用场景


以2个VCU计算节点为例,通过SkyEye天目全数字实时仿真软件搭建的目标系统拓扑结构如下图所示:

image (9).png

▲ 图3. 基于SkyEye的CAN总线交互设计


VCU_0节点包含有core_0和core_1两个虚拟目标系统,VCU_1节点包含有core_0和core_1两个虚拟目标系统,每个虚拟目标系统都有CAN_x_1和CAN_x_2设备,目标系统外部有两个can_linker总线设备模块,一个是can_linker_0,一个是can_linker_1,每个虚拟目标系统上的CAN_x_1都和can_linker_0总线相连接,CAN_x_2和can_linker_1总线相连接。


以上为基于SkyEye搭建虚拟CAN总线仿真测试平台的相关内容。构建虚拟CAN总线仿真测试平台可辅助开发和测试人员更安全高效地进行总线通信的测试验证,助力汽车电子控制领域CAN总线发展。



SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模,是真实物理硬件的数字孪生。

图片关键词


参考链接

CAN总线概述及应用

https://m.elecfans.com/article/673274.html

标签: CAN总线 通信
首页
产品
新闻
联系