當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘 要:文章以戶外報警對講系統(tǒng)為研究目標(biāo),設(shè)計實(shí)現(xiàn)了具有一鍵報警和語音對講功能的終端主機(jī)。系統(tǒng)采用Cortex-A8架構(gòu)的S5PV210處理器,搭載Linux系統(tǒng),由ALSA音頻架構(gòu)進(jìn)行音頻數(shù)據(jù)處理,使用Speex音頻架構(gòu)進(jìn)行回聲消除,應(yīng)用開源網(wǎng)絡(luò)事件庫Libevent實(shí)現(xiàn)網(wǎng)絡(luò)通信。同時,系統(tǒng)還集成有LED顯示屏,SD卡,USB接口等。測試顯示,系統(tǒng)報警穩(wěn)定,通話聲音清晰、流暢,達(dá)到了預(yù)期要求。

引 言

當(dāng)社區(qū)公民在戶外遇到突發(fā)情況時,快速與有關(guān)部門取得聯(lián)系非常重要。針對這種社會需求,本設(shè)計提出并實(shí)現(xiàn)了一種戶外報警對講系統(tǒng)。當(dāng)社區(qū)內(nèi)發(fā)生突發(fā)事件時,市民能夠通過此設(shè)備第一時間通知社區(qū)控制室,并與工作人員對講以尋求幫助 [1-2]。此報警對講系統(tǒng)使用 Cortex-A8 架構(gòu)的 S5PV210 ARM 處理器作為 CPU,硬件包括音頻模塊、網(wǎng)絡(luò)模塊、SD 卡模塊、USB 模塊、按鍵報警模塊、顯示模塊等。

1 系統(tǒng)硬件

系統(tǒng)采用 S5PV210核心板作為主控單元,使用 WM8960 音頻芯片 CODEC進(jìn)行編碼與解碼,使用LM4871音頻功率放大芯片放大聲音信號后傳送到 4Ω/3W的喇叭輸出。系統(tǒng)選用 DM9000網(wǎng)絡(luò)芯片,通過百兆網(wǎng)口與后臺服務(wù)器通信,由I/O口控制 LED 的顯示以及檢測按鍵報警,由 RS232接口控制LED顯示屏顯示的內(nèi)容。系統(tǒng)預(yù)留了SD卡接口和USB接口, 使得系統(tǒng)可以方便地進(jìn)行內(nèi)核燒寫與日后的維護(hù)升級。

系統(tǒng)硬件框圖如圖 1 所示。

嵌入式Linux下的戶外報警對講系統(tǒng)設(shè)計

圖1 系統(tǒng)硬件框圖

1.1 音頻處理模塊

S5PV210 支持 I2S/PCM/AC97 等音頻接口。 本開發(fā)板采用 I2S0 接口, 外接有 WM8960 作為 CODEC 解碼芯片。WM8960 內(nèi)置有 D 類功放,可以直接驅(qū)動 8 Ω/1 W 的喇叭, 本設(shè)計使用 LM4871 功放芯片對信號進(jìn)行放大處理。LM4871 是一個具有關(guān)斷功能的音頻功率放大器,其具有單位增益穩(wěn)定,外部電路簡單等特點(diǎn),輸出可以驅(qū)動 4 Ω/3 W 的喇叭,經(jīng)測試,音量基本達(dá)到了設(shè)計要求。

音頻功放模塊電路如圖 2 所示。

嵌入式Linux下的戶外報警對講系統(tǒng)設(shè)計

1.2 網(wǎng)絡(luò)模塊

網(wǎng)絡(luò)部分采用 DM9000 網(wǎng)卡芯片。DM9000 是一款集成了 10/100PHY 的以太網(wǎng)MAC 控制器,它可自適應(yīng) 10/100 M 網(wǎng)絡(luò),具有支持介質(zhì)無關(guān)接口,支持背壓模式半雙工流量控制模式等特點(diǎn),同時還支持超低功耗模式,兼容 3.3 V 和 5.0 V 輸入輸出電壓。網(wǎng)口使用內(nèi)部已經(jīng)包含耦合線圈的 RJ45 連接頭,因此不必在電路中另接網(wǎng)絡(luò)變壓器。

