CN101673202B - 一种程序烧写方法和***以及一种待烧写装置和烧写装置 - Google Patents
一种程序烧写方法和***以及一种待烧写装置和烧写装置 Download PDFInfo
- Publication number
- CN101673202B CN101673202B CN200810212020A CN200810212020A CN101673202B CN 101673202 B CN101673202 B CN 101673202B CN 200810212020 A CN200810212020 A CN 200810212020A CN 200810212020 A CN200810212020 A CN 200810212020A CN 101673202 B CN101673202 B CN 101673202B
- Authority
- CN
- China
- Prior art keywords
- motherboard
- daughter board
- user program
- program
- advance
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000008569 process Effects 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 4
- 239000000203 mixture Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序烧写方法,预先将带有控制器局域网络(CAN)模块的母板以及带有CAN模块的子板通过CAN总线相连;其中,子板中预先烧写有引导程序;子板进行复位,利用引导程序确定是否需要进行用户程序的更新,如果是,则通过CAN总线接收来自母板的用户程序,该用户程序为母板中预先保存的子板的用户程序,并写入到子板的缓存中。本发明同时公开了一种程序烧写***、一种待烧写装置以及一种烧写装置。应用本发明所述的方法、***和装置,可通过CAN总线直接更新子板中的用户程序,省去了每次更新都需要拆卸子板的麻烦;而且,可以脱机烧写,不需要电脑和其它开发工具,只需母板和CAN总线即可,方便了用户使用。
Description
技术领域
本发明涉及烧写技术,特别涉及一种利用控制器局域网络(CAN,Controller Area Network)总线来实现的脱机程序烧写方法和***,以及一种待烧写装置和烧写装置。
背景技术
在汽车技术高速发展的今天,车身上面的电子产品越来越多。在开发及测试时,这些电子产品中的用户程序经常需要进行更新。但是,这些电子产品通常都是被内饰隐藏在里面的,所以,每次进行程序更新时,都需要从车上拆下这些电子产品来重新进行程序烧写,烧写完成之后,再将其重新安装上去;而且,重新烧写过程通常都是在非脱机状态下,由电脑及开发设备等必要工具的辅助才能完成。总之,用户实际操作起来很不方便。
发明内容
有鉴于此,本发明的主要目的在于提供一种程序烧写方法,能够方便用户使用。
本发明的另一目的在于提供一种程序烧写装置,能够方便用户使用。
本发明的又一目的在于提供一种待烧写装置,能够方便用户使用。
本发明的再一目的在于提供一种烧写装置,能够方便用户使用。
为达到上述目的,本发明的技术方案是这样实现的:
一种程序烧写方法,预先将带有控制器局域网络CAN模块的用于进行程序烧写的母板以及带有CAN模块的等待进行程序烧写的子板通过CAN总线相连;其中,所述子板中预先烧写有引导程序;该方法包括:
所述子板进行复位后,利用所述引导程序确定是否需要进行用户程序的更 新,如果是,则通过所述CAN总线接收来自所述母板的用户程序,所述用户程序为所述母板预先保存于自身缓存Flash中的所述子板的用户程序,并写入到所述子板的Flash中。
一种程序烧写***,该***包括:
带有控制器局域网络CAN模块的用于进行程序烧写的母板以及带有CAN模块的等待进行程序烧写的子板,两者通过CAN总线相连,所述母板中预先烧写有母板程序,所述子板中预先烧写有引导程序;其中:
所述子板,用于在复位后,利用所述引导程序确定是否需要进行用户程序的更新,如果是,则通过所述CAN总线接收来自所述母板的用户程序,所述用户程序为所述母板中预先保存的所述子板的用户程序,并写入到自身的缓存Flash中;
所述母板,用于在自身的Flash中保存所述子板的用户程序,并在接收到需要给所述子板中的用户程序进行更新的命令后,由所述母板程序读取所述母板Flash中保存的所述子板的用户程序,并通过CAN总线发送给所述子板。
一种待烧写装置,该装置包括:第一控制器局域网络CAN模块以及第一存储模块;
所述待烧写装置通过所述第一CAN模块与同样具备CAN模块的烧写装置利用CAN总线相连;所述第一存储模块中预先烧写有引导程序;
所述第一存储模块,用于在复位后,利用所述引导程序确定是否需要进行用户程序的更新,如果是,则通过所述CAN总线接收来自所述烧写装置的用户程序,所述用户程序为所述烧写装置中预先保存的所述待烧写装置的用户程序,并写入到自身的缓存Flash中。
一种烧写装置,该装置包括:第二控制器局域网络CAN模块以及第二存储模块;
所述烧写装置通过所述第二CAN模块与同样具备CAN模块的待烧写装置利用CAN总线相连;所述第二存储模块中预先烧写有母板程序;
所述第二存储模块,用于在自身的缓存Flash中保存所述待烧写装置的用户程序,并在接收到需要给所述待烧写装置中的用户程序进行更新的命令后,由所述母板程序读取所述Flash中保存的所述待烧写装置的用户程序,并通过CAN总线发送给所述待烧写装置。
可见,采用本发明的技术方案,预先将带有CAN模块的母板以及带有CAN模块的子板通过CAN总线相连接;当子板进行复位后,确定是否需要进行用户程序的更新,如果是,则通过CAN总线接收来自母板中预先保存的用户程序,并写入到自身的Flash中。与现有技术相比,本发明所述方案中可通过CAN总线直接更新子板中的用户程序,省去了每次更新都需要拆卸子板的麻烦;而且,可以脱机烧写,不需要电脑和其它开发工具,只需母板和CAN总线即可完成程序更新的过程,简单快捷,方便了用户使用。
附图说明
图1为本发明程序烧写方法实施例的流程图。
图2为本发明程序烧写***实施例的组成结构示意图。
图3为本发明待烧写装置实施例的组成结构示意图。
图4为本发明烧写装置实施例的组成结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明提出一种利用CAN总线实现的脱机烧写方案。其具体实现包括:预先将带有CAN模块的用于进行程序烧写的母板以及带有CAN模块的等待进行程序烧写的子板通过CAN总线相连;子板在进行复位后,确定是否需要进行用户程序的更新,如果是,则通过CAN总线接收来自母板的用户程序,并写入到自身的缓存(Flash)中。
这里所提到的用户程序是指母板中预先保存的子板的用户程序。对于母板来说,在其上电后,根据接收到的用户命令确定是需要给子板中的用户程序进行更新,还是需要给自身预先保存的所述子板的用户程序进行更新;如果是需 要给子板中的用户程序进行更新,则将自身预先保存的子板用户程序通过CAN总线发送给子板;否则,擦除自身Flash中预先保存的子板用户程序,并从上位机接收新的用户程序,写入到自身的Flash中;之后,当接收到需要给子板中的用户程序进行更新的命令后,将自身Flash中保存的子板用户程序通过CAN总线发送给子板。对于上位机来说,其预先会将子板的源程序编译成HEX文件并进行保存,当接收到来自用户的文件发送命令后,将该HEX文件发送给母板,以对母板中保存的子板用户程序进行更新。
在实际应用中,上述母板和子板的确定及写入等功能可分别由预先烧写在母板中的母板程序以及子板中的引导程序来完成。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步地详细说明。
图1为本发明程序烧写方法实施例的流程图。假设本实施例中的母板在更新子板中的用户程序之前,首先需要对自身保存的子板用户程序进行更新。另外,假设本实施例中的母板和子板单片机均为带有CAN模块的***接口控制器(PIC,Peripheral Interface Controller)18系列单片机;其中母板的PIC18系列单片机可为PIC18系列的4680,通过串口与上位机进行通讯。那么,如图1所示,包括以下步骤:
步骤101:将母板和上位机进行连接。
假设本步骤之前,预先已经将子板的源程序通过编译软件编译成了HEX文件并保存在上位机中,具体如何编译为现有技术,不再赘述。本步骤中,使用串口线将母板和上位机,如个人计算机(PC,Personal Computer)连接起来。
步骤102:打开位于上位机中的串口调试助手SSCOM3.2,设置好正确的波特率(默认为19200bps),并对母板进行上电。
串口调试助手将打印出字符“3A”,以提示用户进入将HEX文件发送到母板上的阶段。
本实施例中,采用现有的串口调试工具串口调试助手SSCOM3.2作为上位机软件,从而节省了重新开发上位机软件所需的时间。
步骤103:母板进行上电,并判断是需要给子板中的用户程序进行更新,还是需要给自身预先保存的子板用户程序进行更新,如果是需要给子板中的用户程序进行更新,则执行步骤109;否则,执行步骤104。
母板上预先设置有不同的按键,每个按键分别代表不同的功能,比如,用于代表更新子板中的用户程序的按键以及用于代表更新母板中保存的子板用户程序的按键等。用户可通过操作这些按键向母板发出相应的命令,母板接收到用户的命令后,即会执行相应的功能。由于本实施例中需要对母板中保存的子板用户程序进行更新,所以,在母板上电完成后,用户需要按下母板上相应的按键,以通知母板进入更新状态。母板根据接收到的用户命令进行判断,以确定是需要给子板中的用户程序进行更新,还是需要给自身预先保存的子板用户程序进行更新,如果是第一种情况,则执行步骤109;如果是第二种情况,则执行步骤104。
步骤104:母板擦除自身Flash中原有的子板用户程序,并等待来自上位机的新的用户程序。
步骤105:用户在串口调试助手SSCOM3.2所显示的界面中打开“选择文件”按钮,并选择要发送给母板的HEX文件,然后点击“发送文件”按钮;上位机随即将用户所选择的HEX文件发送给母板。
本步骤中所提到的要发送给母板的HEX文件,即为步骤101中所提到的利用子板的源程序编译而成的HEX文件。
步骤106:母板接收来自上位机的HEX文件,并写入到自身的Flash中。
HEX文件的发送时长视HEX文件的大小而定。另外,可在母板上设置指示灯,用于指示母板所处的不同的工作状态。比如,在接收HEX文件的过程中,母板上的指示灯可通过持续闪烁,提示用户当前是在对母板中保存的子板用户程序进行更新。
另外,母板在接收到来自上位机的HEX文件后,还可对其进行校验,以保证接收到的数据是正确的,从而避免将错误的数据写入到Flash中。具体如何校验为现有技术,不再赘述。
步骤107:HEX文件发送完毕后,串口调试助手SSCOM3.2显示“发送完毕”的提示。
之后,即可进入由母板对子板中的用户程序进行更新的过程。
步骤108:利用CAN总线将母板和子板进行连接,并对子板进行上电。
步骤109:母板根据接收到的用户命令,向子板发送通知命令,以通知子板需要进行用户程序的更新。
依据之前的介绍可知,母板上设置有不同的按键,本步骤中,用户点击相应的按键(与母板单片机的RB5引脚相连的按键)后,母板即可知道当前需要进入对子板中的用户程序进行更新的过程,随即向子板发出通知命令。此时,如果母板仍然和上位机处于连接状态,则串口调试助手SSCOM3.2会打印出字符“2008”,如果进入失败,则串口调试助手SSCOM3.2会打印出字符“E00E”。
另外,本实施例中,可定义母板和子板之间利用CAN总线进行通信的协议。比如,母板向子板发送的通知命令可以为:
uchar StartUpdata[8]={0xff,0xaa,0x55,0x00,0x20,0x08,0x06,0x13}。
步骤110:子板进行复位,判断是否需要进行用户程序的更新,如果是,则执行步骤111;否则,结束流程。
子板判断是否需要进行用户程序的更新的方式可以是:子板判断是否接收到母板发来的通知命令,且该通知命令中顺序携带有0xff、0xaa、0x55、0x00、0x20、0x08、0x06以及0x138个字符,如果是,则确定需要进行用户程序的更新,执行步骤111;对于“否则”这种情况,由于子板如何进行后续的处理与本发明无关,故不作详细介绍,比如可以直接运行Flash中原有的用户程序等。本步骤中,子板如何进行复位为现有技术,不再赘述。
步骤111:子板执行与母板之间的握手过程。
用户点击相应的按键(与母板单片机的RB7引脚相连的按键),以通知母板开始进行与子板之间的数据帧转送过程,但在执行这一过程之前,需要首先执行母板与子板之间的握手过程,具体实现方式为:
母板向子板发送握手命令:
uchar StartHandShake[8]={0xff,0xaa,0x55,0x00,0x19,0x84,0x11,0x20};
子板正确接收到上述8个字符后,向母板返回确认字符“0x20”;进一步地,在向母板返回确认字符“0x20”之前,子板还需要确定自身Flash中是否保存有用户程序,如果有,则擦除;
母板接收到确认字符“0x20”后,确认握手完毕,开始向子板发送数据帧。
步骤112:母板向子板发送更新子板用户程序的数据帧,子板将接收到的数据写入到自身的Flash中,然后结束流程。
本步骤中,母板通过CAN总线向子板发送数据帧,每一帧的格式为:
帧头:
母板向子板发送帧头字符“0x55”,等待子板返回第一握手字符“0xcc”;
子板接收到帧头字符“0x55”后,发送第一握手字符“0xcc”给母板;
母板接收到第一握手字符“0xcc”后,开始进行数据部分的发送;
数据:
母板读取自身Flash中的一个地址块(每个地址块中包括64个字节的用户程序数据),并将读取到的数据发送给子板,一共发送64个字节;
子板接收到这64字节后,将其暂存到一个64字节的缓冲区中;
校验:
母板接着发送校验和给子板;
子板根据接收到的校验和对暂存在缓冲区中的数据进行校验,具体如何校验为现有技术,不再赘述;如果校验成功,则将暂存在缓冲区中的数据写入到自身的Flash中,并发送第三握手字符“0x79”给母板,母板接收到第三握手字符“0x79”后,接着发送帧尾给子板;如果校验失败,则发送第二握手字符“0xe9”给母板,母板接收到此第二握手字符“0xe9”后,会对数据进行重发,即重复执行上述发送帧头、数据以及校验的过程,直到校验成功为止。
帧尾:
母板向子板发送第一帧尾字符“0xaa”,并等待子板返回第四握手字符 “0x88”;
子板接收到第一帧尾字符“0xaa”后,发送第四握手字符“0x88”给母板;
母板接收到第四握手字符“0x88”后,接着发送下一个地址块的数据。
结束:
母板按照上述方式依次发送自身Flash中随后的地址块中的数据,但对于最后一个地址块,发送帧尾的方式将有所不同,这种情况下,母板将直接向子板发送第二帧尾字符“0x69”;同时,如果和上位机还处于连接状态的话,向上位机发送字符“0x88”,相应地,上位机中的串口调试助手SSCOM3.2会打印出字符“88”,以提示用户更新过程结束。
另外,在上述母板向子板发送数据帧的过程中,如果母板仍然和上位机处于连接状态,那么串口调试助手SSCOM3.2会将所发送的HEX文件的数据打印出来,但前提是,用户需要预先选中串口调试助手所显示的界面中的“HEX显示”按钮。同时,母板上的指示灯会通过不断的闪烁来提示用户当前正在对子板的用户程序进行更新。
至此,即完成了对子板中的用户程序的更新过程,之后,子板即可根据需要运行其更新后的用户程序。
需要说明的是,如果在母板向子板发送数据帧的过程中,母板或子板发生死机,***会自动复位,并可看到串口调试助手再次打印出字符“3A”,当然,前提是母板和上位机处于连接状态;同时,母板上的指示灯会恢复为复位状态,此时只需重新从步骤108中所述的对子板进行复位开始执行即可。
基于上述方法,图2为本发明程序烧写***实施例的组成结构示意图。如图2所示,该***包括:带有CAN模块的用于进行程序烧写的母板21以及带有CAN模块的等待进行程序烧写的子板22,两者通过CAN总线相连,并且,母板21中预先烧写有母板程序,子板22中预先烧写有引导程序;其中:
子板22,用于在复位后,利用引导程序确定是否需要进行用户程序的更新,如果是,则通过CAN总线接收来自母板21的用户程序,所述用户程序为母板21中预先保存的子板22的用户程序,并写入到自身的Flash中;
母板21,用于在自身的Flash中保存子板22的用户程序,并在接收到需要给子板22中的用户程序进行更新的命令后,由母板程序读取母板21的Flash中保存的子板22的用户程序,并通过CAN总线发送给子板22;该母板21还可进一步用于,在上电后,根据接收到的用户命令,由母板程序确定是需要给子板22中的用户程序进行更新,还是需要给自身预先保存的子板22的用户程序进行更新,如果是需要给自身预先保存的子板22的用户程序进行更新,则擦除自身Flash中预先保存的子板22的用户程序,并接收新的用户程序,写入到自身的Flash中。在实际应用中,可通过设置在母板21上的指示灯(未图示)来指示母板21当前所处的工作状态,且脱机可用。
此外,该***还可进一步包括:上位机23,用于将子板22的源程序编译成HEX文件并进行保存,在接收到来自用户的文件发送命令后,将该HEX文件发送给母板21。
本实施例中,母板21和子板22的单片机均为PIC18系列单片机,其中母板21的PIC18系列单片机上带有串口,通过该串口与上位机23进行通讯。另外,原则上,母板21内的母板程序和子板22内的引导程序可以存放在母板21和子板22中的整个程序空间中的任何位置,但是为了简单方便、具有通用性和尽量减少对用户程序的影响,本实施例中将母板程序和子板程序均烧写在各自内存的最后3K的一段程序空间中;而且,子板中的用户程序的入口地址(主函数地址)可统一定位在0x200。另外,在实际应用中,用户程序的大小会受到母板内存大小的限制,如果当前母板单片机的内存不能满足要求,可选用内存较大的带有CAN模块和串口的其它PIC单片机来进行开发。
图3为本发明待烧写装置实施例的组成结构示意图。如图3所示,该装置包括:第一CAN模块31以及第一存储模块32;
该待烧写装置通过第一CAN模块31与同样具备CAN模块的烧写装置利用CAN总线相连;第一存储模块32中预先烧写有引导程序;
第一存储模块32,用于在复位后,利用所述引导程序确定是否需要进行用户程序的更新,如果是,则通过CAN总线接收来***写装置的用户程序,所 述用户程序为烧写装置中预先保存的所述待烧写装置的用户程序,并写入到自身的Flash中。
图4为本发明烧写装置实施例的组成结构示意图。如图4所示,该装置包括:第二CAN模块41以及第二存储模块42;
该烧写装置通过第二CAN模块41与同样具备CAN模块的待烧写装置利用CAN总线相连;第二存储模块42中预先烧写有母板程序;
第二存储模块42,用于在自身的Flash中保存待烧写装置的用户程序,并在接收到需要给待烧写装置中的用户程序进行更新的命令后,由母板程序读取自身Flash中保存的子板的用户程序,并通过CAN总线发送给待烧写装置。
另外,上述第二存储模块42还可进一步用于,在上电后,根据接收到的用户命令,利用母板程序确定是需要给待烧写装置中的用户程序进行更新,还是需要给自身预先保存的待烧写装置的用户程序进行更新,如果是需要给自身预先保存的待烧写装置的用户程序进行更新,则擦除自身Flash中预先保存的待烧写装置的用户程序,并接收新的用户程序,写入到自身的Flash中。
图2、3和4所述***和装置实施例的具体工作流程请参照方法实施例中的相应说明,此处不再赘述。
总之,采用本发明的技术方案,可通过CAN总线直接更新子板中的用户程序,省去了每次更新都需要拆卸子板的麻烦;而且,可以脱机烧写,不需要电脑和其它开发工具,只需母板和CAN总线即可完成程序更新过程,且母板可自己开发,无需其它的CAN工具,节省了费用;另外,可直接使用现有的串口调试助手SSCOM3.2作为上位机软件,无需专门编写上位机软件,节省了开发时间;再有,本发明所述方案可重复操作,即在更新完一个子板后,可继续更新另一子板。总之,本发明所述方案操作简单,容易实现,方便了用户使用。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种程序烧写方法,其特征在于,预先将带有控制器局域网络CAN模块的用于进行程序烧写的母板以及带有CAN模块的等待进行程序烧写的子板通过CAN总线相连;其中,所述子板中预先烧写有引导程序;该方法包括:
所述子板进行复位,利用所述引导程序确定是否需要进行用户程序的更新,如果是,则通过所述CAN总线接收来自所述母板的用户程序,所述用户程序为所述母板预先保存于自身缓存Flash中的所述子板的用户程序,并写入到所述子板的Flash中。
2.根据权利要求1所述的方法,其特征在于,所述子板进行复位之前,进一步包括:
所述母板进行上电,并根据接收到的用户命令,利用自身预先烧写的母板程序确定是需要给所述子板中的用户程序进行更新,还是需要给自身预先保存的所述子板的用户程序进行更新;
如果是需要给所述子板中的用户程序进行更新,则将自身预先保存的所述子板的用户程序通过CAN总线发送给所述子板;
否则,擦除自身Flash中预先保存的所述子板的用户程序,并接收新的用户程序,写入到自身的Flash中;之后,当接收到需要给所述子板中的用户程序进行更新的命令后,将自身Flash中保存的所述子板的用户程序通过CAN总线发送给所述子板。
3.根据权利要求2所述的方法,其特征在于,所述接收新的用户程序包括:
预先将所述子板的源程序编译成HEX文件并保存在上位机中;
当接收到来自用户的文件发送命令后,所述上位机将所述HEX文件发送给所述母板,所述母板接收所述HEX文件。
4.根据权利要求2所述的方法,其特征在于,所述引导程序确定是否需要进行用户程序的更新包括:
如果接收到来自所述母板的通知命令,则确定需要进行用户程序的更新。
5.根据权利要求2所述的方法,其特征在于,所述通过所述CAN总线接收来自所述母板的用户程序之前,进一步包括:
所述母板向所述子板发送握手命令;
所述子板正确接收到所述握手命令后,向所述母板返回确认字符;
所述母板接收到所述确认字符后,向所述子板发送自身预先保存的所述子板的用户程序。
6.根据权利要求5所述的方法,所述子板正确接收到所述握手命令之后,进一步包括:确定自身Flash中是否保存有用户程序,如果有,则擦除。
7.根据权利要求2所述的方法,其特征在于,所述通过所述CAN总线接收来自所述母板的用户程序包括:
A1、所述子板接收来自所述母板的帧头字符,并向所述母板回送第一握手字符;
A2、所述母板接收到所述第一握手字符后,读取自身Flash中的一个地址块,并将读取到的数据发送给所述子板,所述子板将接收到的数据暂存到一个缓冲区中;
A3、所述母板向所述子板发送校验和,所述子板根据接收到的校验和对所述暂存在缓冲区中的数据进行校验,如果校验失败,则向所述母板回送第二握手字符,然后返回执行步骤A1;如果校验成功,则将所述暂存在缓冲区中的数据写入到自身的Flash中,并向所述母板回送第三握手字符;
A4、所述母板接收到所述第三握手字符后,向所述子板发送第一帧尾字符,所述子板接收到所述第一帧尾字符后,向所述母板回送第四握手字符;
A5、按照步骤A1~A4所述过程依次接收所述母板中除最后一个地址块以外的其它地址块中的数据;对于最后一个地址块,执行完步骤A1~A3后,所述母板向所述子板发送第二帧尾字符,所述子板接收所述第二帧尾字符,结束用户程序接收过程。
8.根据权利要求3所述的方法,其特征在于,所述母板和子板的单片机均为***接口控制器PIC18系列单片机;所述母板的PIC18系列单片机通过串口与所述上位机进行通讯。
9.一种程序烧写***,其特征在于,该***包括:
带有控制器局域网络CAN模块的用于进行程序烧写的母板以及带有CAN模块的等待进行程序烧写的子板,两者通过CAN总线相连,所述母板中预先烧写有母板程序,所述子板中预先烧写有引导程序;其中:
所述子板,用于在复位后,利用所述引导程序确定是否需要进行用户程序的更新,如果是,则通过所述CAN总线接收来自所述母板的用户程序,所述用户程序为所述母板中预先保存的所述子板的用户程序,并写入到自身的缓存Flash中;
所述母板,用于在自身的Flash中保存所述子板的用户程序,并在接收到需要给所述子板中的用户程序进行更新的命令后,由所述母板程序读取所述母板Flash中保存的所述子板的用户程序,并通过CAN总线发送给所述子板。
10.根据权利要求9所述的***,其特征在于,所述母板进一步用于,
在上电后,根据接收到的用户命令,由所述母板程序确定是需要给所述子板中的用户程序进行更新,还是需要给自身预先保存的所述子板的用户程序进行更新,如果是需要给自身预先保存的所述子板的用户程序进行更新,则擦除自身Flash中预先保存的所述子板的用户程序,并接收新的用户程序,写入到自身Flash中。
11.根据权利要求10所述的***,其特征在于,该***中进一步包括:
上位机,用于将所述子板的源程序编译成HEX文件并进行保存,在接收到来自用户的文件发送命令后,将所述HEX文件发送给所述母板。
12.根据权利要求9~11中任一项所述的***,其特征在于,所述母板上进一步包括:指示灯,用于指示所述母板当前所处工作状态。
13.根据权利要求9~11中任一项所述的***,其特征在于,所述母板程序烧写在所述母板内存的最后3K程序空间中;所述引导程序烧写在所述子板内存的最后3K程序空间中。
14.根据权利要求9~11中任一项所述的***,其特征在于,所述子板中的用户程序的入口地址定位在0x200。
15.根据权利要求11所述的***,其特征在于,所述母板和子板的单片机均为***接口控制器PIC18系列单片机;所述母板的PIC18系列单片机通过串口与所述上位机进行通讯。
16.一种待烧写装置,其特征在于,该装置包括:第一控制器局域网络CAN模块以及第一存储模块;
所述待烧写装置通过所述第一CAN模块与同样具备CAN模块的烧写装置利用CAN总线相连;所述第一存储模块中预先烧写有引导程序;
所述第一存储模块,用于在复位后,利用所述引导程序确定是否需要进行用户程序的更新,如果是,则通过所述CAN总线接收来自所述烧写装置的用户程序,所述用户程序为所述烧写装置中预先保存的所述待烧写装置的用户程序,并写入到自身的缓存Flash中。
17.一种烧写装置,其特征在于,该装置包括:第二控制器局域网络CAN模块以及第二存储模块;
所述烧写装置通过所述第二CAN模块与同样具备CAN模块的待烧写装置利用CAN总线相连;所述第二存储模块中预先烧写有母板程序;
所述第二存储模块,用于在自身的缓存Flash中保存所述待烧写装置的用户程序,并在接收到需要给所述待烧写装置中的用户程序进行更新的命令后,由所述母板程序读取所述Flash中保存的所述待烧写装置的用户程序,并通过CAN总线发送给所述待烧写装置。
18.根据权利要求17所述的装置,其特征在于,所述第二存储模块进一步用于,
在上电后,根据接收到的用户命令,由所述母板程序确定是需要给所述待烧写装置中的用户程序进行更新,还是需要给自身预先保存的所述待烧写装置的用户程序进行更新,如果是需要给自身预先保存的所述待烧写装置的用户程序进行更新,则擦除自身Flash中预先保存的所述待烧写装置的用户程序,并接收新的用户程序,写入到所述Flash中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810212020A CN101673202B (zh) | 2008-09-09 | 2008-09-09 | 一种程序烧写方法和***以及一种待烧写装置和烧写装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810212020A CN101673202B (zh) | 2008-09-09 | 2008-09-09 | 一种程序烧写方法和***以及一种待烧写装置和烧写装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101673202A CN101673202A (zh) | 2010-03-17 |
CN101673202B true CN101673202B (zh) | 2012-09-12 |
Family
ID=42020437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810212020A Expired - Fee Related CN101673202B (zh) | 2008-09-09 | 2008-09-09 | 一种程序烧写方法和***以及一种待烧写装置和烧写装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101673202B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
CN109459945A (zh) * | 2018-09-27 | 2019-03-12 | 北京精密机电控制设备研究所 | 一种新型多通道离线可烧写的控制驱动器及烧写方法 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101850799A (zh) * | 2010-05-31 | 2010-10-06 | 重庆长安汽车股份有限公司 | 基于混合动力汽车can总线通信的控制器flash刷写方法 |
CN101894035A (zh) * | 2010-07-12 | 2010-11-24 | 杭州开鼎科技有限公司 | 一种基于NOR Flash的EPON终端***程序更新方法 |
CN102253672B (zh) * | 2011-02-17 | 2013-04-03 | 重庆长安汽车股份有限公司 | 一种基于can总线的整车控制器在线调试方法 |
CN103135996A (zh) * | 2011-11-23 | 2013-06-05 | 上海博泰悦臻网络技术服务有限公司 | 车载设备及其程序文件更新方法 |
CN103838588A (zh) * | 2012-11-20 | 2014-06-04 | 广州市暨华医疗器械有限公司 | 通过can接口进行at90单片机程序在线更新的方法 |
CN104346179A (zh) * | 2013-07-29 | 2015-02-11 | 北京同步科技有限公司 | 通过can总线远程升级的嵌入式***及方法 |
CN103399770B (zh) * | 2013-08-09 | 2017-03-01 | 株洲南车时代电气股份有限公司 | 一种初始化嵌入式裸板程序的方法 |
CN103810131B (zh) * | 2014-02-24 | 2017-09-19 | 重庆邮电大学 | 一种车载***用蓝牙与can的数据转换装置及方法 |
CN104216714A (zh) * | 2014-09-03 | 2014-12-17 | 东方电气(乐山)新能源设备有限公司 | 基于can总线的dsp程序烧写方法 |
CN104332074B (zh) * | 2014-11-26 | 2017-07-28 | 山东大学 | 一种适用于嵌入式教育终端的无痕教育方法 |
CN105187287A (zh) * | 2015-09-16 | 2015-12-23 | 中航锂电(洛阳)有限公司 | 一种基于can总线的电池管理***软件升级方法 |
CN105224362A (zh) * | 2015-09-18 | 2016-01-06 | 深圳市新产业生物医学工程股份有限公司 | 上位机对下位机进行程序升级的方法及*** |
CN105373404A (zh) * | 2015-11-25 | 2016-03-02 | 青岛海信宽带多媒体技术有限公司 | 软件镜像烧录方法及设备 |
CN106293859A (zh) * | 2016-09-22 | 2017-01-04 | 珠海格力电器股份有限公司 | 基于控制器的软件升级或烧录方法、装置和*** |
CN108108179A (zh) * | 2017-12-15 | 2018-06-01 | 中国船舶重工集团公司第七0七研究所 | 一种基于串口的tms32c6713程序烧录flash方法 |
CN108037938B (zh) * | 2017-12-21 | 2021-08-10 | 北京兆易创新科技股份有限公司 | 一种eMMC的开卡方法 |
CN109976767B (zh) * | 2017-12-27 | 2023-06-09 | 深圳市优必选科技有限公司 | 软件烧录方法和装置 |
CN110262349A (zh) * | 2019-06-28 | 2019-09-20 | 中国航空工业集团公司雷华电子技术研究所 | 一种c8051f系列单片机的远程在线编程方法及*** |
CN112000351B (zh) * | 2020-08-07 | 2023-04-07 | 北京浪潮数据技术有限公司 | Bmc固件的更新方法、更新装置、更新设备及存储介质 |
CN111930402B (zh) * | 2020-08-27 | 2024-05-07 | 中山市天启智能科技有限公司 | 集群服务器的固件升级方法和集群服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1562654A (zh) * | 2004-03-26 | 2005-01-12 | 清华大学 | 基于ccp协议的混合动力电动汽车控制器标定方法 |
CN1606286A (zh) * | 2004-11-05 | 2005-04-13 | 清华大学 | 一种基于can总线的燃料电池汽车整车控制器监控*** |
CN1747472A (zh) * | 2005-10-17 | 2006-03-15 | 浙江大学 | 基于ccp协议的嵌入式通用标定装置及方法 |
CN1996247A (zh) * | 2006-12-21 | 2007-07-11 | 奇瑞汽车有限公司 | 一种对混合动力车控制器进行flash烧写的方法 |
-
2008
- 2008-09-09 CN CN200810212020A patent/CN101673202B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1562654A (zh) * | 2004-03-26 | 2005-01-12 | 清华大学 | 基于ccp协议的混合动力电动汽车控制器标定方法 |
CN1606286A (zh) * | 2004-11-05 | 2005-04-13 | 清华大学 | 一种基于can总线的燃料电池汽车整车控制器监控*** |
CN1747472A (zh) * | 2005-10-17 | 2006-03-15 | 浙江大学 | 基于ccp协议的嵌入式通用标定装置及方法 |
CN1996247A (zh) * | 2006-12-21 | 2007-07-11 | 奇瑞汽车有限公司 | 一种对混合动力车控制器进行flash烧写的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019788A (zh) * | 2012-12-14 | 2013-04-03 | 上海邮政科学研究院 | 一种基于can总线的远程在线升级方法 |
CN109459945A (zh) * | 2018-09-27 | 2019-03-12 | 北京精密机电控制设备研究所 | 一种新型多通道离线可烧写的控制驱动器及烧写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101673202A (zh) | 2010-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101673202B (zh) | 一种程序烧写方法和***以及一种待烧写装置和烧写装置 | |
CN104149717B (zh) | 一种用于整车控制的远程无干扰更新***和方法 | |
CN102033807B (zh) | Soc芯片调试设备、方法及装置 | |
CN101689116A (zh) | 用于更新设备驱动程序的***和方法 | |
KR102358470B1 (ko) | 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법 | |
CN104503796B (zh) | 一种基于iap的可配置全网络远程节点固件升级方法 | |
JPH06195236A (ja) | 遠隔地におけるプリンタの診断試験方法、遠隔地におけるプリンタの診断試験及びサービスに用いるプリンタ診断制御装置及びプリンタ内における操作状況の診断方法 | |
CN110286923A (zh) | 基于云端对汽车电子控制单元***升级的方法 | |
CN102999350A (zh) | 一种数字信号处理平台中fpga程序升级在线下载方法 | |
JP2006065857A (ja) | 移動通信端末機のプログラム強制ダウンロード方法及び装置 | |
CN105224480A (zh) | 一种用于响应于读取要求的存取存储器装置的方法和装置 | |
CN104077166B (zh) | 基于fpga中ip核的epcs与epcq存储器在线升级方法 | |
JP3426171B2 (ja) | 通信プロトコル変換システム、モニタ装置 | |
CN113076144A (zh) | 功放适配方法、终端设备、存储介质及计算机程序产品 | |
US6904484B1 (en) | Low pin count (LPC) firmware hub recovery | |
CN101882110A (zh) | 下载数据的方法和终端设备 | |
CN101465897B (zh) | 一种ip电话机的参数配置方法 | |
CN105530544B (zh) | 一种模块化电视的显示屏端升级方法及模块化电视 | |
CN101593123A (zh) | 闪存烧录插件的固化方法以及终端设备 | |
CN110888656A (zh) | 一种多功能烧写器及烧写方法 | |
CN103677941B (zh) | 一种实现智能卡操作***模块升级的方法及装置 | |
US20110085206A1 (en) | Data processing apparatus, data input control method thereof, information processing device, and program for implementing the method | |
US7680909B2 (en) | Method for configuration of a processing unit | |
CN113590148A (zh) | 一种二级***程序在线升级的方法 | |
CN113050969A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120912 |