CN105389281A - Can总线数据发送、接收方法及固件升级方法 - Google Patents
Can总线数据发送、接收方法及固件升级方法 Download PDFInfo
- Publication number
- CN105389281A CN105389281A CN201510673954.3A CN201510673954A CN105389281A CN 105389281 A CN105389281 A CN 105389281A CN 201510673954 A CN201510673954 A CN 201510673954A CN 105389281 A CN105389281 A CN 105389281A
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- index
- firmware
- protocol frame
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- G06F8/66—Updates of program code stored in read-only memory [ROM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本发明公开一种CAN总线数据发送、接收方法及固件升级方法。该CAN总线数据发送方法包括:将待传输数据按第一预定大小划分为多个块,并为每个所述块分配第一索引;将每个所述块按第二预定大小划分为多个帧,并为每个所述帧分配第二索引;根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧;发送每个所述CAN协议帧。本发明可以防止数据发送、接收过程中,引起的数据丢失导致的错乱现象,可有效提高固件升级的成功率和可靠性。
Description
技术领域
本发明涉及固件升级领域,具体而言,涉及一种CAN总线数据发送、接收方法及固件升级方法。
背景技术
目前多数多联机空调没有在线升级程序功能,对于空调功能升级、售后程序更新等方面带来很大的不便。针对此问题,我们引入了通过内、外机通讯网络(CAN通讯)直接升级程序。然而,CAN通讯标准/扩展帧的数据段只有64bit,也就是说每发送一帧CAN数据,最多只能发送8个字节的数据。
CAN数据帧在发送过程中,有可能存在数据发送不成功导致数据丢失的情况。由于固件相当于是一个按严格顺序排列的一维数组,如果数据发送、接收过程中发生数据顺序错乱或丢失,就会导致整个固件无法正常运行。因此,需要提供一种CAN总线的数据发送与接收方法,以保证数据的严格准确性。
发明内容
本发明实施例中提供一种CAN总线数据发送、接收方法及固件升级方法,以解决现有技术中CAN总线数据传输时可能发生数据顺序错乱或丢失的问题。
为实现上述目的,本发明实施例提供一种CAN总线数据发送方法,包括:将待传输数据按第一预定大小划分为多个块,并为每个所述块分配第一索引;将每个所述块按第二预定大小划分为多个帧,并为每个所述帧分配第二索引;根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧;发送每个所述CAN协议帧。
作为优选,根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧包括:使所述CAN协议帧的仲裁段包括每个所述帧对应的第一索引和第二索引;使所述CAN协议帧的数据段包含每个所述帧的数据。
作为优选,所述仲裁段还包括功能码。
作为优选,所述功能码、所述第一索引和所述第二索引依次排列。
作为优选,所述CAN协议帧还包括位于所述仲裁段和所述数据段之间的数据长度字段。
作为优选,所述CAN协议帧还包括检验码。
作为优选,所述第一预定大小为1024字节,所述第二预定大小为8字节。
本发明还提供了一种CAN总线数据接收方法,包括:接收由上述的CAN总线数据发送方法所发送的CAN协议帧;根据所述CAN协议帧解析出帧数据;根据所述CAN协议帧的所述第一索引和所述第二索引识别出每个所述CAN协议帧中的帧数据在待传输数据中对应的位置;根据所述位置将解析出的所述帧数据组装还原成所述待传输数据。
本发明还提供了一种固件升级方法,包括:利用上述的CAN总线数据接收方法获取待升级固件;烧写所述待升级固件。
作为优选,烧写所述待升级固件包括:通过主控芯片内的bootloader烧写所述待升级固件。
作为优选,将所述待升级固件烧写进入空调室内机的非易失性存储器中。
由于采用了上述技术方案,本发明可以防止数据发送、接收过程中,引起的数据丢失导致的错乱现象,可有效提高固件升级的成功率和可靠性。
附图说明
图1是本发明实施例的CAN总线数据发送方法的流程图;
图2是本发明实施例的CAN总线数据帧的格式示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细描述,但不作为对本发明的限定。
请参考图1,本发明提供了一种CAN总线数据发送方法,包括:将待传输数据按第一预定大小划分为多个块,并为每个所述块分配第一索引;将每个所述块按第二预定大小划分为多个帧,并为每个所述帧分配第二索引;根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧;发送每个所述CAN协议帧。其中,第一索引构成一级索引,第二索引构成二级索引,二者结合可以实现对所有帧的索引定位。
发送时,先将待传输数据划分为多个块,然后再将每个块划分为多个帧,并给每个块和每个帧分别分配一个第一索引和第二索引。这样,每个帧都能通过第一索引和第二索引确定其在整个待传输数据中的位置。于是,使得接收方可以根据第一索引和第二索引,将其接收到的多个帧按照与待传输数据中的原始顺序及位置,重组成与待传输数据一致的接收数据。
可见,由于采用了上述技术方案,本发明可以防止数据发送、接收过程中,引起的数据丢失导致的错乱现象,可有效提高固件升级的成功率和可靠性。
为了保证待传输数据(如程序代码)在传输过程中的准确性,并且考虑到CAN通讯协议帧格式的特殊性,在一个优选的实施例中,请参考图2,根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧包括:使所述CAN协议帧的仲裁段包括每个所述帧对应的第一索引和第二索引;使所述CAN协议帧的数据段包含每个所述帧的数据。优选地,所述仲裁段还包括功能码。如图2所示,在一个CAN协议帧中,其仲裁段中包含了第一索引和第二索引,而其数据段则用来传输每个帧所对应的数据。因此,通过对CAN协议帧的仲裁段的解析即可得知其数据段中的数据所对应的第一索引和第二索引,从而确定该数据的位置。优选地,所述功能码、所述第一索引和所述第二索引依次排列。例如,可以按由低字节向高字节的方向依次排列。优选地,数据段可用来传输1至8个字节的数据。
请参考图2,优选地,所述CAN协议帧还包括位于所述仲裁段和所述数据段之间的数据长度字段,优选地,数据长度字段最大8byte。优选地,所述CAN协议帧还包括检验码。利用检验码,可以对传输数据的正确性进行校验。
优选地,在一个实施例中,所述第一预定大小为1024字节,所述第二预定大小为8字节。显然,第一预定大小和第二预定大小也可以是其他值。当第一预定大小为1024字节,所述第二预定大小为8字节时,待传输数据将被划分为多个1024BYTE大小的块,而每个块将会被进一步划分为128个8字节的帧。也就是说,1K的数据将被分成128个帧,并在128个CAN协议帧中发送。此时,第一索引表示第mK的代码数据(其中,m小于芯片ROM的容量),第二索引表示1K数据中的第帧数据(其中,n小于等于128)。这样,就可以把待传输数据(例如程序代码)数组按严格的顺序进行区分、识别。
例如,大小为100K的程序代码就可以分成100*128个帧数据,而每一帧的数据都有其“第一索引”和“第二索引”作为识别地址。在一个例子中,如果一CAN协议帧中的第一索引为1,第二索引为125,那么,该CAN协议帧中的数据段中的数据是这个100K的程序代码的第1K里面的第125帧的数据。
本发明还提供了一种CAN总线数据接收方法,包括:接收由上述的CAN总线数据发送方法所发送的CAN协议帧;根据所述CAN协议帧解析出帧数据;根据所述CAN协议帧的所述第一索引和所述第二索引识别出每个所述CAN协议帧中的帧数据在待传输数据中对应的位置;根据所述位置将解析出的所述帧数据组装还原成所述待传输数据。
本发明还提供了一种固件升级方法,包括:利用上述的CAN总线数据接收方法获取待升级固件;烧写所述待升级固件。优选地,将所述待升级固件烧写进入空调室内机的非易失性存储器中。
由于固件一般比较大,通常为几十K到几百K(1K=1024byte),并且固件是严格按照程序地址排列的一系列数据,因此可以把固件理解为一个庞大的一维数组。在固件升级的过程中,必须使此庞大的固件所对应的一维数据经过CAN网络传送到各个空调内机后不能出现顺序错乱,即必须要保证空调内机设备接收到的固件数组与发送的固件数组严格一致,否则程序就无法正常运行。
在本发明中,待升级的固件通过上述的CAN总线数据发送方法发送到待升级的控制装置(例如空调室内机的控制板)上,其主控芯片按照上述的CAN总线数据接收方法接收并重组数据,从而得到与原始固件对应的数据,避免了数据顺序的错乱。
优选地,烧写所述待升级固件包括:通过主控芯片内的bootloader烧写所述待升级固件。这样,当需要对空调室内机的固件进行升级时,空调内机可通过以上方式接收到需更新的固件,然后通过主控芯片内部的bootloader将固件写入芯片的ROM中。
本发明采用两级索引来对待传输数据(例如固件)进行严格拆分与识别,利用此方法进行数据传输,可有效地保证数据传输与接收的一致性,保证了固件升级的可靠性。
当然,以上是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明基本原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (11)
1.一种CAN总线数据发送方法,其特征在于,包括:
将待传输数据按第一预定大小划分为多个块,并为每个所述块分配第一索引;
将每个所述块按第二预定大小划分为多个帧,并为每个所述帧分配第二索引;
根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧;
发送每个所述CAN协议帧。
2.根据权利要求1所述的CAN总线数据发送方法,其特征在于,根据每个所述帧的数据、以及每个所述帧所对应的所述第一索引和所述第二索引构建CAN协议帧包括:
使所述CAN协议帧的仲裁段包括每个所述帧对应的第一索引和第二索引;
使所述CAN协议帧的数据段包含每个所述帧的数据。
3.根据权利要求2所述的CAN总线数据发送方法,其特征在于,所述仲裁段还包括功能码。
4.根据权利要求3所述的CAN总线数据发送方法,其特征在于,所述功能码、所述第一索引和所述第二索引依次排列。
5.根据权利要求2所述的CAN总线数据发送方法,其特征在于,所述CAN协议帧还包括位于所述仲裁段和所述数据段之间的数据长度字段。
6.根据权利要求2所述的CAN总线数据发送方法,其特征在于,所述CAN协议帧还包括检验码。
7.根据权利要求1所述的CAN总线数据发送方法,其特征在于,所述第一预定大小为1024字节,所述第二预定大小为8字节。
8.一种CAN总线数据接收方法,其特征在于,包括:
接收由所述权利要求1至7中任一项所述的CAN总线数据发送方法所发送的CAN协议帧;
根据所述CAN协议帧解析出帧数据;
根据所述CAN协议帧的所述第一索引和所述第二索引识别出每个所述CAN协议帧中的帧数据在待传输数据中对应的位置;
根据所述位置将解析出的所述帧数据组装还原成所述待传输数据。
9.一种固件升级方法,其特征在于,包括:
利用权利要求8所述的CAN总线数据接收方法获取待升级固件;
烧写所述待升级固件。
10.根据权利要求9所述的固件升级方法,其特征在于,烧写所述待升级固件包括:通过主控芯片内的bootloader烧写所述待升级固件。
11.根据权利要求9所述的固件升级方法,其特征在于,将所述待升级固件烧写进入空调室内机的非易失性存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510673954.3A CN105389281A (zh) | 2015-10-15 | 2015-10-15 | Can总线数据发送、接收方法及固件升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510673954.3A CN105389281A (zh) | 2015-10-15 | 2015-10-15 | Can总线数据发送、接收方法及固件升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105389281A true CN105389281A (zh) | 2016-03-09 |
Family
ID=55421581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510673954.3A Pending CN105389281A (zh) | 2015-10-15 | 2015-10-15 | Can总线数据发送、接收方法及固件升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105389281A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713044A (zh) * | 2016-12-30 | 2017-05-24 | 深圳市优必选科技有限公司 | 数据升级方法及装置 |
CN109039779A (zh) * | 2018-09-20 | 2018-12-18 | 珠海格力电器股份有限公司 | 设备升级方法、数据传输单元、控制器局域网络设备和网络 |
CN111104139A (zh) * | 2019-12-20 | 2020-05-05 | 苏州浪潮智能科技有限公司 | 一种固件升级方法、装置、设备及存储介质 |
CN111399878A (zh) * | 2020-03-10 | 2020-07-10 | 珠海格力电器股份有限公司 | 数据传输方法及装置多联机群系统机组升级方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728892B1 (en) * | 1999-09-15 | 2004-04-27 | Koninklijke Philips Electronics N.V. | Method for conserving power in a can microcontroller and a can microcontroller that implements this method |
CN101764730A (zh) * | 2009-12-18 | 2010-06-30 | 航天东方红卫星有限公司 | 一种can总线数据传输方法 |
CN101770234A (zh) * | 2009-12-25 | 2010-07-07 | 奇瑞汽车股份有限公司 | 一种基于saej1939的车身控制器诊断系统 |
CN102932224A (zh) * | 2012-11-23 | 2013-02-13 | 哈尔滨工业大学 | 基于can网络的数据通讯系统及基于该系统的数据通讯方法 |
CN103200078A (zh) * | 2012-01-06 | 2013-07-10 | 珠海格力电器股份有限公司 | 网关、通讯网络及数据处理方法 |
CN103973406A (zh) * | 2014-05-15 | 2014-08-06 | 电子科技大学 | 一种控制器局域网总线的提速方法 |
-
2015
- 2015-10-15 CN CN201510673954.3A patent/CN105389281A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728892B1 (en) * | 1999-09-15 | 2004-04-27 | Koninklijke Philips Electronics N.V. | Method for conserving power in a can microcontroller and a can microcontroller that implements this method |
CN101764730A (zh) * | 2009-12-18 | 2010-06-30 | 航天东方红卫星有限公司 | 一种can总线数据传输方法 |
CN101770234A (zh) * | 2009-12-25 | 2010-07-07 | 奇瑞汽车股份有限公司 | 一种基于saej1939的车身控制器诊断系统 |
CN103200078A (zh) * | 2012-01-06 | 2013-07-10 | 珠海格力电器股份有限公司 | 网关、通讯网络及数据处理方法 |
CN102932224A (zh) * | 2012-11-23 | 2013-02-13 | 哈尔滨工业大学 | 基于can网络的数据通讯系统及基于该系统的数据通讯方法 |
CN103973406A (zh) * | 2014-05-15 | 2014-08-06 | 电子科技大学 | 一种控制器局域网总线的提速方法 |
Non-Patent Citations (2)
Title |
---|
肖维荣: "《工业控制与智能制造丛书 开源实时以太网POWERLINK详解》", 31 August 2015 * |
黄剑: "基于CANopen协议的交流伺服驱动器的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713044A (zh) * | 2016-12-30 | 2017-05-24 | 深圳市优必选科技有限公司 | 数据升级方法及装置 |
CN106713044B (zh) * | 2016-12-30 | 2020-04-07 | 深圳市优必选科技股份有限公司 | 数据升级方法及装置 |
CN109039779A (zh) * | 2018-09-20 | 2018-12-18 | 珠海格力电器股份有限公司 | 设备升级方法、数据传输单元、控制器局域网络设备和网络 |
CN109039779B (zh) * | 2018-09-20 | 2020-09-29 | 珠海格力电器股份有限公司 | 设备升级方法、数据传输单元、控制器局域网络设备和网络 |
CN111104139A (zh) * | 2019-12-20 | 2020-05-05 | 苏州浪潮智能科技有限公司 | 一种固件升级方法、装置、设备及存储介质 |
CN111399878A (zh) * | 2020-03-10 | 2020-07-10 | 珠海格力电器股份有限公司 | 数据传输方法及装置多联机群系统机组升级方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522264B (zh) | 设备的控制方法及装置、存储介质、电子装置 | |
CN107124421B (zh) | 基于多协议的通信方法、多协议网关设备及可存储介质 | |
CN105389281A (zh) | Can总线数据发送、接收方法及固件升级方法 | |
CN105260337B (zh) | 一种单片机的自动编址方法及系统 | |
CN104917586A (zh) | 传输数据的校验方法、装置及系统 | |
CN104949288A (zh) | 多联空调机组及其程序升级系统和方法、程序升级装置 | |
CN109147788B (zh) | 本地语音库的更新方法及装置 | |
CN106681777A (zh) | 一种多联机程序快速升级方法 | |
CN105119749A (zh) | 一种家庭网关本地批量升级的方法和系统 | |
US20210156584A1 (en) | Data Sending Method, Multi-Connected System, Electronic Device and Storage Medium | |
CN103472779A (zh) | 智能家居楼宇控制系统及其接入空调系统的方法 | |
CN105180378A (zh) | 空调及其升级控制方法和装置 | |
CN107273158B (zh) | 程序升级方法及装置、主机、从机和多联机空调系统 | |
CN103442250A (zh) | 电视机调试系统和方法 | |
CN105259806A (zh) | 控制器升级方法和系统及主控制器和从控制器 | |
US11552818B2 (en) | Relay device and multi-split air-conditioning control systems | |
CN108800454A (zh) | 数据同步方法及装置、多联机空调系统 | |
CN107249048A (zh) | 空调系统及其地址分配方法和装置 | |
CN106603737A (zh) | 一种多联机空调系统、内机地址分配方法以及控制方法 | |
CN108662718B (zh) | 空调器的组网方法和装置 | |
CN110275721A (zh) | 多联空调系统及其升级方法、升级装置和空调设备 | |
CN105302751A (zh) | 数据处理方法、装置及电子设备 | |
EP3065329A3 (en) | Aggregated data frame structures | |
CN106130771B (zh) | 一种基于带内以太网络在线升级flash的方法 | |
CN106603506A (zh) | 基于多现场总线的数据通信方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160309 |
|
RJ01 | Rejection of invention patent application after publication |