Usb装置韧体程式可更新的方法

文档序号:6451411阅读:219来源:国知局
专利名称:Usb装置韧体程式可更新的方法
技术领域
本发明有关于一种USB装置的韧体程式更新,特别是一种有关利用万用序列汇流排(Universal Serial Bus;USB)更新包含微处理器的USB装置的韧体程式的更新方法。
背景技术
USB装置中(device)由于包含一内建系统程式及参数描绘于其中,电脑可以很容易的辨识该装置并予配置(configure)起来。使用者不需做任何的周边位址及IRQ(interrupt request)设定,因此,减少过去个人电脑使用者在插入一电脑不认识的装置或周边时的那种屡屡失败的挫折感。此外,USB装置通常支援热插拔(hot-plugging)、在与电脑连接时的资料传输方面,又属具有低耗电及满意的传输速度的特性。在全速模式下其传输速度足以传送数位格式的音乐档及压缩的影像信号。例如录音笔、数位相机、MP3播放器、印表机、大姆哥随身碟等等电子商品都属之。除此之外,USB也可以提供低速模式,例如滑鼠、键盘即是。此外,USB装置只要二条数据传输线及二条电源线,在上述的电能消耗,也使得其不需要粗缆线及/或者是变压器等。
使用者在上述令人满意的传输速度,与功率消耗下,老式的资料串列传输如RS-232,或平行埠介面已逐一的被使用者所丢弃,因为有更好的USB可以提供选择。也因此,利用USB作为传输介面的商品愈来愈多。
当USB装置由USB埠插入后,电脑(或USB主机host)的作业程式,会向USB装置提出标准请求(standard request)例如Get Descriptor,而USB装置也需要包含一些可以对标准请求解译的解译器,在解译后,再将USB装置的参数描绘上传给电脑的作业系统,以提供作业系统辨识该USB装置的特性,并使作业系统执行一些动作,例如Set Address、Set Cinfiguration等等以因此配置一位址给USB装置。以使USB装置可使用USB主机的资源。在这些确认信号送出后,作业系统就可以辨知这是那一种装置。
一般而言,USB装置的功能是依据其可程式化抹除快闪记忆体内的韧体程式或称系统程式内容而定,再由其内建的徽处理器执行系统程式。当韧体程式不存在时,USB装置的功能就不能发挥。
不过这些程式码并不易修改,这结果是当业者将USB装置卖给客户后,USB装置内的韧体程式几平是被使用到该USB装置寿终正寝。在这段期间即使中间业者开发更强更好用的更新版程式,客户通常也不会或不敢任意更改。
以时下而言,若欲对可程式化抹除快闪记忆体韧体程式更新的第一种方法是利用并列埠烧录程式。并列埠烧录速度较快,但缺点是使用较多接脚,特别是当积体电路已经焊在印刷电路板后,想要更改程式码就很麻烦。另一种方法是利用串列烧录,串列烧录没有需要多接脚的问题,但缺点则是速度较慢。由于上述的问题,非专业人士,般都不会轻易尝试。
有鉴于发明背景所述,USB装置是内建一韧体(firmware)于其中。USB装置所能执行的功能是依据韧体所载的系统程式内容由USB装置内的微处理器撷取指令并执行之而获得其功能。使用者若欲执行新的功能时,除非USB装置的韧体已内建该内容,否则就不可能执新的功能。此外,即使业者提供更新版的韧体程式,使用者欲更新也常因过于麻烦而却步。

