1. AUTOSAR概念

关于AUTOSAR概念之类的内容不在此展开,权威资料请参见AUTOSAR官网。

引自:AUTOSAR
AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development partnership of vehicle manufacturers, suppliers, service providers and companies from the automotive electronics, semiconductor and software industry.
宏观地介绍可参见:autosar.org/fileadmin/A

2. AUTOSAR软件分层架构

AUTOSAR架构在三个软件层之间划分出最高的抽象层:应用层(Application Layer, ASW),运行时环境(Runtime Environment, RTE)和底层软件(Basic Software, BSW),三者均在微控制器上运行。这里我们主要关注的是底层软件,它进一步分层为:服务层,ECU抽象层,微控制器抽象层和复杂驱动,如图1所示。

图1 AUTOSAR架构,引自[1]

每层按功能组继续划分,如图2所示。

图2 基于功能划分的AUTOSAR架构,引自[1]

本系列文章的主题是CAN通讯,即属于通讯功能,对该功能再按模块细分,如下图3所示。其中CAN通讯的核心模块有4个:COM模块,PDU Router模块, CAN Interface模块和CAN Driver模块。

图3 AUTOSAR通讯模块,引自[1]

3. CAN接收

回顾之前文章 menghuyouyou:CAN通讯系列--CAN总线基础3 ,根据ISO 11898-1标准可知,CAN接收功能需要使用通知(Indication)服务,那么怎么基于AUTOSAR架构实现呢?总的来说,AUTOSAR架构的CAN接收的软件实现流程图如下图4所示:

图4 CAN接收的流程图

具体过程描述如下:

  1. BSW调度器周期性调用CAN Driver模块的Can_MainFunction_Read函数;

  2. CAN Driver模块的Can_MainFunction_Read函数将访问CanController(硬件)的寄存器,如前面文章所述的仲裁寄存器,数据寄存器和数据长度寄存器,并读取这些寄存器的数据;

  3. 数据读取结束后,这时继续调用CAN Interface模块的CanIf_RxIndication函数,这样数据从CAN Driver模块传给了上一层的CAN Interface模块;

  4. CAN Interface模块再调用PduR模块的PduR_RxIndication函数,将数据传到PduR模块;

  5. PduR模块路由到Com模块,调用Com_RxIndication函数,将数据传到Com模块,Com模块将会把数据存入其缓存,供应用层软件读取使用。

上述第2步为什么需要读取仲裁寄存器,数据寄存器和数据长度寄存器?这是因为ISO 11898-1标准规定了LLC数据帧的格式(id,数据长度和数据3段),当然还需要根据对应的芯片手册定义来访问其他的寄存器,最终保证读取数据的有效性。

另外再根据ISO 11898-1标准说明本文及之后内容,如下图5的红线之上部分。上述的4个核心模块,除了CAN Driver能够访问或配置硬件,其他模块均不能。它们之间将通过数据协议单元(PDU)形式实现数据传输,这些内容后面文章会进行详细介绍。

图5 协议层交互,引自ISO11898-1

4. CAN发送

CAN发送功能需使用请求(Request)服务和确认(Comfirmation)服务,AUTOSAR架构的CAN发送功能如下图6、7所示。

图6 CAN发送的流程图

图6描述了数据发送的具体过程,即:

  1. BSW调度器周期性调用Com模块的Com_MainFunction_Tx函数,Com模块将从其缓存器中读取需发送的数据;

  2. Com模块的Com_MainFunction_Tx函数将调用PduR模块的PduR_ComTransmit函数,将数据传给PduR模块;

  3. PduR模块路由到CAN Interface模块,调用CanIf_Transmit函数,这样数据从PduR模块传给了下层的CAN Interface模块;

  4. CAN Interface模块再调用Can Driver模块的Can_Write函数,将数据写入相应的寄存器;

  5. 与CAN接收功能一样,Can_Write函数将访问仲裁,数据长度和数据寄存器,将数据写入。

图7描述了数据发送后的确认过程,即:

  1. BSW调度器周期性调用CAN Driver模块的Can_MainFunction_Write函数;

  2. CAN Driver模块的Can_MainFunction_Write函数将访问CanController(硬件)有关寄存器,读取有关数据供向上层确认;

  3. 数据读取结束后,这时继续调用CAN Interface模块的CanIf_TxComfirmation函数,这样数据从CAN Driver模块传给了上层的CAN Interface模块;

  4. CAN Interface模块再调用PduR模块的PduR_TxConfirmation函数,将数据传到PduR模块;

  5. PduR模块路由到Com模块,调用Com_TxConfirmation函数,确认发送状态。

图7 CAN发送确认的流程图

5. 小结

CAN发送和接收暂时留下了非常多的概念和内容未做解释,本文主要目的在于让大家很迅速地了解AUTOSAR架构下的CAN接收与发送的软件实现过程,先有一个大致的理解就行。

当然对于没有接触过AUTOSAR知识的人来说很陌生,上述内容很抽象,很难懂。因为这些内容都来源于下图8所示的AUTOSAR文档,所以想要掌握AUTOSAR架构的CAN通讯,则不得不去认真研读这些文档,当然最好能结合实际的项目代码或者能使用AUTOSAR配置工具。

