0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CAN总线的车载网络软件解决方案

电子设计 来源:郭婷 作者:电子设计 2019-02-06 07:12 次阅读

1 引言

目前,汽车电子正朝着网络化的方向发展,车载网络成为汽车电子领域的最大热点。提高控制单元间通讯可靠性并且降低导线成本的网络总线应用中的关键技术包括CAN、LIN、FlexRey、MOST、IDB1394 等。对于汽车整车厂来说,CAN 网络设计是应用CAN 网络通讯的关键。纵观现有的设计技术,可以将其分为两类:一类是以仿真和测试为主的传统设计方法;另一类是以协议设计为主的方法。传统方法将每个节点对协议的要求拼凑起来,通过仿真、测试的方法检验协议的正确性,最终得到通讯协议。新方法通过系统设计技术,用理论方法对系统的时序建模,分析设计系统的通讯协议,保证系统的实时性能以及协议的正确性,最终发布正确的通讯协议。本文将简要介绍传统设计方法的局限性和新方法的优势,以及参考新方法所设计的通信网络软件系统。

2 传统设计方法的局限性

随着汽车上电子设备数量的逐渐增多,车载网络系统也越来越复杂,汽车电子网络面临着巨大的挑战。传统网络协议设计技术的局限性越来越突出,主要表现在数据丢失、通讯延迟、协议修改困难等三个方面。

2.1 数据丢失

数据丢失是指新数据没有来得及通过网络传输出去,或是超过接收节点的接收时限才传输出去的情况。数据丢失会严重影响通讯的实时性能,进而影响整车通讯的质量。实时性能好的系统应该完全避免数据丢失。

数据丢失的影响因素就是通讯协议。传统设计方法通过仿真和测试等手段检测协议的正确性,其缺点是无法覆盖所有的测试用例,因此,输出的通讯协议会存在潜在错误或者不够完整,这样就不可避免地会产生数据丢失的情况,影响整个系统的性能。

2.2 通讯延迟

通讯延迟是指数据准备好到通过总线发送出去的等待时间。通讯延迟可能导致数据丢失,是传统设计方法无法解决的根本性问题。这主要是因为,传统设计方法只是将各个节点对协议的要求拼凑起来,没有考虑整个系统的需求,比如发送节点发送数据到接收节点接收数据并用于控制,没有考虑实现这样一个完整功能的时间要求。因此协议设计结果难以保证实时性能,必然存在通讯延迟。

仲裁失败是产生延迟的主要原因,因此延迟与消息的 ID 及周期有关。系统越复杂,消息之间发生竞争的可能性越大,系统的实时性能就越差。

为了减小延迟的影响,传统设计方法采取了两种预防措施。一种是设定时限,如图1所示。另一种限制负载为平均30%左右,降低消息竞争的可能性。但是这两种方法都不能从根本上消除延迟。

基于CAN 总线的车载网络软件解决方案

图 1 时限设定和响应时间的计算

2.3 协议修改困难

修改协议在开发过程中不可避免。但对于传统的设计方法,因为应用程序和通讯功能的融合,通讯协议的参数变化会导致软件的重新编译和测试,这就意味着额外的时间和成本,供应商极不愿意整车厂商修改协议。因此,整车厂商修改协议十分困难,并需要很长的时间。

3 以协议设计为主的新方法的特点

以协议设计为主的方法通过系统级的设计理论和方法,保证通讯协议的准确性,避免数据丢失,保证系统的实时性能。其特点概括起来如下:

3.1 系统级设计,避免数据丢失

新技术采用自上而下的系统设计技术,对整个系统的架构进行设计,并完成优化。通过理论设计方法,可保证通讯协议的正确性,从根本上解决数据丢失问题。

3.2 有效控制消息延时

响应时间是消息准备发送到最后节点接收到数据的全部时间,它是发送时间和延迟的总和,其中延迟是影响响应时间的主要因素,控制延迟就可以有效控制响应时间。

如图 1 所示,通过对响应时间进行建模,并仔细安排消息的ID 和周期以控制延迟时间、响应时间及总线负载。然后用理论方法计算出最差情形下的延迟时间、最大的响应值,以及总线负载。

由于新方法能够计算出最大总线负载,也能有效控制系统延迟,因此没有必要再对系统的总线负载作任何限制,理论上可以达到100%。其优势在于保证了确定的通讯行为,可以有效地利用系统资源。

3.3 分隔应用程序和通讯协议,保证变更灵活性

如图 2 所示,新方法为ECU 通讯功能提供了标准的网络通讯组件。该组件将应用程序和通讯协议成功分隔开来,使得各自的修改互不影响,保证了协议修改的灵活性。网络通讯组件提供面向总线、应用程序和通讯协议三方面的标准接口。面向应用程序的接口是基于信号的操作,不包含通讯协议的参数。面向通讯协议的接口负责识别通讯协议。只要遵守接口标准,协议可以进行任意改变,而且不影响应用程序。

基于CAN 总线的车载网络软件解决方案

图 2 分隔应用程序和通讯协议

