賀洪江,程 琳
(1.河北工程大學(xué)裝備制造學(xué)院,河北邯鄲 056038;2.河北工程大學(xué)信息與電氣工程學(xué)院,河北邯鄲 056038)
超聲波測距技術(shù)是基于無目視能力的生物(蝙蝠等)防御及捕捉獵物生存的原理,利用超聲波在空氣媒介中傳播,碰到障礙物反射回來的時間間隔長短及被反射波的強(qiáng)弱判斷障礙物的性質(zhì)和位置的方法[1]。它是一種非接觸式檢測方式,不受光照度、電磁場、被測物色彩等因素的影響,信息處理簡單,速度快,成本低[2-4]。在移動機(jī)器人避障和定位、液位測量、物體識別、汽車防撞等方面有廣泛應(yīng)用。文中采用模塊化設(shè)計方案,設(shè)計一個基于STM32F103C8T6和CX2016紅外解碼芯片的超聲波測距儀,通過RS-485總線與主控制器組網(wǎng),結(jié)合MODBUS協(xié)議,為工業(yè)應(yīng)用領(lǐng)域提供距離信息和輔助視覺信息。
測距控制系統(tǒng)的硬件組成結(jié)構(gòu)示意圖如圖1所示。
圖1 測距控制系統(tǒng)硬件結(jié)構(gòu)示意圖
1.1核心控制器
核心控制器采用基于Cortex-M3內(nèi)核的32位增強(qiáng)型閃存微控制器STM32F103C8T6,該芯片主頻和定時器的頻率可高達(dá)72 MHz,定時器的高分辨率為測量的高精度提供了保證。超聲波的發(fā)射選用定時器PWM功能來驅(qū)動,回波信號的接收選用定時器的輸入捕獲功能。開始測距時,定時器開啟的同時啟動PWM和輸入捕獲,能完全消除啟動發(fā)射和啟動計時之間的偏差,從而提高測量精度。同時其內(nèi)部自帶溫度傳感器,豐富的片上資源簡化了系統(tǒng)硬件,同時降低了系統(tǒng)功耗。
1.2測距方法
1.3總線的選擇
考慮到超聲波測距儀一般連接在工業(yè)現(xiàn)場,與主控制器距離可能較遠(yuǎn),并且組網(wǎng)后測距儀之間不需要通信,因此選用RS-485總線方式。RS-485總線支持多點(diǎn)連接,且采用平衡發(fā)送和差分接收,抗共模干擾能力強(qiáng),即抗噪聲干擾性好,與上位機(jī)之間通訊時通信速率較高。其最大傳輸距離可以達(dá)到1 200 m,適合遠(yuǎn)距離傳輸。還具有可靠性高、性能價格比高等優(yōu)點(diǎn)。
超聲波測距儀的硬件設(shè)計包括測距最小系統(tǒng)、發(fā)射電路、接收電路、通信接口電路等。
2.1測距最小系統(tǒng)
測距儀的最小系統(tǒng)如圖2所示,核心控制器為STM32F103C8T6。
圖2 測距最小系統(tǒng)
2.2發(fā)射電路
超聲波發(fā)射電路由超聲波激勵電路和超聲波發(fā)射探頭2個部分組成,如圖3所示。其工作原理為:由STM32的高級定時器TIM1輸出40 kHz的激勵脈沖信號,經(jīng)P26引腳(網(wǎng)絡(luò)標(biāo)號SEND)輸入至升壓單元。
升壓單元由一對復(fù)合管和脈沖變壓器組成。復(fù)合管有很高的電流放大系數(shù),脈沖變壓器將5 V電壓升至12 V.脈沖信號經(jīng)放大、升壓后輸出,經(jīng)激發(fā)探頭發(fā)射出超聲波。該電路的優(yōu)點(diǎn)是消除了電路諧振,缺點(diǎn)是需2種電壓。
圖3 超聲波發(fā)射電路
2.3接收電路
超聲波接收電路是超聲波測距中關(guān)鍵的一部分,如圖4所示。該設(shè)計選用集成電路CX20106。CX20106是專用的40 kHz紅外信號接收芯片,具有很高的信號檢測靈敏度且能有效減少電路之間的互相干擾,減少電噪聲[5]??捎脕硗瓿尚盘柕南薹⒎糯?、峰值檢波、帶通濾波和波形整形等功能。其中的前置放大器具有自動增益控制功能,能夠保證在超聲傳感器接收近距離內(nèi)輸入信號很強(qiáng)時放大器不會過載,接收較遠(yuǎn)反射信號輸出微弱電壓時,放大器有較高的增益。R8可調(diào)節(jié)帶通濾波器的中心頻率,不需要外接電感,可避免外磁場對電路的干擾,可靠性較高。
圖4 超聲波接收電路
2.4通信接口電路
通信接口電路如圖5所示,電平轉(zhuǎn)換芯片U4選用MAX485,為半雙工通信方式。P1為總線接口端子??偩€末端接120 Ω的匹配電阻,可吸收總線上的反射信號,使得正常的傳輸信號無毛刺,便于遠(yuǎn)距離傳輸。
圖5 通信接口電路
該測距系統(tǒng)軟件設(shè)計包括:主程序、超聲波發(fā)射子程序、測距子程序、串口通信子程序等。
3.1軟件設(shè)計
STM32F103C8T6是該系統(tǒng)的核心和靈魂,由它來控制系統(tǒng)各模塊協(xié)調(diào)工作。STM32具有很高的指令效率和很強(qiáng)的性能,對中斷事件的響應(yīng)比其他單片機(jī)更迅速,因而具有更高的執(zhí)行效率。其內(nèi)部還帶有硬件除法器,節(jié)約了計算時間,提高了程序效率。
測距軟件的基本流程:首先對系統(tǒng)進(jìn)行初始化,通過STM32的PWM模塊產(chǎn)生40 kHz的脈沖方波,并通過其輸入捕捉模塊捕獲回波信號。待回波進(jìn)入接收電路,經(jīng)放大/整形等硬件處理后,進(jìn)入核心控制器。調(diào)用溫度測量子程序和測距子程序按照公式s=vt/2計算出被測距離。最后按實際需求通過串口通信模塊將測量結(jié)果傳出。軟件主程序流程如圖6所示。
圖6 主程序流程圖
3.2MODBUS協(xié)議選擇
MODBUS是工業(yè)現(xiàn)場設(shè)備(如DCS、PLC、智能儀表等)中使用很廣泛的一種總線協(xié)議,支持多種電氣接口,如RS-232、RS-485、以太網(wǎng)等。MODBUS協(xié)議采用主從工作方式,允許一臺主機(jī)和多臺從機(jī)通信,從機(jī)地址由用戶設(shè)定。
標(biāo)準(zhǔn)的MODBUS網(wǎng)絡(luò)通信可設(shè)置為2種傳輸模式(ASCII或RTU)。ASCII模式消息中的每個8B都作為2個ASCII字符發(fā)送,采用縱向冗長檢測(LRC)校驗。ASCII模式字符發(fā)送的時間間隔可達(dá)到1 s而不產(chǎn)生錯誤,處理信息精確且時間短,易于測距儀與上位機(jī)之間的通信傳輸,因此該系統(tǒng)選用ASCII模式。串口通信協(xié)議接收和發(fā)送幀格式如表1所示。
表1 接收和發(fā)送的幀格式
規(guī)定主機(jī)地址為0x00,讀取距離命令為0x0A,如主機(jī)需要1號模塊(地址為0x01)的距離數(shù)據(jù)則:
主機(jī)發(fā)送:0x3A 0x01 0x0A 0x00 0xF5
0xOD 0xOA
從機(jī)返回:0x3A 0x00 0x0A 0x1
1 0x22 0xC3
0xOD 0xOA
返回幀中:0x11、0x22,為有效數(shù)據(jù),轉(zhuǎn)換成十進(jìn)制時低位在后,高位在前。
該測距儀的測量范圍為0.4~5 m.根據(jù)設(shè)計的電路和軟件,測量數(shù)據(jù)如表2所示,從所測量的數(shù)據(jù)可得出該測距儀的測量誤差基本控制在1%,測量精度高,能夠滿足工業(yè)現(xiàn)場需求。
表2 超聲波測距儀測量數(shù)據(jù)
該系統(tǒng)具有制作簡單,工作穩(wěn)定,硬件成本
低,可進(jìn)行功能擴(kuò)展等優(yōu)點(diǎn)。通過合理選用STM32F103C8T6和MODBUS通訊協(xié)議組成方案,提高了測量精度,抗干擾性能得到了較大的改善,完成一次測量的時間也縮短,并能及時向上位機(jī)主控制器提供測距服務(wù)。
參考文獻(xiàn):
[1]來清民,高風(fēng)昕.超聲波測距在行走機(jī)器人感知系統(tǒng)中的應(yīng)用.微計算機(jī)信息,2006,22(5):206-208.
[2]趙海鳴,卜英勇,王紀(jì)嬋,等.一種高精度超聲波測距方法的研究.湖南科技大學(xué)學(xué)報:自然科學(xué)版,2006,21(3):35-38.
[3]肖志紅,漢澤西.一種基于單片機(jī)的超聲測距系統(tǒng)的設(shè)計.現(xiàn)代電子技術(shù),2006,29(19):97-98,101.
[4]司春寧,LU W K.提高超聲波測距系統(tǒng)精度的研究.儀表技術(shù),2008(8):23-25.
[5]秦偉,顏文?。贑X20106A的超聲波倒車?yán)走_(dá)設(shè)計.壓電與聲光,2011,33(1):162-163.
作者簡介:賀洪江(1964—),教授,碩士,主要研究方向為計算機(jī)檢測與控制、傳感器技術(shù)和嵌入式系統(tǒng)應(yīng)用。
E-mail:hh6410@126.com
程琳(1985—),碩士研究生,主要研究方向為計算機(jī)檢測與控制。
E-mail:chenglin9419@yeah.net