基于DSP+FPGA汽車防撞報(bào)警設(shè)備高速數(shù)據(jù)采集
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著人們生活水平的提高,公路上的私家車輛也增多了,但隨之帶來的問題就是交通事故發(fā)生率居高不下,嚴(yán)重危害著人們的生命安全。文中就如何預(yù)防交通事故發(fā)生,研究設(shè)計(jì)一種響應(yīng)迅速、高可靠性并且經(jīng)濟(jì)實(shí)用的汽車防擅報(bào)警設(shè)備。該設(shè)備在設(shè)計(jì)過程中的關(guān)鍵任務(wù)是利用置于汽車車頭左右兩端的雙路通道高速采集激光雷達(dá)回波信號(hào)并對(duì)其進(jìn)行實(shí)時(shí)存儲(chǔ)和處理,進(jìn)而快速測(cè)量自身交通工具與障礙物之間的距離及相對(duì)速度。
1 系統(tǒng)概述
對(duì)用于高速公路中的雷達(dá)系統(tǒng)而言,考慮到開車的速度比較快,對(duì)于一些突發(fā)事件無法立刻做出響應(yīng),因此就要求設(shè)計(jì)的防撞雷達(dá)探測(cè)距離盡量長(zhǎng)些,可讓駕駛員提前做好安全準(zhǔn)備工作,因此這種高速公路防撞系統(tǒng)一般選用激光探測(cè)法。采用激光測(cè)距的汽車防撞系統(tǒng)結(jié)構(gòu)圖,如圖1所示。
2 硬件總體設(shè)計(jì)原理及框圖
對(duì)于激光雷達(dá)回波信號(hào)經(jīng)過光電器件轉(zhuǎn)換后形成的電信號(hào),其信號(hào)頻率高,脈沖寬度相對(duì)比較窄,信號(hào)幅度低,背景噪音大,如果是選用低速的數(shù)據(jù)采集系統(tǒng)進(jìn)行數(shù)據(jù)采集的話,那么將會(huì)存在數(shù)據(jù)精度不高的不足,所以必須采用高采樣率、高分辨率的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)總體原理框圖如圖2所示。
該系統(tǒng)的主要信號(hào)流程:由激光傳感器獲得的2路激光雷達(dá)回波信號(hào)先通過緩沖放大等前端調(diào)理后,同時(shí)送到AD轉(zhuǎn)換電路進(jìn)行模數(shù)轉(zhuǎn)換,然后可以同時(shí)被中央邏輯控制模塊FPGA來采集,這樣相對(duì)于用DSP的分時(shí)采集來說,極大的提高了速度。FPGA一方面完成對(duì)A/D的采樣控制,另一方面與DSP的EMIF接口形成傳輸通道,完成了AD與DSP之間的數(shù)據(jù)傳輸任務(wù),避免了ADC直接與DSP通信,降低了對(duì)大量的數(shù)據(jù)傳輸?shù)膲毫Α?/p>
2.1 前端信號(hào)調(diào)理電路
2.1.1 前端放大電路
從傳感器中輸出的信號(hào)必須經(jīng)過調(diào)理才能夠有效地進(jìn)行數(shù)據(jù)采集,為了達(dá)到最高的測(cè)量精度,應(yīng)該使被測(cè)信號(hào)的電壓變化范圍放大至ADC最大量程附近,所以需要將傳感器出來的小信號(hào)通過前端放大電路線性放大成適合系統(tǒng)的的電信號(hào)。在本系統(tǒng)中主要選用了AD公司生產(chǎn)的AD8062低成本的運(yùn)放模塊來實(shí)現(xiàn)的,如圖3所示。
2.1.2 前端差分電路
為了消除偶次諧波分量,抑制共模噪聲源,起到系統(tǒng)抗干擾的效果,本系統(tǒng)的AD轉(zhuǎn)換電路采用差分輸入的形式,而信號(hào)經(jīng)過放大電路后得到的是單端信號(hào),所以,必須要將前端的輸入單端信號(hào)轉(zhuǎn)化為差分信號(hào)。本設(shè)計(jì)選用了ADI公司生產(chǎn)的AD8620驅(qū)動(dòng)芯片構(gòu)成差分驅(qū)動(dòng)電路,其具體電路設(shè)計(jì)如圖4所示。
2.2 AD轉(zhuǎn)化電路
在數(shù)據(jù)采集系統(tǒng)中AD是比較重要的環(huán)節(jié),主要完成對(duì)激光回波信號(hào)的采集工作,而采樣時(shí)鐘信號(hào)可以由FPGA電路內(nèi)部的時(shí)鐘模塊來提供。ADI公司的AD9481,可以采用差分輸入,采樣率達(dá)到250 MSPS,并且采用250 M的PECL標(biāo)準(zhǔn)的時(shí)鐘信號(hào),為此在設(shè)計(jì)中為產(chǎn)生該差分時(shí)鐘信號(hào),考慮選用MC100LEL16的時(shí)鐘芯片。AD9481的數(shù)字輸出屬于并行接口,有16位的數(shù)據(jù)流,對(duì)于這么高速的數(shù)據(jù)與存儲(chǔ)會(huì)出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn),使系統(tǒng)不穩(wěn)定,因此在設(shè)計(jì)時(shí)AD與FPGA的輸出端之間串接了一個(gè)100 Ω的電阻,可以消除出現(xiàn)在0~1之間的毛刺與高速數(shù)據(jù)線之間的干擾,具體的AD硬件原理如圖5所示。
2.3 數(shù)據(jù)處理部分硬件電路
本系統(tǒng)數(shù)據(jù)處理部分由FPGA和DSP兩個(gè)部分來完成。根據(jù)前一級(jí)AD電路的信號(hào)輸出時(shí)序進(jìn)行VHDL編程,來實(shí)現(xiàn)同時(shí)對(duì)兩路AD輸出的數(shù)字信號(hào)的采集,將數(shù)據(jù)輸入到FIFO模塊中,然后通過EMIF總線將數(shù)據(jù)快速傳輸?shù)紻SP里進(jìn)行相關(guān)算法的運(yùn)算。
2.3.1 FPGA電路
FPGA采用硬件編程實(shí)現(xiàn)復(fù)雜的邏輯功能,不僅能夠?qū)Σ杉降拇笈繑?shù)據(jù)流進(jìn)行預(yù)處理,而且作為整個(gè)控制系統(tǒng)的核心部分,提供系統(tǒng)所需的時(shí)鐘信號(hào),保證數(shù)據(jù)的有序采集,而且作為數(shù)據(jù)傳輸?shù)募~帶,保證了AD與DSP進(jìn)行數(shù)據(jù)傳輸。結(jié)合采樣存儲(chǔ)傳輸?shù)裙δ蹻PGA的模塊主要分為4個(gè)部分:時(shí)鐘管理模塊、A/D控制模塊、FIFO緩存模塊、與DSP的EMIF接口模塊:
1)時(shí)鐘管理模塊,該部分主要是產(chǎn)生系統(tǒng)所需的各模塊的時(shí)鐘信號(hào),本系統(tǒng)采用ISE軟件自帶的DCM模塊來實(shí)現(xiàn)。
2)A/D控制器:根據(jù)當(dāng)前選擇的采樣模式為A/D提供相應(yīng)的控制信號(hào)以使A/D正常工作;并通過AD電路的信號(hào)輸出時(shí)序?qū)D輸出的數(shù)字信號(hào)進(jìn)行采集。
3)FIFO緩存模塊:主要實(shí)現(xiàn)將高速采集到的數(shù)據(jù)緩存到FIFO中。當(dāng)緩存滿時(shí),F(xiàn)IFO的滿標(biāo)志(full)向DSP申請(qǐng)中斷,DSP相應(yīng)中斷后采用DMA傳輸方式把采樣效據(jù)讀到內(nèi)存中進(jìn)行數(shù)據(jù)實(shí)時(shí)處理。
4)與DSP的EMIF接口模塊:DSP通過EMIF接口與FPGA內(nèi)部的RAM連接,實(shí)現(xiàn)了將FPGA中緩存的數(shù)據(jù)與DSP進(jìn)行高速傳輸?shù)淖饔谩?/p>
2.3.2 DSP與FPGA的接口設(shè)計(jì)
本系統(tǒng)在設(shè)計(jì)中DSP主要是通過C6713器件的外部存儲(chǔ)器接口EMIF與FPGA進(jìn)行數(shù)據(jù)通信。外部存儲(chǔ)器接口(EMIF)是TMS DSP器件上的一種接口。一般來說,EMIF可實(shí)現(xiàn)DSP與不同類型存儲(chǔ)器(SRAM、Flash RAM、DDR-RAM等)的連接。用EMIF與FPGA相連,從而使FPGA平臺(tái)充當(dāng)一個(gè)協(xié)同處理器、高速數(shù)據(jù)處理器或高速數(shù)據(jù)傳輸接口。
其EMIF的總線接口圖如圖6所示。
在完成對(duì)EMIF的DSP配置后,接下來就是實(shí)現(xiàn)EMIF接口的FPGA配置工作,保證FPGA中的數(shù)據(jù)正常的讀入到DSP中。在FPGA中配置EMIF接口的連接圖如圖7所示。
該模塊是DSP與FPGA進(jìn)行通信的接口模塊。通過該模塊,DSP可以實(shí)現(xiàn)向FPGA傳輸控制信號(hào),F(xiàn)PGA也可以通過該模塊將FIFO中的數(shù)據(jù)傳給DSP。CE、WE、RE、OE為DSP輸入的使能信號(hào),CLK為FPGA提供內(nèi)部時(shí)鐘,CLKOUT2是EMIF的輸出時(shí)鐘,為DSP與FPGA通信提供時(shí)鐘頻率,DSP_Addr(19:0)為DSP的輸入地址,DSP_DataBus(31:0)為DSP的數(shù)據(jù)總線。FPGA根據(jù)讀使能信號(hào)OE與片選信號(hào)CE的輸入邏輯來判斷EMIF是進(jìn)行讀操作還是寫操作。當(dāng)DSP通過EMIF讀取數(shù)據(jù)時(shí),F(xiàn)PGA中的數(shù)據(jù)從dpram_data(31:0)輸入,由DSP_DataBus(31:0)管腳傳送給DSP;若寫數(shù)據(jù),將DSP_DataBus(31:0)傳來的數(shù)據(jù)從dout(31:0)送入FPGA。
2.4 人機(jī)交互模塊
人機(jī)交互模塊分為按健電路和LCD顯示電路。限于篇幅,本文僅介紹LCD電路。
LCD顯示部分我們采用真空熒光顯示點(diǎn)陣式VFD屏,其優(yōu)點(diǎn)是能高亮度發(fā)光。由于我們選擇的屏是5 V供電,所以由DSP過來的3.3 V的信號(hào)線需要經(jīng)過74LVCA245轉(zhuǎn)化為5 V,再與VFD屏的控制器接口相連,LCD控制器接口如圖8所示。
3 軟件設(shè)計(jì)
本系統(tǒng)軟件主要由DSP和FPGA組成。其中DSP由系統(tǒng)初始化部分;系統(tǒng)功能模塊的EMIF模塊,F(xiàn)LASH模塊和SDRAM模塊組成以及人機(jī)交互模塊組成。而FPGA設(shè)計(jì)則由FIFO模塊以及DCM模塊組成,軟件總體模塊框圖如圖9所示。
在整個(gè)系統(tǒng)中,DSP芯片負(fù)責(zé)DSP系統(tǒng)初始化部分和系統(tǒng)功能模塊兩個(gè)部分。其中DSP系統(tǒng)初始化部分包括DSP引導(dǎo)程序,DSP芯片中各硬件寄存器的設(shè)置,以及EDMA,定時(shí)中斷等寄存器的設(shè)置。而系統(tǒng)功能模塊中,包括FLASH模塊和SDRAM模塊,由于本系統(tǒng)中DSP需要處理的數(shù)據(jù)容量比較大,自身的存儲(chǔ)容量不夠,所以一些數(shù)據(jù)需要存儲(chǔ)于FLASH中,而在運(yùn)行過程中,很多數(shù)據(jù)的處理也要在SDRAM中進(jìn)行;而DSP EMIF模塊主要用來連接FPGA,F(xiàn)LASH和SDRAM。
FPGA邏輯設(shè)計(jì)部分包括了AD邏輯設(shè)計(jì),DCM邏輯設(shè)計(jì)以及FIFO模塊的邏輯設(shè)計(jì)。這塊功能設(shè)計(jì)的主要目的是利用FPGA的硬件邏輯模塊,同時(shí)進(jìn)行2路高速AD數(shù)據(jù)的采集,并將數(shù)據(jù)放至由ISE軟件的IPcore生成的FIFO中,最后由FIFO再通過由與EMIF相對(duì)應(yīng)的邏輯接口將數(shù)據(jù)傳輸?shù)紻SP中。而整個(gè)邏輯設(shè)計(jì)過程中,其時(shí)鐘均由DCM模塊來產(chǎn)生,DCM模塊可以由ISE軟件的IPcore來生成,可以通過IP core生成系統(tǒng)需要的時(shí)鐘頻率,有延時(shí)少,抖動(dòng)小等優(yōu)點(diǎn)。
最后人機(jī)交互程序主要是包括LCD模塊以及鍵盤模塊。其中LCD來對(duì)數(shù)據(jù)進(jìn)行顯示,而鍵盤模塊來對(duì)系統(tǒng)的各個(gè)參數(shù)進(jìn)行設(shè)定。
4 結(jié)束語
文中在對(duì)目前高速數(shù)據(jù)采集系統(tǒng)的發(fā)展?fàn)顩r、FPGA可編程控制器件和DSP數(shù)字信號(hào)處理系統(tǒng)的深入研究的基礎(chǔ)上,采用了高速ADC+FPGA+ DSP的設(shè)計(jì)方案,設(shè)計(jì)了一款高速數(shù)據(jù)采集系統(tǒng),能夠用于高速行駛的汽車防撞報(bào)警設(shè)備中,實(shí)時(shí)檢測(cè)目標(biāo)汽車與障礙物之間的距離,及時(shí)提醒駕駛員要提高警惕,注意安全駕駛。