有害動(dòng)物智能聲防系統(tǒng)中音頻控制子系統(tǒng)的研制
軟件的中間層是應(yīng)用程序?qū)?,包?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/音頻">音頻解碼子程序、串口通信子程序、隨機(jī)數(shù)生成子程序等。在嵌入式Linux環(huán)境下,有更豐富的系統(tǒng)函數(shù)和開(kāi)源軟件作支持,使應(yīng)用程序的實(shí)現(xiàn)更容易。例如,其中的MP3解碼子程序采用音頻解碼庫(kù)libmad提供的高級(jí)API編寫。libmad是一個(gè)開(kāi)源的高精度MPEG音頻解碼庫(kù),它支持MPEG-1標(biāo)準(zhǔn)中Layer I、Layer II和LayerIII(即MP3)格式的音頻解碼,且解碼過(guò)程使用定點(diǎn)計(jì)算,非常適合沒(méi)有浮點(diǎn)運(yùn)算支持的平臺(tái)(如ARM平臺(tái))。使用libmad提供的高級(jí)API,很容易實(shí)現(xiàn)MP3數(shù)據(jù)的解碼,其過(guò)程只需打開(kāi)對(duì)應(yīng)的音頻設(shè)備文件,并將SD卡上待解碼的音頻文件映射到內(nèi)存中,然后調(diào)用libmad的解碼函數(shù)即可。在方案1的實(shí)現(xiàn)上,研發(fā)者需自己編程實(shí)現(xiàn)的FAT文件格式處理、音頻參數(shù)提取和設(shè)置、解碼數(shù)據(jù)讀寫控制等功能,在本方案中均是由操作系統(tǒng)驅(qū)動(dòng)程序以及l(fā)ibmad解碼庫(kù)中的庫(kù)函數(shù)自動(dòng)完成的。另外,在OSS音頻驅(qū)動(dòng)和SD卡驅(qū)動(dòng)的支持下,可方便地實(shí)現(xiàn)對(duì)WAV音頻文件播放子程序的編制。WAV音頻文件由于直接存儲(chǔ)了PCM編碼的音頻數(shù)據(jù),雖文件較大,但沒(méi)有壓縮失真,其音質(zhì)也優(yōu)于MP3。
軟件的上層是流程控制層。由于方案2與方案1所實(shí)現(xiàn)的功能基本相同,故其軟件的流程并無(wú)本質(zhì)差異,具體功能仍可參見(jiàn)圖3。嵌入式Linux具備多任務(wù)管理功能,即能以分時(shí)復(fù)用方式“同時(shí)”處理多個(gè)進(jìn)程,并提供有多種進(jìn)程間的通信協(xié)調(diào)機(jī)制,例如信號(hào)機(jī)制等。信號(hào)機(jī)制用于多任務(wù)間的通信,其實(shí)質(zhì)是在軟件層次上對(duì)中斷機(jī)制的一種模擬。與方案1不同的是,在嵌入式Linux環(huán)境中,使用信號(hào)機(jī)制能方便地實(shí)現(xiàn)中斷控制。在程序中設(shè)置為當(dāng)串口收到數(shù)據(jù)時(shí),向系統(tǒng)進(jìn)程發(fā)出信號(hào),系統(tǒng)進(jìn)程收到信號(hào)后轉(zhuǎn)向執(zhí)行事先指定的處理程序,從而實(shí)現(xiàn)中斷控制。
4 兩種實(shí)現(xiàn)方案的實(shí)驗(yàn)測(cè)試和對(duì)比
按上述兩方案構(gòu)建了實(shí)現(xiàn)農(nóng)作物有害動(dòng)物智能化聲防系統(tǒng)用的音頻控制子系統(tǒng)。實(shí)驗(yàn)測(cè)試結(jié)果表明,以兩種方案研發(fā)的音頻控制子系統(tǒng)均達(dá)到了預(yù)期目標(biāo),能準(zhǔn)確、可靠地與無(wú)線通信模塊通信,在總控制器控制下實(shí)時(shí)調(diào)整各種工作參數(shù)。音頻控制子系統(tǒng)在觸發(fā)、隨機(jī)2種工作模式下,均能準(zhǔn)確、清晰地播放當(dāng)前聲防目標(biāo)對(duì)應(yīng)的音頻文件。采用可熱插拔的SD卡確保了聲防音頻文件更新方便。而且基于所采用的FAT16文件格式,該子系統(tǒng)能支持最高容量為2 GB的SD卡,實(shí)現(xiàn)了大容量音頻文件的可靠存儲(chǔ)。
由于采用不同的硬件平臺(tái)而構(gòu)建,2種音頻控制子系統(tǒng)實(shí)現(xiàn)方案在功能、開(kāi)發(fā)難度以及構(gòu)建成本等方面有所不同。
在功能方面,方案1能對(duì)比特率在192 kb/s及以下的MP3文件做流暢的解碼播放,但播放更高比特率的文件時(shí),受AT89C51SND1處理速度以及現(xiàn)有程序的數(shù)據(jù)讀寫效率限制,不能保證寫入解碼緩沖區(qū)數(shù)據(jù)的連續(xù)性,從而導(dǎo)致輸出聲音有間斷。而且由于硬件解碼的限制,不能對(duì)其他格式的音頻文件進(jìn)行解碼播放。方案2由于采用軟件解碼,且所選用微處理器S3C2440的主頻達(dá)400 MHz,理論上只要移植對(duì)應(yīng)的解碼子程序,便可對(duì)任何格式的音頻文件進(jìn)行解碼播放。對(duì)方案2的測(cè)試發(fā)現(xiàn),其確實(shí)能對(duì)任意比特率的MP3、WAV格式的音頻文件進(jìn)行解碼播放。而且方案2中,系統(tǒng)完全有能力在完成音頻解碼任務(wù)之同時(shí),還處理更多復(fù)雜的任務(wù)(MP3解碼程序只占用了S3C2440處理能力的7%左右),具有很強(qiáng)的擴(kuò)展性。例如,音頻控制子系統(tǒng)可在探測(cè)器節(jié)點(diǎn)發(fā)現(xiàn)有害動(dòng)物后進(jìn)行聲音采集或視頻采集,并運(yùn)行語(yǔ)音識(shí)別子程序或經(jīng)視覺(jué)檢測(cè)對(duì)探測(cè)到的有害動(dòng)物種類進(jìn)行判斷,從而使整個(gè)聲防系統(tǒng)的聲防目標(biāo)更準(zhǔn)確,達(dá)到更好的聲防效果。另外,由于嵌入式操作系統(tǒng)對(duì)硬件的屏蔽性,實(shí)現(xiàn)方案2的軟件很容易在其他硬件平臺(tái)上移植。
在軟件開(kāi)發(fā)過(guò)程中,方案1需要關(guān)注每個(gè)硬件設(shè)備的操作細(xì)節(jié),其軟件的編程量較大。而方案2由于所選用的Linux操作系統(tǒng)直接提供硬件驅(qū)動(dòng)程序,且也有大量開(kāi)源軟件資源可供應(yīng)用程序編程所利用,故其軟件的開(kāi)發(fā)相對(duì)容易。但方案2需移植嵌入式操作系統(tǒng)作為軟件開(kāi)發(fā)平臺(tái),包括建立BootLoader引導(dǎo)程序,配置、編譯并移植操作系統(tǒng)內(nèi)核和文件系統(tǒng)等,這與采用向單片機(jī)直接燒寫程序的方案1相比,開(kāi)發(fā)難度稍大。在軟件調(diào)試方面,方案1中單片機(jī)程序的每次變更都需重新寫入ROM。而方案2可利用Linux的網(wǎng)絡(luò)功能,將微機(jī)上的編程目錄以NFS方式掛載在嵌入式Linux文件系統(tǒng)中,從而實(shí)現(xiàn)在微機(jī)端編寫、修改程序,在嵌入式Linux系統(tǒng)上直接“遠(yuǎn)程”運(yùn)行修改后的程序,調(diào)試較為方便。
從構(gòu)建成本上比較,方案1的硬件成本更低一些。但隨著制造工藝的不斷進(jìn)步,32 bit微處理器的成本會(huì)進(jìn)一步降低,再考慮外圍器件的成本,以方案2構(gòu)建音頻控制子系統(tǒng)的性價(jià)比,與基于方案1構(gòu)建的相比已有優(yōu)勢(shì)。
數(shù)字化、智能化是農(nóng)業(yè)現(xiàn)代化發(fā)展的必然趨勢(shì)。為確保可靠性和性能最優(yōu),本文利用嵌入式技術(shù)、采用兩種技術(shù)方案研發(fā)實(shí)現(xiàn)了農(nóng)作物有害動(dòng)物智能化聲防系統(tǒng)中起重要作用的音頻控制子系統(tǒng)。實(shí)驗(yàn)測(cè)試發(fā)現(xiàn),“單片機(jī)+硬件解碼”構(gòu)建方案能基本滿足功能需求,但其系統(tǒng)性能和升級(jí)擴(kuò)展能力受到硬件限制;而“ARM微處理器+軟件解碼”構(gòu)建方案能完全滿足功能需求,而且具有很強(qiáng)的擴(kuò)展性和可移植性。本文引用地址:http://cafeforensic.com/article/163084.htm
pid控制器相關(guān)文章:pid控制器原理
評(píng)論