1.3 固件升級模塊

傳統(tǒng)的嵌入式產(chǎn)品在設(shè)備安裝完成后,對于內(nèi)核驅(qū)動層的升級較為不便,一般需回廠升級或者更換 ROM。這種方式不僅效率低下,更大大增加了維修成本。本設(shè)計預(yù)留了 SD 卡接口和 USB 接口,系統(tǒng)可以通過 SD 卡上的 Boot Loader 啟動并通過 USB 接口燒寫內(nèi)核。維修人員只需攜帶一張 SD 卡和一臺筆記本電腦即可完成固件升級工作。

2 系統(tǒng)軟件

系統(tǒng)軟件主要由應(yīng)用層軟件以及相應(yīng)的驅(qū)動模塊組成。應(yīng)用層主要包括網(wǎng)絡(luò)模塊、音頻模塊、回聲消除模塊、按鍵控制模塊等。系統(tǒng)軟件模塊組成如圖 3所示。

文中分別詳細(xì)介紹了與音頻處理有關(guān)的 ALSA 框架,與回聲消除有關(guān)的 Speex框架及網(wǎng)絡(luò)通信部分。

嵌入式Linux下的戶外報警對講系統(tǒng)設(shè)計

2.1 ALSA

S5PV210 支持 I2S/PCM/AC97 等音頻接口。本設(shè)計采用I2S 接口進(jìn)行音頻數(shù)據(jù)的傳輸,采用 I2C 接口對 CODEC 芯片的寄存器進(jìn)行設(shè)置。整個音頻驅(qū)動基于 ALSA 音頻架構(gòu) [3-6]。

ALSA 是 Linux上一種應(yīng)用比較廣泛的音頻驅(qū)動框架,ALSA 包含與音頻編程有關(guān)的 API 庫 [2],及其他方便開發(fā)的工具,如 alsamixer 可以調(diào)節(jié)音頻混聲器參數(shù),arecord 指令可以測試錄音功能,aplay 指令可以測試播放功能。

ALSA 的軟件體系結(jié)構(gòu)如圖 4 所示。

嵌入式Linux下的戶外報警對講系統(tǒng)設(shè)計

圖 4 ALSA 的軟件體系結(jié)構(gòu)圖

ALSA 的 API 可以分解成控制接口、PCM 接口、Raw MIDI 接口等。其中 PCM 接口是管理數(shù)字音頻回放(playback) 和錄音(capture)的接口。本文后續(xù)重點(diǎn)將放在該接口上,它是開發(fā)數(shù)字音頻程序最常用的接口。

要使用 ALSA,首先調(diào)用以下語句打開 PCM 設(shè)備 :

snd_pcm_open(&handle_cap,"hw :0,0",SND_PCM_STREAM_CAPTURE,0);

設(shè)置語音的硬件參數(shù)??紤]到緊急報警的通話要求僅為清晰,故選用的參數(shù)為 :采樣率 8 k,單通道,16 位。ALSA首先聲明一個結(jié)構(gòu)體 snd_pcm_hw_params_t,用來保存句柄的硬件參數(shù),然后調(diào)用參數(shù)設(shè)置語句填充結(jié)構(gòu)體,最后調(diào)用函數(shù) snd_pcm_hw_params 進(jìn)行參數(shù)設(shè)置。

音頻部分代碼運(yùn)用 Linux 多線程編程技術(shù),其中一個線程負(fù)責(zé)通過 UDP 接收音頻流并播放,調(diào)用 snd_pcm_writei函數(shù)完成寫數(shù)據(jù) ;另一個線程負(fù)責(zé)采集音頻信號并發(fā)送到服務(wù)器,調(diào)用 snd_pcm_readi 函數(shù)完成讀數(shù)據(jù)操作。音頻的采集和播放分別維護(hù)一個 buffer,由信號量控制各線程對其的使用權(quán),每個 buffer 有兩個指針,分別表示數(shù)據(jù)的壓入和取出,保證程序有序運(yùn)行。

2.2 Speex

