基于fpga的雙網(wǎng)切換裝置及其雙網(wǎng)切換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于FPGA的雙網(wǎng)切換裝置及其雙網(wǎng)切換方法。
【背景技術(shù)】
[0002]船舶機(jī)艙監(jiān)測(cè)報(bào)警系統(tǒng)對(duì)數(shù)據(jù)傳輸?shù)目煽啃院蛯?shí)時(shí)性要求很高,因此如何解決數(shù)據(jù)的可靠性和實(shí)時(shí)性是通信過(guò)程中非常重要的問(wèn)題。目前解決數(shù)據(jù)傳輸可靠性的問(wèn)題主要采用雙網(wǎng)冗余和雙網(wǎng)切換。
[0003]雙網(wǎng)冗余通信模式中,應(yīng)用層對(duì)接收到的數(shù)據(jù)一般有兩種處理方式,第一種為將兩個(gè)網(wǎng)絡(luò)接收的數(shù)據(jù)進(jìn)行比較,數(shù)據(jù)一致即認(rèn)為數(shù)據(jù)傳輸正確,這種處理方式需要同時(shí)收到兩個(gè)網(wǎng)絡(luò)的數(shù)據(jù),并且當(dāng)一個(gè)網(wǎng)絡(luò)出現(xiàn)故障時(shí),就需要等待,判斷網(wǎng)絡(luò)是否真的出現(xiàn)故障,所以這種處理方式不但會(huì)增加CPU的數(shù)據(jù)處理壓力,而且一旦進(jìn)行等待之后就不能保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。雙網(wǎng)冗余通信中第二種處理方式為只處理一個(gè)網(wǎng)絡(luò)所接收的數(shù)據(jù),如果判斷該網(wǎng)絡(luò)出現(xiàn)故障時(shí),轉(zhuǎn)換為處理另外一個(gè)網(wǎng)絡(luò)數(shù)據(jù)。這種處理方式在判斷網(wǎng)絡(luò)故障時(shí),需要進(jìn)行等待,所以這種處理方式也不能保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
[0004]雙網(wǎng)切換通信模式中,現(xiàn)在普遍采用的切換方式是應(yīng)用層判斷網(wǎng)絡(luò)是否出現(xiàn)故障,目前比較實(shí)時(shí)性的切換速度大概20毫秒左右,這對(duì)于需要高實(shí)時(shí)性的系統(tǒng)來(lái)說(shuō)是不夠的。
[0005]如圖1所示,以太網(wǎng)OSI模型是一個(gè)開(kāi)放性的通行系統(tǒng)互連參考模型。OSI的七層從上到下分別是應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。其中,數(shù)據(jù)鏈路層(Datal ink Layer )也稱(chēng)為MAC層,它是OSI參考模型的第二層,用于控制網(wǎng)絡(luò)層與物理層之間的通信,其主要功能是如何在不可靠的物理線路上進(jìn)行數(shù)據(jù)的可靠傳遞。物理層(Physical Layer)也稱(chēng)為PHY層,是OSI參考模型的最底層。物理層包括物理連網(wǎng)媒介,如電纜連線連接器。物理層的協(xié)議產(chǎn)生并檢測(cè)電壓以便發(fā)送和接收攜帶數(shù)據(jù)的信號(hào)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種基于FPGA的雙網(wǎng)切換裝置及其雙網(wǎng)切換方法,其提高了數(shù)據(jù)通信的實(shí)時(shí)性。
[0007]為解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是:
一種基于FPGA的雙網(wǎng)切換裝置,其特點(diǎn)在于,包括一塊FPGA芯片、第一 PHY芯片、第二PHY芯片、第一通信接口模塊和第二通信接口模塊;該FPGA芯片包括MicroBlaze軟核處理器、MAC控制器和二選一控制器;MicroBlaze軟核處理器與MAC控制器雙向電連接,MAC控制器與二選一控制器雙向電連接,二選一控制器分別與所述的第一 PHY芯片和第二 PHY芯片雙向電連接,該二選一控制器用于選擇性地將MAC控制器連接至第一 PHY芯片和第二 PHY芯片中的一者,該第一 PHY芯片和第二 PHY芯片一一對(duì)應(yīng)地分別與第一通信接口模塊和第二通信接口模塊雙向電連接。
[0008]本發(fā)明還提供了上述的基于FPGA的雙網(wǎng)切換裝置進(jìn)行雙網(wǎng)切換的方法,其特點(diǎn)在于,包括:
a、初始化步驟:
a K FPGA芯片上電后,MicroBlaze軟核處理器對(duì)MAC控制器進(jìn)行初始化;a2、MAC控制器在初始化之后,通過(guò)所述的二選一控制器分別對(duì)第一 PHY芯片和第二PHY芯片初始化;
b、建立連接的步驟:
bl、二選一控制器將MAC控制器輸出的連接測(cè)試信號(hào)傳送給第一 PHY芯片,并在將MAC控制器輸出的連接測(cè)試信號(hào)傳送給第一 PHY芯片起經(jīng)過(guò)預(yù)定的時(shí)間Tl后,判斷第一 PHY芯片與外部通信網(wǎng)絡(luò)的連接狀態(tài)是否正常,若連接狀態(tài)正常,則保持MAC控制器與第一 PHY芯片的連接;
b2、若第一 PHY芯片的連接狀態(tài)不正常,則二選一控制器將MAC控制器輸出的連接測(cè)試信號(hào)傳送給第二 PHY芯片,并在將MAC控制器輸出的連接測(cè)試信號(hào)傳送給第二 PHY芯片起經(jīng)過(guò)預(yù)定的時(shí)間Tl后,判斷第二 PHY芯片與外部通信網(wǎng)絡(luò)的連接狀態(tài)是否正常,若連接狀態(tài)正常,則保持MAC控制器與第二 PHY芯片的連接;
b3、若第二 PHY芯片的連接狀態(tài)不正常,則二選一控制器將MAC控制器輸出的連接測(cè)試信號(hào)傳送給第一 PHY芯片,并重復(fù)步驟bl和步驟b2,直至第一 PHY芯片和第二 PHY芯片中的一者與外部通信網(wǎng)絡(luò)的連接狀態(tài)處于正常。
[0009]傳統(tǒng)的雙網(wǎng)冗余通信和雙網(wǎng)切換通信方式均在應(yīng)用層通過(guò)軟件實(shí)現(xiàn),而本方法則是通過(guò)VHDL硬件描述語(yǔ)言在FPGA芯片中構(gòu)建MicroBlaze軟核處理器、MAC控制器和二選一控制器,讓FPGA芯片中的二選一控制器根據(jù)兩塊PHY芯片的連接狀態(tài)進(jìn)行切換控制,達(dá)到了用硬件實(shí)現(xiàn)雙網(wǎng)切換的目的,整個(gè)切換時(shí)間小于10毫秒,而現(xiàn)有技術(shù)采用軟件進(jìn)行切換通信的切換時(shí)間需要20毫秒,因此本發(fā)明大大提高了通信的實(shí)時(shí)性。
【附圖說(shuō)明】
[0010]圖1是OSI模型的原理示意圖。
[0011]圖2是根據(jù)本發(fā)明一實(shí)施例的基于FPGA的雙網(wǎng)切換裝置的原理框圖。
[0012]圖3是根據(jù)本發(fā)明一實(shí)施例的基于FPGA的雙網(wǎng)切換方法的流程示意圖。
【具體實(shí)施方式】
[0013]下面結(jié)合附圖對(duì)本發(fā)明做出進(jìn)一步說(shuō)明。
[0014]請(qǐng)參考圖2。根據(jù)本發(fā)明一實(shí)施例的一種基于FPGA的雙網(wǎng)切換裝置,包括一塊FPGA芯片1、第一 PHY芯片21、第二 PHY芯片22、第一通信接口模塊31和第二通信接口模塊32。
[0015]FPGA芯片包括MicroBlaze軟核處理器11、MAC控制器12和二選一控制器13。MicroBlaze軟核處理器11與MAC控制器12雙向電連接,MAC控制器12與二選一控制器13雙向電連接,二選一控制器13分別與第一 PHY芯片21和第二 PHY芯片22雙向電連接,該二選一控制器用于選擇性地將MAC控制器12連接至第一 PHY芯片21和第二 PHY芯片22中的一者,第一 PHY芯片21和第二 PHY芯片22 —一對(duì)應(yīng)地分別與第一通信接口模塊31和第二通信接口模塊32雙向電連接。
[0016]MicroBlaze軟核處理器11具有OSI七層模型中的應(yīng)用層、表示層、會(huì)話層、傳輸層和網(wǎng)絡(luò)層的功能,MAC控制器12具有數(shù)據(jù)鏈路層的功能。二選一控制器13用于選擇性地將MAC控制器的輸出信號(hào)發(fā)送給第一 PHY芯片和第二 PHY芯片中的一者,以及選擇性地將第一 PHY芯片和第二 PHY芯片中一者的輸出信號(hào)發(fā)送給MAC控制器。在建立MAC控制器與PHY芯片的連接時(shí),二選一控制器13將MAC控制器12輸出的連接測(cè)試信號(hào)先傳送給第一 PHY芯片21,并在將MAC控制器12輸出的連接測(cè)試信號(hào)傳送給第一 PHY芯片21起經(jīng)過(guò)預(yù)定的時(shí)間Tl后,判斷第一 PHY芯片21與外部通信網(wǎng)絡(luò)的連接狀態(tài)是否正常,若連接狀態(tài)正常,則保持MAC控制器12與第一 PHY芯片21的連接,若連接狀態(tài)不正常,則再將MAC控制器12輸出的連接測(cè)試信號(hào)傳送給第二 PHY芯片22,并在將MAC控制器12輸出的連接測(cè)試信號(hào)傳送給第二 PHY芯片22起經(jīng)過(guò)預(yù)定的時(shí)間Tl后,判斷第二 PHY芯片22與外部通信網(wǎng)絡(luò)的連接狀態(tài)是否正常,若連接狀態(tài)正常,則保持MAC控制器12與第二 PHY芯片22的連接,若連接狀態(tài)不正常,則在第一 PHY21芯片與第二 PHY芯片22之間反復(fù)切換,直至第一PHY芯片和第二 PHY芯片中的一者與與外部通信網(wǎng)絡(luò)的連接狀態(tài)處于正常。設(shè)置預(yù)定時(shí)間Tl是為了保證線上數(shù)據(jù)的穩(wěn)定性,在一具體的實(shí)施例中,預(yù)定時(shí)間Tl為330?500微秒。
[0017]在一種實(shí)施方式中,二選一控制器13可以通過(guò)讀取PHY芯片的寄存器的狀態(tài),來(lái)判斷PHY芯片通過(guò)通信接口模塊與外部通信網(wǎng)絡(luò)的連接狀態(tài);在另一種實(shí)施方式中,第一PHY芯片21和第二 PHY芯片22均具有一反饋PHY芯片通過(guò)通信接口模塊與外部通信網(wǎng)絡(luò)的連接狀態(tài)是否正常的LINK管腳,該第一 PHY芯片21和第二 PHY芯片22的LINK管腳均與二選一控制器13連接。每一 PHY芯片在接收到二選一控制器傳送的上述連接測(cè)試信號(hào)后,通過(guò)LINK管腳輸出兩種不同的電平狀態(tài)表示PHY芯片與外部通信網(wǎng)絡(luò)的連接狀態(tài)正常與否,例如,LINK管腳電平為I表明與外部通信網(wǎng)絡(luò)的連接狀態(tài)正常,為O表明斷開(kāi);二選一控制器很容易根據(jù)該LINK管腳的電平狀態(tài)判斷出PHY芯片與外部通信網(wǎng)絡(luò)的連接狀態(tài)是否正常。
[0018]本發(fā)明的基于FPGA的雙網(wǎng)切換裝置優(yōu)選用于以太網(wǎng),此時(shí),第一通信接口模塊31和第二通信接口模