本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種實現(xiàn)中央處理器與功能芯片通信的方法和裝置。
背景技術(shù):
在一個復雜的通信設備內(nèi),往往有主控板和多塊各種功能支路板組成,并且每塊板上有多片芯片實現(xiàn)各種功能。
一般主控板上處理器通過本地總線(local bus)連到各芯片進行控制、狀態(tài)上報、或其他的信息傳遞等功能來實現(xiàn)協(xié)調(diào)工作,但是這種方法有一定的局限性,如需要較多的連線,且由于走線較長,速率受限,拉低了處理器工作速率;走線距離較長還會導致穩(wěn)定性也容易出問題;不能實現(xiàn)跨距較大的直接管理,系統(tǒng)規(guī)模受限。
也可以采用多處理器的方式,每個處理器管理周圍的功能芯片,處理器間再通過某種方式通信協(xié)調(diào)工作,這樣大大增加了系統(tǒng)復雜性。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N實現(xiàn)中央處理器與功能芯片通信的方法和裝置,以解決系統(tǒng)復雜、規(guī)模受限,工作效率低下的問題。
為解決上述技術(shù)問題,本申請的技術(shù)方案是這樣實現(xiàn)的:
一種實現(xiàn)中央處理器與功能芯片通信的方法,增加與中央處理器通過以太網(wǎng)通信,與功能芯片通過本地總線通信的FPGA,該方法包括:
所述FPGA接收到中央處理器發(fā)送的命令以太網(wǎng)幀時,進行緩存;
當緩存一個完整的命令以太網(wǎng)幀時,從緩存中讀出該命令以太網(wǎng)幀中的操作命令,并根據(jù)該操作命令在本地總線上產(chǎn)生與功能芯片相對應的信號和時序進行操作;
從本地總線讀出數(shù)據(jù)并存儲;
當完成所述完整的命令以太網(wǎng)幀中的操作命令時,根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀,并發(fā)送給中央處理器。
一種實現(xiàn)中央處理器與功能芯片通信的裝置,該裝置應用于增加與中央處理器通過以太網(wǎng)通信,與功能芯片通過本地總線通信的FPGA上,該裝置包括:接收單元、存儲單元、處理單元、生成單元和發(fā)送單元;
所述接收單元,用于接收命令以太網(wǎng)幀;
所述存儲單元,用于當所述接收單元接收到中央處理器發(fā)送的命令以太網(wǎng)幀時,進行緩存;將所述處理單元從本地總線讀出的數(shù)據(jù)存儲;
所述處理單元,用于當所述存儲單元緩存一個完整的命令以太網(wǎng)幀時,從緩存中讀出該命令以太網(wǎng)幀中的操作命令,并根據(jù)該操作命令在本地總線上產(chǎn)生與功能芯片相對應的信號和時序進行操作;并從本地總線讀出數(shù)據(jù);
所述生成單元,用于當所述處理單元完成所述完整的命令以太網(wǎng)幀中的操作命令時,根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀;
所述發(fā)送單元,用于將所述生成單元生成的回報以太網(wǎng)幀發(fā)送給中央處理器。
由上面的技術(shù)方案可知,本申請中通過使用FPGA轉(zhuǎn)換以太網(wǎng)和本地總線,實現(xiàn)中央處理器對各功能芯片寄存器的操作,能夠擴展中央處理器的管理范圍,降低系統(tǒng)的復雜性,提高中央處理器的工作速率。
附圖說明
圖1為本申請實施例中系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本申請實施例中預定義的幀結(jié)構(gòu);
圖3為本申請實施例實現(xiàn)中央處理器與功能芯片通信的流程示意圖;
圖4為本申請應用于上述技術(shù)的裝置結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合附圖并舉實施例,對本發(fā)明的技術(shù)方案進行詳細說明。
在一個復雜系統(tǒng)內(nèi),需要很多個各種功能芯片進行協(xié)調(diào)工作,實現(xiàn)系統(tǒng)整體功能,為此需要中央處理器對各功能芯片進行管理控制。
系統(tǒng)比較龐大時,中央處理器直接通過local bus接到各功能芯片比較困難,本申請具體實現(xiàn)時,在根據(jù)系統(tǒng)的具體結(jié)構(gòu)劃分的每個功能模塊內(nèi),放置一個現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield Programmable Gate Array),F(xiàn)PGA與中央處理器通過以太網(wǎng)通信,通過本地總線與各功能芯片通信。
參見圖1,圖1為本申請實施例中系統(tǒng)結(jié)構(gòu)示意圖。圖1中新增的FPGA個數(shù)根據(jù)系統(tǒng)劃分的功能模塊確定。
本申請中提到的本地總線均為中央處理器(CPU)本地總線,功能芯片為實現(xiàn)功能的芯片。本申請在具體實現(xiàn)時,利用通信系統(tǒng)劃分的模塊結(jié)構(gòu),不再重新劃分模塊。一個模塊可能對應實現(xiàn)一個功能的功能芯片,也可能對應實現(xiàn)多個功能的功能芯片,一個功能芯片可以是實現(xiàn)一個功能的芯片,也可以是實現(xiàn)多個功能的芯片,對此,本申請均不作限制。
現(xiàn)在大多中央處理器具有以太網(wǎng)接口,本申請具體實現(xiàn)時,直接利用已存在的以太網(wǎng)接口收發(fā)以太網(wǎng)幀即可。
在中央處理器和FPGA上預先配置預定義的幀結(jié)構(gòu),以使中央處理器和FPGA能夠互相識別接收到的以太網(wǎng)幀。
參見圖2,圖2為本申請實施例中預定義的幀結(jié)構(gòu)。
圖2中DA、SA,填充目的和源媒體訪問控制(MAC)地址,為中央處理器和FPGA的MAC地址。FPGA接收到中央處理器發(fā)送的命令以太網(wǎng)幀時,目的MAC地址為FPGA的MAC地址,源MAC地址為中央處理器的MAC地址;FPGA生成并向中央處理器發(fā)送的回報以太網(wǎng)幀時,源MAC地址為FPGA的MAC地址,目的MAC地址為中央處理器的MAC地址。
Type:幀類型,選擇一個與目前已知協(xié)議不同的數(shù)值即可。
Protocol:協(xié)議編號。
Order:幀序號,命令以太網(wǎng)幀的幀序號可以依次遞增實現(xiàn),回報以太網(wǎng)幀與對應命令以太網(wǎng)幀的幀序號一致,以便中央處理器容易判斷命令以太網(wǎng)幀是否丟。
Operate code:操作碼。
Ind:
Bit3-0:1H:寫操作;2H:讀操作;3H:寫操作回送數(shù)據(jù);4H:讀操作回送數(shù)據(jù)。
Addr:地址,可用高位地址區(qū)分芯片,低位地址用于芯片內(nèi)寄存器。
Data:讀寫數(shù)據(jù)。命令寫時為寫數(shù)據(jù),命令讀時填充為0,為回送預留位置。回送時為寄存器讀出值。
Addr和Data的長度可根據(jù)系統(tǒng)具體需要規(guī)定。根據(jù)需要一個幀可包含一個或多個operate code。
End:當前幀操作結(jié)束標志,固定為0。
Pad:填充域,如果幀不夠最小以太網(wǎng)幀長填充0。
FCS:循環(huán)冗余校驗碼(CRC,Cyclic Redundancy Check)校驗碼。
下面結(jié)合附圖,詳細說明本申請通過FPGA實現(xiàn)中央處理器與功能芯片通信的過程。
參見圖3,圖3為本申請實施例實現(xiàn)中央處理器與功能芯片通信的流程示意圖。具體步驟為:
步驟301,F(xiàn)PGA接收到中央處理器發(fā)送的命令以太網(wǎng)幀時,進行緩存。
FPGA接收到中央處理器發(fā)送的命令以太網(wǎng)幀之后,進行緩存之前,進一步執(zhí)行如下處理:
該FPGA對所述命令以太網(wǎng)幀進行CRC校驗,刪除錯誤的命令以太網(wǎng)幀,并按照預定義的幀結(jié)構(gòu)校驗命令以太網(wǎng)幀,即校驗幀中的DA、SA、Type等域,只保留對功能芯片操作的命令以太網(wǎng)幀;其它的幀都丟棄,防止誤操作。
步驟302,當該FPGA緩存一個完整的命令以太網(wǎng)幀時,從緩存中讀出該命令以太網(wǎng)幀中的操作命令,并根據(jù)該操作命令在本地總線上產(chǎn)生與功能芯片相對應的信號和時序進行操作。
由于以太網(wǎng)幀和通過本地總線對芯片操作的速率不匹配,因此,因先緩存以太網(wǎng)幀,在接收完一個完整幀后開始處理一個完整的以太網(wǎng)幀。
本步驟中從緩存中讀出該命令以太網(wǎng)幀中的操作命令,并根據(jù)該操作命令在本地總線上產(chǎn)生與功能芯片相對應的信號和時序進行操作時,如果操作命令是讀,則從功能芯片中讀出數(shù)據(jù);如果操作指令是寫,在功能芯片中寫入數(shù)據(jù)后再讀一次寫入數(shù)據(jù)的寄存器。
步驟303,該FPGA從本地總線讀出數(shù)據(jù)并存儲。
步驟304,該FPGA當完成所述完整的命令以太網(wǎng)幀中的操作命令時,根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀,并發(fā)送給中央處理器。
本步驟中FPGA根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀時,還產(chǎn)生CRC校驗碼,并攜帶在回報以太網(wǎng)幀中,以使中央處理器能夠進行CRC校驗。
該FPGA根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀時,在回報以太網(wǎng)幀中攜帶與對應命令以太網(wǎng)幀的幀序號一致的幀序號,以使中央處理器根據(jù)幀序號判斷命令以太網(wǎng)幀是否丟失。
若接收到攜帶對應命令以太網(wǎng)幀的幀序號的回報以太網(wǎng)幀,則確定該命令以太網(wǎng)幀未丟失;否則,確定該命令以太網(wǎng)幀丟失。
上述實施例的單元可以集成于一體,也可以分離部署;可以合并為一個單元,也可以進一步拆分成多個子單元。
綜上所述,本申請通過使用FPGA轉(zhuǎn)換以太網(wǎng)和本地總線,實現(xiàn)中央處理器對各功能芯片寄存器的操作,能夠擴展中央處理器的管理范圍,降低系統(tǒng)的復雜性,提高中央處理器的工作速率。
基于同樣的發(fā)明構(gòu)思,本申請還提出一種實現(xiàn)中央處理器與功能芯片通信的裝置,該裝置應用于增加與中央處理器通過以太網(wǎng)通信,與功能芯片通過本地總線通信的FPGA上。參見圖4,圖4為本申請應用于上述技術(shù)的裝置結(jié)構(gòu)示意圖。該裝置包括:接收單元401、存儲單元402、處理單元403、生成單元404和發(fā)送單元405;
接收單元401,用于接收命令以太網(wǎng)幀;
存儲單元402,用于當接收單元401接收到中央處理器發(fā)送的命令以太網(wǎng)幀時,進行緩存;將處理單元403從本地總線讀出的數(shù)據(jù)存儲;
處理單元403,用于當存儲單元402緩存一個完整的命令以太網(wǎng)幀時,從緩存中讀出該命令以太網(wǎng)幀中的操作命令,并根據(jù)該操作命令在本地總線上產(chǎn)生與功能芯片相對應的信號和時序進行操作;并從本地總線讀出數(shù)據(jù);
生成單元404,用于當處理單元403完成所述完整的命令以太網(wǎng)幀中的操作命令時,根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀;
發(fā)送單元405,用于將生成單元404生成的回報以太網(wǎng)幀發(fā)送給中央處理器。
較佳地,
處理單元403,具體用于從緩存中讀出該命令以太網(wǎng)幀中的操作命令,并根據(jù)該操作命令在本地總線上產(chǎn)生與功能芯片相對應的信號和時序進行操作時,如果操作命令是讀,則從功能芯片中讀出數(shù)據(jù);如果操作指令是寫,在功能芯片中寫入數(shù)據(jù)后再讀一次寫入數(shù)據(jù)的寄存器。
較佳地,
所述預定義的幀結(jié)構(gòu)包括的字段為:目的和源MAC地址、幀類型、協(xié)議編號、幀序號、操作碼、當前幀操作結(jié)束標志,校驗碼;其中,當幀結(jié)構(gòu)為命令以太網(wǎng)幀對應的幀結(jié)構(gòu)時,操作碼中填充操作命令;當幀結(jié)構(gòu)為回報以太網(wǎng)幀對應的幀結(jié)構(gòu)時,操作碼中填充操作結(jié)果。
較佳地,
處理單元403,進一步用于在接收單元401接收到中央處理器發(fā)送的命令以太網(wǎng)幀之后,存儲單元402進行緩存之前,對所述命令以太網(wǎng)幀進行CRC校驗,刪除錯誤的命令以太網(wǎng)幀,并按照預定義的幀結(jié)構(gòu)校驗命令以太網(wǎng)幀,只保留對功能芯片操作的命令以太網(wǎng)幀;
生成單元404,進一步用于根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀時,產(chǎn)生CRC校驗碼,并攜帶在回報以太網(wǎng)幀中。
較佳地,
生成單元404,進一步用于根據(jù)預定義的幀結(jié)構(gòu),使用存儲的數(shù)據(jù)和操作命令生成回報執(zhí)行結(jié)果的回報以太網(wǎng)幀時,在回報以太網(wǎng)幀中攜帶與對應命令以太網(wǎng)幀的幀序號一致的幀序號,以使中央處理器根據(jù)幀序號判斷命令以太網(wǎng)幀是否丟失。
本申請實施例中采用通用的以太網(wǎng)傳遞信息,通過FPGA轉(zhuǎn)換為localbus總線訪問各功能芯片的寄存器;并把操作結(jié)果通過以太網(wǎng)回送給處理器;采用DA、SA、Type、Protocol等域識別信息過濾無用以太網(wǎng)幀;采用對以太網(wǎng)幀加幀序號判斷是否有丟失的信息幀,使用多個FPGA可以擴展處理器的管理范圍。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。