專利名稱:通用編程器及其編程方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種編程器及其編程方法,尤其涉及一種通用編程器及其編程方法。
背景技術(shù):
在硬件系統(tǒng)的開發(fā)與設(shè)計(jì)中,對(duì)芯片進(jìn)行的數(shù)據(jù)讀寫操作被稱為對(duì)芯片編程(Program)。例如,采用單片機(jī)(Single Processor)控制的各種系統(tǒng)需要將開發(fā)的控制程序編程的單片機(jī);對(duì)用于儲(chǔ)存配置數(shù)據(jù)的芯片進(jìn)行編程;對(duì)用于IC設(shè)計(jì)的現(xiàn)場可編程門陣列元件(Field Programmable Gate ArrayDevices,F(xiàn)PGA Devices)或復(fù)雜可編程邏輯元件(Complex Programmable LogicDevices,CPLD)的編程。雖然,對(duì)于每一元件,芯片制造廠商均可以提供對(duì)應(yīng)的編程手段,但也迫切需要有一種能夠同時(shí)支持多種不同類型芯片的編程設(shè)備,因而通用編程器成為了首選。
請(qǐng)參照?qǐng)D1,圖中所示為現(xiàn)有技術(shù)的通用編程器的結(jié)構(gòu)方框圖。如圖所示,計(jì)算機(jī)10運(yùn)行支持編程器的程序,并通過控制接口(如串口、并口或USB)與編程器的主控芯片11通訊,主控芯片11對(duì)接收的命令進(jìn)行解析并執(zhí)行相應(yīng)操作。例如,接收到對(duì)目標(biāo)芯片I12的編程命令后通過主控芯片11的時(shí)序接口I產(chǎn)生控制時(shí)序,完成對(duì)目標(biāo)芯片I12的編程。同樣,通過類似操作即可完成對(duì)目標(biāo)芯片II13的編程。在開發(fā)過程中,當(dāng)需要對(duì)主控芯片11的程序進(jìn)行測試、修改時(shí),通過計(jì)算機(jī)10激活一個(gè)整合開發(fā)環(huán)境(IntegratedDevelopment Environment)軟件連接下載接口14,將程序編程到主控芯片11。當(dāng)產(chǎn)品開發(fā)完畢后,主控芯片11的程序不會(huì)發(fā)生任何改變,即,使用者所使用的編程器不帶有下載接口14。因此,當(dāng)使用者需要增加對(duì)一個(gè)新類型芯片的編程時(shí),要么更換一臺(tái)更高規(guī)格的編程器,要么要求廠商對(duì)主控芯片11的程序進(jìn)行更新甚至更改硬件電路。上述兩種方式都十分不方便,也非常不利于產(chǎn)品的更新升級(jí)。
目前,存在一種對(duì)上述通用編程器的改進(jìn)。請(qǐng)參照?qǐng)D2,圖中所示為改進(jìn)后的通用編程器的結(jié)構(gòu)方框圖。如圖所示,通用編程器20包含一個(gè)主控芯片21、一個(gè)現(xiàn)場可編程門陣列元件22以及一個(gè)可編程只讀存儲(chǔ)器23(Programmable Read Only Memory,PROM)?,F(xiàn)場可程序門陣列元件可以提供給硬件系統(tǒng)設(shè)計(jì)更多的便利,修改或升級(jí)硬件系統(tǒng)的配置僅需要通過更改軟件即可實(shí)現(xiàn),極大地降低了開發(fā)成本和風(fēng)險(xiǎn)。當(dāng)計(jì)算機(jī)10發(fā)送命令給通用編程器20后,通用編程器20的主控芯片21接收并解析命令,并且按照解析的命令執(zhí)行相應(yīng)操作。如主控芯片21解析到對(duì)目標(biāo)芯片I12的編程命令時(shí),其控制現(xiàn)場可編程門陣列元件22產(chǎn)生控制時(shí)序完成對(duì)目標(biāo)芯片I12的編程。其中,現(xiàn)場可編程門陣列元件22包括產(chǎn)生時(shí)序功能的程序代碼,該程序代碼儲(chǔ)存在可編程只讀存儲(chǔ)器23中。當(dāng)編程器20連接到電源時(shí),現(xiàn)場可編程門陣列元件22的上電配置模式(Configuration Mode)將可編程只讀存儲(chǔ)器23中的程序代碼導(dǎo)入現(xiàn)場可編程門陣列元件22。因此,這種方式克服了升級(jí)產(chǎn)品需要對(duì)電路進(jìn)行修改的缺點(diǎn),僅需要將修改后的程序代碼燒錄到一個(gè)新的可編程只讀存儲(chǔ)器以替代原有的可編程只讀存儲(chǔ)器即可實(shí)現(xiàn)產(chǎn)品的升級(jí)與更新。然而,這種方式同樣需要借助廠商來完成,給使用者帶來極大不方便。并且,采用可編程只讀存儲(chǔ)器也給程序代碼的安全性帶來了隱患,因?yàn)橹灰軌驅(qū)⒖删幊讨蛔x存儲(chǔ)器中的程序代碼讀出或拷貝一份并放置在其它現(xiàn)場可編程門陣列元件中,其它現(xiàn)場可編程門陣列元件也就具備了相同的編程功能,因此存在極大的安全隱患。
此外,上述通用編程器均存在對(duì)芯片編程本地性的特點(diǎn),即編程設(shè)備只能通過操作人員更改芯片后再操作計(jì)算機(jī)上的控制程序來實(shí)現(xiàn)對(duì)芯片的編程操作,不能實(shí)現(xiàn)對(duì)芯片編程遠(yuǎn)程控制的目的。但隨著生產(chǎn)規(guī)模的不斷擴(kuò)大,需要編程的芯片數(shù)量和種類越來越多,單純依靠手工完成對(duì)芯片的編程具有效率低、錯(cuò)誤率高等缺點(diǎn),因此需要通過自動(dòng)設(shè)備實(shí)現(xiàn)對(duì)通用編程器的控制,從而完成對(duì)生產(chǎn)線芯片的編程。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有技術(shù)中的問題與缺陷,本發(fā)明的目的在于提供一種通用編程器及其編程方法,用來對(duì)多個(gè)不同類型的目標(biāo)芯片進(jìn)行編程。
本發(fā)明所提供的一種通用編程器,包括網(wǎng)絡(luò)接口,用于透過網(wǎng)絡(luò)設(shè)備(如,路由器)與遠(yuǎn)程計(jì)算機(jī)進(jìn)行通訊;主控芯片,用于儲(chǔ)存各目標(biāo)芯片的程序代碼信息以及一個(gè)以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序,通過網(wǎng)絡(luò)接口接收遠(yuǎn)程計(jì)算機(jī)發(fā)送的數(shù)據(jù)并解析接收的數(shù)據(jù),當(dāng)解析的數(shù)據(jù)為升級(jí)數(shù)據(jù)包時(shí)根據(jù)該升級(jí)數(shù)據(jù)包儲(chǔ)存一個(gè)新類型目標(biāo)芯片的程序代碼信息,當(dāng)解析的數(shù)據(jù)為編程命令時(shí),根據(jù)命令發(fā)送對(duì)應(yīng)的目標(biāo)芯片的程序代碼并控制對(duì)目標(biāo)芯片的編程;以及可編程元件,用于接收主控芯片寫入的目標(biāo)芯片的程序代碼,并根據(jù)主控芯片的控制產(chǎn)生控制時(shí)序完成對(duì)目標(biāo)芯片的編程。
本發(fā)明所提供的一種編程器的編程方法,包含以下步驟儲(chǔ)存各目標(biāo)芯片的程序代碼信息與以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序;激活以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序,通過網(wǎng)絡(luò)接口接收并解析數(shù)據(jù);當(dāng)解析的數(shù)據(jù)為升級(jí)數(shù)據(jù)包時(shí),根據(jù)升級(jí)數(shù)據(jù)包儲(chǔ)存一個(gè)新類型目標(biāo)芯片的程序代碼信息;當(dāng)解析的數(shù)據(jù)為編程命令時(shí),根據(jù)編程命令發(fā)送對(duì)應(yīng)的目標(biāo)芯片的程序代碼;判斷目標(biāo)芯片是否存在或放置是否正確,當(dāng)目標(biāo)芯片不存在或放置不正確時(shí),返回一個(gè)錯(cuò)誤代碼;以及當(dāng)目標(biāo)芯片放置正確時(shí),根據(jù)對(duì)應(yīng)的目標(biāo)芯片的程序代碼信息產(chǎn)生控制時(shí)序完成對(duì)目標(biāo)芯片的編程。
綜上所述,本發(fā)明的優(yōu)點(diǎn)在于實(shí)現(xiàn)了編程器自動(dòng)升級(jí)、更新,可以增加研發(fā)的便利性,節(jié)約開發(fā)的成本以及提高編程器的安全系數(shù)。
圖1所示為現(xiàn)有技術(shù)的通用編程器的結(jié)構(gòu)方框圖;圖2所示為現(xiàn)有技術(shù)的一種改進(jìn)的通用編程器的結(jié)構(gòu)方框圖;圖3所示為根據(jù)本發(fā)明實(shí)施例的結(jié)構(gòu)方框圖;以及圖4所示為本發(fā)明的通用編程器的編程方法流程圖。
其中,附圖標(biāo)記10、30 計(jì)算機(jī)11、21、34 主控芯片12 目標(biāo)芯片I13 目標(biāo)芯片II14 下載接口
20、32 編程器22、35 現(xiàn)場可編程門陣列元件23 可編程只讀存儲(chǔ)器31 路由器33 網(wǎng)絡(luò)接口36 目標(biāo)芯片S400儲(chǔ)存各目標(biāo)芯片的程序代碼信息與以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序S410激活以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序,通過網(wǎng)絡(luò)接口接收并解析數(shù)據(jù)S420當(dāng)解析的數(shù)據(jù)為升級(jí)數(shù)據(jù)包時(shí),根據(jù)該升級(jí)數(shù)據(jù)包儲(chǔ)存一個(gè)新類型目標(biāo)芯片的程序代碼信息S430當(dāng)解析的數(shù)據(jù)為編程命令時(shí),根據(jù)該編程命令發(fā)送一個(gè)對(duì)應(yīng)的目標(biāo)芯片的程序代碼信息S440判斷目標(biāo)芯片是否存在或放置是否正確?S450返回一個(gè)錯(cuò)誤代碼S460根據(jù)對(duì)應(yīng)的目標(biāo)芯片的程序代碼信息產(chǎn)生控制時(shí)序完成對(duì)目標(biāo)芯片的編程具體實(shí)施方式
以下,將結(jié)合附圖對(duì)本發(fā)明的較佳實(shí)施方式作詳細(xì)說明。
請(qǐng)參照?qǐng)D3,圖中表示了本發(fā)明的通用編程器32的結(jié)構(gòu)方框圖,其通過路由器31與遠(yuǎn)程計(jì)算機(jī)30進(jìn)行通訊,并接收計(jì)算機(jī)30的命令以實(shí)現(xiàn)對(duì)目標(biāo)芯片36的編程,此通用編程器32包括網(wǎng)絡(luò)接 33、主控芯片34以及現(xiàn)場可編程門陣列元件35。
主控芯片34通過網(wǎng)絡(luò)接口33與路由器31連接進(jìn)而連接到遠(yuǎn)程計(jì)算機(jī)30。主控芯片34儲(chǔ)存有包含目標(biāo)芯片36在內(nèi)的多個(gè)目標(biāo)芯片的程序代碼信息以及用來驅(qū)動(dòng)網(wǎng)絡(luò)接口33的以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序。當(dāng)接收到編程命令時(shí),主控芯片34發(fā)送目標(biāo)芯片36的程序代碼信息到現(xiàn)場可編程門陣列元件35,并控制現(xiàn)場可編程門陣列元件35產(chǎn)生控制時(shí)序完成對(duì)目標(biāo)芯片36的編程。
其中,所述路由器31為網(wǎng)絡(luò)設(shè)備,當(dāng)本發(fā)明的編程器應(yīng)用于局域網(wǎng)絡(luò)時(shí),該網(wǎng)絡(luò)設(shè)備可為集線器HUB等;當(dāng)本發(fā)明的編程器應(yīng)用于網(wǎng)際網(wǎng)絡(luò)時(shí),該網(wǎng)絡(luò)設(shè)備可為交換機(jī)或者路由器等。
以下,將詳細(xì)描述通用編程器32接收遠(yuǎn)程計(jì)算機(jī)30的命令實(shí)現(xiàn)對(duì)目標(biāo)芯片36的編程的操作。
計(jì)算機(jī)30通過路由器31連接到通用編程器32的網(wǎng)絡(luò)接口33,并進(jìn)而與通用編程器32的主控芯片34進(jìn)行通訊,發(fā)送數(shù)據(jù)到主控芯片34。主控芯片34接收并解析計(jì)算機(jī)30發(fā)送的數(shù)據(jù),當(dāng)解析的數(shù)據(jù)為編程命令(如,寫操作)時(shí),主控芯片34將對(duì)應(yīng)于目標(biāo)芯片36的程序代碼信息發(fā)送到現(xiàn)場可編程門陣列元件35,并且激活現(xiàn)場可編程門陣列元件35。進(jìn)而,主控芯片34檢測目標(biāo)芯片36是否存在或放置是否正確,當(dāng)目標(biāo)芯片36不存在或放置錯(cuò)誤時(shí),主控芯片34返回一個(gè)錯(cuò)誤代碼以提示使用者正確放置目標(biāo)芯片36。當(dāng)目標(biāo)芯片36放置正確時(shí),主控芯片34根據(jù)目標(biāo)芯片36的程序代碼信息控制現(xiàn)場可編程門陣列元件35產(chǎn)生控制時(shí)序?qū)⒛康馁Y料寫入目標(biāo)芯片36。寫入完畢后,主控芯片34對(duì)目標(biāo)芯片36執(zhí)行讀校驗(yàn)操作,將讀出的校驗(yàn)與寫入資料的校驗(yàn)進(jìn)行比較,如果相同則返回一個(gè)成功代碼,并結(jié)束操作,否則,返回一個(gè)失敗代碼,重新進(jìn)行編程操作直至操作成功。
接著,將詳細(xì)描述通用編程器32自動(dòng)升級(jí)的操作。
主控芯片34通過網(wǎng)絡(luò)接口33接收遠(yuǎn)程計(jì)算機(jī)30發(fā)送的數(shù)據(jù),并解析接收的數(shù)據(jù)。當(dāng)解析的數(shù)據(jù)為一升級(jí)數(shù)據(jù)包時(shí),主控芯片34根據(jù)升級(jí)數(shù)據(jù)包儲(chǔ)存一個(gè)新類型目標(biāo)芯片的程序代碼信息,以完成通用編程器32的自動(dòng)升級(jí)。
現(xiàn)在請(qǐng)參照?qǐng)D4,此圖為本發(fā)明一種通用編程器編程方法的方法流程圖,如圖所示,本發(fā)明的編程方法包含以下步驟首先,儲(chǔ)存各目標(biāo)芯片的程序代碼信息以及用于驅(qū)動(dòng)網(wǎng)絡(luò)接口33的以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序到主控芯片34(S400)。接著,激活以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序,通過網(wǎng)絡(luò)接口33接收并解析數(shù)據(jù)(S410)。當(dāng)解析的數(shù)據(jù)為升級(jí)數(shù)據(jù)包時(shí),根據(jù)該升級(jí)數(shù)據(jù)包儲(chǔ)存一個(gè)新類型目標(biāo)芯片的程序代碼信息到主控芯片34(S420)。當(dāng)解析的數(shù)據(jù)為編程命令(如,寫操作)時(shí),根據(jù)該編程命令發(fā)送對(duì)應(yīng)的目標(biāo)芯片36的程序代碼信息到現(xiàn)場可編程門陣列元件35,且激活現(xiàn)場可編程門陣列元件35(S430)。進(jìn)而,主控芯片34判斷目標(biāo)芯片36是否存在或放置是否正確(S440),當(dāng)目標(biāo)芯片36不存在或放置不正確時(shí),返回一個(gè)錯(cuò)誤代碼以提示使用者正確放置目標(biāo)芯片36(S440)。當(dāng)目標(biāo)芯片36放置正確時(shí),主控芯片34根據(jù)目標(biāo)芯片36的程序代碼信息控制現(xiàn)場可編程門陣列元件35產(chǎn)生控制時(shí)序?qū)⒛康馁Y料寫入目標(biāo)芯片36。寫入完畢后,主控芯片34對(duì)目標(biāo)芯片36執(zhí)行讀校驗(yàn)操作,將讀出的校驗(yàn)與寫入資料的校驗(yàn)進(jìn)行比較,如果相同則返回一個(gè)成功代碼,并結(jié)束操作,否則,返回一個(gè)失敗代碼,重新進(jìn)行編程操作直至操作成功(S450)。
雖然本發(fā)明通過上述的較佳實(shí)施方式進(jìn)行公開,然而這些實(shí)施方式并非用于限定本發(fā)明。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)意識(shí)到在不脫離本發(fā)明所附的權(quán)利要求所公開的本發(fā)明的范圍和精神的情況下,所做的修改和變化都屬于本發(fā)明要求保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種通用編程器,用于對(duì)多個(gè)不同類型的目標(biāo)芯片進(jìn)行編程,其包括一網(wǎng)絡(luò)接口,用于與外部進(jìn)行通訊;一主控芯片,用于儲(chǔ)存所述各目標(biāo)芯片的程序代碼信息與一以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序,通過所述網(wǎng)絡(luò)接口接收數(shù)據(jù)并解析數(shù)據(jù),當(dāng)解析的數(shù)據(jù)為一升級(jí)數(shù)據(jù)包時(shí)根據(jù)該升級(jí)數(shù)據(jù)包儲(chǔ)存一新類型目標(biāo)芯片的程序代碼信息,當(dāng)解析的數(shù)據(jù)為一命令時(shí),根據(jù)該命令發(fā)送一對(duì)應(yīng)的目標(biāo)芯片的程序代碼并控制對(duì)該目標(biāo)芯片的編程;以及一可編程元件,用于接收所述主控芯片寫入的所述目標(biāo)芯片的程序代碼,并根據(jù)所述主控芯片的控制產(chǎn)生控制時(shí)序完成對(duì)所述目標(biāo)芯片的編程。
2.根據(jù)權(quán)利要求1所述的通用編程器,其特征在于,所述可編程元件為現(xiàn)場可編程門陣列元件或復(fù)雜可編程邏輯元件。
3.一種使用權(quán)利要求1所述的通用編程器下載程序的方法,用于對(duì)多個(gè)不同類型的目標(biāo)芯片進(jìn)行編程,該方法包括以下步驟儲(chǔ)存所述各目標(biāo)芯片的程序代碼信息與一以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序;激活該以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序,通過一網(wǎng)絡(luò)接口接收并解析數(shù)據(jù);當(dāng)解析的數(shù)據(jù)為一升級(jí)數(shù)據(jù)包時(shí),根據(jù)該升級(jí)數(shù)據(jù)包儲(chǔ)存一新類型目標(biāo)芯片的程序代碼信息;當(dāng)解析的數(shù)據(jù)為一編程命令時(shí),根據(jù)該編程命令發(fā)送一對(duì)應(yīng)的目標(biāo)芯片的程序代碼信息;判斷該目標(biāo)芯片是否存在或放置是否正確,當(dāng)該目標(biāo)芯片不存在或放置不正確時(shí),返回一錯(cuò)誤代碼;以及當(dāng)該目標(biāo)芯片放置正確時(shí),根據(jù)該對(duì)應(yīng)的目標(biāo)芯片的程序代碼信息產(chǎn)生控制時(shí)序完成對(duì)該目標(biāo)芯片的編程。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述控制時(shí)序通過一可編程元件產(chǎn)生。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述可編程元件為現(xiàn)場可編程門陣列元件或復(fù)雜可編程邏輯元件。
全文摘要
本發(fā)明公開了一種通用編程器及其編程方法,用于對(duì)多個(gè)不同類型的目標(biāo)芯片進(jìn)行編程。該通用編程器將多個(gè)目標(biāo)芯片的程序代碼以及一個(gè)以太網(wǎng)絡(luò)芯片的驅(qū)動(dòng)程序儲(chǔ)存于主控芯片中,主控芯片通過網(wǎng)絡(luò)接口接收數(shù)據(jù)并解析數(shù)據(jù),當(dāng)解析的數(shù)據(jù)為升級(jí)數(shù)據(jù)包時(shí),根據(jù)該升級(jí)數(shù)據(jù)包完成相應(yīng)升級(jí),當(dāng)解析的數(shù)據(jù)為編程命令時(shí),根據(jù)該編程命令將需要編程的目標(biāo)芯片的程序代碼編程到可編程元件(如,F(xiàn)PGA)中,并控制可編程元件產(chǎn)生控制時(shí)序完成對(duì)目標(biāo)芯片的編程。該通用編程器實(shí)現(xiàn)了設(shè)備的自動(dòng)升級(jí)、更新,可以增加研發(fā)的便利性,節(jié)約開發(fā)的成本以及提高編程器的安全系數(shù)。
文檔編號(hào)H04L12/00GK1983178SQ20051013023
公開日2007年6月20日 申請(qǐng)日期2005年12月14日 優(yōu)先權(quán)日2005年12月14日
發(fā)明者姜驍, 鄭全階, 陳玄同, 劉文涵 申請(qǐng)人:英業(yè)達(dá)股份有限公司