专利名称:通用编程器及其编程方法
技术领域:
本发明涉及一种编程器及其编程方法,尤其涉及一种通用编程器及其编程方法。
背景技术:
在硬件系统的开发与设计中,对芯片进行的数据读写操作被称为对芯片编程(Program)。例如,采用单片机(Single Processor)控制的各种系统需要将开发的控制程序编程的单片机;对用于储存配置数据的芯片进行编程;对用于IC设计的现场可编程门阵列元件(Field Programmable Gate ArrayDevices,FPGA Devices)或复杂可编程逻辑元件(Complex Programmable LogicDevices,CPLD)的编程。虽然,对于每一元件,芯片制造厂商均可以提供对应的编程手段,但也迫切需要有一种能够同时支持多种不同类型芯片的编程设备,因而通用编程器成为了首选。
请参照图1,图中所示为现有技术的通用编程器的结构方框图。如图所示,计算机10运行支持编程器的程序,并通过控制接口(如串口、并口或USB)与编程器的主控芯片11通讯,主控芯片11对接收的命令进行解析并执行相应操作。例如,接收到对目标芯片I12的编程命令后通过主控芯片11的时序接口I产生控制时序,完成对目标芯片I12的编程。同样,通过类似操作即可完成对目标芯片II13的编程。在开发过程中,当需要对主控芯片11的程序进行测试、修改时,通过计算机10激活一个整合开发环境(IntegratedDevelopment Environment)软件连接下载接口14,将程序编程到主控芯片11。当产品开发完毕后,主控芯片11的程序不会发生任何改变,即,使用者所使用的编程器不带有下载接口14。因此,当使用者需要增加对一个新类型芯片的编程时,要么更换一台更高规格的编程器,要么要求厂商对主控芯片11的程序进行更新甚至更改硬件电路。上述两种方式都十分不方便,也非常不利于产品的更新升级。
目前,存在一种对上述通用编程器的改进。请参照图2,图中所示为改进后的通用编程器的结构方框图。如图所示,通用编程器20包含一个主控芯片21、一个现场可编程门阵列元件22以及一个可编程只读存储器23(Programmable Read Only Memory,PROM)。现场可程序门阵列元件可以提供给硬件系统设计更多的便利,修改或升级硬件系统的配置仅需要通过更改软件即可实现,极大地降低了开发成本和风险。当计算机10发送命令给通用编程器20后,通用编程器20的主控芯片21接收并解析命令,并且按照解析的命令执行相应操作。如主控芯片21解析到对目标芯片I12的编程命令时,其控制现场可编程门阵列元件22产生控制时序完成对目标芯片I12的编程。其中,现场可编程门阵列元件22包括产生时序功能的程序代码,该程序代码储存在可编程只读存储器23中。当编程器20连接到电源时,现场可编程门阵列元件22的上电配置模式(Configuration Mode)将可编程只读存储器23中的程序代码导入现场可编程门阵列元件22。因此,这种方式克服了升级产品需要对电路进行修改的缺点,仅需要将修改后的程序代码烧录到一个新的可编程只读存储器以替代原有的可编程只读存储器即可实现产品的升级与更新。然而,这种方式同样需要借助厂商来完成,给使用者带来极大不方便。并且,采用可编程只读存储器也给程序代码的安全性带来了隐患,因为只要能够将可编程只读存储器中的程序代码读出或拷贝一份并放置在其它现场可编程门阵列元件中,其它现场可编程门阵列元件也就具备了相同的编程功能,因此存在极大的安全隐患。
此外,上述通用编程器均存在对芯片编程本地性的特点,即编程设备只能通过操作人员更改芯片后再操作计算机上的控制程序来实现对芯片的编程操作,不能实现对芯片编程远程控制的目的。但随着生产规模的不断扩大,需要编程的芯片数量和种类越来越多,单纯依靠手工完成对芯片的编程具有效率低、错误率高等缺点,因此需要通过自动设备实现对通用编程器的控制,从而完成对生产线芯片的编程。
发明内容
为了解决上述现有技术中的问题与缺陷,本发明的目的在于提供一种通用编程器及其编程方法,用来对多个不同类型的目标芯片进行编程。
本发明所提供的一种通用编程器,包括网络接口,用于透过网络设备(如,路由器)与远程计算机进行通讯;主控芯片,用于储存各目标芯片的程序代码信息以及一个以太网络芯片的驱动程序,通过网络接口接收远程计算机发送的数据并解析接收的数据,当解析的数据为升级数据包时根据该升级数据包储存一个新类型目标芯片的程序代码信息,当解析的数据为编程命令时,根据命令发送对应的目标芯片的程序代码并控制对目标芯片的编程;以及可编程元件,用于接收主控芯片写入的目标芯片的程序代码,并根据主控芯片的控制产生控制时序完成对目标芯片的编程。
本发明所提供的一种编程器的编程方法,包含以下步骤储存各目标芯片的程序代码信息与以太网络芯片的驱动程序;激活以太网络芯片的驱动程序,通过网络接口接收并解析数据;当解析的数据为升级数据包时,根据升级数据包储存一个新类型目标芯片的程序代码信息;当解析的数据为编程命令时,根据编程命令发送对应的目标芯片的程序代码;判断目标芯片是否存在或放置是否正确,当目标芯片不存在或放置不正确时,返回一个错误代码;以及当目标芯片放置正确时,根据对应的目标芯片的程序代码信息产生控制时序完成对目标芯片的编程。
综上所述,本发明的优点在于实现了编程器自动升级、更新,可以增加研发的便利性,节约开发的成本以及提高编程器的安全系数。
图1所示为现有技术的通用编程器的结构方框图;图2所示为现有技术的一种改进的通用编程器的结构方框图;图3所示为根据本发明实施例的结构方框图;以及图4所示为本发明的通用编程器的编程方法流程图。
其中,附图标记10、30 计算机11、21、34 主控芯片12 目标芯片I13 目标芯片II14 下载接口
20、32 编程器22、35 现场可编程门阵列元件23 可编程只读存储器31 路由器33 网络接口36 目标芯片S400储存各目标芯片的程序代码信息与以太网络芯片的驱动程序S410激活以太网络芯片的驱动程序,通过网络接口接收并解析数据S420当解析的数据为升级数据包时,根据该升级数据包储存一个新类型目标芯片的程序代码信息S430当解析的数据为编程命令时,根据该编程命令发送一个对应的目标芯片的程序代码信息S440判断目标芯片是否存在或放置是否正确?S450返回一个错误代码S460根据对应的目标芯片的程序代码信息产生控制时序完成对目标芯片的编程具体实施方式
以下,将结合附图对本发明的较佳实施方式作详细说明。
请参照图3,图中表示了本发明的通用编程器32的结构方框图,其通过路由器31与远程计算机30进行通讯,并接收计算机30的命令以实现对目标芯片36的编程,此通用编程器32包括网络接 33、主控芯片34以及现场可编程门阵列元件35。
主控芯片34通过网络接口33与路由器31连接进而连接到远程计算机30。主控芯片34储存有包含目标芯片36在内的多个目标芯片的程序代码信息以及用来驱动网络接口33的以太网络芯片的驱动程序。当接收到编程命令时,主控芯片34发送目标芯片36的程序代码信息到现场可编程门阵列元件35,并控制现场可编程门阵列元件35产生控制时序完成对目标芯片36的编程。
其中,所述路由器31为网络设备,当本发明的编程器应用于局域网络时,该网络设备可为集线器HUB等;当本发明的编程器应用于网际网络时,该网络设备可为交换机或者路由器等。
以下,将详细描述通用编程器32接收远程计算机30的命令实现对目标芯片36的编程的操作。
计算机30通过路由器31连接到通用编程器32的网络接口33,并进而与通用编程器32的主控芯片34进行通讯,发送数据到主控芯片34。主控芯片34接收并解析计算机30发送的数据,当解析的数据为编程命令(如,写操作)时,主控芯片34将对应于目标芯片36的程序代码信息发送到现场可编程门阵列元件35,并且激活现场可编程门阵列元件35。进而,主控芯片34检测目标芯片36是否存在或放置是否正确,当目标芯片36不存在或放置错误时,主控芯片34返回一个错误代码以提示使用者正确放置目标芯片36。当目标芯片36放置正确时,主控芯片34根据目标芯片36的程序代码信息控制现场可编程门阵列元件35产生控制时序将目的资料写入目标芯片36。写入完毕后,主控芯片34对目标芯片36执行读校验操作,将读出的校验与写入资料的校验进行比较,如果相同则返回一个成功代码,并结束操作,否则,返回一个失败代码,重新进行编程操作直至操作成功。
接着,将详细描述通用编程器32自动升级的操作。
主控芯片34通过网络接口33接收远程计算机30发送的数据,并解析接收的数据。当解析的数据为一升级数据包时,主控芯片34根据升级数据包储存一个新类型目标芯片的程序代码信息,以完成通用编程器32的自动升级。
现在请参照图4,此图为本发明一种通用编程器编程方法的方法流程图,如图所示,本发明的编程方法包含以下步骤首先,储存各目标芯片的程序代码信息以及用于驱动网络接口33的以太网络芯片的驱动程序到主控芯片34(S400)。接着,激活以太网络芯片的驱动程序,通过网络接口33接收并解析数据(S410)。当解析的数据为升级数据包时,根据该升级数据包储存一个新类型目标芯片的程序代码信息到主控芯片34(S420)。当解析的数据为编程命令(如,写操作)时,根据该编程命令发送对应的目标芯片36的程序代码信息到现场可编程门阵列元件35,且激活现场可编程门阵列元件35(S430)。进而,主控芯片34判断目标芯片36是否存在或放置是否正确(S440),当目标芯片36不存在或放置不正确时,返回一个错误代码以提示使用者正确放置目标芯片36(S440)。当目标芯片36放置正确时,主控芯片34根据目标芯片36的程序代码信息控制现场可编程门阵列元件35产生控制时序将目的资料写入目标芯片36。写入完毕后,主控芯片34对目标芯片36执行读校验操作,将读出的校验与写入资料的校验进行比较,如果相同则返回一个成功代码,并结束操作,否则,返回一个失败代码,重新进行编程操作直至操作成功(S450)。
虽然本发明通过上述的较佳实施方式进行公开,然而这些实施方式并非用于限定本发明。本领域的技术人员应当意识到在不脱离本发明所附的权利要求所公开的本发明的范围和精神的情况下,所做的修改和变化都属于本发明要求保护的范围之内。
权利要求
1.一种通用编程器,用于对多个不同类型的目标芯片进行编程,其包括一网络接口,用于与外部进行通讯;一主控芯片,用于储存所述各目标芯片的程序代码信息与一以太网络芯片的驱动程序,通过所述网络接口接收数据并解析数据,当解析的数据为一升级数据包时根据该升级数据包储存一新类型目标芯片的程序代码信息,当解析的数据为一命令时,根据该命令发送一对应的目标芯片的程序代码并控制对该目标芯片的编程;以及一可编程元件,用于接收所述主控芯片写入的所述目标芯片的程序代码,并根据所述主控芯片的控制产生控制时序完成对所述目标芯片的编程。
2.根据权利要求1所述的通用编程器,其特征在于,所述可编程元件为现场可编程门阵列元件或复杂可编程逻辑元件。
3.一种使用权利要求1所述的通用编程器下载程序的方法,用于对多个不同类型的目标芯片进行编程,该方法包括以下步骤储存所述各目标芯片的程序代码信息与一以太网络芯片的驱动程序;激活该以太网络芯片的驱动程序,通过一网络接口接收并解析数据;当解析的数据为一升级数据包时,根据该升级数据包储存一新类型目标芯片的程序代码信息;当解析的数据为一编程命令时,根据该编程命令发送一对应的目标芯片的程序代码信息;判断该目标芯片是否存在或放置是否正确,当该目标芯片不存在或放置不正确时,返回一错误代码;以及当该目标芯片放置正确时,根据该对应的目标芯片的程序代码信息产生控制时序完成对该目标芯片的编程。
4.根据权利要求3所述的方法,其特征在于,所述控制时序通过一可编程元件产生。
5.根据权利要求4所述的方法,其特征在于,所述可编程元件为现场可编程门阵列元件或复杂可编程逻辑元件。
全文摘要
本发明公开了一种通用编程器及其编程方法,用于对多个不同类型的目标芯片进行编程。该通用编程器将多个目标芯片的程序代码以及一个以太网络芯片的驱动程序储存于主控芯片中,主控芯片通过网络接口接收数据并解析数据,当解析的数据为升级数据包时,根据该升级数据包完成相应升级,当解析的数据为编程命令时,根据该编程命令将需要编程的目标芯片的程序代码编程到可编程元件(如,FPGA)中,并控制可编程元件产生控制时序完成对目标芯片的编程。该通用编程器实现了设备的自动升级、更新,可以增加研发的便利性,节约开发的成本以及提高编程器的安全系数。
文档编号H04L12/00GK1983178SQ20051013023
公开日2007年6月20日 申请日期2005年12月14日 优先权日2005年12月14日
发明者姜骁, 郑全阶, 陈玄同, 刘文涵 申请人:英业达股份有限公司