一种芯片烧录系统及方法、电子设备
技术领域
本发明涉及基于ARM的32位MCU的芯片程序烧录,尤其涉及一种设计中自动检测芯片是否在线的芯片烧录方法。
背景技术
目前的芯片烧录平台是基于C51的Silicon Laboratories IDE开发的,其下载代码接口单 一,下载速度慢及无信息提示等都给使用人员带来困难,工作频率低、指令执行速度慢和可 移植性差等不利于后续开发人员的维护和程序升级;烧录芯片的时间过长,影响生产产能, 烧录芯片的出错率高(大于千分之五),影响客户体验;需要另行购置专用性USB芯片,在 很大程序上限制了传输的速度造成速度与开发模式的瓶颈,而且PC软件开发受限于USB FIFO厂商提供的API函数,可操作性与通用性较差,造成开发维护成本高;烧录装置平台 的自动化程度低,烧录无法自动检测芯片是否在线、芯片管脚是否对位、硬件电路上无过压 过流等功能,会导致烧录芯片不良,需要人工手动操作软件烧录,导致测试研发人员时间被 大量占用,难以有足够的精力与时间进行其他方面工作以及技术能力提升。
发明内容
为解决上述问题,本发明的另一个目的在于提供一种芯片烧录的电子设备系统及烧录方 法,该系统及烧录方法旨在开发出一个能够利用ARM处理器开发,采用软硬件协同的开发 模式,最大程度的节省硬件成本和软件设计周期,优化烧录时间。
本发明的另一个目的在于提供一种芯片烧录的电子设备系统及烧录方法,该系统及烧录 方法可以实现在较少的成本下芯片的快速烧录,可在不同模式下进行烧录,在烧录过程中利 用不同的信息提示用户,自动检测芯片放置,软硬件协调开发方式,可大大减少开发时间, 减少因接触问题而导致的烧录不良的概率。
为实现上述目的,本发明的技术方案如下。
一种芯片烧录的电子设备系统,其特征在于所述系统包括有USB通信模块、检测输出 模块、UI显示报警模块、固件升级模块、存储模块、PC控制软件模块和按键模块,上述模块分别与ARM进行连接或通信;
所述USB通信模块,主要是利用ST固件库的USB框架完成USB电源管理、端点分配管理、类私有管理函数、中断函数、USB描述符、USB枚举、USB读写传输等函数的编写;
所述检测输出模块,分为检测部分和输出部分,检测部分主要是对DUT芯片是否正确 放置进行检测,输出部分,主要提供多级编程电压VPP,方便适用于不同芯片的烧录;
所述UI显示报警和按键处理模块包括有UI显示报警和按键处理模块两个部分,其中主 要是ARM读取各个芯片模块的状态信息将烧录执行的状态通过USB发送给PC机,PC可以读取该结果,来实时给客户提醒目前烧录的基本信息;
所述固件升级模块,用于新的芯片不断推出,需要有预留代码段来适用于各种芯片时序 的升级操作;
存储模块是存放用户hex的模块,必须使用存储芯片来存储用户的hex代码,存储模块 有两个部分组成,即索引表和数据区,索引表是用来存放芯片的基本信息的区域,如芯片型 号、数据大小、存放位置和其他信息;数据区用来存放用户要脱机烧录的HEX数据。
PC控制软件模块负责烧录控制,主要功能描述为(1)烧录配置命令的下发:将烧录项及 配置参数组成消息帧通过通信接口通信下发给底层单板软件;(2)芯片烧录信息的收集:接收 底层单板软件上报的芯片烧录状态消息帧,并解析得到芯片产生的烧录状态信息;(3)烧录程 序修正或更新,直接控制单板擦除或烧录代码,对源码与读出的代码进行比较等;(4)烧录模 式执行,根据用户不同需要可选择在线烧录或脱机烧录等。
所述检测输出模块中,芯片的检测部分也叫OS(OPEN&SHORT检测)分为开路检测和短路检测,开路检测是断开GND口,将DUT的vpp拉到低端,连接DUT的IO口,检测 DUT的IO口,若是高电平,表示DUT的引脚已经连接上,若是低电平,则表示DUT的引 脚断路;短路检测是断开VDD的引脚,将IO和GND与arm的io口连接,检测dut的IO 电平,若是高电平(ARM内部有上拉电阻),表示引脚连接正常,若是低点平,则表示有引 脚短路。通过继电器切换可以定位到DUT的任意一个管脚。
所述存储模块中,采用NOR FLASH存储用户hex可大大提高写入速度,加快存储。
本发明的实现方法包括步骤如下:
101、烧录器终端上电,进行初始化;
初始化系统时钟、IO端口、USB模块、存储模块、看门狗和LCD等模块初始化,接着烧录器配置内部寄存器数据,自检外设模块,完成自检后蜂鸣器警示以提示用户启动完成。
102、烧录器设备完成启动后,顺序建立接收上层协同控制软件下发及处理的进程;
即USB接收命令任务进程;上报烧录结果状态消息进程即USB上报消息任务进程;烧 录器的界面显示和预警进程即UI显示任务;USB中断处理,对USB端口数据进行接收和发送处理;定时器中断处理,用于管理每片定时模块,超时后需要执行处理的信息功能,即中断处理进程;接受PC的通讯信息,压入队列消息系统,另外负责提取入队列的消息,取出 消息,分析通讯的事例来执行各个用户的命令请求进程即(擦出、查空、组合等)命令消息 进程;对ARM内部的定时模块,进行统一管理,对时间进行分配,记录烧录时间等一些有 意义的状态信息即时间管理进程。
103、烧录器初始化完成后开始检测在线模式还是离线模式;如果烧录器系统检测到USB 接口已接入PC机,开始执行104、105等步骤,否则执行106等步骤;
104、打开PC控制软件,根据设定的USB通信接口建立与PC机的链接,USB连接成 功后整个系统等待PC机发送命令进行处理工作,并向PC机发送初始化完成指令;
105、上位机控制软件和烧录器设备连接完成后,上位机控制软件向烧录器设备发送烧 录程序是否载入查询命令,烧录器接收到到烧录程序是否载入查寻命令后,调用USB接收 命令任务进程进行处理,读取存储空间内部数据,并判断有无下载烧录程序,通过USB上 报消息任务进程反馈判断结果和存在的数据信息给上位机控制软件,接着判断是否在线烧录 芯片,如果不烧录芯片结束本次烧录,否则执行步骤108;
106、以上103步骤烧录器进入离线模式,烧录器开始判断存储模块是否有下载烧录程 序或者用户是否需要更新程序、烧录时序及烧录芯片关键识别信息,如果没有用可用烧录数 据,返回103步骤开始执行,否则执行以下步骤。
107、通过烧录器按键选择需要的烧录程序,判断是否进行芯片烧录工作,如果不需要 烧录芯片,烧录系统接回结束本次烧录动作,否则执行以下步骤。
108、烧录器检测被烧录的芯片是否在线,通过判断芯片管脚是否与烧录器主控芯片 ARM的GPIO端口连接正常,OS开短路检测可以有效的防止芯片烧录不良等问题。如果芯片没有接触好或者未放入,烧录器调用UI显示进程显示信息给用户,并驱动蜂鸣器提示用户,然后系统继续检测芯片是否放置好。
109、芯片正确放置后,烧录器系统向芯片发送读取芯片有效信息的指令,芯片将自身 信息传送给烧录器系统,烧录器系统根据芯片反馈的信息和存储模块内存放的信息进行查 询,然后从存储模块中调出有效的烧录数据、烧录时序及关键代码选项等有效数据,确定完 成烧录时序后,烧录器系统按照确定的烧录时序,将客户程序写入芯片。
110、芯片烧录完成后,烧录器协调开始接受芯片烧录完成的反馈信息,并更具此信息 结束烧录动作,开始发送读取芯片烧录数据命令,读取烧录数据,将读取到的烧录数据和存 储模块中的烧录数据进行对比,确认芯片烧录正确的程序,如果数据对比不一致,烧录系统 调用UI显示模块,显示用户不一致的数据,并蜂鸣器提示;如果对比数据一致,烧录系统 调用UI显示模块,显示烧录成功并显示芯片关键信息。
111、至此一次芯片烧录过程完成,如果不更换烧录芯片类型,烧录系统继续执行108、 109、110等步骤,如果更换芯片类型,烧录系统从103步骤开始向下执行。
烧录是每次对芯片是否烧录循环查询工作状态的一个过程,不断的查询和状态判断,命 令的解析,目的是把在线烧录、离线烧录、在线检测、数据对比、用户提示、固件更新及 PC机特点结合,实现智能化的烧录检测。
本发明使用内含USB接口的大容量ARM处理器,利用软硬件协同开发模式节省开发时 间,采取多接口并存的开发模式;引入在线芯片检测的思想与方法,对被烧录芯片进行在线 检测并显示问题,解决人员重复劳动和效率低下问题;内嵌USB模块的ARM处理器节省了 专用芯片够买及其外围电路设计,在一定程度上增加了系统的可靠性、稳定性和节省了硬件 成本等,使得整个系统具有高度的集成性,在总体系统上体现是更加完善的设计。
总之,本发明可以实现在较少的成本下芯片的快速烧录,可在不同模式下进行烧录,在 烧录过程中利用不同的信息提示用户,自动检测芯片放置,软硬件协调开发方式,可大大减 少开发时间,减少因接触问题而导致的烧录不良的概率。
附图说明
图1是本发明所实施的结构框图。
图2是本发明所实施的USB通讯的控制流程图。
图3是本发明所实施的检测输出模块结构示意图。
图4是本发明所实施的按键处理流程图。
图5是本发明所实施的固件更新流程图。
图6是本发明所实施芯片烧录的软件控制流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发 明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用 于限定本发明。
请参照图1所示,为解决上述技术问题,本发明首先提供一种芯片烧录的电子设备系统, 该系统能给内部人员和客户做自动化烧录,提高烧录效率。本发明所开发的电子设备系统支 持在线烧录和脱机烧录两种模式,在线烧录是用户将电子设备系统终端连接至PC端,通过 PC协调控制软件完成烧录操作;脱机烧录模式在电子设备系统通过PC控制软件在线更新或 升级完所需的代码后,利用UI显示界面通过按键操作实现芯片烧录的方式。该电子设备系 统包括有USB通信模块、检测输出模块、UI显示报警模块、固件升级模块、存储模块、PC 控制软件模块和按键模块,上述的模块分别与ARM进行连接或通信。
其中,USB通信模块,如图2所示,主要是利用ST固件库的USB框架完成USB电源 管理、端点分配管理、类私有管理函数、中断函数、USB描述符、USB枚举、USB读写传 输等函数的编写,主体分为三层次进行编写:USB核心底层函数、USB中间层管理函数、 提供USER层的API的USB上层函数(供以后开发人员的调用)。USB模块式ARM内嵌 的,ARM官方也提供了通用的API函数类及相关开发库,开发人员在开发过程中需要对USB 类函数在基础通信函数基础上进行相应的函数修改以灵活进行通信协议变更,如可以利用它 定义数据包格式、通信协议、设备类型及数据种类等方面的信息,节省开发时间和后续维护 容易。
具体的实现过程为:
201、USB端口接收信号,并通过PC通讯标志位进行验证。
202、对于通过验证的信号,则进行数据格式的解析,判断数据格式是否正确。
203、对于正确的数据格式,则分析通讯命令。
204、对于通讯命令,调用对应处理函数进行执行,执行的方式包括查看命令、读EE信 息、擦除命令、下载命令、校验命令及组合命令等。
205、执行完命令后,送达执行结果进行显示。
对于检测输出模块,如图3所示,分为检测部分和输出部分,检测部分主要是对DUT芯片是否正确放置进行检测,目前检测部分可以集成于ARM中,由ARM直接来检测,输 出部分,主要提供多级编程电压VPP,方便适用于不同芯片的烧录。
芯片的检测部分也叫OS(OPEN&SHORT检测)分为开路检测和短路检测,开路检测是断开GND口,将DUT的vpp拉到低端,连接DUT的IO口,检测DUT的IO口,若是 高电平,表示DUT的引脚已经连接上,若是低电平,则表示DUT的引脚断路;短路检测是 断开VDD的引脚,将IO和GND与arm的io口连接,检测dut的IO电平,若是高电平(ARM 内部有上拉电阻),表示引脚连接正常,若是低点平,则表示有引脚短路。通过继电器切换 可以定位到DUT的任意一个管脚。
UI显示报警和按键处理模块,如图4所示,UI显示报警主要是ARM读取各个芯片模块的状态信息将烧录执行的状态通过USB发送给PC机,PC可以读取该结果,来实时给客 户提醒目前烧录的基本信息。另外设备也会通过指示灯、蜂鸣器、LCD等多样的输出方式把 各种状态数据(烧录次数、烧录时间,烧录结果、芯片在线与否)等信息,直观的提示出来。 按键处理模块式对用户选择的按键进行处理,还可以结合显示模块,给用户人性化体验。具体的按键处理流程如图4所示。
301、检测是否有按键触发。
302、将触发的按键进行去抖动处理,以避免误操作。
303、对触发的按键进行进一步判断,判断是否是PRO键,如果是,则进入按键处理流 程,执行相应的操作,执行完后进入下一步;如果不是,则执行下一步。
304、按键进行进一步判断,判断是否是MOD键,如果是,则进入MOD处理流程,执 行相应的操作;如果不是,则退出。
对于固件升级模块,主要是用于新的芯片不断的推出,需要有预留代码段来适用于各种 芯片时序的升级操作,通过该固件升级模块用户可以使用PC控制软件对ARM应用程序或 时序进行修正或升级。固件升级的流程如图5所示。
401、进行初始化,初始化包括初始化时钟系统、初始化GPIO、初始化LCD、初始化USB及初始化看门狗。
402、然后判断应用层代码是否需要更新。如果是,则接受PC机USB端口的命令,否则直接跳入应用层。
402、接受USB命令后,判断是否有刷新请求,如果有则刷新应用层代码,进行更新,如果无则返回。
存储模块是存放用户hex的模块,必须使用存储芯片来存储用户的hex代码。采用NOR FLASH存储用户hex可大大提高写入速度,加快存储。存储模块有两个部分组成,即索引表和数据区。索引表是用来存放芯片的基本信息的区域,如芯片型号、数据大小、存放位置和其他信息;数据区用来存放用户要脱机烧录的HEX数据。
PC控制软件模块则负责烧录控制,主要通过PC机实现,其功能描述为(1)烧录配置命 令的下发:将烧录项及配置参数组成消息帧通过通信接口通信下发给底层单板软件;(2)芯片 烧录信息的收集:接收底层单板软件上报的芯片烧录状态消息帧,并解析得到芯片产生的烧 录状态信息;(3)烧录程序修正或更新,直接控制单板擦除或烧录代码,对源码与读出的代码 进行比较等;(4)烧录模式执行,根据用户不同需要可选择在线烧录或脱机烧录等。
图6所示,本发明的实现方法包括步骤:
101、烧录器终端上电,初始化系统时钟、IO端口、USB模块、存储模块、看门狗和LCD等模块初始化,接着烧录器配置内部寄存器数据,自检外设模块,完成自检后蜂鸣器警示以提示用户启动完成。
102、烧录器设备完成启动后,顺序建立接收上层协同控制软件下发及处理的进程即USB接收命令任务进程;上报烧录结果状态消息,进程即USB上报消息任务进程;烧录器的界 面显示和预警进程即UI显示任务;USB中断处理,对USB端口数据进行接收和发送处理。定时器中断处理,用于管理每片定时模块,超时后需要执行处理的信息功能,即中断处理进程;接受PC的通讯信息,压入队列消息系统,另外负责提取入队列的消息,取出消息,分 析通讯的事例来执行各个用户的命令请求进程即(擦出、查空、组合等)命令消息进程;对 ARM内部的定时模块,进行统一管理,对时间进行分配,记录烧录时间等一些有意义的状 态信息即时间管理进程。
103、烧录器初始化完成后开始检测在线模式还是离线模式。如果烧录器系统检测到USB 接口已接入PC机,开始执行104、105等步骤。否则执行106等步骤。
104、打开PC控制软件,根据设定的USB通信接口建立与PC机的链接,USB枚举成 功后向,连接成功后整个系统等待PC机发送命令进行处理工作,并向PC机发送初始化完成 指令。
105、上位机控制软件和烧录器设备连接完成后,上位机控制软件向烧录器设备发送烧 录程序是否载入查询命令,烧录器接收到到烧录程序是否载入查寻命令后,调用USB接收 命令任务进程进行处理,读取存储空间内部数据,并判断有无下载烧录程序,通过USB上 报消息任务进程反馈判断结果和存在的数据信息给上位机控制软件。接着判断是否在线烧录 芯片,如果不烧录芯片结束本次烧录,否则执行步骤108。
106、以上103步骤烧录器进入离线模式,烧录器开始判断存储模块是否有下载烧录程 序或者用户是否需要更新程序、烧录时序及烧录芯片关键识别信息,如果没有用可用烧录数 据,返回103步骤开始执行,否则执行以下步骤。
107、通过烧录器按键选择需要的烧录程序,判断是否进行芯片烧录工作,如果不需要 烧录芯片,烧录系统接回结束本次烧录动作,否则执行以下步骤。
108、烧录器检测被烧录的芯片是否在线,通过判断芯片管脚是否与烧录器主控芯片 ARM的GPIO端口连接正常,OS开短路检测可以有效的防止芯片烧录不良等问题。如果芯片没有接触好或者未放入,烧录器调用UI显示进程显示信息给用户,并驱动蜂鸣器提示用户,然后系统继续检测芯片是否放置好。
109、芯片正确放置后,烧录器系统向芯片发送读取芯片有效信息的指令,芯片将自身 信息传送给烧录器系统,烧录器系统根据芯片反馈的信息和存储模块内存放的信息进行查 询,然后从存储模块中调出有效的烧录数据、烧录时序及关键代码选项等有效数据,确定完 成烧录时序后,烧录器系统按照确定的烧录时序,将客户程序写入芯片。
110、芯片烧录完成后,烧录器协调开始接受芯片烧录完成的反馈信息,并更具此信息 结束烧录动作,开始发送读取芯片烧录数据命令,读取烧录数据,将读取到的烧录数据和存 储模块中的烧录数据进行对比,确认芯片烧录正确的程序,如果数据对比不一致,烧录系统 调用UI显示模块,显示用户不一致的数据,并蜂鸣器提示;如果对比数据一致,烧录系统 调用UI显示模块,显示烧录成功并显示芯片关键信息。
111、至此一次芯片烧录过程完成,如果不更换烧录芯片类型,烧录系统继续执行108、 109、110等步骤,如果更换芯片类型,烧录系统从103步骤开始向下执行。
烧录是每次对芯片是否烧录循环查询工作状态的一个过程,不断的查询和状态判断,命 令的解析,目的是把在线烧录、离线烧录、在线检测、数据对比、用户提示、固件更新及 PC机特点结合,实现智能化的烧录检测。
本发明可以实现在较少的成本下芯片的快速烧录,可在不同模式下进行烧录,在烧录过 程中利用不同的信息提示用户,自动检测芯片放置,软硬件协调开发方式,可大大减少开发 时间,减少因接触问题而导致的烧录不良的概率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原 则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。