李小龍 朱海霞 趙凱熠 趙晨翔 董正琪
摘 要:文章設計了一種無線傳輸的虛擬串口系統,采用Windows驅動+上位機軟件+下位機終端的方式,實現了PC與下位機的高速數據傳輸。電腦通過虛擬出的串口控制下位機完成包括但不限于UART、SPI、IIC總線、顯示屏以及各種外設。
關鍵詞:虛擬串口;ESP32;WiFi
0 引言
傳統的電磁信號傳輸是利用實體串口接收和發送信息,PC的核心是一個高速的中央處理器,它并沒有集成UART之類的低速通信接口。實際開發時,通過USB/PCI-E總線連接MCU,或者USB轉TTL線材,這些需要寫操作系統與MCU的通信協議。這類傳統的實體串口開發不僅需要大量的財力物力,而且在這樣長的數據交換鏈中數據極易丟失。
本項目研究目的就是通過無線和虛擬硬件技術,在PC操作系統中虛擬出串口,并通過無線技術與下位機通信,實現操作系統直接控制下位機的無線串口。
1 虛擬串口的意義
在傳統的測控系統中,通常電信號傳輸信息,這種傳輸方式常常會帶來電磁干擾和信號衰減。利用電磁信號,脫離物理連接就可以克服電信號傳輸帶來的電磁干擾和信號衰減,同時也避免了錯綜復雜的線路連接,有效地節省人力物力。
本文以串口為起點,對無線傳輸協議,傳輸硬件選擇,傳輸中數據的壓縮和復原,數據的加密,Windows底層驅動等進行研究,試圖在PC設備上虛擬出一個無線的串口,并在此基礎上虛擬SPI,IIC,CAN,SDIO等總線,提供PC與單片機的無線通信方式。圖1為虛擬串口與實體串口的數據鏈,圖中能直觀看出實體串口數據鏈臃長、不安全。

2 系統總體設計
本項目是基于ESP32且具有上位機的通信軟件,上位機驅動程序與下位機解析控制的從控制器設計。上位機部分用QT實現文本編輯,數據可視化與通信;驅動程序部分負責將文本數據轉化為無線信號轉發給下位機,同時接收下位機的反饋;下位機用ESP32解析指令并運行,同時反饋狀態。
3 上位機軟件開發
上位機采用QT開發,軟件分為3個部分。第一部分是數據傳輸的底層,包括TCP/UDP的套接字和Qt5封裝的串口類,負責數據的傳輸與接收;第二部分是數據的編輯部分,負責顯示數據,同時編輯數據,支持語法高亮等特性;第三部分是可視化界面,包括數據波形顯示器以及圖片顯示器等,保留給開發人員,便于下位機的數據分析。本項目開發的上位機軟件界面如圖2所示。

4 驅動開發
這一部分主要負責將串口與TCP/UDP之間的數據轉發。采用Microsoft Visual Studio(WDK)開發。本項目開發的Windows驅動界面如圖3所示。
5 下位機開發
下位機采用ESP32開發,ESP32兩個240m的核心,核心0用來執行各種指令,核心1用來處理WiFi通信,解析指令,運行中斷。為了避免數據錯誤,系統采用freertos的開發,充分利用了互斥量、定時器和中斷管理。本次開發采用VScode(PIO)。下位機主函數部分如圖4所示,負責初始化各個模塊并啟動各個線程。
6 字符串解析函數
傳統的腳本語言繼承了自然數計算等功能,造成系統解算時間很長。

字符串解析分成兩個部分,一個是用用戶自定義函數,另一個是系統的自動解析回調。得益于雙核結構,用戶可以充分利用其中一個核心完成用戶的任務,而不影響我們的字串穿解析。
字符串解析的核心是int sscanf(const char *, const char*, ...);所以函數繼承c語言的一切特性,包括正則表達式。
受限于各種編譯器和優化,不同平臺編譯出來的代碼可能有所差異。最終采用了c++來編譯我們的文件。當然,具體的系統中改用c語言+結構體指針能有更好的執行效率。
#define debugLen 50
int DebugConut=0;

7 結語
本項目研究的目的就是通過無線和虛擬硬件技術,在PC操作系統中虛擬出串口,并通過無線技術與下位機通信,實現操作系統直接控制下位機的無線串口。在串口的基礎上引入IIC,SPI等總線。在最終的成品上,直接寫UART/IIC/ SPI的協議,PC直接與連接在下位機的傳感器通信。
[參考文獻]
[1]黃麗娥.網口設備虛擬串口設備技術的設計與實現[D].廣州:華南理工大學,2012.
[2]郭書軍,田志鵬.基于單片Wi-Fi MCU CC3200的無線串口[J].儀器儀表用戶,2016(1):24-27.
[3]楊思俊.基于VB6.0的太陽能發電基站電源的上位機軟件設計[J].科技廣場,2011(1):133-135.
[4]楊楊,潘洪躍.基于虛擬串口的數據采集系統的設計與實現[J].大眾科技,2008(4):73-75.
(編輯 王雪芬)
Design of virtual serial port based on wireless transmission
Li Xiaolong, Zhu Haixia, Zhao Kaiyi, Zhao Chenxiang, Dong Zhengqi(NUAA Jincheng College, Nanjing 211156, China)
Abstract:This paper designs a wireless transmission virtual serial port system, which uses Windows Driver + PC + lower terminal to realize high-speed data transmission between PC and lower computer. The computer controls the lower computer through the virtual serial port, including but not limited to UART, SPI, IIC bus, display screen and various peripherals.
Key words:virtual serial port; ESP32; WiFi