从CAN网络学习Autosar通信
第六章总结:学习了如何使用工具的自动配置功能,位我们生成系统描述中部分ecu的BSW模块配置,但是自动配置的功能虽然为我们提供了极大的便利,我们仍然需要学会如何去自己建立BSW中关于通信的配置。
前言
有关通信部分的BSW配置,因为日后工作中,有一部分功能需要我们灵活地进行组织,相关的功能模块才能够去实现,所以后面的几个章节,为大家详细介绍,如何手工对这部分功能进行配置,进一步的帮助大家去理解,autosar标准是如何实现网络通信的以及它的配置逻辑是什么,如何帮助我们建立更为直观的网络配置流程。
缩写词
更多缩写词参考《AUTOSAR_CP_SWS_CANInterface》中的第二章节Acronyms and Abbreviations
CAN通信在AUTOSAR架构中的传输
can模块完成can通信收发过程,封装和解析。
首先是com层CAN Driver模块也是BSW的底层,canif,那么BSW层可能会用到PDUR和com模块,也经过RTE层,最终到达我们的ASW层的应用层SWC中去。
autosar中CAN通信通过不同L-PDU并且使用了PDU Rounter把这些功能模块通过I-PDU连接在一起,那么才能构建一个完整的can收发的过程。
autosar进行can收发的一个流程以及数据传递的方式。
首先为信号(可以理解装载的数据有效值,不只一个信号,将多个信号封装成一个报文)进行封装,完成封装功能的是com模块(接收和发送的处理),要知晓信号的位置和信号的排列方式(摩托罗拉或Inter)。
com模块把上层RTE层传来的信号装到PDU中,然后去触发发送。
组成:CanIf模块由CAN 硬件独立任务组成,属于相应ECU的CAN通信设备驱动。这些功能执行一次,为了基础CAN设备驱动仅专注于对相应的特定CAN硬件设备的访问和控制。
功能:CanIf主要实现PDUR和上层AUTOSAR协议栈的通信模块的控制流和数据流的请求,比如:发送请求处理、传输信息、接收标志、错误通知、CAN控制器的开始和结束,从而唤醒和参与网络中。
实现:CanIf主要负责将BSW层处理的PDU转换成LPDU后,通过CAN控制器,通过发送mail将PDU发送到CAN线上;也负责将CAN总线上的CAN消息转换成LPDU,然后再转换成PDU回馈到BSW层。主要功能便是完成众多的PDU与CAN mail之间的映射,需要配置HOH以及buffer以及它与CAN控制器之间的映射关系。
首先看一下CANif整个模块它的结构
第一个配置文件夹主要配置的是与CAN控制器相关的部分,
不同报文的数据传输通道不一样。
autosar 通信基本模块:初始化通道,收发设置,busoff设置。
上位机配置
手动配置的思路:第一步我们需要认识到autosar标准组建一个功能,是需要通过不同的模块来协作完成的,这些模块之间能通过pdu来相互传递数据和共用配合去完成一个功能,所以我们在进行can通信配置时,我们首先需要明确与can通信相关需要哪些模块特别是BSW层的模块,第二步我们需要分析完成CAN通信的配置,需要几个IPDU来连接这三个主要的模块,以发送为例:首先我们需要一个com的PDUR的IPU,第二个我们需要一个pdur到CANif的IPDU,这就意味着我们完成一个信号的发送。需要建立com到pdur,pdur到canif这两个IPDU,接下来我们进行具体的配置
建立CAN接收或发送的过程