本发明涉及一种汽车控制方法,具体涉及一种汽车控制装置。
背景技术:
随着汽车电子技术的发展,越来越多的电子控制器被应用到汽车上,如电动后视镜控制模块、电动座椅控制器、电动门窗控制器、空调控制器、灯光控制器、中控锁模块,防盗器等等。
电子控制器在汽车中的应用越来越多,各电子设备间的数据通信变得越来越多,同时这些分离模块的大量使用,在提高车辆舒适性的同时也带来了成本增加、故障率上升、设计需求的变动,从而也造成以前的设计失效等。
目前汽车电子控制器一旦发生程序故障,或者由于设计变更造成的软件更改的处理办法是:将控制器从整车上拆除,在工作室中采用专用工具进行程序更新。由于每个控制器的安装位置不同,拆除需要一定的工作量;微处理器的不同,烧写工具也不同;汽车销售分布范围大的特点也将使得这项更新程序的任务变得非常艰难。
技术实现要素:
本发明一种汽车控制方法,包括如下步骤:(1)汽车电子控制器通电后,其引导程序模块检测是否连有诊断仪,如果是则检测诊断仪中的更新软件的版本号,如果否则引导至汽车电子控制器的启动应用程序中;(2)引导程序模块检测现有软件的版本号与更新软件的版本号是否相同,若不同则向诊断仪发送需要更新的信令,若相同则引导至汽车电子控制器的启动应用程序中;(3)诊断仪收到需要更新的信令后向汽车电子控制器发送更新软件;(4)引导程序模块检测更新软件的数据,将其中与现有软件不同的数据段复制,并移至内存中覆盖原有的数据段;(5)自动断电,更新完成。
因为本发明将引导程序模块集成进汽车电子控制器中,采用flash交换或者ram交换技术,遵循诊断协议,从而达到通过诊断仪将程序更新的目的,将汽车电子控制器的更新变的简单可行。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明的系统结构图。
具体实施方式
如图1所示,本发明的汽车电子控制器包括一个启动时调用的引导程序模块,该模块位于其软件程序模块存储的起始地址,用于判断汽车电子控制器的软件是否需要更新,并在需要时引导更新。由于系统加电或复位后,所有的cpu通常都从某个由cpu制造商预先安排的地址上取指令,因此将引导程序分配到这个起始地址开始的一段空间中,可以对汽车电子控制器的启动进行控制。
汽车电子控制器通电后,其引导程序模块自动检测是否连有诊断仪。如果是则检测诊断仪中的更新软件的版本号,如果否则引导至汽车电子控制器的正常启动的程序中。然后引导程序模块对比现有软件的版本号与更新软件的版本号是否相同,若不同则向诊断仪发送需要更新的信令;若相同则引导至汽车电子控制器的正常启动的程序中。接着诊断仪收到需要更新的信令后向汽车电子控制器发送更新软件。引导程序模块收到更新软件后,进一步检测更新软件的数据,将其中与现有软件不同的数据段复制,并移至内存中覆盖原有的数据段。完成数据段复制后,汽车电子控制器自动断电,更新完成。
本发明的汽车电子控制器与诊断仪的通讯通过odbii端口实现,且遵循kwp2000协议,诊断仪很容易通过odbii口与汽车电子控制器进行相连取得物理层连接,并进行通信数据的传输,使程序更新不再需要专门的软件烧录工具。
另外可以在本发明的汽车电子控制器的引导程序中设置一个更新完成标志位,其初始值为1或0。在启动控制程序过程中,当更新步骤开始执行时,将更新完成标志位的值设置为初始值的取反值;当更新步骤完成时,将该更新完成标志位的值重置为初始值。这样在汽车电子控制器重新启动时,通过检测更新完成标志位的值,可以首先判断如果进行了更新,该更新程序是否正常。因为如果该标志位不是初始值,即表明更新程序出现了异常,则自动将原有的程序段复位。只有更新完成标志位的值与初始值相同才进一步进行后面的程序。这样使得程序的运行更加安全可靠。