发明内容
本发明的目的是提供一种系统程式可利用USB埠更新的USB装置及其更新方法。
本发明提供的一种方法,使用者可以像常使用应用程式一样容易,当USB装置与主机连接后除非使用者下烧录模式的指令至USB装置,否则USB装置所执行的便是正常工作指令。
本发明具体的技术方案为一种更新内含一微处理器及一USB ISP解译器USB装置的快闪记忆体系统程式的方法,该方法至少包含下列步骤将一USB装置与一主机连线;待主机辨识USB装置属性并配置一始启住址后,USB装置进入待命的间置状态(idle);该微处理器等待主机所下的请求指令,或执行该系统程式,并依据该请求指令或该系统程式执行,直至接收来自主机的供应商烧录指令ISP_START;该微处理器交出控制权给USB ISP解译器;该USB ISP解译器依序接收来自主机的ISP_INITIAL及ISP_ERASE_PAGE指令并执行之,直到该快闪记忆体所有记忆页资料全部被抹除;该USB ISP解译器依序接收来自主机的ISP_INITIAL及ISP_ERASE_PAGE指令并执行之,直到该快闪记忆体原系统程式已被全部更新;该USB ISP解译器接收来自主机的ISP_READ指令并执行之,直到该快闪记忆体被更新的内容全部被验证;该USB ISP解译器接收来自主机的ISP_RESET指令并执行之;该USB ISP将控制权还给该微处理器。
上述的主机辨识USB装置属性是由USB装置的USB引擎接收标准请求后产生中断信号,再由该微处理器回应该主机。
上述的请求指令包含标准请求指令与非标准请求指令。
上述的非标准请求指令是ISP_START。
上述的ISP_INITIAL,是用以防止ISP_ERASE_PAGE及ISP_PROGRAM误动作,而需要的指令,该ISP_INITIAL指令执行后,将待该快闪记忆体回应时才进行ISP_ERASE_PAGE或ISP_PROGRAM。
上述的ISP_ERASE_PAGE供应商烧录指令是对该快闪记忆体执行资料抹除,该指令每使用一次将可抹除一页的对该快闪记忆体内容,因此该ISP_ERASE_PAGE指令包含该快闪记忆体资料抹除的启始位址。
上述的ISP_PROGRAM供应商烧录指令,每使用一次将可对该快闪记忆体写入一位元组的资料内容,因此该ISP_PROGRAM指令每次执行时将包含该快闪记忆体资料写入的启始位址。
上述的ISP_READ供应商烧录指令,每使用一次将可对该快闪记忆体读出一位元组的资料内容,因此该ISP_READ指令每次执行时将包含该快闪记忆体资料读出的启始位址。
上述的供应商请求指令都是8位元的交易封包。
本发明的方案了揭露一种韧体程式可更新的USB装置及其更新方法,其中USB装置至少包含一微处理器及一USB ISP解译器,一快闪记忆体区块,该方法至少包含,将USB装置与一主机连线,随后待主机辨识USB装置属性并配置一始启位址,USB装置可以使用主机资源。紧接着,微处理器等待主机所下的请求指令,或执行旧的系统程式,并依据该请求指令或该系统程式执行,直至接收来自主机的供应商烧录指令ISP_START后。该USB装置进入烧录模式。此时,该微处理器交出控制权给USB ISP解译器。随后主机将送入一连串的烧录指令,例如首先执行ISP_INITIAL,接着再执行ISP_ERASE_PAGE。ISP_INTITIAL,防止该快闪记忆胞未回应就进行后续的ISP_ERASE_PAGE指令而导致被误删除。而ISP_ERASE_PAGE烧录指令一次可以抹除一快闪记忆胞页的资料。
随后是ISP_INITIAL、ISP_PROGRAM等烧录指令的重覆进行,直至完成可程式化快闪记忆体系统程式更新。最后再以ISP_READ,将已更新的内容读出,以验证更新的结果。最后一个烧录指令ISP_RESET,用以结束系统程式码更新。并将控制权还给微处理器,此后微处理器将执行更新后的程式码。


