馮飛 李國利 趙恒 孫幸懿
摘 要:針對單片機開發(fā)學(xué)習(xí)過程中實物硬件短缺或易損,以及仿真軟件庫中缺少元器件模型,實驗現(xiàn)象不明顯等問題,提出了基于Proteus的半物理電路仿真的設(shè)想和方法,即由PC機上的Proteus仿真軟件作為上位機,實物硬件電路作為下位機,使其互相通訊完成預(yù)期的功能。并設(shè)計了基于Proteus的溫控超聲波測距半物理仿真系統(tǒng),用以闡述具體的實現(xiàn)過程。設(shè)計過程中發(fā)現(xiàn)實物硬件與Proteus仿真電路之間可通過RS-232-C異步串行接口進(jìn)行通信。通過進(jìn)一步實驗,發(fā)現(xiàn)傳統(tǒng)的USB串行總線式接口也可實現(xiàn)通信功能。實驗表明,此方法能降低開發(fā)成本,縮短開發(fā)周期,提高軟硬件的兼容性,為后續(xù)單片機學(xué)習(xí)與開發(fā)提供了新的參考方向和思路。
關(guān)鍵詞:超聲波測距;半物理仿真;Proteus;RS-232-C;單片機
0 引言
目前,在我國無論是開展單片機教學(xué)活動、單片機競賽、嵌入式開發(fā)還是因為個人興趣學(xué)習(xí)單片機,大多使用市面上已經(jīng)集成好了的單片機開發(fā)板或試驗箱進(jìn)行實驗學(xué)習(xí),其硬件電路固定,存在限制學(xué)習(xí)人員進(jìn)行一些具有創(chuàng)新想法的實驗研究情況,且學(xué)習(xí)過程中會出現(xiàn)元器件短缺、較貴或易損壞等問題。隨著計算機科學(xué)技術(shù)的日益發(fā)展,各行各業(yè)各領(lǐng)域內(nèi)都出現(xiàn)了仿真技術(shù)。仿真技術(shù)的出現(xiàn)和發(fā)展極大的節(jié)省了開發(fā)成本,縮短了開發(fā)周期[1]。Proteus正是在這種大環(huán)境下產(chǎn)生并快速發(fā)展的仿真軟件[2]。但Proteus仿真同樣存在一定問題,例如有的元器件模型軟件庫里沒有,有的元器件使用麻煩且效果不明顯等。
經(jīng)過實驗發(fā)現(xiàn)使用基于Proteus的半物理電路仿真技術(shù)可以解決上述問題,所謂基于Proteus的半物理電路仿真,又稱基于Proteus的硬件在回路仿真[3],就是指通過PC機的串口或并口使Proteus搭建的虛擬仿真電路和實際硬件電路進(jìn)行通訊的聯(lián)合仿真[4]。此技術(shù)的最大特點就是將軟件仿真技術(shù)與硬件系統(tǒng)聯(lián)合起來,簡化了設(shè)計過程??梢杂行У募涌煜到y(tǒng)開發(fā)的速度和質(zhì)量,縮短研發(fā)周期,同時可以提高軟硬件的兼容性[5]。
綜上所述,本文下面將以基于Proteus的溫控超聲波測距半物理仿真系統(tǒng)為例,詳細(xì)說明基于Proteus的半物理電路仿真的實現(xiàn)過程。
1 基本原理和設(shè)計方案
本文設(shè)計了一種基于Proteus的溫控超聲波測距半物理仿真系統(tǒng),采用超聲波脈沖回波法對目標(biāo)物體進(jìn)行測量分析,系統(tǒng)整體框架結(jié)構(gòu)如圖1所示,整個系統(tǒng)以STC89C516為控制核心,連接有HC-SR04超聲波模塊,LCD1602液晶顯示模塊,無源蜂鳴器,DS18B20溫度測量模塊以及發(fā)光二極管等外設(shè)。本系統(tǒng)分為由實物硬件電路組成的下位機和由Proteus虛擬仿真電路組成的上位機,兩部分通過RS-232-C異步串行接口相連。雖然51系列單片機系統(tǒng)內(nèi)部封裝有通用異步串行收發(fā)器,可以實現(xiàn)單片機系統(tǒng)與外界的串口通迅[6]。但TTL串口電平標(biāo)準(zhǔn)為+5 V,0 V,RS-232-C的串口電平標(biāo)準(zhǔn)為(-3 ~ -15)V,(+3 ~ +15)V[7]。因此想要使用RS-232-C異步串行接口將實物與仿真連接進(jìn)行通信,電路還需搭載MAX232電平轉(zhuǎn)換芯片。具體連接過程為下位機通過RS-232-C異步串行接口與PC機接口相連,上位機中的COMPIM虛擬接口編號設(shè)置為與下位機相連的PC機的接口編號。整體系統(tǒng)通過上位機與下位機之間的相互通信,實現(xiàn)溫度檢測、超聲波測距及警報功能。
2 電路設(shè)計
2.1 下位機電路設(shè)計
由于Proteus中超聲波模塊和蜂鳴器模塊,與實物使用存在一定差別,為使實驗便于操作,實驗結(jié)果更加直觀,設(shè)計如圖2所示的下位機電路,該電路搭載有電源模塊、RS-232-C異步串行接口、蜂鳴器模塊、單片機控制模塊、DS18B20溫度傳感器、MAX232電平轉(zhuǎn)換模塊以及HC-SR04超聲波測距模塊。可實現(xiàn)目標(biāo)距離和環(huán)境溫度的測量,將測量到的信息上傳給上位機進(jìn)行數(shù)據(jù)處理,并將處理好的數(shù)據(jù)發(fā)回實物單片機上,控制警報系統(tǒng)。
2.2 上位機電路設(shè)計
在Proteus中搭建如圖3所示的上位機電路,該部分由LCD1602液晶顯示模塊、STC89C516控制模塊、MAX232電平轉(zhuǎn)換模塊、RS-232-C模塊以及LED狀態(tài)指示模塊組成。由于上位機與下位機通過RS-232-C異步串行接口相連,上位機電路的晶振頻率應(yīng)與實物電路的晶振頻率相同為12 MHz。當(dāng)下位機將測得的數(shù)據(jù)傳輸給上位機時,上位機開始處理數(shù)據(jù),并控制LCD1602實時顯示目標(biāo)距離。如果目標(biāo)距離小于20 cm,紅色指示燈亮起,并將處理好的數(shù)據(jù)傳輸給下位機,使下位機發(fā)出警報,否則,綠燈亮起。
3 系統(tǒng)軟件設(shè)計
3.1 超聲波測距模塊原理
本實驗采用型號為HC-SR04的超聲波測距模塊,該模塊集成有超聲波發(fā)射器、接收器與控制電路,具有性能高,精度高,盲區(qū)小等優(yōu)點[8]。其工作時序圖如圖4所示,當(dāng)單片機I/O口發(fā)送一個至少10 μs以上的高電平至該模塊的Trig控制信號輸入引腳時,超聲波測距模塊內(nèi)自動發(fā)出8個方波信號,其周期為40 kHz,同時檢測是否有返回信號。如果檢測到有信號返回,Echo回響信號輸出引腳輸出高電平[9]。所測的距離與回響信號的脈沖寬度成正比,因此通過計算高電平持續(xù)的時間可以計算目標(biāo)距離。公式如(1)所示
3.2 DS18B20溫度補償模塊
由于環(huán)境溫度對聲速影響較大,聲波在大氣中傳播時,聲速隨環(huán)境溫度升高而增大,所以該系統(tǒng)在實際應(yīng)用中,需要使用溫度補償?shù)姆绞絹硖岣邷y距的精度。本系統(tǒng)采用DS18B20測溫模塊檢測環(huán)境溫度。DS18B20是一種單總線數(shù)字溫度傳感器,主要由配置寄存器、64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL四個部分組成[10]。具有體積小,硬件開銷低,抗干擾能力強,精度高的特點[11]。系統(tǒng)搭載DS18B20模塊后可實時計算當(dāng)前環(huán)境溫度下的聲速,以減小測量目標(biāo)距離時的誤差。具體公式如(2)所示
3.3 下位機軟件設(shè)計
整體系統(tǒng)采用上位機與下位機分別編程的方法,開發(fā)環(huán)境為Keil uVision5,Proteus8.6版本。下位機電路主程序流程圖如圖5所示,系統(tǒng)上電后,先進(jìn)行單片機,定時器初始化操作,然后啟動超聲波模塊和DS18B20溫度模塊開始測量目標(biāo)距離及環(huán)境溫度,處理測量數(shù)據(jù),將數(shù)據(jù)發(fā)送給上位機。其中超聲波模塊程序流程圖如圖6所示,該模塊上電后先進(jìn)行初始化操作,隨后Trig引腳發(fā)出高電平,當(dāng)模塊接收到回波信號時,Echo引腳發(fā)出回響高電平信號,系統(tǒng)開始計算目標(biāo)距離。如果目標(biāo)距離小于20 cm,下位機電路中蜂鳴器響起。
3.4 上位機軟件設(shè)計
上位機電路主程序流程圖如圖7所示,系統(tǒng)上電后進(jìn)行初始化操作,然后接收下位機發(fā)送的數(shù)據(jù),進(jìn)行處理并將目標(biāo)距離實時顯示在LCD1602上,當(dāng)目標(biāo)距離小于20 cm時紅色LED亮起,反之綠色LED亮起。要使上位機和下位機之間可以相互通信,需設(shè)置相同的波特率,本實驗波特率為4 800 bit/s,定時器工作模式為16位。
4 實驗及結(jié)果分析
基于Proteus的溫控超聲波測距半物理仿真系統(tǒng)搭建好后如圖8所示,連接好RS-232-C異步串行接口后,將上位機與下位機上電啟動系統(tǒng)。以14 cm為目標(biāo)初始距離,每次增加20 cm,測量6組數(shù)據(jù),到114 cm為止。記錄測量數(shù)據(jù),與實際距離進(jìn)行比對分析,數(shù)據(jù)如表1所示。
從表1中可以看出,隨著目標(biāo)距離不斷增大,測量的誤差也在不斷增大,超聲波測距的誤差來源有很多,例如測量角度,溫度,代碼算法,電路等等。本文重點為介紹基于Proteus的半物理電路仿真技術(shù),且礙于篇幅限制,對誤差不做過多的分析和探討。
5 結(jié)語
本文設(shè)計了基于Proteus的溫控超聲波測距半物理仿真系統(tǒng),介紹了基于Proteus的半物理電路仿真技術(shù)的實現(xiàn)過程,為后續(xù)單片機開發(fā)學(xué)習(xí)過程中實物硬件短缺或易損,以及仿真軟件庫中缺少元器件模型,實驗現(xiàn)象不明顯等問題提供了一個切實可行的解決方案。經(jīng)實驗證明,該技術(shù)簡化了設(shè)計的過程,提了高軟硬件的兼容性,節(jié)約了成本,提高了開發(fā)效率,為之后的學(xué)習(xí)、開發(fā)提供了新思路。由此得出,本設(shè)計具有一定的參考和推廣價值。同時,實驗的過程中發(fā)現(xiàn)傳統(tǒng)USB串行總線式接口也可實現(xiàn)實物電路與虛擬仿真電路之間的通信。受限于篇幅和本人水平,該半物理仿真系統(tǒng)還存在數(shù)據(jù)誤差等問題,后續(xù)可通過電路濾波,改進(jìn)算法或使用更為精密的超聲波模塊進(jìn)行改進(jìn)。
參考文獻(xiàn):
[1] 李承隆.電子產(chǎn)品熱設(shè)計及熱仿真技術(shù)應(yīng)用的研究[D].成都:電子科技大學(xué),2010.
[2] 周靈彬,張靖武.PROTEUS的單片機教學(xué)與應(yīng)用仿真[J].單片機與嵌入式系統(tǒng)應(yīng)用,2008(01):76-79.
[3] 童小利,金秋春,崔建峰.基于Proteus的半物理電路仿真[J].機床與液壓,2011,39(15):119-122.
[4] 劉鄒,丁青青.基于Proteus的硬件在回路仿真[J].計算機仿真, 2009,26(02):312-314,328.
[5] 張勁松.基于Proteus的硬件在回路仿真[J].科技信息,2013,(25): 36-37.
[6] 侯友軒,裴???,崔平遠(yuǎn),等.一種基于傳感器觸發(fā)的組合導(dǎo)航系統(tǒng)平臺[J].計算機測量與控制,2010,18(08):1844-1846.
[7] 胡訓(xùn)智.基于GPRS的遠(yuǎn)程醫(yī)療數(shù)據(jù)傳輸及管理系統(tǒng)設(shè)計[D].呼和浩特:內(nèi)蒙古大學(xué),2011.
[8] 王廷毓,仝玉強.一種六足仿生機器人的避障和防跌落功能設(shè)計[J].電子世界,2018(08):148-149.
[9] 謝翔.教育機器人智能搬運優(yōu)化設(shè)計[J].科技展望,2014(18): 212-214.
[10] 曹美霞.單片機與數(shù)字溫度傳感器DS18B20的接口設(shè)計[J].電子制作,2014(11):9-10.
[11] 柳春林.基于ONENET云平臺的智能魚缸研究報告[J].科學(xué)技術(shù)創(chuàng)新,2019(04):53-55.