基于TMS320VC33-150的聲探測(cè)系統(tǒng)設(shè)計(jì)
引言
本文引用地址:http://m.butianyuan.cn/article/21563.htm被動(dòng)聲源探測(cè)定位技術(shù)是一種利用聲學(xué)傳聲器陣列和電子裝置接收運(yùn)動(dòng)目標(biāo)的輻射噪聲,以確定目標(biāo)所處位置的技術(shù)。
本文正是基于聲探測(cè)技術(shù)原理和成熟的微電子技術(shù), 采用ti公司的32位浮點(diǎn)dsp芯片tms320vc33-150來實(shí)現(xiàn)聲源目標(biāo)的探測(cè)定位算法,并輔之以adc、cpld、單片機(jī)等器件來實(shí)現(xiàn)聲源信號(hào)的采集、系統(tǒng)邏輯控制以及通信功能。對(duì)于數(shù)字電路的邏輯控制功能,本文選用了altera公司的cpld芯片epm7128aetc100-10來實(shí)現(xiàn)。該芯片功耗低、資源豐富、內(nèi)部延時(shí)固定,有助于時(shí)序邏輯電路的設(shè)計(jì)。本系統(tǒng)主要分為兩部分:聲探測(cè)系統(tǒng)數(shù)字電路的硬件實(shí)現(xiàn)和dsp軟件設(shè)計(jì)。系統(tǒng)現(xiàn)已完成調(diào)試,運(yùn)行穩(wěn)定,探測(cè)效果較好。
系統(tǒng)功能
聲探測(cè)系統(tǒng)通過傳聲器陣列獲得聲源目標(biāo)的輻射噪聲信息,通過前端模擬信號(hào)處理后,在數(shù)字電路中由dsp進(jìn)行高速的聲探測(cè)定位算法處理,并把獲得的聲源方位、速度等信息,發(fā)送給計(jì)算機(jī)終端進(jìn)行交匯顯示。
聲探測(cè)系統(tǒng)的硬件設(shè)計(jì)
在聲探測(cè)系統(tǒng)中,數(shù)字電路是最為關(guān)鍵的部分。本文以dsp、cpld和單片機(jī)為核心器件,完成了聲探測(cè)系統(tǒng)的數(shù)字電路的硬件設(shè)計(jì)。其數(shù)字電路框圖如圖1所示。
圖1 聲探測(cè)系統(tǒng)的數(shù)字電路框圖 經(jīng)過前端處理的模擬信號(hào)由ad7865完成采樣轉(zhuǎn)換后,給dsp一個(gè)中斷,dsp在cpld的配合下,讀取各個(gè)通道的數(shù)據(jù)并存儲(chǔ)在片外sram數(shù)據(jù)區(qū),同時(shí)dsp對(duì)數(shù)據(jù)進(jìn)行數(shù)字濾波、頻譜分析,從而完成對(duì)聲源目標(biāo)的定位功能。
由雙口ram實(shí)現(xiàn)dsp和c8051f020目標(biāo)信息的交換,最終通過max3485完成和終端的rs-422通信。另外,dsp根據(jù)處理后的結(jié)果實(shí)現(xiàn)對(duì)前端模擬電路的增益控制。
adc設(shè)計(jì)
被動(dòng)聲探測(cè)系統(tǒng)中對(duì)聲音的相位一致性要求很高,因此,在設(shè)計(jì)中采用了具有同時(shí)采樣保持功能的14位并行輸出adc ad7865。本設(shè)計(jì)中,經(jīng)放大濾波處理后的6路聲源目標(biāo)信號(hào)通過兩片ad7865實(shí)現(xiàn)a/d轉(zhuǎn)換。本文利用dsp定時(shí)器的輸出信號(hào)作為adc的啟動(dòng)采樣信號(hào),采樣轉(zhuǎn)換完成后,通過adc的busy信號(hào)給dsp一個(gè)中斷,然后dsp進(jìn)入中斷處理程序,讀取a/d數(shù)據(jù),而讀寫信號(hào)和adc片選信號(hào)由cpld對(duì)dsp的讀寫信號(hào)和地址信號(hào)進(jìn)行邏輯組合來完成。
dsp及周邊電路設(shè)計(jì)
dsp的主要功能有根據(jù)采集到的數(shù)字信號(hào)的幅度來完成對(duì)前端模擬信號(hào)的自動(dòng)增益控制,增益控制的級(jí)別有16、64、256、1024、4096、16384、65536共7檔;對(duì)采集到的數(shù)據(jù)進(jìn)行數(shù)字濾波、快速fft變換以及正交變換等運(yùn)算,進(jìn)而完成對(duì)目標(biāo)的定位、識(shí)別等運(yùn)算;通過雙口ram完成和單片機(jī)的通信,以及adc的定時(shí)啟動(dòng)。
dsp周邊電路包括程序引導(dǎo)區(qū)flash、程序運(yùn)行區(qū)sram、數(shù)據(jù)交換區(qū)雙口ram及增益控制。flash采用容量為1m*8b的amd29lv040b構(gòu)成代碼存儲(chǔ)空間;sram則采用容量為512k*8b的sram存儲(chǔ)器cy7c1049-cv33,在電路中使用4片進(jìn)行位擴(kuò)展,從而構(gòu)成512k*32位的程序運(yùn)行空間;雙口ram為2k*8位的idt71v321;而增益控制則采用8位 cmos鎖存器來實(shí)現(xiàn)。
tms320vc33-150有四個(gè)外部中斷,都可以作為bootloader的中斷,因此bootloader首選高優(yōu)先級(jí)的中斷,否則有可能在脫機(jī)上電加載程序時(shí)無法加載成功。因?yàn)樵谏想姀?fù)位后,dsp執(zhí)行駐留程序,根據(jù)中斷級(jí)別去尋找bootloader存儲(chǔ)區(qū)域,如果沒有把高于bootloader中斷的中斷置無效,那么dsp將會(huì)根據(jù)高優(yōu)先級(jí)尋找bootloader存儲(chǔ)區(qū)域,因而導(dǎo)致程序加載不成功。
此外,在設(shè)計(jì)過程中,對(duì)于一些重要的信號(hào)如#rdy、#hold、edgemode、mcbl/#mp、#shz等,要根據(jù)具體設(shè)計(jì),參照數(shù)據(jù)手冊(cè)相應(yīng)給予上拉或下拉處理。本設(shè)計(jì)在調(diào)試過程中因?yàn)閷?duì)#hold信號(hào)未做處理,導(dǎo)致不能在線下載
程序,最后通過拉高才解決。
表1 中斷號(hào)和程序裝載地址對(duì)應(yīng)表
圖2 dsp軟件程序設(shè)計(jì)流程圖
邏輯控制
本設(shè)計(jì)中采用了altera公司的epm7128aetc100-10來實(shí)現(xiàn)整個(gè)電路系統(tǒng)的時(shí)序管理及邏輯控制功能,主要包括adc控制功能模塊、存儲(chǔ)器讀寫時(shí)序控制模塊、通信接口時(shí)序控制模塊和增益控制。并根據(jù)dsp外部存儲(chǔ)器地址空間譯碼產(chǎn)生片選信號(hào)以及讀寫時(shí)序。本設(shè)計(jì)中利用quartusⅱ來完成邏輯控制仿真。
單片機(jī)電路
c8051f020單片機(jī)是完全集成的混合信號(hào)系統(tǒng)級(jí)mcu,除了具有標(biāo)準(zhǔn)8051單片機(jī)的數(shù)字外設(shè)部件外,片內(nèi)還集成了數(shù)據(jù)采集與控制系統(tǒng)中常用的模擬部件和其它數(shù)字外設(shè)及功能部件。
本設(shè)計(jì)中利用c8051f020的串口實(shí)現(xiàn)了和計(jì)算機(jī)終端的rs-422異步串行通信,波特率為19.2kbps;利用雙口ram完成了dsp和單片機(jī)的聲源目標(biāo)數(shù)據(jù)的實(shí)時(shí)交換。
在設(shè)計(jì)單片機(jī)電路時(shí),為保證上電復(fù)位電路的可靠性,可以使用基本的rc電路和專門的監(jiān)控集成電路如max708t等,同時(shí)應(yīng)該充分利用moden vdd監(jiān)視器功能。
輔助電路
輔助電路包括晶振、看門狗、電壓基準(zhǔn)電路以及dc/dc電源模塊。dsp時(shí)鐘采用了15mhz晶振,經(jīng)dsp內(nèi)部5倍頻后達(dá)到tms320vc33-150的最快運(yùn)行速度,同時(shí)采用20mhz晶振作為單片機(jī)的時(shí)鐘源;本設(shè)計(jì)中通過采用max706看門狗芯片實(shí)現(xiàn)了對(duì)dsp的掉電監(jiān)控和程序跑飛的復(fù)位功能;電壓基準(zhǔn)電路則利用了tps767d318來為整個(gè)系統(tǒng)提供+3.3v和+1.8v電源;dc/dc電源模塊完成外接+12v~+5v的高效轉(zhuǎn)換。
dsp軟件設(shè)計(jì)
dsp軟件流程
整個(gè)軟件基于中斷方式。dsp軟件設(shè)計(jì)包括了adc的轉(zhuǎn)換啟動(dòng)、數(shù)據(jù)采集、中斷服務(wù)程序、聲源信號(hào)的數(shù)字濾波、快速fft和正交變換,以及通過頻譜分析獲得高分辨率空間聲強(qiáng)分布的music算法。該聲探測(cè)系統(tǒng)的dsp軟件流程如圖2所示。
dsp軟件工作流程為:系統(tǒng)上電復(fù)位后,加載外部flash的程序文件到外部sram程序區(qū),dsp初始化各個(gè)部分后運(yùn)行。程序始終查詢adc的中斷信號(hào),在獲得adc的中斷后進(jìn)入中斷服務(wù)程序,采集后的數(shù)據(jù)存儲(chǔ)在外部sram數(shù)據(jù)區(qū),然后調(diào)用探測(cè)定位程序獲取聲音目標(biāo)的方位等參數(shù),并寫入外部雙口ram中,供單片機(jī)讀取后送到計(jì)算機(jī)終端進(jìn)行融合交會(huì)。
dsp程序bootloader
tms320vc33-150有兩種工作方式,工作方式的選擇由mcbl/mp引腳決定。在本設(shè)計(jì)中,通過把mcbl/mp引腳上拉為高電平,使dsp工作在微計(jì)算機(jī)/引導(dǎo)裝入模式或外部存儲(chǔ)器裝載方式。在reset 信號(hào)從低電平轉(zhuǎn)為高電平后, tms320vc32-150首先檢查外部中斷輸入線電平, 決定由什么地方開始引導(dǎo)程序, 中斷號(hào)和對(duì)應(yīng)的開始引導(dǎo)地址間的關(guān)系如表1所示。本設(shè)計(jì)中使用了boot2方式,即在dsp復(fù)位信號(hào)由低變高后,dsp從外部存儲(chǔ)地址400000h開始加載程序。
需要注意的是,使用外部存儲(chǔ)器裝載方式時(shí),加載程序必須含有外部存儲(chǔ)器的數(shù)據(jù)總線寬度(8位、16位或32位)、程序代碼的長(zhǎng)度、程序執(zhí)行的入口地址以及存儲(chǔ)器的等待狀態(tài)數(shù)。
在把已調(diào)試成功的程序裝入flash過程中,本文采用的方法是:通過編寫一個(gè)*.cmd轉(zhuǎn)換文件,然后用hex30.exe把*.out文件轉(zhuǎn)化為*.hex文件。 并把生成的*.hex文件燒寫入flash中即可。當(dāng)然,也可采用在線燒寫的方法。
結(jié)語
基于tms320vc33-150的聲探測(cè)系統(tǒng)數(shù)字電路設(shè)計(jì)充分利用了tms320vc33-150強(qiáng)大的浮點(diǎn)運(yùn)算能力,很好的完成了聲源目標(biāo)探測(cè)定位的算法處理。同時(shí)還充分利用了cpld的邏輯控制功能和mcu豐富的外設(shè)資源,并設(shè)計(jì)出了dsp算法和中斷服務(wù)程序流程。該系統(tǒng)已經(jīng)調(diào)試完成,并進(jìn)行了充分的外場(chǎng)試驗(yàn)。結(jié)果表明,系統(tǒng)工作穩(wěn)定,各項(xiàng)指標(biāo)基本達(dá)到了要求。
評(píng)論