这种设计方案其优势在于整车厂商可以很容易地修改协议,不需要供应商支持,因此保证了系统变更的灵活性,同时也增加了系统的可移植性以及应用的复用性。

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所示。

基于CAN 总线的车载网络软件解决方案

图 3 使用COM 组件进行信号收发操作

5 结束语

本文设计的系统采用新的设计原理,很好的将应用和协议分开,降低了整车厂商对供应商的依赖性,降低了整车的开发成本和开发周期,同时,作为我国自主研制的车载网络解决方案,一定程度上对我国汽车电子行业的进步提供了一定的理论基础。

此网络设计采用了系统设计方法,突破了传统的以仿真测试进行协议拼凑的设计方法,能够使整车厂商灵活地进行协议设计和修改,极大地降低了对供应商的依赖性。同时这种设计方法也保证了系统的移植性和可重用性,并且增加了网络的使用率。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN总线
    +关注

    关注

    145

    文章

    1936

    浏览量

    130631
  • 协议
    +关注

    关注

    2

    文章

    598

    浏览量

    39180
  • 仿真
    +关注

    关注

    50

    文章

    4043

    浏览量

    133416
收藏 人收藏

    评论

    相关推荐

    针对CAN总线传输距离问题的两种解决方案

    针对CAN总线传输距离问题的两种解决方案
    发表于 08-16 16:13

    车载显示技术及其应用方案~

    基于CAN总线的汽车仪表软件实现方案经典详述光电显示汽车仪表盘的标准化详细介绍飞思卡尔的汽车仪表完整解决方案LightTools设计实例--
    发表于 12-15 14:19

    【下载】《汽车CAN总线系统原理设计与应用》——车载网络系统研究参考资料

    `编辑推荐《汽车CAN总线系统原理、设计与应用》全面介绍了车载网络技术的现状,详细介绍了CAN总线
    发表于 08-18 18:11

    基于CAN总线车载网络软件该怎样去设计?

    本文提出了一种基于CAN总线车载网络软件解决方案
    发表于 05-12 06:57

    CAN总线和以太网两者互相并存的车载网络解决方案

    的巅峰,也必然有着其过人之处。个人比较看好未来是由CAN总线和以太网两者互相并存的车载网络解决方案。...
    发表于 08-20 07:10

    网络软件包分级保护机制的研究

    网络软件包分级保护机制的研究:提出了一套基于混沌加密算法的网络软件包分级保护的完整解决方案,根据软件包中不同模块的重要程度及其安全等级,在用户局域网内部建立
    发表于 10-21 08:05 14次下载

    CAN总线与以太网络互连解决方案

    提出了一种基于双处理器的CAN现场总线与以太网络互连解决方案,详细介绍了该通信接口卡的软硬件设计,实现了生产管理层和智能装置之间基于IEC60870-5-101/104通信规约的数据通
    发表于 11-19 15:09 35次下载

    CAN总线防护电路及解决方案

    CAN总线防护电路及解决方案 CAN是控制器局域网络(Controller Area Network,
    发表于 11-20 09:15 1.8w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>防护电路及<b class='flag-5'>解决方案</b>

    CAN、LIN总线车载网络中的应用

    can总线在汽车网络中的应用虽效率显著单成本过高,LIN线恰好弥补这一不足,本文对比了CAN/LIN总线的性能特点,分别阐述了单
    发表于 06-09 17:34 108次下载
    <b class='flag-5'>CAN</b>、LIN<b class='flag-5'>总线</b>在<b class='flag-5'>车载</b><b class='flag-5'>网络</b>中的应用

    基于CAN总线的磁悬浮车车载信息采集与诊断系统

    特点,车载诊断网络系统的基本结构,基于CAN 总线车载诊断网络系统的硬件结构,完成了嵌入式环境
    发表于 04-18 10:28 7次下载

    基于LIN和CAN总线通信的车载串行网络系统设计

    目前,CAN(控制器区域网络)协议已成为车载网络(IVN)协议的标准。除了CAN网络,业界还开发
    发表于 11-01 15:34 2143次阅读

    就瑞典Kvaser的CAN总线通讯协议提出的解决方案

    CAN总线网络测试: --满足汽车电子产品不同CAN-BUS总线车型协议解析与逆向分析应用 汽车教学实训CAN模拟控制仿真: --
    发表于 03-06 14:28 1062次阅读

    车载以太网和CAN的区别

    车载以太网和CAN网络扑拓结构不同,车载以太网采用的是点对点的星型拓扑结构,而CAN总线采用的
    的头像 发表于 02-05 15:41 1w次阅读

    CAN 总线的系统级浪涌抑制解决方案

    CAN 总线的系统级浪涌抑制解决方案
    发表于 11-15 19:19 2次下载
    <b class='flag-5'>CAN</b> <b class='flag-5'>总线</b>的系统级浪涌抑制<b class='flag-5'>解决方案</b>

    CAN总线关闭故障的解决方案

    是一种较为严重的故障状态。本文将详细解释CAN总线关闭故障的含义、原因及解决方案,以期为相关技术人员提供参考。
    的头像 发表于 09-30 11:37 1412次阅读