黃連麗,周奎,朱賢成
(湖北汽車工業(yè)學(xué)院電氣與信息工程學(xué)院,湖北十堰442002)
隨著汽車在日常生活中的普及,汽車的安全性也得到了人們的重視,特別是交通事故對(duì)人們?cè)斐傻挠绊?,使得汽車安全技術(shù)發(fā)展極為迅速。大量數(shù)據(jù)顯示,汽車交通事故中大多數(shù)是由于司機(jī)的反應(yīng)不及所引起的,其中又以追尾事故的車輛相撞為主。歐洲的一項(xiàng)研究表明:駕駛員只要在碰撞危險(xiǎn)的0.5 s 之前得到“預(yù)警”,就可以避免至少60%的追尾撞車事故,30%的迎面撞車事故,50%的路面相關(guān)事故;若有1 s的“預(yù)警”時(shí)間,則可避免90%的事故發(fā)生[1]。奔馳公司也對(duì)各類交通事故的研究表明,若駕駛員能夠提早1~2 s 意識(shí)到有事故危險(xiǎn)并采取相應(yīng)的正確措施,則絕大多數(shù)交通事故都是可以避免的[2]。
因此,研究汽車主動(dòng)防撞系統(tǒng)來(lái)降低交通事故的發(fā)生率,意義重大。而如何測(cè)量與采集車與目標(biāo)之間的距離是汽車主動(dòng)防撞系統(tǒng)的基礎(chǔ),也是關(guān)鍵技術(shù)之一。通過(guò)對(duì)汽車主動(dòng)防撞系統(tǒng)的幾種主流測(cè)距方法的性能比較,綜合經(jīng)濟(jì)條件、實(shí)驗(yàn)室條件、所測(cè)距離以及各種測(cè)距方法的優(yōu)缺點(diǎn),選擇激光雷達(dá)測(cè)距方法。
激光雷達(dá)是激光技術(shù)與現(xiàn)代光電探測(cè)技術(shù)結(jié)合的先進(jìn)探測(cè)設(shè)備。激光雷達(dá)由發(fā)射系統(tǒng)、接收系統(tǒng)和信息處理系統(tǒng)等組成。發(fā)射系統(tǒng)是各種形式的激光器,如二氧化碳激光器、摻釹釔鋁石榴石激光器、半導(dǎo)體激光器及波長(zhǎng)可調(diào)諧的固體激光器等;接收系統(tǒng)采用望遠(yuǎn)鏡和各種形式的光電探測(cè)器,如光電倍增管、半導(dǎo)體光電二極管、雪崩光電二極管、紅外和可見(jiàn)光多元探測(cè)器件等[3]。
激光雷達(dá)用激光器作為發(fā)射光源,是采用光電探測(cè)技術(shù)手段的主動(dòng)遙感設(shè)備。激光測(cè)量系統(tǒng)基本原理為由發(fā)射系統(tǒng)發(fā)送一激光信號(hào),經(jīng)目標(biāo)反射后被接收系統(tǒng)收集,通過(guò)測(cè)量反射光的運(yùn)行時(shí)間而確定目標(biāo)的距離。至于目標(biāo)的徑向速度,可以由反射光的多普勒頻移來(lái)確定,也可以測(cè)量2個(gè)或多個(gè)距離,并計(jì)算其變化率而求得速度[4]。
采用德國(guó)SICK 公司的LMS221型激光雷達(dá),其數(shù)據(jù)格式和傳統(tǒng)的串口一樣,每字節(jié)10位,包含1位開(kāi)始位、8位數(shù)據(jù)位和1位結(jié)束位。激光雷達(dá)的報(bào)文結(jié)構(gòu)如表1所示。STX 即報(bào)文頭,占用8位的1個(gè)字節(jié),以02H 開(kāi)頭;Adress為目標(biāo)地址,占用8位的1個(gè)字節(jié),地址為用戶地址,這些地址可以在各個(gè)測(cè)量設(shè)備的端口應(yīng)用;Length 即不包含校驗(yàn)和的序列字節(jié)長(zhǎng)度,占用2個(gè)字節(jié);Command/Response 即發(fā)送命令或是回復(fù)命令,占用1個(gè)字節(jié);Data為發(fā)送報(bào)文的數(shù)據(jù)部分,占用N*8個(gè)字節(jié);Checksum為對(duì)整幀數(shù)據(jù),從STX到狀態(tài)標(biāo)記字節(jié)的CRC校驗(yàn),占用戶2個(gè)字節(jié)。
激光雷達(dá)的主要相關(guān)參數(shù)主要有測(cè)量距離、分辨率、角度分辨率、掃描頻率和掃描角度等。LMS221型激光雷達(dá)的測(cè)量距離范圍最大為80 m,測(cè)量距離分辨率為10 mm。其測(cè)量結(jié)果主要由2個(gè)字節(jié)的數(shù)據(jù)表示,高低字節(jié)值相加得到測(cè)量點(diǎn)的距離值,該結(jié)果乘以設(shè)定的分辨率就是目標(biāo)到雷達(dá)的徑向距離。
表1 LMS2XX激光雷達(dá)報(bào)文格式
1)用MSComm控件實(shí)現(xiàn)微機(jī)串口的數(shù)據(jù)通訊
MSComm 控件是Microsoft 提供的簡(jiǎn)化Windows 下串行通信編程的ActiveX 控件,“隱藏”了大部分串口通訊的底層運(yùn)行過(guò)程和許多煩瑣的處理過(guò)程,同時(shí)支持查詢方法和事件驅(qū)動(dòng)的機(jī)制,事件驅(qū)動(dòng)通訊是交互方式處理串口事務(wù)的一種非常有效的方法,特別適合Windows 程序的編寫。在串口通訊過(guò)程中,當(dāng)發(fā)送數(shù)據(jù)、收到數(shù)據(jù)或產(chǎn)生傳輸錯(cuò)誤時(shí),觸發(fā)MSComm 控件的OnComm 事件,然后可以通過(guò)判斷CommEvent 屬性值獲得事件類型,再根據(jù)事件類型進(jìn)行相應(yīng)數(shù)據(jù)處理。因此用其實(shí)現(xiàn)微機(jī)串口的數(shù)據(jù)通訊可以用較少的程序代碼輕松實(shí)現(xiàn)串口的訪問(wèn)和數(shù)據(jù)通訊。
2)采用MSComm事件驅(qū)動(dòng)方式采集數(shù)據(jù)
MSComm 串口控件數(shù)據(jù)接收方式有2種:a.在MSComm 事件中接收數(shù)據(jù)。這種方式能充分MSComm 控件的特性。OnComm 事件還可以檢查和處理通訊錯(cuò)誤;可以通過(guò)檢查CommEvent 屬性的值來(lái)查詢事件和錯(cuò)誤。對(duì)于不定長(zhǎng)數(shù)據(jù)以及對(duì)數(shù)據(jù)進(jìn)行處理比較復(fù)雜的情況,此法不是很方便。b.定時(shí)器輪循法采集數(shù)據(jù)。對(duì)于數(shù)據(jù)包方式收發(fā)數(shù)據(jù)以及不需實(shí)時(shí)響應(yīng)情況,用輪循法更好些。實(shí)際上輪循法最大的好處在于集中處理數(shù)據(jù)而且不太占用CPU。輪循法要注意定時(shí)采集的時(shí)間片段大小,這里用二進(jìn)制收發(fā)模式,使屬性RThreshold,SThreshold為0,屏蔽OnComm事件。
本實(shí)時(shí)數(shù)據(jù)采集處理程序采用MSComm 事件驅(qū)動(dòng)方式。MSComm_OnComm的事件處理程序只處理comEvReceive 事件。
3)串行數(shù)據(jù)的發(fā)送
在串行接收字程序當(dāng)中,首先去掉待發(fā)送數(shù)據(jù)中的空格,然后要確保待發(fā)送字節(jié)為0~F的十六進(jìn)制字符。得到正確格式的發(fā)送字節(jié)后,將其送入發(fā)送緩沖區(qū)中(MSComm.Output),最后再送入LMS221。
4)串行數(shù)據(jù)的接收
設(shè)置MSComm 控件的接收數(shù)據(jù)采用二進(jìn)制,即InputMode=comInput ModeBinary,但用Input 屬性讀取數(shù)據(jù)時(shí),不能直接賦值給Byte類型變量,只能通過(guò)先賦值給1個(gè)Variant類型變量,返回1個(gè)二進(jìn)制數(shù)據(jù)的數(shù)組,再轉(zhuǎn)換保存到Byte類型變量中。
設(shè)置MSComm 控件的接收中斷觸發(fā)值為1,即Rthreshold=1。以數(shù)據(jù)采集狀態(tài)為例,當(dāng)有1個(gè)串行字符進(jìn)入接收緩沖區(qū)后,觸發(fā)串行中斷事件。在串行中斷程序中,先取得接收緩沖區(qū)中的數(shù)據(jù),判斷是否為幀頭的開(kāi)始,若是再取得下一字節(jié)數(shù)據(jù),判斷是否為幀頭的第2個(gè)數(shù)據(jù),直到找到幀頭為止。找到幀頭后,其后數(shù)據(jù)便是測(cè)量數(shù)據(jù)與幀尾,找到測(cè)量數(shù)據(jù)并將其存入數(shù)據(jù)中,送入下一步處理[5]。
5)接收數(shù)據(jù)掃描繪圖
將掃描得到的數(shù)據(jù)進(jìn)行解析之后,得到的是極坐標(biāo)的數(shù)據(jù),將極坐標(biāo)轉(zhuǎn)換為直角坐標(biāo)的公式為
式中:R為由解析數(shù)據(jù)得到的測(cè)量點(diǎn)離原點(diǎn)的距離;θ為此點(diǎn)的掃描角度。
在程序設(shè)計(jì)過(guò)程中應(yīng)使掃描距離與掃描角度的值相吻合,以0.5°的角度分辨率為例:定義一個(gè)二維數(shù)組,用于暫存測(cè)量點(diǎn)距離和對(duì)應(yīng)的角度。將每一幀數(shù)據(jù)的第1個(gè)測(cè)量點(diǎn)數(shù)據(jù)賦給數(shù)組第1 列,再將其對(duì)應(yīng)的角度賦給數(shù)組第2 列相應(yīng)的位置,依次把一幀數(shù)據(jù)存于這個(gè)二維數(shù)組。再將此二維數(shù)組中的數(shù)據(jù)繪制出來(lái)[6]。
6)掃描數(shù)據(jù)的回放
單擊上位機(jī)中“數(shù)據(jù)回放”按鍵,從PC 機(jī)中加載保存的測(cè)量數(shù)據(jù),再?gòu)谋4嬗袦y(cè)量數(shù)據(jù)的txt 文件中找到測(cè)量數(shù)據(jù),然后調(diào)用掃描繪圖函數(shù)將其繪制。當(dāng)數(shù)據(jù)不夠完整一幀的時(shí)候需要舍棄。掃描數(shù)據(jù)回放流程圖見(jiàn)圖1,回放顯示結(jié)果見(jiàn)圖2。
圖1 掃描數(shù)據(jù)回放流程圖
圖2 數(shù)據(jù)回放
本文中設(shè)計(jì)了LMS的數(shù)據(jù)采集系統(tǒng),系統(tǒng)能設(shè)置LMS的各項(xiàng)參數(shù),控制LMS的工作,并能將采集到的數(shù)據(jù)通過(guò)RS232總線采集到計(jì)算機(jī)中并保存。系統(tǒng)運(yùn)行界面如圖3所示。
LMS數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)的主要功能包括:
圖3 LMS上位機(jī)運(yùn)行界面
1)該系統(tǒng)應(yīng)能夠靈活選擇LMS的工作方式,設(shè)置LMS的各項(xiàng)參數(shù)。在數(shù)據(jù)采集軟件中應(yīng)能對(duì)系統(tǒng)波特率、工作串口、掃描角度范圍、掃描角度分辨率等做出選擇。
2)對(duì)采集到的數(shù)據(jù)進(jìn)行處理分析后,能夠以掃描繪圖的形式顯示出來(lái)。上位機(jī)所采集到的數(shù)據(jù)不能夠生動(dòng)形象、直觀地表現(xiàn)出被測(cè)物體的距離和形狀等特性,而掃描繪圖顯示部分不但能夠?qū)崟r(shí)地對(duì)采集到的數(shù)據(jù)進(jìn)行距離成像,而且可以直觀地反映出被測(cè)物體的主特性。
3)該系統(tǒng)應(yīng)能將LMS的數(shù)據(jù)通過(guò)RS232 接口采集到計(jì)算機(jī)中并保存。采集系統(tǒng)采集到的是一組組動(dòng)態(tài)數(shù)據(jù)流,存儲(chǔ)系統(tǒng)的目的是能以一種快速有效的格式把該數(shù)據(jù)流源源不斷地存入存儲(chǔ)單元中。而且要求這種存儲(chǔ)格式可以方便今后有需要時(shí),隨時(shí)對(duì)采集到的數(shù)據(jù)進(jìn)行調(diào)用、修改和處理。
4)對(duì)采集的數(shù)據(jù)分析處理后有數(shù)據(jù)回放功能。動(dòng)態(tài)采集并保存的數(shù)據(jù)反映出了掃描雷達(dá)對(duì)被測(cè)物體的掃描過(guò)程,通過(guò)對(duì)測(cè)量數(shù)據(jù)的回放可得到被測(cè)物體的運(yùn)動(dòng)軌跡、運(yùn)動(dòng)速度等有用的信息,方便用戶利用這些信息做一些有價(jià)值的判斷。
在LMS221 數(shù)據(jù)采集系統(tǒng)的調(diào)試方案中,針對(duì)系統(tǒng)特性,調(diào)試將分為模擬調(diào)試和上機(jī)調(diào)試2種方案。其中模擬調(diào)試是上機(jī)調(diào)試的基礎(chǔ),2種調(diào)試方案都將遵循LMS 從上電后的硬件復(fù)位到數(shù)據(jù)停止采集的過(guò)程進(jìn)行一一調(diào)試。
模擬仿真調(diào)試過(guò)程中用到了串口調(diào)試常用軟件,即串口調(diào)試助手軟件和虛擬串口軟件。上機(jī)調(diào)試將LMS221 激光雷達(dá)通過(guò)RS-232 串口接至上位機(jī)計(jì)算機(jī)當(dāng)中,調(diào)整好24V直流電源,打開(kāi)LMS221,在上位機(jī)中對(duì)LMS221進(jìn)行控制與調(diào)試。
基于激光測(cè)距雷達(dá)的數(shù)據(jù)采集系統(tǒng)用VB6.0開(kāi)發(fā)完成,界面操作簡(jiǎn)單,易于功能擴(kuò)充,能靈活配置LMS工作方式,設(shè)置各項(xiàng)參數(shù),同時(shí)能將數(shù)據(jù)通過(guò)RS232接口傳至上位機(jī)中進(jìn)行掃描繪圖,并可進(jìn)行保存。系統(tǒng)經(jīng)過(guò)反復(fù)測(cè)試,使用效果良好。
[1]龍憲惠,劉煒.高性能數(shù)字信號(hào)處理芯片TMS320VC54 02在汽車防撞警示雷達(dá)中的應(yīng)用[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2001,38(4):514-517.
[2]張建輝,黃茂三.汽車防撞雷達(dá)概述[J].世界汽車,2000(6):16-18.
[3]戴永江.激光雷達(dá)技術(shù)[M].北京:電子工業(yè)出版社,2010.
[4]王春暉,陳德應(yīng).激光雷達(dá)系統(tǒng)設(shè)計(jì)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2014.
[5]李全江,張麗,岑紅蕾,等.VB 串口通信與測(cè)控應(yīng)用技術(shù)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2007.
[6]馮洪霞,郭志成.基于VB串口通信控件實(shí)現(xiàn)單線路器件在發(fā)環(huán)境中的數(shù)據(jù)傳輸[J].冶金自動(dòng)化報(bào),2007(S2):181-183.