有害動(dòng)物智能聲防系統中音頻控制子系統的研制
2.2 方案1的軟件設計
圖3是音頻控制子系統構建方案1的軟件流程。上電后,音頻控制子系統先完成各種外圍設備(包括SD卡、DAC芯片以及LCD等)的檢測和初始化,隨后進(jìn)入工作循環(huán)。首先對工作模式變量進(jìn)行判斷,若是觸發(fā)模式,則返回重做判斷;若為隨機模式,則調用隨機數生成子程序,隨機生成一個(gè)等待時(shí)間并延時(shí)等待,然后從存儲器中讀取聲防目標變量指定的音頻文件并解碼播放。在整個(gè)工作循環(huán)過(guò)程中,音頻控制子系統開(kāi)放串口中斷。當串口接收到來(lái)自無(wú)線(xiàn)通信模塊的信息時(shí),即產(chǎn)生串口中斷。中斷處理程序對接收到的信息進(jìn)行判斷,若是來(lái)自探測節點(diǎn)的聲防命令,且當前處于觸發(fā)工作模式,則根據最近更新的聲防目標播放對應的音頻文件,然后通過(guò)無(wú)線(xiàn)通信模塊向總控制器返回一個(gè)執行記錄,用于統計該地區有害動(dòng)物的出沒(méi)規律;如果不是聲防命令,而是來(lái)自總控制器的信息,則更新對應的控制變量,例如工作模式、間隔時(shí)間范圍、聲防目標文件、音量大小等。本文引用地址:http://dyxdggzs.com/article/163084.htm
音頻控制子系統構建方案1的軟件,從功能上主要分為隨機數生成、SD卡驅動(dòng)、FAT文件管理、串口通信以及解碼控制等5部分。
隨機數生成子程序通過(guò)調用庫函數rand(),在間隔時(shí)間變量確定的范圍內生成一個(gè)隨機數并執行延時(shí)。
SD卡驅動(dòng)實(shí)現在SPI方式下以扇區(512 B)為單位對SD卡上數據的讀寫(xiě)。
由于存儲器上一般使用FAT文件格式存放和管理文件,FAT文件管理子程序可實(shí)現對存儲器上文件目錄、數據存放位置的管理,以及在SD卡驅動(dòng)下讀取指定文件的數據。
串口通信子程序實(shí)現串口初始化和以字節為單位的數據收發(fā),并在此基礎上實(shí)現以幀為單位且帶有數據校驗的串口通信。在本方案的串口協(xié)議中,1幀數據包括8個(gè)字節。其中,第1字節是約定起始標志;第2字節為發(fā)送者地址;第3字節是消息種類(lèi)(如“更新聲防目標”、“改變音量大小”等);第4~7字節是消息參數;第8字節為前7個(gè)字節的和,用于校驗數據傳輸的正確性,以保證通信的可靠性。
解碼控制子程序是音頻控制子系統軟件的重要部分,由于單片機上集成了MP3硬件解碼器,用戶(hù)無(wú)需關(guān)心解碼的具體過(guò)程,只要設置好解碼器參數并及時(shí)將數據送入解碼緩沖區即可。MP3音頻文件內容分3部分,首、尾2部分用于記錄音頻文件名稱(chēng)、制作者等信息;中間部分以幀為單位存放壓縮音頻數據,幀頭中包含有音頻文件的文件類(lèi)型、采樣率、比特率、聲道數等信息。在播放指定的MP3音頻文件時(shí),單片機先通過(guò)FAT文件管理子程序讀取指定文件一個(gè)扇區的數據,并以此設置好硬件解碼器相關(guān)參數;然后,將音頻數據依次寫(xiě)入解碼器緩沖區,解碼器自動(dòng)對MP3數據解碼,并將解碼后的數據送入DAC。為實(shí)現連續播放,解碼控制子程序需要保證在解碼數據緩沖區空閑時(shí)及時(shí)寫(xiě)入待解碼的數據。
3 方案2的構建及實(shí)現
3.1 方案二的硬件結構及實(shí)現
方案2為音頻控制子系統的“ARM微處理器+軟件解碼”構建,該方案的硬件結構如圖4所示。ARM微處理器選用了三星公司生產(chǎn)的S3C2440芯片,并擴展了64 MB FLASH,用于存儲引導程序和操作系統內核等,同時(shí),還擴展了64 MB SDRAM作為程序的運行空間。S3C2440基于A(yíng)RM920T內核,工作頻率達400 MHz,集成有SD、USB Host、LCD、音頻、視頻等豐富的外設接口,并提供有130個(gè)I/O口,是一款高性能、低功耗微處理器芯片[3]。無(wú)線(xiàn)通信模塊通過(guò)RS-232串口與微處理器相連。由于S3C2440上的USB HOST接口只支持USB1.1協(xié)議,考慮到兼容性,該方案中仍選擇SD卡作為存儲器,并以SD方式對其進(jìn)行讀寫(xiě)。S3C2440集成有LCD和觸摸屏控制器,可根據需要選擇相應的人機交互設備,例如點(diǎn)陣式LCD。S3C2440通過(guò)I2S音頻接口與具有A/D和D/A功能的低功耗音頻處理芯片UDA1341相連,實(shí)現音頻信號的采集和輸出。該系統經(jīng)以太網(wǎng)控制芯片DM9000A接入以太網(wǎng),用于與微機相連進(jìn)行開(kāi)發(fā)調試。為提高系統硬件的電磁兼容性能及可擴展性,硬件設計上采用了核心板+擴展板的模塊化結構。核心板上包括S3C2440、FLASH和SDRAM芯片,其借助插針與擴展板相連。擴展板集成了各種外圍芯片和接口,可據實(shí)際需求更改設計方案,方便系統硬件的擴展升級。
3.2 方案2的軟件設計
方案2的軟件結構分為3層,見(jiàn)圖5。軟件開(kāi)發(fā)平臺采用了嵌入式Linux操作系統。Linux是一種穩定、高效、免費的開(kāi)源操作系統,不僅支持多種體系結構和大量硬件設備,而且其內核可據實(shí)際需求裁剪。
pid控制器相關(guān)文章:pid控制器原理
評論