由于音頻設(shè)備會出現(xiàn)回聲的現(xiàn)象(遠(yuǎn)端喇叭播放的聲音被麥克風(fēng)采集后又傳回近端),情況嚴(yán)重時對語音質(zhì)量影響極大。本設(shè)計主要采用 Speex 音頻庫的 API,結(jié)合 ALSA 框架進(jìn)行回聲消除的研究 [7]。

應(yīng)用 Speex 庫進(jìn)行回聲消除的主要步驟如下:

(1)首先設(shè)置音頻基本參數(shù),需要調(diào)用以下函數(shù) :

_speex_preprocess=speex_preprocess_state_init(FRAMESIZE,8000);

在使用其他功能之前首先調(diào)用 Speex 的預(yù)處理函數(shù)初始化音頻參數(shù),函數(shù)第一個參數(shù)是每幀的大小,第二個參數(shù)是采樣率。在語音通話中一般采用的幀長為 20 ms,假如是 16 k的語音數(shù)據(jù),幀長 20 ms 等于 320 個采樣點(diǎn)。

(2)創(chuàng)建回聲消除 AEC,設(shè)置相關(guān)參數(shù)。調(diào)用 speex_echo_state_init(m_nFrameSize,m_nFilterLen) 創(chuàng)建一個AEC(Acoustic Echo Chancellor,AEC),該函數(shù)的第二個參數(shù)是尾音長度,即喇叭到麥克風(fēng)的延遲時間,該參數(shù)直接影響了回聲消除的效果。

調(diào) 用 speex_echo_ctl(st,SPEEX_ECHO_SET_SAMPLING_RATE,&sampleRate)來設(shè)置相關(guān)參數(shù)。 (3)最后在線程中循環(huán)調(diào)用函數(shù)消除回聲。調(diào)用 speex_echo_cancellation(st,ref_buf,echo_buf,e_buf)函數(shù)將數(shù)據(jù)傳遞給 AEC,第二個參數(shù)是喇叭播放數(shù)據(jù),第三個參數(shù)是麥克風(fēng)采集數(shù)據(jù),第四個參數(shù)是回聲消除后的數(shù)據(jù)。

調(diào)用 speex_preprocess_run(_speex_preprocess,outbuf)啟動 Speex 的音頻處理進(jìn)行回聲消除。Outbuf 即為處理后的數(shù)據(jù)。

2.3 網(wǎng)絡(luò)通信

系統(tǒng)使用 TCP 協(xié)議控制信號的傳輸,使用 UDP 協(xié)議進(jìn)行音頻流的傳輸 [8]。

下位機(jī)作為 TCP 客戶端主動向服務(wù)器發(fā)起連接,并且每隔 30 s 向服務(wù)器發(fā)送一個心跳包,服務(wù)器可以通過判斷接收間隔以判斷下位機(jī)的在線狀態(tài)。下位機(jī)和服務(wù)器通過 Modbus協(xié)議進(jìn)行應(yīng)用層數(shù)據(jù)交互,其基本格式為 :幀頭 + 幀長 + 數(shù)據(jù)區(qū)+ 校驗(yàn)碼 + 幀尾,通過自定義協(xié)議完成上位機(jī)對下位機(jī)的查詢和控制,以及下位機(jī)報警信號的上傳。

網(wǎng)絡(luò)編程部分應(yīng)用了 Libevent 事件通知庫,其內(nèi)部使用select,epoll,kqueue,IOCP 等系統(tǒng)調(diào)用管理事件機(jī)制。相對于 Raw Socket 編程,應(yīng)用 Libevent 事件庫大大提升了網(wǎng)絡(luò)通信的性能與穩(wěn)定性。

3 結(jié) 語

本系統(tǒng)在設(shè)計完成后進(jìn)行了完整有效的系統(tǒng)測試,電路板安裝在定制的機(jī)箱殼體內(nèi),并設(shè)計有 ESD 防護(hù)。本設(shè)備可以安裝在電線桿上或者臨街的墻壁上方便市民使用。

 圖 5 終端控制板實(shí)物圖最終的測試結(jié)果表明,報警信號可及時上傳,對講語音清晰有效,各類接口功能正常,均滿足了設(shè)計要求,達(dá)到了預(yù)期目標(biāo)。

嵌入式Linux下的戶外報警對講系統(tǒng)設(shè)計



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