史 磊
(陜西機(jī)電職業(yè)技術(shù)學(xué)院 電子與信息學(xué)院,陜西 寶雞 721001)
無(wú)線通信是指多個(gè)節(jié)點(diǎn)間不通過(guò)導(dǎo)體傳播而實(shí)現(xiàn)遠(yuǎn)距離傳輸通訊的技術(shù),與有線通信相比,無(wú)線通信方式具有結(jié)構(gòu)簡(jiǎn)單、傳輸距離遠(yuǎn)等優(yōu)點(diǎn),不會(huì)受到光纜、導(dǎo)線等硬件設(shè)備的約束,能夠在很大程度節(jié)約硬件成本,完成有線通信設(shè)備無(wú)法完成的數(shù)據(jù)傳輸任務(wù),因此網(wǎng)絡(luò)通信信息的獲取和傳輸逐步從有線過(guò)渡到無(wú)線,并應(yīng)用到諸多工作領(lǐng)域中[1]。一般來(lái)講,無(wú)線通信主要利用無(wú)線電波作為數(shù)據(jù)傳輸?shù)拿浇?,將發(fā)送端與接收端設(shè)備的數(shù)據(jù)信息調(diào)制到相同的載波頻率上,從而實(shí)現(xiàn)數(shù)據(jù)的定向傳輸。
然而從當(dāng)前無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸?shù)膽?yīng)用情況來(lái)看,受到通信傳輸環(huán)境的影響,會(huì)出現(xiàn)傳輸中斷、傳輸數(shù)據(jù)丟失等現(xiàn)象,隨著使用用戶數(shù)量的增加,無(wú)線通信服務(wù)也容易出現(xiàn)傳輸擁塞等問(wèn)題,不僅會(huì)影響無(wú)線通信的運(yùn)行效率,還有可能造成信息泄露等嚴(yán)重后果。為了最大程度地保證無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸?shù)陌踩€(wěn)定性以及時(shí)效性,有必要設(shè)計(jì)并應(yīng)用相應(yīng)的數(shù)據(jù)傳輸控制系統(tǒng)。
現(xiàn)有的數(shù)據(jù)傳輸控制系統(tǒng)存在明顯的控制功能不佳、運(yùn)行性能差的問(wèn)題,主要體現(xiàn)在數(shù)據(jù)傳輸丟失量大、擁塞概率高、吞吐量差等方面,為了解決上述傳統(tǒng)控制系統(tǒng)存在的問(wèn)題,引入STM32嵌入式的概念。將STM32以嵌入式的方式應(yīng)用到無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)中,改裝傳輸數(shù)據(jù)處理器,加設(shè)時(shí)鐘發(fā)生器,提升無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制效果。通過(guò)系統(tǒng)電路的連接實(shí)現(xiàn)數(shù)據(jù)傳輸控制硬件系統(tǒng)的設(shè)計(jì),采集并處理無(wú)線通信數(shù)據(jù)資源,設(shè)置遠(yuǎn)程數(shù)據(jù)傳輸控制協(xié)議并通過(guò)信道特征分配遠(yuǎn)程傳輸數(shù)據(jù)資源,提高系統(tǒng)的傳輸控制功能與運(yùn)行性能。
無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)以無(wú)線信息遠(yuǎn)程控制為主要手段,通過(guò)對(duì)傳輸信道、傳輸數(shù)據(jù)等主體的控制,完成對(duì)數(shù)據(jù)傳輸流量以及傳輸速度的控制。此次無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)分別從硬件、軟件功能程序兩個(gè)方面進(jìn)行分析優(yōu)化設(shè)計(jì),其中硬件部分的作用是為數(shù)據(jù)庫(kù)以及軟件功能的運(yùn)行提供支持,硬件系統(tǒng)的基本框架如圖1所示。
圖1 無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制硬件系統(tǒng)框圖
在傳統(tǒng)傳輸控制硬件系統(tǒng)的基礎(chǔ)上,利用STM32對(duì)控制器以及微處理器等硬件設(shè)備進(jìn)行優(yōu)化,同時(shí)對(duì)部分硬件元件和連接電路進(jìn)行改裝和調(diào)整,提高硬件設(shè)備的運(yùn)行效率。
STM32嵌入式芯片基于Cortex-m3核心,結(jié)合了多種工業(yè)標(biāo)準(zhǔn)的高性能接口,并與STM32系列產(chǎn)品的管腳和軟件兼容,使得STM32適配于多種應(yīng)用程序[2]。為滿足系統(tǒng)的互聯(lián)功能和實(shí)時(shí)性能,選擇STM32107型號(hào)的芯片進(jìn)行傳輸控制器優(yōu)化。圖2表示的是STM32107嵌入式芯片的內(nèi)部結(jié)構(gòu)。
圖2 STM32嵌入式芯片結(jié)構(gòu)圖
圖2所示的STM32控制芯片,包括256KB的Flash存儲(chǔ)器,6個(gè)USART接口、3個(gè)16位DAC轉(zhuǎn)換器、12個(gè)DMA通道、以太網(wǎng)IEEE1588接口等。STM32嵌入式芯片相對(duì)于傳統(tǒng)的嵌入式控制系統(tǒng),采用IEEE1588協(xié)議,內(nèi)置雙CAN總線具有良好的網(wǎng)絡(luò)連接能力[3]。STM32芯片采用了嵌入式的方式連接到傳統(tǒng)控制器上,實(shí)現(xiàn)一種經(jīng)濟(jì)的網(wǎng)絡(luò)互聯(lián)。在硬件方面,它支持IEEE1588精確計(jì)時(shí)協(xié)議,能夠在網(wǎng)絡(luò)上進(jìn)行準(zhǔn)確的時(shí)鐘同步,為更多的嵌入式應(yīng)用程序預(yù)留CPU空間。STM32中采用的雙CAN20B模塊是一種更為便捷的CAN橋接方式。
優(yōu)化設(shè)計(jì)的無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)采用ARM7型信號(hào)處理裝置進(jìn)行了優(yōu)化設(shè)計(jì),包括核心、總線、外部接口、調(diào)試等部分。內(nèi)核是執(zhí)行運(yùn)算、內(nèi)存存取、周邊界面控制、中斷控制等功能的核心。ARM7處理器采用了一個(gè)簡(jiǎn)單的二極管處理命令,一個(gè)命令被內(nèi)核同時(shí)解碼,而另一個(gè)命令又被讀取到了內(nèi)存中,所以程序計(jì)數(shù)器總是指向下一個(gè)命令,而非目前被執(zhí)行的命令。ARM7核心包含38個(gè)寄存器,32個(gè)通用寄存器,6個(gè)寄存器不能用于使用者和程序[4]。目前可使用的暫存器組合需要通過(guò)處理器狀態(tài)、運(yùn)行、閑置和運(yùn)行方式來(lái)確定。
硬件系統(tǒng)中的所有元件均為時(shí)序電路,需要一個(gè)時(shí)鐘信號(hào)才能工作,為此在硬件設(shè)備中內(nèi)置一個(gè)型號(hào)為L(zhǎng)PC2210晶體振蕩器,LPC2210晶體振蕩器的工作模式可以分為從屬模式和振蕩模式兩種[5],從屬模式下的工作原理如圖3所示。
圖3 時(shí)鐘發(fā)生器工作原理圖
輸入時(shí)鐘信號(hào)被耦合到一個(gè)大于100 pF的電容器Cc,該電容器的振幅小于200米Vrms,X2管腳未被連接。若選取從屬模式,則將振蕩器輸出Fosc信號(hào)的頻率限定為1至50 MHz[6]。在振蕩模式下,LPC2210芯片內(nèi)部有一個(gè)反饋電阻,因此,只要將 Xtal與Cx1,Cx2的外部相連,即可實(shí)現(xiàn)基本的振蕩[7]。
1.4.1 電源電路
無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)的控制器是在通訊網(wǎng)絡(luò)中正常工作的,其穩(wěn)定、可靠的電力供應(yīng)是確保其可靠工作的先決條件[8]。該系統(tǒng)的供電電路采用線性穩(wěn)壓器,線性穩(wěn)壓電源具有響應(yīng)迅速、噪音低、輸出波動(dòng)小等特點(diǎn)[9]??刂破鞯?IC晶片均為5 V及3.3 V。控制器及物理層 PHY晶片的工作電源為3.3 V DC,而儲(chǔ)存晶片及 I/O控制電路則需5 V供電。由于控制電路由5 V DC供電,所以由 LM1117-3.3 V的穩(wěn)壓芯片構(gòu)成,LM1117具有過(guò)熱保護(hù)、限制過(guò)流的作用,保障電壓穩(wěn)定度達(dá)到了電路工作的需要。
1.4.2 通信接口電路
優(yōu)化設(shè)計(jì)的數(shù)據(jù)傳輸控制系統(tǒng)需保證最基礎(chǔ)的串口通訊,只需 RXD, TXD, GND三種通信接口電路即可實(shí)現(xiàn)。這種連接只需要三條線路,也就是模擬了 MCU的串行通訊方式,需要用SP232實(shí)現(xiàn)控制器與電腦之間的電平變換。
1.4.3 液晶顯示電路
為直觀地顯示無(wú)線數(shù)據(jù)采集終端的采集結(jié)果,同時(shí)也便于系統(tǒng)的調(diào)試,系統(tǒng)使用128*64的液晶顯示設(shè)備,并采用ST7920驅(qū)動(dòng)128x64 LCD模組,既能實(shí)現(xiàn)32路 com的輸入,又能實(shí)現(xiàn)64路 Sg的輸出[10]。該系統(tǒng)采用ST7921驅(qū)動(dòng)256×32的點(diǎn)陣 LCD,適用于漢字及圖形的顯示,內(nèi)置2 M中文字型 ROM[11]。另外,系統(tǒng)還具有4位并行功能,以滿足不同的微處理器和 MCU的接口要求。將顯示器設(shè)備與系統(tǒng)其他元件按圖4方式進(jìn)行連接。
圖4 液晶顯示連接電路圖
LCD顯示器采用3線串聯(lián)模式, PSB管腳固定在地面上,使 I/O占用較小,程序編制簡(jiǎn)便。同時(shí),通過(guò)STM32的 IO來(lái)實(shí)現(xiàn)對(duì)背光的控制,延長(zhǎng) LCD屏幕的使用壽命。
除了上述硬件設(shè)備和電路外,數(shù)據(jù)采集器、通信網(wǎng)絡(luò)等設(shè)備均沿用傳統(tǒng)無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制硬件系統(tǒng)中的設(shè)備。
啟動(dòng)硬件系統(tǒng)中的數(shù)據(jù)采集器,按照?qǐng)D5表示流程進(jìn)行初始無(wú)線通信數(shù)據(jù)的采集。
圖5 無(wú)線通信數(shù)據(jù)采集流程圖
在采集動(dòng)態(tài)無(wú)線通信數(shù)據(jù)過(guò)程中,通過(guò)SPI中斷服務(wù)和中斷服務(wù)程序來(lái)實(shí)現(xiàn),STM32控制器通過(guò)SPI中斷來(lái)接收初始數(shù)據(jù),SPI中斷服務(wù)中,將所收到的數(shù)據(jù)存儲(chǔ)到對(duì)應(yīng)的全局陣列變量spi_data中,從而保證當(dāng)前采集數(shù)據(jù)的實(shí)時(shí)性[12]。為了滿足無(wú)線傳輸通信信道的傳輸規(guī)則,需要對(duì)初始采集的數(shù)據(jù)進(jìn)行處理,規(guī)范數(shù)據(jù)的報(bào)文格式。首先利用公式(1)對(duì)數(shù)據(jù)進(jìn)行無(wú)量綱規(guī)范化處理。
(1)
式中,x為初始采集的無(wú)線通信遠(yuǎn)程傳輸數(shù)據(jù),xmax和xmin為數(shù)據(jù)的最大值和最小值。在此基礎(chǔ)上將數(shù)據(jù)轉(zhuǎn)換為ACK報(bào)文格式,ACK報(bào)文包含了一個(gè)消息的回復(fù)和一個(gè)特定的序列號(hào)的回復(fù)[13]。當(dāng)接收端收到消息時(shí),報(bào)文的序列被存儲(chǔ)在響應(yīng)包清單中,并且基于該清單來(lái)計(jì)算下一次傳送的 ACK域的值。若傳送代理傳送1、2、3、4、5五個(gè)消息,當(dāng)報(bào)文到達(dá)接收端傳送代理的次序是1、2、4、5,則接收端的 acklist中存儲(chǔ)[1、2、4、5],則 ACK是3,表明所有小于3的消息都被接收。在下一次 ACK報(bào)文被傳送時(shí), ACK字段置為3,t字段為001,并且將sn=4、sn=5的消息確認(rèn)應(yīng)答置于 ACK的負(fù)載中,通知發(fā)送端,序號(hào)小于3的消息已被接收,而序號(hào)為4和5的消息也已接收,發(fā)送者僅需重新發(fā)送3號(hào)消息[14]。采用該格式和響應(yīng)機(jī)制,可以極大地降低重復(fù)發(fā)送的消息,間接地提高了數(shù)據(jù)傳輸?shù)男省?/p>
無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸選擇TCP/IP協(xié)議作為控制約束標(biāo)準(zhǔn),傳輸控制協(xié)議的工作流程如圖6所示。
圖6 數(shù)據(jù)傳輸控制協(xié)議工作流程圖
若傳輸信道處于靜態(tài)狀態(tài),則無(wú)實(shí)體層連接。在調(diào)制解調(diào)器的載頻信號(hào)被偵測(cè)并且物理層連接被建立之后, LCP就會(huì)開(kāi)始進(jìn)行一些選擇。談判完畢,就進(jìn)入鑒定階段。如果通信雙方識(shí)別成功,就可以進(jìn)行網(wǎng)絡(luò)訪問(wèn)。NCP設(shè)定網(wǎng)路層,指定 IP位址,進(jìn)入開(kāi)放狀態(tài),進(jìn)行資料通訊。在完成了數(shù)據(jù)傳送之后,進(jìn)入了終止?fàn)顟B(tài)。當(dāng)載波停止時(shí),恢復(fù)到靜止?fàn)顟B(tài)。在實(shí)際運(yùn)行過(guò)程中,IP協(xié)議用來(lái)約束數(shù)據(jù)包的接收與發(fā)送、數(shù)據(jù)傳輸信道的搜索、路由以及差錯(cuò)處理等[15-17]。IP協(xié)議的作用就是把數(shù)據(jù)包傳遞給目標(biāo)主機(jī),因?yàn)樵谀承┲虚g節(jié)點(diǎn)上都沒(méi)有驗(yàn)證的程序,因此無(wú)法保證數(shù)據(jù)包的正確性。在傳送過(guò)程中,若出現(xiàn)了由路由器緩沖溢出引起的包丟失等差錯(cuò),協(xié)議會(huì)依據(jù)自己的糾錯(cuò)算法,將此資料包刪除,并以響應(yīng)消息報(bào)文的方式傳送至源主機(jī),只有高層傳送控制協(xié)議才能保證其可靠性。
在無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制協(xié)議的約束下,假設(shè)無(wú)線通信環(huán)境的初始通道是隨機(jī)生成的,在此期間,該節(jié)點(diǎn)不再變換通道,而是一直在這個(gè)通道內(nèi)。該節(jié)點(diǎn)利用偽隨機(jī)序列生成的種子來(lái)計(jì)算下一時(shí)段的頻道,信道是頻道的總數(shù)。利用偽隨機(jī)序列生成的種子,下一個(gè)時(shí)間周期內(nèi)使用的信道可以表示為:
nChannel=(βChannel+seed)mod(NChannels)
(2)
式中,nChannel和NChannels分別為節(jié)點(diǎn)將要切換的新信道編號(hào)和信道總數(shù)量,βChannel為節(jié)點(diǎn)初始信道,seed為偽隨機(jī)序列產(chǎn)生的種子。以初始采集并處理完成的數(shù)據(jù)作為分配目標(biāo),則其分配結(jié)果可以表示為:
(3)
根據(jù)無(wú)線通訊的遠(yuǎn)程數(shù)據(jù)傳送流程,客戶機(jī)_ a和客戶機(jī)_ b被定義為發(fā)送方,agent_A和agent_B作為接收方,首先在發(fā)送方和接收方之間建立 TCP連接,當(dāng)接到客戶端_ a的 Connection請(qǐng)求時(shí),agent_A將代理響應(yīng)于client_a,并將client_a傳送到發(fā)送隊(duì)列中,同時(shí)向agent_B詢問(wèn)client_b的狀況,agent_B先查詢接收會(huì)話信息表 RIB,然后主動(dòng)地與client_b建立聯(lián)系,并通過(guò) RESPONSE消息反饋給agent_B。一旦agent_A接收到agent_B和client_b之間的連接成功,則告知發(fā)送端傳送代理將數(shù)據(jù)從發(fā)送隊(duì)列中提取,并將其封裝在 UTP包的數(shù)據(jù)區(qū)進(jìn)行發(fā)送[18]。相應(yīng)地,在接收 UTP包之后,接收端傳送代理按照包類型進(jìn)行處理,若發(fā)現(xiàn)為數(shù)據(jù)包,則從 UTP包中分析該數(shù)據(jù),通過(guò)agent_B向客戶機(jī)_ b傳送一個(gè)應(yīng)答包,并且將響應(yīng)包傳送到發(fā)送代理,若發(fā)現(xiàn)為響應(yīng)包,則按照響應(yīng)包從傳送隊(duì)列中刪除相應(yīng)的數(shù)據(jù)。在完成了數(shù)據(jù)傳送之后,客戶機(jī)_ a主動(dòng)啟動(dòng)中斷連接請(qǐng)求,agent_A將 FINISH報(bào)文發(fā)送給agent_B,告知agent_B切斷與客戶機(jī)_b的連接,agent_B在收到 FINISH消息后,切斷與客戶機(jī)_b的連接并從接收會(huì)話表中刪除傳輸相關(guān)會(huì)話信息[19]。按照上述數(shù)據(jù)傳輸流程,利用安裝的控制器設(shè)備,在傳輸協(xié)議的約束下,以選擇的信道為控制目標(biāo),實(shí)現(xiàn)系統(tǒng)的無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制功能。無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸流量控制的目的是最大程度地避免傳輸信道出現(xiàn)擁塞現(xiàn)象,首先利用式(4)計(jì)算無(wú)線通信網(wǎng)絡(luò)中任意信道的最大鏈路容量。
Qi=RTTi×Bandwidthi
(4)
式中,變量RTTi和Bandwidthi分別表示的是鏈路往返時(shí)延向量和測(cè)量代理查詢每個(gè)端口的帶寬信息。在實(shí)際流量控制過(guò)程中,根據(jù)式(4)的計(jì)算結(jié)果生成一個(gè)流量擁塞控制窗口,任意時(shí)刻無(wú)線通信傳輸信道流量受限于如下公式:
awnd=min(creditwnd,Q)
(5)
式中,awnd和creditwnd分別為允許窗口和擁塞窗口大小。若當(dāng)前無(wú)線通信信道的數(shù)據(jù)總傳輸量高于awnd,則利用控制器設(shè)備啟動(dòng)流量控制窗口程序,保證該信道通過(guò)流量低于awnd,直到信道傳輸數(shù)據(jù)低于0.6Qi為止[20]。另外通過(guò)對(duì)流量窗口大小的設(shè)置與調(diào)節(jié),實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)傳輸速率的控制,由此從流量和速率兩個(gè)方面完成系統(tǒng)的數(shù)據(jù)傳輸控制功能。
在系統(tǒng)設(shè)計(jì)中,每一個(gè)模塊都要經(jīng)過(guò)驗(yàn)證、測(cè)試、檢查和不斷地修正,從而使各個(gè)功能模塊能夠根據(jù)設(shè)計(jì)的要求來(lái)工作,從而實(shí)現(xiàn)目標(biāo)和結(jié)果。在對(duì)各功能模塊進(jìn)行了測(cè)試后,根據(jù)對(duì)系統(tǒng)的功能需求,對(duì)經(jīng)過(guò)測(cè)試的各模塊進(jìn)行了裝配和測(cè)試,以確定系統(tǒng)在運(yùn)行時(shí)是否能夠滿足所需的性能指標(biāo),并對(duì)其進(jìn)行改進(jìn)。為了測(cè)試優(yōu)化設(shè)計(jì)的基于STM32嵌入式的無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)的控制功能和運(yùn)行性能,設(shè)計(jì)系統(tǒng)測(cè)試實(shí)驗(yàn),并驗(yàn)證優(yōu)化設(shè)計(jì)結(jié)果是否滿足設(shè)計(jì)與應(yīng)用要求。
此次系統(tǒng)測(cè)試實(shí)驗(yàn)所針對(duì)的無(wú)線通信環(huán)境由網(wǎng)關(guān)部署環(huán)境、服務(wù)器運(yùn)行環(huán)境、用戶端運(yùn)行環(huán)境3個(gè)部分組成。其中,網(wǎng)關(guān)與 LoRa模塊的數(shù)據(jù)輸出接口通過(guò)串口進(jìn)行連接,使之能與 LoRa網(wǎng)絡(luò)相連通??梢苿?dòng)網(wǎng)關(guān)將路由器與無(wú)線網(wǎng)絡(luò)相連,由此進(jìn)入互聯(lián)網(wǎng)。另外,在實(shí)驗(yàn)室的局域網(wǎng)下面還配置了一個(gè)監(jiān)控 PC,以實(shí)現(xiàn)現(xiàn)場(chǎng)的實(shí)時(shí)監(jiān)控。Tomcat和 MySQL被部署在服務(wù)器中,用于提供業(yè)務(wù)支持,并在開(kāi)放式系統(tǒng)中使用每個(gè)端口進(jìn)行數(shù)據(jù)傳送。設(shè)置多個(gè)遠(yuǎn)程用戶端作為無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸?shù)慕邮斩恕?/p>
為了給系統(tǒng)測(cè)試實(shí)驗(yàn)提供充足的數(shù)據(jù)樣本,收集某個(gè)有線通信網(wǎng)絡(luò)的發(fā)送傳輸信息數(shù)據(jù),以此作為系統(tǒng)測(cè)試實(shí)驗(yàn)的傳輸數(shù)據(jù)樣本。表1為部分實(shí)驗(yàn)數(shù)據(jù)傳輸樣本的設(shè)置結(jié)果。
表1 部分實(shí)驗(yàn)傳輸數(shù)據(jù)樣本設(shè)置表
系統(tǒng)測(cè)試實(shí)驗(yàn)共設(shè)置200個(gè)數(shù)據(jù)傳輸任務(wù),通過(guò)傳輸數(shù)據(jù)的大小確定合適的傳輸信道,以此作為系統(tǒng)控制效果測(cè)試的對(duì)比標(biāo)準(zhǔn)。
根據(jù)基于STM32嵌入式的無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)的優(yōu)化設(shè)計(jì)目的,分別從控制功能和運(yùn)行性能兩個(gè)方面進(jìn)行分析。其中控制功能的測(cè)試內(nèi)容是檢測(cè)控制系統(tǒng)能否完成數(shù)據(jù)在規(guī)定速率下無(wú)誤碼傳輸,同時(shí)避免出現(xiàn)數(shù)據(jù)傳輸擁塞現(xiàn)象。而控制系統(tǒng)的運(yùn)行性能主要就是測(cè)試該系統(tǒng)能夠同時(shí)控制無(wú)線通信遠(yuǎn)程傳輸數(shù)據(jù)量的多少。在實(shí)驗(yàn)環(huán)境中安裝優(yōu)化設(shè)計(jì)系統(tǒng)中的硬件設(shè)備,并執(zhí)行硬件設(shè)備調(diào)試工作。啟動(dòng)數(shù)據(jù)傳輸控制系統(tǒng)軟件程序,逐一調(diào)取數(shù)據(jù)傳輸任務(wù)。以第一個(gè)傳輸任務(wù)為例,服務(wù)器端傳送的是0XFFF10101的數(shù)據(jù),前面4個(gè)16進(jìn)制的數(shù)據(jù)是一個(gè)FFF1,如果服務(wù)器端的4個(gè)16進(jìn)制的數(shù)據(jù)是一個(gè)FFF1,則確認(rèn)這個(gè)網(wǎng)絡(luò)的數(shù)據(jù)是有效的,然后把后面的4個(gè)16進(jìn)制的數(shù)據(jù)傳送到一個(gè)控制 I/O控制任務(wù)以進(jìn)行對(duì)應(yīng)的控制,使用相同的方式可以得出其他任務(wù)的數(shù)據(jù)傳輸與控制結(jié)果。通過(guò) Xilinx ISE12.2開(kāi)發(fā)包中的 Chip Scope,通過(guò) Chip Scope來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)內(nèi)的信號(hào)進(jìn)行實(shí)時(shí)探測(cè),當(dāng)錯(cuò)誤標(biāo)記比特被觸發(fā)時(shí),該錯(cuò)誤標(biāo)記比特信號(hào)會(huì)一直等待,表明在發(fā)送數(shù)據(jù)時(shí)未發(fā)生任何數(shù)據(jù)傳輸錯(cuò)誤。
此次系統(tǒng)測(cè)試實(shí)驗(yàn)設(shè)置傳輸速率控制誤差、丟包率、傳輸擁塞總時(shí)長(zhǎng)3個(gè)指標(biāo)來(lái)反映系統(tǒng)的數(shù)據(jù)傳輸控制功能,其中傳輸速率控制誤差和丟包率的數(shù)值結(jié)果為:
(6)
式中,變量νtarget和νcontrol分別為設(shè)置的數(shù)據(jù)傳輸速率目標(biāo)值和實(shí)際控制結(jié)果,Nreceive和Nsend對(duì)應(yīng)的是數(shù)據(jù)的接收量和發(fā)送量,另外傳輸擁塞總時(shí)長(zhǎng)測(cè)試指標(biāo)的測(cè)試結(jié)果為:
(7)
式中,τi為第i次擁塞的維持時(shí)長(zhǎng),參數(shù)n為傳輸過(guò)程中發(fā)生擁塞事故的次數(shù)。為了滿足系統(tǒng)設(shè)計(jì)對(duì)控制功能的要求,設(shè)置εν、ηloss和τ的預(yù)設(shè)值分別為0.5 MB/s、1%和3.0 s,并要求系統(tǒng)控制功能實(shí)際測(cè)試指標(biāo)結(jié)果不高于預(yù)設(shè)值。另外,設(shè)置吞吐率作為系統(tǒng)運(yùn)行性能量化測(cè)試指標(biāo),其數(shù)值結(jié)果可以表示為:
(8)
式中,L為無(wú)線通信信道的長(zhǎng)度,RTT、N和To分別為數(shù)據(jù)傳輸?shù)耐禃r(shí)間、單個(gè)ACK確認(rèn)數(shù)據(jù)量和數(shù)據(jù)傳輸超時(shí)重傳定時(shí)器參數(shù),To取值為定值。另外ηloss為數(shù)據(jù)丟包率,可以通過(guò)式(6)的計(jì)算得出該變量的具體取值,實(shí)驗(yàn)要求吞吐率不得低于88%。
通過(guò)相關(guān)數(shù)據(jù)的提取與統(tǒng)計(jì),得出系統(tǒng)控制功能的測(cè)試結(jié)果,如表2所示。
表2 系統(tǒng)控制功能測(cè)試數(shù)據(jù)表
將表2中的數(shù)據(jù)代入到式(6)中,可以得出控制系統(tǒng)下無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸速率控制誤差和丟包率對(duì)的平均測(cè)試結(jié)果分別為0.18 MB/s和0.6%。另外通過(guò)式(7)的計(jì)算,得出傳輸擁塞總時(shí)長(zhǎng)的測(cè)試結(jié)果如圖7所示。
從圖7中可以直觀地看出,在設(shè)計(jì)系統(tǒng)的控制下,遠(yuǎn)程數(shù)據(jù)傳輸發(fā)生擁塞時(shí)間的最大值為2.6 s。由此可見(jiàn)系統(tǒng)控制功能指標(biāo)的測(cè)試結(jié)果均低于預(yù)設(shè)值,即優(yōu)化設(shè)計(jì)系統(tǒng)的控制功能滿足設(shè)計(jì)要求。另外通過(guò)式(8)的計(jì)算得出系統(tǒng)運(yùn)行性能的測(cè)試結(jié)果,如圖8所示。
圖7 控制系統(tǒng)下遠(yuǎn)程數(shù)據(jù)傳輸擁塞總時(shí)長(zhǎng)統(tǒng)計(jì)圖
圖8 通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)運(yùn)行性能測(cè)試結(jié)果
從圖8中可以看出,無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)吞吐率的最小值為91.5%,由此可見(jiàn)設(shè)計(jì)控制系統(tǒng)的運(yùn)行性能滿足設(shè)計(jì)與應(yīng)用要求。
從系統(tǒng)測(cè)試結(jié)果中可以看出,通過(guò)STM32芯片的嵌入式應(yīng)用,有效提高了無(wú)線通信遠(yuǎn)程數(shù)據(jù)傳輸控制系統(tǒng)的控制功能與運(yùn)行性能,對(duì)于無(wú)線通信技術(shù)而言具有較高的應(yīng)用價(jià)值。然而實(shí)驗(yàn)中設(shè)置的傳輸樣本數(shù)量較少,且未對(duì)數(shù)據(jù)傳輸延遲進(jìn)行測(cè)試,因此得出的系統(tǒng)測(cè)試結(jié)果存在一定的局限性,因此在控制系統(tǒng)投入應(yīng)用之前,還需要進(jìn)一步補(bǔ)充相關(guān)的測(cè)試數(shù)據(jù)。