CN112015453A - Obd嵌入式设备固件升级方法 - Google Patents
Obd嵌入式设备固件升级方法 Download PDFInfo
- Publication number
- CN112015453A CN112015453A CN202010957982.9A CN202010957982A CN112015453A CN 112015453 A CN112015453 A CN 112015453A CN 202010957982 A CN202010957982 A CN 202010957982A CN 112015453 A CN112015453 A CN 112015453A
- Authority
- CN
- China
- Prior art keywords
- downloader
- obd
- packet
- target equipment
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明适用于OBD嵌入式设备固件升级技术领域,提供了一种OBD嵌入式设备固件升级方法,所述方法包括提供一具有OBD接口的下载器,并向该下载器内预储存升级文件;下载器通过OBD接口连接目标设备后,获取目标设备的最大CAN速率及CAN包大小;向目标设备发送下载器支持的最大CAN速率及最大CAN包长;适配下载器及目标设备的硬件性能;向目标设备发送升级文件。借此,本发明可以充分发挥目标设备及下载器的硬件性能,并且固件升级过程简单,不需要对硬件进行拆装。
Description
技术领域
本发明涉及OBD嵌入式设备固件升级技术领域,尤其涉及一种OBD嵌入式设备固件升级方法。
背景技术
通常嵌入式设备固件的升级方式有:1.远程在线升级;2.通过微控制处理器的JTAG/SWD接口进行升级。远程在线升级需要有网络,通常不同国家的移动通信网络制式(2G/3G/4G/5G)都存在一定的差异,生产设备的国家的网络制式跟设备目标消费国家的网络制式往往存在差异,相互不兼容。并且通过远程在线升级需要消耗一定的流量,会产生一些费用。不同的网络制式,不同的网络环境,往往速率不一致,可快可慢,慢的时候十分影响升级体验。通过微控制处理器的JTAG/SWD接口进行升级,在设备生产完成,安装好外壳后,往往需要把外壳拆开,很有可能会对设备造成破坏。
综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种OBD嵌入式设备固件升级方法,其可以在工厂生产以及售后维修阶段,节约一定的生产成本。
为了实现上述目的,本发明提供一种OBD嵌入式设备固件升级方法,所述方法包括
提供一具有OBD接口的下载器,并向该下载器内预储存升级文件;
下载器通过OBD接口连接目标设备后,获取目标设备的最大CAN速率及CAN包大小;
向目标设备发送下载器支持的最大CAN速率及最大CAN包长;
适配下载器及目标设备的硬件性能;
向目标设备发送升级文件。
根据本发明的OBD嵌入式设备固件升级方法,所述方法还包括:
当目标设备接收到升级指示字符后,向下载器发送是否需要将升级文件切割成若干部分进行传输的信息;
若需分包传输,则目标设备向下载器发送每一个分包的字节数。
根据本发明的OBD嵌入式设备固件升级方法,所述向目标设备发送升级文件的步骤包括:
在一个分包传输完成后,所述下载器得到了正确的分包校验值后,再传送下一包。
根据本发明的OBD嵌入式设备固件升级方法,所述方法包括:
下载器判断是否已经将所有的数据发送完毕,若是,则询问目标设备升级数据包整体校验值。
根据本发明的OBD嵌入式设备固件升级方法,所述方法还包括:
若在固件升级的过程中,发生不可恢复的异常,则会停止升级,并发出提示信息。
根据本发明的OBD嵌入式设备固件升级方法,如果分包校验值错误,则先要判断是否已经达到分包重发次数最大值,如果没有则进行重发处理。
根据本发明的OBD嵌入式设备固件升级方法,所述下载器支持FDCAN总线,并具有USB接口及外置FLASH存储器。
本发明适用于OBD嵌入式设备固件升级技术领域,提供了一种OBD嵌入式设备固件升级方法,所述方法包括提供一具有OBD接口的下载器,并向该下载器内预储存升级文件;下载器通过OBD接口连接目标设备后,获取目标设备的最大CAN速率及CAN包大小;向目标设备发送下载器支持的最大CAN速率及最大CAN包长;适配下载器及目标设备的硬件性能;向目标设备发送升级文件。借此,本发明可以充分发挥目标设备及下载器的硬件性能,并且固件升级过程简单,不需要对硬件进行拆装。
附图说明
图1是本发明的方法流程图;
图2是本发明一实施例的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,本发明提供了一种OBD嵌入式设备固件升级方法,所述方法包括以下步骤:
步骤S101,提供一具有OBD接口的下载器,并向该下载器内预储存升级文件。
步骤S102,下载器通过OBD接口连接目标设备后,获取目标设备的最大CAN速率及CAN包大小。
本发明将目标OBD设备通过OBD接口连接到下载器,连接电源,初始化
初始化各种总线和外设资源。目标设备通过串口(UART)向下载器发送指令或者通过按键来启动升级流程。
步骤S103,下载器向目标设备发送下载器支持的最大CAN速率及最大CAN包长。
步骤S104,适配下载器及目标设备的硬件性能。
步骤S105,向目标设备发送升级文件。
当下载器给目标设备进行固件升级的过程中,如果发生不可恢复的异常则会停止升级,并且会通过不同的LED灯状态来指示不同的异常类型。在再次启动升级的时候,需要将这些错误指示状态还原。
本发明在具体升级过程时,仅需要OBD接口的设备,无需拆开外壳,也无需增加其他的下载接口,无需通过移动网络,便可升级设备软件,节约了生产成本,节约了运营维护成本。并且下载器速率稳定,可以兼容不同档次的OBD设备,并充分利用OBD设备自身的硬件性能,文件传输过程可靠。本发明的下载器具有如下功能:
1)支持FDCAN总线;
FDCAN总线速率可变,最大速率可达5Mbp/s(Classical CAN为1Mbp/s);
FDCAN数据包最大长度64Bytes(Classical CAN为8Bytes);
FDCAN可以线下兼容Classic CAN。
2)支持外置Flash,可以支持较大固件;
3)支持USB总线,可以像使用U盘一样将需要升级的固件保存到下载器的外置Flash中;
4)基于FDCAN的文件传输协议;
与目标设备进行传输速率协商
与目标设备进行数据包大小协商
与目标设备进行是否需要正面确认应答,以及正面确认应答的间隔
丢包重传机制
正面确认应答超时重传机制
目标设备异常监测
传输过程中,进行数据完整性、数据正确性的校验。
本发明在建立连接初始化后,结合图2,按如下步骤执行:
在建立连接后,下载器会询问目标设备的最大CAN速率及CAN包大小。
ClassicCAN最大支持的速率为1Mbp/s,FDCAN支持的最大速率为5Mbp/s。ClassicCAN支持的最大数据包大小为8字节,FDCAN支持的最大数据包为64字节。为了充分发挥硬件的性能,同时为了兼容不同的设备,首先需要确认下载器和目标设备在升级过程中使用的速率以及数据包长度。
下载器告知目标设备本下载器支持的最大CAN速率及最大CAN包长。如果下载器自身的硬件性能没有目标设备高,目标设备在接收到下载器提供的信息后,需要切换到相应的速率及数据包长度,使其CAN速率与CAN包长与下载器匹配。反之,若下载器自身的硬件性能高于目标设备,则下载器根据目标设备的硬件性能,切换下载器自身的硬件性能,即调整自身的CAN速率与CAN包长使其与目标设备匹配。
下载器对硬件性能进行适配之后,会询问目标设备CAN速率及CAN包长切换就绪状态。切换速率及数据包长之后需要以新的速率及数据包长进行通信,因此需要确认目标设备是否就绪。
如果目标设备没有能够在规定的时间里完成速率及数据包长切换,则判定目标设备切换失败。本发明还可以通过LED灯指示目标设备CAN速率CAN包长切换失败。
在升级开始之前,下载器会告诉目标设备,升级即将开始,并且告知其升级文件的字节数。
当目标设备接收到升级指示字符后,目标设备会告诉下载器,是否需要将升级文件切割成若干部分进行传输,即分包传输。如需分包传输,目标设备需要高诉下载器,每一个分包的字节数。只有在一个分包传输完成后,下载器得到了正确的分包校验值,下载器才会进行下一包的传输。如果不需要进行分包传输,下载器会将所有的数据一次性全部发送给目标设备。
在所有的升级文件数据都发送给目标设备后,下载器会询问目标设备接收到的整个文件的校验值。下载器会计算本地的整个升级文件的校验值,并和目标设备返回的校验值进行比对,如果相等则升级成功,否则升级失败。
如果目标设备告知下载器需要分包进行传输,下载器会根据目标设备提供的分包大小,将升级文件切割成若干分包进行传输。当目标设备接收到一个分包后,目标设备会将该分包的校验值发送给下载器。下载器会将目标设备提供的分包校验值与本地的分包的校验值进行比对,如果不相等,则分包校验值错误。如果分包校验值正确,下载器会判断是否已经将所有的数据全部发送出去了。如果已经全部发送出去,则会去询问目标设备升级数据包整体校验值。如果分包校验值错误,则先要判断是否已经达到分包重发次数最大值,如果没有则进行重发。若分包校验值错误,并且没有达到分包重发次数最大值,重发分包。若分包校验值错误,并且达到分包重发次数最大值,通过LED灯来指示分包重发失败错误。
本发明对仅有OBD接口的设备,无需拆开外壳,也无需增加其他的下载接口,无需通过移动网络,便可升级设备软件,节约了生产成本,节约了运营维护成本。并且可以兼容不同档次的OBD设备,并充分利用OBD设备自身的硬件性能。
在软件实现上:本发明可以采用C或者C++语言;2. 驱动程序;
根据具体的MCU和外挂Flash实现相应的总线驱动,并实现Flash的读、写、擦功能;
根据具体的MCU实现USB接口初始化、数据传输驱动;
根据具体的MCU实现FDCAN控制器初始化驱动。
3. 搭载USB闪存类库;
4. 文件传输协议
定义一些结构体,用于保存设备支持CAN总线的类型,支持传输速率,数据包大小,是否需要正面确认应答的标志以及正面确认应答的间隔;
文件传输开始阶段,通过上述结构体交换信息,并采用共同支持的参数作为最终的参数;
传输文件阶段,如果需要正面确认应答,在下载器发送完相应包数的数据后,等待目标设备的正面确认应答;(正面确认应答需包含校验信息,下一包的请求信息)如果等待应答超时,重发数据包,若干次。如果若干次后仍无应答,判定目标设备异常。
综上所述,本发明适用于OBD嵌入式设备固件升级技术领域,提供了一种OBD嵌入式设备固件升级方法,所述方法包括提供一具有OBD接口的下载器,并向该下载器内预储存升级文件;下载器通过OBD接口连接目标设备后,获取目标设备的最大CAN速率及CAN包大小;向目标设备发送下载器支持的最大CAN速率及最大CAN包长;适配下载器及目标设备的硬件性能;向目标设备发送升级文件。借此,本发明可以充分发挥目标设备及下载器的硬件性能,并且固件升级过程简单,不需要对硬件进行拆装。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (7)
1.一种OBD嵌入式设备固件升级方法,其特征在于,所述方法包括
提供一具有OBD接口的下载器,并向该下载器内预储存升级文件;
下载器通过OBD接口连接目标设备后,获取目标设备的最大CAN速率及CAN包大小;
向目标设备发送下载器支持的最大CAN速率及最大CAN包长;
适配下载器及目标设备的硬件性能;
向目标设备发送升级文件。
2.根据权利要求1所述的OBD嵌入式设备固件升级方法,其特征在于,所述向目标设备发送升级文件步骤包括:
当目标设备接收到升级指示字符后,向下载器发送是否需要将升级文件切割成若干部分进行传输的信息;
若需分包传输,则目标设备向下载器发送每一个分包的字节数。
3.根据权利要求2所述的OBD嵌入式设备固件升级方法,其特征在于,所述向目标设备发送升级文件的步骤还包括:
在一个分包传输完成后,所述下载器得到了正确的分包校验值后,再传送下一包。
4.根据权利要求1所述的OBD嵌入式设备固件升级方法,其特征在于,所述向目标设备发送升级文件步骤包括:
下载器判断是否已经将所有的数据发送完毕,若是,则询问目标设备升级数据包整体校验值。
5.根据权利要求1所述的OBD嵌入式设备固件升级方法,其特征在于,所述方法还包括:
若在固件升级的过程中,发生不可恢复的异常,则会停止升级,并发出提示信息。
6.根据权利要求3所述的OBD嵌入式设备固件升级方法,其特征在于,如果分包校验值错误,则先要判断是否已经达到分包重发次数最大值,如果没有则进行重发处理。
7.根据权利要求1所述的OBD嵌入式设备固件升级方法,其特征在于,所述下载器支持FDCAN总线,并具有USB接口及外置FLASH存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010957982.9A CN112015453A (zh) | 2020-09-14 | 2020-09-14 | Obd嵌入式设备固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010957982.9A CN112015453A (zh) | 2020-09-14 | 2020-09-14 | Obd嵌入式设备固件升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112015453A true CN112015453A (zh) | 2020-12-01 |
Family
ID=73521394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010957982.9A Pending CN112015453A (zh) | 2020-09-14 | 2020-09-14 | Obd嵌入式设备固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015453A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160253849A1 (en) * | 2015-02-27 | 2016-09-01 | TrueLite Trace, Inc. | Unknown on-board diagnostics (obd) protocol interpreter and conversion system |
CN107943007A (zh) * | 2017-12-14 | 2018-04-20 | 吉旗(成都)科技有限公司 | 一种不同车型发动机数据的编解码方法 |
CN110134422A (zh) * | 2019-04-19 | 2019-08-16 | 东风汽车集团有限公司 | 基于obd与can总线下载闪存驱动升级控制器软件的***及方法 |
CN110557310A (zh) * | 2018-05-31 | 2019-12-10 | 迈来芯科技有限公司 | 数据总线接收器中的灵活数据速率处理 |
-
2020
- 2020-09-14 CN CN202010957982.9A patent/CN112015453A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160253849A1 (en) * | 2015-02-27 | 2016-09-01 | TrueLite Trace, Inc. | Unknown on-board diagnostics (obd) protocol interpreter and conversion system |
CN107943007A (zh) * | 2017-12-14 | 2018-04-20 | 吉旗(成都)科技有限公司 | 一种不同车型发动机数据的编解码方法 |
CN110557310A (zh) * | 2018-05-31 | 2019-12-10 | 迈来芯科技有限公司 | 数据总线接收器中的灵活数据速率处理 |
CN110134422A (zh) * | 2019-04-19 | 2019-08-16 | 东风汽车集团有限公司 | 基于obd与can总线下载闪存驱动升级控制器软件的***及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694579B (zh) | 储能***的远程升级方法、能量管理***和电池管理*** | |
CN103530146B (zh) | 低功耗嵌入式设备远程无线升级方法 | |
EP1152338A2 (en) | Method and apparatus for downloading firmware | |
CN108337120A (zh) | 一种物联网终端设备的远程升级方法 | |
CN101605189B (zh) | 智能平台管理控制器的在线升级***和方法 | |
CN102185754B (zh) | 交换机***中板卡的升级方法 | |
CN109857437A (zh) | 一种蓝牙设备的升级方法及*** | |
CN101621411B (zh) | 微控制器远程更新方法和更新*** | |
WO2010135897A1 (zh) | 一种独占闪存组合设备空中固件升级方法及装置 | |
CN110262820A (zh) | 基于mqtt协议实现ota升级的方法、装置、***与存储介质 | |
CN113746892B (zh) | 一种远程升级方法及无线终端设备 | |
US20030033026A1 (en) | Drive controller operator interface and serial protocol | |
CN114915671A (zh) | 一种基于NB-IoT的路灯控制器的远程升级方法 | |
CN114745740B (zh) | 一种智能家电的升级***及方法 | |
US11995436B2 (en) | Out-of-band updating method and system of expander | |
KR101428778B1 (ko) | 원격검침 단말의 원격 펌웨어 업그레이드 장치 및 방법 | |
CN108958781B (zh) | 一种远程嵌入式固件在线升级方法 | |
CN114020304A (zh) | 一种基于LoRaWan的OTA实现方法、终端设备及计算机存储介质 | |
CN112015453A (zh) | Obd嵌入式设备固件升级方法 | |
CN109889368B (zh) | 一种基于stm32控制器的gprs远程升级方法 | |
CN110308916B (zh) | 基于lorawan协议的OTA升级方法、装置、设备、***及存储介质 | |
JP3545659B2 (ja) | プログラム更新方法および通信端末装置 | |
US20040127202A1 (en) | Method for remotely updating software for radio port | |
CN113849213A (zh) | 一种边缘设备的ota升级***及方法 | |
CN114020294A (zh) | 一种ecu无线升级的方法、***及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201201 |
|
RJ01 | Rejection of invention patent application after publication |