图1示依据本发明所设计的USB烧录系统硬件控制块。
图2示依据本发明的正常指令及烧录指令执行流程图。
图3a表格示依据本发明的ISP请求名称及其格式。
图3b表格示依据本发明的ISP请求名称与ISP解译素值的对照表。
图4为依据本发明的USB烧录系统软件控制流程。
图号说明USB引擎 110ISP_多工器 120微处理器 130正常模式下路径 130aUSB ISP解译器 140烧录模式下路径 140a可程式化快闪记忆体150开始步骤 200初始化步骤210USB装置等待主机下指令步骤220进入烧录模式与否步骤 230处理器执行非关于烧录指令的步骤235USP ISP判断烧录指令步骤 250USP ISP执行抹除的步骤 251USP ISP执行写的步骤 252USP ISP执行读的步骤 252USP ISP执行重置系统步骤 260微处理器与可程式快闪记忆体之间的路径 14具体实施方式
本发明因此提供新方法方便使用者更新。只要主机和USB装置连接,再由主机提供烧写指令即可。
本发明USB烧录系统的硬件控制区块请见图1。包含一USB引擎110、一ISP(In System Program)_多工器120、一微处理器130、一USB ISP解译器140及一可程式化快闪记忆体150。并同时参考图2的烧录流程说明图。
首先是步骤200的开始,即USB装置与主机(未图示)两者相连接。随的,步骤210的初始化,主机向USB装置USB引擎110提出标准请求(standardrequest)。USB引擎110即产生一中断,经由ISP_多工器120经正常路径130a至微处理器130进行处理,告知微处理器130已收到了指令,再由微处理器130回应主机,以便让主机为该USB配置一起始位址以使用主机的资源。一般而言,第一道标准请求即为取得描述元(descriptor)。微处理器130首先解译标准请求后,即提供描述元给主机,主机因此可以辨识现有连接的USB装置的属性。
紧接着,步骤220,USB装置等待主机下指令。当USB引擎110收到的指令,任何指令都会由微处理器130如步骤230判读。其中只要是正常指令,非有关于系统码的烧录,都会循步骤235,由微处理器130进行处理,并经由微处理器130和可程式快闪记忆体之间的路径145至可程式快闪记忆体150撷取系统程式指令以执行之。但当微处理器130读到的是有关于系统码烧录指令中的ISP_START的供应商请求指令(Vendor Request)时,如步骤240所示,即透过ISP_多工器120将路径130a禁能(disable)以使微处理器130本身隔离,并使微处理器130呈间置的idle状态。
换言之,当USB引擎110后继收到的指令,微处理器130不再拥有后继动作的控制权,直到USB装置被重置(reset)后才会恢复。此时ISP_多工器120会将USB引擎110与USB解译器140连接的路径140a建立起来,以使得烧录的控制权落在USB ISP解译器140上。
此时即入烧录模式。USB解译器140可以解译任何由主机所下的烧录模式指令,并依烧录模式指令内容,将系统程式烧录至可程式快闪记忆体150。
烧录模式指令除了前述(1)ISP_START、尚包含(2)ISP_INITIAL、(3)ISP_READ、(4)ISP_ERASE_PAGE、(5)ISP_PROGRAM与(6)ISP_RESET。这些指令分别有如下说明的功能ISP_START是当处理器130收至主机端下达此指令时,会由正常工作模式(Normal mode)自动切换为烧录模式(ISP mode),USB装置内的处理器将控制权交给USB ISP解译器140,随即进入悬置状态(idle),取得控制权的USB ISP解译器140,便等待烧录初始化的指令。
ISP_INITIAL烧录模式下,任何欲对可程式快闪记忆胞进行烧录的写(PROGRAM)、或清除(ERASE)前,都需先下此指令,以防止误动作。当USB ISP解译器140解译此命令后,USB ISP解译器140会待可程式化快闪记忆体150回应后才执行写、或清除等指令。
ISP_ERASE_PAGE烧录模式下,执行写之前所需要下的动作,将整页可程式快闪记忆体150的浮置闸极(floating gate)电荷全部清除,即相当于在所有的记忆胞内填入1的电压位准。
ISP_PROGRAM烧录模式下,执行写入可程式快闪记忆体150的指令,此指令每次可写入一个位元组。
ISP_READ烧录模式下,为比对所写入可程式快闪记忆体150内容的正确性的指令,此指令每次可读出一个位元组。
ISP_RESET则是烧录模式下,当所有烧录的读、写动作皆完成后,USB ISP解译器140收到此指令后,就会将控制权交还给微处理器130,换言之重新开启USB引擎110和微处理器130之间的桥梁130a。因此,微处理器130可以重新启动整个USB装置的硬体,并向可程式快闪记忆体150取得刚烧录后的程式码并执行之。不管USB装置是否已和主机断线皆同,除非再次又收到烧录指令。
以上述每一个ISP请求命令而言,请参考图3a所示的表格。都是由八个位元组所组成的交易封包。其中NA表示没有任何数值。其中,第0位元组的最高位元所表示的是主机和USB装置的交易方向。当最高位元是0时,表示交易方向由主机至USB装置。当最高位元是1时,表示交易方向由USB装置至主机。位元五的1表示是属于供应商指令。只有USB ISP解译器140可以认得这些指令的内容。位元四到位元零的值表示界面(interface)种类。在此第0位元的1表示这些指令由endpoint0做为入口端点。
第1位元组是有关烧录的六个供应商指令如上述,其对应值如图3b的表格所示。当USB ISP解译器140到这些对应值时,将会依据不同的指令而进行必要的动作。
第2和第3位元组则是依指令的不同而有差异。例如ISP_START只需要等待的时间(wTimeOut),只要wTimeOut到时才进行动作。ISP_READ、ISP_ERASE_PAGE及ISP_PROGRAM都是则需要的是起始位址。ISP_ERASE_PAGE由于一旦进行就是整页进行,一页的记忆胞通常有128位元组,但也不必设限,可能也可以64位元组或256位元组。因此,带有ISP_ERASE_PAGE封包的位元组B6和B7不需要注明字组总长度,只需要载明页的起始位址即可。而ISP_READ、及ISP_PROGRAM是以1位元组为单位,因此,在位元组B6是位元组长度。
图4示依据本发明的USB烧录系统软件控制流程。在正常模式下USB系统程式指令及由主机所下的标准请求都由微处理器控制,而烧录指令则由USB ISP取得控制权。图示显示出烧录指令执行结束后,会由USB装置回应以已完成(OK)的讯息。
权利要求
1.一种更新内含一微处理器及一USB ISP解译器USB装置的快闪记忆体系统程式的方法,该方法至少包含下列步骤将一USB装置与一主机连线;待主机辨识USB装置属性并配置一始启住址后,USB装置进入待命的间置状态;该微处理器等待主机所下的请求指令,或执行该系统程式,并依据该请求指令或该系统程式执行,直至接收来自主机的供应商烧录指令ISP_START;该微处理器交出控制权给USB ISP解译器;该USB ISP解译器依序接收来自主机的ISP_INITIAL及ISP_ERASE_PAGE指令并执行之,直到该快闪记忆体所有记忆页资料全部被抹除;该USB ISP解译器依序接收来自主机的ISP_INITIAL及ISP_ERASE_PAGE指令并执行之,直到该快闪记忆体原系统程式已被全部更新;该USB ISP解译器接收来自主机的ISP_READ指令并执行之,直到该快闪记忆体被更新的内容全部被验证;该USB ISP解译器接收来自主机的ISP_RESET指令并执行之;该USB ISP将控制权还给该微处理器。
2.如权利要求1所述的方法,其特征在于,上述的主机辨识USB装置属性是由USB装置的USB引擎接收标准请求后产生中断信号,再由该微处理器回应该主机。
3.如权利要求1所述的方法,其特征在于,上述的请求指令包含标准请求指令与非标准请求指令。
4.如权利要求1所述的方法,其特征在于,上述的非标准请求指令是ISP_START。
5.如权利要求1所述的方法,其特征在于,上述的ISP_INITIAL,是用以防止ISP_ERASE_PAGE及ISP_PROGRAM误动作,而需要的指令,该ISP_INITIAL指令执行后,将待该快闪记忆体回应时才进行ISP_ERASE_PAGE或ISP_PROGRAM。
6.如权利要求1所述的方法,其特征在于,上述的ISP_ERASE_PAGE供应商烧录指令是对该快闪记忆体执行资料抹除,该指令每使用一次将可抹除一页的对该快闪记忆体内容,因此该ISP_ERASE_PAGE指令包含该快闪记忆体资料抹除的启始位址。
7.如权利要求4所述的方法,其特征在于,上述的ISP_PROGRAM供应商烧录指令,每使用一次将可对该快闪记忆体写入一位元组的资料内容,因此该ISP_PROGRAM指令每次执行时将包含该快闪记忆体资料写入的启始位址。
8.如权利要求4所述的方法,其特征在于,上述的ISP_READ供应商烧录指令,每使用一次将可对该快闪记忆体读出一位元组的资料内容,因此该ISP_READ指令每次执行时将包含该快闪记忆体资料读出的启始位址。
9.如权利要求1所述的方法,其特征在于,上述的供应商请求指令都是8位元的交易封包。
全文摘要
本发明的USB装置至少包含微处理器、USB ISP解译器,快闪记忆体。韧体程式更新步骤至少包含,将USB装置与一主机连线,随后待主机辨识USB装置属性,并配置一始启位址后,USB装置进入间置状态(idle);紧接着,微处理器等待主机所下的请求指令,或执行旧的系统程式,并依据该请求指令或该系统程式执行,直至接收来自主机的供应商烧录指令ISP-START;此后,该微处理器交出控制权给USB ISP解译器随后依序接收来自主机一连串的烧录指令并执行,例如依序执行ISP_INITIAL、ISP_ERASE_PAGE、ISP_INITIAL、ISP_PROGRAM等以完成系统程式更新,最后再以ISP_READ验证更新的结果。最后一个烧录指令ISP_RESET,以结束系统程式码更新,并将控制权还给微处理器。
文档编号G06F9/30GK1540497SQ0312212
公开日2004年10月27日 申请日期2003年4月21日 优先权日2003年4月21日
发明者王顺平, 罗信忠, 曾聪义, 吴知远 申请人:矽成积体电路股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1