汪華俊, 郭寶峰
(杭州電子科技大學(xué) 通信信息傳輸與融合技術(shù)國(guó)防重點(diǎn)學(xué)科實(shí)驗(yàn)室,浙江 杭州 310018)
基于嵌入式平臺(tái)的聲光一體化采集平臺(tái)設(shè)計(jì)*
汪華俊, 郭寶峰
(杭州電子科技大學(xué) 通信信息傳輸與融合技術(shù)國(guó)防重點(diǎn)學(xué)科實(shí)驗(yàn)室,浙江 杭州 310018)
設(shè)計(jì)了一種基于嵌入式平臺(tái)的聲音信號(hào)采集和視頻采集的軟、硬件系統(tǒng)。硬件設(shè)計(jì)采用模塊分層思想,將整個(gè)硬件系統(tǒng)拆分成核心板和底板兩部分。軟件設(shè)計(jì)采用多線程編程方法,實(shí)現(xiàn)信號(hào)連續(xù)采集和實(shí)時(shí)顯示。對(duì)硬件系統(tǒng)設(shè)計(jì)、聲音信號(hào)采集和視頻采集做了詳細(xì)的介紹,系統(tǒng)對(duì)于多傳感器網(wǎng)絡(luò)嵌入式平臺(tái)的設(shè)計(jì)和應(yīng)用具有一定的意義。
嵌入式平臺(tái); 聲音信號(hào)采集; 視頻采集; 多線程; 多傳感器網(wǎng)絡(luò)
目前,常見的基于嵌入式平臺(tái)聲音和視頻傳感網(wǎng)絡(luò)均以單個(gè)功能形式存在,或是以成品開發(fā)板為基礎(chǔ)的,功能冗余價(jià)格昂貴,而將兩者集成的精簡(jiǎn)低成本嵌入式采集平臺(tái)仍比較少見。本文設(shè)計(jì)的基于嵌入式平臺(tái)的聲光一體化采集平臺(tái),將聲音采集和視頻圖像采集功能在同一個(gè)硬件平臺(tái)上實(shí)現(xiàn),整個(gè)系統(tǒng)小巧精簡(jiǎn)且功耗低[1~3]。
文中采用分層設(shè)計(jì),將整個(gè)硬件系統(tǒng)拆分成“核心板+底板”兩部分,通過排針連接。核心器件電路集成在核心板上,印刷電路板(printed circuit board,PCB)采用多層板布線;外設(shè)部件電路分布在底板上,PCB雙層板布線即可。這樣簡(jiǎn)化了設(shè)計(jì)流程,節(jié)約制作成本。
1.1 硬件核心板PCB布局和布線
核心板主要搭載CPU,F(xiàn)LASH,SDRAM等元器件。選S3C2440A作為系統(tǒng)CPU,其性能滿足功能需求且價(jià)格低廉。在PCB設(shè)計(jì)中需要考慮信號(hào)完整性,主要包括疊層設(shè)置、布局設(shè)計(jì)和系統(tǒng)布線。疊層設(shè)置主要體現(xiàn)在2方面:1)疊層結(jié)構(gòu),信號(hào)層靠近參考層,信號(hào)返回路徑直接位于信號(hào)線的下方,回路面積最小,磁通量抵消最明顯。將信號(hào)層和參考層交錯(cuò)排列,每個(gè)信號(hào)層都有相鄰的參考層,使磁通量最小化。核心板上的芯片數(shù)量多,比較密集,且電氣網(wǎng)絡(luò)也多,故PCB采用6層板實(shí)現(xiàn)。2)阻抗設(shè)計(jì),選擇50~100 Ω的阻抗比較合適,結(jié)合表1的阻抗要求,采用信號(hào)線線寬基本為5.5 mil。綜上,6層印制板包括4個(gè)信號(hào)層(包括元件層)、一個(gè)地層、一個(gè)混合電源層(3.3,1.25 V),疊層順序依次為Top,VCC,Signal1,Signal2,GND,Bottom。
表1 阻抗要求
布局不僅要考慮降低器件之間的干擾,還需要使整個(gè)布局簡(jiǎn)潔美觀。設(shè)計(jì)中核心板布線區(qū)的尺寸為74 mm×37 mm,為充分利用布線區(qū),在核心板的頂層(top)和底層(bottom)均焊貼元器件,采用手工布局,使兩片SDRAM芯片盡量靠近CPU,對(duì)應(yīng)的排阻分別放在Top和Bottom的對(duì)稱位置。
整個(gè)系統(tǒng)布線采用手工布線的方式,運(yùn)用蛇形延遲布線、差分線和控制串?dāng)_布線等措施,確保信號(hào)完整。圖1為核心板PCB頂層布線圖,核心板電源線盡量采用大面積敷銅進(jìn)行連接,以滿足對(duì)電源波動(dòng)的要求,降低阻抗,減少線損。將電壓平面分割為3.3,1.25 V兩個(gè)平面,減小電壓波動(dòng)。對(duì)地線同樣采用大面積敷銅處理。對(duì)于核心板上CPU焊球陣列封裝(ball grid array,BGA)的封裝方式,文中采用“坐標(biāo)通道法”確定CPU焊盤引線的過孔位置,即以CPU中心點(diǎn)為坐標(biāo)原點(diǎn)建立平面直角坐標(biāo)系,坐標(biāo)軸的4個(gè)象限分別對(duì)應(yīng)右上、左上、左下、右下的指向,處于不同象限的球形焊盤引線的過孔位置方向?qū)?yīng)所在象限的指向,保證焊盤引線不會(huì)交叉,滿足設(shè)計(jì)規(guī)則要求。過孔內(nèi)外直徑分別為8 mil和16 mil。
圖1 核心板PCB 頂層布線
1.2 硬件底板PCB布局和布線
底板主要元器件的布局,底板相對(duì)于核心板,搭載外圍設(shè)備,機(jī)械結(jié)構(gòu)較為簡(jiǎn)單,且底板的布線區(qū)尺寸為128 mm×105 mm,面積較大,選用雙層板即可。
完成核心板和底板的PCB布線后均要進(jìn)行設(shè)計(jì)規(guī)則檢查,確保沒有錯(cuò)誤,最后生成制板文件。
聲音信號(hào)的采集[4],整個(gè)架構(gòu)如圖2所示,利用S3C2440A片內(nèi)10位AD設(shè)備,將采集的聲音信號(hào)進(jìn)行A/D轉(zhuǎn)換。再根據(jù)式(1)將采樣電壓值變換為實(shí)際電壓值
(1)
式中Vre為實(shí)際電壓;Vref為參考電壓;Vsa為采集電壓值;N為AD模塊的分辨率。
圖2 聲音信號(hào)采集框架
軟件設(shè)計(jì)包括3個(gè)部分:AD設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)[5]、聲音信號(hào)采集、信號(hào)波形顯示。在Linux2.6.30內(nèi)核中AD驅(qū)動(dòng)文件以平臺(tái)驅(qū)動(dòng)設(shè)備模型的架構(gòu)實(shí)現(xiàn),缺少相應(yīng)的操作接口函數(shù),文中使用混雜設(shè)備(miscdevice)驅(qū)動(dòng)架構(gòu)重新實(shí)現(xiàn)。miscdevice設(shè)備共享一個(gè)主設(shè)備號(hào)MISC_MAJOR(10),但次設(shè)備號(hào)不同,需在file_operations結(jié)構(gòu)體中注冊(cè)文件操作接口,內(nèi)核通過此結(jié)構(gòu)訪問驅(qū)動(dòng)程序提供的接口函數(shù)。在初始化AD設(shè)備后,調(diào)用adc_ioctl函數(shù)時(shí)進(jìn)行通道和預(yù)分頻值設(shè)置,按式(2)確定A/D轉(zhuǎn)換頻率
(2)
式中FAD為AD的轉(zhuǎn)換頻率;Fpclk為外設(shè)總線時(shí)鐘;PR為預(yù)分頻器值,其范圍為0~255。
在聲音信號(hào)采集的程序設(shè)計(jì)中,借助多線程編程實(shí)現(xiàn),提高CPU資源的使用效率,采集流程如圖3所示,線程函數(shù)循環(huán)獲取底層A/D轉(zhuǎn)換數(shù)據(jù),采集線程函數(shù)核心代碼為:
void * sample_process (void *arg){
AD *ad = (AD*)arg;/*格式轉(zhuǎn)換*/ static int data = 0;/*初始化*/
int len; char buffer[20]; int fd = ad->fd; /*設(shè)備打開的標(biāo)識(shí)符*/
int cmd = ad->cmd; /*接入的AD通道*/
unsigned long argu = ad->arg; /*預(yù)分頻值*/
ioctl(fd,cmd,argu); /*傳入?yún)?shù)*/
while(1){ memset(buffer,0,20); /*內(nèi)存清零*/
len=read(fd,buffer,sizeof(buffer)-1); /*讀取內(nèi)容*/
if(len > 0) { buffer[len] = '/0';
sscanf(buffer,"%d",&data);/*寫入數(shù)據(jù)*/
ad->data = data;/*獲取數(shù)據(jù)*/
} }
return NULL; }
圖3 聲音采集流程
采集數(shù)據(jù)波形繪制借助Qt的圖形繪制功能,將采集換算后的數(shù)據(jù)點(diǎn),在繪圖設(shè)備上描點(diǎn)連線,并利用信號(hào)與槽的機(jī)制,設(shè)定定時(shí)器,定時(shí)重繪采集的數(shù)據(jù)點(diǎn),實(shí)時(shí)波形如圖4所示。
圖4 實(shí)時(shí)波形
系統(tǒng)Linux內(nèi)核版本是Linux2.6.30,支持V4L2架構(gòu)。圖5為基于V4L2的視頻采集流程:打開攝像頭設(shè)備,獲取設(shè)備信息;設(shè)置視頻采集參數(shù);獲取視頻圖像。文中使用內(nèi)存映射方式(mmap)來獲取視頻圖像,將設(shè)備文件映射到內(nèi)存中,繞過內(nèi)核緩沖區(qū),相對(duì)于直接讀取(read)的方式,提升了訪問速度[6]。在整個(gè)視頻獲取過程中創(chuàng)建兩個(gè)線程:采集線程和顯示線程。采集線程將采集到的圖像寫到緩沖區(qū),當(dāng)在該緩沖區(qū)寫滿一幀圖像時(shí),顯示線程給應(yīng)用程序發(fā)送消息,并從緩沖區(qū)里讀取圖像并顯示,提升了存取速度。
圖5 視頻圖像采集流程
視頻圖像顯示同樣利用Qt信號(hào)與槽的機(jī)制,每隔30 ms定時(shí)取出緩沖隊(duì)列中的一幀圖像,由update函數(shù)調(diào)用重寫的重繪函數(shù)paintEvent在設(shè)備上進(jìn)行重繪,顯示過程連續(xù)無停頓感。
在多傳感器網(wǎng)絡(luò)技術(shù)廣泛應(yīng)用的背景下,實(shí)現(xiàn)了基于嵌入式平臺(tái)的聲光一體化采集平臺(tái)的設(shè)計(jì)。一方面對(duì)硬件系統(tǒng)的功能需求分析,確定設(shè)計(jì)方案,采用模塊分層的設(shè)計(jì)思想,將核心板和底板分開設(shè)計(jì);另一方面選用S3C2440A作為嵌入式微處理器,自帶AD設(shè)備,縮減開發(fā)成本和周期。軟件設(shè)計(jì)借助多線程編程實(shí)現(xiàn)了聲音信號(hào)和視頻圖像的采集和顯示,提高了系統(tǒng)資源的利用率。整個(gè)系統(tǒng)達(dá)到了預(yù)期的設(shè)計(jì)目的,為實(shí)現(xiàn)多傳感器網(wǎng)絡(luò)下的目標(biāo)識(shí)別與跟蹤打下了基礎(chǔ)。
[1] 李 濤.基于ARM的USB視頻采集系統(tǒng)研究[D].秦皇島:燕山大學(xué),2011.
[2] 付 力,焦斌亮.基于GPRS和DaVinci技術(shù)的視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2011,30(6):100-102.
[3] 琚 成,梁天翼,賈蕓芳.嵌入式系統(tǒng)中硬件關(guān)鍵性能指標(biāo)測(cè)試模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].南開大學(xué)學(xué)報(bào):自然科學(xué)版,2013(5):50-55.
[4] 曹一江,孫志斌,劉曉為,等.駐極體聲傳感器信號(hào)采集系統(tǒng)研究[J].傳感器與微系統(tǒng),2006,25(10):19-21.
[5] 周海峰,李 俊,劉 嘉,等.基于Linux的外部AD驅(qū)動(dòng)程序設(shè)計(jì)[J].儀表技術(shù)與傳感器,2015(5):53-55.
[6] 馬文強(qiáng),章 專.基于S3C6410的無線視頻傳輸節(jié)點(diǎn)設(shè)計(jì)[J].傳感器與微系統(tǒng),2011,30(10):96-98.
Design of acoustic-optical signals acquisition system based on embedded platform*
WANG Hua-jun, GUO Bao-feng
(Key Laboratory of Fundamental Science for National Defense of Communication Information Transmission and Fusion Technology,Hangzhou Dianzi University, Hangzhou 310018, China)
Designs of software and hardware system for acquiring acoustical signal and video capture based on embedded platforms is introduced.Adopting module hierarchy idea, the hardware system is divided into core-board and base plate.The software design uses multithreading programming technique which can realize continuous signal collection and real-time display.Design of hardware system,acoustical signal and video signal acquisition are introduced in detail.It has certain meaning for design and application of multisensor networks embedded platforms.
embedded platform; acoustical signal capture; video capture; multithread; multisensor network
10.13873/J.1000—9787(2017)09—0091—03
2016—09—19
國(guó)家自然科學(xué)基金資助項(xiàng)目(61375011); 浙江省自然科學(xué)基金資助項(xiàng)目(LY13F030015)
TN 401
A
1000—9787(2017)09—0091—03
汪華俊(1991-),男,碩士研究生,主要研究方向?yàn)榍度胧较到y(tǒng)集成與開發(fā)。