專利名稱:邏輯器件在線加載的方法、系統(tǒng)和處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,特別涉及一種邏輯器件在線加載的方 法、系統(tǒng)和處理器。
背景技術(shù):
復(fù)雜可編程邏輯器件(Complex Programmable Logical Device;以下簡(jiǎn)稱 CPLD)是電可擦除邏輯器件,在掉電情況下仍能保持所編程序的邏輯功能, 在現(xiàn)有的各種單板中得到廣泛應(yīng)用。目前,現(xiàn)有技術(shù)主要使用聯(lián)合測(cè)試行動(dòng) 小組(Joint Test Action Group;以下簡(jiǎn)稱JTAG)鏈,通過外部編程設(shè)備對(duì) CPLD進(jìn)行程序下載。但這種方式有其不足之處,由于單板及業(yè)務(wù)處理的復(fù) 雜性,有時(shí)可能由于原代碼有問題需要更改,或是由于需求的變化需要更改 代碼,常常要求能對(duì)邏輯器件,如CPLD中的代碼進(jìn)行在線升級(jí),以增強(qiáng)可 升級(jí)可維護(hù)的能力,減少維護(hù)成本。但是,如果CPU在JTAG鏈中, 一旦JTAG 鏈開始工作,待加載單板的CPU就會(huì)進(jìn)入JTAG狀態(tài),無法對(duì)CPLD實(shí)現(xiàn)在 線加載;當(dāng)整個(gè)系統(tǒng)為低端設(shè)備,不包括外部主控板時(shí),待加載單板的CPLD 的更新必須使用JTAG加載線進(jìn)行,對(duì)于已經(jīng)發(fā)貨的單板,在后續(xù)使用過程 中需要更新代碼時(shí),必須把單板返回工廠進(jìn)行更新或由專人進(jìn)行加載,成本 高?,F(xiàn)有技術(shù)采用的另一種加載方式是使用中央處理器(Central Processing Unit;以下簡(jiǎn)稱CPU)的通用輸入(Input;以下簡(jiǎn)稱1)/輸出(Output; 以下簡(jiǎn)稱O )接口模擬JTAG來實(shí)現(xiàn)對(duì)CPLD的在線加載,并且CPLD也 可以使用外部編程設(shè)備連接JTAG加載線到JTAG插座來實(shí)現(xiàn)加載。但是, 這種方式中,CPU使用了通用1/0接口來模擬JTAG,額外地占用了 !/0接口;并且,對(duì)于不包括CPU的一些插卡,這類插卡的連接器已固定且連接器接口 上無連接到母板CPU的1/0接口,因此無法利用上述方案實(shí)現(xiàn)CPLD的在線 加載?,F(xiàn)有技術(shù)中也有待加載單板上的CPU通過擴(kuò)展I/O器件模擬JTAG加 載,以解決通用CPU沒有I/O接口而無法實(shí)現(xiàn)在線加載的問題。但是,擴(kuò)展 I/O器件不僅為單板增加了 一個(gè)可編程器件,還需要對(duì)該擴(kuò)展I/O器件進(jìn)行加 載,增加了生產(chǎn)和維護(hù)的成本。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題使用 JTAG鏈進(jìn)行加載的方式無法實(shí)現(xiàn)在線加載;使用CPU的通用1/0接口^^莫擬 JTAG的方式,額外地占用了 CPU的I/0接口,并且不適用于不包括CPU的 單板;雖然可以通過擴(kuò)展I/0器件模擬JTAG加載,但是卻會(huì)增加生產(chǎn)和維 護(hù)的成本。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種邏輯器件在線加載的方法、系統(tǒng)和處理器,以實(shí) 現(xiàn)對(duì)邏輯器件進(jìn)行在線加載,但不額外占用i/o接口,并可以實(shí)現(xiàn)對(duì)不包 括處理器但包括總線接口的單板上的邏輯器件進(jìn)行在線加載。
本發(fā)明實(shí)施例提供一種邏輯器件在線加載的方法,包括
接收在線加載命令;
根據(jù)所述在線加載命令,通過處理器與所述邏輯器件之間的總線去使 能所述邏輯器件所在單板的聯(lián)合測(cè)試行動(dòng)小組JTAG鏈路,并使能所述邏輯 器件的I/O接口與JTAG接口之間的鏈路;
通過所述總線控制所述邏輯器件,使所述邏輯器件通過所述邏輯器件的 I/O接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載。
本發(fā)明實(shí)施例還提供一種處理器,包括
接收模塊,用于接收在線加載命令;
使能/去使能模塊,用于根據(jù)所述接收模塊接收的在線加載命令,通過所述處理器與邏輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián)合測(cè)
試行動(dòng)小組JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口之間 的鏈路;
控制模塊,用于通過所述總線控制所述邏輯器件,使所述邏輯器件通過 所述邏輯器件的1/0接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在 線加載。
本發(fā)明實(shí)施例還提供一種邏輯器件在線加載的系統(tǒng),包括處理器和邏 輯器件,
所述處理器,用于接收在線加載命令,根據(jù)所述在線加載命令,通過 所述處理器和所述邏輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián) 合測(cè)試行動(dòng)小組JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口 之間的鏈^S通過所述總線控制所述邏輯器件,使所述邏輯器件通過所述邏 輯器件的1/0接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載;
所述邏輯器件,用于在所述處理器控制下,通過所述邏輯器件的I/O接 口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載。
通過本發(fā)明實(shí)施例,處理器在接收到在線加載命令之后,通過該處理器 和邏輯器件之間的總線去使能邏輯器件所在單板的JTAG鏈路,并^f吏能該邏 輯器件的1/0接口與JTAG接口之間的鏈路,通過該邏輯器件的1/0接口與 JTAG接口之間的鏈路對(duì)邏輯器件進(jìn)行在線加載,從而在不額外占用1/0接口 的前提下,實(shí)現(xiàn)了邏輯器件的在線加載,并且無需外擴(kuò)額外的邏輯器件。另 外,本發(fā)明實(shí)施例同樣適用于對(duì)不包括處理器但包括總線接口的單板上的 邏輯器件進(jìn)行在線加載。
為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或 現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付 出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明邏輯器件在線加載的方法一個(gè)實(shí)施例的流程圖2為本發(fā)明邏輯器件在線加載的方法另一個(gè)實(shí)施例的流程圖3為本發(fā)明應(yīng)用場(chǎng)景一個(gè)實(shí)施例的示意圖4為本發(fā)明應(yīng)用場(chǎng)景另一個(gè)實(shí)施例的示意圖5為本發(fā)明處理器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖6為本發(fā)明處理器另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖7為本發(fā)明邏輯器件在線加載的系統(tǒng) 一 個(gè)實(shí)施例的結(jié)構(gòu)示意圖8為本發(fā)明邏輯器件在線加載的系統(tǒng)另 一 個(gè)實(shí)施例的結(jié)構(gòu)示意圖9為本發(fā)明邏輯器件在線加載的系統(tǒng)一個(gè)具體實(shí)施例的結(jié)構(gòu)示意
圖10為本發(fā)明邏輯器件在線加載的系統(tǒng)另 一個(gè)具體實(shí)施例的結(jié)構(gòu)示 意圖11為本發(fā)明邏輯器件在線加載的系統(tǒng)再一個(gè)具體實(shí)施例的結(jié)構(gòu)示 意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地 描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施 例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的 前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例l是供一種邏輯器件在線加載的方法,將邏輯器件本身的I/O 接口連接至該邏輯器件的JTAG接口,處理器通過總線連接至邏輯器件的總 線接口,并通過總線控制該邏輯器件實(shí)現(xiàn)邏輯器件的在線加載。本發(fā)明實(shí)施 例中的總線可以為處理器與邏輯器件之間的任意總線,例如控制總線。圖1為本發(fā)明邏輯器件在線加載的方法一個(gè)實(shí)施例的流程圖,如圖1所
示,該實(shí)施例包括
步驟IOI,接收在線加載命令。
步驟102,根據(jù)該在線加載命令,通過處理器和邏輯器件之間的總線 去使能該邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與 JTAG接口之間的鏈路。具體地,可以通過上述總線去使能該邏輯器件所在 單板的JTAG鏈路上的第一緩沖器,并使能該邏輯器件的1/0接口與JTAG 接口之間鏈路上的第二緩沖器。
步驟103,通過上述總線控制該邏輯器件,使該邏輯器件通過該邏輯器 件的I/O接口與JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載。
本實(shí)施例中的邏輯器件為可編程邏輯器件,例如CPLD等;本實(shí)施例中 的執(zhí)行主體可以為處理器,例如CPU等。
上述實(shí)施例中,處理器在接收到在線加載命令之后,通過該處理器與邏 輯器件之間的總線去使能邏輯器件所在單板的JTAG鏈路,并使能該邏輯器 件的I/O接口與JTAG接口之間的鏈路,通過該邏輯器件的I/O接口與JTAG 接口之間的鏈路對(duì)邏輯器件進(jìn)行在線加載,從而在不額外占用1/0接口的前 提下,實(shí)現(xiàn)了邏輯器件的在線加載,并且無需外擴(kuò)額外的邏輯器件。
圖2為本發(fā)明邏輯器件在線加載的方法另一個(gè)實(shí)施例的流程圖,本實(shí)施 例以處理器為CPU、邏輯器件為CPLD為例進(jìn)行說明,如圖2所示,該實(shí)施 例包括
步驟201, CPU接收在線加載命令,清空在線加載完成事件。 步驟202,根據(jù)該在線加載命令,CPU通過該CPU與CPLD之間的總線 去使能CPLD所在單板的JTAG鏈路,并使能該CPLD的I/O接口與JTAG 接口之間的鏈路。具體地,CPU可以通過上述總線去使能CPLD所在單板 的JTAG鏈路上的第一緩沖器(Buffer),并使能CPLD的1/0接口與JTAG 接口之間鏈路上的第二 Buffer。本實(shí)施例中,JTAG鏈路包括CPLD ,可選地,該JTAG鏈路還可以包括至少一個(gè)JTAG器件;當(dāng)JTAG鏈路僅包括CPLD 時(shí),第一 Buffer位于該CPLD的JTAG接口與外部加載設(shè)備之間;當(dāng)JTAG 鏈路包括CPLD和至少一個(gè)JTAG器件時(shí),第一 Buffer位于CPLD的JTAG 接口與JTAG器件之間。
本實(shí)施例中,單板加工出來之后,可以連接JTAG加載線到JTAG插座, 通過外部加載設(shè)備對(duì)CPLD進(jìn)行首次加載,該JTAG加載線可以為JTAG下 載電纜。首次加載之后,CPLD的邏輯功能正常運(yùn)行,CPLD的寄存器默認(rèn)控 制CPLD所在單板的JTAG鏈路使能,CPLD的I/O接口與JTAG接口之間的 鏈路去使能。
在CPU接收到在線加載命令之后,該CPU通過該CPU與CPLD之間的 總線去使能CPLD所在單板的JTAG鏈路,并使能該CPLD的1/0接口與JTAG 才妻口之間的鏈^各。
步驟203, CPU通過上述總線控制CPLD通過該CPLD的I/O接口與JTAG 接口之間的鏈路,對(duì)該CPLD進(jìn)行在線加載。
在使能CPLD的I/O接口與JTAG接口之間的鏈路之后,CPU通過上述 總線控制CPLD通過該CPLD的1/0接口與JTAG接口之間的鏈路,對(duì)該CPLD 進(jìn)行在線加載,此時(shí)CPLD的邏輯功能正常運(yùn)行,不影響CPLD所在單板的 其他功能。
步驟204,判斷在線加載是否完成。如果在線加載已完成,則執(zhí)行步驟 205;如果在線加載尚未完成,則返回執(zhí)行步驟203。
步驟205, CPU通過上述總線使能CPLD所在單板的JTAG鏈路,并去 使能該CPLD的I/O接口與JTAG接口之間的鏈路;記錄在線加載完成事件。 具體地,CPU可以通過上述總線使能CPLD所在單板的JTAG鏈路上的第 一 Buffer,并去使能該CPLD的1/0接口與JTAG接口之間鏈路上的第二 Buffer。此時(shí),新程序已加載到CPLD的片上閃存(Flash) , CPU可以在任 意合適時(shí)間控制CPLD所在單板重新上電,對(duì)CPLD進(jìn)行邏輯更新。本實(shí)施例中,在線加載完成之后,CPU記錄在線加載完成事件,CPU在每次接收到在線加載命令之后,均需清空在線加載完成事件,因此步驟201 步驟205可以在單板重新上電之前反復(fù)進(jìn)行,有效程序?yàn)閱伟逯匦律想娭白詈笠淮渭虞d的程序。
步驟206, CPU通過上述總線控制CPLD所在單板重新上電,對(duì)CPLD進(jìn)行邏輯更新。
本實(shí)施例中,在線加載完成之后,CPLD運(yùn)行的邏輯功能還是未更新之前的邏輯功能,在完成在線加載后的任意合適時(shí)間,CPU可以通過該CPU與CPLD之間的總線控制CPLD所在單板重新上電,對(duì)該CPLD進(jìn)行邏輯更新。
上述實(shí)施例中,CPU在接收到在線加載命令之后,通過該CPU和CPLD之間的總線去使能CPLD所在單板的JTAG鏈路,并使能該CPLD的I/O接口與JTAG接口之間的鏈路,通過該CPLD的I/O接口與JTAG接口之間的鏈路對(duì)該CPLD進(jìn)行在線加載,從而在不額外占用1/0接口的前提下,實(shí)現(xiàn)了CPLD的在線加載,并且無需外擴(kuò)額外的邏輯器件。另外,上述實(shí)施例提供的方法同樣適用于對(duì)不包括處理器但包括總線接口的單板上的邏輯器件進(jìn)行在線加載。
本發(fā)明圖l或圖2所示實(shí)施例中,提供了 "去使能邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與JTAG接口之間的鏈路",以及"使能邏輯器件所在單板的JTAG鏈路,并去使能該邏輯器件的1/0接口與JTAG接口之間的鏈路"的一種實(shí)現(xiàn)方式,但本發(fā)明實(shí)施例并不僅限于此,也可以采用一個(gè)緩沖器,該緩沖器中的兩條通道分別連接上述兩條鏈路,處理器通過該處理器和邏輯器件之間的總線控制該緩沖器的兩條通道,達(dá)到"去使能邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與JTAG接口之間的鏈路",以及"使能邏輯器件所在單板的JTAG鏈路,并去使能該邏輯器件的1/0接口與JTAG接口之間的鏈路"的目的;本發(fā)明實(shí)施例對(duì)"去使能邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的I/O接口與JTAG接口之間的鏈路",以及"使能邏輯器件所在單板的JTAG鏈路,并去使能該邏輯器件的1/0接口與JTAG接口之間的鏈路"的實(shí)現(xiàn)方式
本發(fā)明實(shí)施例提供的邏輯器件在線加載的方法可以用于對(duì)包括CPU的單板上的CPLD進(jìn)行在線加載,圖3為本發(fā)明應(yīng)用場(chǎng)景一個(gè)實(shí)施例的示意圖,圖3中,CPU通過總線與CPLD連接,該總線可以為控制總線或其他任意一種總線。由于本發(fā)明實(shí)施例提供的邏輯器件在線加載的方法不會(huì)影響單板上的CPLD和其他器件的正常工作,因此CPU可以通過總線與CPLD直接連接,也可以經(jīng)過其他器件與CPLD連接。在圖3所示的場(chǎng)景中,只要CPU有總線連接到了 CPLD上面,就可以應(yīng)用本發(fā)明圖1或圖2所示實(shí)施例提供的方法對(duì)CPLD進(jìn)行在線加載,并且不會(huì)額外占用CPU的I/O接口 。
本發(fā)明實(shí)施例提供的邏輯器件在線加載的方法還可以用于對(duì)不包括CPU但包括總線接口的單板,例如插卡上的CPLD進(jìn)行在線加載,圖4為本發(fā)明應(yīng)用場(chǎng)景另一個(gè)實(shí)施例的示意圖,圖4中,插卡上包括需要在線加載的CPLD,但不包括CPU,并且母板上沒有通用1/0接口通過連接器連接到該插卡上。正常情況下,CPLD均有總線連接到母板的CPU上,因此可以應(yīng)用本發(fā)明圖1或圖2實(shí)施例提供的方法對(duì)CPLD進(jìn)行在線加載,并且不會(huì)額外占用CPU的1/0接口 ,該總線可以為控制總線或其他任意一種總線。這里,CPLD與母板的CPU的連接同樣可以是直接連接,也可以是經(jīng)過其他器件連接。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括ROM、 RAM、磁^萊或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
圖5為本發(fā)明處理器一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例的處理器可以作為CPU,或CPU的一部分,實(shí)現(xiàn)本發(fā)明圖1所示實(shí)施例的流程。如圖5所示,該處理器包括接收模塊51、使能/去使能模塊52和控制模塊53。
其中,接收模塊51可以接收在線加載命令;使能/去使能模塊52可以根據(jù)接收模塊51接收的在線加載命令,通過處理器與邏輯器件之間的總線去使能該邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與JTAG接口之間的鏈路;控制模塊53可以通過上述總線控制該邏輯器件,使該邏輯器件通過該邏輯器件的1/0接口與JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載。
本實(shí)施例中的邏輯器件包括可編程邏輯器件,例如CPLD等。上述實(shí)施例中,接收模塊51在接收到在線加載命令之后,使能/去使能模塊52通過該處理器與邏輯器件之間的總線去使能邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與JTAG接口之間的鏈路,控制模塊53通過上述總線控制該邏輯器件通過該邏輯器件的1/0接口與JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載,從而在不額外占用1/0接口的前提下,實(shí)現(xiàn)了邏輯器件的在線加載,并且無需外擴(kuò)額外的邏輯器件。
圖6為本發(fā)明處理器另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例的處理器可以是CPU,或CPU的一部分,實(shí)現(xiàn)本發(fā)明圖1或圖2所示實(shí)施例的流程。如圖6所示,該處理器包括接收模塊61、使能/去使能模塊62、控制模塊63、記錄模塊64和清空模塊65。
其中,接收模塊61可以接收在線加載命令;使能/去使能模塊62可以根據(jù)接收模塊61接收的在線加載命令,通過處理器與邏輯器件之間的總線去使能該邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與JTAG接口之間的鏈路;具體地,使能/去使能模塊62可以通過上述總線去使能邏輯器件所在單板的JTAG鏈路上的第一緩沖器,并使能該邏輯器件的1/0接口與JTAG接口之間鏈路上的第二緩沖器。本實(shí)施例中,該JTAG鏈if各包括上述邏輯器件,可選地,該JTAG鏈^各還可以包括至少一個(gè)JTAG器件;當(dāng)JTAG鏈路僅包括邏輯器件時(shí),第一緩沖器位于該邏輯器件的JTAG接口與外部加載設(shè)備之間;當(dāng)JTAG鏈路包括邏輯器件和至少一個(gè)JTAG器件時(shí),第一緩沖器位于該邏輯器件的JTAG接口與汀AG器件之間。
控制模塊63可以通過上述總線控制該邏輯器件,使該邏輯器件通過該邏輯器件的I/O接口與JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載。
本實(shí)施例中,使能/去使能模塊62還可以在在線加載完成之后,通過該總線使能該邏輯器件所在單板的JTAG鏈路,并去使能該邏輯器件的I/O接口與JTAG接口之間的鏈路;具體地,使能/去使能模塊62可以在在線加載完成之后,通過上述總線去使能邏輯器件的1/0接口與JTAG接口之間鏈路上的第二緩沖器,并使能該邏輯器件所在單板的JTAG鏈路上的第一緩沖器。
控制模塊63還可以在在線加載完成之后,通過上述總線控制該邏輯器件所在單板重新上電,對(duì)該邏輯器件進(jìn)行邏輯更新。
記錄4莫塊64可以在在線加載完成之后,記錄在線加載完成事件;清空模塊65用于在接收模塊61接收到在線加載命令之后,清空記錄模塊64記錄的在線加載完成事件。本實(shí)施例中,在線加載完成之后,記錄模塊64記錄在線加載完成事件,接收模塊61在每次接收到在線加載命令之后,清空模塊65均需清空在線加載完成事件,因此在單板重新上電之前可以反復(fù)對(duì)邏輯器件進(jìn)行加載,有效程序?yàn)閱伟逯匦律想娭白詈笠淮渭虞d的程序
上述實(shí)施例中,接收模塊61在接收到在線加載命令之后,使能/去使能模塊62通過該處理器與邏輯器件之間的總線去使能邏輯器件所在單板的JTAG鏈路,并使能該邏輯器件的1/0接口與JTAG接口之間的鏈路,控制模塊63通過上述總線控制該邏輯器件通過該邏輯器件的1/0 4妻口與JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載,從而在不額外占用1/0接口的前提下,實(shí)現(xiàn)了邏輯器件的在線加載,并且無需外擴(kuò)額外的邏輯器件。另外,
板上的邏輯器件進(jìn)行在線加載。圖7為本發(fā)明邏輯器件在線加載的系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖7所示,該邏輯器件在線加載的系統(tǒng)包括處理器71和邏輯器件72;邏輯器件72的1/0接口環(huán)回到該邏輯器件72的JTAG"I妄口 ,邏輯器件72與處理器71通過總線連接,該總線可以為控制總線或其他任意一種總線。
其中,處理器71可以接收在線加載命令,根據(jù)該在線加載命令,通過處理器71和邏輯器件72之間的總線去使能邏輯器件72所在單板的JTAG鏈路,并使能邏輯器件72的I/O接口與JTAG接口之間的鏈路;通過上述總線控制邏輯器件72,使邏輯器件72通過邏輯器件72的I/O接口與JTAG接口之間的鏈路,對(duì)該邏輯器件72進(jìn)行在線加載;具體地,處理器71可以通過本發(fā)明圖5或圖6所示實(shí)施例的處理器實(shí)現(xiàn)。
邏輯器件72可以在處理器71控制下,通過該邏輯器件72的1/0接口與JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載。
本實(shí)施例中,邏輯器件72可以為可編程邏輯器件,例如CPLD等。
本實(shí)施例中,邏輯器件72的I/O接口與該邏輯器件72的JTAG接口連接,處理器71通過處理器71和邏輯器件72之間的總線控制邏輯器件72通過該邏輯器件72的I/O接口與JTAG接口之間的鏈路,對(duì)該邏輯器件72進(jìn)行在線加載。從而在不額外占用1/0接口的前提下,實(shí)現(xiàn)了邏輯器件的在線加載,并且無需外擴(kuò)額外的邏輯器件。
圖8為本發(fā)明邏輯器件在線加載的系統(tǒng)另 一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,如圖8所示,該邏輯器件在線加載的系統(tǒng)包括處理器81、邏輯器件82和外部加載設(shè)備83;邏輯器件82的1/0接口環(huán)回到該邏輯器件82的JTAG接口,邏輯器件82與處理器81通過總線連接,該總線可以為控制總線或其他任意一種總線。
其中,處理器81可以接收在線加載命令,根據(jù)該在線加載命令,通過處理器81和邏輯器件82之間的總線去使能邏輯器件82所在單板的JTAG鏈路,并使能邏輯器件82的I/O接口與JTAG接口之間的鏈路;通過上述總線控制邏輯器件82,使邏輯器件82通過邏輯器件82的I/O接口與JTAG接 口之間的鏈路,對(duì)該邏輯器件82進(jìn)行在線加載;具體地,處理器81可以通 過本發(fā)明圖5或圖6所示實(shí)施例的處理器實(shí)現(xiàn)。
邏輯器件82可以在處理器81控制下,通過該邏輯器件82的1/0接口與 JTAG接口之間的鏈路,對(duì)該邏輯器件進(jìn)行在線加載。
本實(shí)施例中,邏輯器件82可以為可編程邏輯器件,例如CPLD等。 外部加載設(shè)備83可以通過JTAG加載線對(duì)邏輯器件82進(jìn)行加載。 本實(shí)施例中,邏輯器件82的I/O接口與該邏輯器件82的JTAG接口連 接,處理器81通過處理器81和邏輯器件82之間的總線控制邏輯器件82通 過該邏輯器件82的I/O接口與JTAG接口之間的鏈路,對(duì)該邏輯器件82進(jìn) 行在線加載。從而在不額外占用1/0接口的前提下,實(shí)現(xiàn)了邏輯器件的在線 加載,并且無需外擴(kuò)額外的邏輯器件。
下面以處理器為CPU,邏輯器件為CPLD為例介紹本發(fā)明實(shí)施例提供的 邏輯器件在線加載的系統(tǒng)在具體實(shí)現(xiàn)時(shí)的結(jié)構(gòu)示意圖。
圖9為本發(fā)明邏輯器件在線加載的系統(tǒng)一個(gè)具體實(shí)施例的結(jié)構(gòu)示意 圖,如圖9所示,該系統(tǒng)可以包括外部加載i殳備91、 CPU 92、 CPLD 93 和JTAG器件94。其中,CPU 92、 CPLD 93和JTAG器件94位于同 一塊 單板上;CPLD 93的1/0接口環(huán)回到該CPLD 93的JTAG接口 , CPU 92 與CPLD 93通過總線連接,這里的總線可以為控制總線或其他任意一種總 線。本實(shí)施例中,該系統(tǒng)還可以包括第一 Buffer 95和第二 Buffer 96,其 中,第一 Buffer 95位于CPLD 93的JTAG接口與JTAG器件94之間,第 二 Buffer 96位于CPLD 93的JTAG接口與I/O接口之間。圖9所示的系 統(tǒng)結(jié)構(gòu)僅是本發(fā)明實(shí)施例提供的邏輯器件在線加載的系統(tǒng)的一種實(shí)現(xiàn)方 式,本發(fā)明實(shí)施例并不僅限于此,該邏輯器件在線加載的系統(tǒng)也可以不包 括JTAG器件94,這時(shí)第一 Buffer 95位于CPLD 93的JTAG接口與外部 加載設(shè)備91之間。單板加工出來后,CPLD 93中無程序,所有的1/0接口處于三態(tài)狀態(tài), 即輸入、輸出和高阻狀態(tài)。此時(shí)通過電路中默認(rèn)的下拉電阻R2和上拉電 阻R3,CPLD 93作為一個(gè)JTAG器件連接在單板的JTAG鏈路中,該JTAG 鏈路包括CPLD 93和至少一個(gè)JTAG器件94。這時(shí)可以由外部加載設(shè)備 91通過JTAG加載線對(duì)CPLD 93進(jìn)行首次加載,例如可以連4妄JTAG下 載電纜到JTAG插座,通過外部加載設(shè)備91對(duì)CPLD 93進(jìn)行首次加載,首 次加載之后,CPLD93的邏輯功能正常運(yùn)行,CPLD93的寄存器默認(rèn)控制I/O 輸出接口 CTL0和CTL1,使能CPLD93所在單板的JTAGll^上的第一Buffer 95, 去使能CPLD93的1/0接口與JTAG接口之間鏈路上的第二Buffer96,從而 使能CPLD 93所在單板的JTAG鏈路,去使能CPLD 93的I/O接口與JTAG 接口之間的鏈路。這時(shí)也可以由外部加載設(shè)備91通過JT AG加載線對(duì)CPLD 93進(jìn)行再次加載。
在CPU 92接收到在線加載命令之后,CPU 92通過該CPU 92與CPLD 93 之間的總線去使能CPLD 93所在單板的JTAG鏈路,并使能該CPLD 93的I/O 接口與JTAG接口之間的鏈路。具體地,CPU 92可以通過上述總線去使能 CPLD 93所在單板的JTAG鏈路上的第一 Buffer 95,并使能CPLD的I/O 接口與JTAG接口之間鏈路上的第二Buffer96。之后,CPU92通過上述總線 控制CPLD 93通過該CPLD 93的1/0接口與JTAG接口之間的鏈路,對(duì)該 CPLD 93進(jìn)行在線加載。加載完成之后,CPU 92控制CPLD 93的I/O輸出接 口 CTL0和CTL1將第一 Buffer 95和第二 Buffer 96恢復(fù)為默認(rèn)狀態(tài),即使 能第一 Buffer 95,去使能第二 Buffer 96。此時(shí),新程序已經(jīng)加載到CPLD 93 的片上Flash, CPU 92可以在任意合適時(shí)間控制CPLD 93所在單板重新上電, 對(duì)CPLD 93進(jìn)行邏輯更新。
另外,為了防止用戶程序的編寫錯(cuò)誤造成兩個(gè)Buffer的控制沖突,可以 在控制I/O的輸出端串兩個(gè)電阻Rl、 R4,這樣可以在發(fā)生Buffer的控制沖突 時(shí),將其斷開,使CPLD 93與單板的JTAG鏈路連通,重新加載;也可以使用一個(gè)I/O輸出加一個(gè)非門的電路來控制兩個(gè)Buffer實(shí)現(xiàn)單板的JTAG鏈路 和CPLD的1/0接口與JTAG接口之間的鏈路互斥。以上僅提供了兩種實(shí)現(xiàn) 鏈路互斥的方式,本發(fā)明實(shí)施例并不4又限于此,任何可以實(shí)現(xiàn)單板的JTAG 鏈路和CPLD的1/0接口與JTAG接口之間的鏈路互斥的方式均應(yīng)落入本發(fā) 明實(shí)施例的保護(hù)范圍。
圖10為本發(fā)明邏輯器件在線加載的系統(tǒng)另一個(gè)具體實(shí)施例的結(jié)構(gòu)示 意圖,如圖10所示,該系統(tǒng)可以包括CPLD 1001和JTAG器件1002。 其中,CPLD 1001和JTAG器件1002位于一塊插卡上;CPLD 1001的I/O 接口環(huán)回到該CPLD 1001的JTAG接口 ; CPLD 1001通過總線連接到母板 的CPU,這里的總線可以為控制總線或其他任意一種總線。
圖10為針對(duì)插卡設(shè)計(jì)的一種系統(tǒng)結(jié)構(gòu),在母板與插卡連接器接口已 經(jīng)固定,沒有多余i/o接口的情況下,圖IO所示的系統(tǒng)同樣可以支持單板 的JTAG鏈路和CPLD 1001的I/O接口與JTAG接口之間的鏈路這兩條鏈 路,可以實(shí)現(xiàn)插卡上的JTAG器件成鏈和CPLD在線加載這兩個(gè)基本功能。 具體的實(shí)現(xiàn)過程與本發(fā)明圖9所示實(shí)施例中的實(shí)現(xiàn)過程類似,在此不再贅 述。
圖11為本發(fā)明邏輯器件在線加載的系統(tǒng)再一個(gè)具體實(shí)施例的結(jié)構(gòu)示 意圖,如圖11所示,該系統(tǒng)可以包括CPLD 1101和JTAG器件1102。 其中,CPLD 1101和JTAG器件1102位于一塊插卡上;CPLD 1101的I/O 接口環(huán)回到該CPLD 1101的JTAG接口 ; CPLD 1101通過總線連接到母板 的CPU,這里的總線可以為控制總線或其他任意一種總線。
圖11所示的系統(tǒng)結(jié)構(gòu)適用于母板到插卡無多余的1/0接口,又沒有 JTAG接口的情形。由于這時(shí)不會(huì)有兩條JTAG鏈路互斥的情況,因此取 消了 Buffer,只需要由CPU通過總線控制CPLD 1101的不同1/0接口模 擬兩條JTAG鏈路,其中 一條JTAG鏈路為CPLD 1101的I/O接口與JTAG 接口之間的鏈路,用于實(shí)現(xiàn)CPLD 1101的在線加載;另一條JTAG鏈路為單板的JTAG鏈路,包括CPLD 1101與JTAG器件1102。
在圖ll所示系統(tǒng)中,實(shí)現(xiàn)CPLD 1101在線加載的過程與本發(fā)明圖9 所示實(shí)施例中描述的過程類似,在此不再贅述。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中 的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例 描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施 例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以 進(jìn)一步拆分成多個(gè)子模塊。
最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn) 行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換, 而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的 津奮神和范圍。
權(quán)利要求
1、一種邏輯器件在線加載的方法,其特征在于,包括接收在線加載命令;根據(jù)所述在線加載命令,通過處理器與所述邏輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián)合測(cè)試行動(dòng)小組JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口之間的鏈路;通過所述總線控制所述邏輯器件,使所述邏輯器件通過所述邏輯器件的I/O接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 在所述在線加載完成之后,通過所述總線使能所述邏輯器件所在單板的JTAG鏈路,并去使能所述邏輯器件的I/0接口與JTAG接口之間的鏈路;記 錄在線加載完成事件;通過所述總線控制所述邏輯器件所在單板重新上電,對(duì)所述邏輯器件 進(jìn)行邏輯更新。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述接收在線加載命令 之后,還包括清空所述在線加載完成事件。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過處理器與邏 輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián)合測(cè)試行動(dòng)小組 JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口之間的鏈路包括通過所述總線去使能所述邏輯器件所在單板的JTAG鏈路上的第一緩 沖器,并使能所述邏輯器件的1/0接口與JTAG接口之間鏈路上的第二緩沖 器。
5、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述通過所述總線使能所 述邏輯器件所在單板的JTAG鏈路,并去使能所述邏輯器件的I/O接口與 JTAG接口之間的鏈路包括通過所述總線使能邏輯器件所在單板的JTAG鏈路上的第一緩沖器,并去使能所述邏輯器件的1/0接口與JTAG接口之間鏈路上的第二緩沖器。
6、 一種處理器,其特征在于,包括 接收模塊,用于接收在線加載命令;使能/去使能模塊,用于根據(jù)所述接收模塊接收的在線加載命令,通過 所述處理器與邏輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián)合測(cè) 試行動(dòng)小組JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口之間 的鏈路;控制模塊,用于通過所述總線控制所述邏輯器件,使所述邏輯器件通過 所述邏輯器件的1/0接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在 線加載。
7、 根據(jù)權(quán)利要求6所述的處理器,其特征在于,所述使能/去使能模塊 還用于在所述在線加載完成之后,通過所述總線使能所述邏輯器件所在單板 的JTAG鏈路,并去使能所述邏輯器件的I/O接口與JTAG接口之間的鏈路;所述控制模塊還用于在所述在線加載完成之后,通過所述總線控制所 述邏輯器件所在單板重新上電,對(duì)所述邏輯器件進(jìn)行邏輯更新。
8、 根據(jù)權(quán)利要求6所述的處理器,其特征在于,還包括 記錄模塊,用于在所述在線加載完成之后,記錄在線加載完成事件; 清空模塊,用于在所述接收模塊接收到在線加載命令之后,清空所述記錄模塊記錄的在線加載完成事件。
9、 根據(jù)權(quán)利要求6所述的處理器,其特征在于,所述使能/去使能模塊 通過所述總線去使能所述邏輯器件所在單板的JTAG鏈路上的第一緩沖 器,并使能所述邏輯器件的1/0接口與JTAG接口之間鏈路上的第二緩沖器。
10、 根據(jù)權(quán)利要求7所述的處理器,其特征在于,所述使能/去使能模塊 在所述在線加載完成之后,通過所述總線去使能所述邏輯器件的1/0接口與 JTAG接口之間鏈路上的第二緩沖器,并使能所述邏輯器件所在單板的 JTAG鏈路上的第 一緩沖器。
11、 一種邏輯器件在線加載的系統(tǒng),其特征在于,包括處理器和邏輯 器件,所述處理器,用于接收在線加載命令,根據(jù)所述在線加載命令,通過 所述處理器和所述邏輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián)合測(cè)試行動(dòng)小組JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口 之間的鏈路;通過所述總線控制所述邏輯器件,使所述邏輯器件通過所述邏 輯器件的1/0接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載; 所述邏輯器件,用于在所述處理器控制下,通過所述邏輯器件的1/0接 口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載。
12、 根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,還包括 外部加載"i殳備,用于通過JTAG加載線對(duì)所述邏輯器件進(jìn)行加載。
全文摘要
本發(fā)明實(shí)施例公開了一種邏輯器件在線加載的方法、系統(tǒng)和處理器,所述邏輯器件在線加載的方法,包括接收在線加載命令;根據(jù)所述在線加載命令,通過處理器與所述邏輯器件之間的總線去使能所述邏輯器件所在單板的聯(lián)合測(cè)試行動(dòng)小組JTAG鏈路,并使能所述邏輯器件的I/O接口與JTAG接口之間的鏈路;通過所述總線控制所述邏輯器件,使所述邏輯器件通過所述邏輯器件的I/O接口與JTAG接口之間的鏈路,對(duì)所述邏輯器件進(jìn)行在線加載。本發(fā)明實(shí)施例在不額外占用I/O接口的前提下,實(shí)現(xiàn)了邏輯器件的在線加載,并且無需外擴(kuò)額外的邏輯器件。另外,本發(fā)明實(shí)施例同樣適用于對(duì)不包括處理器但包括總線接口的單板上的邏輯器件進(jìn)行在線加載。
文檔編號(hào)G06F13/40GK101645055SQ20091009290
公開日2010年2月10日 申請(qǐng)日期2009年9月10日 優(yōu)先權(quán)日2009年9月10日
發(fā)明者李玉森, 磊 石, 童兵兵, 陳永寧 申請(qǐng)人:成都市華為賽門鐵克科技有限公司