- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UDS协议基于AUTOSAR架构的UDS服务软件实现
图1 AUTOSAR架构通讯模块,引自[1]
本质上,AUTOSAR架构的通讯功能是基于OSI参考模型来构建,即CAN Driver和CAN Interface模块对应数据链路层(Data Link Layer),CAN Transport模块对应网络层(Network Layer),Dcm模块对应应用层(Application Layer),如下图2所示。
图2 引自[2]
其实这些AUTOSAR模块就是OSI相对应层的标准协议的软件实现,而这些模块的AUTOSAR文档基本可看成是软件的说明文档。下面就通过对这些AUTOSAR文档的梳理,来大致介绍UDS服务的接收请求,请求处理和发送响应过程。
1
接收请求
基于CAN总线来实现UDS服务通讯,是指使用CAN ID进行接收和发送。一般使用2个CAN ID进行接收,一个对应物理寻址,另一个对应功能寻址;而发送则使用一个CAN ID即可。这里可先回顾下CAN通讯系列:menghuyouyou:CAN通讯系列--AUTOSAR架构的CAN通讯5 对于接收部分,不管是CAN通讯还是UDS服务都是在CAN Driver去访问硬件(寄存器),读取数据,然后通知CAN Interface。对于CAN通讯,再向上经PduR路由到COM模块;而UDS服务是先向上到CanTp处理,再向上经PduR路由到DCM模块,如下图3所示。
图3 UDS服务的接收请求过程
具体过程描述如下:
1.轮询模式时,BSW调度器周期性调用CAN Driver模块的Can_MainFunction_Read函数;
2.CAN Driver模块的Can_MainFunction_Read函数将访问CAN Controller(硬件)的寄存器,比如仲裁寄存器,数据寄存器和数据长度寄存器,读取这些寄存器的数据;
3.数据读取结束后,这时再调用CAN Interface模块的CanIf_RxIndication函数,这样数据从CAN Driver模块传给了上一层的CAN Interface模块;
4.CAN Interface模块识别到数据的CAN ID为UDS服务,则调用CanTp模块的CanTp_RxIndication函数,将数据传到CanTp模块;
5.CanTp模块接收数据后,先通过N_PCI类型来判断单帧传输(SF?)还是多帧传输(FF?CF?FC?);然后根据相应的类型去处理:(这里的依据是ISO15765-2协议)
当接收到单帧(SF),需要确认DCM模块接收数据的buffer是否够用,够用则存入数据,再经PduR路由,调用Dcm_TpRxIndicaiton通知DCM模块。
当接收到首帧(FF),需要先确认DCM模块发送数据的buffer是否够用,再确定流控帧的BS和STmin,最后直接请求发送流控帧。(注意:接收首帧后是不需要DCM模块处理,而是直接由CanTp模块来处理,因为接收首帧意味着要回流控帧,告诉发送方要怎么回续帧,属于网络层的内容)
当接收到续帧(CF),可能存在如下3种情况:
当接收到流控帧(FC),需要根据流控状态来确定是否继续发送续帧,当继续发送续帧时,也需要根据流控帧数据来更新续帧的发送配置(BS和STmin)。
6. DCM模块接收到CanTP的通知,会去判断请求是否允许。
注:CanTp模块其实应用接收数据做了很多操作,并非图3简单的示意向上通知,具体会在下篇文章进行介绍。
2?
请求处理
当DCM模块允许处理请求后,当BSW调度器周期性调用Dcm_Mainfunction函数进行请求处理,这部分处理的内容其实就是对应的ISO14229协议。比如接收的数据是10 03,那么Dcm_Mainfunction就会去调用$10服务的相应函数,最终回复正响应10 03 00 32 01 F4,还是负响应 7F 10 xx。若参考AUTOSAR文档,其架构如下图4所示:
图4 DCM模块组成,引自[3]
这部分内容仅先了解它的功能是干什么的,不做具体介绍,将会在后面的文章展开。
3?
发送响应
当DCM模块处理好了请求,总的来说,分为两个关键步骤:一个是DCM模块经PduR路由,将调用CanTp_Transmit函数更新网络层的配置;另一个是将通过BSW调度器调用CanTp模块的CanTp_MainFunction函数来发送数据。
图5 UDS服务的请求处理和响应发送过程
图5描述了数据发送的具体过程,即:
1.BSW调度器周期性调用DCM模块的Dcm_MainFunction函数,处理请求,响应数据暂存入DCM模块发送的buffer;
2.DCM模块处理完请求后将调用PduR模块的PduR_DcmTransmit函数,PduR模块经路由
您可能关注的文档
最近下载
- 《开屏的孔雀》少儿美术PPT绘画课件创意教程教案.pptx VIP
- 四张纸-如何做好优莎纳事业.doc VIP
- sucgodwork天工软件2017 godwork_说明eos操作手册20170821.pdf VIP
- Unit 3 Developing ideas Just A Brother课件--高中英语外研版必修第一册.pptx VIP
- 管道介质色标.doc VIP
- 《室内天麻种植技术》(室内怎样种植天麻).pdf VIP
- 专精特新企业培育计划.docx VIP
- 2025年骨干教师笔试试题及答.docx VIP
- 安全防范系统安装维护员试卷及答案.doc VIP
- 慢性盆腔炎治疗进展及护理.doc VIP
原创力文档


文档评论(0)