单片机在线编程的方法_2

文档序号:8361254阅读:来源:国知局
的流程图。
[0039]具体地,AT89LS单片机包括ISP引脚和时钟电路引脚。ISP引脚共有4个:RST、MOSI, MISO和SCK。各引脚的功能如下:RST为在线编程输入控制端,仅在ISP下载过程中保持高电平,在系统正常工作时该引脚为系统复位端,保持低电平状态。MOSI为主机输出/从机输入的数据端,系统正常工作时,该引脚为公用I/0P1.5 口线。MISO为主机输入/从机输出的数据端。系统正常工作时,该引脚为通用I/0P1.6 口线。SCK为串行编程的时钟端,可实现主、从机时序的同步。系统正常工作时,该引脚为通用I/0P1.7 口线。时钟电路引脚包括XTALl和XTAL2引脚。
[0040]举例而言,本实施例的系统中,单片机的上位机是DM8147,DM8147为TI公司的达芬奇架构的高性能,低功耗处理器,为系统的主控制器,单片机作为控制系统中的一部分,主要负责矩阵按键扫描,与DM8147通过串口进行双向通信,DM8147通过SPI接口对单片机进行程序加载。
[0041]本系统环境:软件ARM:Ubuntu
[0042]DSP: Sysb1s
[0043]EZSDK
[0044]本实施例的单片机在线编程的方法包括以下步骤:
[0045]S20、处理器读入要加载的单片机固件程序文件,所述单片机的固件程序文件格式为BIN文件。单片机固件程序文件可以放在SD卡或NAND Flash中。其中,Nanchflash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方法。本实施例中,单片机固件程序文件放在SD卡中,系统从SD卡启动后,读取加载文件。
[0046]S21、校验所述单片机固件程序文件的大小是否正确,若正确,则进入步骤S22。
[0047]S22、所述处理器通过SPI接口将所述单片机固件程序文件的BIN文件写入到单片机的FLASH中。
[0048]具体地,请参阅图7,上述步骤S22包括:
[0049]S220、所述单片机上电,所述单片机的RST引脚拉高,并在所述单片机XTALl和XTAL2引脚之间连接晶振;或者,在XTALl引脚提供一个3ΜΗζ_163ΜΗζ的时钟,并且至少等待 10 μ S。
[0050]S221、通过所述单片机的M0SI/P 1.5引脚执行编程使能命令,再执行其它编程命令;且,所述单片机的SCK/P1.7引脚上的移位时钟小于所述处理器的1/16。本步骤S221中,编程使能命令作为其它命令的前导命令,必须先执行编程使能命令,再执行其他命令。
[0051]S23、所述处理器对所述写入到单片机的FLASH中的BIN文件进行校验。
[0052]请参阅图8,上述步骤S23进一步包括:
[0053]S230、所述处理器通过所述SPI接口从所述单片机的FLASH中读取所述写入的BIN文件。
[0054]具体地,处理器通过读MISO/P 1.6引脚来进行校验。任何一个存储空间都可以通过读MISO/P 1.6引脚来进行校验,通过该引脚返回该地址空间中的数据。
[0055]S231、所述处理器比较读取的BIN文件和写入的BIN文件的内容是否相同,若相同则判断为加载成功,并结束加载,进入步骤S24 ;若不同则判断为加载失败,并重新加载。
[0056]S24、拉低所述单片机的RST引脚,以使所述单片机在正常模式工作。
[0057]通过本发明的在线编程方法不需要任何外部连线,只需要插上SD卡后将系统上电即可,加载会自动进行,并校验。
[0058]通过对使用本发明的在线编程的方法加载大小固定的文件的测试进一步验证了本发明的方法的快速和可靠性。该测试包括写,读并校验的完整过程。通过本发明的方法进行加载的速度要比通过仿真器加载的速度快至少20倍(仿真器加载只算纯加载时间,不算连接仿真器时间),可以达到375KHz,并且在该频率下,在加载700次(单片机Flash的擦写寿命为1000次)的情况下,误码率为0,也就是说700次的加载,100%成功。
[0059]本发明的通过SPI接口进行在线编程的方法相比GP1模拟加载时序的方法具有更高的可靠性和稳定性,因为SPI是专用接口,是通过硬件电路来实现单片机的加载时序的。在操作系统下,任何一段任务对于操作系统都是一个线程,操作系统来控制线程的调度,是线程就有可能被打断,通过SPI接口进行加载也可能被其他线程打断,通过SPI接口进行加载,发送一个byte的数据只是一个指令,一个指令不可能被打断,即,通过SPI接口进行加载,不可能在传输一个byte的中间被打断。因此,即使加载被打断也不会影响加载时序,其他线程执行完又返回到该加载线程时,可以继续在下一个地址加载下一个byte数据。而对于通过GP1模拟的情况,加载一 bit位数据就需要三条指令:时钟拉低、输出数据、时钟拉高。加载一个byte数据(8bit)就需要24条指令,很容易在加载一个byte中间被打断,将完全打乱如图3所要求的时序,就很可能造成加载失败。并且指令越多对处理器的占用就越高,这也是GP1模拟加载相比通过SPI接口进行加载较弱的地方。通过SPI接口进行加载的方法,在发出传送一个byte指令后就释放处理器,直到该byte传完。而GP1模拟的方式会一直占用处理器,直到被其他线程打断。由于SPI对于处理器是一个自带的外设,处理器只需要通知SPI外设现在要发送数据,至于数据的时序以及实际发送都是由SPI外设来控制的,所以,处理器在通知完SPI外设发送数据或接收后就可以不参与具体的发送或接收数据过程,处理器正常情况下不干预实际的发送过程,除非SPI外设发生错误。而GP1模拟的情况需要处理器来控制并完成整个时序,那么数据的发送或接收就变成了处理器的一个线程,而线程都是分时执行的,因而该线程会被中断。
[0060]本发明的在线编程的方法通过SPI接口对单片机进行加载,实现了高速加载,且提尚了成功率,具有$父尚的可靠性。
[0061]以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种单片机在线编程的方法,其特征在于,包括以下步骤: 处理器读入要加载的单片机固件程序文件,所述单片机的固件程序文件格式为BIN文件; 所述处理器通过SPI接口将所述单片机固件程序文件的BIN文件写入到单片机的FLASH 中 ο
2.根据权利要求1所述的方法,其特征在于,所述处理器通过SPI接口将所述BIN文件写入到单片机的FLASH中的步骤之后还包括: 所述处理器对所述写入到单片机的FLASH中的BIN文件进行校验。
3.根据权利要求2所述的方法,其特征在于,所述处理器对所述写入到单片机的FLASH中的BIN文件进行校验的步骤进一步包括: 所述处理器通过所述SPI接口从所述单片机的FLASH中读取所述写入的BIN文件; 所述处理器比较读取的BIN文件和写入的BIN文件的内容是否相同,若相同则判断为加载成功,并结束加载;若不同则判断为加载失败,并重新加载。
4.根据权利要求3所述的方法,其特征在于,所述单片机包括ISP引脚和时钟电路引脚; 所述ISP引脚包括:RST引脚、MOSI引脚、MISO引脚和SCK引脚;所述RST为在线编程输入控制引脚;所述MOSI引脚为主机输出/从机输入的数据引脚;所述MISO引脚为主机输入/从机输出的数据引脚;所述SCK引脚为串行编程的时钟引脚; 所述时钟电路引脚包括XTALl和XTAL2引脚; 所述处理器通过SPI接口将所述BIN文件写入到单片机的FLASH中的步骤之前包括:所述单片机上电,所述单片机的RST引脚拉高,并在所述单片机XTALl和XTAL2引脚之间连接晶振;或者,在XTALl引脚提供一个3MHz-163MHz的时钟,并且至少等待10 μ s ;通过所述单片机的M0SI/P 1.5引脚执行编程使能命令,再执行其它编程命令。
5.根据权利要求4所述的方法,其特征在于,所述单片机的SCK/P1.7引脚上的移位时钟小于所述处理器的1/16。
6.根据权利要求5所述的方法,其特征在于,所述处理器通过所述SPI接口从所述单片机的FLASH中读取所述写入的BIN文件的步骤中,所述处理器通过读MIS0/P 1.6引脚来进行校验。
7.根据权利要求6所述的方法,其特征在于,所述处理器通过SPI接口将所述BIN文件写入到单片机的FLASH中的步骤中,所述BIN文件以一次一字节的模式写入;或者以一次一页的模式写入。
8.根据权利要求7所述的方法,其特征在于,所述处理器比较读取的BIN文件和写入的BIN文件的内容是否相同,若相同判断为加载成功,并结束加载的步骤之后,还包括:拉低所述单片机的RST引脚,以使所述单片机在正常模式工作。
9.根据权利要求1所述的方法,其特征在于,所述处理器读入要加载的单片机固件程序文件的步骤之后,还包括:校验所述单片机固件程序文件的大小是否正确,若正确,则进入所述处理器通过SPI接口将所述单片机固件程序文件的BIN文件写入到单片机的FLASH中的步骤。
10.根据权利要求1所述的方法,其特征在于,所述处理器读入要加载的单片机固件程序文件的步骤中,所述要加载的单片机固件程序文件放在SD卡或者NAND Flash中。
【专利摘要】本发明公开了一种单片机在线编程的方法,该方法包括以下步骤:处理器读入要加载的单片机固件程序文件,所述单片机的固件程序文件格式为BIN文件。所述处理器通过SPI接口将所述单片机固件程序文件的BIN文件写入到单片机的FLASH中。本发明通过使用SPI接口进行加载程序文件,不受仿真器加载频率的限制,所以可以实现高加载速度。本发明的在线编程的方法不易受到操作系统下其他线程的影响,因此成功率可以大大提高,因而具有较高的可靠性,并且有更低的CPU资源占用率。此外,本发明在线编程的方法不需要任何连线,因此方便快速,非常适合量产时对单片机进行程序固化。
【IPC分类】G06F9-445, G06F13-42
【公开号】CN104679559
【申请号】CN201510072752
【发明人】郭睿
【申请人】北京配天技术有限公司
【公开日】2015年6月3日
【申请日】2015年2月11日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1