专利名称:通用串行总线控制器及其执行方法
技术领域:
本发明涉及一种通用串行总线(universal serial bus,USB)控制器,特别涉及一种通用串行总线控制器及其执行方法。
背景技术:
近年来,随着通信科技的进步,摄影机,又称为网络摄影机,已普遍运用在举行视频会议或打视频电话上。网络摄影机主要包含一传感器,且此传感器可通过USB连接于个人计算机(personal computer,PC)。随着电子产品精致化,常常将网络摄影机整合至各种电子产品(例如笔记型PC 或液晶显示器等)中。因此,减小网络摄影机的尺寸对于减小具有网络摄影机的电子产品的尺寸特别重要。其中,于减小网络摄影机的尺寸上,可通过减小构成网络摄影机的传感器、USB LSI (large scale integrated circuit,大规模集成电路)及/或周边电路的尺寸实现。图1是显示现有的网络摄影机的系统配置。参照图1,网络摄影机100包含光学透镜110、传感器120及USB控制器130。网络摄影机100利用USB控制器130中的USB接口连接至PC 200。其中,传感器120可使用电荷耦合组件(charge coupled device,CCD)传感器或互补金氧半导体(complementarymetal oxide semiconductor, CMOS)传感器。图2是显示现有的USB控制器的内部配置。参照2图,USB控制器130包含传感器接口电路131、影像数据先进先出(first in first out,FIFO) 132、USB接口电路133、 中央处理单元(central processing unit, CPU) 134 及只读存储器(read-only memory, ROM)135。USB控制器130可由LSI来实现。其中,LSI可设计成可与诸如CMOS传感器或CXD 传感器等各种传感器120电性相连。为了使USB控制器130得以与传感器120相连接,因此USB控制器130需将与介接传感器相关的各项设定(例如地址及数据等)储存于ROM 135中。这意味着USB控制器130仅适用于预定类型的传感器120。并且,当储存于ROM 135中的设定程序发生错误 (bug)时,则必须要修改掩膜以重新制造。
发明内容
鉴于以上的问题,本发明提供一种USB控制器及其执行方法,借由解决现有技术所存在的至少一问题。本发明所揭露的USB控制器的执行方法,应用于一 USB控制器。此USB控制器具有一 ROM 和一随机存取存储器(random access memory,RAM)。于USB控制器执行ROM中的第一程序的过程中,根据第一程序的程序流程,检测电性连接至USB控制器的一外接存储器。其中,外接存储器储存有一第二程序,且第二程序是由多个区段所构成。
当USB控制器电性连接至外接存储器时,从执行第一程序跳为执行第二程序。从执行第一程序跳为执行第二程序的步骤包括将第二程序的一区段加载至随机存取存储器中,并且执行加载至随机存取存储器中的第二程序的区段。当未完成第二程序的执行时,反复进行前述二步骤。于完成第二程序的执行之后,则跳回接续执行第一程序。将第二程序 的一区段加载至随机存取存储器中的步骤可包括设定USB控制器的 RAM的起始地址和终止地址,然后将第二程序中对应起始地址和终止地址的区段从外接存储器加载至RAM。于执行完加载的区段后,可确认程序流程(flow)是否需再执行另一区段。若需执行另一区段,可依据欲执行的区段重新设定RAM所代表的起始地址和终止地址,然后依照重新设定的起始地址和终止地址再次加载第二程序的另一区段,并执行加载的区段。当USB控制器未电性连接至外接存储器时,则接续执行第一程序。本发明所揭露的USB控制器,包括R0M、RAM和处理单元。于此,处理单元用以执行第一程序并于第一程序的执行过程中根据第一程序的程序流程检测外接存储器。其中,当处理单元检测到外接存储器时,处理单元将第二程序的一区段从外接存储器加载至随机存取存储器,并且从执行第一程序跳为执行于随机存取存储器中的第二程序的区段。处理单元可通过设定随机存取存储器的一起始地址和一终止地址,以根据设定的 RAM的起始地址和终止地址将第二程序中对应的区段从外接存储器加载至RAM,进而执行于RAM中的第二程序的该区段。并且,于执行完加载的区段后,处理单元可确认程序流程是否需再执行另一区段。 若需执行另一区段,处理单元可重新设定RAM的起始地址和终止地址,以接续执行第二程序的另一区段。而当处理单元未检测到外接存储器时,处理单元则会接续执行第一程序。本发明的功效在于,于根据本发明的USB控制器及其执行方法中,利用外接存储器存放不同传感器的设定或当原储存程序有错误时可用以存放修改后的程序代码。并且, 于此,随着设定组态的执行,动态将欲执行的程序区段加载至RAM,以缩小RAM的尺寸,进而避免过大的RAM撑大整个芯片(USB控制器)的尺寸。换言之,于本发明中,随着程序的执行动态读取外接存储器,以将要用的程序代码(程序区段)从外接存储器加载至RAM,再执行加载的程序区段。如此一来,即可方便程序修改,进而提供较大的程序修改空间。再者, 可将RAM的尺寸设计成相应于加载的程序区段的大小,因此相较于完整程序的加载,可相对地减小RAM的尺寸,进而有效地缩小整个芯片(USB控制器)的尺寸。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
图1显示现有的网络摄影机的是统配置;图2显示现有的USB控制器的内部配置;图3显示根据本发明一实施例的USB控制器的内部配置;图4显示根据本发明一实施例的USB控制器的执行方法;图5A显示根据本发明的USB控制器中设定RAM的一实态样;
图5B显示根据本发明的USB控制器中设定RAM的另一实态样;图6显示根据本发明另一实施例的USB控制器的执行方法;图7显示根据本发明又一实施例的USB控制器的执行方法。其中,附图标记100网络摄影机110光学透镜120传感器130通用串行总线控制器131传感器接口电路132影像数据先进先出133通用串行总线接口电路134中央处理单元135只读存储器200个人计算机300通用串行总线控制器310传感器接口电路320影像数据先进先出330通用串行总线接口电路340处理单元350只读存储器360随机存取存储器400外接存储器
具体实施例方式下面结合附图对本发明的结构原理和工作原理作具体的描述于本发明中,利用外接存储器存放不同传感器的设定或当原储存程序有错误时可用以存放修改后的程序代码。并且,于本发明中,随着设定组态的执行,动态将欲执行的程序区段加载至RAM,以缩小RAM的尺寸,进而避免过大的RAM撑大整个芯片(USB控制器) 的尺寸。换言之,于本发明中,随着程序的执行动态读取外接存储器,以将要用的程序代码 (程序区段)从外接存储器加载至RAM,再执行加载的程序区段。如此一来,即可方便程序修改,进而提供较大的程序修改空间。再者,可将RAM的尺寸设计成相应于加载的程序区段的大小,因此相较于完整程序的加载,可相对地减小RAM的尺寸,进而有效地缩小整个芯片 (USB控制器)的尺寸。图3是显示根据本发明一实施例的USB控制器的内部配置。图4是显示根据本发明一实施例的USB控制器的执行方法。参照图3,USB控制器300包括处理单元340、ROM 350和RAM 360。于此,USB控制器300可通过传感器接口电路310电性连接至传感器120。并且, USB控制器300可通过USB接口电路330电性连接至个人计算机200。并且,传感器120与个人计算机200可利用影像数据FIFO 320经由传感器接口电路310和USB接口电路330而相互通信。于ROM 350中储存有第一程序。USB控制器300可电性连接至一外接存储器400。于外接存储器400储存有第二程序。其中,此第二程序是由多个区段所构成。此第二程序可为特定传感器的设定或当原储存程序(例如第一程序)有错误时可用以存放修改后的程序代码。此外接存储器400 可为EEPROM(电子可擦式只读存储器)。参照图4,当USB控制器300启动(power on)(步骤500)时,处理单元340会执行储存在ROM 350中的第一程序(步骤510)。处理单元340根据第一程序的程序流程,检测是否有外接存储器400与USB控制器300电性连接(步骤520)。举例来说,当程序流程(flow)为执行第二程序的一区段时, 处理单元340即会检测是否有外接存储器400与USB控制器300电性连接。当检测到USB控制器300电性连接外接存储器400时,处理单元340从执行第一程序跳为执行第二程序。于此,先设定RAM 360所代表的起始地址和终止地址(步骤530)。将对应起始地址和终止地址的第二程序的一区段从外接存储器400加载至RAM 360 (步骤540)。换言之,根据起始地址和终止地址将外接存储器400中相对应的程序区段映像(mapping)至 RAM 360 中。然后,处理单元340再执行加载至RAM 360中的第二程序的区段(步骤550)。执行完加载的区段后,处理单元340确认程序流程是否需再执行另一区段(步骤 560)。若需执行另一区段,处理单元340会依据欲执行的区段重新设定RAM 360所代表的起始地址和终止地址(步骤570)。然后回到步骤540,依照重新设定的起始地址和终止地址再次加载第二程序的另一区段。并且,执行加载的区段(步骤550)。于执行完第二程序之后,处理单元340则会跳回接续执行第一程序(步骤580)。另外,当检测到USB控制器300未电性连接至外接存储器400时,处理单元340则接续执行第一程序(步骤580)。其中,每次设定的起始地址和终止地址所构成的数据量可小于或等于RAM 360的存储空间的尺寸。于此,每次设定的起始地址和终止地址所构成的数据量是等于所对应的第二程序的区段的数据量。并且,第二程序的各区段可具有相同数据量的程序代码,亦可具有不同数据量的程序代码。换言之,每次设定的起始地址和终止地址所构成的数据量可均相同,亦可部分不同。举例来说,假设RAM 360的存储空间是为2Kbyte (千字节)。 当程序流程执行到第二程序的第一区段(地址OxAOOO至地址0xA7FF)时,处理单元340会将RAM 360所代表的起始地址设定为OxAOOO,并且将RAM 360所代表的终止地址设定为0xA7FF,如图5A所示。 然后,从外接存储器400中对应的第一区段(地址OxAOOO至地址0xA7FF)映像至 RAM 360,进而执行加载至RAM 360的第一区段。
接着,当程序流程要执行第二程序的第二区段(地址OxASOO至地址OxAFFF)时, 处理单元340会将RAM 360所代表的起始地址设定为0xA800,并且将RAM 360所代表的终止地址设定为OxAFFF,如图5B所示。然后,从外接存储器400中对应的第二区段(地址0xA800至地址OxAFFF)映像至 RAM 360,进而执行加载至RAM 360的第二区段。以此类推。其中,重新设定的起始地址可接续于前一次设定的终止地址,亦可不是接续于前一次设定的终止地址。于此,可通过一旗标信号来决定欲执行的第二程序的区段。其中,旗标信号的位数可对应第二程序的区段数,并且由各个位来决定欲执行的区段。以4个位为例,以下分别称的为位 0 (bit_0)、位 1 (bit_l)、位 2 (bit_2)和位 3 (bit_3)。位 0 (bit_0)、位 1 (bit_l)、位 2(bit_2)和位3(bit_3)分别对应于第一区段、第二区段、第三区段和第四区段。当bit_0设为1时,代表是执行第一区段。当bit_l设为1时,代表是执行第二区段。当bit_2设为1时,代表是执行第三区段。当bit_3设为1时,则代表是执行第四区段。 若所有位均设为0(即,bit_0 = 0、bit_l = 0、bit_2 = 0且bit_3 = 0)时,则代表是执行储存于ROM 350中的第一程序。此旗标信号可位于第一程序中。参照图6,ROM 350中可储存有一第一程序,且此第一程序具有一个或多个旗标信号。此旗标信号可标记程序流程为执行第二程序的一区段。当USB控制器300启动(步骤500)时,处理单元340会先执行ROM 350中的第一程序(步骤510)。于读到第一程序中的旗标信号时,处理单元340会辨识此旗标信号,以确认是否需跳到第二程序(步骤512)。换言之,当处理单元340确认此旗标信号表示程序流程为执行第二程序的一区段时,则会检测是否有外接存储器400与USB控制器300电性连接(步骤520)。并且,当USB控制器300电性连接外接存储器400时,处理单元340根据读取到的旗标信号执行第二程序。于此,即根据读取到的旗标信号设定RAM 360所代表的起始地址和终止地址(步骤530),借以从外接存储器400加载对应的第二程序的区段至RAM360(步骤540)。于此,此旗标信号可设定有欲执行第二程序的区段的储存地址和执行地址。于执行第二程序的一区段时,则基于旗标信号中设定的储存地址设定RAM360所代表的起始地址和终止地址(步骤530),借以从外接存储器400加载对应的第二程序的区段至RAM 360 (步骤 540)。于加载对应的第二程序的区段后,再基于旗标信号中设定的执行地址设定RAM 360所代表的起始地址和终止地址,借以执行RAM 360中的第二程序的区段(步骤550)。此外,亦可额外设置有旗标信号与欲执行第二程序的区段的储存地址和执行地址之一对应表,以根据旗标信号取得欲执行第二程序的区段的储存地址和执行地址,进而依据取得的储存地址和执行地址加载并执行对应的第二程序的区段。再者,于执行完RAM 360中的第二程序的区段(步骤550)后,程序流程会跳回至第一程序中读取到的旗标信号的位置以接续执行ROM 350中的第一程序(步骤580)。
另外,于外接存储器400中可储存有一旗标信号,以作为处理单元340检测是否有外接存储器400与USB控制器300电性连接的使用。参照图7,于进行外接存储器400与 USB控制器300电性连接的检测时,处理单元340会进行外接存储器400的旗标信号的确认 (步骤522)。当确认到旗标信号,即确认程序为正确(true)时,即表示USB控制器300电性连接有具有第二程序的外接存储器400,则从执行第一程序跳为进行第二程序的对应区段的加载与执行(步骤590)(例如步骤530至步骤570)。当确认不到旗标信号,即确认程序为错误(flase)时,即表示USB控制器300未电性连接有具有第二程序的外接存储器 400 (步骤 580)。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种通用串行总线控制器的执行方法,应用于一通用串行总线控制器,该通用串行总线控制器具有一只读存储器和一随机存取存储器,其特征在于,该通用串行总线控制器的执行方法包括执行该只读存储器中的一第一程序;根据该第一程序的程序流程,检测电性连接至该通用串行总线控制器的一外接存储器,其中该外接存储器储存有一第二程序,且该第二程序是由多个区段所构成;当检测到该通用串行总线控制器电性连接至该外接存储器时,从执行该第一程序跳为执行该第二程序,包括将该第二程序的该些区段中之一加载至该随机存取存储器中;执行加载至该随机存取存储器中的该第二程序的该区段;及反复进行该将该第二程序的该些区段中之一加载至该随机存取存储器中的步骤及该执行加载至该随机存取存储器中的该第二程序的该区段的步骤,直至完成该第二程序的执行;及于完成该第二程序的执行之后,跳回接续执行该第一程序。
2.根据权利要求1所述的通用串行总线控制器的执行方法,其特征在于,所述将该第二程序的该些区段中之一加载至该随机存取存储器中的步骤包括设定该随机存取存储器的一起始地址和一终止地址;及将该第二程序的该多个区段中对应设定的该起始地址和该终止地址的该区段从该外接存储器加载至该随机存取存储器;其中,当未完成该第二程序的执行时,于执行完加载至该随机存取存储器的该区段后, 重新设定该随机存取存储器的该起始地址和该终止地址以接续将该些区段中的另一区段加载至该随机存取存储器中,并且每次设定的该起始地址和该终止地址所构成的数据量为小于或等于该随机存取存储器的存储空间的尺寸。
3.根据权利要求2所述的通用串行总线控制器的执行方法,其特征在于,每次设定的该起始地址和该终止地址所构成的数据量为等于所对应的该第二程序的该区段的数据量。
4.根据权利要求1、2或3所述的通用串行总线控制器的执行方法,其特征在于,该第二程序的各该区段的数据量为小于或等于该随机存取存储器的存储空间的尺寸。
5.根据权利要求1所述的通用串行总线控制器的执行方法,其特征在于,该第一程序具有至少一个旗标信号,且各该旗标信号标记该第一程序的程序流程为执行对应的该第二程序的该多个区段中之一,且该根据该第一程序的程序流程,检测电性连接至该通用串行总线控制器的一外接存储器的步骤包括于执行该第一程序的过程中,当读取到该至少一个旗标信号中之一时,辨识读取到的该旗标信号;及依据读取到的该旗标信号检测电性连接至该通用串行总线控制器的该外接存储器。
6.根据权利要求1所述的通用串行总线控制器的执行方法,其特征在于,该外接存储器具有一旗标信号,且该根据该第一程序的程序流程,检测电性连接至该通用串行总线控制器的一外接存储器的步骤包括根据该第一程序的程序流程,确认该外接存储器的该旗标信号;其中,确认到该旗标信号即表示检测到该通用串行总线控制器电性连接至该外接存储器。
7.根据权利要求1所述的通用串行总线控制器的执行方法,其特征在于,还包括当检测到该通用串行总线控制器未电性连接至该外接存储器时,接续执行该第一程序。
8.一种通用串行总线控制器,该通用串行总线控制器选择性电性连接至一外接存储器,其中该外接存储器储存有一第二程序,其特征在于,该通用串行总线控制器包括一只读存储器,储存有一第一程序;一随机存取存储器;及一处理单元,用以执行该第一程序并于该第一程序的执行过程中根据该第一程序的程序流程检测该外接存储器;其中,该第二程序区分成多个区段,且当该处理单元检测到该外接存储器时,该处理单元将该第二程序的该些区段中之一从该外接存储器加载至该随机存取存储器,并且从执行该第一程序跳为执行于该随机存取存储器中的该第二程序的该区段。
9.根据权利要求8所述的通用串行总线控制器,其特征在于,该第一程序具有至少一个旗标信号,各该旗标信号标记该第一程序的程序流程为执行对应的该第二程序的该区段,且该处理单元依据该旗标信号及该外接存储器的连接状态选择性执行将对应的该第二程序的该区段加载至该随机存取存储器并执行加载的该第二程序的该区段。
10.根据权利要求8所述的通用串行总线控制器,其特征在于,该外接存储器具有一旗标信号,且该处理单元通过确认该旗标信号来检测该外接存储器。
11.根据权利要求8所述的通用串行总线控制器,其特征在于,该处理单元通过设定该随机存取存储器的一起始地址和一终止地址,以根据设定的该起始地址和该终止地址将对应的该第二程序的该区段从该外接存储器加载至该随机存取存储器,并且该处理单元通过重新设定该随机存取存储器的该起始地址和该终止地址,以接续执行该第二程序的另一区段,其中每次设定的该起始地址和该终止地址所构成的数据量为小于或等于该随机存取存储器的存储空间的尺寸。
12.根据权利要求8或11所述的通用串行总线控制器,其特征在于,该第二程序的各该区段的数据量为小于或等于该随机存取存储器的存储空间的尺寸。
13.根据权利要求8所述的通用串行总线控制器,其特征在于,当该处理单元未检测到该外接存储器时,该处理单元接续执行该第一程序。
全文摘要
一种通用串行总线控制器及其执行方法,其是利用外接存储器存放不同传感器的设定或当原储存程序有错误时可用以存放修改后的程序代码,并且随着设定组态的执行,动态将欲执行的程序区段加载至通用串行总线控制器的随机存取存储器,借以缩小随机存取存储器的尺寸,进而提供较大的程序修改空间且避免过大的随机存取存储器撑大整个芯片(通用串行总线控制器)的尺寸。
文档编号G06F9/445GK102200950SQ201010140358
公开日2011年9月28日 申请日期2010年3月24日 优先权日2010年3月24日
发明者刘祥生, 林碧辉 申请人:原相科技股份有限公司