国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于 R8610 的嵌入式網絡音頻播放系統設計與實現*

2013-09-19 06:27:54王小磊任定成
深圳職業(yè)技術學院學報 2013年3期
關鍵詞:進程嵌入式音頻

王小磊, 易 定, 任定成

(深圳職業(yè)技術學院 計算機工程學院,廣東 深圳 518055)

目前主要的網絡音頻播放方式為:基于PC的網絡音頻播放器和嵌入式網絡音頻播放系統[1].雖然基于 PC的網絡音頻播放器[2]在設計和實現上都很成熟,但是攜帶的靈活性限制了這類軟件的發(fā)展.與基于 PC的網絡音頻播放器相比,嵌入式網絡音頻播放系統則具有體積小,功能專業(yè)化高,成本低,穩(wěn)定性高,實時性好等特點[3].目前較成熟的設計方案是以 ARM 系列處理器來實現[4-5],雖然此類方案雖然易于搭建,但是實現的成本較高,不利于推廣,而且在網絡音頻的節(jié)目管理上也沒有一個合理的機制.

為了控制嵌入式網絡音頻系統的生產成本,同時保證系統對各類網絡音頻的播放性能,本文設計一種以X86架構的CPU—R8610為核心的嵌入式網絡音頻播放系統.通過使用該芯片來搭建硬件平臺在成本控制上具有較大的優(yōu)勢.同時,在網絡音頻的節(jié)目管理上,配合該系統使用了一種相對完善的網絡音頻播放體系,在該體系下可以較好地完成網絡音頻終端對網絡音頻節(jié)目的管理.

1 系統的核心硬件選擇

本系統在設計之初,充分考查了多個設計方案,選擇了3款CPU:最早實現嵌入式網絡音頻播放的BC5,應用比較廣泛的S3C2410以及本設計所使用的R8610進行比較,具體見表1.

表1 CPU對比表

對于系統的硬件選擇著重考慮:芯片的性能、網絡的支持以及PCB的加工等.從表1可以看到,與其它2款CPU相比,R8610的處理能力并不是最強的,但其133MHz的主頻完全滿足網絡音頻播放的需求,可以充分發(fā)揮處理器的性能.在網絡的支持上,R8610自身集成了2個網絡接口,免去了硬件設計上對于網絡控制器的選擇,能更好的節(jié)省硬件使用成本.此外,在PCB的加工上,R8610可以采用2層板的設計,降低了對加工工藝的要求.通過以上對比說明采用R8610所做的設計方案與其它方案相比具有較大的價格和工藝優(yōu)勢,利于產品的推廣.

2 系統的架構設計

根據網絡音頻的傳輸過程,本系統的總體網絡設計方案如圖1所示.在該網絡設計方案中涉及:網絡音頻服務器、節(jié)目管理服務器、網絡音頻播放系統和互聯網4大部分.網絡音頻播放系統在進行網絡音頻播放時,首先向節(jié)目管理服務器發(fā)送連接請求,在通過用戶認證以后,獲取相應的節(jié)目列表,然后根據用戶的選擇,向對應的網絡音頻服務器發(fā)送連接請求,并最終獲取網絡音頻.

在硬件上以底層的硬件接口,32bit的R8610和外圍電路為平臺,在此基礎上進行Linux系統的移植,流媒體播放器的移植,通過音頻播放系統來接收用戶指令,控制網絡音頻的播放.

圖1 系統的網絡結構圖

圖2 網絡音頻播放系統的硬件架構圖

