| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 7、服务层(上) -> 正文阅读 |
|
[嵌入式]7、服务层(上) |
????????服务层是基础软件层的最高层,可以实现与应用层软件的关联。I/O信号可以通过ECU抽象层进行获取,另外服务层还提供:操作系统功能、汽车网络通信服务以及管理服务、内存服务、诊断服务,包含统一诊断服务(Unified Diagnostic Service,UDS)、错误记忆和故障处理、ECU状态和模式管理、逻辑与暂时程序流程监管(Watchdog管理)、加密等。 ????????服务层的主要任务是为应用程序、RTE以及基础软件模块提供最基本的服务。服务层的上层接口保证了微控制器和ECU硬件层的独立。 ????????按照服务对象的不同,服务层又可以分为三部分,即通信服务(Communication Service)、内存服务(Memory Service)、系统服务(System Service)。 1、通信服务????????通信服务是一组用于车辆网络通信(CAN,LIN,FlexRAY以及Ethernet)的模块,如下图所示。通信服务通过通信抽象(COM HW Abstr.)来与通信驱动程序(COmmunication Drivers)进行交互。其主要任务是为车辆通信网络和车载网络的诊断通信提供统一的接口,为网络管理提供统一的服务,以及从应用程序中隐藏相关协议和消息属性。从下图可以看出,通信服务的实现与单片机和ECU硬件无关,但有一部分取决于总线的类型。其上层接口与单片机、ECU硬件以及总线类型也无关。 ?1)通信协议栈--CAN????????CAN通信服务是一组用于车辆CAN通信系统的模块。其主要任务是为CAN通信网络提供一套统一的接口,同时从应用程序中隐藏相关的协议和消息属性。CAN通信协议栈支持传统的CAN通信以及CANFD通信。下图展示了CAN通信涉及的各个模块。 ?????????CAN通信服务具有以下属性: ????????CAN通信服务的实施与单片机和ECU硬件无关,但部分依赖于CAN通信本身; ?????AUTOSAR COM、通用网络管理接口(Generic NM Interface)以及诊断通信管理器(Diagnostic COM. Manager)对所有的车辆网络系统都是通用的,并且作为每个ECU的一个实例存在; ????????通用网络管理接口(Generic NM Interface)只包含一个调度程序,但在网关ECU(Gateway ECU)中,其也可以实现NM协调器的功能,即允许同步多个不同的网络(具有相同或不同的类型),对他们进行同步唤醒或者关闭; ????????CAN NM是针对特定CAN 网络的,并且通过车辆CAN 网络系统进行具体实现; ????????通信系统特定的CAN状态管理器能够管控与通信系统相关的启动和关闭功能。此外,它还可以控制COM的不同选项来实现发送PDU以及监控信号超时的功能。 2)通信协议栈扩展--J1939????????下图展示了J1939所包含的模块。J1939通信服务是对普通CAN协议栈的拓展,主要用在商用车上。其主要任务是提供J1939通信所需的协议服务,同时从应用程序中隐藏不需要的协议和消息属性。另外。在CAN通信协议栈有两个传输协议模块(CANTp和J1939Tp),它们可以交替使用或者在不同通道并行使用。通常情况下,CANTp主要用于ISO诊断(DCM)、标准CAN总线上的大型PDU传输等;而J1939Tp主要用于J1939诊断以及受J1939T驱动的CAN总线上的大型PDU传输。 ????????J1939通信服务具有以下属性:J1939通信服务的实施与单片机和ECU硬件无关,它是基于CAN通信;AUTOSAR COM、通用网络管理接口(Generic NM Interface)以及诊断通信管理器(Diagnostic Com. Manager)对所有的车辆网络系统都是通用的,并且作为每个ECU实例而存在;支持在配置阶段位置的动态帧表示符;J1939网络管理器管控每一个ECU的特定地址分配,但它不支持休眠/唤醒处理以及其他相关功能;提供J1939诊断和请求处理。 3)通信协议栈--LIN????????下图显示了LIN通信涉及的各个模块。LIN通信服务是一组用于车辆LIN通信系统的模块。其主要任务是为LIN通信网络提供一套统一的接口,同时从应用程序中隐藏协议内容和消息属性。 ????????LIN通信服务包括以下两个部分:兼容LIN2.1的通信协议栈:拥有用于LIN通信帧传输的调度表、用于诊断的传输协议以及唤醒和睡眠接口;底层LIN驱动程序:用于实施LIN通信协议以及适应特定的硬件,支持简单的UART通信硬件,同时也支持基于复杂帧的LIN通信硬件。 ?4)通信协议栈--FlexRay????????FlexRay通信服务是一组用于车辆FlexRay通信系统的模块。下图显示了FlexRay通信涉及的各个模块。其主要任务是为FlexRay通信网络提供一套统一的接口,同时从应用程序中隐藏协议内容和消息属性。在FlexRay通信协议栈中有两种传输协议模块(FrTp和FrArTp),它们可以交替使用。其中,FrTp对应着FlexRay ISO传输层;FrArTp对应FlexRay AUTOSAR传输层,并且对AUTOSAR 3.x提供总线兼容。 ????????FlexRay通信服务具有以下属性: ????????FlexRay通信服务的实施与单片机和ECU硬件无关,但部分依赖于FlexRay通信本身; ?????AUTOSAR COM、通用网络管理接口(Generic NM Interface)以及诊断通信管理器(Diagnostic COM. Manager)对所有的车辆网络系统都是通用的,并且作为每个ECU的一个实例存在; ????????通用网络管理接口(Generic NM Interface)只包含一个调度程序,并没有进一步的功能包括在内,在网关ECU(Gateway ECU)中,通用网络接口被网络管理协调器所替代,网络管理协调器具有对多个不同网络进行同步的功能,从而对它们进行同步唤醒或者关闭; ????????FlexRay NM是针对特定FlexRay 网络的,并且通过车辆FlexRay 网络系统进行具体实现; ????????通信系统特定的FlexRay状态管理器能够管控与通信系统相关的启动和关闭功能,下图中通过控制不同COM的不同选项来发送PDU以及监控信号的超时设定。 ?5)通信协议栈--TCP/IP????????TCP/IP通信服务是一组用于车辆TCP/IP通信系统的模块。下图显示了TCP/IP通信涉及的各个模块。其主要任务是为Ethernet通信网络提供一套统一的接口,同时从应用程序中隐藏协议内容和消息属性。 ????????TCP/IP通信服务具有以下属性:TCP/IP模块实现TCP/IP协议家族(TCP、UDP、IPv4、IPv6、ARP、ICMP、DHCP)的主要协议,并通过以太网提供的动态的、基于socket的通信;Socket适配器模块(Socket Adaptor,SoAd)是TCP/IP模块中的唯一上层模块。 ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:32:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |