基于单片机的在应用无线编程方法

文档序号:6547318阅读:300来源:国知局
基于单片机的在应用无线编程方法
【专利摘要】本发明公开了一种基于单片机的在应用无线编程方法。通过编写引导程序(BootLoaderProgram)并将其写入单片机的引导程序区,配合WindowsXP中的超级终端程序,采用Xmodem文件传输协议,通过蓝牙无线传输模块将应用程序文件传输至单片机,并将应用程序写入Flash中的应用程序区,实现在应用无线编程,无需专用编程器即可实现程序固件的更新。其中对单片机内部Flash的读、写、缓存等操作以及文件传输协议的匹配均有引导程序完成。应用本发明,单片机下载程序时无需专用下载器,通过无线编程的方式进行程序更新,提高单片机程序更新的速度和效率。
【专利说明】基于单片机的在应用无线编程方法【技术领域】
[0001]本发明涉及一种基于单片机的在应用无线编程方法,属于嵌入式【技术领域】。
【背景技术】
[0002]在目前的嵌入式领域当中,单片机的程序更新往往需要专用的编程器(下载器)来实现,即在更新程序的过程中,需有线连接专用下载器,设置相应信号线,进入编程模式,利用单片机专用的串行或并行编程接口对单片机内部的Flash进行编程操作。这种编程方式无法实现在应用编程,且需要通过有线连接专用编程器,使得单片机的程序更新过程繁琐且耗时。中国专利申请CN101685401A公开了一种无线编程方法,但是需要额外增加选通器、硬件编程模块等模块,增加了成本和功耗,而且降低了处理器的工作效率。

【发明内容】

[0003]为了克服现有单片机有线编程技术的不足,本发明提供一种基于单片机的在应用无线编程方法。此方法在更新程序时可免去连接电缆的繁琐,利用单片机的串口和无线通信模块(如蓝牙)实现和PC端上位机的通信,将程序数据包传输至单片机并写入Flash,实现程序固件的更新,不需要专用串行或并行下载设备,实现在应用编程(In Applicat1nP1gramming)。此编程过程只会短暂打断原有程序的正常运行,可以藉此实现快速的程序固件升级。
[0004]本发明解决其技术 问题所采用的技术方案是:
一种基于单片机的在应用无线编程方法,通过编写引导程序(Boot Loader Program)并将其写入单片机的引导程序区,配合WindowsXP中的超级终端程序,采用Xmodem文件传输协议,通过蓝牙无线传输模块将用户应用程序文件传输至单片机,并将用户应用程序写入Flash中的用户应用程序区,实现在应用无线编程,其中对单片机内部Flash的读、写、缓存操作以及文件传输协议的匹配均由引导程序完成。所述的单片机为ATmegal28单片机。
[0005]当单片机上电或软复位后,程序指针会跳转至引导程序区首地址,执行引导程序,引导程序首先会执行提示用户下载程序操作,若用户三秒输入下载指令,则执行传输程序文件包操作,依据Xmodem文件传输协议,通过蓝牙无线通信模块将二进制格式的程序文件通过上位机发送至单片机,传输完成并校验正确后,执行将程序写入Flash操作,将传输过来的用户应用程序写入Flash中的用户应用程序区,并执行用户程序;若用户三秒内未输入下载指令,则直接执行用户程序;在执行用户程序的过程中,若需要再次进行程序的更新,则可输入更新指令,此时会执行引导程序,完成新一次的程序传输、下载及更新。
[0006]本发明的有益效果是:
O单片机下载程序时无需专用下载器;
2)通过无线编程的方式进行程序更新;
3)提高单片机程序更新的速度和效率。【专利附图】

【附图说明】
[0007]下面结合附图和实施例对本发明进一步说明。
[0008]图1是本发明在应用无线编程方法的程序流程图;
图2是Xmodem传输协议流程图。
【具体实施方式】
[0009]在应用编程IAP是In Applicat1n Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。 [0010]本发明所要实现的在应用无线编程是以IAP技术为基础,配合无线通信和文件传输协议,实现在应用的快速程序更新。
[0011]通常在用户需要实现IAP功能时,即能够实现用户程序运行中的自我更新操作,需要在设计固件程序时编写两个项目代码,第一个项目程序不执行正常的功能操作,而只是通过某种通信管道(如USB、UART)接收程序或数据,执行对第二部分代码的更新;第二个项目代码才是真正的功能代码。这两部分项目代码都同时烧录在User Flash中。其中第一个程序称之为引导程序(Boot Loader),第二个程序称之为用户应用程序。
[0012]本发明实例所选用的单片机为ATMEL公司生产的ATmagel28单片机。ATmegal28具有128K字节的系统内可编程Flash、4K字节的EEPROM和4K字节的内部SRAM。配合USART、SPI等外部通信接口可实现在系统/在应用编程。
[0013]AVR单片机采用的是哈佛结构内核,其内部数据存储器和程序存储器时是分开独立寻址的。ATmegal28具有128K字节的在应用编程Flash。因为所有AVR指令为16位或
32位,故而FLASH是组织成64K X 16的形式。其程序计数器PC为16位,故存储空间为
【权利要求】
1.一种基于单片机的在应用无线编程方法,其特征是:通过编写引导程序(BootLoader Program)并将其写入单片机的引导程序区,配合WindowsXP中的超级终端程序,采用Xmodem文件传输协议,通过蓝牙无线传输模块将用户应用程序文件传输至单片机,并将用户应用程序写入Flash中的用户应用程序区,实现在应用无线编程,其中对单片机内部Flash的读、写、缓存操作以及文件传输协议的匹配均由引导程序完成。
2.根据权利要求1所述的方法,其特征是:所述的单片机为ATmegal28单片机。
3.根据权利要求1所述的方法,其特征是:当单片机上电或软复位后,程序指针会跳转至引导程序区首地址,执行引导程序,引导程序首先会执行提示用户下载程序操作,若用户三秒输入下载指令,则执行传输程序文件包操作,依据Xmodem文件传输协议,通过蓝牙无线通信模块将二进制格式的程序文件通过上位机发送至单片机,传输完成并校验正确后,执行将程序写入Flash操作,将传输过来的用户应用程序写入Flash中的用户应用程序区,并执行用户程序;若用户三秒内未输入下载指令,则直接执行用户程序;在执行用户程序的过程中,若需要再次进行程序的更新,则可输入更新指令,此时会执行引导程序,完成新一次的程序传输、下载及更新。
【文档编号】G06F9/445GK104035793SQ201410218377
【公开日】2014年9月10日 申请日期:2014年5月22日 优先权日:2014年5月22日
【发明者】江艺宝 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1