历史上的今天
今天是:2025年04月07日(星期一)
2018年04月07日 | 从新能源汽车CAN总线入手,学习兼容性更强大通讯系统
2018-04-07 来源: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】可获赠原文文档。
史海拾趣
|
安崴提供低压差600MA输出电流的LDO,AP1735做到600MA/350MV, AP6256做到600MA/500MV 需要样品请联系13537795709 梁生,QQ 291426765 邮箱:LY158@TOM.COM … 查看全部问答> |
|
图中,7805的输入1脚接12V外加电源,3脚输出5V电压,这个用万用表的电压档一测就知道了,但是它的输出电流最大是多少呢? 答案是输出电流随负载的变化而变化,可是电流不能无限小和无限大吧?所以输出电流必定有个最小值和最大值。 ...… 查看全部问答> |
|
VISTA系统下安装 Tornado2.0后,运行时总出现 gdb error,是什么原因? 运行Tornado时,总弹出好几个错误的对话框,标题为 gdb error! 内容为:Failed to register COM Server. Error code = ox8002801c 将对话框点掉之后 Tornado 就启动起来了,运行还算正常,但每次一启动就出 ...… 查看全部问答> |
|
包括什么ttyS0,console等等,什么都没有 怎样修改才能添加呢 另外etc文件夹下也什么文件都没有,不知怎么一回事 内核是2.6的 谢谢… 查看全部问答> |
|
大家好: 我想知道 TI 的 MSP-FET430UIF 仿真器能不能支持 两线 BSL 仿真模式? 如果可以能不能把这个方法用于 430F21X1系列的MCU 上.… 查看全部问答> |
|
MSP430F5438 是属于哪个系列的? 手头有一个正宗的MSP-EXP430F5438 开发板 CPU上印字 X430F5438 在TI CCE软件中,设备选项名列最后一个,即选择 XMS430F5438(这是培训手册上指导的) 看了一下随带光盘资料: 1xx Users Guide,手册封面写着 ...… 查看全部问答> |
|
【MSP430共享】 MC430F224例程:Keys+LED演示 【例 程】://基于MC430F224开发板实验例程//软件:IAR Embedded Workbench Version: 3.42A//编写:微控设计网 www.Microcontrol.cn DC//目标板: MC430F224开发板 V1.0#include \"msp430x22x4.h\"//初级用户要习惯采用宏定义,以方便的编写 ...… 查看全部问答> |
|
Beaglebone Black上有UART1-UART5共5个可用的uart串口,UART0连到了Beaglebone Black新增的串口调试引脚上,我们最后再来说它。我们进入/lib/firmware目录中可以看到系统自带了一些与uart有关的device tree /lib/firmware/BB-UART1-00A0.dts & ...… 查看全部问答> |




