历史上的今天
返回首页

历史上的今天

今天是:2025年04月04日(星期五)

2018年04月04日 | 从新能源汽车CAN总线入手,学习兼容性更强大通讯系统

2018-04-04 来源:ZLG致远电子

CAN总线通讯发展的过程中,为了兼容实时操作系统,是否也有与之对应的实时通讯网络协议? 今天我们就来学习兼容性更强大的通讯系统。

ISO11898前3部分的解读提高了对传统CAN网络的理解,无论是高速CAN还是低速CAN,亦或者是最基础的物理层定义都进行了详细的阐述。传统的CAN网络总线通讯基本都是事件触发的,当同时有许多信息需要传输时可能会造成总线过载,为了避免这种现象,传统CAN网络采用仲裁机制按信息优先级进行传输。

图1 新能源汽车CAN总线透视图

显然,传统分布式的CAN网络如果能用于实时操作系统(基于时间触发调度而非事件触发),对于系统的兼容性和综合集成性将大有提高,但问题是我们如何才能将并非同样遵从时间调度的两者结合起来呢?

一、时间触发CAN

1、概述

时间触发CAN是建立在标准CAN上的高层协议,它会对网络中所有节点通讯进行同步调度,也就是每个节点在一个固定的时间里发送信息,这样就不用再对信息进行优先级仲裁,由于每个节点分配到的时间是固定的,所以还可以预判整个网络的延迟时间。

1.1 要实现这样的时间触发CAN通讯有两种方式

方式一:用于周期信息传输。

方式二:支持全局系统时间传输。

1.2 几个重要概念

  • 基本周期:两个参照帧之间的时间被称为一个基本周期,基本周期由数个时间窗组成;

  • 参照帧:开始一个基本周期的数据帧,为网络提供一个全局时间,其作用就好像格林尼治时间之于世界时间一样,用以同步所有节点的时间;

  • 时间窗:系统矩阵里为传输信息分配的时间段,包括仲裁时间窗、自由时间窗和专用时间窗,见图2。

图2 一个周期内的数个时间窗

所谓的时间触发就是上面已经分配好的的数据从左到右按顺序发送,下面介绍一下这三种时间窗:

  • 专用时间窗(Exclusive Windows):用来传输特殊的周期信息,这些消息不会参与总线竞争,是置身事外的一个记录员角色。

  • 仲裁时间窗(Arbitrating Windows):CAN节点在总线不是空闲的时候是不能传输消息的,而在时间触发CAN的仲裁时间窗里可以安排网路内的几个节点同时发送报文,不过没有重发功能。

  • 自由时间窗(Free Windows):保留用作系统扩展,可以配置成增加节点的仲裁时间窗或专用时间窗,相当于机动部队。

图3 系统矩阵

上图的系统矩阵有4个基本周期,一个基本周期可由不同类型、长度的时间窗组成,矩阵的纵列也叫做传输阵,传输阵里的时间窗有相同的长度但是可以拥有不同类型。

二、接收和发送

明确完了概念,我们接下来了解时间触发CAN是如何接收和发送信息的。

1、信息的发送

信息发送触发器

在时间触发CAN网络里,节点发送的信息由信息发送触发器控制。信息发送触发器会显示信息是由系统矩阵里面的哪个时间窗以及怎么来进行传输的。

所以,信息发送触发器有多个功能组,一是信息正确性判断,二是发送的时间标示,三是判断传输阵里的发送位置,四是重发因数,一个信息发送触发器的触发条件满足时,即使信息的传输出错导致信息失效时它也将立即启动。

图4 举例一个专用信息的发送触发器

上图是一个专用信息D的信息发送触发器,它表述了在系统矩阵里第三个基本周期的第五个时间窗(专用窗)发送,周期偏差为0,重发因素为2。

2、信息的接收

信息接收触发器

在时间触发CAN里,信息的接收是由信息接收触发器控制的,信息接收触发器的构成与上述的信息发送触发器一样,信息接收触发器的时标会在信息接受完成后确定时间点。

3、参照帧的发送

信息接收触发器

参照帧发送触发器是一个特殊的信息发送触发器,它只存在于备用的时间主节点里。在严格的时间触发网络中,只用唯一的一个参照帧发送触发器来确保参照帧的周期发送,只要时间到了,参照帧就会被发送。

而在事件同步的基本周期系统中会有两个参照帧发送触发器,其中一个参照帧发送触发器按系统矩阵基本周期定时发送,另一个作为后备,在事件同步异常时重新发送参照帧。

三、时间主节点初始化和错误处理

1、时间主节点初始化概念

虽然正常通讯建立起来时只有一个时间主节点,但在时间触发CAN中备用的时间主节点可能超过8个。系统启动时,硬件初始化,所有备用时间主节点根据优先级和等待时间可以开始尝试发送参照帧。硬件初始化后有高优先级的CAN标识符的帧同步实体(数据链路层和媒体访问控制层的执行单元)可以优先传输。

2、错误处理

