一种基于c51系列单片机内核的固件下载方法

文档序号:9727168阅读:606来源:国知局
一种基于c51系列单片机内核的固件下载方法
【技术领域】
[0001]本发明实施例涉及单片机开发领域,尤其涉及一种基于C51系列单片机内核的固件下载方法。
【背景技术】
[0002]单片机是采用超大规模集成电路技术把各种功能性电路集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
[0003]C8051系列单片机占据着微控制单元(Microcontroller Unit,MQJ)的大量市场,以其通用和价格低廉等优势,被学校和公司作为微控制器开发的首选。但是C8051系列单片机使用编程器下载目标文件,与ARM等32位微处理器相比,这种方式不论是从易用性还是程序的可靠性来说,都添加了诸多不便,使C8051系列单片机的追随者难以接受。另外,目前产品为了调试和维护的方便,一般要求带有单片机控制系统的产品在不拆卸单片机的情况下能够通过UART通信、CAN通信或其他通信对程序进行更新,而现有技术中C8051系列单片机并不能满足上述需求。

【发明内容】

[0004]本发明提供一种基于C51系列单片机内核的固件下载方法,以实现基于C51系列单片机内核的固件在线下载。
[0005]第一方面,本发明实施例提供了一种基于C51系列单片机内核的固件下载方法,该方法包括:
[0006]步骤1、单片机判断下载信息控制引脚是否为低电平状态,若是,执行步骤2,若否,执行源工作程序;
[0007]步骤2、单片机开始执行在线下载程序Bootloader;
[0008]步骤3、单片机向上位机发送身份标识ID号;
[0009]步骤4、单片机接收并解析上位机根据所述ID号发送的握手字符密码;
[0010]步骤5、单片机根据所述握手字符密码确定当前通道软件代码是否需要更新,若是,执行步骤6,若否,跳出在线下载程序Boot loader,执行源工作程序;
[0011 ]步骤6、单片机向上位机发送数据接收请求;
[0012]步骤7、单片机接收上位机根据所述数据接收请求发送的响应字;
[0013]步骤8、单片机接收并存储上位机传输的待下载数据。
[0014]第二方面,本发明实施例提供了一种基于C51系列单片机内核的固件下载方法,该方法包括:
[0015]步骤1、上位机将待下载数据排列重组,获得连续且按执行顺序排列的待下载数据;
[0016]步骤2、上位机获取排列重组后待下载数据的字节长度;
[0017]步骤3、上位机判断是否接收到匹配的通道单片机身份标识ID号,若是,执行步骤4,若否,继续等待;
[0018]步骤4、上位机向对应通道单片机发送握手字符密码;
[0019]步骤5、上位机判断是否接收到单片机的数据接收请求,若是,执行步骤6,若否,继续等待;
[0020]步骤6、上位机根据所述数据接收请求向对应通道单片机发送响应字;
[0021]步骤7、上位机向对应通道单片机发送所述待下载数据的字节长度;
[0022]步骤8、上位机发送所述待下载数据。
[0023]本发明实施例提供的技术方案,通过单片机向上位机发送自身ID号,接收上位机回复的握手字符密码,并根据所述握手字符密码的解析结果确定本通道软件代码需要更新后,向上位机发送数据接收请求,最终接收并存储上位机发送的待下载数据,在无需编码器的情况下实现了基于C51系列单片机内核的固件在线下载,简化了单片机固件下载过程。
【附图说明】
[0024]图1是本发明实施例一提供的基于C51系列单片机内核的固件下载方法的流程示意图;
[0025]图2是本发明实施例二提供的基于C51系列单片机内核的固件下载方法的流程示意图;
[0026]图3a是本发明实施例三提供的第一串口通信电路原理图;
[0027]图3b是本发明实施例三提供的第二串口通信电路原理图;
[0028]图3c是本发明实施例三提供的单片机电路原理图;
[0029]图4是本发明实施例三提供的上位机软件界面图。
【具体实施方式】
[0030]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0031 ] 实施例一
[0032]图1是本发明实施例一提供的基于C51系列单片机内核的固件下载方法的流程示意图。本实施例可适用于C51系列单片机的在线编程。该方法可以由基于C51系列单片机内核的固件下载装置执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于C51系列单片机中。
[0033]参见图1,本实施例提供的基于C51系列单片机内核的固件下载方法具体可以包括如下:
[0034]步骤110、单片机判断下载信息控制引脚是否为低电平状态,若是,执行步骤120,若否,执行源工作程序;
[0035]本实施例采用的是C51系列单片机,通过调节下载信息控制引脚的电平状态确定执行源工作程序还是执行在线下载程序。其中,所述源工作程序是指单片机正常工作时执行的程序,与所述在线下载程序是相对独立的,单片机在一个时间段内只执行其中一个程序。由于是两个独立的程序,支持程序下载过程中出现异常中断(如:异常断电)可恢复重新下载功能。
[0036]步骤120、单片机开始执行在线下载程序Boot loader;
[0037]单片机确定下载信息控制引脚为低电平状态后,开始执行在线下载程序Bootloader,所述Boot Loader用于将系统的软硬件环境调整到合适的状态。
[0038]步骤130、单片机向上位机发送身份标识ID号;
[0039]每台上位机可以对应多个单片机,每个单片机与上位机的通信使用一个特定的通道,需要实现固件在线下载的单片机通过对应的通信通道将自身区别于其他单片机的身份识别ID号发送给上位机,以便上位机确定单片机身份。
[0040]步骤140、单片机接收并解析上位机根据所述ID号发送的握手字符密码;
[0041]上位机根据单片机发送的自身ID号进行信息回复,为保证通信安全,上位机对回复信息进行加密,以握手字符密码的形式将回复信息发送给对应通道的单片机。单片机收到上位机发送的握手字符密码后,对其进行解析。
[0042]步骤150、单片机根据所述握手字符密码确定当前通道软件代码是否需要更新,若是,执行步骤160,若否,跳出在线下载程序Boot loader,执行源工作程序;
[0043]单片机根据所述握手字符密码的解析结果,获取所述握手字符密码携带的指示当前通道软件代码是否需要更新的信息,若根据上位机指示确定当前通道软件代码不需要更新,则跳出在线下载程序Boot loader,转为执行源工作程序,若根据上位机指示确定当前通道软件代码需要更新,则继续执行后续在线下载程序。
[0044]步骤160、单片机向上位机发送数据接收请求;
[0045]单片机根据上位机指示确定当前通道软件代码需要更新后,对用于存储待下载数据的存储器进行擦除并允许对存储器写入,为了建立通信链路,单片机可以通过自动波特率检测确定位速率,也可以使用和上位机预定一致的波特率,一旦单片机已准备好接收数据即向上位机发送待下载数据的接收请求。
[0046]步骤170、单片机接收上位机根据所述数据接收请求发送的响应字;
[0047]单片机接收到上位机根据所述数据接收请求发送的响应字,确定所述数据接收请求已被上位机通过,待下载数据即将开始传输。
[0048]步骤180、单片机接收并存储上位机传输的待下载数据。
[0049]单片机收到上位机发送的响应字后,接收上位机传输的待下载数据,并按序排列存储在存储器对应的位置。
[0050]进一步的,单片机判断下载信息控制引脚是否为低电平状态之前,还包括:
[0051 ]单片机初始化相关软件和硬件,并配置RS422通信。
[0052]本实施例采用RS422通信方式实现单片机与上位机的通信,连接好硬件电路后,需要先对相关的软件和硬件进行初始化,并配置RS422通信,包括配置用于下载数据的外设和输入/输出端口引脚,为后续程序的执行过程做好准备。
[0053]
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1