專利名稱:現(xiàn)場可編程邏輯器件固件升級裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)技術(shù)領(lǐng)域,具體涉及一種現(xiàn)場簡易現(xiàn)場可編程邏輯器件(CPLD) 固件升級裝置及其升級的方法。
背景技術(shù):
當(dāng)今社會是一個數(shù)字化及數(shù)字集成電路廣泛應(yīng)用的社會。數(shù)字集成電路本身在不斷地進(jìn)行更新?lián)Q代。它由早期的電子管、晶體管、小中規(guī)模集成電路、發(fā)展到超大規(guī)模集成 電路(VLSIC,幾萬門以上)以及許多具有特定功能的專用集成電路。但是,隨著微電子技術(shù) 的發(fā)展,設(shè)計與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨(dú)立承擔(dān)。系統(tǒng)設(shè)計師們更 愿意自己設(shè)計專用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計周期盡可能短,最好是在實(shí) 驗室里就能設(shè)計出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場可編程 邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬復(fù)雜可編程邏輯器件(CPLD)。但是由于產(chǎn)品的功能不但要滿足用戶的需求,還要加快產(chǎn)品的研發(fā)速度,盡快搶 占市場,這就需要在硬件不大改的情況下,通過CPLD固件升級來實(shí)現(xiàn)更多的邏輯功能。目 前現(xiàn)有技術(shù)進(jìn)行CPLD固件升級的方法主要有下面2種1. ISP在線升級,其優(yōu)點(diǎn)在于能夠 通過JTAGlO來升級CPLD,簡單方便。但其缺點(diǎn)也很明顯,由于電路板必須要有JTAG 口,不 但增加了成本,而且現(xiàn)場升級必須要帶下載線以及下載工具。2.使用燒寫器。向芯片中燒 寫程序的時候,必須把芯片放在燒寫器的插座里。其優(yōu)點(diǎn)在于成本低,操作簡單。缺點(diǎn)是頻 繁插拔或者重新焊接芯片CPLD,容易引起硬件的損壞,人為的增大不可靠性。為了提供一種操作既簡單、不但消除人為焊接或者插拔芯片CPLD引起的硬件問 題,而且又能避免使用ISP帶來的不便,現(xiàn)有技術(shù)并沒有很好的解決,給工作人員帶來不 便。本發(fā)明由此而來。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種現(xiàn)場可編程邏輯器件固件升級裝置,解決了現(xiàn)有技術(shù)中 進(jìn)行CPLD固件升級操作復(fù)雜、需要人為焊接或者插拔芯片CPLD,常產(chǎn)生硬件問題以及ISP 升級具有諸多不便等問題。為了解決現(xiàn)有技術(shù)中的這些問題,本發(fā)明提供的技術(shù)方案是—種現(xiàn)場可編程邏輯器件固件升級裝置,包括微控制器和與微控制器連接的主 機(jī),其特征在于所述微控制器通過被動串行方式與現(xiàn)場可編程邏輯器件連接,所述主機(jī)發(fā) 出固件升級指令后,所述微控制器讀入固件升級數(shù)據(jù),并將固件升級數(shù)據(jù)通過被動串行方 式配置現(xiàn)場可編程邏輯器件。優(yōu)選的,所述裝置還包括內(nèi)部存儲器,所述內(nèi)部存儲器與微控制器連接,儲存現(xiàn)場 可編程邏輯器件的固件升級數(shù)據(jù)。優(yōu)選的,所述內(nèi)部存儲器選用可擦寫只讀存儲器,主機(jī)發(fā)出固件數(shù)據(jù)傳輸指令后, 微處理器接受指令后將固件升級數(shù)據(jù)讀入后存入內(nèi)部存儲器。
優(yōu)選的,所述現(xiàn)場可編程邏輯器件的DCONFIG、DCLK, DATA、INT_D0NE、nSTATUS、 C0NF_D0NE連接到微處理器的I/O接口,其中DCONFIG、DCLK、DATA引腳設(shè)置成輸出態(tài),由微 處理器對現(xiàn)場可編程邏輯器件進(jìn)行操作;nSTATUS、C0NF_D0NE、INT_D0NE引腳設(shè)置成輸入 態(tài),由微處理器對現(xiàn)場可編程邏輯器件的配置狀態(tài)進(jìn)行檢測。優(yōu)選的,所述微處理器的I/O接口包括CF、CON、INT、DL、CLK、DAT引腳,所述現(xiàn)場可編程邏輯器件的 DCONFIG、nSTATUS、INT_D0NE、C0NF_D0NE、DCLK, DATA 引腳與 CF、CON、 INT、DL、CLK、DAT引腳一一匹配連接,所述微處理器通過內(nèi)部寄存器將CF、DCLK、DATA引腳 設(shè)置成輸出口,將CON、INT、DL引腳設(shè)置成輸入口。在具體使用時,所述裝置上電后,微控器將新的CPLD 二進(jìn)制配讀入內(nèi)部存儲器, 通過被動串行配置,把代碼傳送到CPLD、并運(yùn)行;斷電,重新啟動電路板后如果CPLD所預(yù)期 的邏輯功能正確實(shí)現(xiàn),則完成調(diào)試過程,如果程序錯誤,則查找程序中的錯誤,重新編譯后, 重復(fù)上述步驟,直到CPLD所預(yù)期的邏輯功能正確實(shí)現(xiàn)為止。本發(fā)明的另一目的在于提供一種現(xiàn)場簡易升級現(xiàn)場可編程邏輯器件固件的方法, 其特征在于所述方法包括以下步驟(1)在現(xiàn)場可編程邏輯器件固件升級裝置上通過被動串行方式連接現(xiàn)場可編程邏 輯器件;(2)主機(jī)生成現(xiàn)場可編程邏輯器件固件的二進(jìn)制配置數(shù)據(jù);(3)主機(jī)發(fā)出指令,微控器將二進(jìn)制配置數(shù)據(jù)讀入內(nèi)部存儲器后,通過被動串行方 式將二進(jìn)制配置數(shù)據(jù)發(fā)送到現(xiàn)場可編程邏輯器件。優(yōu)選的,所述方法步驟(3)包括微處理器在現(xiàn)場可編程邏輯器件的DCONFIG上產(chǎn) 生一個由低到高的跳變,使現(xiàn)場可編程邏輯器件進(jìn)入配置狀態(tài),等待現(xiàn)場可編程邏輯器件 釋放nSTATUS,nSTATuS變高之后,通過DCLK上升沿將配置數(shù)據(jù)逐位送到DATA上;現(xiàn)場可編 程邏輯器件接收完所有配置數(shù)據(jù)后,釋放C0NF_D0NE,變成高電平,DCLK上輸出脈沖來初始 化現(xiàn)場可編程邏輯器件,直到INT_D0NE被釋放變成高電平,表示現(xiàn)場可編程邏輯器件初始 化完畢,進(jìn)入用戶狀態(tài),配置過程結(jié)束的步驟。優(yōu)選的,所述方法中還包括配置結(jié)束后進(jìn)行調(diào)試的步驟,所述調(diào)試的步驟包括重 新啟動現(xiàn)場可編程邏輯器件固件升級裝置后如果現(xiàn)場可編程邏輯器件所預(yù)期的邏輯功能 未能正確實(shí)現(xiàn),則進(jìn)行重新修改固件代碼、編譯成二進(jìn)制配置數(shù)據(jù)后重新被動串行配置。優(yōu)選的,所述方法中還包括成功配置后進(jìn)行現(xiàn)場可編程邏輯器件上現(xiàn)場可編程邏 輯器件固件升級裝置拆除的步驟。該方法遵循JTAG協(xié)議;微處理器首先在DCONFIG信號線上產(chǎn)生一個寬度大于 Sus的負(fù)脈沖,然后開始檢測nSTATUS信號的狀態(tài)。CPLD檢測到DCONFIG信號的下降沿后 會迫使nSTATUS和C0NF_D0NE信號拉低,并且在DCONFIG信號重新抬高之間保持為低電平。 DCONFIG信號抬高后,nSTATUS將在1μ s之內(nèi)隨之抬高,微處理器檢測到此變化后就認(rèn)為 CPLD已經(jīng)做好準(zhǔn)備可以開始配置。配置第一個上升沿與nSTATUS的上升沿之間要求至少有 Ius的時間間隔。由于配置數(shù)據(jù)是與配置上升沿同步的,在配置時鐘的上升沿來之間應(yīng)當(dāng) 將Ibit的配置數(shù)據(jù)在數(shù)據(jù)線上準(zhǔn)備好,配置數(shù)據(jù)按低位在先高位在后的順序從數(shù)據(jù)線上 送出。當(dāng)全部配置數(shù)據(jù)送出以后,C0NF_D0NE信號將被抬高,表明配置結(jié)束。微處理器檢測 到C0NF_D0NE信號抬高,就結(jié)束配置過程。如果配置過程中出錯,CPLD將迫使nSTATUS信號拉低,微處理器檢測到此變化將重新開始配置。本發(fā)明的原理在于借助微控器和被動串行配置將CPLD升級所需的二進(jìn)制代碼發(fā)送到CPLD,進(jìn)而實(shí)現(xiàn)所需的邏輯功能,優(yōu)選的具體升級步驟可以是A、在電路板上增設(shè)被動串行配置;B、在MAX+PLUSII環(huán)境下生成新的CPLD 二進(jìn)制配置數(shù)據(jù);C、電路板上電,微控器將配置數(shù)據(jù)讀入內(nèi)部存儲器,然后,在DC0NFIG上產(chǎn)生一個 由低到高的跳變,使CPLD進(jìn)入配置狀態(tài),等待CPLD釋放nSTATUS,nSTATUS變高之后,通 過DCLK上升沿將配置數(shù)據(jù)逐位送到DATA上;CPLD接收完所有配置數(shù)據(jù)后,會釋放C0NF_ DONE,變成高電平,之后DCLK上輸出脈沖來初始化CPLD器件,直到INT_D0NE被釋放變成高 電平,表示CPLD器件初始化完畢,進(jìn)入用戶狀態(tài),配置過程結(jié)束;D、重新啟動電路板后如果CPLD所預(yù)期的邏輯功能正確實(shí)現(xiàn),則進(jìn)行步驟E ;否則 重新修改代碼、編譯,再重復(fù)進(jìn)行步驟B、C ;E、完成調(diào)試。這些步驟中,步驟E當(dāng)完成調(diào)試后,可將被動串行配置拆除。步驟A中,被動串行配置是 根據(jù)芯片手冊管腳自己定義設(shè)置。所述的步驟B中,CPLD 二進(jìn)制配置數(shù)據(jù)是實(shí)現(xiàn)邏輯功能的代碼。通過上述的升級過程,本發(fā)明得到一種操作既簡單、不但消除人為焊接或者插拔 芯片CPLD引起的硬件問題,而且又能避免使用ISP帶來的不便的調(diào)試方法,設(shè)計了一種現(xiàn) 場簡易CPLD固件升級的方法,使用被動串行配置,將升級所需的二進(jìn)制代碼發(fā)送到CPLD, 操作簡單,不但解決了由于頻繁插拔或者重新焊接CPLD,容易引起硬件損壞的技術(shù)問題,而 且避免了使用ISP帶來的不便。相對于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點(diǎn)是本發(fā)明技術(shù)方案中借助微控器和被動串行配置將CPLD升級所需的二進(jìn)制代碼發(fā) 送到CPLD,進(jìn)而實(shí)現(xiàn)所需的邏輯功能;不但解決了由于頻繁插拔或者重新焊接CPLD,容易 引起硬件損壞的技術(shù)問題,而且避免了使用ISP帶來的不便。綜上所述,本發(fā)明提供了一種現(xiàn)場簡易CPLD固件升級的方法,該方法操作既簡 單、不但消除人為焊接或者插拔芯片CPLD引起的硬件問題,而且又能避免使用ISP帶來的 不便,采用的技術(shù)方案是借助微控器和被動串行配置將CPLD升級所需的二進(jìn)制代碼發(fā)送 到CPLD,進(jìn)而實(shí)現(xiàn)所需的邏輯功能。本方法具體步驟是在電路板上增設(shè)被動串行配置,電 路板上電后,微控器將新的CPLD 二進(jìn)制配讀入內(nèi)部存儲器,通過被動串行配置,把代碼傳 送到CPLD、并運(yùn)行;斷電,重新啟動電路板后如果CPLD所預(yù)期的邏輯功能正確實(shí)現(xiàn),則完成 調(diào)試過程,如果程序錯誤,則查找程序中的錯誤,重新編譯后,重復(fù)上述步驟,直到CPLD所 預(yù)期的邏輯功能正確實(shí)現(xiàn)為止。
下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步描述圖1為本發(fā)明實(shí)施例裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合具體實(shí)施例對上述方案做進(jìn)一步說明。應(yīng)理解,這些實(shí)施例是用于說明本發(fā)明而不限于限制本發(fā)明的范圍。實(shí)施例中采用的實(shí)施條件可以根據(jù)具體廠家的條件做 進(jìn)一步調(diào)整,未注明的實(shí)施條件通常為常規(guī)實(shí)驗中的條件。實(shí)施例如圖1所示,該現(xiàn)場可編程邏輯器件固件升級裝置,包括BCM5836芯片的 微控制器、A3S56D30ETP芯片的內(nèi)部存儲器和與微控制器連接的PC機(jī),其特征在于所述微 控制器通過被動串行方式與現(xiàn)場可編程邏輯器件連接,所述主機(jī)發(fā)出固件升級指令后,所 述微控制器讀入固件升級數(shù)據(jù),并將固件升級數(shù)據(jù)通過被動串行方式配置現(xiàn)場可編程邏輯 器件。所述內(nèi)部存儲器與微控制器連接,儲存現(xiàn)場可編程邏輯器件的固件升級數(shù)據(jù)。所述內(nèi) 部存儲器選用可擦寫只讀存儲器,主機(jī)發(fā)出固件數(shù)據(jù)傳輸指令后,微處理器接受指令后將 固件升級數(shù)據(jù)讀入后存入內(nèi)部存儲器。所述現(xiàn)場可編程邏輯器為Lattice公司的LCM640C?,F(xiàn)場可編程邏輯器件的DCONFIG、DCLK、DATA、INT_DONE、nSTATUS、C0NF_D0NE 連接 到微處理器的I/O接口,其中DCONFIG、DCLK、DATA引腳設(shè)置成輸出態(tài),由微處理器對現(xiàn)場 可編程邏輯器件進(jìn)行操作;nSTATUS、C0NF_D0NE、INT_D0NE引腳設(shè)置成輸入態(tài),由微處理器 對現(xiàn)場可編程邏輯器件的配置狀態(tài)進(jìn)行檢測。所述微處理器的I/O接口包括CF、C0N、INT、 DL、CLK、DAT 引腳,所述現(xiàn)場可編程邏輯器件的 DCONFIG、nSTATUS、INT_D0NE、C0NF_D0NE、 DCLK,DATA引腳與CF、CON、INT、DL、CLK、DAT引腳一一匹配連接,所述微處理器通過內(nèi)部寄 存器將CF、DCLK, DATA引腳設(shè)置成輸出口,將CON、INT、DL引腳設(shè)置成輸入口。
當(dāng)對CPLD進(jìn)行固件升級時,可以按照如下步驟進(jìn)行A、在電路板上增設(shè)被動串行配置;B、在MAX+PLUSII環(huán)境下生成新的CPLD 二進(jìn)制配置數(shù)據(jù);C、電路板上電,微控器將配置數(shù)據(jù)讀入內(nèi)部存儲器。然后,在DCONFIG上產(chǎn)生一 個由低到高的跳變,使CPLD進(jìn)入配置狀態(tài),等待CPLD釋放nSTATUS,nSTATuS變高之后,通 過DCLK上升沿將配置數(shù)據(jù)逐位送到DATA上;CPLD接收完所有配置數(shù)據(jù)后,會釋放C0NF_ DONE,變成高電平,之后DCLK上輸出脈沖來初始化CPLD器件,直到INT_D0NE被釋放變成高 電平,表示CPLD器件初始化完畢,進(jìn)入用戶狀態(tài),配置過程結(jié)束;D、重新啟動電路板后如果CPLD所預(yù)期的邏輯功能正確實(shí)現(xiàn),則進(jìn)行步驟E ;否則 重新修改代碼、編譯,再重復(fù)進(jìn)行步驟B、C ;E、完成調(diào)試。完成調(diào)試后,可將被動串行配置去除。在進(jìn)行升級配置前,微處理器響應(yīng)串口中斷并且接收到一個數(shù)據(jù),微處理器首先 判斷該數(shù)據(jù)所表示的命令類型,若是配置命令,微處理器就進(jìn)入配置狀態(tài)。在配置狀態(tài)下, 微處理器一邊接收配置數(shù)據(jù),一邊將這些數(shù)據(jù)寫到CPLD器件中;若是寫內(nèi)部儲存器命令, 微處理器就進(jìn)入寫內(nèi)部儲存器狀態(tài),此時微處理器會一邊接收配置數(shù)據(jù),一邊將這些數(shù)據(jù) 寫到配置用內(nèi)部儲存器中(注意此時這些數(shù)據(jù)并沒有被配置到CPLD器件中);若是讀內(nèi)部 儲存器命令,微處理器就進(jìn)入讀內(nèi)部儲存器并配置CPLD器件狀態(tài),此時微處理器會一邊讀 內(nèi)部儲存器中的配置數(shù)據(jù),一邊將讀出的配置數(shù)據(jù)寫到CPLD器件中。上述實(shí)例只為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項技術(shù)的人是 能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精 神實(shí)質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種現(xiàn)場可編程邏輯器件固件升級裝置,包括微控制器和與微控制器連接的主機(jī),其特征在于所述微控制器通過被動串行方式與現(xiàn)場可編程邏輯器件連接,所述主機(jī)發(fā)出固件升級指令后,所述微控制器讀入固件升級數(shù)據(jù),并將固件升級數(shù)據(jù)通過被動串行方式配置現(xiàn)場可編程邏輯器件。
2.根據(jù)權(quán)利要求1所述的現(xiàn)場可編程邏輯器件固件升級裝置,其特征在于所述裝置還 包括內(nèi)部存儲器,所述內(nèi)部存儲器與微控制器連接,儲存現(xiàn)場可編程邏輯器件的固件升級 數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的現(xiàn)場可編程邏輯器件固件升級裝置,其特征在于所述內(nèi)部存 儲器選用可擦寫只讀存儲器,主機(jī)發(fā)出固件數(shù)據(jù)傳輸指令后,微處理器接受指令后將固件 升級數(shù)據(jù)讀入后存入內(nèi)部存儲器。
4.根據(jù)權(quán)利要求1所述的現(xiàn)場可編程邏輯器件固件升級裝置,其特征在于所述現(xiàn)場可 編程邏輯器件的 DCONFIG、DCLK、DATA、INT_DONE、nSTATUS、CONF_DONE 連接到微處理器的 I/ O接口,其中DCONFIG、DCLK、DATA引腳設(shè)置成輸出態(tài),由微處理器對現(xiàn)場可編程邏輯器件進(jìn) 行操作;nSTATUS、CONF_DONE、INT_DONE引腳設(shè)置成輸入態(tài),由微處理器對現(xiàn)場可編程邏輯 器件的配置狀態(tài)進(jìn)行檢測。
5.根據(jù)權(quán)利要求4所述的現(xiàn)場可編程邏輯器件固件升級裝置,其特征在于所述微處理 器的I/O接口包括CF、CON、INT、DL、CLK, DAT引腳,所述現(xiàn)場可編程邏輯器件的DC0NFIG、 nSTATUS、INT_D0NE、C0NF_D0NE、DCLK, DATA 引腳與 CF、CON、INT、DL、CLK, DAT 引腳——匹 配連接,所述微處理器通過內(nèi)部寄存器將CF、DCLK、DATA引腳設(shè)置成輸出口,將C0N、INT、DL 引腳設(shè)置成輸入口。
6.一種現(xiàn)場簡易升級現(xiàn)場可編程邏輯器件固件的方法,其特征在于所述方法包括以下 步驟(1)在現(xiàn)場可編程邏輯器件固件升級裝置上通過被動串行方式連接現(xiàn)場可編程邏輯器件;(2)主機(jī)生成現(xiàn)場可編程邏輯器件固件的二進(jìn)制配置數(shù)據(jù);(3)主機(jī)發(fā)出指令,微控器將二進(jìn)制配置數(shù)據(jù)讀入內(nèi)部存儲器后,通過被動串行方式將 二進(jìn)制配置數(shù)據(jù)發(fā)送到現(xiàn)場可編程邏輯器件。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述方法步驟(3)包括微處理器在現(xiàn)場可 編程邏輯器件的DC0NFIG上產(chǎn)生一個由低到高的跳變,使現(xiàn)場可編程邏輯器件進(jìn)入配置狀 態(tài),等待現(xiàn)場可編程邏輯器件釋放nSTATUS,nSTATuS變高之后,通過DCLK上升沿將配置數(shù) 據(jù)逐位送到DATA上;現(xiàn)場可編程邏輯器件接收完所有配置數(shù)據(jù)后,釋放C0NF_D0NE,變成高 電平,DCLK上輸出脈沖來初始化現(xiàn)場可編程邏輯器件,直到INT_D0NE被釋放變成高電平, 表示現(xiàn)場可編程邏輯器件初始化完畢,進(jìn)入用戶狀態(tài),配置過程結(jié)束的步驟。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于所述方法中還包括配置結(jié)束后進(jìn)行調(diào)試的 步驟,所述調(diào)試的步驟包括重新啟動現(xiàn)場可編程邏輯器件固件升級裝置后如果現(xiàn)場可編程 邏輯器件所預(yù)期的邏輯功能未能正確實(shí)現(xiàn),則進(jìn)行重新修改固件代碼、編譯成二進(jìn)制配置 數(shù)據(jù)后重新被動串行配置。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于所述方法中還包括成功配置后進(jìn)行現(xiàn)場可 編程邏輯器件上現(xiàn)場可編程邏輯器件固件升級裝置拆除的步驟。
全文摘要
本發(fā)明公開了一種現(xiàn)場可編程邏輯器件固件升級裝置,包括微控制器和與微控制器連接的主機(jī),其特征在于所述微控制器通過被動串行方式與現(xiàn)場可編程邏輯器件連接,所述主機(jī)發(fā)出固件升級指令后,所述微控制器讀入固件升級數(shù)據(jù),并將固件升級數(shù)據(jù)通過被動串行方式配置現(xiàn)場可編程邏輯器件。該裝置升級CPLD固件時操作既簡單、消除人為焊接或者插拔芯片CPLD引起的硬件問題,又能避免使用ISP帶來的不便。
文檔編號G06F9/445GK101826025SQ20101013253
公開日2010年9月8日 申請日期2010年3月22日 優(yōu)先權(quán)日2010年3月22日
發(fā)明者李新志, 田臻 申請人:太倉市同維電子有限公司