<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP的激光雷達(dá)數(shù)據(jù)智能接口卡設(shè)計(jì)

          基于DSP的激光雷達(dá)數(shù)據(jù)智能接口卡設(shè)計(jì)

          作者: 時(shí)間:2011-08-12 來源:網(wǎng)絡(luò) 收藏

          無人自動駕駛車輛是室外移動機(jī)器人的一種,車上控制系統(tǒng)對車輛進(jìn)行自主控制,實(shí)現(xiàn)無人駕駛。我們的車輛研究使用SICK公司的LMS291作為主要的障礙物檢測傳感器,并同時(shí)用于車輛的激光導(dǎo)航。該支持RS-232和RS-422串行通信,由于RS-232通信的最大速率為20k bps,無法滿足車輛實(shí)時(shí)檢測障礙物的需要。因此,在智能車輛上,采用RS-422傳輸,傳輸速率為500K bps。

          本文引用地址:http://www.ex-cimer.com/article/187398.htm

          為滿足激光雷達(dá)和PC機(jī)的高速傳輸,現(xiàn)有的解決方案的實(shí)時(shí)性得不到保障,而且都不具備任何處理功能,而障礙物檢測功能應(yīng)集成到底層硬件平臺上實(shí)現(xiàn),萬一PC發(fā)生死機(jī),車輛仍能自動避撞,保證了車輛系統(tǒng)的安全性和可靠性。因此,需要開發(fā)一套新的接口卡來實(shí)現(xiàn)這些功能。

          1 接口卡研制目標(biāo)和總體方案

          針對激光雷達(dá)在智能車輛上的應(yīng)用要求,我們對接口卡的功能提出了如下目標(biāo):

          (1)激光雷達(dá)數(shù)據(jù)采集功能。通過RS-422與LMS291激光雷達(dá)進(jìn)行通信,通信速率為500k bps;可實(shí)時(shí)獲取激光雷達(dá)數(shù)據(jù);可配置激光雷達(dá)參數(shù)。

          (2)數(shù)據(jù)傳輸功能。通過CAN總線將采集的激光雷達(dá)數(shù)據(jù)送往上位機(jī)PC。

          (3)障礙物檢測功能。通過系統(tǒng)對激光雷達(dá)數(shù)據(jù)的處理,獲取障礙物檢測參數(shù),通過I/O,直接發(fā)送緊急停車命令給底層控制器,緊急剎車。

          根據(jù)系統(tǒng)要求,板上的CPU決定選用TI公司的TMS320LF2407A 芯片,它速度快、功耗低、易于開發(fā)、資源豐富、有片上CAN控制器等。LF2407A采用哈佛總線結(jié)構(gòu),具有16位高性能的CPU,時(shí)鐘頻率為40MHZ并支持軟件改變鎖相環(huán)的頻率,在智能控制和通信中得到廣泛應(yīng)用。500)this.style.width=500; border=0>

          2 系統(tǒng)硬件設(shè)計(jì)

          2.1 RS-422通信接口設(shè)計(jì)

          RS-422A通信接口標(biāo)準(zhǔn)是EIA公布的“非平衡電壓數(shù)字接口電路的電氣特性“標(biāo)準(zhǔn),它采用非平衡發(fā)送器和差分接收器,電平變化范圍為12V,通信速率最大10Mbit/s(120m通信距離內(nèi)),通信速率最小90Kbit/s(1200m通信距離)。

          由于本系統(tǒng)要適應(yīng)高速大流量數(shù)據(jù)通信,且要實(shí)現(xiàn)數(shù)據(jù)處理功能。為了保證數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和可靠性,我們選用TI 公司的UART產(chǎn)品TL16C752B。它是一個(gè)超前的解決方案,提供了兩路相互獨(dú)立的異步收發(fā)器,具有64字節(jié)的發(fā)送和接收FIFO 存儲器,這樣服務(wù)間隔時(shí)間就增加了,使外部CPU 有多余時(shí)間處理其他的應(yīng)用,減少了整個(gè)UART 的中斷服務(wù)時(shí)間。

          本系統(tǒng)將TL16C752B配置在LF2407A的I/O空間,TL16C752B還提供了2個(gè)中斷請求信號分別用于通道A和B申請LF2407A中斷,復(fù)用LF2407A的外部中斷XINT1.

          2.2 CAN通信接口設(shè)計(jì)

          CAN總線是德國BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率可達(dá)1MBPS。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級判別等項(xiàng)工作。

          本系統(tǒng)使用的芯片已集成了片內(nèi)CAN控制器,收發(fā)器采用德州儀器公司生產(chǎn)的SN65HVD230 CAN總線收發(fā)器,主要是與帶有CAN控制器的TMS320Lx240x系列配套使用,該收發(fā)器具有差分收發(fā)能力,最高速率可達(dá)1Mb/s。SN65HVD230具有高速、斜率和等待3種不同的工作模式。其工作模式控制可通過Rs控制引腳來實(shí)現(xiàn)。

          3 系統(tǒng)軟件設(shè)計(jì)

          軟件設(shè)計(jì)的第一步是初始化,包括系統(tǒng)初始化、異步串口和CAN初始化等。然后是主體部分即UART和CAN的通信以及數(shù)據(jù)處理等。主體部分程序主要由三大塊組成:激光雷達(dá)配置模塊、UART和CAN通信模塊、車體避撞模塊。

          3.1 激光雷達(dá)配置模塊

          PC與激光雷達(dá)之間通過固定的數(shù)據(jù)格式進(jìn)行通信,配置激光雷達(dá)的流程如下:

          (1) 首先打開串口,初始化, 等待激光雷達(dá)返回開機(jī)初始化的應(yīng)答數(shù)據(jù)。

          (2) 使用默認(rèn)的密碼“SICK_LMS”,改變操作模式為“安裝模式”, 并等待雷達(dá)應(yīng)答數(shù)據(jù)的返回。

          (3) 配置激光雷達(dá)和UART串口的速率。先將激光雷達(dá)波特率改為500K,等到返回修改成功的應(yīng)答數(shù)據(jù)后,再將UART串口的波特率也改為500K。

          (4) 設(shè)置掃描寬度和角度分辨率,掃描寬度180度,角度分辨率為0.5度。

          (5) 請求激光雷達(dá)的配置數(shù)據(jù),目的是獲得一些參數(shù)的值,放到數(shù)組中,然后修改部分參數(shù)的值,并用命令77h將參數(shù)寫到激光雷達(dá)中。

          (6) 切換到監(jiān)控模式,獲得激光雷達(dá)連續(xù)掃描數(shù)據(jù)。

          此后雷達(dá)便開始以26.6毫秒的周期將測量數(shù)據(jù)以500Kbps的通信速率發(fā)送給接口卡。

          3.2 UART和CAN通信模塊

          UART采用中斷方式接收激光雷達(dá)發(fā)送過來的數(shù)據(jù),因?yàn)閿?shù)據(jù)傳輸速率為500Kbps,接收中斷非常頻繁,中斷程序過于復(fù)雜會延誤后續(xù)的數(shù)據(jù)處理,所以整個(gè)中斷程序非常簡短,不超過20條指令。當(dāng)主程序檢測到UART接收到一楨數(shù)據(jù)后,就將數(shù)據(jù)寫入CAN郵箱4和5,通過CAN發(fā)送給PC機(jī)。同時(shí),CAN通信采用中斷接收PC機(jī)發(fā)送過來的數(shù)據(jù),再通過UART發(fā)送給激光雷達(dá)。

          3.3 車體避撞模塊

          車輛在自動駕駛時(shí)需要實(shí)時(shí)檢測車前方一定范圍內(nèi)的障礙物,一旦發(fā)現(xiàn)有障礙物就必須控制車輛緊急制動以免發(fā)生事故,這個(gè)障礙物檢測是由安裝在車前部的激光雷達(dá)完成的。

          當(dāng)UART接收到激光雷達(dá)一E數(shù)據(jù)732個(gè)字節(jié)后,進(jìn)行CRC校驗(yàn),數(shù)據(jù)校驗(yàn)無誤后,去掉E頭和E尾,將距離數(shù)據(jù)的高位字節(jié)和低位字節(jié)合并,然后存放在數(shù)組Laser_Range[361]里。智能車輛的寬度為1.4米,我們設(shè)置了一個(gè)障礙物檢測區(qū)域,是以激光雷達(dá)為中心的一個(gè)2×2米的方形區(qū)域,只要在這個(gè)區(qū)域內(nèi)有障礙物我們就認(rèn)為車的前方有障礙物,需要緊急制動。一楨激光雷達(dá)數(shù)據(jù)是361個(gè)距離值,在判斷時(shí)將這361個(gè)數(shù)據(jù)分為三個(gè)部分,三個(gè)區(qū)域內(nèi)的數(shù)據(jù)分別有各自的判斷條件,條件如果成立則認(rèn)為該區(qū)域內(nèi)有障礙物。當(dāng)檢測完361個(gè)數(shù)據(jù)以后,如果沒發(fā)現(xiàn)障礙物則認(rèn)為是安全的,如果發(fā)現(xiàn)了障礙物則認(rèn)為有危險(xiǎn),這時(shí)直接通過I/O發(fā)送命令給底層控制器讓車輛緊急剎車。

          4 試驗(yàn)結(jié)果

          本文對上述接口卡進(jìn)行了試驗(yàn)驗(yàn)證。試驗(yàn)平臺為上海交通大學(xué)研制的無人自動駕駛車輛,測距傳感器為LMS291激光雷達(dá),安裝在車輛前方。在車載筆記本電腦的VC++平臺上對CAN接口進(jìn)行配置,接收激光雷達(dá)在500kbps下發(fā)送的連續(xù)數(shù)據(jù),對每一個(gè)測量的距離數(shù)據(jù)用一個(gè)小圓圈表示,在實(shí)驗(yàn)室外的車道上進(jìn)行了實(shí)際演示,結(jié)果如下

          隨著前方障礙物的變化,圖像會實(shí)時(shí)地跟著變化。由于采集速率高,激光雷達(dá)數(shù)據(jù)完全沒有丟失。數(shù)據(jù)傳輸實(shí)時(shí)性也很好,筆記本電腦接收激光雷達(dá)一楨732個(gè)字節(jié)數(shù)據(jù)的時(shí)間為27.2毫秒,比激光雷達(dá)實(shí)際的時(shí)間周期只延遲了0.6毫秒,達(dá)到了車輛精確定位導(dǎo)航算法的要求。

          5 結(jié)論

          本文針對無人自動駕駛車輛的激光雷達(dá)避撞和導(dǎo)航的要求,設(shè)計(jì)了基于DSP的激光雷達(dá)卡,對PC機(jī)中獲得的數(shù)據(jù)進(jìn)行檢驗(yàn)的結(jié)果表明,數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和可靠性都很好。而且根據(jù)車輛實(shí)際演示的效果來看,避撞很可靠。

          本文創(chuàng)新點(diǎn):1. 本文設(shè)計(jì)的接口卡采用處理速度較高的DSP系統(tǒng)和外擴(kuò)高速UART TL16C152B,使得接口卡采集數(shù)據(jù)的速度能夠達(dá)到500Kbps,目前市場上的接口卡一般都不能達(dá)到這一速度要求。2. 由于采用了高速的DSP系統(tǒng),所以在數(shù)據(jù)采集傳輸?shù)耐瑫r(shí),還可以進(jìn)行數(shù)據(jù)處理實(shí)現(xiàn)車輛的自動避撞。3. 本文的接口卡和上位機(jī)接口選擇了CAN總線傳輸,使得數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性很高,試驗(yàn)數(shù)據(jù)表明一楨732個(gè)字節(jié)的數(shù)據(jù)只延遲了0.6毫秒,滿足了筆記本電腦進(jìn)行精確定位導(dǎo)航算法的要求。此接口卡已成功應(yīng)用在上海交通大學(xué)研制的無人自動駕駛車輛上,取得了良好的效果。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();