论文部分内容阅读
摘 要:AUTOSAR是面向汽车领域的嵌入式软件体系结构标准,整体上分为应用层、基础软件层以及硬件层。本文从底层驱动接口标准、参数配置接口等方面研究符合AUTOSAR规范的底层驱动设计开发方法,并在微控制器TC1767上,设计和实现了CAN的驱动程序。
关键词:汽车开放系统架构;底层驱动接口规范;CAN;驱动设计
嵌入式系统开发成功的关键就在于快速高效地开发稳定的底层驱动程序,这就要求上层应用软件和操作系统具备良好的移植性。汽车开放系统架构(AUTomotive Open Systems Architecture,AUTOSAR)规范从系统整体结构入手,为各层制定接口标准,很好的解决了设备驱动与应用软件的松散耦合。本文结合AUTOSAR规范,探讨了符合AUTOSAR基础软件规范的嵌入式系统底层驱动开发问题。
一、 AUTOSAR規范
AUTOSAR是面向汽车领域的嵌入式软件体系结构标准。整个AUTOSAR体系架构是层次化、模块化的结构,整体上分为应用层、RTE 层和基础软件层。如图1所示,基础软件层包含系统服务、ECU 抽象层和微控制器抽象层。
应用层和基础软件层之间的通讯需要根据RTE来完成,服务层为应用层和基础软件层(BSW)之间提供基础服务。ECU抽象层是建立在ECU相关硬件的基础之上,如外围设备与ECU的连接方式。微控制器抽象层主要实现不同底层硬件接口的统一化,用于映射微控制器的功能和外围接口,它定义了IO驱动接口、通信接口和内存接,它的实现与微控制器硬件直接相关。
二、 CAN驱动设计与实现
1.文件结构
CAN应用程序接口大多是由CAN Driver给出,它能够完成ECU的CAN信息传递,能够为应用程序和CCP协议所使用。在本文的设计中,CAN驱动程序是由CAN模块初始化、CAN数据接收、CAN数据发送这三大模块组成。
参考AUTOSAR底层CAN模块驱动规范中的文件结构体系,本文设计了如图2所示的CAN驱动工程文件结构,该文件结构主要包括下述几个文件:头文件CAN.h包含CAN模块的API的声明;CAN.c文件中定义的变量、数据类型以及函数仅仅可以在CAN模块中被使用;CAN_Cfg.h、CAN_Inf.h 用于管理CAN模块的驱动程序。
CAN.c文件中包括CAN驱动程序的主要函数:CAN_Init、CAN_Trsmit、CAN_Reciv,主要实现CAN驱动的初始化、数据发送和接收功能。
2.CAN驱动设计
在使用CAN模块之前,都应当对其进行初始化操作,从而使其转为复位模式。CAN通信主要包括发送和接收两部分,本设计中CAN控制器能够通过接收中断的方法来接收CAN总线上发送的报文,因此必须在CAN控制器进行初始化过程中打开CAN接收中断。CAN部分模块参数配置说明如表1所示。
3.API定义
根据 AUTOSAR中MCU模块的API规范、具体ECU的硬件特性,本文灵活性定义出TC1767 CAN驱动程序API的函数原型,确定接口函数名称,返回类型以及形参类型。其中主要的API见表2。
三、 结语
文中介绍了AUTOSAR规范、CAN模块驱动的整体要求,给出了符合AUTOSAR规范的CAN驱动设计开发方法和过程。经验证,该方法确实高效可行。利用本文所述的方法可实现符合AUTOSAR规范的其他设备驱动。
参考文献:
[1] Beibei Shao, Hui Gong. The dual-core technology of embedded system [M]. Beijing: Beijing university of aeronautics and astronautics press, 2008.
[2] Chuan Feng, Jie Hu, Fuwu Yan, Chuanbao Liu. AUTOSAR standard CAN underlying communication study [J]. Journal of wuhan university of technology, 2013, 35 (6) : 842-855.
[3] Jianghai Qiu, Zhiguo Zhao. C Code Generation for S12 Micro Controller and Calibration Technique Based on CCP[J]. Machinery
关键词:汽车开放系统架构;底层驱动接口规范;CAN;驱动设计
嵌入式系统开发成功的关键就在于快速高效地开发稳定的底层驱动程序,这就要求上层应用软件和操作系统具备良好的移植性。汽车开放系统架构(AUTomotive Open Systems Architecture,AUTOSAR)规范从系统整体结构入手,为各层制定接口标准,很好的解决了设备驱动与应用软件的松散耦合。本文结合AUTOSAR规范,探讨了符合AUTOSAR基础软件规范的嵌入式系统底层驱动开发问题。
一、 AUTOSAR規范
AUTOSAR是面向汽车领域的嵌入式软件体系结构标准。整个AUTOSAR体系架构是层次化、模块化的结构,整体上分为应用层、RTE 层和基础软件层。如图1所示,基础软件层包含系统服务、ECU 抽象层和微控制器抽象层。
应用层和基础软件层之间的通讯需要根据RTE来完成,服务层为应用层和基础软件层(BSW)之间提供基础服务。ECU抽象层是建立在ECU相关硬件的基础之上,如外围设备与ECU的连接方式。微控制器抽象层主要实现不同底层硬件接口的统一化,用于映射微控制器的功能和外围接口,它定义了IO驱动接口、通信接口和内存接,它的实现与微控制器硬件直接相关。
二、 CAN驱动设计与实现
1.文件结构
CAN应用程序接口大多是由CAN Driver给出,它能够完成ECU的CAN信息传递,能够为应用程序和CCP协议所使用。在本文的设计中,CAN驱动程序是由CAN模块初始化、CAN数据接收、CAN数据发送这三大模块组成。
参考AUTOSAR底层CAN模块驱动规范中的文件结构体系,本文设计了如图2所示的CAN驱动工程文件结构,该文件结构主要包括下述几个文件:头文件CAN.h包含CAN模块的API的声明;CAN.c文件中定义的变量、数据类型以及函数仅仅可以在CAN模块中被使用;CAN_Cfg.h、CAN_Inf.h 用于管理CAN模块的驱动程序。
CAN.c文件中包括CAN驱动程序的主要函数:CAN_Init、CAN_Trsmit、CAN_Reciv,主要实现CAN驱动的初始化、数据发送和接收功能。
2.CAN驱动设计
在使用CAN模块之前,都应当对其进行初始化操作,从而使其转为复位模式。CAN通信主要包括发送和接收两部分,本设计中CAN控制器能够通过接收中断的方法来接收CAN总线上发送的报文,因此必须在CAN控制器进行初始化过程中打开CAN接收中断。CAN部分模块参数配置说明如表1所示。
3.API定义
根据 AUTOSAR中MCU模块的API规范、具体ECU的硬件特性,本文灵活性定义出TC1767 CAN驱动程序API的函数原型,确定接口函数名称,返回类型以及形参类型。其中主要的API见表2。
三、 结语
文中介绍了AUTOSAR规范、CAN模块驱动的整体要求,给出了符合AUTOSAR规范的CAN驱动设计开发方法和过程。经验证,该方法确实高效可行。利用本文所述的方法可实现符合AUTOSAR规范的其他设备驱动。
参考文献:
[1] Beibei Shao, Hui Gong. The dual-core technology of embedded system [M]. Beijing: Beijing university of aeronautics and astronautics press, 2008.
[2] Chuan Feng, Jie Hu, Fuwu Yan, Chuanbao Liu. AUTOSAR standard CAN underlying communication study [J]. Journal of wuhan university of technology, 2013, 35 (6) : 842-855.
[3] Jianghai Qiu, Zhiguo Zhao. C Code Generation for S12 Micro Controller and Calibration Technique Based on CCP[J]. Machinery