专利名称:用于嵌入式微控制单元的更新程序码方法
技术领域:
本发明有关一种烧录(writer)程序的方法,特别是有关一种直接在应用系统中进行烧录程序的方法。
一般计算机系统依其特性可分为可重新编程式(reprogrammable)及嵌入式(embedded)系统。可重新编程式系统就像一般使用的个人电脑,含有可储存大量数据的硬盘,使用者可通过键盘及屏幕显示器等输出入元件在硬盘内存放各种不同程序,并随时叫出来使用或更改。嵌入式系统即一般所称的单芯片微处理器,是将少量的存储器及输出入元件都嵌入在一颗芯片里,一般都是使用烧录器将将程序机器码烧写到存储器内,使其作某一特定工作,例如工业上的微程序控制等,所以单芯片微处理器也称为微程序控制器(microcontroller)或嵌入式微控制单元(Embedded MicrocontrollerUnit,Embedded MCU),因此,当设计一种简单的微电脑系统,使用此种嵌入式微控制单元,因为省略存储器及输出入元件接口的界接,可简化设计节省成本。
参阅
图1所示的嵌入式微控制单元100的基本方块图,内含微处理器(micro processor)102、程序存储器(program memory)104和多个功能方块(functlon block)106。数据的输入与输出、处理与运算,都由微处理器102依软件程序循序执行。一般而言,在数据载入后,微处理器102利用总线,由程序存储器104读取所储存的数据与程序,经各种指令运算,将处理结果传送至微处理器102,再输出至输出装置或驱动多个功能方块106。
参阅图2所示的嵌入式微控制单元应用系统200的基本方块图,其中周边输入装置202接受输入数据后,输入的数据经由嵌入式微控制单元100处理与分析后,将得到的结果传输给功能元件204进行操作。由于一些重要数据或程序与基本输入、输出(Basic Input Output Operating System,BIOS)操作系统等程序码(Program code),不可随着电源关闭而消逝,但在软件发展或系统更新功能时,常需修改其中程序存储器104的程序码,产业上一般是使用快闪式可抹除且可编程只读存储器(Flash Eraseable andProgrammable Read Only Memory,Flash EPROM)来作为程序的存储器装置。
一般将程序码写入此快闪式可抹除且可编程只读存储器的方法有两种,一种是将嵌入式微控制单元从系统中拆下并放置于烧录器(EPROMWriter)上,将程序机器码烧录到此快闪式可抹除且可编程只读存储器,如果一切顺利,将烧录好程序码的嵌入式微控制单元插入硬件线路中即可完成。当发现所烧录的程序码有错误时,必须再重新将新的程序烧写进去,如此地烧写快闪式可抹除且可编程只读存储器将极为不便,且烧写过程中,需将嵌入式微控制单元拆下,势必要停机才能进行更新程序码的动作,会造成生产线上困扰。
另外一种是在嵌入式微控制单元的应用系统上直接将程序码写入快闪式可抹除且可编程只读存储器,所以并不需要将嵌入式微控制单元拆下,在烧录过程中,应用系统尚可维持基本功能;但由于在烧录过程中,嵌入式微控制单元内的微处理机仍继续从程序存储器中读取数据,若此时微处理器所读取的数据恰好正在更新或更新至一半,微处理器所读取到的这些数据将会造成错误,所以通常在进行程序码更新动作时,微处理机会跳出需被更新的程序存储器,而至另一程序存储器执行程序,并接收烧录数据,写入需更新的程序存储器。由于在烧录过程中微处理机需要参与执行,所以会降低烧录速度,同时因为需要另一程序存储器供微处理机跳出时使用,因此会增加制造成本。另外一种在应用系统上直接将程序码写入的方法,是当嵌入式微控制单元内的微处理器收到更新程序码的要求后,即将嵌入式微控制单元设于复位状态下,此时微处理器的输出口及功能方块无法工作,易造成整个系统损坏。
为解决上述烧录过程中所发生的问题,本发明的主要目的是提供一种嵌入式微控制单元的更新程序码方法,也就是提供一种在嵌入式微控制单元应用系统上直接将程序码写入快闪式可抹除可编程只读存储器的烧录方法。
本发明的方法是这样实现的该方法至少包括下列步骤由一输出单元输出烧录请求信号,通过一接口将该要求信号传输给一微处理器;当该微处理器收到该请求信号后,该微处理器会进入闲置(ldle)或暂停(Halt)状态,并将控制权交给该接口;接着,由该输出单元通过该接口对一存储器进行数据直接烧录,同时该接口会存储该数据的校验码;当烧录完成后,该输出单元会将该接口所存储的该校验码与该输出单元所存储的校验码进行比较;若检查无误,该输出单元会经由该接口输出一复位(Reset)信号给该微处理器进行复位;以及若检查有错误发生,该输出单元会重新进行烧录工作。
上述的输出单元为一烧录控制装置,为烧录新程序码控制主体。上述接口为一个两支管脚(2 Pin)的串行接口。上述的存储器为一可抹除且可编程只读存储器。上述的校验码为一循环冗余字校验码,是将所要传送或储存的二进制数据除以一个固定的二进位数,所得到的余数。
本发明是在嵌入式微控制单元中加入一个两支管脚(2 Pin)的串行接口,并在嵌入式微控制单元应用系统上,外接一烧录控制装置(ProgramControl Device)直接将程序码写入快闪式可抹除且可编程只读存储器内。本发明应用一串行接口进行烧录工作,无须经由微处理器再将程序码烧录至程序存储器中,而是直接经由串行接口烧录至程序存储器中,因此烧录所需花费的时间大大降低。此外,本发明通过一个两支管脚的串行接口,来对程序存储器进行直接烧录,由于仅使用两支管脚,因此,控制方法极为简单,且使用上也极为方便。
下面结合本发明的较佳实施例并辅以附图对本发明作更详细的阐述,其中为说明方便起见,各图所示的相同数字代表相同的装置。
图1是传统的嵌入式微控制单元方块图。
图2是传统的嵌入式微控制单元应用系统方块图。
图3是依据本发明的嵌入式微控制单元应用系统方块图。
图4是依据本发明的嵌入式微控制单元方块图。
本发明提供了一种解决嵌入式微控制单元在烧录程序过程中,需要复位或停止系统,以避免嵌入式微控制单元内的微处理器读取到错误信息的方法。本方法使得系统在进行更新程序码的烧录处理时,仍可以确保系统在新旧程序码交替更换之间不会发生错误。事实上,由于本发明的方法无须在烧录处理过程中进行复位或停止系统,因此该应用系统比较不易发生损坏。本发明是利用在嵌入式微控制单元中加入一个两支管脚(2 Pin)的串行接口,并在嵌入式微控制单元应用系统上,外接一烧录控制装置,当需要进行程序码更新时,可经由此外接的烧录控制装置,通过两支管脚的串行接口,来对程序存储器进行直接烧录,由于只使用两支管脚,因此控制方法极为简单,提升了烧录的方便性。
依据本发明的较佳实施例中,本发明增加了一个两支管脚的串行接口(2Pin Serial Interface),以随时在需要进行程序存储器的机器程序码烧录更新工作时,由外接烧录控制装置(Program control Device)经由此串行接口通知微处理系统即将进行烧录工作,此时微处理机会暂时进入闲置(ldle)或暂停(Halt)状态,所以可以在进行烧录过程中避免微处理机继续读取程序存储器,且由于仅使用两支管脚,因此控制方法极为简单,故本发明较一般利用传统的嵌入式微控制单元,在进行程序存储器的机器程序码烧录更新工作时,具有较佳的效率。
依据本发明的较佳实施例,用于传送并接收更新机器程序码以进行烧录的系统架构图如图3所示,该系统架构包括应用系统300,和一烧录控制装置(Program Control Device)302外接此应用系统300,其中应用系统300包括一嵌入式微控制单元(Embedded Micro controller Unit)304,一功能元件(Function Device)204,一周边输入装置202。本发明使用两支管脚串行接口(图中未标示出)来烧录嵌入式微控制单元100的新程序码。其中嵌入式微控制单元304在系统电源开启后,会执行原有程序存储器的程序码,可控制应用系统中其他功能元件204的工作模式。应用系统300外部有一烧录控制装置302,作为烧录新程序码的控制主体(Host)。周边输入装置202接受输入数据后,输入数据经由嵌入式微控制单元304处理与分析后,将得到的结果传输给功能元件204进行运作,当需要更新程序码时,烧录控制装置302会输出一请求(Request)给嵌入式微控制单元304,当嵌入式微控制单元304接受后,即可进行机器程序码的更新动作。
嵌入式微控制单元304的系统架构图如图4所示,包括微处理器(microprocessor)102、程序存储器(programmemory)104,多个功能方块(functionblock)106和串行接口(Serial Interface)402,其中串行接口402使用两支管脚(2 Pin)与外部的烧录控制装置302连接。数据的输入与输出、处理与运算,都由微处理器102依软件程序循序执行。一般而言,在数据载入后,微处理器102利用总线,由程序存储器104读取所储存的数据与程序,经微处理器102各种指令运算,将处理结果传送至输出装置或驱动多个功能方块106。当串行接口402收到外界烧录控制装置302的更新程序码烧录请求后,串行接口402会送一个请求信号给微处理器102,微处理器102收到该请求信号后,会进入闲置(ldle)或暂停(Halt)状态,并将程序存储器控制权交给串行接口402,此时烧录装置302即可将新机器程序码经由串行接口402直接写入程序存储器中,并不需要再经由微处理器102,因此烧录速度可提升;且不像一般系统在查知烧录请求时,微处理器102会跳出需被更新的程序存储器,而至另一程序存储器执行程序,并接收烧录数据,写入需更新的程序存储器,因为在此系统架构下需要另一程序存储器供微处理机102跳出时使用,所以会增加制造成本。
在程序码数据传输过程中,串行接口402并计算接收数据的循环冗余字元校验码(Cyclic Redundancy Check code),在数据传输完成后,烧录控制装置302只需比较串行接口402中的循环冗余字元校验码与烧录控制装置302中的循环冗余字元校验码,即可获知传输是否成功。在所有机器程序码写入成功后,烧录控制装置302即可要求嵌入式微控制单元304进行复位(Reset),复位完成后即执行新机器程序码,本发明是在烧录完成后,再对嵌入式微控制单元304进行复位动作,不同于一般系统在查知烧录要求时,即将整个嵌入式微控制单元304设于复位状态,因此可避免因微处理器102输出口及功能方块106无法工作所造成的损害。其中,循环冗余字校验码是将所要传送或储存的二进位数据除以一个固定的二进位数,所得到的余数称为循环冗余字元校验码;随着数据一起传送或储存,在接收或读出数据时,再次形成这种校验码,并作两次校验比较,从而检测出是否存在误码现象。
权利要求
1.一种嵌入式微控制单元更新程序码的方法,其特征在于该方法至少包括下列步骤由一输出单元输出烧录请求信号,通过一接口将该请求信号传输给一微处理器;当该微处理器收到该请求信号后,该微处理器会进入闲置(1dle)或暂停(Halt)状态,并将控制权交给该接口;接着由该输出单元通过该接口对一存储器进行数据直接烧录,同时该接口会存储该数据的校验码;当烧录完成后,该输出单元会将该接口所存储的该校验码与该输出单元所存储的校验码进行比较;若检查无误,该输出单元会经由该接口输出一复位(Reset)信号给该微处理器进行复位;以及若检查有错误发生,该输出单元会重新进行烧录工作。
2.如权利要求1所述的嵌入式微控制单元更新程序码的方法,其特征在于上述的输出单元为一烧录控制装置,为烧录新程序码控制主体。
3.如权利要求1所述的嵌入式微控制单元更新程序码的方法,其特征在于上述接口为一个两支管脚(2Pin)的串接接口。
4.如权利要求1所述的嵌入式微控制单元更新程序码的方法,其特征在于上述的存储器为一可抹除且可编程只读存储器。
5.如权利要求1所述的嵌入式微控制单元更新程序码的方法,其特征在于上述的校验码为一循环冗余字校验码,是将所要传送或储存的二进制数据除以一个固定的二进位数,所得到的余数。
全文摘要
一种嵌入式微控制单元更新程序码的方法,是在一嵌入式微控制单元加入一串行接口,在进行程序码更新时,外接一烧录控制装置,当串行接口会送一个请求信号给嵌入式微控制单元内的微处理器,微处理器收到该请求信号后,会进入闲置或暂停状态,并将程序存储器控制权交给串行接口,此时烧录装置即可将要更新的程序码经由串行接口直接写入程序存储器中,同时该接口会存储该程序码数据的校验码;在烧录完成后,输出单元会将接口所存储的校验码与该输出单元所存储的校验码进行比较。
文档编号G06F9/22GK1346085SQ0012462
公开日2002年4月24日 申请日期2000年9月26日 优先权日2000年9月26日
发明者袁中平, 陈吉田, 汤炳发 申请人:民生科技股份有限公司