• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于物聯(lián)網(wǎng)的實時語音通信研究及其應(yīng)用

      2014-03-07 14:49陳先財孫俊杰張久鵬張偉
      物聯(lián)網(wǎng)技術(shù) 2014年2期
      關(guān)鍵詞:實時物聯(lián)網(wǎng)嵌入式

      陳先財+孫俊杰+張久鵬+張偉

      摘 要:物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,語音的實時通話在物聯(lián)網(wǎng)時代中更加體現(xiàn)出科技的不斷應(yīng)用與創(chuàng)新。文章主要介紹了物聯(lián)網(wǎng)下的音頻實時通信技術(shù)。具體闡述了系統(tǒng)方案的分析與技術(shù),以及系統(tǒng)平臺的搭建和實現(xiàn)方法,同時結(jié)合病房信息管理系統(tǒng)項目的實例,分析了語音通話的設(shè)計和實現(xiàn)方法。

      關(guān)鍵詞:物聯(lián)網(wǎng);嵌入式;實時;語音;病房信息管理系統(tǒng)

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2014)02-0075-03

      0 引 言

      在物聯(lián)網(wǎng)的時代中信息技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展迅速,多媒體的應(yīng)用越來越廣泛,隨著物聯(lián)網(wǎng)的概念不斷深入人心,可尋址、可通信、可控制、泛在化與開放模式正逐漸成為物聯(lián)網(wǎng)發(fā)展的演進(jìn)目標(biāo)。對物聯(lián)網(wǎng)的多媒體的通信的要求越來越高,需求越來越多,就急需針對物聯(lián)網(wǎng)下的應(yīng)用及其開發(fā),以達(dá)到良好的實時通話的性能。

      1 系統(tǒng)方案的分析與設(shè)計

      在物聯(lián)網(wǎng)中系統(tǒng)方案有很多,不同的系統(tǒng)體系使設(shè)計難易程度也不同。隨著技術(shù)的不斷發(fā)展,對系統(tǒng)整體的設(shè)計越來越看重。使得選取系統(tǒng)方案成為整個設(shè)計與實現(xiàn)的重點。

      1.1 Linux系統(tǒng)

      嵌入式系統(tǒng)一般指非PC系統(tǒng),把微處理器(CPU)或者微控制器(MCU)的系統(tǒng)電路與專用軟件相互結(jié)合,以應(yīng)用為中心、計算機為基礎(chǔ)、軟硬件可裁剪、適用于應(yīng)用系統(tǒng),對功能、性能等特殊處理的專用系統(tǒng)。

      嵌入式系統(tǒng)是將先進(jìn)的電子技術(shù)應(yīng)用相結(jié)合后的產(chǎn)物,決定了該行業(yè)是一個技術(shù)密集型、資金密集型、不斷創(chuàng)新的集成電路系統(tǒng)。例如風(fēng)河的Vxworks之所以在火星車上得以應(yīng)用,則是因為其高實時性和高可靠性。

      嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對軟硬件進(jìn)行裁剪,滿足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。所以,建立類似的軟硬件基礎(chǔ),然后在此基礎(chǔ)上開發(fā)出各種應(yīng)用需要的系統(tǒng)。目前的嵌入式系統(tǒng)的核心往往是一個只有幾KB到幾十KB的微內(nèi)核,需要根據(jù)實際的應(yīng)用進(jìn)行功能擴(kuò)展或者裁減,但是由于微內(nèi)核的存在,使得這種擴(kuò)展能夠非常順利的進(jìn)行。為此本文選用的是Linux系統(tǒng)。

      Linux系統(tǒng)的前身基于Unix操作系統(tǒng),是一個基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。

      Linux的基本思想:所有的都是文件;每個文件都有特定的功能。包括命令、硬軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特點的文件。

      Linux是一款免費的操作系統(tǒng),用戶可以通過網(wǎng)絡(luò)或其他途徑免費獲得,并可以任意修改其源代碼。這是其他操作系統(tǒng)所做不到的。正是由于這一點,來自全世界的無數(shù)程序員參與了Linux的修改、編寫工作,程序員可以根據(jù)自己的興趣和靈感對其進(jìn)行改變,這讓Linux吸收了無數(shù)程序員的精華,不斷壯大。

      完全兼容POSIX 1.0標(biāo)準(zhǔn)使得可以在Linux下通過相應(yīng)的模擬器運行常見的DOS、Windows的程序。是用戶從Windows轉(zhuǎn)到Linux奠定了基礎(chǔ)。

      Linux支持多用戶性,各個用戶對于自己的文件設(shè)備有自己特殊的權(quán)限,保證了各用戶之間互不影響。

      Linux可以運行在多種硬件平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統(tǒng),可以運行在電腦、手機等上。

      1.2 ARM處理器

      作為一種嵌入式處理器,ARM處理器以低成本、高性能。得到了廣大公司及個人的喜愛。目前,ARM處理器已廣泛應(yīng)用于工業(yè)控制、消費電子產(chǎn)品、通信等領(lǐng)域。

      ARM處理器的主要特點如下:

      (1)體積小、低功耗、低成本、高性能;

      (2)支持Thumb(16)/ARM(32位)雙指令集,能很好地處理兼容性;

      (3)大量使用寄存器,指令執(zhí)行速度更快;

      (4)大多數(shù)數(shù)據(jù)操作都在寄存器中完成;

      (5)尋址方式靈活簡單,執(zhí)行效率高;

      (6)指令長度固定。

      ARM提供一系列內(nèi)核、體系擴(kuò)展、微處理器和系統(tǒng)芯片方案。目前非常流行的ARM芯核有ARM7 TDMI,ARM720T,ARM9 TDMI,ARM922T,ARM940T,ARM946T,ARM966T,ARM10 TDMI等。本文所選用是ARM11系列,其內(nèi)核時鐘頻率為350~500 MHZ,ARM11處理器的功耗可以低至0.4 mW/MHz。ARM11處理器采用了易于綜合的流水線結(jié)構(gòu),并和常用的綜合工具以及ARM compiler良好結(jié)合,多媒體處理擴(kuò)展使MPEG4編碼/解碼加快一倍,音頻處理加快一倍,增強的異常和中斷處理使實時任務(wù)的處理更加迅速。

      1.3 OSS與CSS

      在聲卡的驅(qū)動有兩種;OSS(開放聲音系統(tǒng));ALSA(先進(jìn)Linux聲音架構(gòu))。Kernel 2.6內(nèi)核支持ALSA了,但是OSS編程是比較容易上手的,也比較符合Linux的編程框架,而且ALSA配置的時候也可選擇OSS支持,這樣OSS應(yīng)用程序無需更改就可使用ALSA驅(qū)動。為此本文選用OSS類型。

      2 系統(tǒng)實現(xiàn)平臺的搭建

      2.1 軟件搭建

      2.1.1 Linux環(huán)境的配置

      首先是要安裝Ubuntu 10.04.04 。Ubuntu是一個以桌面應(yīng)用為主的Linux操作系統(tǒng)。其次是應(yīng)當(dāng)設(shè)置Ubuntu網(wǎng)絡(luò)參數(shù),以實現(xiàn)PC機與開發(fā)板通信。然后就是安裝交叉編譯器:

      # cd /forlinx (進(jìn)入/forlinx目錄)

      # mkdri /usr/local/arm

      #tar zxvf arm-linux-gcc-4.3.2.tgz -C /

      把交叉編譯器路徑添加到系統(tǒng)環(huán)境變量中,以后就可以直接在終端窗口中輸入arm-linux-gcc命令來編譯程序。接著是在終端中執(zhí)行:vi /etc/profie

      再就是添加以下4行到該文件中:

      export PATH=/usr/local/arm/4.3.2/bin:$PATH

      export TOOLCHAIN=/usr/local/arm/4.3.2

      export TB_CC_PREFIX=arm-linuxexport

      PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi

      最后保存并退出。重新啟動系統(tǒng),在終端里面執(zhí)行arm-linux-gcc 并回車。

      2.1.2 內(nèi)核移植及根文件系統(tǒng)的制作

      內(nèi)核移植的方法如下:

      (1) 編譯 Linux-3.0.1

      即將壓縮包‘FORLINX_linux-3.0.1.tar.gz 拷貝到工作目錄下,然后解壓縮:

      #tar zxf FORLINX_linux-3.0.1.tar.gz

      (2) 配置內(nèi)核

      配置內(nèi)核需要先安裝‘libncurses5,以方便使用‘make menuconfig 命令:

      #sudo apt-get install libncurses5-dev

      如果執(zhí)行命令后無法找到libncurses5-dev 安裝包,那就需要先執(zhí)行#sudo apt-get update,再執(zhí)行#sudo apt-get install libncurses5-dev

      (3) 編譯內(nèi)核

      編譯內(nèi)核的命令如下:

      #make zImage

      編譯結(jié)束后,將在內(nèi)核源碼目錄的arch/arm/boot 中得到Linux 內(nèi)核映像文件:zImage

      根文件制作可以分為如下步驟:

      (1)創(chuàng)建根文件系統(tǒng)的目錄;

      (2)創(chuàng)建設(shè)備文件;

      (3)安裝./etc;

      (4)編譯內(nèi)核模塊; 即進(jìn)入Linux內(nèi)核目錄 make modules APCH = arm

      CROSS_COMPILE = arm-linux-

      (5)安裝內(nèi)核模塊;

      (6)配置busybox; 即進(jìn)入busybox目錄執(zhí)行 make menuconfig,選中“Bulidbox as a static binary ”,靜態(tài)鏈接。

      Cross compile prefix(arm-linux-)

      Installation Options —>

      然后選中“Dont use/usr”,再選中該項可以避免busybox被安裝到宿主系統(tǒng)的/usr目錄下,破壞宿主系統(tǒng)。

      (7)編譯、安裝busybox;

      Make ARCH = arm CROSS_COMPILE = arm-linux- Make install

      2.1.3 音頻驅(qū)動移植

      音頻驅(qū)動移植的程序代碼如下:

      $ make menuconfig

      Device Drivers --->

      <*> Sound card support --->

      <*> Advanced Linux Sound Architecture --->

      <*> OSS Mixer API

      <*> OSS PCM (digital audio) API

      [*] OSS PCM (digital audio) API - Include pugin system

      <*> ALSA for SoC audio support --->

      <*> ASoC support for Samsung

      <*> SoC AC97 Audio support for SMDKC100 - WM9713

      2.2 硬件搭建

      嵌入式系統(tǒng)的硬件一般包括處理器/微處理器、存儲器及外設(shè)器件和輸入輸出端口等。圖1所示是嵌入式系統(tǒng)的硬件示意圖。

      圖1 嵌入式系統(tǒng)硬件示意圖

      2.3 Ok6410開發(fā)板

      S3C6410是由三星公司推出的一款低功耗、高性價比的處理器,它基于ARM11的內(nèi)核,可應(yīng)用于移動電話和通用處理等領(lǐng)域;S3C6410為2.5G和3G通信服務(wù)提供了優(yōu)化的硬件性能,內(nèi)置強大的硬件加速器:包括運動視頻處理、音頻處理、2D加速、顯示處理和縮放等;集成了一個MFC(Multi-Format video Codec)支持MPEG4 /H.263/H.264編解碼和VC1的解碼,可以提供實時的視頻會議以及NRSC和PAL制式的TV輸出;除此之外,該處理器內(nèi)置一個采用最先進(jìn)技術(shù)的3D加速器,支持OpenGL ES 1.1/ 2.0和D3DMAPI, 能實現(xiàn)4M triangles/s的3D加速;同時,S3C6410包含了優(yōu)化的外部存儲器接口,該接口能滿足在高端通信服務(wù)中的數(shù)據(jù)帶寬要求。由于以上突出的性能表現(xiàn),著名的蘋果公司手機Iphone就是基于S3C6410處理器。

      OK6410開發(fā)板基于三星公司最新的ARM11處理器S3C6410,擁有強大的內(nèi)部資源和視頻處理能力,可穩(wěn)定運行在667 MHz主頻以上,支持Mobile DDR和多種NAND FLASH。OK6410開發(fā)板上集成了多種高端接口,如復(fù)合視頻信號、攝像頭、USB、SD卡、液晶屏、以太網(wǎng),并配備溫度傳感器和紅外接收頭等。

      3 實時語言程序的設(shè)計

      本系統(tǒng)的實時語言程序的設(shè)計代碼如下:

      //初始化聲卡

      int init_soundcard (int oflag)

      { /* 打開聲音設(shè)備 */

      fd = open("/dev/dsp", oflag);

      /* 設(shè)置采樣時的量化位數(shù) */

      status = ioctl(fd, SOUND_PCM_WRITE_BITS, &arg);

      /* 設(shè)置采樣時的聲道數(shù)目 */

      status=ioctl(fd,SOUND_PCM_WRITE_CHANNELS, &arg); /* 設(shè)置采樣時的采樣頻率 */

      status = ioctl(fd, SOUND_PCM_WRITE_RATE, &arg);

      ...

      //錄音函數(shù)

      int recorddata(int soundfdr, unsigned char *buf)

      { ...

      status=read(soundfdr,buf, (LENGTH*RATE*SIZE*CHANNELS/8000)); // 錄音

      //close (soundfd);

      }

      //聲音播放程序

      int playsound(int soundfdw, unsigned char *buf)

      {

      status=write(soundfdw,buf, (LENGTH*RATE*SIZE*CHANNELS/8000)); /* 回放 */

      }

      While(1)

      {

      ...

      playsound (soundfdw, buf1);

      recorddata (soundfdr , buf1);

      playsound (soundfdw, buf2);

      recorddata (soundfdr , buf2);

      ...

      }

      4 結(jié) 語

      本文開發(fā)的基于Linux 的嵌入式系統(tǒng)應(yīng)用醫(yī)院病房管理系統(tǒng),能滿足醫(yī)院病房、護(hù)士站系統(tǒng)提出的語音通信的要求,保證任務(wù)完成的實時性、可靠性、實現(xiàn)護(hù)士與病人的即時通信。相對于傳統(tǒng)的系統(tǒng)更容易實現(xiàn)系統(tǒng)集成和維護(hù)。在語音實時通信領(lǐng)域有很好的應(yīng)用前景。

      參 考 文 獻(xiàn)

      [1]司永衛(wèi).實時語言傳輸系統(tǒng)的設(shè)計與軟件實現(xiàn)[D].成都:成都理工大學(xué),2011.

      [2]飛凌嵌入式.OK6410開發(fā)板硬件手冊[R].2012.

      [3]程昌南.ARM Cortex-A8硬件設(shè)計DIY[M].北京:北京航空航天大學(xué)出版社.2012.

      [4]楊黎明.基于RTP協(xié)議的實時語音傳輸研究與實現(xiàn)[D].武漢:華中科技大學(xué),2007.

      [5]史蒂文斯,拉戈,尤晉元,張亞英.UNIX環(huán)境高級編程[M].北京:人民郵電出版社,2006.

      [6]WALL K.GNU/Linux編程指南(第二版)[M].張輝,譯. 北京:清華大學(xué)出版社,2002.

      [7]劉華,李軍紅,陽武嬌.基于PXA255的VOIP語音傳輸系統(tǒng)研究[J]. 電子技術(shù),2011(9):79-81.

      3 實時語言程序的設(shè)計

      本系統(tǒng)的實時語言程序的設(shè)計代碼如下:

      //初始化聲卡

      int init_soundcard (int oflag)

      { /* 打開聲音設(shè)備 */

      fd = open("/dev/dsp", oflag);

      /* 設(shè)置采樣時的量化位數(shù) */

      status = ioctl(fd, SOUND_PCM_WRITE_BITS, &arg);

      /* 設(shè)置采樣時的聲道數(shù)目 */

      status=ioctl(fd,SOUND_PCM_WRITE_CHANNELS, &arg); /* 設(shè)置采樣時的采樣頻率 */

      status = ioctl(fd, SOUND_PCM_WRITE_RATE, &arg);

      ...

      //錄音函數(shù)

      int recorddata(int soundfdr, unsigned char *buf)

      { ...

      status=read(soundfdr,buf, (LENGTH*RATE*SIZE*CHANNELS/8000)); // 錄音

      //close (soundfd);

      }

      //聲音播放程序

      int playsound(int soundfdw, unsigned char *buf)

      {

      status=write(soundfdw,buf, (LENGTH*RATE*SIZE*CHANNELS/8000)); /* 回放 */

      }

      While(1)

      {

      ...

      playsound (soundfdw, buf1);

      recorddata (soundfdr , buf1);

      playsound (soundfdw, buf2);

      recorddata (soundfdr , buf2);

      ...

      }

      4 結(jié) 語

      本文開發(fā)的基于Linux 的嵌入式系統(tǒng)應(yīng)用醫(yī)院病房管理系統(tǒng),能滿足醫(yī)院病房、護(hù)士站系統(tǒng)提出的語音通信的要求,保證任務(wù)完成的實時性、可靠性、實現(xiàn)護(hù)士與病人的即時通信。相對于傳統(tǒng)的系統(tǒng)更容易實現(xiàn)系統(tǒng)集成和維護(hù)。在語音實時通信領(lǐng)域有很好的應(yīng)用前景。

      參 考 文 獻(xiàn)

      [1]司永衛(wèi).實時語言傳輸系統(tǒng)的設(shè)計與軟件實現(xiàn)[D].成都:成都理工大學(xué),2011.

      [2]飛凌嵌入式.OK6410開發(fā)板硬件手冊[R].2012.

      [3]程昌南.ARM Cortex-A8硬件設(shè)計DIY[M].北京:北京航空航天大學(xué)出版社.2012.

      [4]楊黎明.基于RTP協(xié)議的實時語音傳輸研究與實現(xiàn)[D].武漢:華中科技大學(xué),2007.

      [5]史蒂文斯,拉戈,尤晉元,張亞英.UNIX環(huán)境高級編程[M].北京:人民郵電出版社,2006.

      [6]WALL K.GNU/Linux編程指南(第二版)[M].張輝,譯. 北京:清華大學(xué)出版社,2002.

      [7]劉華,李軍紅,陽武嬌.基于PXA255的VOIP語音傳輸系統(tǒng)研究[J]. 電子技術(shù),2011(9):79-81.

      3 實時語言程序的設(shè)計

      本系統(tǒng)的實時語言程序的設(shè)計代碼如下:

      //初始化聲卡

      int init_soundcard (int oflag)

      { /* 打開聲音設(shè)備 */

      fd = open("/dev/dsp", oflag);

      /* 設(shè)置采樣時的量化位數(shù) */

      status = ioctl(fd, SOUND_PCM_WRITE_BITS, &arg);

      /* 設(shè)置采樣時的聲道數(shù)目 */

      status=ioctl(fd,SOUND_PCM_WRITE_CHANNELS, &arg); /* 設(shè)置采樣時的采樣頻率 */

      status = ioctl(fd, SOUND_PCM_WRITE_RATE, &arg);

      ...

      //錄音函數(shù)

      int recorddata(int soundfdr, unsigned char *buf)

      { ...

      status=read(soundfdr,buf, (LENGTH*RATE*SIZE*CHANNELS/8000)); // 錄音

      //close (soundfd);

      }

      //聲音播放程序

      int playsound(int soundfdw, unsigned char *buf)

      {

      status=write(soundfdw,buf, (LENGTH*RATE*SIZE*CHANNELS/8000)); /* 回放 */

      }

      While(1)

      {

      ...

      playsound (soundfdw, buf1);

      recorddata (soundfdr , buf1);

      playsound (soundfdw, buf2);

      recorddata (soundfdr , buf2);

      ...

      }

      4 結(jié) 語

      本文開發(fā)的基于Linux 的嵌入式系統(tǒng)應(yīng)用醫(yī)院病房管理系統(tǒng),能滿足醫(yī)院病房、護(hù)士站系統(tǒng)提出的語音通信的要求,保證任務(wù)完成的實時性、可靠性、實現(xiàn)護(hù)士與病人的即時通信。相對于傳統(tǒng)的系統(tǒng)更容易實現(xiàn)系統(tǒng)集成和維護(hù)。在語音實時通信領(lǐng)域有很好的應(yīng)用前景。

      參 考 文 獻(xiàn)

      [1]司永衛(wèi).實時語言傳輸系統(tǒng)的設(shè)計與軟件實現(xiàn)[D].成都:成都理工大學(xué),2011.

      [2]飛凌嵌入式.OK6410開發(fā)板硬件手冊[R].2012.

      [3]程昌南.ARM Cortex-A8硬件設(shè)計DIY[M].北京:北京航空航天大學(xué)出版社.2012.

      [4]楊黎明.基于RTP協(xié)議的實時語音傳輸研究與實現(xiàn)[D].武漢:華中科技大學(xué),2007.

      [5]史蒂文斯,拉戈,尤晉元,張亞英.UNIX環(huán)境高級編程[M].北京:人民郵電出版社,2006.

      [6]WALL K.GNU/Linux編程指南(第二版)[M].張輝,譯. 北京:清華大學(xué)出版社,2002.

      [7]劉華,李軍紅,陽武嬌.基于PXA255的VOIP語音傳輸系統(tǒng)研究[J]. 電子技術(shù),2011(9):79-81.

      猜你喜歡
      實時物聯(lián)網(wǎng)嵌入式
      搭建基于Qt的嵌入式開發(fā)平臺
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      一種改進(jìn)的混音算法的研究與實現(xiàn)
      中國或成“物聯(lián)網(wǎng)”領(lǐng)軍者
      Altera加入嵌入式視覺聯(lián)盟
      倍福 CX8091嵌入式控制器
      兴业县| 南江县| 界首市| 东海县| 塘沽区| 政和县| 宿松县| 永靖县| 灵石县| 尖扎县| 黄浦区| 正宁县| 河南省| 仙游县| 霞浦县| 图片| 无锡市| 内丘县| 游戏| 全南县| 永登县| 德兴市| 屏东市| 承德市| 集贤县| 马龙县| 原平市| 志丹县| 舒兰市| 凤台县| 聂拉木县| 长寿区| 民乐县| 洞口县| 金山区| 巨鹿县| 龙川县| 子洲县| 常山县| 勐海县| 黄龙县|