基于AT89C52的多超聲信號融合處理系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時隨地手機(jī)看文章
關(guān)鍵字:多通道;超聲測距;信息融合
1 引言
在移動機(jī)器人超聲測距導(dǎo)航系統(tǒng)中,單一的超聲波傳感器因其發(fā)射角等固有的不足難以完成對環(huán)境的全面探測。因而在實(shí)踐中,常常用到大量的超聲傳感器陣列。
然而,專門針對這種情況設(shè)計(jì)的數(shù)據(jù)采集處理平臺卻很少。同時,在遠(yuǎn)距離測量時,超聲回波信號很微弱并受到了較大噪聲干擾。在這種情況下,傳統(tǒng)的基于電路方法的超聲測距儀很難實(shí)現(xiàn)回波的提取,常常造成誤判。而已有的基于PC機(jī)的數(shù)據(jù)采集卡卻又帶來了便攜性和適用性差的問題[1]。
本文介紹的基于單片機(jī)的數(shù)字信號采集處理系統(tǒng),針對上述情況,采用了八通道設(shè)計(jì)以適合多超聲傳感器信號的采集,并引入了數(shù)字信號處理算法,通過對超聲回波信號的數(shù)字處理,可以精確地檢測回波,完成高精度測距的任務(wù)。另外基于該平臺進(jìn)行的多傳感器數(shù)據(jù)融合處理使得移動機(jī)器人可以獲得更準(zhǔn)確的環(huán)境信息,提高了環(huán)境感知的能力。
2 系統(tǒng)硬件電路設(shè)計(jì)
圖1 系統(tǒng)結(jié)構(gòu)框圖
如圖1所示,系統(tǒng)的主要硬件組成包括:前端微弱信號調(diào)理模塊、A/D轉(zhuǎn)換模塊、微控制器模塊、存儲器模塊、串行通訊模塊以及擴(kuò)展模塊等。多個超聲波換能器獲取的回波信號輸入系統(tǒng)后,經(jīng)過各自前端調(diào)理電路處理,采樣轉(zhuǎn)化為數(shù)字信號,然后存放至系統(tǒng)SRAM芯片中。AT89C52單片機(jī)從SRAM芯片中讀取數(shù)據(jù)并進(jìn)行回波提取處理以及多通道融合處理,最后根據(jù)需要將處理結(jié)果通過RS-232標(biāo)準(zhǔn)接口送往上位PC機(jī)。同時,PC機(jī)的控制指令也可以通過該接口傳送給單片機(jī)。
2.1微弱信號調(diào)理電路
在一般情況下,超聲回波信號十分微弱,轉(zhuǎn)換電信號的幅值也較小,必須采用高增益的放大電路。同時,復(fù)雜的工作環(huán)境又使得超聲回波信號中包含了較多的噪聲干擾。因此在設(shè)計(jì)調(diào)理電路時,既要進(jìn)行信號的放大又要做適當(dāng)?shù)臑V波處理。
由于系統(tǒng)要對多個超聲傳感器信號進(jìn)行同步處理,因而設(shè)計(jì)了八通道并行的調(diào)理電路。每一個通道如圖2所示。電路采用兩級AD公司的高性能、超低失調(diào)電壓運(yùn)算放大器OP07串連實(shí)現(xiàn)信號的放大,并采用LM741芯片完成低通濾波處理。其中,在信號放大的第二級上設(shè)計(jì)了兩個精密電位器R5和R6,其功能分別用于放大倍數(shù)和零點(diǎn)漂移的調(diào)整,以適合信號的下一步處理。
圖2 微弱信號調(diào)理電路
超聲回波信號經(jīng)過調(diào)理電路后,八個輸出端(通道一至通道八)將依次連接到A/D轉(zhuǎn)換器的八個模擬信號輸入端,以完成信號的模數(shù)轉(zhuǎn)換處理。
2.2 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換電路采用了MAXIM公司推出的8位8通道高速模數(shù)轉(zhuǎn)換芯片MAX158[2]。該芯片具有轉(zhuǎn)換速度快、功耗低、精度高等特點(diǎn)。每通道轉(zhuǎn)換時間僅為2.5μs,能夠滿足移動機(jī)器人導(dǎo)航時實(shí)時信號處理的要求。
MAX158芯片的外部模擬信號輸入端AIN1-AIN8分別連接八路來自信號調(diào)理電路的超聲回波信號,DB0-DB7端為轉(zhuǎn)換結(jié)果的三態(tài)數(shù)據(jù)緩沖輸出端,連接AT89C52單片機(jī)的八位數(shù)據(jù)線。 端為片選信號輸入端,片選信號來自單片機(jī)的P1.4腳。REF+和REF-為參考電壓的正負(fù)極輸入端(分別對應(yīng)全為1和全為0的輸出),連接 +5V標(biāo)準(zhǔn)電壓和GND。A0-A2端控制了芯片內(nèi)部的多路開關(guān)。MAX158根據(jù)這三個端口的輸入信號選擇通道,并對此通道模擬量進(jìn)行跟蹤和保持。
MAX158芯片提供了兩種不同的工作方式,即MODE0和MODE1。系統(tǒng)采用MODE1流水線讀數(shù)方式,工作時序如圖3所示:一個讀信號(置 端和 端為低電平)會啟動一個新的轉(zhuǎn)換,并隨即取走上一次轉(zhuǎn)換的結(jié)果。兩個讀信號至少間隔2.5μs以保證數(shù)據(jù)的轉(zhuǎn)換和讀取。 端在 端或 端的上升沿轉(zhuǎn)為高電平,并在一次轉(zhuǎn)換過程結(jié)束時出現(xiàn)低電平。
2.3 微控制器模塊
系統(tǒng)采用的AT89C52型單片機(jī)內(nèi)含8KB的Flash程序存儲器、256字節(jié)的RAM、具有32根I/O 線、3個可編程定時器[3]。相比其他類型單片機(jī)而言,AT89C52單片機(jī)具有較多的片內(nèi)資源, 既保證了數(shù)據(jù)處理代碼的存儲空間,又能夠在很少外圍電路的情況下構(gòu)成功能完善的信號采集系統(tǒng)。系統(tǒng)部分電路連接如圖4所示。
圖4 系統(tǒng)部分電路連接圖
2.4 存儲器模塊
由于系統(tǒng)要實(shí)時采集多路傳感器信號,對數(shù)據(jù)存儲要求較大。因此我們選用了可存儲256K*8位信息的DCM8256芯片。DCM系列高速數(shù)據(jù)不揮發(fā)存儲器,具有體積小巧,讀/寫速度快(小于100ns、可達(dá)50ns),讀/寫方式簡單的優(yōu)點(diǎn),可在-40℃-+85℃溫度下可靠工作,并且即使在有特殊干擾的情況下(如強(qiáng)磁場、電源急劇反復(fù)波動等),也能達(dá)到萬無一失保存數(shù)據(jù)的效果,因而十分適合移動機(jī)器人野外作業(yè)的需要。
由于AT89C52單片機(jī)的最大尋址空間為64K,而DCM8256的空間為256K,因而要對尋址進(jìn)行擴(kuò)展。地址擴(kuò)展的方式有兩種,一種方法是DCM8256的低16位地址直接與MPU的地址線相連,而高兩位地址由硬件邏輯實(shí)現(xiàn);另一種方法是利用MPU的I/O口進(jìn)行擴(kuò)展。第一種方法雖然占用I/O資源較少,但電路復(fù)雜,需要額外的硬件。系統(tǒng)采用第二種方法,如圖4右半部分所示,將DCM8256芯片的A16端和A17端分別連接到AT89C52單片機(jī)的P1.6端和P1.7端,片選信號接到P1.5端上。尋址操作可以通過簡單的軟件編程來實(shí)現(xiàn)。
2.5 串口通訊模塊
在移動機(jī)器人超聲測距導(dǎo)航系統(tǒng)中,超聲測距的結(jié)果要上傳至移動機(jī)器人的主處理器,由其控制機(jī)器人采取相應(yīng)的對策;主處理器也要發(fā)送指令控制超聲數(shù)據(jù)的采集和處理。因此單片機(jī)和主處理器之間的通訊是整個系統(tǒng)不可或缺的一個組成部分。
在我們的系統(tǒng)中,AT89C52單片機(jī)為下位機(jī),移動機(jī)器人主處理器為上位機(jī),二者通過RS-232串行口接收或上傳數(shù)據(jù)和指令。在此,系統(tǒng)使用了集成電平轉(zhuǎn)換芯片MAX232來進(jìn)行RS232C/TTL 電平轉(zhuǎn)換。MAX232的引腳11和引腳12直接和AT89C52的TXD、RXD串行口連接,引腳13和引腳14與RS232連接[4]。
另外,由于超聲測距系統(tǒng)受環(huán)境因素影響較大,在測量時要考慮到環(huán)境溫度、自身速度等相關(guān)信息。對此系統(tǒng)額外采用了擴(kuò)展模塊設(shè)計(jì),在電路中集成了溫度、速度測量的電氣處理模塊,方便信息的綜合分析。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件主要由單片機(jī)處理軟件和PC機(jī)監(jiān)控軟件兩部分組成。
3.1 單片機(jī)軟件設(shè)計(jì)
單片機(jī)軟件主要實(shí)現(xiàn)數(shù)據(jù)的采集和存儲、回波的數(shù)字處理以及串口通訊等功能。主流程框架如圖5所示。根據(jù)超聲波測距具有的周期性特點(diǎn),系統(tǒng)通過PC機(jī)設(shè)定單片機(jī)的采集周期。運(yùn)行一次采集存儲子程序即完成一個周期的采集,然后系統(tǒng)調(diào)用數(shù)據(jù)處理子程序進(jìn)行回波信號的數(shù)字處理,并根據(jù)串口命令使用通訊子程序?qū)⒔Y(jié)果發(fā)送至PC機(jī)。
圖5 單片機(jī)軟件主框架 圖6 采集存儲子程序流程
在采集存儲子程序中,每次模數(shù)轉(zhuǎn)換結(jié)束時對SRAM頻繁的開關(guān)操作會占用系統(tǒng)很大的時空開銷,影響系統(tǒng)的實(shí)時性。對此,系統(tǒng)采用了增設(shè)緩沖區(qū)的方法。每次A/D轉(zhuǎn)換結(jié)束,數(shù)據(jù)被送往開辟在單片機(jī)內(nèi)部的緩沖區(qū)而不是立即寫入外存。當(dāng)八個通道采集完一輪后,再將緩沖區(qū)的內(nèi)容一起寫入外部存儲器(流程如圖6所示)。這樣,在保證采樣頻率一致的前提下有效的提高了系統(tǒng)的實(shí)時性。
3.2 PC機(jī)軟件設(shè)計(jì)
系統(tǒng)監(jiān)控軟件使用VC++6.0語言開發(fā),它的作用是通過串口命令控制單片機(jī)工作,并抽象硬件設(shè)計(jì),為移動機(jī)器人導(dǎo)航提供環(huán)境信息。
應(yīng)用該軟件,可以實(shí)現(xiàn)PC機(jī)對單片機(jī)的參數(shù)及命令設(shè)定、數(shù)據(jù)查詢、數(shù)據(jù)存取以及曲線繪制等功能,并可以通過對數(shù)據(jù)的進(jìn)一步融合處理,實(shí)時獲取障礙物的距離、位置等信息,完成當(dāng)前作業(yè)環(huán)境的建模,實(shí)現(xiàn)環(huán)境感知。軟件的運(yùn)行界面如圖7所示。
4 小結(jié)
圖7 軟件運(yùn)行界面
本系統(tǒng)專門針對移動機(jī)器人導(dǎo)航時的多超聲傳感器信息融合應(yīng)用而設(shè)計(jì)。經(jīng)實(shí)驗(yàn)證明,系統(tǒng)簡單實(shí)用、穩(wěn)定可靠,完全達(dá)到設(shè)計(jì)目的。
本文作者創(chuàng)新點(diǎn):(1)結(jié)合移動機(jī)器人多超聲測距的實(shí)際,設(shè)計(jì)了多通道的融合處理系統(tǒng),軟硬件簡單明了,工作可靠,特別適合多傳感器信息融合應(yīng)用。(2)良好的噪聲抑制能力和較高的測量精度。由于超聲回波信號十分微弱并含有噪聲,S/N較小,抗干擾性不強(qiáng)。以往基于模擬電路設(shè)定閾值來判斷回波的做法往往會受到噪聲信號的干擾而造成誤判。本系統(tǒng)使用數(shù)字信號處理方法,將超聲回波數(shù)字處理,減少了誤判的概率,解決了高噪聲背景下的回波識別問題,增加了系統(tǒng)的可靠性。(3)系統(tǒng)基于單片機(jī)設(shè)計(jì),電路板設(shè)計(jì)合理緊湊,使得系統(tǒng)具有良好的便攜性,相比于基于PC機(jī)的數(shù)據(jù)采集卡更加適合移動機(jī)器人應(yīng)用。(4)良好的抗干擾能力。通過PCB 板上的一些設(shè)計(jì)及工控機(jī)箱來加強(qiáng)對電磁干擾、電壓擾動的適應(yīng)能力, 能夠適應(yīng)惡劣的工作環(huán)境。
參考文獻(xiàn):
[1]曹茂永,王霞.超聲測距數(shù)字信號采集系統(tǒng)[J].電測與儀表,2000,37(8):26-27
[2]MAXIM.CMOS High-Speed 8-Bit ADCs with Multiplexer and Reference MAX158[Z].1996
[3]王幸之,鐘愛琴等.AT89系列單片機(jī)原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社2004:20-21
[4]高澤利,李穎.六通道數(shù)據(jù)采集及處理系統(tǒng)的研制[J].微計(jì)算機(jī)信息,2005,21(9-1): 94-97