著录项信息
| 专利名称 | 一种在线更新单片机程序的方法 |
| 申请号 | CN201410848834.8 | 申请日期 | 2014-12-31 |
| 法律状态 | 授权 | 申报国家 | 中国 |
| 公开/公告日 | 2015-04-08 | 公开/公告号 | CN104503804A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
| 申请人 | 天津市通卡公用网络系统有限公司 | 申请人地址 | 天津市河北区辰纬路3号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 天津通卡智能网络科技股份有限公司 | 当前权利人 | 天津通卡智能网络科技股份有限公司 |
| 发明人 | 靳展;吴昊;李响;高祝虎;修伟 |
| 代理机构 | 天津佳盟知识产权代理有限公司 | 代理人 | 侯力 |
摘要
本发明涉及一种在线更新单片机程序的方法。把单片机片载FLASH划分开两部分,BOOT区和应用程序区,将应用程序区再划分为4个区,即:工作程序区;驱动程序区;驱动程序出口区;硬件版本区;工作过程如下工作程序区程序把硬件版本区内容发送给远程服务端程序;远程服务端程序根据硬件版本下发对应的驱动程序区内容和驱动程序出口区内容;把接收的内容保存在缓存区,下载完毕后设备重新启动;本发明的优点同样的工作程序区应用程序可以安装到不同型号的设备上。
1.一种在线更新单片机程序的方法,把单片机片载FLASH划分开两部分,BOOT区和应用程序区,其特征在于:将应用程序区再划分为4个区,即
工作程序区:存放和硬件无关的应用程序;
驱动程序区:存放驱动硬件的函数,不同型号的硬件对应不同的函数,每个型号的设备和驱动程序一一对应;
驱动程序出口区:存放驱动程序区各个函数的调用地址,应用程序通过驱动程序出口区调用驱动程序区程序完成和硬件交互工作;
硬件版本区:存放各个型号硬件对应的编号,硬件型号和硬件版本号一一对应;
工作过程如下:
工作程序区程序和远程服务端程序通讯,把硬件版本区内容发送给远程服务端程序;
远程服务端程序根据硬件版本下发对应的驱动程序区内容和驱动程序出口区内容;
工作区程序把接收的内容保存在缓存区,下载完毕后设备重新启动;
重启后,BOOT区检测缓冲区内容,如果缓冲区中没有需要更新的程序,则跳转到工作程序区;如果缓冲区中有需要更新的程序,由BOOT区程序把缓冲区内容更新到对应的驱动程序区与驱动程序出口区;完成后跳转到工作程序区。
一种在线更新单片机程序的方法\n技术领域:\n[0001] 本发明涉及单片机,进一步涉及一种在线更新单片机程序的方法。\n背景技术:\n[0002] 单片机等CPU因其有成本低、电路简单、编程简单等优点,被广大技术人员利用开发各种设备。\n[0003] 单片机片载FLASH程序存储区,提供在线编程功能。这样就可以把单片机片载FLASH划分开两部分,BOOT区和应用程序区。BOOT区程序调用单片机提供的在线编程功能,更新应用程序区内容,完成在线升级功能。\n[0004] 利用单片机开发的设备永远在升级换代,外围器件总是在变化,型号在升级改变,BOOT区功能简单调整方便,同一型号的设备使用相同的BOOT区程序,设备型号和BOOT区程序基本是一对一的关系,这些改变对BOOT区影响较小。而应用程序涉及大量的应用,千奇百怪。同一型号的设备会装载不同的应用程序,实现不同的功能;也会不同型号的设备实现相同的功能。设备型号和应用程序是网状的关系,修改测试应用程序的工作量相当大。亟需改进。\n发明内容:\n[0005] 本发明对单片机片载FLASH空间进行重新分配,实现在线更新单片机程序。\n[0006] 原理如下:对把应用程序中和硬件相关的函数分离出来,放到驱动程序区,这部分函数叫做驱动程序;驱动程序和硬件型号一一对应,驱动程序和硬件型号是一对一的关系,维护量小;驱动程序只是连接应用程序使用硬件的桥梁。\n[0007] 应用程序中和硬件无关的函数放到到工作程序区,这部分函数叫做应用程序。工作程序区应用程序通过调用驱动程序区程序和硬件进行交互。工作程序区应用程序和硬件无关,硬件的改动对工作程序区应用程序没有影响,工作程序区应用程序不用修改。工作程序区应用程序也减小了好多,更新速度会更快。工作程序区应用程序和硬件无关,编写工作程序区应用程序员不需要了解硬件。\n[0008] 一种在线更新单片机程序的方法,把单片机片载FLASH划分开两部分,BOOT区和应用程序区,将应用程序区再划分为4个区,即\n[0009] 工作程序区:存放和硬件无关的应用程序;\n[0010] 驱动程序区:存放驱动硬件的函数,不同型号的硬件对应不同的函数,每个型号的设备和驱动程序一一对应;\n[0011] 驱动程序出口区:存放驱动程序区各个函数的调用地址,应用程序通过驱动程序出口区调用驱动程序区程序完成和硬件交互工作;\n[0012] 硬件版本区:存放各个型号硬件对应的编号,硬件型号和硬件版本号一一对应;\n[0013] 工作过程如下:\n[0014] 工作程序区程序和远程服务端程序通讯,把硬件版本区内容发送给远程服务端程序;\n[0015] 远程服务端程序根据硬件版本下发对应的驱动程序区内容和驱动程序出口区内容;\n[0016] 工作程序区程序把接收的内容保存在缓存区,下载完毕后设备重新启动;\n[0017] 重启后,BOOT区检测缓冲区内容,如果缓冲区中没有需要更新的程序,则跳转到工作程序区;如果缓冲区中有需要更新的程序,由BOOT区程序把缓冲区内容更新到对应的驱动程序区与驱动程序出口区;完成后跳转到工作程序区。\n[0018] 本发明相对于现有技术具有以下优点:\n[0019] (一)同样的工作程序区应用程序可以安装到不同型号的设备上。\n[0020] (二)工作程序区应用程序简单明了,体积小。\n[0021] (三)程序分开管理,保证程序的保密性。\n附图说明:\n[0022] 图1为本发明实现在线更新程序的具体过程逻辑框图。\n具体实施方式:\n[0023] 采用LPC2378做CPU开发的IC卡刷卡机,LPC2378内部FLASH为512kbyte,地址从0到\n0x7ffff。IC卡刷卡机还具有SST25VF032的FLASH芯片。分区方式如下:\n[0024] BOOT区:LPC2378的0x00000-0xffff为BOOT区,放置BOOT区程序。\n[0025] 工作程序区:LPC2378的0x10000-0x5ffff为工作程序区。放置交易流程、显示、通讯、存储等函数。\n[0026] 驱动程序区:LPC2378的0x60000-0x77fff为驱动程序区,放置驱动FLASH、显示、非接触等芯片的函数。\n[0027] 驱动程序出口区:LPC2378的0x78000-0x78fff为驱动程序出口区,放置驱动程序区各函数的调用出口。\n[0028] 硬件版本区:LPC2378的0x79000-0x79fff为硬件版本区,放置刷卡机各型号的硬件版本号。\n[0029] 缓冲区:采用SST25VF032做缓冲区,缓存下载的程序。\n[0030] 工作过程如下:\n[0031] 工作程序区程序和远程服务端程序通讯,把硬件版本区内关于刷卡机的版本号发送给远程服务端程序;\n[0032] 远程服务端程序根据刷卡机的版本号传输对应的驱动程序区内容和驱动程序出口区内容;\n[0033] 工作程序区程序把接收的内容保存在缓存区,下载完毕后设备重新启动;\n[0034] 重启后,BOOT区检测缓冲区内容,如果缓冲区中没有需要更新的程序,则跳转到工作程序区;如果缓冲区中有需要更新的程序,由BOOT区程序把缓冲区内容更新到对应的驱动程序区与驱动程序出口区;完成后跳转到工作程序区。
法律信息
- 2022-12-09
未缴年费专利权终止
IPC(主分类): G06F 9/445
专利号: ZL 201410848834.8
申请日: 2014.12.31
授权公告日: 2017.08.08
- 2017-08-08
- 2017-05-31
著录事项变更
发明人由靳展 高祝虎 李响 修伟变更为靳展 吴昊 李响 高祝虎修伟
- 2017-05-10
著录事项变更
申请人由天津市通卡公用网络系统有限公司变更为天津通卡智能网络科技股份有限公司
地址由300142 天津市河北区辰纬路3号变更为300142 天津市河北区辰纬路3号
- 2015-05-06
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201410848834.8
申请日: 2014.12.31
- 2015-04-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-12-25
|
2013-09-23
| | |
2
| |
2009-07-08
|
2009-01-07
| | |
3
| |
2013-06-05
|
2011-12-05
| | |
4
| |
2010-06-30
|
2010-01-15
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |