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

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

3天内不再提示

鉴源论坛 · 观模丨基于AUTOSAR的TTCAN通信协议的形式化建模与分析

上海控安 来源:上海控安 作者:上海控安 2023-01-04 16:12 次阅读

作者 |郭建上海控安可信软件创新研究院特聘专家

版块 |鉴源论坛 · 观模

汽车工业发展至今,硬件方面如车身材料、发动机等已无太大升值空间,而汽车电子则有着广阔的前景。为此各大汽车厂商对汽车电子的研究都投入了大量的人力财力。2003 年,汽车开放系统架构AUTOSAR(AUTomotive Open SystemArchitecture)由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,主要目标是为汽车软件体系架构建立一个开放的、标准化工业标准,以同时满足供应商和生产商之间的需求。AUTOSAR 通过控制复杂度不断增长的汽车电子体系架构,将软件从硬件中分离开来,允许软件的重用,从而减少二次开发和验证的成本。AUTOSAR包括了汽车电子功能划分、统一软件架构和软件开发过程等整套基于汽车电子开发的方法学。CAN、TTCAN、LIN、FlexRay等是可用于汽车内部网络通信的协议。在现阶段CAN及TTCAN协议因其稳定可靠、结构简单、通信灵活等特点而最常被使用。基于AUTOSAR的网络协议规范已有很多被发布。如基于AUTOSAR的CAN协议、基于AUTOSAR的TTCAN协议等,这些规范详细阐述了在AUTOSAR规范下该网络协议的驱动及接口规范,隐藏了底层网络通信的细节,向上层应用软件提供调用底层服务的接口。通过这种方式使软硬件分离,使上层软件的开发更为灵活,对功能的扩充更方便,缩短了开发周期。

本文针对AUTOSAR的TTCAN协议进行研究,并用Timed CSP(Timed Communication Sequential Processes)形式化语言对其进行建模,通过LTL(linear temporal logic)及断言(Assertion)对TTCAN模型需要满足的性质进行描述,运用模型检验工具PAT完成了对模型的验证。

01AUTOSAR体系架构

AUTOSAR的主要目标是为汽车电子创建一个开放的、标准化的软件架构,这个架构有利于车辆电子系统软件的交换与更新,并为高效管理愈来愈复杂的车辆电子软件系统提供了一个基础。此外,AUTOSAR在确保产品及服务质量的同时,提高了产品研发的效率。AUTOSAR定义了设计汽车系统的方法和描述它们的软件的架构方式。图 1 展示了AUTOSAR软件分层体系架构。

poYBAGOucziALCZAAABdH7BCHaE467.png

图1AUTOSAR软件分层体系架构

应用层(application layer)

包含了实现所需功能的软件组件SWC(SoftWare Component)的规约,它形成了OEM(Original Equipment Manufacturer)厂商之间的竞争基础。

运行时环境层 RTE(RunTime Environment)

为应用软件提供了通信服务,它使 AUTOSAR的软件组件独立于特定的ECU。RTE是虚拟功能总线VFB(Virtual Function Bus)的一个实现,不指定用来交换数据的通信技术。因此,AUTOSAR可用LIN、CAN、TTCAN或者FlexRay等多种通信平台。用VFB定义软件组件的数据交换可使它们独立于底层的硬件平台,此外,可以使注意力集中到软件组件之间的通信而不用关心数据是否在ECU 内部或ECU之间传输。

基础软件层BSW(Basic SoftWare)

由服务层、ECU抽象层、复杂驱动层和MCU(Micro Controller Unit)抽象层等子层组成。服务层处于基础软件层的顶层, 包含了操作系统、汽车网络通信、管理服务、内存服务和诊断服务。ECU 抽象层包含了输入输出(I/O)和通信硬件抽象,它使更高的软件层独立于ECU 硬件组件。复杂驱动层是硬件和 RTE 之间的桥梁,它提供与AUTOSAR无关的、专用的功能,如设备驱动等。MCU抽象层处于基础软件层的最底层,它包含了直接访问的微控制器内部设备的驱动和内存映射的微控制器外部设备的驱动。

02AUTOSAR的TTCAN协议

基于AUTOSAR的网络通信协议位于体系架构的基础软件层中,AUTOSAR为其提供接口的规范。TTCAN协议在AUTOSAR基础软件层的接口,位于通信硬件抽象层和通信服务层之间,是为上层通信层提供 TTCAN 协议驱动服务的接口。图 2 是AUTOSAR规范下的 TTCAN协议层次的架构。TTCAN协议接口模块是CAN接口模块的扩展,它包含了TTCAN协议所有与硬件独立的任务。

poYBAGOuc26ADCtpAADMVGjjujw010.png

图2AUTOSAR规范下的TTCAN协议层次架构

TTCAN协议接口主要完成上层通信层对控制流和数据流的需求,比如:消息传输需求、消息传输确认、消息接收指示、出错通知等。TTCAN协议接口的一个典型流程是,接收来自上层通信层的消息请求,通过TTCAN协议驱动传输给 TTCAN协议控制器完成消息的传输,然后向上层通信层返回消息成功传输的确认。TTCAN协议接口为TTCAN协议网络的控制和服务提供了访问低层服务的通信抽象,通过接口将TTCAN协议状态,管理器的状态变化请求推送到底层的TTCAN协议驱动,然后底层事件再通过接口推送到高层相关的网络管理模块。

