OSEK/VDX 标准与车控电子产品开发
摘要 汽车产业是我国国民经济的支柱产业;汽车电子产品是汽车的重要组成部分。将汽车电子产品分为车载电子产品和车控电子产品,并分析车控电子产品的嵌入式技术基础。通过对当前国际上主流车控软件标准OSEK/VDX的分析,提出我国自主发展车控电子的基于OSEK/VDX的产品开发流程;总结车控电子产品发展的趋势。
摘要 汽车产业是我国国民经济的支柱产业;汽车电子产品是汽车的重要组成部分。将汽车电子产品分为车载电子产品和车控电子产品,并分析车控电子产品的嵌入式技术基础。通过对当前国际上主流车控软件标准OSEK/VDX的分析,提出我国自主发展车控电子的基于OSEK/VDX的产品开发流程;总结车控电子产品发展的趋势。
先看一下zlg的喂狗程序 void InitWdt(void) { WDTC = 0x5F0000; // 设置WDTC,喂狗重装值 WDMOD = 0×03; // 设置并启动WDT RstWdt(); // 进行喂狗操作 } void RstWdt(void) { WDFEED = 0xAA; WDFEED = 0×55; } 表面上看来这段程序没有什么问题,如果你不用中断的话,或者是狗的值设置的比较长而中断出现的频率较低时也不容出现什么问题,但是隐患还是依然存在的。 在周立功的<<ARM微控制起基础与实战>>里关于看门狗喂狗寄存器WDFEED有一句话: " 向WDFEED寄存器写入0XAA的下一个操作应当是向WDFEED寄存器写入0X55"。这就说喂狗时向WDFEED写入0xAA和0×55时中间是不能有任何间隔的,也就是在此期间不能被中断。如果我们的程序里用到中断就有可能导致喂狗失败从而导致系统复位。因此为了避免被中断,我们可以在喂狗是关闭中断,在喂狗结束时再开启中断。程序改写如下 void RstWdt(void) { IRQDisable(); WDFEED = 0xAA; WDFEED = 0×55; IRQEnable(); } 这就好比在os中的临界段要关闭中断一样,在不应该被打断的地方先关中断处理完了再开中断。
由于要在电子显示屏上增加遥控功能,所以涉及到红外遥控的解码问题,红外接收采用的是TFM 5380,红外接收头输出脚接10k电阻上拉到+5V,用100P电容接到GND。用示波器观察输出信号,效果很好基本上红外编码能够吻合了。红外接收头的输出接到LPC2318的22脚,即P0.2/CAP0.0,此脚可用作定时器0的捕获输入,这样看来硬件估计是没有什么问题的啦。