軟件無(wú)線電的遠(yuǎn)程安全配置系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要 介紹一種軟件無(wú)線電以太網(wǎng)的配置方案。誼設(shè)計(jì)使用Atmel公司的FPSLIC微控制器作為主控單元,韓國(guó)Wiznet公司的W3100A為網(wǎng)絡(luò)協(xié)議解析單元。在SystemDesigner3.0開發(fā)環(huán)境中,完成系統(tǒng)與遠(yuǎn)程控制端的安全通信和遠(yuǎn)程配置文件的加戢,使配置后的系統(tǒng)根據(jù)不同用戶有不同的硬件解密功能,最大程度地保證軟件無(wú)線電的配置安全。
關(guān)鍵詞 軟件無(wú)線電 配置系統(tǒng) FPSIJlC W31OOA
引 言
隨著現(xiàn)代通信技術(shù)、微電子技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,無(wú)線通信技術(shù)開始從數(shù)字化走向軟件化。軟件無(wú)線電的出現(xiàn)掀起了無(wú)線通信技術(shù)的又一次革命,已成為目前通信領(lǐng)域中最重要的研究方法之一。它的基本思想是把模塊化、標(biāo)準(zhǔn)化的硬件功能單元通過(guò)一個(gè)通用的硬件平臺(tái)連接起來(lái)作為無(wú)線通信的基本平臺(tái),把盡可能多的無(wú)線及個(gè)人通信的功能用軟件來(lái)實(shí)現(xiàn)。對(duì)于組成通用硬件平臺(tái)的可編程器件(DSP、FPGA等),可以首先根據(jù)總體要求建立完整的軟件庫(kù),然后實(shí)時(shí)、靈活地配置到硬件平臺(tái)上。
軟件無(wú)線電,特別是軟件無(wú)線電臺(tái)在其遠(yuǎn)程的配置過(guò)程中,要求較高的安全保密措施。傳統(tǒng)的配置文件下載方法在數(shù)據(jù)傳遞的通路上都是明文傳輸,存在著安全的隱患,很容易被竊取和攻擊;因此,一種確保軟件無(wú)線電遠(yuǎn)程配置的安全系統(tǒng)在軟件無(wú)線電系統(tǒng)中就顯得非常重要。軟件無(wú)線電的通用硬件平臺(tái)通常主要由專用ASIC和DSP、FPGA兩種可編程器件組成。FPGA編程特性分為熔絲型、基于EEPROM技術(shù)型和基于SRAM技術(shù)型三種?;赟RAM技術(shù)的FPGA由于容量大,設(shè)計(jì)資源豐富,設(shè)計(jì)較為靈活且可以重復(fù)操作,應(yīng)用相當(dāng)廣泛,但是由于它的結(jié)構(gòu)類似于SRAM,掉電后數(shù)據(jù)會(huì)丟失,因此每次上電后需要對(duì)它們進(jìn)行重新加載。目前,常用的加載方法有通過(guò)PC電纜、外掛ROM和單片機(jī)控制加載等。在軟件無(wú)線電中,通過(guò)PC和外掛單片機(jī)都將增加系統(tǒng)的復(fù)雜程度,也不適合于軟件無(wú)線電臺(tái)的應(yīng)用環(huán)境;因此在軟件無(wú)線電臺(tái)中,常常選擇外掛EEPROM來(lái)保存和更新FPGA的配置程序。由于所開發(fā)的軟件無(wú)線電系統(tǒng)采用xilinx公司的VIRTEX系列FPGA,配合外掛XCl8V02存儲(chǔ)器,因此對(duì)于FPGA的配置只要更新XCl8V02中的存儲(chǔ)文件就可以了。
1 軟件無(wú)線電安全配置系統(tǒng)的設(shè)計(jì)
系統(tǒng)分為管理控制和終端兩大部分。管理控制部分主要由軟件完成對(duì)已經(jīng)生成的配置文件加密、用戶登陸和傳送配置文件三個(gè)主要功能。配置系統(tǒng)的終端在配置文件過(guò)程中,首先判別不同用戶的識(shí)別信息,然后通過(guò)MCU將文件解密,在配置過(guò)程中通過(guò)MCU的接口將解密后的配置文件存儲(chǔ)到EEPROM中,并在全部完成后重新啟動(dòng)系統(tǒng),EEPROM中的配置信息被加載到片內(nèi),系統(tǒng)開始啟動(dòng)新的任務(wù)。對(duì)于不同的用戶,可以根據(jù)自己的需要選擇不同的加密算法,對(duì)自己所需要配置的文件進(jìn)行二次加密,從而更進(jìn)一步保證文件的安全性。這個(gè)加密算法的解密由MCU及其協(xié)處理器(FPGA)來(lái)完成,因此在加載不同用戶的配置信息的時(shí)候,不同的解密算法也會(huì)被加載到系統(tǒng)上,形成一個(gè)具有硬件解密功能的軟件無(wú)線電臺(tái)配置系統(tǒng)平臺(tái)。
軟件無(wú)線電臺(tái)安全配置系統(tǒng)終端部分的硬件結(jié)構(gòu)如圖1所示。
終端部分主要由兩部分組成:W3100部分是以網(wǎng)絡(luò)協(xié)議芯片W31OOA為核心,完成以太網(wǎng)數(shù)據(jù)包的解析;FPSLIC部分是以Atmel公司FPSLIC器件AT94K系列微處理器為核心,完成全部控制功能和配置文件的解密。
1.1 W31DOA系統(tǒng)
W3100A系統(tǒng)主要完成對(duì)遠(yuǎn)程控制信息和傳送數(shù)據(jù)TCP/IP包的解析,其結(jié)構(gòu)示意圖如圖2所示。這款芯片的內(nèi)部結(jié)構(gòu)分為4部分:與處理器接口部分(MCU Interface)、硬件網(wǎng)絡(luò)協(xié)議核、存儲(chǔ)器(DPRAM)和與MII接口部分。其中MII接口接上一個(gè)物理層芯片,系統(tǒng)中采用RTL8201BL。這款芯片能從硬件上實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議的關(guān)鍵是它的協(xié)議引擎。在它的內(nèi)部結(jié)構(gòu)中有幾個(gè)與網(wǎng)絡(luò)協(xié)議相關(guān)的寄存器:命令寄存器C_CR,它的各位分別表示系統(tǒng)初始化、通道Socket初始化、建立連接、偵聽、接收、發(fā)送、關(guān)閉等命令,將命令寄存器C-CR置位就可以完成相應(yīng)的命令;C-DIR為目的IP地址寄存器;C-DPR為目的端口地址寄存器;C-TOSR為服務(wù)類型寄存器,對(duì)應(yīng)于IP報(bào)頭的TOS字段;C-IPR為IP協(xié)議寄存器,對(duì)應(yīng)于IP報(bào)頭的協(xié)議字段;C-SPR為源端口寄存器;C-SSRSocket為狀態(tài)寄存器;GAR為網(wǎng)關(guān)地址寄存器;SMR為子網(wǎng)屏蔽寄存器;SHAR為源硬件地址寄存器;SItR為源IP地址寄存器等等。
與主控部分FPSLIC器件連接選擇I2C接口,系統(tǒng)主機(jī)部分發(fā)送的配置信息在W3100A部分解析TCP/IP協(xié)議的數(shù)據(jù)幀格式,然后發(fā)送給MCU。此時(shí)MCU接收到的數(shù)據(jù)是經(jīng)過(guò)加密的配置信息。
1.2 FPSLIC系統(tǒng)
FPSIC系統(tǒng)接收來(lái)自W3100A系統(tǒng)解析后的數(shù)據(jù),通過(guò)內(nèi)部MCU將數(shù)據(jù)解密并將解密后的數(shù)據(jù)存放到存儲(chǔ)器。當(dāng)全部接收完成后,系統(tǒng)自動(dòng)重新啟動(dòng),新的配置信息將被加載,系統(tǒng)開始新的任務(wù)。
這個(gè)過(guò)程如圖3所示。在這個(gè)過(guò)程中,除了相同的文件接收、系統(tǒng)解密、文件發(fā)送等相同的配置信息外,還可以根據(jù)不同的用戶配置不同的軟件無(wú)線電解密信息。真正軟件無(wú)線電的配置信息需要等待系統(tǒng)終端配置完成并重新啟動(dòng)后,從主機(jī)端接收加密的配置信息并解密得到。這個(gè)過(guò)程如圖4所示。
FPSIC系統(tǒng)采用Atrrlel公司的AT94K40為控制器,包含1個(gè)AVR單片機(jī)內(nèi)核和l片40K門數(shù)的FPGA以及1個(gè)32K動(dòng)杰分布的靜杰存儲(chǔ)器(SRAM)。
嵌入式AVR內(nèi)核在單個(gè)時(shí)鐘周期內(nèi)執(zhí)行指令。它的吞吐量接近l MIPS/MHz,而AVR的實(shí)際吞吐量可以使系統(tǒng)結(jié)構(gòu)隨著處理速度而優(yōu)化電源功耗。30 MIPS的AVR內(nèi)核給予增強(qiáng)型RISC結(jié)構(gòu),是一個(gè)集合了32個(gè)工作寄存器的指令組合系統(tǒng)。這些工作寄存器直接連接到算術(shù)邏輯單元,使得在單個(gè)周期內(nèi)執(zhí)行單條指令時(shí),能響應(yīng)2個(gè)獨(dú)立的寄存器。30 MIPS的吞吐量能使FPSLIC電路適應(yīng)任何高性能的應(yīng)用場(chǎng)所。微處理器中固有的硬件乘法器支持復(fù)雜的DSP功能,并支持微處理器和FPGA及DSP的邏輯電路軟件和硬件算法。
AVR單片機(jī)內(nèi)核的數(shù)據(jù)總線直接和FPGA的總線資源相聯(lián)結(jié),可以將FPGA用作AVR的I/O設(shè)備。用戶可以利用FPGA實(shí)現(xiàn)各種外設(shè)或當(dāng)作協(xié)處理器。FPGA具有16條編碼地址線,可以為AVR提供最多16個(gè)中斷信號(hào)。在工作狀態(tài)中,AVR可以對(duì)FPGA重新編程,實(shí)現(xiàn)系統(tǒng)動(dòng)態(tài)配置。系統(tǒng)中用FPGA的中斷來(lái)判斷一個(gè)數(shù)據(jù)是否解密完成,完成后,繼續(xù)下一個(gè)數(shù)據(jù)。AVR向FPGA發(fā)送數(shù)據(jù)的程序如下所示:
void senddata_to_fpga(void)( //發(fā)送數(shù)據(jù)到FPGA
FPGA_INT_FLAG=O;
delay(500):
FI1SCR=Ox00; //配置FPGAI/O選擇線
FISUA=0x00t
FISCR=0X80; //使能FPGA_AVR中斷
FIUA=OX11; //選擇FPGA中斷0
}
#pragma interrupt_handler FPGA_intO_isr:iv_FPGA_lNT0
void FPGA_int0_isr(void){
PORTD'=0X04;
FPGA_lNT_FLAG=1; //FPGA發(fā)送完成后,請(qǐng)求終端
//接收下一個(gè)數(shù)據(jù)
}
crc=crc<<1;
}
信息的加載過(guò)程中,數(shù)據(jù)幀的結(jié)構(gòu)及傳輸協(xié)議如下:
每個(gè)數(shù)據(jù)幀都由開始位、包號(hào)碼、包號(hào)校驗(yàn)碼、數(shù)據(jù)和數(shù)據(jù)校驗(yàn)位五部分組成。配置信息過(guò)程中,如果出現(xiàn)網(wǎng)絡(luò)中斷或者人為破壞,使得配置信息不能夠順利加載,系統(tǒng)將根據(jù)配置信息加載信息流的傳輸協(xié)議返回錯(cuò)誤信息,并中斷傳輸,保持以前用戶的信息不變。因此,當(dāng)一個(gè)用戶的登陸或加載失敗時(shí),系統(tǒng)并不受影響,而是保持原來(lái)的狀態(tài)繼續(xù)運(yùn)行。
3 配置信息的生成和加載
不同的用戶可以在自己的加密算法開發(fā)完成后,用SystemDesigner3.0所包含的下載軟件CPS(Configurator Programming System)將文件下載到系統(tǒng)進(jìn)行調(diào)試。調(diào)試成功后,再用CPS將文件從器件中讀出,生成.bst文件。
讀取文件時(shí),CPS的設(shè)置如圖6所示。
系統(tǒng)在主機(jī)端提供了二進(jìn)制文件加密生成軟件,可以將這個(gè).bst文件加密并轉(zhuǎn)化成.hex的二進(jìn)制文件,用來(lái)配置終端系統(tǒng)。這個(gè)加密算法是系統(tǒng)本身提供的,對(duì)于任何用戶都是相同的,目的在于保護(hù)終端配置信息在傳輸通道上的安全。二進(jìn)制加密配置文件生成的過(guò)程如圖7所示。當(dāng)用戶登錄成功后,系統(tǒng)會(huì)根據(jù)用戶信息自動(dòng)配置用戶預(yù)先設(shè)定好的配置信息。當(dāng)返回成功配置信息后,用戶就可以通過(guò)終端解密來(lái)實(shí)現(xiàn)軟件無(wú)線電的配置。
結(jié)語(yǔ)
通過(guò)驗(yàn)證,本系統(tǒng)能夠很好地完成遠(yuǎn)程軟件無(wú)線電的安全配置,達(dá)到了預(yù)期的目的。W3100A系統(tǒng)利用簡(jiǎn)單的設(shè)計(jì)完成了配置系統(tǒng)與以太網(wǎng)的結(jié)合,適用于基于網(wǎng)絡(luò)的嵌入式系統(tǒng)的開發(fā)。應(yīng)用FPSLIC微控制器實(shí)現(xiàn)系統(tǒng)設(shè)計(jì),具有體積小、功耗低等特點(diǎn)。在此平臺(tái)上開發(fā)軟件無(wú)線電的安全配置系統(tǒng),具有很大的優(yōu)越性。這種設(shè)計(jì)可以推廣到更多要求高安全性的在線可編程系統(tǒng)應(yīng)用中。