CAN的失效处理遵循ISO 11898-1的规定,当帧同步实体检测到调度表有误时,会通过CAN的ISO 11898-1协议来处理。

图5 错误处理

四、小结

至此,我们将时间触发CAN网络进行了一个概述,简单介绍了这个有别于传统CAN标准的高层协议,更详细的论述可以参看ISO 11898-4原文,公众号后台回复【ISO11898-4】可获赠原文文档。


推荐阅读

史海拾趣

Caddell-Burns Manufacturing公司的发展小趣事

随着科技的不断发展,Caddell-Burns Manufacturing公司意识到技术创新是保持竞争力的关键。于是,公司加大了对研发的投入,引进了一批高素质的技术人才,不断推出具有创新性的电子产品。这些新产品不仅提高了公司的市场份额,也为客户提供了更优质的服务。同时,公司还积极与高校和研究机构合作,开展产学研一体化项目,进一步提升了公司的技术实力。

BOSER公司的发展小趣事

近年来,电子行业面临着诸多变革和挑战,如智能化、物联网等新技术的发展。BOSER公司积极应对这些变革,不断调整和优化产品结构,加大在智能化、物联网等领域的研发投入。同时,公司还加强与高校、科研机构的合作,共同推动电子行业的创新与发展。

Calmos Systems Inc公司的发展小趣事

随着国内市场的饱和,Calmos Systems Inc公司开始将目光投向国际市场。公司制定了详细的国际化战略,包括市场调研、产品定位、销售渠道建设等方面。公司派遣专业团队前往海外市场进行考察和交流,了解当地市场需求和文化特点。同时,公司还积极寻求与国际知名企业的合作机会,共同开拓国际市场。在国际化战略的推动下,公司的业务范围不断扩大,国际市场份额逐年提升。

Gulf Semiconductor公司的发展小趣事

随着电子行业的快速发展,Calmos Systems Inc公司意识到技术创新是企业发展的核心动力。因此,公司加大了研发投入,引进了一批高水平的技术人才,建立了完善的研发体系。经过多次试验和失败,公司成功开发出了一款具有颠覆性的新技术,这项技术在行业内引起了广泛关注。凭借这一技术创新,公司在市场上获得了竞争优势,实现了快速发展。

General Electric Company公司的发展小趣事
尽管工作在高压环境下,但仍能保持较低的噪声水平,以保证信号的清晰度。
聚洵(Gainsil)公司的发展小趣事
在实际应用前进行充分的测试验证,确保电路的稳定性和可靠性。

问答坊 | AI 解惑

数码管时钟

给大家共享下咯…

查看全部问答>

用过研华PCL816卡的看过来

第一次调理板卡,遇到点问题,急寻解决方法,谢谢! …

查看全部问答>

单片机c51频率计

有没有c51频率计的代码呀,呵呵最好是用中断2的。谢谢啦…

查看全部问答>

TTL转232,232转USB,遇到点困惑

我的连线方式是:板子+TTL转RS232+RS232转USB+PC。 “+”代表连接,这样转换会有什么问题么,为什么收不到数据呢。 直接将TTL转232接到PC机上就能收到,并且RS232转USB的线肯定是好的,希望懂得朋友指点迷津,谢谢了…

查看全部问答>

wince5.0安装问题??急!!!

为何总提示要在.NET Frame 1.1下安装,可我的系统(winxp)已经装了 microsoft visual studio 2005 和 microsoft .net Framework SDK V2.0   ???…

查看全部问答>

VS2005环境下EDB数据库编程的问题

请问下 用到EDB数据库编程时 在“VS2005|项目|属性|属性配置|C/C++|预处理器”是怎样设置的。 我的做法是在后面加了“EDB”,但出现好多错误: error C2065: \'CEPROPSPEC\' : undeclared identifier ………

查看全部问答>

请问2440下的串口如何改变序号啊?

我用的是2440+ce5.0,是优龙的BSP,后来发现原来用的是UART1作为调试串口,而UART0用做功能串口。现在我把bootloader里面和BSP下面的相应的UART0和UART1的地址定义交换了,发现UART0是可以做调试串口了,但是UART1却无法收发数据。在platform.reg下 ...…

查看全部问答>

新手请问2440一定要买JLINK吗

我想从头自学嵌入式,就在网上买了套MINI2440开发板,那个店主说调试要用到并口,我的电脑没有并口,一定要买那个JLINK吗,要180元,好贵。。。…

查看全部问答>

关于nand ecc?

常见ecc 源码中: static const u_char nand_ecc_precalc_table[] =   {     0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,     0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x ...…

查看全部问答>

AD采样频率与EV的T1CMPR T1PR的关系

你们好,各位DSP高手。我现在在利用2812的AD功能进行模数转换,看见TI的示例程序中使用了EV定时器。程序如下: // Configure EVA // Assumes EVA Clock is already enabled in InitSysCtrl();   EvaRegs.T1CMPR = 0x0380;     ...…

查看全部问答>