基于k线通信更新发动机控制器程序和数据的系统及方法

文档序号:6552018阅读:251来源:国知局
基于k线通信更新发动机控制器程序和数据的系统及方法
【专利摘要】本发明涉及一种基于K线通信实现发动机控制器程序和数据更新的系统,所述的系统包括控制器、K线、K线适配器、上位机、电源,所述的控制器具有K线接口,并通过K线接口连接于所述的K线,通过该K线连接至所述的K线适配器,然后通过K线适配器连接至所述的上位机,所述的电源用以给所述的控制器和K线适配器供电,本发明还涉及采用该种系统实现基于K线通信实现发动机控制器程序和数据更新的方法。采用该种基于K线通信实现发动机控制器程序和数据更新的系统及方法,发动机控制器利用一根信号线即可完成发动机控制器程序和标定数据的更新,结构简单,使用方便,减少了插件的针数,并保证更新数据准确有序的从上位机传到控制器,降低了成本,适用范围广泛。
【专利说明】基于K线通信更新发动机控制器程序和数据的系统及方法

【技术领域】
[0001] 本发明涉及发动机控制器领域,尤其涉及发动机控制器程序和标定数据更新领 域,具体是指一种基于Κ线通信实现发动机控制器程序和数据更新的系统及方法。

【背景技术】
[0002] Κ线是汽车工业中广泛采用的一种通信总线标准,在许多场合有着广泛的应用,Κ 线通信多采用半双工异步串行通讯,工作电压范围为8V?18V,支持最大电流,可以与单片 机CMOS电平无缝连接,串行通讯码的每个单元包括10位二进制数据,分别为起始位、8位数 据、停止位,每个单元发送完毕后设有空闲等待,但是还没有应用到发动机控制器程序和标 定数据更新领域。
[0003] 现有对发动机控制器标定数据或程序更新采用的是半导体厂商提供的烧写器将 程序和标定数据批量灌进控制器,且客户整车后续升级程序和更新数据是采用基于CAN总 线的烧写系统。现有电喷摩托车发动机控制器CAN总线通信需要两根信号线,增加了接插 件的针数;同时电喷(或电控化油器)摩托车发动机控制器在整车中是孤立的一个控制器 节点,不需与其他控制器进行通信;并且带CAN接口的控制芯片价格比带K线接口的控制芯 片价格高,CAN总线还需要专门的收发器芯片,增加了成本。


【发明内容】