03基于AUTOSAR的TTCAN协议的形式化建模与分析

AUTOSAR规范下TTCAN协议的抽象主要为三个层次。

一是应用层

,即软件组件层,包含了各种软件组件消息传输请求的序列,对应于 TTCAN 协议的系统矩阵。

二是运行时环境层

,对上层应用层隐藏了下层的通信细节,实现虚拟功能总线,是对TTCAN协议通信通道的抽象。

三是基础软件层

,即TTCAN通信网络所处位置,完成TTCAN协议基本的通信功能,即节点消息传输、总线仲裁和错误处理功能。

pYYBAGOudBuAHyvvAAAzJ3NYR-M035.png

图3基于AUTOSAR的TTCAN协议抽象

图3描述了基于AUTOSAR的TTCAN协议抽象,运行时环境层可以接收来自于软件组件的任何数据请求,通过内部的接口调用底层基础软件的通信功能,完成消息的传输。在AUTOSAR软件体系架构中,位于运行时环境层之下的基础软件层对于应用层来说是不可见的,因此,基础软件层可采用不同的通信协议来完成通信功能。基于AUTOSAR的TTCAN协议则是在基础软件层中采用了TTCAN协议来进行消息的传输。

pYYBAGOudFuAaLUIAAA6Rayo_tU233.png

图4TTCAN协议与基于AUTOSAR的TTCAN协议的关系

图4简单描述了这两者之间的关系。AUTOSAR规范中定义了一系列TTCAN协议的接口,通过对这些接口的实现完成TTCAN协议的各种功能。本文主要研究TTCAN协议中节点消息传输、总线仲裁和错误处理的功能如何在AUTOSAR规范下实现,并可通过定义的接口进行调用,从而完成消息的传输。

对TTCAN协议和基于AUTOSAR的TTCAN协议进行分析、形式化建模和验证的研究框架如图 5 所示。该框架主要分为三个阶段:

pYYBAGOudH6AMNnWAADho6LlJQA331.png

图5基于AUTOSAR的TTCAN协议建模与分析框架

第一阶段

对TTCAN协议的需求进行分析,对于消息传输相关的四个主要部分系统矩阵、节点消息传输、总线仲裁及错误处理进行抽象,并分析这四个部分之间的关系以及消息的传输过程。分别对这四个部分进行形式化的描述,以Timed CSP建立模型。同时,在这一阶段,分析并提取TTCAN协议中死锁、安全性、不变性及公平性等相关的性质,以LTL公式及断言的形式描述并加以文字注释说明。

第二阶段

根据AUTOSAR软件体系架构和基于AUTOSAR的TTCAN协议规范,在TTCAN模型的基础上,将其迁移至AUTOSAR,这一过程关键之处在于明确TTCAN模型各功能模块应处于AUTOSAR体系结构的哪一层次。然后在分析的基础上,以Timed CSP建立基于AUTOSAR的TTCAN层次模型,该模型包含了软件组件、运行时环境和基础软件三个层次。其中,软件组件实现TTCAN协议模型中系统矩阵的功能,为系统提供消息传输请求的列表;运行时环境为上下层之间的通信提供了虚拟功能总线,包含了多种接口以供上层模块调用底层通信服务,是对TTCAN协议模型通信通道的抽象;基础软件包含了TTCAN协议模型中的节点消息传输、总线仲裁和错误处理模块,提供消息传输的服务。最后对模型进行性质的提取,提取的性质不仅需要满足TTCAN协议的需求,还要满足AUTOSAR规范的需求。

第三阶段

是模型的实现和性质的验证阶段。模型检测工具PAT支持并发实时系统建模、模拟以及推理,支持Timed CSP建模语言,同时也支持LTL公式及断言描述性质。因此,以PAT实现模型,使模型能得到准确的描述。建模实现的同时,对前两个阶段中提取的性质在工具PAT中进行验证,并对验证结果进行分析。图6所示的是在PAT上模型实现的部分代码,图7给出了PAT对模型的验证结果。

pYYBAGOudKSADb1bAAlBKjqmpYA741.png

图6模型在PAT中的实现

poYBAGOudLqAD72iAAZrgKotBJA864.png

图7基于AUTOSAR的TTCAN协议模型性质验证结果

04小结

AUTOSAR规范的提出为高效管理愈来愈复杂的汽车电子提供了一个基础。AUTOSAR通信栈位于运行时环境(RTE)与微控制器抽象层(MCAL)之间,其简化ECU之间的通信服务,实现不同类型或速率总线间的数据交互,并对应用层隐藏了与总线相关的协议和报文的属性。本文针对AUTOSAR 的TTCAN通信协议进行了研究,实现其形式化建模与分析。