系統的硬件設計如圖2所示,在設計上系統以 R8610CPU為核心,采用了 EN29LV320為Flash,用來啟動系統的Bootloader,Linux內核和文件系統.采用了32M的SDRAM為系統提供32M的內存資源.在系統的音頻 D/A轉換上,采用CMI8738芯片通過PCI總線連接R8610,接收CPU所處理好的流媒體音頻,并將該數字信號進行模擬信號的轉換,然后通過NJM4558接收CMI8738的模擬信號,將信號進行放大處理,并輸送到音頻輸出接口處.系統和用戶的交互上,利用 LCD通過GPIO接口與R8610相連,接收R8610的控制指令,實現和用戶的操作界面的交互.IR感應裝置利用GPIO與R8610進行連接,當用戶按下遙控按鍵后,IR進行按鍵的感應,并將按鍵的代碼發(fā)送到R8610,讓應用程序進行功能的解讀.在網絡的支持上由于R8610集成了兩個網絡接口,將RJ45接口利用MII總線連接到R8610的MAC控制器,實現系統對以太網的硬件支持.

網絡音頻播放系統的主要功能是,通過訪問節(jié)目管理服務器來獲取網絡音頻的地址,從而通過流媒體傳輸從網絡音頻服務器端獲取音頻資源,用戶可以通過按鍵的控制,實現對網絡音頻播系統的系統設置、網絡設置、音頻播放控制和信息查看等.

3 系統軟件設計與實現

根據系統的運行操作對象以及相應的功能設計,本系統分為圖3所示的3個層分和7大功能模塊.其中用戶界面層用以和用戶進行信息的交互,將系統當前的運行模式和運行狀態(tài)及時的反饋給用戶,同時接收用戶的按鍵指令;系統管理層用以實現用戶對系統的各類配置,它是系統運行狀態(tài)的決定層,系統正常運行的決定層;音頻播放層網絡音頻播放層是本系統的核心功能層,它根據用戶的播放選擇實現對音頻的獲取和播放.

圖3 系統的軟件層次設計圖

網絡音頻播放系統的功能復雜多樣,下面僅介紹系統的核心網絡音頻播放的實現.網絡音頻的功能啟用由用戶所控制.操作的處理過程如圖 4所示.系統在完成了啟動后,首先對當前的網絡狀態(tài)進行測試,并將測試結果反饋給用戶.當網絡正常的情況下,用戶進行網絡播放的選擇,然后才能夠使用系統的網絡播放功能.系統首先向節(jié)目管理服務器進行節(jié)目列表的查詢,判斷列表的獲取是否正常.當獲取了節(jié)目列表以后,系統利用LCD屏幕將列表信息反饋給用戶,用戶通過按鍵或者遙控等設備進行選擇,在得到用戶的選擇以后,系統將開啟播放進程,進行網絡音頻服務器的連接,當連接成功以后,向網絡音頻服務器發(fā)出網絡音頻數據的請求,在獲取網絡音頻服務器的允許以后,開始進行音頻數據的下載,最后由流媒體播放器進行緩沖和解碼,并播放給用戶.

圖4 網絡音頻播放時序圖

在系統的實現上其中一個關鍵點是采用何種進程通信方式,讓系統能夠快速響應用戶指令,調用流媒體播放器,進行音頻的播放.在 Linux下的 IPC進程間通信(Interprocess Communication)總共有五種類型: 共享內存(Shared Memory)、內存映射(Mapped Memory)、管道(Pipes)、FIFOs和套接字(Sockets).socketpair是Linux下套接字的一種特殊使用,其函數原型為:int socketpair(int domain,int type,int protocol,int sv[2]),4個參數依次的作用是:

1)套接口的域 指定套接字通信中使用的網絡介質,可以使是 AF_INET,AF_UNIX,AF_ISO,AF_XFA等.由于在本項目中使用該套接字實現系統內部的進程通信,因此將采用AF_UNIX.

2)套接口類型 有三種類型:流式套接字(SOCK_STREAM),數據報套接字(SOCK_DGRAM)及原始套接字.流式套接字提供的是一個有序,可靠,雙向字節(jié)流的連接.發(fā)送的數據可以確保不會丟失,復制或亂序到達.因此在本項目中使用SOCK_STREAM.

圖5 在線播放的父子進程調用流程圖

3)使用的協議 該參數可以為套接字選擇一個特定的協議類型參數,聲明了希望創(chuàng)建哪種類型的套接口.由于本系統不需要選擇一個特定的協議,只需要使用其默認值即可.