[0004] 本发明所要解决的技术问题是克服上述现有技术的缺点,提供一种利用κ线作为 数据传输介质、通过K线通信协议控制、结构简单、使用简便、更新数据过程较快速、只需要 一根信号线、减少了插件的针数、降低了成本、保证数据准确有序的从上位机传输到控制器 的基于K线通信实现发动机控制器程序和数据更新的系统及方法。
[0005] 为了实现上述目的,本发明的系统包括控制器、K线、K线适配器、上位机、电源以 及用户程序和引导程序,所述的控制器具有K线接口,所述的K线适配器通过K线分别与所 述的控制器和上位机相连接,所述的电源用以给所述的控制器和K线适配器供电。
[0006] 所述的控制器包括内部存储器,所述的内部存储器包括引导程序区、用户程序和 数据区,所述的引导程序区用以存储所述的控制器数据更新系统的通信和存储器擦写控制 协议,所述的用户程序和数据区用以存储用户程序和控制参数(喷油脉宽和点火提前角等 标定数据)。
[0007] 所述的用户程序包括跳转控制程序,所述的跳转控制程序的功能是控制所述的控 制器接收请求更新程序命令、回复请求更新程序命令、更改引导程序跳转到用户程序条件 为所述的控制器不会由引导程序跳转到用户程序。
[0008] 所述的用户程序在指定的地址空间编译生成烧写文件,用以保证生成的烧写文件 所占的地址空间不与引导程序区重叠。
[0009] 所述的K线适配器通过USB接口或串口与所述的上位机相连接。
[0010] 所述的发动机控制器为电喷摩托车发动机控制器或电控化油器摩托车发动机控 制器。 toon] 实现基于K线通信实现发动机控制器程序和数据更新的方法,包括以下步骤:
[0012] (1)所述的上位机读取更新程序和数据至所述的上位机的内存中;
[0013] (2)所述的上位机启动更新程序和数据;
[0014] (3)所述的控制器从用户程序跳转到引导程序执行;
[0015] (4)所述的上位机通过Κ线将所述的上位机的内存中的更新程序加载到所述的控 制器中;
[0016] (5)所述的控制器从引导程序跳转到用户程序执行。
[0017] 所述的上位机读取更新程序和数据至所述的上位机的内存中,包括以下步骤:
[0018] (11)所述的上位机读取更新程序和数据到所述的上位机的内存中,并解析出所述 的更新程序和数据的地址和数据信息;
[0019] (12)所述的上位机把所述的更新程序和数据的地址数据和数据信息进行分帧。
[0020] 所述的上位机启动更新程序和数据,包括以下步骤:
[0021] (21)所述的上位机遵循多次重发机制,向所述的控制器发送更新程序和数据请 求,若成功则继续步骤(22),否则继续步骤(23);
[0022] (22)所述的控制器通过所述的上位机发送的更新程序和数据请求命令;
[0023] (23)所述的上位机退出更新程序和数据并结束。
[0024] 所述的控制器从用户程序跳转到引导程序执行,包括以下步骤:
[0025] (31)所述的控制器执行所述的用户程序,并判断所述的控制器是否接收到所述的 上位机请求更新用户程序和数据命令,若是则继续步骤(32);否则继续步骤(33);
[0026] (32)所述的控制器更改引导程序跳转到用户程序的条件为所述的控制器在程 序和数据更新过程中不会由引导程序跳转到用户程序,然后跳转到引导程序并继续步骤 ⑷;
[0027] (33)所述的控制器继续执行所述的用户程序。
[0028] 所述的上位机通过Κ线将所述的上位机的内存中的更新程序加载到所述的控制 器中,包括以下步骤:
[0029] (41)所述的上位机遵循多次重发机制,向所述的控制器发送编程请求,若成功则 继续步骤(42),否则继续步骤(43);
[0030] (42)所述的控制器擦除所述的用户程序和数据区的程序,若成功则继续步骤 (44),否则继续步骤(43);
[0031] (43)所述的上位机退出更新程序并结束编程;
[0032] (44)所述的上位机遵循数次重发机制,向所述的控制器发送更新数据帧,若成功 则继续步骤(45),否则继续步骤(43);
[0033] (45)所述的上位机向所述的控制器发送下一帧数据,并检查是否为最后一帧数 据,若是则继续步骤(46),否则继续步骤(45);
[0034] (46)所述的上位机遵循多次重发机制,向所述的控制器发送结束编程请求;
[0035] (47)所述的控制器在接收到结束编程请求命令后向所述的内部存储区写入一字 节的控制器内部程序运行跳转控制标志;
[0036] (48)所述的控制器判断所述的控制器内部程序运行跳转控制标志是否写入成功, 若是则继续步骤(49),否则继续步骤(46);
[0037] (49)所述的控制器向所述的上位机发送通过结束编程请求并跳转到用户程序运 行。
[0038] 所述的控制器从引导程序跳转到用户程序执行,包括以下步骤:
[0039] (51)所述的控制器判断控制器内部程序运行跳转控制标志是否为结束编程标志, 若是则继续步骤(52),否则继续步骤(53);
[0040] (52)所述的控制器从引导程序跳转到更新的用户程序去执行;
[0041] (53)所述的控制器继续执行所述的引导程序。
[0042] 所述的方法还包括以下步骤:
[0043] (6)上位机软件界面显示通信端口选择按钮、控制器程序和数据更新进度和更新 完成的百分比对话框、控制器程序和数据更新成功对话框。
[0044] 本发明提供一种基于K线通信实现发动机控制器程序和数据更新的系统及方法, 该系统利用K线作为数据传输介质,通过K线通信协议控制,结构简单,使用简便,更新数据 速度(2. 4KByte/s)较快,并且只需要一根信号线,既减少了插件的针数,又降低了成本,同 时还保证数据准确有序的从上位机传输到控制器。

【专利附图】

【附图说明】
[0045] 图1为本发明的基于K线通信更新发动机控制器程序和数据的系统结构示意图。
[0046] 图2为本发明的控制器内部存储区分布和程序跳转流程图。
[0047] 图3为本发明的基于K线通信更新发动机控制器程序和数据的方法在实际应用中 的流程图。
[0048] 图4为本发明的K线通信步骤流程图。
[0049] 图5为本发明的程序数据更新系统上位机软件更新过程界面示意图。
[0050] 图6为本发明的程序数据更新系统上位机软件数据更新结束界面示意图。

