CN100421073C - 通用编程器及其编程方法 - Google Patents
通用编程器及其编程方法 Download PDFInfo
- Publication number
- CN100421073C CN100421073C CNB2005101302349A CN200510130234A CN100421073C CN 100421073 C CN100421073 C CN 100421073C CN B2005101302349 A CNB2005101302349 A CN B2005101302349A CN 200510130234 A CN200510130234 A CN 200510130234A CN 100421073 C CN100421073 C CN 100421073C
- Authority
- CN
- China
- Prior art keywords
- chip
- objective chip
- program code
- objective
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种通用编程器及其编程方法,用于对多个不同类型的目标芯片进行编程。该通用编程器将多个目标芯片的程序代码以及一个以太网络芯片的驱动程序储存于主控芯片中,主控芯片通过网络接口接收数据并解析数据,当解析的数据为升级数据包时,根据该升级数据包完成相应升级,当解析的数据为编程命令时,根据该编程命令将需要编程的目标芯片的程序代码编程到可编程元件(如,FPGA)中,并控制可编程元件产生控制时序完成对目标芯片的编程。该通用编程器实现了设备的自动升级、更新,可以增加研发的便利性,节约开发的成本以及提高编程器的安全系数。
Description
技术领域
本发明涉及一种编程器及其编程方法,尤其涉及一种通用编程器及其编程方法。
背景技术
在硬件***的开发与设计中,对芯片进行的数据读写操作被称为对芯片编程(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目标芯片I
13目标芯片II
14下载接口
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)。
虽然本发明通过上述的较佳实施方式进行公开,然而这些实施方式并非用于限定本发明。本领域的技术人员应当意识到在不脱离本发明所附的权利要求所公开的本发明的范围和精神的情况下,所做的修改和变化都属于本发明要求保护的范围之内。
Claims (5)
1. 一种通用编程器,用于对多个不同类型的目标芯片进行编程,其包括:
一网络接口,用于与外部进行通讯;
一主控芯片,用于储存所述各目标芯片的程序代码信息与一以太网络芯片的驱动程序,通过所述网络接口接收数据并解析数据,当解析的数据为一升级数据包时根据该升级数据包储存一新类型目标芯片的程序代码信息,当解析的数据为一编程命令时,根据该编程命令发送一对应的目标芯片的程序代码并控制对该目标芯片的编程;以及
一可编程元件,用以接收来自于该主控芯片的程序代码,并将程序代码写入该可编程元件,并根据所述主控芯片的控制产生控制时序完成对所述目标芯片的编程。
2. 根据权利要求1所述的通用编程器,其特征在于,所述可编程元件为现场可编程门阵列元件或复杂可编程逻辑元件。
3. 一种使用权利要求1所述的通用编程器下载程序的方法,用于对多个不同类型的目标芯片进行编程,该方法包括以下步骤:
储存所述各目标芯片的程序代码信息与一以太网络芯片的驱动程序;
激活该以太网络芯片的驱动程序,通过一网络接口接收并解析数据;
当解析的数据为一升级数据包时,根据该升级数据包储存一新类型目标芯片的程序代码信息;
当解析的数据为一编程命令时,根据该编程命令发送一对应的目标芯片的程序代码信息;
判断该目标芯片是否存在或放置是否正确,当该目标芯片不存在或放置不正确时,返回一错误代码;以及
当该目标芯片放置正确时,根据该对应的目标芯片的程序代码信息产生控制时序完成对该目标芯片的编程。
4. 根据权利要求3所述的方法,其特征在于,所述控制时序通过一可编程元件产生。
5. 根据权利要求4所述的方法,其特征在于,所述可编程元件为现场可编程门阵列元件或复杂可编程逻辑元件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101302349A CN100421073C (zh) | 2005-12-14 | 2005-12-14 | 通用编程器及其编程方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101302349A CN100421073C (zh) | 2005-12-14 | 2005-12-14 | 通用编程器及其编程方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1983178A CN1983178A (zh) | 2007-06-20 |
CN100421073C true CN100421073C (zh) | 2008-09-24 |
Family
ID=38165736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101302349A Expired - Fee Related CN100421073C (zh) | 2005-12-14 | 2005-12-14 | 通用编程器及其编程方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100421073C (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100533349C (zh) * | 2007-09-06 | 2009-08-26 | 北京中星微电子有限公司 | 一种通用接口控制装置及方法 |
CN101431693B (zh) * | 2007-11-05 | 2011-01-12 | 深圳Tcl新技术有限公司 | 一种平板电视配屏装置 |
CN101184030B (zh) * | 2007-11-06 | 2010-06-16 | 浙江工业大学 | 基于fpga的以太网接口驱动装置 |
CN101576825B (zh) * | 2009-05-08 | 2012-07-04 | 上海耕研电子科技有限公司 | 嵌入式集成电路编程器 |
CN101937418B (zh) * | 2009-07-02 | 2013-05-22 | 黄万喜 | 一种编程器在同一时间内对数个芯片同时进行数据处理的方法 |
CN102436219A (zh) * | 2010-09-29 | 2012-05-02 | 中国科学院上海生命科学研究院 | 栽培环境现场监测***的控制机 |
US20140376541A1 (en) * | 2013-06-19 | 2014-12-25 | Microsoft Corporation | Dual-tone multi-frequency (dtmf) programming of an auto-dialer |
CN105302570B (zh) * | 2015-11-17 | 2019-05-24 | 广州周立功单片机科技有限公司 | 芯片编程的控制方法和*** |
US10210694B2 (en) * | 2016-05-13 | 2019-02-19 | Entrust Datacard Corporation | Multi-protocol smart card programming |
CN111984288B (zh) * | 2020-07-29 | 2024-04-16 | 深圳市拔超科技股份有限公司 | 一种基于mcu和fpga的远程电子***升级装置及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6326806B1 (en) * | 2000-03-29 | 2001-12-04 | Xilinx, Inc. | FPGA-based communications access point and system for reconfiguration |
CN1397891A (zh) * | 2002-08-30 | 2003-02-19 | 清华大学 | 现场可编程门阵列程序在线升级***及其实现方法 |
US20030084232A1 (en) * | 2000-10-26 | 2003-05-01 | Pang Chia Yuan | Device and method capable of changing codes of micro-controller |
CN1529938A (zh) * | 2001-06-20 | 2004-09-15 | 艾利森电话股份有限公司 | 通过数据通信网使现场可编程门阵列升级的终端和方法 |
CN1588550A (zh) * | 2004-08-26 | 2005-03-02 | 复旦大学 | 一种usb通用编程器 |
-
2005
- 2005-12-14 CN CNB2005101302349A patent/CN100421073C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6326806B1 (en) * | 2000-03-29 | 2001-12-04 | Xilinx, Inc. | FPGA-based communications access point and system for reconfiguration |
US20030084232A1 (en) * | 2000-10-26 | 2003-05-01 | Pang Chia Yuan | Device and method capable of changing codes of micro-controller |
CN1529938A (zh) * | 2001-06-20 | 2004-09-15 | 艾利森电话股份有限公司 | 通过数据通信网使现场可编程门阵列升级的终端和方法 |
CN1397891A (zh) * | 2002-08-30 | 2003-02-19 | 清华大学 | 现场可编程门阵列程序在线升级***及其实现方法 |
CN1588550A (zh) * | 2004-08-26 | 2005-03-02 | 复旦大学 | 一种usb通用编程器 |
Also Published As
Publication number | Publication date |
---|---|
CN1983178A (zh) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100421073C (zh) | 通用编程器及其编程方法 | |
CN100383737C (zh) | 单片机在线加载升级方法及*** | |
CN102609286B (zh) | 一种基于处理器控制的fpga配置程序远程更新***及其方法 | |
US7293285B2 (en) | Method and system for providing field scalability across a storage product family | |
CN101257567A (zh) | 一种电视机在线烧录mac地址的***及方法 | |
CN102662697B (zh) | 一种软件升级方法及装置 | |
CN101645055B (zh) | 逻辑器件在线加载的方法、***和处理器 | |
CN109522033B (zh) | 一种基于器件运行自编程和双中断向量表的ecu程序与数据升级方法 | |
CN101853173A (zh) | 一种分布式***的可编程逻辑器件的软件升级方法和设备 | |
CN107632846A (zh) | 固件升级方法及装置、机框管理模块 | |
CN110597523A (zh) | 板卡固件烧录方法、装置、***及板卡、终端设备 | |
CN101178656B (zh) | 一种单板软件并行下载的方法 | |
US20160335072A1 (en) | Optical Transceiver Device and Method | |
CN101295255A (zh) | 固件更新***及方法 | |
CN109451098A (zh) | Fpga加速卡mac地址配置方法、装置及加速卡 | |
CN108920168B (zh) | 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法 | |
CN112306937B (zh) | 服务器中主板器件的设定选择电路、方法、设备及介质 | |
CN104133743A (zh) | 一种将文件烧录到emmc芯片的方法及装置 | |
JP2008519320A (ja) | 接点を有しおよびまたは接点のないチップカードをプログラミングするための電子モジュール | |
US20080222404A1 (en) | In-system programming system and method for motherboard | |
CN101593123A (zh) | 闪存烧录插件的固化方法以及终端设备 | |
CN1636171B (zh) | 用于可编程控制器的通用功能电路和通用单元 | |
CN1767544B (zh) | 信息处理***的下位装置、下位装置用动作控制程序及动作控制方法 | |
CN101197959B (zh) | 一种终端的控制方法、***和设备 | |
CN101013371A (zh) | 嵌入式***程序升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191225 Address after: No. 99, University Road, high tech Zone, Xuzhou City, Jiangsu Province Patentee after: XUZHOU LIFANG ELECTROMECHANICAL EQUIPMENT MANUFACTURING CO., LTD. Address before: Taipei City, Taiwan, China Patentee before: Yingda Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080924 Termination date: 20191214 |
|
CF01 | Termination of patent right due to non-payment of annual fee |