4)文件描述符的指針 用以保存創(chuàng)建的套接字對.

通過對socketpair的調用,能創(chuàng)建一對已連接的無名套接字,實現在同一個文件描述符中讀寫一個雙向通信的管道,而不用像 Pipes那樣要開通兩個管道.該功能函數的流程如圖5所示,在完成了系統的初始化后,首先利用socketpair()函數建立一對匿名的已經連接的套接字,建立的兩個套接字描述符會放在sv[0]和sv[1]中,然后利用fork()進行創(chuàng)建當前進程的副本,從而產生一個子進程.在父進程中關閉描述符 sv[0],在子進程中關閉描述符sv[1],然后在子進程中利用 dup2(sv[0],STDOUT_FILENO);dup2(sv[0], STDIN_FILENO);dup2(sv[0], STDERR_FILENO)等操作,將 sv[0]和系統的標準輸入和輸出進行連接,實現子進程的sv[0]與父進程的sv[1]的關聯,從而實現了父子進程的全雙工通信.系統在運行過程中由父進程接收用戶的指令,進行解析然后利通管道發(fā)送到子進程中,由子進程向流媒體播放器發(fā)送播放控制指令.

4 測試結果

系統的調試以各個開發(fā)模塊為單位,首先將新增加或改動的模塊連接入參考軟件,保證在調試某個模塊的軟件時其余部分軟件的運行是正確的.通過對各個開發(fā)模塊的測試,檢查各個程序模塊是否正確地實現了規(guī)定的功能.當所有新開發(fā)的模塊分別調試過之后,再按照模塊之間的相互關系將某幾個相關的模塊合起來進行集成測試,以檢查與設計相關的軟件體系結構的有關問題,以及各個子系統之間的影響和協同合作能力.最后,在實際運行環(huán)境中對整個軟件系統進行系統測試,具體的性能測試結果見表 2,在程序的用戶命令響應上,取得了較好的效果.

表2 流媒體音頻播器的性能測試表

[1] 尹秀文,曾碧,徐以山,等. 基于龍芯 SoC 的嵌入式網絡收音機設計[J]. 計算機工程, 2010,36(16):281-285.

[2] 羅雄科. 基于ARM與LINUX的嵌入式流媒體播放器的研究與實現[D].浙江大學,2006:1-2.

[3] 顧人奎. 基于 Linux系統的網絡實時流媒體嵌入式終端的構建[D].華中科技大學,2006:7-8.

[4] 卓碧華,陳良銀,胡大裟,等. 基于ARM內核的網絡收音機的設計與實現[J]. 西南民族大學學報(自然科學版),2007,33(4):886-889.

[5] 袁海林. 基于 ARM 的嵌入式網絡收音機的設計[J].微計算機信息, 2007,23(7-2):122-124.

猜你喜歡
進程嵌入式音頻
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
必須了解的音頻基礎知識 家庭影院入門攻略:音頻認證與推薦標準篇
基于Daubechies(dbN)的飛行器音頻特征提取
電子制作(2018年19期)2018-11-14 02:37:08
搭建基于Qt的嵌入式開發(fā)平臺
音頻分析儀中低失真音頻信號的發(fā)生方法
電子制作(2017年9期)2017-04-17 03:00:46
嵌入式軟PLC在電鍍生產流程控制系統中的應用
Pro Tools音頻剪輯及修正
人間(2015年8期)2016-01-09 13:12:42
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
海安县| 囊谦县| 太湖县| 永川市| 定西市| 英吉沙县| 剑阁县| 涿州市| 宜兰市| 辉县市| 微博| 工布江达县| 泗水县| 花莲县| 庄河市| 新蔡县| 色达县| 岑溪市| 四会市| 湛江市| 衡阳县| 营山县| 远安县| 杨浦区| 峨山| 南乐县| 交口县| 陇西县| 磐石市| 水城县| 宁安市| 绿春县| 浙江省| 额敏县| 浮梁县| 正宁县| 土默特左旗| 章丘市| 炎陵县| 洛阳市| 云霄县|