【具体实施方式】
[0051] 为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的 描述。
[0052] 请参阅图1所示,为本发明的基于K线通信实现发动机控制器程序和数据更新的 系统的结构示意图。
[0053] 在一种实施方式中,该系统包括控制器、K线、K线适配器、上位机、电源以及用户 程序和引导程序(引导区中的程序),所述的控制器带有K线接口,并通过K线接口连接于 所述的K线,通过该K线连接至所述的K线适配器,然后通过K线适配器连接至所述的上位 机的串口或USB 口,所述的控制器和适配器还连接至电源,电源给控制器和K线适配器供 电。
[0054] 请参阅图2所示,该所述系统中的控制器包括内部存储器,所述的内部存储器包 括引导程序区、用户程序和数据区,所述的引导程序区用以存储所述的控制器程序和数据 更新系统的通信和存储器擦写控制协议,所述的用户程序和数据区用以存储用户程序和控 制参数(喷油脉宽和点火提前角等标定数据)。
[0055] 所述的用户程序包括跳转控制程序,所述的跳转控制程序的功能是控制所述的控 制器接收请求更新程序命令、回复请求更新程序命令、更改引导程序跳转到用户程序条件 为所述的控制器不会由引导程序跳转到用户程序、跳转到引导程序。
[0056] 所述的用户程序在指定的地址空间编译生成烧写文件,用以保证生成的烧写文件 所占的地址空间不与引导程序区重叠。
[0057] 利用该系统实现基于K线通信实现发动机控制器程序和数据更新的方法,如图3 所示,包括以下步骤:
[0058] (1)所述的上位机读取更新程序和数据(可选择加载摩托罗拉S文件或英特尔 Hex文件)至所述的上位机内存中;
[0059] (2)所述的上位机加载好程序或数据文件,所述的上位机的软件界面包括通信端 口选择按钮、数据更新开始按钮;
[0060] (3)所述的上位机进行程序和数据更新过程,如图5所示,所述的上位机软件的界 面显示数据更新进度和更新完成的百分比;
[0061] (4)如图6所示,所述的上位机程序和数据更新完成后,上位机软件界面显示更新 程序和数据成功,编程结束;
[0062] (5)所述的上位机编程结束后,所述的控制器内运行的就是新的程序和数据。
[0063] 在一种优化的K线通信协议中,所述的基于K线通信实现发动机控制器程序和数 据更新的方法中,如图2所示,所述的步骤(1)具体包括以下步骤:
[0064] (11)所述的上位机读取更新程序和数据至所述的上位机的内存中;
[0065] (12)所述的上位机根据更新程序和数据的格式(摩托罗拉S文件或英特尔Hex文 件)解析出更新程序和数据的地址和数据信息;
[0066] (13)所述的上位机将所述的更新程序和数据的地址和数据信息按照地址从低到 高排好序;
[0067] (14)所述的上位机把所述的更新程序和数据的地址数据和数据信息进行分帧。
[0068] 所述的步骤(2)具体包括以下步骤:
[0069] (21)所述的上位机遵循三次重发机制,向所述的控制器发送更新程序和数据请求 命令;
[0070] (22)所述的控制器判断是否收到请求程序和数据更新命令,若是则继续步骤 (23),否则继续步骤(24);
[0071] (23)所述的控制器向所述的上位机发送通过所述的程序和数据更新命令;
[0072] (24)所述的上位机退出更新流程并结束;
[0073] (25)所述的上位机判断是否收到所述的控制器的通过请求更新程序和数据命令, 若是则继续步骤(26),否则继续步骤(24);
[0074] (26)所述的上位机遵循三次重发机制,向所述的控制器发送启动编程命令;
[0075] (27)所述的控制器判断是否收到所述的上位机发送的启动编程命令,若是则继续 步骤(28),否则继续步骤(29);
[0076] (28)所述的控制器擦除所述的内部存储器中的用户程序和数据,并向所述的上位 机发送擦除成功命令;
[0077] (29)所述的上位机退出编程并结束;
[0078] (210)所述的上位机判断是否收到所述的擦除成功命令,若是则继续步骤(211), 否则继续步骤(29);
[0079] (211)所述的上位机遵循三次重发机制,向所述的控制器发送更新数据帧,所述的 更新数据帧包括帧头、帧长、命令、数据、校验和;
[0080] (212)所述的控制器判断是否收到所述的上位机发来的更新数据帧,若是则继续 步骤(213),否则继续步骤(29);
[0081] (213)所述的控制器根据所述的更新数据帧的构成判断所收到的数据帧是否正 确,若正确则继续步骤(214),否则继续步骤(29);
[0082] (214)所述的上位机遵循三次重发机制,继续向所述的控制器发送下一帧更新数 据帧,并判断该数据帧是否为最后一帧,若是则继续步骤(215),否则继续步骤(214);
[0083] (215)所述的上位机遵循三次重发机制,向所述的控制器发送结束编程请求命令 数据帧,所述的控制器若收到请求结束编程命令数据帧,则将一字节的控制器内部程序运 行跳转控制信息写入内部存储区,并继续步骤(216),否则继续步骤(29);
[0084] (216)所述的控制器判断所述的控制器内部程序运行跳转控制信息写入是否成 功,若成功则继续步骤(217),否则继续步骤(218);
[0085] (217)所述的控制器回复结束编程请求命令并跳转执行新的用户程序,并结束编 程;
[0086] (218)所述的控制器继续执行引导程序,并继续步骤(215)。
[0087] 所述的控制器跳转执行新的用户程序,包括以下步骤:
[0088] (2171)所述的控制器判断控制器内部程序运行跳转控制标志是否为结束编程标 志,若是则继续步骤(2172),否则继续步骤(2173);
[0089] (2172)所述的控制器从引导程序跳转到更新的用户程序去执行;
[0090] (2173)所述的控制器继续执行所述的引导程序。
[0091] 控制器内部程序运行跳转原理包括以下两种方法,具体为:
[0092] (a)所述的控制器内部程序运行跳转控制信息存放在RAM区,具体为:
[0093] 所述的条件信息存放在控制器RAM区起始8个字节(不仅限8个字节和限定RAM 区的位置),所述的控制器在所述的用户程序中指定一个8字节的数组存放所述的条件信 息,所述的数组首地址为RAM区起始地址,同时所述的控制器指定RAM区从原RAM区第9个 字节开始,并在所述的引导程序中指定RAM区从原RAM区的第9个字节开始;
[0094] (b)所述的条件信息存放在ROM区,具体为:
[0095] 所述的控制器用户程序在收到请求更新用户程序命令的时候,所述的控制器用户 程序将一字节的所述条件信息写入到ROM区的某个未被用户程序占用的字节空间,所述的 控制器跳转到引导程序后,首先读取所述的条件信息。本发明提供一种基于K线通信实现 发动机控制器程序和数据更新的系统及方法,该系统利用K线作为数据传输介质,通过K线 通信协议控制,结构简单,使用简便,更新数据速度(2. 4KByte/s)较快,并且只需要一根信 号线,既减少了插件的针数,又降低了成本,同时还保证数据准确有序的从上位机传输到控 制器。
[〇〇96] 在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出 各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的 而非限制性的。
【权利要求】
1. 一种基于K线通信实现发动机控制器程序和数据更新的系统,其特征在于,所述的 系统包括控制器、Κ线、Κ线适配器、上位机、电源,所述的控制器具有Κ线接口,所述的Κ线 适配器通过Κ线分别与所述的控制器和上位机相连接,所述的电源用以给所述的控制器和 Κ线适配器供电。
2. 根据权利要求1所述的基于Κ线通信实现发动机控制器程序和数据更新的系统,其 特征在于,所述的控制器包括内部存储器,所述的内部存储器包括引导程序区、用户程序和 数据区,所述的引导程序区用以存储所述的控制器程序和数据更新的系统的通信和存储器 擦与控制协议。
3. 根据权利要求1所述的基于Κ线通信实现发动机控制器程序和数据更新的系统,其 特征在于,所述的Κ线适配器通过USB接口或串口与所述的上位机相连接。
4. 根据权利要求1所述的基于K线通信实现发动机控制器数据更新的系统,其特征在 于,所述的发动机控制器为电喷摩托车发动机控制器或电控化油器摩托车发动机控制器。
5. -种利用权利要求2所述的系统基于K线通信实现发动机控制器程序和数据更新的 方法,其特征在于,所述的方法包括以下步骤: (1) 所述的上位机读取更新程序和数据至所述的上位机的内存中; (2) 所述的上位机启动更新程序和数据; (3) 所述的控制器从用户程序跳转到引导程序执行; (4) 所述的上位机通过K线将所述的上位机的内存中的更新程序加载到所述的控制器 中; (5) 所述的控制器从引导程序跳转到用户程序执行。
6. 根据权利要求5所述的基于K线通信实现发动机控制器程序和数据更新的方法,其 特征在于,所述的上位机读取更新程序和数据至所述的上位机的内存中,包括以下步骤: (11) 所述的上位机读取更新程序和数据到所述的上位机的内存中,并解析出所述的更 新程序和数据的地址和数据信息; (12) 所述的上位机把所述的更新程序和数据的地址数据和数据信息进行分帧。
7. 根据权利要求5所述的基于K线通信实现发动机控制器程序和数据更新的方法,其 特征在于,所述的上位机启动更新程序和数据,包括以下步骤: (21) 所述的上位机遵循多次重发机制,向所述的控制器发送更新程序和数据请求,若 成功则继续步骤(22),否则继续步骤(23); (22) 所述的控制器通过所述的上位机发送的更新程序和数据请求命令; (23) 所述的上位机退出更新程序和数据并结束。
8. 根据权利要求5所述的基于K线通信实现发动机控制器程序和数据更新的方法,其 特征在于,所述的控制器从用户程序跳转到引导程序执行,包括以下步骤: (31) 所述的控制器执行所述的用户程序,并判断所述的控制器是否接收到所述的上位 机请求更新用户程序和数据命令,若是则继续步骤(32);否则继续步骤(33); (32) 所述的控制器更改引导程序跳转到用户程序的条件为所述的控制器在程序和数 据更新过程中不会由引导程序跳转到用户程序,然后跳转到引导程序并继续步骤(4); (33) 所述的控制器继续执行所述的用户程序。
9. 根据权利要求5所述的基于K线通信实现发动机控制器程序和数据更新的方法,其 特征在于,所述的上位机通过K线将所述的上位机的内存中的更新程序加载到所述的控制 器中,包括以下步骤: (41) 所述的上位机遵循多次重发机制,向所述的控制器发送编程请求,若成功则继续 步骤(42),否则继续步骤(43); (42) 所述的控制器擦除所述的用户程序和数据区的程序,若成功则继续步骤(44),否 则继续步骤(43); (43) 所述的上位机退出更新程序并结束编程; (44) 所述的上位机遵循数次重发机制,向所述的控制器发送更新数据帧,若成功则继 续步骤(45),否则继续步骤(43); (45) 所述的上位机向所述的控制器发送下一帧数据,并检查是否为最后一帧数据,若 是则继续步骤(46),否则继续步骤(45); (46) 所述的上位机遵循多次重发机制,向所述的控制器发送结束编程请求; (47) 所述的控制器在接收到结束编程请求命令后向所述的内部存储区写入一字节的 控制器内部程序运行跳转控制标志; (48) 所述的控制器判断所述的控制器内部程序运行跳转控制标志是否写入成功,若是 则继续步骤(49),否则继续步骤(46); (49) 所述的控制器向所述的上位机发送通过结束编程请求并跳转到用户程序运行。
10. 根据权利要求5所述的基于Κ线通信实现发动机控制器程序和数据更新的方法,其 特征在于,所述的控制器从引导程序跳转到用户程序执行,包括以下步骤: (51) 所述的控制器判断控制器内部程序运行跳转控制标志是否为结束编程标志,若是 则继续步骤(52),否则继续步骤(53); (52) 所述的控制器从引导程序跳转到更新的用户程序去执行; (53) 所述的控制器继续执行所述的引导程序。
11. 根据权利要求5所述的基于Κ线通信实现发动机控制器程序和数据更新的方法,其 特征在于,所述的方法还包括以下步骤: (6)上位机软件界面显示通信端口选择按钮、控制器程序和数据更新进度和更新完成 的百分比对话框、控制器程序和数据更新成功对话框。
【文档编号】G06F9/445GK104063251SQ201410312819
【公开日】2014年9月24日 申请日期:2014年7月2日 优先权日:2014年7月2日
【发明者】诸葛俊贵, 段利泉, 张宗哲, 陈钢, 陈晓青, 沈准 申请人:东风电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1