<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 有害動物智能聲防系統(tǒng)中音頻控制子系統(tǒng)的研制

          有害動物智能聲防系統(tǒng)中音頻控制子系統(tǒng)的研制

          作者: 時(shí)間:2010-05-13 來源:網(wǎng)絡(luò) 收藏
          由圖2可見,AT89C51SND1通過RS-232串口與無線通信模塊相連,采用自定義協(xié)議與其進(jìn)行通信,以實(shí)現(xiàn)執(zhí)行器節(jié)點(diǎn)與探測節(jié)點(diǎn)、總器之間的無線通信。因AT89C51SND1沒有集成USB HOST接口,故選擇USB接口芯片CH375讀寫U盤。而實(shí)際測試中發(fā)現(xiàn),CH375不能識別有些廠家生產(chǎn)的U盤。故為確保存儲的可靠性,選用SD卡作存儲介質(zhì)。SD卡的讀寫分為SD和SPI方式,而AT89C51SND1只提供MMC接口,無法兼容SD方式,故采用SPI方式讀寫SD卡。AT89C51SND1上集成了輸出接口,可將解碼后的數(shù)據(jù)以PCM格式或I2S格式輸出到后級的低功耗數(shù)模轉(zhuǎn)換芯片PCM1770。AT89C51SND1通過USB DEVICE接口作為USB從設(shè)備與計(jì)算機(jī)相連,用于燒寫應(yīng)用程序。AT89C51SND1還可通過I/O口與點(diǎn)陣式LCD相連,以輸出相關(guān)信息。
          2.2 方案1的軟件設(shè)計(jì)
          圖3是音頻構(gòu)建方案1的軟件流程。上電后,音頻先完成各種外圍設(shè)備(包括SD卡、DAC芯片以及LCD等)的檢測和初始化,隨后進(jìn)入工作循環(huán)。首先對工作模式變量進(jìn)行判斷,若是觸發(fā)模式,則返回重做判斷;若為隨機(jī)模式,則調(diào)用隨機(jī)數(shù)生成子程序,隨機(jī)生成一個等待時(shí)間并延時(shí)等待,然后從存儲器中讀取聲防目標(biāo)變量指定的音頻文件并解碼播放。在整個工作循環(huán)過程中,音頻控制開放串口中斷。當(dāng)串口接收到來自無線通信模塊的信息時(shí),即產(chǎn)生串口中斷。中斷處理程序?qū)邮盏降男畔⑦M(jìn)行判斷,若是來自探測節(jié)點(diǎn)的聲防命令,且當(dāng)前處于觸發(fā)工作模式,則根據(jù)最近更新的聲防目標(biāo)播放對應(yīng)的音頻文件,然后通過無線通信模塊向總控制器返回一個執(zhí)行記錄,用于統(tǒng)計(jì)該地區(qū)的出沒規(guī)律;如果不是聲防命令,而是來自總控制器的信息,則更新對應(yīng)的控制變量,例如工作模式、間隔時(shí)間范圍、聲防目標(biāo)文件、音量大小等。

          本文引用地址:http://www.ex-cimer.com/article/163084.htm

          音頻控制子系統(tǒng)構(gòu)建方案1的軟件,從功能上主要分為隨機(jī)數(shù)生成、SD卡驅(qū)動、FAT文件管理、串口通信以及解碼控制等5部分。
          隨機(jī)數(shù)生成子程序通過調(diào)用庫函數(shù)rand(),在間隔時(shí)間變量確定的范圍內(nèi)生成一個隨機(jī)數(shù)并執(zhí)行延時(shí)。
          SD卡驅(qū)動實(shí)現(xiàn)在SPI方式下以扇區(qū)(512 B)為單位對SD卡上數(shù)據(jù)的讀寫。
          由于存儲器上一般使用FAT文件格式存放和管理文件,F(xiàn)AT文件管理子程序可實(shí)現(xiàn)對存儲器上文件目錄、數(shù)據(jù)存放位置的管理,以及在SD卡驅(qū)動下讀取指定文件的數(shù)據(jù)。
          串口通信子程序?qū)崿F(xiàn)串口初始化和以字節(jié)為單位的數(shù)據(jù)收發(fā),并在此基礎(chǔ)上實(shí)現(xiàn)以幀為單位且?guī)в袛?shù)據(jù)校驗(yàn)的串口通信。在本方案的串口協(xié)議中,1幀數(shù)據(jù)包括8個字節(jié)。其中,第1字節(jié)是約定起始標(biāo)志;第2字節(jié)為發(fā)送者地址;第3字節(jié)是消息種類(如“更新聲防目標(biāo)”、“改變音量大小”等);第4~7字節(jié)是消息參數(shù);第8字節(jié)為前7個字節(jié)的和,用于校驗(yàn)數(shù)據(jù)傳輸?shù)恼_性,以保證通信的可靠性。
          解碼控制子程序是音頻控制子系統(tǒng)軟件的重要部分,由于單片機(jī)上集成了MP3硬件解碼器,用戶無需關(guān)心解碼的具體過程,只要設(shè)置好解碼器參數(shù)并及時(shí)將數(shù)據(jù)送入解碼緩沖區(qū)即可。MP3音頻文件內(nèi)容分3部分,首、尾2部分用于記錄音頻文件名稱、制作者等信息;中間部分以幀為單位存放壓縮音頻數(shù)據(jù),幀頭中包含有音頻文件的文件類型、采樣率、比特率、聲道數(shù)等信息。在播放指定的MP3音頻文件時(shí),單片機(jī)先通過FAT文件管理子程序讀取指定文件一個扇區(qū)的數(shù)據(jù),并以此設(shè)置好硬件解碼器相關(guān)參數(shù);然后,將音頻數(shù)據(jù)依次寫入解碼器緩沖區(qū),解碼器自動對MP3數(shù)據(jù)解碼,并將解碼后的數(shù)據(jù)送入DAC。為實(shí)現(xiàn)連續(xù)播放,解碼控制子程序需要保證在解碼數(shù)據(jù)緩沖區(qū)空閑時(shí)及時(shí)寫入待解碼的數(shù)據(jù)。
          3 方案2的構(gòu)建及實(shí)現(xiàn)
          3.1 方案二的硬件結(jié)構(gòu)及實(shí)現(xiàn)

          方案2為音頻控制子系統(tǒng)的“ARM微處理器+軟件解碼”構(gòu)建,該方案的硬件結(jié)構(gòu)如圖4所示。ARM微處理器選用了三星公司生產(chǎn)的S3C2440芯片,并擴(kuò)展了64 MB FLASH,用于存儲引導(dǎo)程序和操作系統(tǒng)內(nèi)核等,同時(shí),還擴(kuò)展了64 MB SDRAM作為程序的運(yùn)行空間。S3C2440基于ARM920T內(nèi)核,工作頻率達(dá)400 MHz,集成有SD、USB Host、LCD、音頻、視頻等豐富的外設(shè)接口,并提供有130個I/O口,是一款高性能、低功耗微處理器芯片[3]。無線通信模塊通過RS-232串口與微處理器相連。由于S3C2440上的USB HOST接口只支持USB1.1協(xié)議,考慮到兼容性,該方案中仍選擇SD卡作為存儲器,并以SD方式對其進(jìn)行讀寫。S3C2440集成有LCD和觸摸屏控制器,可根據(jù)需要選擇相應(yīng)的人機(jī)交互設(shè)備,例如點(diǎn)陣式LCD。S3C2440通過I2S音頻接口與具有A/D和D/A功能的低功耗音頻處理芯片UDA1341相連,實(shí)現(xiàn)音頻信號的采集和輸出。該系統(tǒng)經(jīng)以太網(wǎng)控制芯片DM9000A接入以太網(wǎng),用于與微機(jī)相連進(jìn)行開發(fā)調(diào)試。為提高系統(tǒng)硬件的電磁兼容性能及可擴(kuò)展性,硬件設(shè)計(jì)上采用了核心板+擴(kuò)展板的模塊化結(jié)構(gòu)。核心板上包括S3C2440、FLASH和SDRAM芯片,其借助插針與擴(kuò)展板相連。擴(kuò)展板集成了各種外圍芯片和接口,可據(jù)實(shí)際需求更改設(shè)計(jì)方案,方便系統(tǒng)硬件的擴(kuò)展升級。

          3.2 方案2的軟件設(shè)計(jì)
          方案2的軟件結(jié)構(gòu)分為3層,見圖5。軟件開發(fā)平臺采用了嵌入式Linux操作系統(tǒng)。Linux是一種穩(wěn)定、高效、免費(fèi)的開源操作系統(tǒng),不僅支持多種體系結(jié)構(gòu)和大量硬件設(shè)備,而且其內(nèi)核可據(jù)實(shí)際需求裁剪。

          pid控制器相關(guān)文章:pid控制器原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();