审核编辑黄昊宇

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

    关注

    18

    文章

    5725

    浏览量

    134569
  • 汽车
    +关注

    关注

    12

    文章

    3034

    浏览量

    36235
收藏 人收藏

    评论

    相关推荐

    UART串口通信协议是什么?

    ,广泛应用于嵌入式领域。 在UART串口通信协议中,数据以字节的形式进行传输。发送和接收端的通信流程如下: 1、通信波特率设置:发送端和接收端需要
    的头像 发表于 03-19 17:26 450次阅读

    有关通信协议时一些问题?

    抗干扰就加强滤波,要求输入信号隔离就加隔离芯片或其他方式,总之这一段电路不应该太夏杂吧,远不如芯片内部的信号处理电路?最后请推荐几本有关串行通信协议方面硬件方面的书,还有一个问题,这些通信协议的设计工作应该在哪些课程或哪些书上?
    发表于 01-14 00:58

    从Profinet到CCLink:工业通信协议的转换实践

    需要将一种协议转换为另一种协议。某些设备可能无法直接与使用不同协议的设备通信,因此需要进行协议转换。 标准
    发表于 12-15 14:26

    IIC同步通信协议#工作原理大揭秘

    通信协议
    油泼辣子
    发布于 :2023年11月16日 17:26:50

    汽车总线系统通信协议分析与比较

    电子发烧友网站提供《汽车总线系统通信协议分析与比较.doc》资料免费下载
    发表于 10-09 15:10 0次下载
    汽车总线系统<b class='flag-5'>通信协议</b><b class='flag-5'>分析</b>与比较

    AUTOSAR通信协议栈配置详解

    通讯协议栈几乎是CP AUTOSAR中最庞杂的一块。由于其涉及的模块比较多(仅实现CAN信号的收发就需要ECUC/CAN/CANIF/CANTP/PDUR/COM/XCP这么多模块的协作!),且名词
    的头像 发表于 09-21 10:02 2612次阅读
    <b class='flag-5'>AUTOSAR</b>中<b class='flag-5'>通信协议</b>栈配置详解

    浅谈Modbus通信协议

    Modbus通信协议是一种工业现场总线协议标准,常用的Modbus协议有以下三种类型:Modbus TCP、Modbus RTU、Modbus ASCll。
    发表于 09-20 15:56 1172次阅读
    浅谈Modbus<b class='flag-5'>通信协议</b>

    物联网通信协议

    • MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)• 轻量级通信协议• 适用资源受限设备,低带宽,高延时,不稳定网络中进行消息传输• 运行
    发表于 09-11 06:18

    can总线的通信协议有哪些 CAN接口保护及工作原理

    CAN总线(Controller Area Network)是一种广泛应用于汽车、工业自动化和其他领域的串行通信协议。以下是几种常见的CAN总线通信协议
    的头像 发表于 08-18 14:40 1.4w次阅读
    can总线的<b class='flag-5'>通信协议</b>有哪些 CAN接口保护及工作原理

    形式化方法的工业应用:轨交领域

    文将聚焦于轨交领域,从领域专用的需求撰写与分析工具Prema入手,介绍形式化方法在工业中的实际应用。
    的头像 发表于 08-08 15:20 336次阅读
    <b class='flag-5'>形式化</b>方法的工业应用:轨交领域

    IP地址、端口号、通信协议的相关知识 TCP和UDP通信协议简述

    网络编程有三个要素,分别是IP地址、端口号和通信协议。本文主要讲述的是TCP与UDP这两种通信协议,以及编程的实现。首先,我们需要了解一下IP地址、端口号、通信协议的相关知识。
    的头像 发表于 07-18 11:20 1511次阅读
    IP地址、端口号、<b class='flag-5'>通信协议</b>的相关知识 TCP和UDP<b class='flag-5'>通信协议</b>简述

    plc通信协议 plc通信原理

    Modbus协议是一种应用层协议,建立在串口通信协议之上,常用于工业控制系统中。Modbus协议定义了一系列数据传输规则和通信指令,包括读写
    的头像 发表于 06-26 17:52 2922次阅读

    网络传输协议有几种 通信协议原理

     通信协议是指一组规则和约定,用于在通信双方之间进行数据交换和传输,确保数据能够准确、可靠地传输和解析。
    发表于 06-26 17:42 1347次阅读

    CAN总线通信协议的基础知识

    本文将介绍CAN总线通信协议的基础知识,目前的内容仅为通用的协议部分,暂不涉及具体的外设模块的用法。研究通信协议的具体内容,主要是看建立通信的物理环境(信号与总线拓扑结构),
    的头像 发表于 06-16 10:58 5032次阅读
    CAN总线<b class='flag-5'>通信协议</b>的基础知识

    配置芯片寄存器的SPI通信协议的verilog实现

    最近正在调试一个芯片的评估板,其中配置寄存器使用的是SPI通信协议。其实很多芯片寄存器的配置都用到了SPI通信协议,我们今天就需要实现这个SPI通信协议
    的头像 发表于 06-16 09:50 1340次阅读
    配置芯片寄存器的SPI<b class='flag-5'>通信协议</b>的verilog实现