宗恒卿 朱穎宏
摘? 要:針對基于ESP32芯片的天線性能明顯不足的現(xiàn)狀,使用天線仿真軟件對倒F蛇形天線和半波偶極子天線兩款常用天線進(jìn)行了輻射特性仿真,并改進(jìn)了一個輕量化的網(wǎng)絡(luò)性能測試工具,通過實驗對比了其在輻射特性、接收信號強度指示以及吞吐量方面的表現(xiàn)。在軟件協(xié)議棧方面,使用網(wǎng)絡(luò)性能測試工具對LwIP協(xié)議棧進(jìn)行了內(nèi)存參數(shù)修改,以提高其在使用TCP協(xié)議時的網(wǎng)絡(luò)吞吐量性能,通過實驗對比實現(xiàn)了較好的優(yōu)化效果。
關(guān)鍵詞:物聯(lián)網(wǎng);網(wǎng)絡(luò)性能;吞吐量;LwIP協(xié)議棧;TCP
中圖分類號:TN82? ? 文獻(xiàn)標(biāo)識碼:A? 文章編號:2096-4706(2023)18-0073-06
Research on Antenna Performance Based on ESP32 Chip
ZONG Hengqing1, ZHU Yinghong2
(1.School of Physics & Optoelectronic Engineering, Guangdong University of Technology, Guangzhou? 510006, China; 2.Changzhou Addition and Subtraction Technology Co., Ltd., Changzhou? 213000, China)
Abstract: In response to the significant lack of antenna performance based on the ESP32 chip, antenna simulation software is used to simulate the radiation characteristics of two commonly used antennas, the inverted F snake antenna and the half wave dipole antenna. A lightweight network performance testing tool is improved, and its performance in radiation characteristics, received signal strength indication, and throughput are compared through experiments. In terms of software protocol stack, network performance testing tools are used to modify the memory parameters of the LwIP protocol stack to improve its network throughput performance when using TCP protocol. Through experimental comparison, good optimization results are achieved.
Keywords: Internet of Things; network performance; throughput; LwIP protocol stack; TCP
0? 引? 言
物聯(lián)網(wǎng)(IoT)技術(shù)已深入到人類生活的方方面面,成為人們生活和生產(chǎn)的重要組成部分。隨著越來越多的設(shè)備連接到物聯(lián)網(wǎng),對物聯(lián)網(wǎng)設(shè)備的通信速度與通信質(zhì)量的研究也變得越來越重要[1-3]。
集成電路芯片作為集成電路產(chǎn)業(yè)的核心,目前,汽車電子、消費電子和醫(yī)療保健等多個行業(yè)對集成電路需求激增,對芯片的需求也在增加,導(dǎo)致國內(nèi)外芯片更加短缺。面對國外芯片價格的不斷攀升,使用國產(chǎn)替代芯片勢在必行[1]。在Wi-Fi芯片的中高端領(lǐng)域,國內(nèi)已經(jīng)有適用于路由器、手機的聯(lián)發(fā)科、瑞昱等,而在智能家居、移動設(shè)備等中低端領(lǐng)域,樂鑫的ESP32芯片自第一代芯片開始便開創(chuàng)性地采用了CMOS 40 nm技術(shù)和極少的外圍器件,成為行業(yè)的佼佼者[4]。相較于行業(yè)競品芯片,ESP32芯片具有更低功耗、更高集成和性價比高的特點。因此,對ESP32芯片通信的速度與質(zhì)量開展研究,評估其在不同應(yīng)用場景下的性能,對其市場化應(yīng)用推廣提供進(jìn)一步的驗證和檢測是必要的。開發(fā)公司給出兩種ESP32設(shè)計,一款為ESP32內(nèi)置倒F蛇形天線模組(下文簡稱ESP32A);另一款為無內(nèi)置天線ESP32,工作時需外接天線模組,給使用者開發(fā)的自由,使其可以選擇適合的天線(下文簡稱ESP32B)。ESP32A中的天線已經(jīng)被嚴(yán)冬[5]通過仿真分析,對比了主平面的增益特性,得出了在2.45 GHz下有較好的輻射性能的結(jié)論;尹洪雁等[6,7]通過仿真研究了一種在
2.45 GHz下有較好輻射能力的偶極子結(jié)構(gòu)天線,這種天線以其較高的效率和低成本也得到了廣泛的應(yīng)用。雖然對各類天線輻射特性的仿真研究已經(jīng)很豐富了,但是在天線的網(wǎng)絡(luò)性能方面的研究還不夠多。因此,我們把內(nèi)置倒F蛇形天線的ESP32A作為一個整體,給需要外置天線的ESP32B加了一款通用的半波偶極子天線,針對兩款天線的網(wǎng)絡(luò)性能開展接收信號強度指示(Received Signal Strength Indication, RSSI)和吞吐量的有效監(jiān)測和比較。
吞吐量的檢測一般采用專用的測試儀器,為了更直接測量,本工作改進(jìn)了一種軟件測試方案。通過適應(yīng)ESP32芯片開發(fā)者的環(huán)境流程,對DAST實驗室(NLANR/DAST)開發(fā)的開源網(wǎng)絡(luò)性能測試工具iperf[8]做了輕量化的優(yōu)化,以使其在運行中不需要中斷主程序運行,也能較好地反映出真實的網(wǎng)絡(luò)狀況。本文先是通過對ESP32A內(nèi)置的倒F蛇形天線和市場上常見的一款2.4 GHz半波偶極子外置天線進(jìn)行了輻射特性的仿真分析,通過iperf工具比較了兩者在接收信號強度指示以及吞吐量方面的表現(xiàn);在軟件協(xié)議棧方面,以吞吐量和帶寬為指標(biāo)[9,10],使用改進(jìn)后的iperf工具對LwIP(lightweight IP)協(xié)議棧進(jìn)行了內(nèi)存調(diào)參[11-14],最終,通過實驗結(jié)果對比發(fā)現(xiàn),優(yōu)化后的方案在TCP傳輸時具有更好的效果。
1? 網(wǎng)絡(luò)通信框架
1.1? ESP32網(wǎng)絡(luò)通信框架
圖1給出了基于ESP32A和B設(shè)備的內(nèi)部通信框架和與路由器的通信。內(nèi)部通信框架由外部射頻天線、射頻電路、ESP32芯片內(nèi)部的Wi-Fi協(xié)議棧和LwIP協(xié)議棧組成。天線和射頻負(fù)責(zé)數(shù)據(jù)交換、接收和發(fā)射,以及射頻電路處理放大;Wi-Fi驅(qū)動程序是一個軟件模塊,負(fù)責(zé)控制Wi-Fi硬件的操作;LwIP協(xié)議棧是一個輕量級的開源TCP/IP協(xié)議棧,負(fù)責(zé)運輸層和網(wǎng)絡(luò)層。
為了避免傳輸路徑過長對實驗結(jié)果的誤差影響,本次測試在局域網(wǎng)下進(jìn)行,路由器作為無線接入點(Acess Point),提供無線接入服務(wù),允許其他無線設(shè)備接入;ESP32A設(shè)備和B設(shè)備作為A終端站點(Station)。
1.2? 實驗環(huán)境
本次實驗采用了基于單核MT7620A處理器的小米路由器mini,該路由器內(nèi)置搭配了128 MB DDR2內(nèi)存,支持2.4 GHz/5 GHz雙頻Wi-Fi,2.4 GHz環(huán)境下的最高傳輸速率為300M。
實驗環(huán)境如圖2所示。
2? 天線模型和仿真
要研究天線的輻射特性,需要根據(jù)天線的結(jié)構(gòu)尺寸建立合適的天線模型。因此,在研究中需要對ESP32A的倒F蛇形天線和ESP32B的半波偶極子天線建立三維模型并進(jìn)行仿真測試。
經(jīng)過測量,兩款天線的結(jié)構(gòu)參數(shù)如表1和表2所示。倒F蛇形天線為PCB內(nèi)置天線,因此除了結(jié)構(gòu)上的參數(shù)外,還需要加上PCB(Printed Circuit Board)電路板的板材材料、銅箔厚度和介質(zhì)常數(shù)。
本文采用Ansoft HFSS V20.1對所設(shè)計的天線進(jìn)行模型的建立和仿真,根據(jù)表1中結(jié)構(gòu)初始值所建立的模型和三維增益方向圖如圖3(a)所示,根據(jù)表2中結(jié)構(gòu)初始值所建立的模型和三維增益方向圖如圖3(b)所示。
圖4為兩款天線的回波損耗S11參數(shù)。由圖可以看出,圖4(a)的中心頻率為2.375 GHz,2.4~2.485 GHz頻帶內(nèi)S11均小于-10 dB,-10 dB以下的有效帶寬為250 MHz,由此可以表明天線的阻抗匹配基本良好,天線中心頻率的回波損耗及有效帶寬均已達(dá)到無線傳感網(wǎng)中對天線的性能要求。圖4(b)的中心頻率為2.95 GHz,遠(yuǎn)遠(yuǎn)偏離了本文所需要的諧振中心頻點2.4 GHz。
選取天線的中心頻率2.4 GHz,通過HFSS繪制出天線在YZ面的增益方向圖,如圖5所示。
由圖5可以看出,在以2.4 GHz為中心頻率的方向圖中,兩個天線每個方向相對應(yīng)的增益值均不同,表現(xiàn)為:1)倒F蛇形天線的主瓣很大,主瓣是指天線增益最高的方向;2)后瓣較小,表明后向的抑制能力較強;3)在-90°方向處方向性較差一些,其余各方向的方向性均比較好;4)而半波偶極子天線在-90°和90°方向上幾乎沒有增益。根據(jù)HFSS數(shù)據(jù)后處理模塊給出兩款天線在YZ平面的天線參數(shù)的計算結(jié)果,倒F蛇形天線的前后向比為1.613 2,半波偶極子天線的前后向比為1.001,與YZ面的增益方向圖所呈現(xiàn)的基本一致。
使用HFSS數(shù)據(jù)后處理模塊給出兩款天線在XY平面的天線參數(shù)的計算結(jié)果,如圖6所示。
由圖6可以看出,在以2.4 GHz為中心頻率的方向圖中,在XY面增益方向圖中,兩個平面增益方向圖中的主瓣方向性都比較好,均呈現(xiàn)出了全向性,并且天線的全向性可以從天線的三維方向圖得到證實。根據(jù)HFSS數(shù)據(jù)后處理模塊給出的兩款天線在XY平面的天線參數(shù)的計算結(jié)果,倒F蛇形天線的前后向比為2.987 8,半波偶極子天線的前后向比為1.086 8,與XY面的增益方向圖所呈現(xiàn)的基本一致。
使用HFSS數(shù)據(jù)后處理模塊給出兩款天線在三維中的天線參數(shù)的計算結(jié)果,如表3所示。
根據(jù)參數(shù)表可以分析,半波偶極子在凈輸入功率Pacc跟輻射功率Pr較低,這是由于半波偶極子天線中心頻率點偏移造成的在2.4 GHz處S11參數(shù)很大。在三維增益方向圖上,倒F蛇形天線綜合的前后向比為2.555,方向性更明顯一些;在輻射強度方面,這個值表示在主瓣方向單位立體角內(nèi)所含的輻射功率的最大值,倒F蛇形天線的最大輻射強度為125.87 W/sr,而半波偶極子的最大輻射強度為68.224 W/sr,這是由于半波偶極子天線的前后輻射均勻,每個方向的平均輻射強度就會較小。
3? 網(wǎng)絡(luò)性能測試
天線仿真的結(jié)果是理論值,對網(wǎng)絡(luò)性能的測試與分析能更直觀地表現(xiàn)出ESP32設(shè)備在天線輻射上的特性。
3.1? 網(wǎng)絡(luò)性能測試工具的優(yōu)化
網(wǎng)絡(luò)性能測試工具iperf分為服務(wù)器端和客戶端。
服務(wù)器端在Windows平臺上使用已有的開源圖形化工具jperf,其可以指定運行時間,按指定時間間隔打印帶寬、延遲抖動。
在客戶端,為了方便在調(diào)試環(huán)節(jié)對參數(shù)進(jìn)行修改,需要給參數(shù)留出調(diào)試接口;同時為了不影響主程序的運行,需要另外建立一個運行線程,因此,在ESP32客戶端創(chuàng)建了一個基于FreeRTOS操作系統(tǒng)的iperf任務(wù)作為測試工具,代碼如下:
TaskHandle_t pxCreatedTask= NULL;
xTaskCreate(iperf_client,"iperf_client", 8*1024 ,NULL ,1 , &pxCreatedTask);
上面第一句話創(chuàng)建了一個任務(wù)句柄,此變量就用來保存這個任務(wù)句柄,為將來其他API函數(shù)調(diào)用做準(zhǔn)備。第二句話建立了一個名為iperf_client的任務(wù),分配了8×1 024的堆棧內(nèi)存,任務(wù)優(yōu)先級為1,僅高于空閑任務(wù),最后調(diào)用了上一句創(chuàng)建的任務(wù)句柄。
客戶端測試工具的實現(xiàn)是基于Socket API,它兼容BSD Socket,提供了諸如write()、send()這樣的API接口。
在原理上,當(dāng)建立好Socket連接后,使用sys_now()系統(tǒng)計時,變量tick1-tick2作為計算速率的時間,經(jīng)測試驗證變量tick1-tick2的誤差不超過1毫秒。代碼如下:
tick1 = sys_now();
while(1)
{
tick2 = sys_now();
if(tick2 -tick1 >= configTICK_RATE_HZ *10 );
}
在每秒鐘內(nèi),write()函數(shù)會不斷地把發(fā)送數(shù)據(jù)拷貝到發(fā)送緩沖區(qū)。對于write()函數(shù),如果要發(fā)送的數(shù)據(jù)長度大于剩余緩沖區(qū),則進(jìn)入阻塞模式,直到緩沖區(qū)空出,代碼如下:
if(write(sock,send_buf,IPERF_BUFSZ)<0)
break;
else
{
sentlen += IPERF_BUFSZ;
}
最終,統(tǒng)計成功發(fā)送的數(shù)據(jù)的字節(jié)數(shù)乘8得到發(fā)送位數(shù),(tick1-tick2)/configTICK_RATE_HZ得到發(fā)送所花費的時間,兩者相除得到發(fā)送速率。以下是實現(xiàn)的代碼:
f = (float)(sentlen * configTICK_RATE_HZ *10 /125/(tick2 -tick1));
f /= 1000.0f;
printf("send speed =%.4f Mbps! \n",f);
浮點變量f儲存最后計算而來的發(fā)送速率,保留小數(shù)點后6位有效數(shù)字,最后一句保留4位有效數(shù)字發(fā)送至串口。
3.2? 協(xié)議棧優(yōu)化
對協(xié)議棧內(nèi)存參數(shù)的改善可以有效地提高設(shè)備吞吐量,但是在嵌入式設(shè)備中,每次修改意味著需要重新進(jìn)行代碼地二進(jìn)制編譯和燒錄。為了方便修改內(nèi)存參數(shù),本文將LwIP協(xié)議棧的修改參數(shù)功能加入到了網(wǎng)絡(luò)性能測試工具iperf中。
在LwIP協(xié)議棧中,socket提供了setsockopt() API用于修改內(nèi)部的參數(shù)。
在發(fā)送過程中涉及的內(nèi)存參數(shù)有:(1)SO_RCVBUF表示LWIP層用于每個TCP流的接收數(shù)據(jù)緩沖區(qū)大?。唬?)SO_RCVTIMEO表示當(dāng)指定時間還未收到數(shù)據(jù),就會重傳;(3)TCP_NODELAY表示選擇開啟或禁用Nagle算法。
4? 結(jié)果與討論
4.1? 接收信號強度指示RSSI
使用Wi-Fi掃描程序可以獲得接收信號強度指示值RSSI,用來判定連接質(zhì)量。表4是距離與接收信號強度的實驗結(jié)果。
實驗以倒F蛇形天線和半波偶極子天線的最大輻射強度的正對方向作為正方向,分為了正反兩組??梢钥吹脚c倒F蛇形天線相比,半波偶極子由于天線延伸線較長,在任一距離都能獲得更強的接收信號強度。
4.2? 兩款天線的吞吐量和帶寬對比
在吞吐量實驗中,將ESP32設(shè)備A和設(shè)備B在STA模式下連接至路由器,每次采集30秒吞吐量數(shù)據(jù),并算出30秒內(nèi)帶寬的平均值,采集10次,制作成如圖7所示的折線圖??梢钥吹剑笷蛇形天線在10次的采集中,其吞吐量的平均數(shù)和眾數(shù)均高于半波偶極子天線,而帶寬的走向也基本趨于吞吐量。
4.3? 協(xié)議棧優(yōu)化數(shù)據(jù)
通過合并數(shù)據(jù)包,Nagle算法可以減少網(wǎng)絡(luò)流量,從而降低網(wǎng)絡(luò)擁塞的可能性。因此,在某些情況下,可以通過禁用Nagle算法來提高網(wǎng)絡(luò)響應(yīng)速度,如圖8所示,禁用Nagle算法會提高0.7 Mbit/s的帶寬。
默認(rèn)情況下,ESP32使用較小的TCP窗口大小,通過調(diào)整該窗口大小可提高吞吐量和延遲,通過修改TCP協(xié)議棧的配置參數(shù)可更改窗口大小。如圖9所示。
5? 結(jié)? 論
本文研究了ESP32 Wi-Fi通信網(wǎng)絡(luò)上的天線部分和LwIP協(xié)議棧部分,通過對天線的仿真分析,得出倒F蛇形天線的方向性更明顯、中心頻率更接近2.4 GHz、輻射效率更高的結(jié)論;同時優(yōu)化網(wǎng)絡(luò)性能測試工具iperf,并通過實驗驗證了倒F蛇形天線的接收信號強度和吞吐量要高于半波偶極子天線;此外,本文還對ESP32的LwIP協(xié)議棧進(jìn)行了參數(shù)優(yōu)化,經(jīng)比較調(diào)整TCP緩存區(qū)大小,禁用Nagle算法,調(diào)整TCP超時時間,得到了可以提高網(wǎng)絡(luò)性能和吞吐量的結(jié)論。ESP32以其強大的Wi-Fi性能而廣受歡迎,本研究針對其Wi-Fi吞吐量進(jìn)行了探討,為ESP32將來應(yīng)用于圖片傳輸、音視頻傳輸?shù)阮I(lǐng)域奠定了基礎(chǔ)。
參考文獻(xiàn):
[1] 曾慶勇,劉遠(yuǎn)仲.淺談物聯(lián)網(wǎng)技術(shù)發(fā)展方向與產(chǎn)業(yè)前景 [J].軟件,2018,39(3):37-40.
[2] 龔惠群 ,黃超.物聯(lián)網(wǎng)新興產(chǎn)業(yè)的發(fā)展趨勢分析 [J].產(chǎn)業(yè)經(jīng)濟(jì)評論,2023(2):198-216.
[3] 郝運.智能物聯(lián)網(wǎng)技術(shù)及應(yīng)用的發(fā)展新趨勢 [J].科技創(chuàng)新與應(yīng)用,2022,12(26):153-156.
[4] 毛浩龍,艾紅.基于ESP32的智能家居項目設(shè)計與實現(xiàn) [J].工業(yè)儀表與自動化裝置,2021(2):126-130+136.
[5] 嚴(yán)冬,汪朋,李帥永,等.2.45 GHz印刷倒F天線的研究與實現(xiàn) [J].儀器儀表學(xué)報,2015,36(10):2372-2380.
[6] 尹洪雁,劉宇軍,劉揚,等.一種2.45 GHz最佳結(jié)構(gòu)偶極子天線的研究和試制 [J].科學(xué)技術(shù)與工程,2016,16(5):165-167+176.
[7] 張然,褚慶昕.一種小型化高增益的半波偶極子天線 [C]//中國電子學(xué)會微波分會.2018年全國微波毫米波會議論文集:下冊.成都:[出版者不詳],2018:333-336.
[8] 王鵬.使用iperf工具測試網(wǎng)絡(luò)性能的方法 [J].數(shù)字傳媒研究,2022,39(6):67-71.
[9] 董俊杰,彭亞斌.MicroPython軟件開發(fā)平臺的ESP32-C3通信性能測試 [J].單片機與嵌入式系統(tǒng)應(yīng)用,2023,23(2):57-60+65.
[10] 張齊,勞熾元.輕量級協(xié)議棧LWIP的分析與改進(jìn) [J].計算機工程與設(shè)計,2010,31(10):2169-2171+2256.
[11] 李瓊.嵌入式TCP/IP協(xié)議在ARM上的實現(xiàn)及其應(yīng)用 [J].微計算機應(yīng)用,2005(6).
[12] 張青青.LwIP協(xié)議棧現(xiàn)狀 [J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2015,5(10):73-74.
[13] 肖利平.基于LWIP的嵌入式串口服務(wù)器的設(shè)計與實現(xiàn) [J].電子科技,2009,22(5):11-13.
[14] 付曉軍,夏應(yīng)清,何軒.嵌入式LwIP協(xié)議棧的內(nèi)存管理 [J].電子技術(shù)應(yīng)用,2006(3):56-58.
作者簡介:宗恒卿(1998—),男,漢族,江蘇南通人,碩士研究生在讀,研究方向:嵌入式物聯(lián)網(wǎng)通信;朱穎宏(1998—),男,漢族,廣東揭陽人,碩士研究生在讀,研究方向:機器人、人工智能、無線通信。