版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汽车软件技术,汽车电器与电子技术 华中科技大学 刘伦洪,主要内容,实时操作系统RTOS 嵌入式系统 OSEK/VDX,引言,微控制器在汽车上的应用现状 厂家从多,型号众多 内部总线宽度:8、16、32、64bit 工作频率:32KHz几十MHz 控制器软件现状 程序语言:汇编(种类多)、C(特殊定义致兼容性差)、混合语言 软件架构:硬件驱动、底层内核直至上层应用全部独立定制; 因此导致: 可移植性差:不同型号微控制器平台的程序不能共用。 可维护性差:硬件驱动、编程风格风格偏于技巧。 可靠性差:靠程序员经验保证。,汇编例程,8x51单片机汇编程序: BCDA 功能:多字节BCD码加法 ;入口条件
2、:字节数在R7中,被加数在R0中,加数在R1中。 ;出口信息:和在R0中,最高位进位在CY中。 ;影响资源:PSW、A、R2 堆栈需求: 2字节 BCDA:MOVA,R7 ;取字节数至R2中 MOVR2,A ADDA,R0 ;初始化数据指针 MOVR0,A MOVA,R2 ADDA,R1 MOVR1,A CLRC BCD1:DECR0 ;调整数据指针 DECR1 MOVA,R0 ADDCA,R1 ;按字节相加 DAA;十进制调整 MOVR0,A ;和存回R0中 DJNZR2,BCD1 ;处理完所有字节 RET,Freescale单片机汇编程序: XDEF Entry ORG $100 data
3、: DS.B 1 MyCode: SECTION Entry: LDS #$AFE ; init Stack Pointer LDAA #$01 main: STAA data BRA main,C语言例子,void port_init(void) PORTA = 0 xff; DDRA = 0 x00; PORTB = 0 xff; DDRB = 0 x00; /call this routine to initialize all peripherals void init_devices(void) /stop errant interrupts until set up CLI();
4、/disable all interrupts XMCRA = 0 x40; /external memory XMCRB = 0 x80;/ port_init(); MCUCR = 0 x80;/设置外部中断. TIMSK = 0 x65; /timer interrupt sources ETIMSK = 0 x00; /extended timer interrupt sources SEI(); /re-enable interrupts /all peripherals are now initialized void main(void) BYTE kte,i,x,y,cFunc
5、No,F_Flush=1,F_wait=0,F_menu=0,str6; char BusFlush=0,BusStr6; unsigned tmp; /初始化端口与RTC init_devices(); LCD_off();/关背光 InitFont(); PCF8563_init(); ,interrupt 1 void int1(void);/ SWI中断 interrupt 2 void int2(void);/ IRQ引脚中断 interrupt 3 void int3(void);/ 保留(CGM-PLL中断) void InitPort() /初始化PTA DDRA = 0 x0
6、0;/全部输入 PTA =0 x00;/输出0 PTAPUE=0 x00;/禁止上拉 DDRB = 0 x00;/ PTB = 0 x00;/输出0 DDRD = 0b01101111;/PD7,4用于输入,其他输出 PTD = 0 x00;/输出高 PDCR=0b00000101; KBSCR=0 x06;/清除KBI中断 KBIER=0 x00;/禁止KBI中断 INTSCR=0 x06; void main(void) /上电配置 CONFIG1=0 x01; /* 0 0 0 0 0 0 0 1 * | | | | | | | |_ COP看门狗:1-禁止 * | | | | | |
7、|_ STOP指令:1-允许 * | | | | | |_ STOP模式恢复:1-32周期; 0-4096周期 * | | | | |_ 保留 * | | | |_ LVI功能禁止: 1-禁止; 0-允许 * | | |_ 保留 * | |_ 保留 * |_ COP看门狗溢出:1-短时; 0-长时 */ CONFIG2=0 x91; EnableInterrupts; delay_ms(2); PCF7991_Init(); for(;) SCI_ProcRcvFrame();_RESET_WATCHDOG(); ,Atmaga16单片机,MC68HC08JK8单片机,一个完整的小系统,程序设
8、计的主要内容: 驱动程序: 芯片 端口 设备 时钟 内存 显示 通信 网络管理 ,如何改变?,引入PC机平台的软件体制: 标准C程序 统一的驱动 操作系统,实时操作系统RTOS简介,实时多任务操作系统(Real Time Operation System,RTOS) 是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务; RTOS根据各个任务的要求,进行资源管理(包括存储器、外设等) 、消息管理、任务调度、异常处理等工作。 在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。,RTOS的主要功
9、能模块,调度和中断处理 任务管理 事件管理 定时器管理 报文管理 循环队列管理 资源管理 固定存储块管理 规范的UART管理 自动掉电管理 ,RTOS评价指标,任务调度机制。RTOS的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调度策略上来讲,分优先级调度策略和时间片轮转调度策略;从调度方式上来讲,分可抢占、不可抢占、选择可抢占调度方式;从时间片来看,分固定与可变时间片轮转。 内存管理。分实模式与保护模式。 最小内存开销。最小内存开销是一个较重要的指标,工业控制领域中的控制器基于降低成本的考虑,其内存的配置一般都不大,而在这有限的空间内不仅要装载实时操作系统,还要装载用户程序。因此
10、,在RTOS的设计中,其占用内存大小是一个很重要的指标,这是RTOS设计与其它操作系统设计的明显区别之一。 最大中断禁止时间。当RTOS运行在核态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当RTOS重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。 任务切换时间。当由于某种原因使一个任务退出运行时,RTOS保存它的运行现场信息、插入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。,常见的RTOS,RTOS在全世界有好几百种,很多大公司都有自己的RTOS,常见的有: vxWorks WinCE
11、Palm-OS RT-Linux QNX uCOS RTX51 pSOS Nuclear ,vxWorks,vxWorks是VRTX公司的产品,意为make VrtX Works!即vxWorks的名字来源。 VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多数的VxWorks API是专有的。采用GNU的编译和调试器。,Windows CE,Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多
12、任务的操作系统。 它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。 其优点在于便携性、提供对微处理器的选择以及非强行的电源管理功能。内置的标准通信能力使Windows CE能够访问Internet并收发E-mail或浏览Web。除此之外,Windows CE特有的与Windows类似的用户界面使最终用户易于使用。 Windows CE的缺点是速度慢、效率低、价格偏高、开发应用程序相对较难。 操作系统的基本内核需要至少200K的ROM。,Palm OS,3Com公司的Palm OS在掌上电脑和PDA市场上独占其霸主地位。 它有开放的操作系统应用程序接口(API),开发
13、商可以根据需要自行开发所需要的应用程序。,RTLinux,操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。 用户可自行编写调度程序,它们可实现为可加载的核心模块 已实现的调度程序有:基于优先级的抢占式调度和EDF调度 基于优先级的调度使用“单调率算法”,它直接支持周期任务。 最小系统可达120KB.,QNX,QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如:POSIX.1b实时扩展。 它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,
14、其进程在独立的地址空间运行。 所有其它OS服务,都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快。 这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。,pSOS,pSOS属于WindRiver公司的产品。这个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全多任务环境,在定制的或是商业化的硬件上提供高性能和高可靠性。 可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。,u
15、COS,免费开源,支持单片机、DSP种类最多。,什么是嵌入式系统?,嵌入式系统/计算机(Embedded System)是指嵌入于各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小,结构紧凑,可作为一个部件埋藏于所控制的装置中。它提供用户接口、管理有关信息的输入输出、指导设备工作的计算功能,使设备及应用产品具有较高性能和智能。 嵌入式计算机由嵌入式硬件与嵌入式软件组成。硬件以芯片、插座、模板、组件、控制器形式埋藏于设备内部,软件是实时多任务操作系统和各种专用的应用软件,一般装在处理器的内存中。,嵌入式系统的发展阶段,嵌入式系统经历了基于芯片的嵌入式系统、标准总线的嵌入系统、嵌
16、入式PC及高性能嵌入式计算机几个发展的阶段。它是计算机(Computer)、通信(Communication)与控制(Control),“3C”的结合的产品,也是计算机、通信与消费类(Consumer)“3C”结合的信息家电产品以及其它数字化电子信息产品的核心。,微处理器与微控制器就是最普遍应用的嵌入式计算机,数量几亿到十几亿,远远大于个人计算机台式机,其应用领域主要有三个方面: 1、军事国防领域:武器控制,从火炮控制高炮指挥仪到导弹控制(弹上计算机),从坦克、轰炸机、舰艇、雷达、电子对抗等军事电子装备到军事通信及军事指挥系统。 2、民用电子装备及机电一体化设备:各种测量仪器仪表;数控装置、工
17、业控制机、机器人等工业电子设备;机电一体化工程机械及农业机械;汽车、机车、民航及船舶电子设备;办公自动化装备;计算机外部设备;通讯控制器及通讯设备;商用收款机等商用电子设备;医疗电子设备等。 3、家用电器及消费类电子产品:数字电视机机顶盒、录相机、VCD、DVD、手机、呼机、可视电话、掌上电脑、个人数字助理(PDA)家庭网络设备、洗衣机、电冰箱、智能玩具、防火防盗设备等。,OSEK/VDX汽车电子的开放式系统及接口,为了满足日益庞大复杂的汽车电子控制软件的开发需要,实现应用软件的可移植性和不同厂商的控制模块间的可兼容性。1993年,德国汽车工业界联合推出了汽车电子的开放式系统及接口OSEK/V
18、DX(Open Systems and the Corresponding Interfaces For Automotive Electronics)规范,旨在为汽车上的分布控制单元提供一个开放结构的工业标准。 OSEK/VDX 规范从实时操作系统RTOS(RealTime Operating System)、软件接口、通信和网络管理等方面对汽车的电子控制软件开发平台作了较为全面的定义与规定。,特别强调,OSEK是一个标准,而不是一个实例。 目前已有许多OSEK兼容软件产品出现,Specification status information,The following specificat
19、ion are released by OSEK/VDX: OSEK OSVersion 2.2.3 OSEK COM Version 3.0.3 OSEK NM Version 2.5.3 OSEK Implementation Language (OIL) Version 2.5 OSEK RTI (ORTI) Part A Version 2.2 OSEK RTI (ORTI) Part B Version 2.2 Binding Document Version 1.4.2 OSEK/VDX time triggered operating system Version 1.0 OSE
20、K/VDX fault tolerant communication Version 1.0 更具体文档参见:,OSEK模块简介,它所提出的一整套解决方案是未来汽车电子软件开发的发展方向。目前,一些公司推出了符合OSEK/VDX规范的操作系统并得到了OSEK/VDX委员会的认证,如 OSEK Works、OSEKOS、OSEKTurbo等。OSEK/VDX标准包括以下四部分: OSEK/VDX操作系统规范(OSEK Operating System,OSEK OS), OSEK/VDX通信规范(OSEK Communication,OSEK C
21、OM), OSEK/VDX网络管理规范(OSEK Network Management,OSEK NM)以及 OSEK/VDX实现语言(OSEK Implementation Language,OSEK OIL)。 采用符合OSEK/VDX标准的嵌入式实时操作系统可以提高产品代码的复用率、降低开发成本、缩短产品开发周期。使用兼容OSEK/VDX标准的嵌入式实时操作系统的应用架构。,Layer model of OSEK/VDX with OSEK OS,Layer model of OSEK/VDX with OSEKtime OS,OSEK/VDX operating system (OS)
22、,The specification of the OSEK/VDX OS provides a pool of services and processing mechanisms. The operating system serves as a basis for the controlled real-time execution of concurrent application and provides their environment on a processor. The architecture of the OSEK/VDX OS distinguishes three
23、processing levels: interrupt level, a logical level for operating systems activities and task level. The interrupt level is assigned higher priorities than the task level. In addition to the management of the processing levels, operating system services are provided for functionality like task manag
24、ement, event management, resource management, counter, alarm and error treatment.,OSEK/VDX OSEKtime Operating System,The OSEKtime operating system provides the necessary services to support distributed faulttolerant highly dependable real-time applications (e.g., start-up of the system, message hand
25、ling, state message interface, interrupt processing, synchronisation and error handling). The operating system is built according to the users configuration instructions at system generation time. The operating system cannot be modified later at execution time. Described in the operating system spec
26、ification is also the Time Service specification. The Time Services support the synchronisation of the task execution due to a global time base during system start-up and repeatedly during normal operation (e.g., at every end of the dispatching table). The Time Service functionality are usually clos
27、e connected to the communication layer, therefore the Time Service is implemented in FTCom. If the functionality of both OSEKtime OS and OSEK OS is needed, it is possible to run both systems in parallel.,OSEK/VDX Fault-Tolerant Communication FTCom,FTCom is divided into the layers: Application, Messa
28、ge Filtering, Fault Tolerant, and Interaction. The Application layer provides the Application Programming Interface (API). The Message Filtering layer provides mechanisms for message filtering. The Fault Tolerant layer provides services required to support the fault-tolerant functionality, that incl
29、udes judgement mechanisms for message instance management and support of message status information. The Interaction layer provides services for the transfer of message instances via network: Resolves issues connected with the presentation of a message instance on different hosts (e.g. different byt
30、e ordering), provides a message instance packing/unpacking service and supports a message instance status information. For efficiency reasons the Filter and Fault Tolerant layer are optional.,OSEK COM规范,OSEK COM规范(OSEK Communication Specification)为汽车ECU应用软件提供了统一的通信环境。通过定义应用软件通信接口以及ECU内部通信和ECU外部通信,OSEK COM规范提高了应用软件模块的可移植性。OSEK COM 提供了多种服务,以方便在任务与任务之间、中断服务程序与中断服务程序之间以及任务与中断服务程序之间发送数据。 OSEK COM 规范的目的是支持应用软件的移植性、重用性和相互合作性。应用程序接口隐藏了内部和外部通信的区别,同样也隐藏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三高中医辩证施治
- 脓毒症集束化治疗指南
- FDI与中国产业结构升级
- ESRD一体化治疗现状杭州学习班
- ETF套利交易费用与结算培训资料
- DCDC模块电源的反馈电路和设计方法
- 公司宣传年度工作总结
- 2026四上数学易错题说课课件
- GPS课件第十章GPS误差来源及分析
- 1.1奏响中学序曲 课件 2026-2027学年统编版道德与法治 七年级上册
- 水产品质量安全监督管理办法
- 大件运输安全教育培训内容课件
- 枣庄市金星爆破有限公司安全生产事故应急预案1
- 党员发展对象培训班结业考试题库及答案
- DBS教材11大部屋系统
- 【《中厚板矫直机结构设计》17000字(论文)】
- 锅炉事故应急预案演练方案
- 新入职体育教师教学常规培训内容
- 喷涂产品返工处理方案
- 实验室组建与管理课件
- T/DZJN 176-2023智能挂烫机
评论
0/150
提交评论