熊軍洲
摘 要 針對STM32微控制器串口通信,提出了一種虛擬串口通信仿真方法,采用虛擬串口軟件、串口調(diào)試助手及Keil軟件相結(jié)合的方式對串口的發(fā)送和接收進行仿真。結(jié)果表明,該方法在不需要硬件的前提下STM32微控制器串口能依靠軟件仿真正常地發(fā)送和接收數(shù)據(jù),驗證串口正常工作。
關(guān)鍵詞 STM32 串口 虛擬串口軟件 串口調(diào)試助手 Keil
中圖分類號:TP335 文獻標識碼:A
1實現(xiàn)原理與仿真設(shè)置
該方法不需要硬件開發(fā)板和仿真器,也不關(guān)注計算機是否有串口,而是利用虛擬串口軟件(Virtual Serial Port Driver,VSPD)創(chuàng)建虛擬的串行通信接口,因此計算機上需要安裝VSPD軟件、串口調(diào)試助手和Keil uVision5軟件。VSPD成對地創(chuàng)建虛擬串口,這些虛擬的串口與真實的物理串口在使用上完全一致,通過虛擬互連將創(chuàng)建的成對串口相互連在一起,相當于使用數(shù)據(jù)線連接了兩個串口,從而可以實現(xiàn)發(fā)送和接收數(shù)據(jù)的仿真。新建虛擬串口的數(shù)量是不受限制的,因此可以方便地擴展串口的數(shù)量。具體的仿真設(shè)置如下:
1.1打開VSPD軟件,創(chuàng)建虛擬串口
打開軟件后,在出現(xiàn)的界面上manage ports選擇兩個串口號然后點擊Add pair,這時界面左側(cè)的Serial ports explorer部分的Virtual ports下顯示兩個虛擬串口COM1和COM2。這兩個串口即為創(chuàng)建完的串口,如果需要繼續(xù)增加串口,只需在manage ports下繼續(xù)選擇串口號然后點擊Add pair即可。將虛擬串口COM1和COM2與STM32微控制器中的一個USART綁定,即可實現(xiàn)USART的仿真調(diào)試。
1.2打開Keil uVision5軟件,綁定串口
將編寫的串口程序編譯鏈接生成可執(zhí)行文件后,在Dubug模式下進行調(diào)試仿真。在軟件下方出現(xiàn)的Command窗口命令欄中先后輸入兩條命令:MODE和ASSIGN,其格式如下:
MODE COMx baudrate, parity, databits, stopbits
ASSIGN channel
MODE命令為設(shè)置將要綁定的虛擬串口參數(shù)。COMx(x=1,2,3……)為虛擬串口號,baudrate為串口的有效波特率(如1200, 2400, 9600, 或 19200),parity為奇偶檢驗設(shè)置(parity為0表示無檢驗位,為1表示奇檢驗,為2表示偶檢驗),databits為數(shù)據(jù)位的個數(shù)(databits為8表示8位數(shù)據(jù)位,為7表示7位數(shù)據(jù)位),stopbits為停止位的個數(shù)(為1表示1位停止位,為15表示1.5位停止位,為2表示2位停止位)。
ASSIGN命令為將計算機創(chuàng)建的虛擬串口與微控制器的仿真串口綁定。channel為虛擬串口 COMx(x=1,2,3……),inreg和outreg為微控制器串口的輸入和輸出(inreg取值為SxIN, outreg取值為SxOUT,x=1,2,3)。
本文將MODE和ASSIGN命令分別設(shè)置為:
MODE COM1 9600,0,8,1
ASSIGN COM1
仿真多個串口時,由于創(chuàng)建的虛擬串口較多,為避免每次仿真時都要輸入命令,可以創(chuàng)建一個配置文件USART.txt,將以上的MODE和ASSIGN命令先后寫入,如有多個串口需要綁定則需要寫入多組MODE和ASSIGN命令,格式相同,具體參數(shù)根據(jù)實際程序要求設(shè)置。創(chuàng)建完配置文件后,將后綴改為.ini,如本文將USART.txt改為USART.ini,在設(shè)置Keil參數(shù)時,將Debug選項卡中的Initialization File路徑中。
1.3打開串口調(diào)試助手,配置參數(shù)
設(shè)置端口號為創(chuàng)建的虛擬串口COM2,按仿真程序設(shè)置波特率為9600 ,無奇偶檢驗位,停止位為1位,數(shù)據(jù)位為8位。
2串口收發(fā)仿真測試
通過軟件仿真串口程序,串口調(diào)試助手顯示如圖2所示:
由測試結(jié)果可知,通過虛擬串口,串口調(diào)試助手和微控制器之間能夠正確地收發(fā)數(shù)據(jù),通信正常。
3結(jié)束語
本文介紹了STM32串口仿真時使用虛擬串口的方法,全部采用軟件仿真的方式,成本低,效率高,大大減少了軟件開發(fā)時間。測試結(jié)果驗證了該方法的有效性,在實踐開發(fā)和教學(xué)當中具有很好的應(yīng)用價值。
參考文獻
[1] 王益涵,孫憲坤,史志才.嵌入式系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2016.
[2] 陳志旺.STM32嵌入式微控制器快速上手(第2版)[M].北京:電子工業(yè)出版社,2014.
[3] 張勇.ARM Cortex-M3嵌入式開發(fā)與實踐[M].北京:清華大學(xué)出版社,2017.