本文提出了一种基于CAN 总线的车载网络软件解决方案。该方案可将应用与网络协议分开,以便降低整车厂商对硬件供应商的依赖性,同时提高软件的复用性和可移植性。该方案主要包含两部分:一、静态配置编译器工具;二、网络组件。
1 引言
目前,汽车电子正朝着网络化的方向发展,车载网络成为汽车电子领域的最大热点。提高控制单元间通讯可靠性并且降低导线成本的网络总线应用中的关键技术包括CAN、LIN、FlexRey、MOST、IDB1394 等。对于汽车整车厂来说,CAN 网络设计是应用CAN 网络通讯的关键。纵观现有的设计技术,可以将其分为两类:一类是以仿真和测试为主的传统设计方法;另一类是以协议设计为主的方法。传统方法将每个节点对协议的要求拼凑起来,通过仿真、测试的方法检验协议的正确性,最终得到通讯协议。新方法通过系统设计技术,用理论方法对系统的时序建模,分析设计系统的通讯协议,保证系统的实时性能以及协议的正确性,最终发布正确的通讯协议。本文将简要介绍传统设计方法的局限性和新方法的优势,以及参考新方法所设计的通信网络软件系统。
2 传统设计方法的局限性
随着汽车上电子设备数量的逐渐增多,车载网络系统也越来越复杂,汽车电子网络面临着巨大的挑战。传统网络协议设计技术的局限性越来越突出,主要表现在数据丢失、通讯延迟、协议修改困难等三个方面。
2.1 数据丢失
数据丢失是指新数据没有来得及通过网络传输出去,或是超过接收节点的接收时限才传输出去的情况。数据丢失会严重影响通讯的实时性能,进而影响整车通讯的质量。实时性能好的系统应该完全避免数据丢失。
数据丢失的影响因素就是通讯协议。传统设计方法通过仿真和测试等手段检测协议的正确性,其缺点是无法覆盖所有的测试用例,因此,输出的通讯协议会存在潜在错误或者不够完整,这样就不可避免地会产生数据丢失的情况,影响整个系统的性能。
2.2 通讯延迟
通讯延迟是指数据准备好到通过总线发送出去的等待时间。通讯延迟可能导致数据丢失,是传统设计方法无法解决的根本性问题。这主要是因为,传统设计方法只是将各个节点对协议的要求拼凑起来,没有考虑整个系统的需求,比如发送节点发送数据到接收节点接收数据并用于控制,没有考虑实现这样一个完整功能的时间要求。因此协议设计结果难以保证实时性能,必然存在通讯延迟。
仲裁失败是产生延迟的主要原因,因此延迟与消息的 ID 及周期有关。系统越复杂,消息之间发生竞争的可能性越大,系统的实时性能就越差。
为了减小延迟的影响,传统设计方法采取了两种预防措施。一种是设定时限,如图1所示。另一种限制负载为平均30%左右,降低消息竞争的可能性。但是这两种方法都不能从根本上消除延迟。
图 1 时限设定和响应时间的计算
2.3 协议修改困难
修改协议在开发过程中不可避免。但对于传统的设计方法,因为应用程序和通讯功能的融合,通讯协议的参数变化会导致软件的重新编译和测试,这就意味着额外的时间和成本,供应商极不愿意整车厂商修改协议。因此,整车厂商修改协议十分困难,并需要很长的时间。
3 以协议设计为主的新方法的特点
以协议设计为主的方法通过系统级的设计理论和方法,保证通讯协议的准确性,避免数据丢失,保证系统的实时性能。其特点概括起来如下:
3.1 系统级设计,避免数据丢失
新技术采用自上而下的系统设计技术,对整个系统的架构进行设计,并完成优化。通过理论设计方法,可保证通讯协议的正确性,从根本上解决数据丢失问题。
3.2 有效控制消息延时
响应时间是消息准备发送到最后节点接收到数据的全部时间,它是发送时间和延迟的总和,其中延迟是影响响应时间的主要因素,控制延迟就可以有效控制响应时间。
如图 1 所示,通过对响应时间进行建模,并仔细安排消息的ID 和周期以控制延迟时间、响应时间及总线负载。然后用理论方法计算出最差情形下的延迟时间、最大的响应值,以及总线负载。
由于新方法能够计算出最大总线负载,也能有效控制系统延迟,因此没有必要再对系统的总线负载作任何限制,理论上可以达到100%。其优势在于保证了确定的通讯行为,可以有效地利用系统资源。
3.3 分隔应用程序和通讯协议,保证变更灵活性
如图 2 所示,新方法为ECU 通讯功能提供了标准的网络通讯组件。该组件将应用程序和通讯协议成功分隔开来,使得各自的修改互不影响,保证了协议修改的灵活性。网络通讯组件提供面向总线、应用程序和通讯协议三方面的标准接口。面向应用程序的接口是基于信号的操作,不包含通讯协议的参数。面向通讯协议的接口负责识别通讯协议。只要遵守接口标准,协议可以进行任意改变,而且不影响应用程序。
图 2 分隔应用程序和通讯协议
这种设计方案其优势在于整车厂商可以很容易地修改协议,不需要供应商支持,因此保证了系统变更的灵活性,同时也增加了系统的可移植性以及应用的复用性。[page]
4 系统设计
为了避免传统设计方法的缺点,本系统参考新方法理论进行设计。整个系统主要分为两大部分:一、静态配置编译工具;二、网络组件,称为COM 组件。
4.1 静态配置编译工具
该静态配置编译工具使用配置语言进行信号、帧、帧模式等等的配置。配置语言定义了四个文件的配置规则语法,这四个文件分别为:fixed 文件、network 文件、target 文件和private文件。
.fix 文件主要用来描述可用的网络接口以及ECU 中的每个通信接口所收发的信号的描述。这些描述内容可以在工程的很早阶段就可以定义,甚至是在选定供应商之前就可以进行定以。
.net 文件通常由系统Interator 创建,主要用来描述网络接口配置、信号、帧及其想关参数(例如:帧的ID,传输类型、周期、偏移以及信号的映射表),如果应用有需要的话,还可以进行调度表的调度表的定义(应用于使用网关的情况)。这些信息将会存储到NVRAM中,并且对于应用软件不是直接可见的。
.tgt 文件是由ECU 的供应商提供的,它包括ECU 的硬件特性描述,比如CPU 类型、存储数据的内存的大小和地址等。
.pri 文件主要用来定义信号的标志、超时以及信号的重命名等信息。通过使用配置语言配置的这四个文件实现了静态可裁剪配置,同时控制了信号传递的时序,有效地控制了通讯延迟并避免了数据的丢失,充分利用了网络资源。
经过配置后获得的四个文件经过配置编译器编译后生成三个文件,分别为:s_gen.c 、s_hand.h 以及s_nvram。
s_gen.c 文件包含了一些配置产生的数据结构,并且这些数据结构与ECU 供应商提供的ECU 其他部分应用软件代码进行集成编译和链接。应用软件将包含s_hand.h 文件,以便访问不同的通讯对象,例如:特定的信号等。s_nvram 文件是产生的ECU 二进制配置数据。
4.2 COM 组件
COM 组件采用分层结构设计方法,主要分为:交互层(InteractiON layer)和驱动层(devicedrivers layer)。其中交互层中具有网关功能,该功能实现信号级的路由。
COM 组件中的交互层具有以下功能:一、提供标准面向应用的信号接口;二、提供为网络管理统一服务;三、提供诊断通信统一服务;四、隐藏协议和来自应用的信息属性;五、提供不同网络之间数据传输;六、提供网关功能。
COM 组件中的驱动层提供以下功能:一、发送从交互层递交过来的数据;二、从CAN硬件接收数据递交给交互层;三、确认上层的发送请求,并将确认信息上报给交互层;四、确认接收完成,并将确认信息上报给交互层。
信号的接收:当底层网络中有信息在传输时,CAN 收发器进行过滤,只有符合过滤条件的帧才能被CAN 设备通过驱动层接收。然后驱动层将收上来的数据传递给交互层。应用程序通过信号读操作获得符合条件的帧中的相应信号。
信号的发送:应用程序调用信号写操作功能将有关信号发送到交互层。交互层通过调用有关发送函数进行输出操作,将信息传递到驱动层。驱动层调用有关的发送功能,将信息传输达到CAN 总线上。示意过程图如图3所示。
图 3 使用COM 组件进行信号收发操作
5 结束语
本文设计的系统采用新的设计原理,很好的将应用和协议分开,降低了整车厂商对供应商的依赖性,降低了整车的开发成本和开发周期,同时,作为我国自主研制的车载网络解决方案,一定程度上对我国汽车电子行业的进步提供了一定的理论基础。
本文作者创新点:此网络设计采用了系统设计方法,突破了传统的以仿真测试进行协议拼凑的设计方法,能够使整车厂商灵活地进行协议设计和修改,极大地降低了对供应商的依赖性。同时这种设计方法也保证了系统的移植性和可重用性,并且增加了网络的使用率。
关键字:CAN 车载网络 通讯组件
引用地址:CAN总线车载网络通讯组件的研究和实现
1 引言
目前,汽车电子正朝着网络化的方向发展,车载网络成为汽车电子领域的最大热点。提高控制单元间通讯可靠性并且降低导线成本的网络总线应用中的关键技术包括CAN、LIN、FlexRey、MOST、IDB1394 等。对于汽车整车厂来说,CAN 网络设计是应用CAN 网络通讯的关键。纵观现有的设计技术,可以将其分为两类:一类是以仿真和测试为主的传统设计方法;另一类是以协议设计为主的方法。传统方法将每个节点对协议的要求拼凑起来,通过仿真、测试的方法检验协议的正确性,最终得到通讯协议。新方法通过系统设计技术,用理论方法对系统的时序建模,分析设计系统的通讯协议,保证系统的实时性能以及协议的正确性,最终发布正确的通讯协议。本文将简要介绍传统设计方法的局限性和新方法的优势,以及参考新方法所设计的通信网络软件系统。
2 传统设计方法的局限性
随着汽车上电子设备数量的逐渐增多,车载网络系统也越来越复杂,汽车电子网络面临着巨大的挑战。传统网络协议设计技术的局限性越来越突出,主要表现在数据丢失、通讯延迟、协议修改困难等三个方面。
2.1 数据丢失
数据丢失是指新数据没有来得及通过网络传输出去,或是超过接收节点的接收时限才传输出去的情况。数据丢失会严重影响通讯的实时性能,进而影响整车通讯的质量。实时性能好的系统应该完全避免数据丢失。
数据丢失的影响因素就是通讯协议。传统设计方法通过仿真和测试等手段检测协议的正确性,其缺点是无法覆盖所有的测试用例,因此,输出的通讯协议会存在潜在错误或者不够完整,这样就不可避免地会产生数据丢失的情况,影响整个系统的性能。
2.2 通讯延迟
通讯延迟是指数据准备好到通过总线发送出去的等待时间。通讯延迟可能导致数据丢失,是传统设计方法无法解决的根本性问题。这主要是因为,传统设计方法只是将各个节点对协议的要求拼凑起来,没有考虑整个系统的需求,比如发送节点发送数据到接收节点接收数据并用于控制,没有考虑实现这样一个完整功能的时间要求。因此协议设计结果难以保证实时性能,必然存在通讯延迟。
仲裁失败是产生延迟的主要原因,因此延迟与消息的 ID 及周期有关。系统越复杂,消息之间发生竞争的可能性越大,系统的实时性能就越差。
为了减小延迟的影响,传统设计方法采取了两种预防措施。一种是设定时限,如图1所示。另一种限制负载为平均30%左右,降低消息竞争的可能性。但是这两种方法都不能从根本上消除延迟。
图 1 时限设定和响应时间的计算
2.3 协议修改困难
修改协议在开发过程中不可避免。但对于传统的设计方法,因为应用程序和通讯功能的融合,通讯协议的参数变化会导致软件的重新编译和测试,这就意味着额外的时间和成本,供应商极不愿意整车厂商修改协议。因此,整车厂商修改协议十分困难,并需要很长的时间。
3 以协议设计为主的新方法的特点
以协议设计为主的方法通过系统级的设计理论和方法,保证通讯协议的准确性,避免数据丢失,保证系统的实时性能。其特点概括起来如下:
3.1 系统级设计,避免数据丢失
新技术采用自上而下的系统设计技术,对整个系统的架构进行设计,并完成优化。通过理论设计方法,可保证通讯协议的正确性,从根本上解决数据丢失问题。
3.2 有效控制消息延时
响应时间是消息准备发送到最后节点接收到数据的全部时间,它是发送时间和延迟的总和,其中延迟是影响响应时间的主要因素,控制延迟就可以有效控制响应时间。
如图 1 所示,通过对响应时间进行建模,并仔细安排消息的ID 和周期以控制延迟时间、响应时间及总线负载。然后用理论方法计算出最差情形下的延迟时间、最大的响应值,以及总线负载。
由于新方法能够计算出最大总线负载,也能有效控制系统延迟,因此没有必要再对系统的总线负载作任何限制,理论上可以达到100%。其优势在于保证了确定的通讯行为,可以有效地利用系统资源。
3.3 分隔应用程序和通讯协议,保证变更灵活性
如图 2 所示,新方法为ECU 通讯功能提供了标准的网络通讯组件。该组件将应用程序和通讯协议成功分隔开来,使得各自的修改互不影响,保证了协议修改的灵活性。网络通讯组件提供面向总线、应用程序和通讯协议三方面的标准接口。面向应用程序的接口是基于信号的操作,不包含通讯协议的参数。面向通讯协议的接口负责识别通讯协议。只要遵守接口标准,协议可以进行任意改变,而且不影响应用程序。
图 2 分隔应用程序和通讯协议
这种设计方案其优势在于整车厂商可以很容易地修改协议,不需要供应商支持,因此保证了系统变更的灵活性,同时也增加了系统的可移植性以及应用的复用性。[page]
4 系统设计
为了避免传统设计方法的缺点,本系统参考新方法理论进行设计。整个系统主要分为两大部分:一、静态配置编译工具;二、网络组件,称为COM 组件。
4.1 静态配置编译工具
该静态配置编译工具使用配置语言进行信号、帧、帧模式等等的配置。配置语言定义了四个文件的配置规则语法,这四个文件分别为:fixed 文件、network 文件、target 文件和private文件。
.fix 文件主要用来描述可用的网络接口以及ECU 中的每个通信接口所收发的信号的描述。这些描述内容可以在工程的很早阶段就可以定义,甚至是在选定供应商之前就可以进行定以。
.net 文件通常由系统Interator 创建,主要用来描述网络接口配置、信号、帧及其想关参数(例如:帧的ID,传输类型、周期、偏移以及信号的映射表),如果应用有需要的话,还可以进行调度表的调度表的定义(应用于使用网关的情况)。这些信息将会存储到NVRAM中,并且对于应用软件不是直接可见的。
.tgt 文件是由ECU 的供应商提供的,它包括ECU 的硬件特性描述,比如CPU 类型、存储数据的内存的大小和地址等。
.pri 文件主要用来定义信号的标志、超时以及信号的重命名等信息。通过使用配置语言配置的这四个文件实现了静态可裁剪配置,同时控制了信号传递的时序,有效地控制了通讯延迟并避免了数据的丢失,充分利用了网络资源。
经过配置后获得的四个文件经过配置编译器编译后生成三个文件,分别为:s_gen.c 、s_hand.h 以及s_nvram。
s_gen.c 文件包含了一些配置产生的数据结构,并且这些数据结构与ECU 供应商提供的ECU 其他部分应用软件代码进行集成编译和链接。应用软件将包含s_hand.h 文件,以便访问不同的通讯对象,例如:特定的信号等。s_nvram 文件是产生的ECU 二进制配置数据。
4.2 COM 组件
COM 组件采用分层结构设计方法,主要分为:交互层(InteractiON layer)和驱动层(devicedrivers layer)。其中交互层中具有网关功能,该功能实现信号级的路由。
COM 组件中的交互层具有以下功能:一、提供标准面向应用的信号接口;二、提供为网络管理统一服务;三、提供诊断通信统一服务;四、隐藏协议和来自应用的信息属性;五、提供不同网络之间数据传输;六、提供网关功能。
COM 组件中的驱动层提供以下功能:一、发送从交互层递交过来的数据;二、从CAN硬件接收数据递交给交互层;三、确认上层的发送请求,并将确认信息上报给交互层;四、确认接收完成,并将确认信息上报给交互层。
信号的接收:当底层网络中有信息在传输时,CAN 收发器进行过滤,只有符合过滤条件的帧才能被CAN 设备通过驱动层接收。然后驱动层将收上来的数据传递给交互层。应用程序通过信号读操作获得符合条件的帧中的相应信号。
信号的发送:应用程序调用信号写操作功能将有关信号发送到交互层。交互层通过调用有关发送函数进行输出操作,将信息传递到驱动层。驱动层调用有关的发送功能,将信息传输达到CAN 总线上。示意过程图如图3所示。
图 3 使用COM 组件进行信号收发操作
5 结束语
本文设计的系统采用新的设计原理,很好的将应用和协议分开,降低了整车厂商对供应商的依赖性,降低了整车的开发成本和开发周期,同时,作为我国自主研制的车载网络解决方案,一定程度上对我国汽车电子行业的进步提供了一定的理论基础。
本文作者创新点:此网络设计采用了系统设计方法,突破了传统的以仿真测试进行协议拼凑的设计方法,能够使整车厂商灵活地进行协议设计和修改,极大地降低了对供应商的依赖性。同时这种设计方法也保证了系统的移植性和可重用性,并且增加了网络的使用率。
上一篇:基于ATR4251放大器的汽车天线设计
下一篇:一种低轮廓车载卫星通信天线的跟踪设计
推荐阅读最新更新时间:2024-05-02 23:55
单线CAN总线收发器芯片AU5790
摘要: AU5790是飞利浦公司推出的单线CAN总线收发器芯片。可用于汽车电子系统的多路传输系统。该总线在挂接32个节点时,其总线速度可达33.3kbps。文中介绍了AU5790的内部结构、工作原理及特性,最后给出了它的应用电路。 关键词: CAN总线 收发器 AU5790 1 概述 AU5790是飞利浦公司推出的用于由地构成回路的单总线CAN总线收发器芯片,主要用于汽车的多路传输应用方面。它为CAN总线控制器之间的数据传输提供一单线的物理接口,当总线上挂接32节点时,总线速度可达33.3kbps。AU5790能提供先进的睡眠/唤醒功能,当汽车停用时,可减少芯片供电电源的消耗,但仍能提供所需的网络控制功能。在高速
[网络通信]
Littelfuse新推汽车用瞬态抑制二极管阵列,可保护CAN BUS线路
符合PPAP与AEC-Q101标准的装置可最大限度地提高汽车电子产品应用的可靠性 中国,北京,2018年3月21日讯 - Littelfuse公司作为全球电路保护领域的领先企业,今天推出了符合AEC-Q101标准的瞬态抑制二极管阵列系列。该产品经过优化设计,可用于保护汽车控制器局域网(CAN)线路免受因静电放电(ESD)、电气快速瞬变(EFT)和其他过电压瞬变造成的损坏。 AQ24CANFD系列瞬态抑制二极管阵列 AQ24CANFD系列瞬态抑制二极管阵列可在高于业内标准所规定最高级别的情况下,安全地吸收反复性ESD放电,而性能不会减退,并可在极低的箝位电压下安全地耗散3A浪涌电流。 与越来越多专为汽车电子产品应用设计
[电源管理]
以太网分析、车载总线协议解码、CAN位时间测试3个方面解读
本文导读 提起汽车电子行业的通信问题,大家自然会想到CAN、LIN、CANFD、车载以太网等协议。那么工程师在调试这类通信问题的时候,示波器是否拥有相关协议的分析插件就非常关键。这些分析插件是如何协助工程师解决问题的呢? 本文将重点从示波器的以太网分析、车载总线协议解码、CAN位时间测试3个方面来进行描述。 一、以太网分析 目前,车载以太网最重要的应用就是域控制器。除了域控制器、激光雷达这些都需要高带宽和全新的运算架构。另外一点就是降低成本的需求。 如图1所示,为典型的汽车网络架构。 图1 典型的汽车网络架构 像CAN总线一样,以太网也需要类似的多种测试来确保通信等的稳定性。这其中就包括眼图测试、发送抖动、幅值
[测试测量]
CAN总线分布式安全检测系统设计
1、引言 随着自动控制技术和现场总线技术的不断发展和深化,网络化、集成化和互操作已成为现代控制系统的重要发展方向。在众多的现场总线标准中,德国Bosch公司提出的CAN总线(Controller Area Network)是从80年代初为解决现代汽车中众多的控制于测试仪器之间的数据交换而开发的一种串行数据通信协议 。
本文介绍了利用红外传感器无接触检测,结合单片机技术、CAN总线技术,将现场存在的传感器、电子控制单元、执行机构连接起来组成分布式控制网络,实现了分布式安全保护检测控制。有效地保证了工作人员人身安全和生产的正常进行。该系统可用于危险场所、区域安全防护,机械加工、纺织、食品加工等安全保护以及家庭等防盗报警,
[嵌入式]
Nexperia全新无引脚CAN-FD保护二极管,兼具出色ESD和RF性能
半导体基础元器件领域的高产能生产专家Nexperia宣布推出适用于CAN-FD应用的新款无引脚ESD保护器件。器件采用无引脚封装,带有可湿锡焊接侧焊盘,支持使用AOI工具。PESD2CANFDx系列部件完全符合AEC-Q101标准,同时提供行业领先的ESD和RF性能,节省了PCB空间。 Nexperia通过有引脚和无引脚封装为CAN-FD总线提供硅基ESD保护。带有可湿锡焊接侧焊盘的全新DFN1412D-3和DFN1110D-3无引脚DFN封装占用的PCB空间比传统SOT23和SOT323封装少80%。尽管如此,由于包含散热器和导热垫片的内部引线框架更大,该封装中组装的产品具有改进的热特性。 PESD2CANFDx二
[电源管理]
CAN总线与以太网系统互连中网关的设计与实现
1 引言
科技和社会的发展,使20世纪末的全球化市场竞争空前激烈。竞争中的企业逐渐开始实施计算机集成制造系统,采用系统集成、信息集成的观点来组织工业生产。在这个系统中,为实现现场智能设备之间的多点数字通信,计算机测控技术与计算机网络紧密地结合在一起,产生了能在工业现场环境运行、性能可靠、造价低廉的现场总线(FieldBus)技术。
现场总线是用于生产制造现场的最底层通信网络,它实现了微机化的现场测量控制仪器或设备之间的双向串行多节点数字通信。现场总线技术的关键是使自动控制系统与现场设备具备通信能力,将它们连接成网络系统,实现现场通信网络与控制系统的集成。作为网络系统,它具有开放统一的通信协议。
CAN总线就是现场总线
[嵌入式]
基于CAN/LIN总线的汽车混合网关设计
引 言 随着汽车电子的发展,传统的点对点的通信已经不能满足现代汽车通信的要求。汽车电子网络技术正成为实现汽车控制系统的首选,它使汽车电子技术进入一个全新的时代。
20世纪 90年代,美国汽车工程师协会SAE(Society of AutomoTIve Engineers)将汽车数据传输网分成了A、B、C三类:A类网络主要面向传感器/执行器的低速网络,数据传输位速率一般小于10 kb/s,目前A类网的首选标准为LIN(LocalInterconnect Network)协议;B类网络主要面向独立模块间数据共享的中速网络,数据传输位速率在10~125 kb/s,目前B类网络主要采用低速容错CAN标准ISO11
[嵌入式]
基于uclinux的CAN总线嵌入式驱动编程
1 引言
早期应用于八位单片机软件设计的嵌入式系统主要为前后台系统(或超循环系统),程序大约在几千行以内,由两部分组成,即其应用程序是一个无限的循环,循环中调用函数完成相应的操作,属于后台行为;其中断服务程序处理异步事件,属于前台行为.随着嵌入式系统功能越来越庞杂,如友好的人机界面、网络化、远程监控等.各种任务的优先级不同,传统的设计方法无法完成,程序长达数万行,程序员必须同繁琐的底层硬件打交道,这样效率低下.现代电子技术的发展为嵌入式微处理器提供了更多的外设,通用的如串口、并口、以太网口、现场总线、USB口等.基于免费自由软件Linux发展而来的嵌入式系统uclinux,是一种免费的嵌入式操作系统.uclinux系
[嵌入式]