AutoSAR系列讲解(入门篇)4.3-BSW的Communication功能

雨燕双飞 提交于 2019-11-27 02:42:47

AutoSAR系列讲解(入门篇)4.3-BSW的Communication功能

BSW的Communication功能

->返回总目录<-

一、架构与术语解释

BSW中以后每一节我都会放上一张模块图,所以就先上图:
由于汽车上一般都使用CAN总线,图中的bus大家可以就当成CAN来看待,如果使用的是LIN或者其他的,也相应的换成其总线看待就行。后续在实践篇中将会有一节来做communication的实验,但是基础内容大家也都需要掌握理解才行,不然到了后来实验,可能大家都不知道博主在干啥(虽然我后续尽量讲的详细一点吧)。所以BSW中的这些章节可能较为苦涩难懂,但是希望大家能耐着性子先浏览一遍先,在脑子中有个大致的印象,后续实验课再回头来看,就会轻松不少
在这里插入图片描述
模块详解:

  • COM: 从应用层传下来数据首先就进入这里,应用层无需关心收发的数据是通过什么总线传输的,应用只需要将它传输给COM即可。这些收发的数据是由用户的DBC文件或者ARXML文件已经定义好了的(这些文件一般OEM整车厂在整车设计的时候就做出来了,里面有总线的网络拓扑图,每个传输的数据应该走什么总线都有定义,所以应用层是无需关心的,只需要优雅的将数据和COM交换即可)。同样,COM上传的数据也是很单纯的数据,里面没有这个数据是什么总线上传的这样无意义的信息,应用层关心的是这个数据的实际意义和数据大小。所以COM主要就起了一个信号接口和网关的作用
  • PDU Router: PDU——Protocol Data Unit,协议数据单元。这个模块的功能就是将COM下发的信号数据分配到相应的协议总线上去;或者将不同的协议变成同一信号上传给COM。
  • IPDU Mux: 用于解析一些特殊的协议,比如CAN FD或者用户自定义的一些协议。就是起了一个统一CAN ID,不同信号Layout的作用
  • CAN Tp: 分包数据传输与错误检测
  • CAN Interface: 与硬件已经无关了,与硬件相关的是下面两个Driver做的工作,这个Interface主要可以配置收发队列;组帧(FlexRay);管理时间触发总线的调度表(LIN, FlexRay)
  • CAN Driver: 就是MCAL中对主芯片上CAN模块的驱动封装
  • Trcv Driver: Trcv——Transceiver的缩写,就是收发器驱动的意思。如果是外置CAN收发器,这里就要用到Trcv Driver这个驱动,而非CAN Driver。

感觉这么简单的罗列一下上面的术语,可能大家还是看不懂,下面就简单的发送和接收流程做一个解释(CAN这东西太庞大,这里一时也讲不完,就拿最简单的方式来说明一下)

二、发送流程

在这里插入图片描述

  1. 应用层Send一个数据进COM
  2. COM写信号进PDU Buffer中
  3. PDU被PDU Router立刻发送或按周期发送(每个PDU都有一个独立的ID),之后PDU Router辨认总线种类,并把PDU发向不同的下级模块
  4. Interface根据不同的通道,把报文写入不同的队列
  5. Driver根据报文的优先级立刻发送报文

三、接收流程

在这里插入图片描述
中断或者循环接收(这里假设为中断):

  1. 硬件接收报文
  2. 由Driver发出Rx中断(函数),之后通过RxIndication,数据被传递到Interface
  3. 传递到PDU Router
  4. 传递到COM(如果SWCs使用Data ReceptionTrigger,就通知RTE;否则暂存到Buffer中)
  5. 信号被RTE读取,然后应用层读取

附:返回总目录的传送门如下
->返回总目录<-

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!