張 磊,董改花,賈利英,李海曹
(1.蘇州經貿職業(yè)技術學院,江蘇 蘇州 215009; 2.太原十六中,山西 太原 030021)
超聲波傳感器測距計算簡單、成本低、能實時控制且不受周圍惡劣環(huán)境影響,在測量精度上完全能達到工業(yè)應用的要求。但是,目前大多數(shù)超聲波測距控制是用單片機作為微處理器進行測距,常用單片機51系列主頻僅有12 MHz,單片機采集數(shù)據(jù)速率不足以滿足一些上層對速度要求較高的先進控制系統(tǒng),嚴重地影響了上層算法控制的實施。目前上層控制系統(tǒng)從下層測距模塊采集的數(shù)據(jù)值通常采用一些通用的性能比較好的標準化串口, 比如SCI串口、eCAN口、SPI接口[1]等。
由于DSP芯片其CPU主頻高達150 MHz,完全能夠滿足上層控制系統(tǒng)對數(shù)據(jù)采集速率的需求,本文選用了TI公司生產的TMS320F2812 DSP為微處理器,利用型號為HC-SR04的超聲波傳感器進行測距,對其進行SCI標準化接口設計。
SCI(Serial Communication Interface,串口通信接口)[2]為一對一的全雙工異步通信,是具有接收與發(fā)送的異步串口。其中RS232是SCI串行通信的一種物理接口電氣標準,適合短距離(小于20 m)兩個設備間通信。超聲波傳感器測距模塊SCI標準化總體設計方案架構如圖1所示。
從圖1看出,超聲波測距電路作為傳感器輸入信號,經過微處理器TMS320F2812 DSP對信號處理之后,輸出適合SCI串口的通用標準信號,該信號通過USB轉RS232適配器傳到上位機。
傳感器輸入選用超聲波傳感器HC-SR04,其控制原理簡單,測距范圍為20 mm~4 000 mm,測量范圍廣。在使用HC-SR04超聲波模塊來測量周圍障礙物距離時,將至少為10 μs的高電平施加在超聲波電路板的Trig腳,就會在反饋Echo引腳接收到一個高電平,其測量距離由下式計算[3]:
(1)
且
v=331.4+0.607T.
(2)
其中:L為超聲波到障礙物間的距離,m;t為超聲波發(fā)射與接收的時間差,s;v為超聲波在空氣中的傳播速度,m/s;T為測量時的實際溫度。
式(2)是聲波在空氣中傳播的速度對實際環(huán)境溫度的矯正值[4],這里的t即為HC-SR04的Echo腳輸出高電平的時間長,只要程序測量出此時間長即可以求出傳感器與障礙物之間的距離,為避障控制采集到相應的距離數(shù)據(jù)。
圖1 超聲波測距模塊標準化SCI串口設計方案
SCI標準化硬件電路接線圖見圖2。本系統(tǒng)采用了超聲波傳感器HC-SR04,TMS320F2812 DSP芯片的通用IO口GPIOA0輸出至少10 μs脈沖信號給Trig引腳,反饋引腳Echo收到一個高電平,將此高電平輸出給DSP芯片通用IO口GPIOF0進行計時。GPIOA0口為功能引腳PWM1,GPIOF0口為功能引腳SPISIMOA,將其功能口均更改設置為普通IO口,GPIOA0口為輸出,GPIOF0口為輸入。
RS232線路驅動收發(fā)器MAX3232是3.3 V電源的一個多通道收發(fā)器,其連接線路簡單、可靠性高,故而受到大家的青睞。由于是SCI接口標準化設計,必須使用DSP芯片GPIO功能引腳SCIRXDA和SCITXDA,此引腳分別為GPIOF4與GPIOF5。SCITXDA與SCIRXDA分別接MAX3232的T1IN腳和R1OUT腳,MAX3232的T1OUT和R1IN分別接RS232串口的對應引腳RX和TX。
圖2 超聲波傳感器控制模塊SCI標準化硬件電路
本模塊設計將障礙物距離通過SCI的一種RS232電氣標準串口USB轉RS232適配器傳到上位機,同時用四位七段數(shù)碼管顯示。
SCI標準化軟件設計主要步驟如下:
(1) 配置GPIO端口初始化。SCI標準化將所有使用的通用GPIO口進行初始化,改變其功能及初始值。具體初始化思路見圖3。
(2) SCI波特率的配置。本論文選用的是SCIA模塊,對其進行初始化,采用SCI通信的數(shù)據(jù)格式為8位數(shù)據(jù)位、1位停止位、無極性校驗,波特率為19 200
Baud,SCIHBAUD為0,SCILBAUD為0xF3,同時使能SCIA發(fā)送和接收。
(3) SCI模塊發(fā)送和接收。當SCI模塊接收緩沖器SCIRXBUF內有數(shù)據(jù)時,其標志位RXRDY為高,當數(shù)據(jù)被讀走后,RXRDY自動清零。同理,當發(fā)送緩沖器SCITXBUF為空時,其標志位TXRDY為高,當CPU將數(shù)據(jù)寫入SCITXBUF后,TXRDY自動清零。通過查詢SCIRXST寄存器的RXRDY標志位來確認接收準備是否就緒,查詢SCICTL2寄存器的TXRDY標志位來確認發(fā)送準備是否就緒。
(4) 超聲波測距主程序。根據(jù)超聲波測距原理,本超聲波傳感器控制模塊采用TMS320F2812 DSP芯片內定時器T0中斷進行處理。定時T0中斷時,主要負責發(fā)送觸發(fā)傳感器HC-SR04工作的脈沖,接收反饋電平并計算其電平持續(xù)的時間長度。通過式(1)和式(2)計算超聲波到障礙物的距離,將距離值通過四位七段數(shù)碼管顯示。發(fā)送數(shù)據(jù)主要程序如下:
if((SciaTx_Ready() == 1))
{SciaRegs.SCITXBUF = Sci_VarRx[1];
while(!SciaTx_Ready()) {}
SciaRegs.SCITXBUF = Sci_VarRx[2]; }
為驗證超聲波控制模塊SCI標準化接口的實際測距能力,利用TMS320F2812 DSP開發(fā)板進行編程調試,利用該開發(fā)板SCI標準化接口,通過USB轉RS232與SCI標準串口連接,將實測距離值上傳到上位機。在試驗中人為設置障礙物的距離,圖4中四位數(shù)碼管顯示此時障礙物的實際測量距離為310 mm。
圖5為上傳到上位機上的障礙物距離值,顯示出的結果為311 mm,同時系統(tǒng)自動將其轉為十六進制數(shù)據(jù),311 mm轉成十六進制數(shù)為137 H。
圖3 SCI標準化GPIO初始化思路圖4超聲波SCI標準化模塊測距圖5上位機現(xiàn)場數(shù)據(jù)采集
由于本超聲波傳感器控制SCI接口模塊在測量過程中受到周圍環(huán)境的噪聲干擾,因此實際測量值與上位機數(shù)據(jù)采集之間存在一定的誤差,相對誤差為0.3%,完全滿足實際應用要求。測距時要求不能帶電連接,否則影響超聲波電路板的正常工作。
本文以高頻處理器TMS320F2812 DSP為核心,對通用超聲波傳感器電路HC-SR04進行SCI標準化接口設計,經試驗驗證與上位機通信系統(tǒng)可靠、功耗低、抗干擾能力強,方便上位機進行數(shù)據(jù)實時采集。