CN103838588A - 通过can接口进行at90单片机程序在线更新的方法 - Google Patents
通过can接口进行at90单片机程序在线更新的方法 Download PDFInfo
- Publication number
- CN103838588A CN103838588A CN201210471916.6A CN201210471916A CN103838588A CN 103838588 A CN103838588 A CN 103838588A CN 201210471916 A CN201210471916 A CN 201210471916A CN 103838588 A CN103838588 A CN 103838588A
- Authority
- CN
- China
- Prior art keywords
- interface
- chip microcomputer
- module
- scm
- program
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种通过CAN接口进行AT90单片机程序在线更新的方法,其包括步骤:由升级模块获取用于AT90单片机程序更新的Hex文件;升级模块解析Hex文件,将从Hex文件解析出的程序数据通过CAN接口发送给AT90单片机模块,并且把写入AT90单片机的地址也按照协议发送给AT90单片机模块;AT90单片机模块将接收到的程序数据写入到该AT90单片机模块中Flash存储器指定的存储器地址,实现对该AT90单片机模块中的AT90单片机程序的在线更新。本发明无需将AT90单片机从产品或电路板上拆下来,只需要通过AT90单片机的CAN接口即可方便、快速的进行在线程序升级,且升级简单和可靠。
Description
技术领域
本发明涉及一种在线更新技术,尤其是涉及一种通过CAN接口进行AT90单片机程序在线更新的方法。
背景技术
AT90系列单片机是美国Atmel公司推出的增强RISC(精简指令集)内载Flash的单片机,通常简称为AVR单片机。
AT90系列单片机的芯片烧录方式一般可以通过如下几种方式:
1、支持Atmel提供的ISP工具通过串口进行在线烧录。
2、使用JTAG调试器进行在线烧录;
3、使用并口的芯片烧录器对未焊装的芯片进行烧录。
现有的技术主要是通过串口、JTAG接口对AT90系列单片机进行在线烧录,或者使用芯片烧录器单独对AT90系列单片机进行烧录。但是,当AT90系列单片机焊接在电路板上之后,不再方便使用串口、JTAG接口对AT90系列单片机进行在线烧录。
发明内容
为克服现有技术存在的缺陷,本发明提出一种通过CAN接口进行AT90单片机程序在线更新的方法。
本发明采用如下技术方案实现:一种通过CAN接口进行AT90单片机程序在线更新的方法,其包括步骤:
A、由升级模块获取用于AT90单片机程序更新的Hex文件;
B、升级模块解析Hex文件,将从Hex文件解析出程序数据通过CAN接口按照预定义的通讯协议发送给AT90单片机模块;
C、AT90单片机模块将接收到的程序数据写入到该AT90单片机模块中Flash存储器指定的存储器地址,实现对该AT90单片机模块中的AT90单片机程序的在线更新。
其中,步骤B之前还包括步骤:
升级模块发送“命令打开节点”的通讯指令给需要程序更新处理的AT90单片机模块。
其中,步骤B具体包括:
升级模块解析Hex的二进制文件,将Hex的首地址取出,把用于AT90单片机程序更新的程序数据组合到一个缓冲区,并计算出程序数据的长度;
升级模块将首地址及程序数据的长度发送给AT90单片机模块。
其中,步骤C之后还包括步骤:
D、升级模块发送重启命令给AT90单片机模块,控制AT90单片机模块重启。
其中,步骤D之后还包括步骤:
升级模块控制AT90单片机模块跳转到指定地址运行。
其中,升级模块为一个带有CAN接口和外设接口的ARM9单片机实现。
其中,外设接口包括网络接口、SD卡接口、PSP串口接口或USB接口至少其中之一。
与现有技术相比,本发明具有如下有益效果:
本发明无需将AT90单片机从产品或电路板上拆下来,只需要通过AT90单片机的CAN接口即可方便、快速的进行在线程序升级,且升级简单和可靠。
附图说明
图1是本发明一个实施例的系统结构示意图;
图2是本发明一个实施例的流程示意图。
具体实施方式
如图1所示,在本发明的一个实施中,电源、与电源连接的主控制器、通过CAN接口与主控制相连的升级模块,该升级模块采用一个ARM嵌入式系统(比如ARM9单片机)实现,负责人机交互和运行应用软件且带有CAN接口和若干外设接口,比如网络接口、SD卡接口、PSP串口接口或USB接口至少其中之一;若干个均连接主控制器和升级模块的AT90单片机模块,每个AT90单片机模块包括一个具有CAN接口的AT90单片机和连接AT90单片机的Flash存储器,每个AT90单片机模块通过AT90单片机的CAN接口分别连接主控制器和升级模块。
其中,在每个AT90单片机模块中,AT90单片机的程序存储在与之相连的Flash存储器中。
主控制器、升级模块和各个AT90单片机模块之间均通过CAN接口连接,构成一个CAN总线网络。在主控制器的控制下,升级模块成为CAN总线网络中的主节点,而其他各个AT90单片机模块均成为CAN总线网络中的从节点。因此,只需要通过主节点对各个从节点进行在线程序更新即可。
由升级模块通过外设接口从外部获取用于AT90单片机程序更新的Hex文件(Hex全称是Intel HEX,HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件),通过CAN接口与各个AT90单片机模块进行通信,实现通过CAN接口进行AT90单片机程序的在线更新。
其中,CAN总线使用CAN2.0A标准协议。CAN协议的Identifier是有11位,约定里面包含接收方节点号(占据位数可自由定),再几位用来定义控制字(占据位数可自由定),两者在Identifier中分别放置高位还是低位也可自由定。本申请中暂定高7位NodeID,低4位是功能码。
结合图2所示,通过CAN接口进行AT90单片机程序在线更新具体包括如下步骤:
步骤S1、主节点(图1中的升级模块)发送“命令打开节点”的通讯指令给需要程序更新处理的从节点(图1中的某一个或多个AT90单片机模块),从节点收到该命令后才会接收后续命令。这里功能码定为0(具体值可自由约定),见表1所示。
表1
步骤S2、主节点通过外设接口从外部获取用于AT90单片机程序更新的Hex文件,解析Hex的二进制文件,将Hex的首地址取出,把用于更新处理的程序数据组合到一个缓冲区,并计算出缓冲区的长度,该长度也就是用于更新处理的程序数据的长度。
步骤S3、主节点将首地址及程序数据的长度发送给从节点。这里功能码定为1(具体值可自由约定),从节点返回的含义对应的数值也自由约定,如表2所示:
表2
步骤S4、主节点将缓冲区中的程序数据按一定的数据发送长度循环发送给从节点。这里功能码定为2(具体值可自由约定),从节点返回的含义对应的数值也自由约定,见表3所示。
表3
步骤S5、从节点将接收到的程序数据写入到Flash存储器指定的存储器地址。
步骤S6、主节点发送重启命令给从节点,控制从节点重启。这里功能码定为3(具体值可自由约定),如表4所示。
direct Identifier 描述
M->S SlaveID<<4+3 重启从节点
表4
步骤S7、主节点控制从节点跳转到指定地址运行;这里功能码定为4(具体值可自由约定),见表5所示。
表5
综上,本发明无需将AT90单片机从产品或电路板上拆下来,只需要通过AT90单片机的CAN接口即可方便、快速的进行在线程序升级。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,包括步骤:
A、由升级模块获取用于AT90单片机程序更新的Hex文件;
B、升级模块解析Hex文件,将从Hex文件解析出程序数据通过CAN接口按照预定义的通讯协议发送给AT90单片机模块;
C、AT90单片机模块将接收到的程序数据写入到该AT90单片机模块中Flash存储器指定的存储器地址,实现对该AT90单片机模块中的AT90单片机程序的在线更新。
2.根据权利要求1所述通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,步骤B之前还包括步骤:
升级模块发送“命令打开节点”的通讯指令给需要程序更新处理的AT90单片机模块。
3.根据权利要求1所述通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,步骤B具体包括:
升级模块解析Hex的二进制文件,将Hex的首地址取出,把用于AT90单片机程序更新的程序数据组合到一个缓冲区,并计算出程序数据的长度;
升级模块将首地址及程序数据的长度发送给AT90单片机模块。
4.根据权利要求1所述通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,步骤C之后还包括步骤:
D、升级模块发送重启命令给AT90单片机模块,控制AT90单片机模块重启。
5.根据权利要求4所述通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,步骤D之后还包括步骤:
升级模块控制AT90单片机模块跳转到指定地址运行。
6.根据权利要求1-5任何一项所述通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,升级模块为一个带有CAN接口和外设接口的ARM嵌入式系统。
7.根据权利要求6所述通过CAN接口进行AT90单片机程序在线更新的方法,其特征在于,外设接口包括网络接口、SD卡接口、PSP串口接口或USB接口至少其中之一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210471916.6A CN103838588A (zh) | 2012-11-20 | 2012-11-20 | 通过can接口进行at90单片机程序在线更新的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210471916.6A CN103838588A (zh) | 2012-11-20 | 2012-11-20 | 通过can接口进行at90单片机程序在线更新的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103838588A true CN103838588A (zh) | 2014-06-04 |
Family
ID=50802124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210471916.6A Pending CN103838588A (zh) | 2012-11-20 | 2012-11-20 | 通过can接口进行at90单片机程序在线更新的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838588A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302612A (zh) * | 2015-11-18 | 2016-02-03 | 西南技术物理研究所 | 快速升级电子系统机箱内单片机软件程序的方法 |
CN105487890A (zh) * | 2015-11-25 | 2016-04-13 | 天津航空机电有限公司 | 一种基于c51系列单片机内核的固件下载方法 |
CN105573807A (zh) * | 2015-12-31 | 2016-05-11 | 清华大学苏州汽车研究院(吴江) | 一种基于can总线的ecu在线程序升级系统及方法 |
CN109165037A (zh) * | 2018-07-31 | 2019-01-08 | 西安霍威航空科技有限公司 | 一种基于串口处理器的程序在线更新方法及系统 |
CN112445508A (zh) * | 2020-10-17 | 2021-03-05 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于can总线的arm应用程序在线升级的方法 |
CN113885910A (zh) * | 2021-09-24 | 2022-01-04 | 天津津航计算技术研究所 | 一种基于国产单片机gd32的软件升级方法 |
CN114035472A (zh) * | 2021-11-09 | 2022-02-11 | 阳光学院 | 一种can总线对嵌入式可编程控制器在线编程的方法及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI261179B (en) * | 2003-04-04 | 2006-09-01 | Telechips Inc | Media-processing device using an external storage device |
CN101673202A (zh) * | 2008-09-09 | 2010-03-17 | 比亚迪股份有限公司 | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 |
CN101673209A (zh) * | 2009-10-28 | 2010-03-17 | 广东威创视讯科技股份有限公司 | 一种升级多个单片机程序的方法 |
CN102230374A (zh) * | 2011-06-13 | 2011-11-02 | 电子科技大学 | 一种基于485总线的井下程序远程更新装置 |
CN102346677A (zh) * | 2010-08-05 | 2012-02-08 | 盛乐信息技术(上海)有限公司 | Fpga程序的升级方法 |
CN106293797A (zh) * | 2015-06-11 | 2017-01-04 | 中兴通讯股份有限公司 | 一种在线更新单片机程序的方法及系统 |
-
2012
- 2012-11-20 CN CN201210471916.6A patent/CN103838588A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI261179B (en) * | 2003-04-04 | 2006-09-01 | Telechips Inc | Media-processing device using an external storage device |
CN101673202A (zh) * | 2008-09-09 | 2010-03-17 | 比亚迪股份有限公司 | 一种程序烧写方法和系统以及一种待烧写装置和烧写装置 |
CN101673209A (zh) * | 2009-10-28 | 2010-03-17 | 广东威创视讯科技股份有限公司 | 一种升级多个单片机程序的方法 |
CN102346677A (zh) * | 2010-08-05 | 2012-02-08 | 盛乐信息技术(上海)有限公司 | Fpga程序的升级方法 |
CN102230374A (zh) * | 2011-06-13 | 2011-11-02 | 电子科技大学 | 一种基于485总线的井下程序远程更新装置 |
CN106293797A (zh) * | 2015-06-11 | 2017-01-04 | 中兴通讯股份有限公司 | 一种在线更新单片机程序的方法及系统 |
Non-Patent Citations (4)
Title |
---|
李积英: "基于AT90CAN128单片机CAN总线实现方案的研究"", 《兰州交通大学学报(自然科学版)》 * |
杨元挺等: "基于CAN总线的远程升级系统", 《现代电子技术》 * |
田日才等: "ATMEGA128单片机的软件远程升级", 《电子技术应用》 * |
陈屹等: "基于CAN总线的一种系统远程升级功能的实现", 《自动化仪表》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302612A (zh) * | 2015-11-18 | 2016-02-03 | 西南技术物理研究所 | 快速升级电子系统机箱内单片机软件程序的方法 |
CN105302612B (zh) * | 2015-11-18 | 2018-05-08 | 西南技术物理研究所 | 快速升级电子系统机箱内单片机软件程序的方法 |
CN105487890A (zh) * | 2015-11-25 | 2016-04-13 | 天津航空机电有限公司 | 一种基于c51系列单片机内核的固件下载方法 |
CN105573807A (zh) * | 2015-12-31 | 2016-05-11 | 清华大学苏州汽车研究院(吴江) | 一种基于can总线的ecu在线程序升级系统及方法 |
CN109165037A (zh) * | 2018-07-31 | 2019-01-08 | 西安霍威航空科技有限公司 | 一种基于串口处理器的程序在线更新方法及系统 |
CN112445508A (zh) * | 2020-10-17 | 2021-03-05 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于can总线的arm应用程序在线升级的方法 |
CN112445508B (zh) * | 2020-10-17 | 2022-10-04 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于can总线的arm应用程序在线升级的方法 |
CN113885910A (zh) * | 2021-09-24 | 2022-01-04 | 天津津航计算技术研究所 | 一种基于国产单片机gd32的软件升级方法 |
CN114035472A (zh) * | 2021-11-09 | 2022-02-11 | 阳光学院 | 一种can总线对嵌入式可编程控制器在线编程的方法及终端 |
CN114035472B (zh) * | 2021-11-09 | 2024-05-10 | 阳光学院 | 一种can总线对嵌入式可编程控制器在线编程的方法及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838588A (zh) | 通过can接口进行at90单片机程序在线更新的方法 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
WO2016197883A1 (zh) | 一种在线更新单片机程序的方法及系统 | |
CN103473141A (zh) | 一种带外查看及修改bios设置选项的方法 | |
CN113872796B (zh) | 服务器及其节点设备信息获取方法、装置、设备、介质 | |
CN104375855A (zh) | 一种基于车载多mcu通过存储设备升级固件的装置及方法 | |
CN103902305A (zh) | 基于ti dsp的软件远程加载与固化方法 | |
CN105005363A (zh) | 基于通用型arm架构的服务器平台 | |
CN109189714B (zh) | 一种基于Arria10 FPGA的双处理节点的信号处理系统 | |
CN105302621A (zh) | 一种远程实现服务器BIOS Setup恢复初始值的方法 | |
CN205450908U (zh) | 一种基于龙芯3a 2000的普通型机架式服务器 | |
CN102253844B (zh) | 一种启动处理器的方法和设备 | |
CN104461660A (zh) | 一种异构系统的多模式动态加载方法 | |
CN103067201B (zh) | 一种多协议通讯管理机 | |
CN107621943A (zh) | 一种fpga动态批量烧写系统及方法 | |
CN104081369A (zh) | 在预引导环境中建立模块化节点的连接性 | |
CN107196975B (zh) | 一种多协议转换的plc联网串口转换器 | |
CN102890661A (zh) | 一种主从机通讯协议 | |
CN102789388A (zh) | 基于bmc在mips架构服务器中增加网卡功能的方法及系统 | |
WO2017041550A1 (zh) | 设备模拟器的通信方法及系统 | |
CN104239084A (zh) | 一种dsp程序自动加载的实现方法 | |
CN106502706A (zh) | 一种基于龙芯处理器的可信嵌入式计算机及其配置方法 | |
CN102629260A (zh) | 数据库崩溃处理方法、装置和系统 | |
CN113645088B (zh) | 网卡ncsi信号的自动调节方法、系统、装置及介质 | |
CN205210574U (zh) | 一种基于微控制器实现fpga数据配置的双核心控制模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140604 |