當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘 要:文章以戶外報(bào)警對(duì)講系統(tǒng)為研究目標(biāo),設(shè)計(jì)實(shí)現(xiàn)了具有一鍵報(bào)警和語音對(duì)講功能的終端主機(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ò)通信。同時(shí),系統(tǒng)還集成有LED顯示屏,SD卡,USB接口等。測(cè)試顯示,系統(tǒng)報(bào)警穩(wěn)定,通話聲音清晰、流暢,達(dá)到了預(yù)期要求。

引 言

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

1 系統(tǒng)硬件

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

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

嵌入式Linux下的戶外報(bào)警對(duì)講系統(tǒng)設(shè)計(jì)

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

1.1 音頻處理模塊

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

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

嵌入式Linux下的戶外報(bào)警對(duì)講系統(tǒng)設(shè)計(jì)

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),同時(shí)還支持超低功耗模式,兼容 3.3 V 和 5.0 V 輸入輸出電壓。網(wǎng)口使用內(nèi)部已經(jīng)包含耦合線圈的 RJ45 連接頭,因此不必在電路中另接網(wǎng)絡(luò)變壓器。

1.3 固件升級(jí)模塊

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

2 系統(tǒng)軟件

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

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

嵌入式Linux下的戶外報(bào)警對(duì)講系統(tǒng)設(shè)計(jì)

2.1 ALSA

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

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

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

嵌入式Linux下的戶外報(bào)警對(duì)講系統(tǒng)設(shè)計(jì)

圖 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ù)??紤]到緊急報(bào)警的通話要求僅為清晰,故選用的參數(shù)為 :采樣率 8 k,單通道,16 位。ALSA首先聲明一個(gè)結(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ù),其中一個(gè)線程負(fù)責(zé)通過 UDP 接收音頻流并播放,調(diào)用 snd_pcm_writei函數(shù)完成寫數(shù)據(jù) ;另一個(gè)線程負(fù)責(zé)采集音頻信號(hào)并發(fā)送到服務(wù)器,調(diào)用 snd_pcm_readi 函數(shù)完成讀數(shù)據(jù)操作。音頻的采集和播放分別維護(hù)一個(gè) buffer,由信號(hào)量控制各線程對(duì)其的使用權(quán),每個(gè) buffer 有兩個(gè)指針,分別表示數(shù)據(jù)的壓入和取出,保證程序有序運(yùn)行。

2.2 Speex

由于音頻設(shè)備會(huì)出現(xiàn)回聲的現(xiàn)象(遠(yuǎn)端喇叭播放的聲音被麥克風(fēng)采集后又傳回近端),情況嚴(yán)重時(shí)對(duì)語音質(zhì)量影響極大。本設(shè)計(jì)主要采用 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ù)第一個(gè)參數(shù)是每幀的大小,第二個(gè)參數(shù)是采樣率。在語音通話中一般采用的幀長(zhǎng)為 20 ms,假如是 16 k的語音數(shù)據(jù),幀長(zhǎng) 20 ms 等于 320 個(gè)采樣點(diǎn)。

(2)創(chuàng)建回聲消除 AEC,設(shè)置相關(guān)參數(shù)。調(diào)用 speex_echo_state_init(m_nFrameSize,m_nFilterLen) 創(chuàng)建一個(gè)AEC(Acoustic Echo Chancellor,AEC),該函數(shù)的第二個(gè)參數(shù)是尾音長(zhǎng)度,即喇叭到麥克風(fēng)的延遲時(shí)間,該參數(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,第二個(gè)參數(shù)是喇叭播放數(shù)據(jù),第三個(gè)參數(shù)是麥克風(fēng)采集數(shù)據(jù),第四個(gè)參數(shù)是回聲消除后的數(shù)據(jù)。

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

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

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

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

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

3 結(jié) 語

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

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

嵌入式Linux下的戶外報(bào)警對(duì)講系統(tǒng)設(shè)計(jì)



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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