图8 CAN通讯有关的AUTOSAR文档

为了让大家明白上述内容,了解这些AUTOSAR文档,接下来的文章将会借助这些文档尽可能详细地介绍AUTOSAR的CAN通讯软件实现。


END



发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 6⃣‮庭家与情爱‬上的‮當求需‬你要‮另见去‬一半的父母時,不管‮是你‬阿猫阿狗,你要嫁‮家人‬或是娶人家,得先‮对让‬方父母看了滿意吧,所以面‮面对‬的接触一
  • 4/通过这次庭审rng自己的举证,发现了不少曾经我还不知道的合同细节和猫腻。4/通过这次庭审rng自己的举证,发现了不少曾经我还不知道的合同细节和猫腻。
  • 面对层出不穷的营销短信,网友们调侃道:“今天收到的促销短信保守估计上百条”“‘双11’也‘内卷’了吗,今天被短信轰炸的同时竟然还接到了电话”……天津的唐女士经营
  • ”李玉新强调,我们要遵循市场的发展规律做事情,现在重要的是线下流量的数字化,先提升整个产业上下游的运行效率从而能提升客户的容纳类型和数量。”第二,从线上流量发展
  • 还有自从我和我妈说了有朋友纹眉很自然 她昨晚看着我说你也去纹眉吧[疑问][疑问]该梦重现了我的眉毛焦绿症[摊手][摊手])另一个梦是偶然见到了姥爷 精神很好 梦
  • 我已不会对你哽咽 最后的安慰也省略 也聊了一整夜 连咖啡也换了好几杯 你已不会对我欠缺 难过似乎也有一些 回过头一睁眼 连空气也变得有点咸 我们也学会慢慢的慢慢
  • 在社会王~王涛,涛哥 邀请之下,来到锦州见识了其东北第一潮品零售连锁企业的线下门店,我相信内容O2O的合作时代,在未来有无比广阔的想象空间 【京东力拓无界零售
  • 两人虽然是初次合作,但女神甜美慵懒的声线与暖男温柔磁性的嗓音一拍即合,共同谱出一曲轻快活泼的歌曲,让人听着都不禁嘴角上扬呢~[心]❤Dior 迪奥❤新款,时尚显
  • #野史趣闻##新星v计划# 【男儿有泪不轻弹,圣人孔子为什么会三次流泪?】#野史##v光新星# “男儿有泪不轻弹”大概是中国男人受到的第一性别教育。可最近读《
  • 目睹了这样的他之后,那炽烈燃烧的旺盛生命力仿佛感染了你,不想为他哭泣,只想为他报仇。若是读懂人生,就会让生命在每一个春天绽放,带着孤芳自赏的清凉,在一米阳光里芬
  • 可是老伴儿的倔脾气也上来了,说自己辛苦大半辈子,凭什么连自己买的大房子都住不上,还要受他们小辈的气。我想劝老伴儿,不然就顺了孩子们的心,让他们高高兴兴把婚结了,
  • #虞书欣[超话]#❤️ #虞书欣苍兰诀# #虞书欣小兰花# 晚安啦鱼丝们[月亮]鱼丝们都进️的群了吗!#EXO[超话]#[心]#EXOK[超话]#220622
  • 恶虽小,但须防其毁人;善虽小,但知其能助人。劝人为善,劝人去恶,法有万千,当因人而异。
  • 最近學了人類圖之後我把過去遇過的人有出生信息的都查詢了一遍,還有我23嵗在一個地方上班時坐在他開的車裏,他在車裏就開始怼我,說我太小,找我毛病的人有58-18迴
  • 产业园由老旧厂房改建而成,徜徉其中既能感受到古朴的工业风,也能领略到时尚的文创风,园区的创意小品很吸睛,吸引着两岸嘉宾纷纷拍照打卡。[羞嗒嗒]奢华亲子主题别墅即
  • 在前品牌也经历了很多假大空 所以我很理解她当时说“这次不成功的话我可能要放下微/商了”️ 我没多说什么 只是一次次一针见血地指导她!想要那种“这就是我一直等的人
  • 附上小青表情包哈哈哈哈像极了怨种闺蜜#这就是街舞5[超话]# #王一博这就是街舞5# 遇见王一博,像是修仙[awsl]每一次他的舞台一出,就像升仙渡劫[偷笑]渡
  • 云南旅游攻略8天穷游党l纯干货分享|||来云南应该玩哪些景点吃什么美食作为一个云南本地人,今天给你们推荐云南值得玩的景点之和值得吃的美食看完这篇就够啦✨-精华景
  • フィギュアからアパレル、伝統工芸品、モータースポーツまで、作品世界を飛び出して様々な分野に進出した「モノ」と「コト」を通じて、エヴァンゲリオンシリーズの魅力に迫
  • 作为全国首批自助开通异地就医直接结算试点城市,市医保局积极协调定点医药机构、信息系统开发商等单位,克服时间紧、任务重及新冠疫情等不利因素,现已开通普通门诊跨省联