一卡通世界
当前位置:一卡通世界 >> 技术文章 >> 物联网 >> 基于物联网的实时语音通信研究及其应用

基于物联网的实时语音通信研究及其应用

来源:一卡通世界      作者:陈先财,孙俊杰,张久鹏,张 伟      2014/7/11 16:41:06

  摘 要:物联网是新一代信息技术的重要组成部分,语音的实时通话在物联网时代中更加体现出科技的不断应用与创新。文章主要介绍了物联网下的音频实时通信技术。具体阐述了系统方案的分析与技术,以及系统平台的搭建和实现方法,同时结合病房信息管理系统项目的实例,分析了语音通话的设计和实现方法。

  0 引 言

  在物联网的时代中信息技术和网络技术发展迅速,多媒体的应用越来越广泛,随着物联网的概念不断深入人心,可寻址、可通信、可控制、泛在化与开放模式正逐渐成为物联网发展的演进目标。对物联网的多媒体的通信的要求越来越高,需求越来越多,就急需针对物联网下的应用及其开发,以达到良好的实时通话的性能。

  1 系统方案的分析与设计

  在物联网中系统方案有很多,不同的系统体系使设计难易程度也不同。随着技术的不断发展,对系统整体的设计越来越看重。使得选取系统方案成为整个设计与实现的重点。

  1.1 Linux 系统

  嵌入式系统一般指非PC 系统,把微处理器(CPU)或者微控制器(MCU)的系统电路与专用软件相互结合,以应用为中心、计算机为基础、软硬件可裁剪、适用于应用系统,对功能、性能等特殊处理的专用系统。

  嵌入式系统是将先进的电子技术应用相结合后的产物,决定了该行业是一个技术密集型、资金密集型、不断创新的集成电路系统。例如风河的Vxworks 之所以在火星车上得以应用,则是因为其高实时性和高可靠性。

  嵌入式系统必须根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。所以,建立类似的软硬件基础,然后在此基础上开发出各种应用需要的系统。目前的嵌入式系统的核心往往是一个只有几KB 到几十KB 的微内核,需要根据实际的应用进行功能扩展或者裁减,但是由于微内核的存在,使得这种扩展能够非常顺利的进行。

  为此本文选用的是Linux 系统。

  Linux 系统的前身基于Unix 操作系统, 是一个基于POSIX 和Unix 的多用户、多任务、支持多线程和多CPU 的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32 位和64 位硬件。

  Linux 的基本思想:所有的都是文件;每个文件都有特定的功能。包括命令、硬软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特点的文件。

  Linux 是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux 的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux 吸收了无数程序员的精华,不断壮大。

  完全兼容POSIX 1.0 标准使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows 的程序。是用户从Windows 转到Linux 奠定了基础。

  Linux 支持多用户性,各个用户对于自己的文件设备有自己特殊的权限,保证了各用户之间互不影响。

  Linux 可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha 等处理器的平台。此外Linux 还是一种嵌入式操作系统,可以运行在电脑、手机等上。

  1.2 ARM处理器

  作为一种嵌入式处理器,ARM 处理器以低成本、高性能。得到了广大公司及个人的喜爱。目前,ARM 处理器已广泛应用于工业控制、消费电子产品、通信等领域。

  ARM 处理器的主要特点如下:

  (1)体积小、低功耗、低成本、高性能;

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

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

  (4)大多数数据操作都在寄存器中完成;

  (5)寻址方式灵活简单,执行效率高;

  (6)指令长度固定。

  ARM 提供一系列内核、体系扩展、微处理器和系统芯片方案。目前非常流行的ARM 芯核有ARM7 TDMI,ARM720T,ARM9 TDMI,ARM9 22T,ARM9 4 0T,ARM946T,ARM966T,ARM10 TDMI 等。本文所选用是ARM11 系列,其内核时钟频率为350 ~ 500 MHZ,ARM11处理器的功耗可以低至0.4 mW/MHz。ARM11 处理器采用了易于综合的流水线结构,并和常用的综合工具以及ARMcompiler 良好结合,多媒体处理扩展使MPEG4 编码/ 解码加快一倍,音频处理加快一倍,增强的异常和中断处理使实时任务的处理更加迅速。

  1.3 OSS 与CSS

  在声卡的驱动有两种;OSS(开放声音系统);ALSA(先进Linux 声音架构)。Kernel 2.6 内核支持ALSA了, 但是OSS 编程是比较容易上手的,也比较符合Linux 的编程框架,而且ALSA 配置的时候也可选择OSS 支持,这样OSS 应用程序无需更改就可使用ALSA 驱动。为此本文选用OSS 类型。

  2 系统实现平台的搭建

  2.1 软件搭建

  2.1.1 Linux 环境的配置

  首先是要安装Ubuntu 10.04.04 。Ubuntu 是一个以桌面应用为主的Linux 操作系统。其次是应当设置Ubuntu 网络参数,以实现PC 机与开发板通信。然后就是安装交叉编译器:

  # cd /forlinx ( 进入/forlinx 目录)

  # mkdri /usr/local/arm

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

  把交叉编译器路径添加到系统环境变量中,以后就可以直接在终端窗口中输入arm-linux-gcc 命令来编译程序。接着是在终端中执行: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-nonelinux-gnueabi

  最后保存并退出。重新启动系统,在终端里面执行armlinux-armlinux-gcc 并回车。

  2.1.2 内核移植及根文件系统的制作

  内核移植的方法如下:

  (1) 编译 Linux-3.0.1

  即将压缩包‘FORLINX_linux-3.0.1.tar.gz’ 拷贝到工作目录下,然后解压缩:

  #tar zxf FORLINX_linux-3.0.1.tar.gz

  (2) 配置内核

  配置内核需要先安装‘libncurses5’,以方便使用‘make

  menuconfig’ 命令:

  #sudo apt-get install libncurses5-dev

  如果执行命令后无法找到libncurses5-dev 安装包,那就需要先执行#sudo apt-get update,再执行#sudo apt-get install libncurses5-dev

  (3) 编译内核

  编译内核的命令如下:

  #make zImage

  编译结束后,将在内核源码目录的arch/arm/boot 中得到Linux 内核映像文件:zImage

  根文件制作可以分为如下步骤:

  (1)创建根文件系统的目录;

  (2)创建设备文件;

  (3)安装./etc ;

  (4) 编译内核模块; 即进入Linux 内核目录 make modules APCH = arm

  CROSS_COMPILE = arm-linux-

  (5)安装内核模块;

  (6) 配置busybox ; 即进入busybox 目录执行 make menuconfig,选中“Bulidbox as a static binary ”,静态链接。

  Cross compile prefix(arm-linux-)

  Installation Options —>

  然后选中“Don’t use/usr”, 再选中该项可以避免busybox 被安装到宿主系统的/usr 目录下,破坏宿主系统。

  (7)编译、安装busybox ;

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

  2.1.3 音频驱动移植

  音频驱动移植的程序代码如下:

  $ 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 硬件搭建

  嵌入式系统的硬件一般包括处理器/ 微处理器、存储器及外设器件和输入输出端口等。图1 所示是嵌入式系统的硬件示意图。

图1

 

  2.3 Ok6410 开发板

  S3C6410 是由三星公司推出的一款低功耗、高性价比的处理器,它基于ARM11 的内核,可应用于移动电话和通用处理等领域;S3C6410 为2.5G 和3G 通信服务提供了优化的硬件性能,内置强大的硬件加速器:包括运动视频处理、音频处理、2D 加速、显示处理和缩放等;集成了一个MFC(Multi-Format video Codec) 支持MPEG4 /H.263/H.264 编解码和VC1的解码,可以提供实时的视频会议以及NRSC 和PAL 制式的TV 输出;除此之外,该处理器内置一个采用最先进技术的3D 加速器,支持OpenGL ES 1.1/ 2.0 和D3DMAPI, 能实现4M triangles/s 的3D 加速;同时,S3C6410 包含了优化的外部存储器接口,该接口能满足在高端通信服务中的数据带宽要求。由于以上突出的性能表现,著名的苹果公司手机Iphone 就是基于S3C6410 处理器。

  OK6410 开发板基于三星公司最新的ARM11 处理器S3C6410,拥有强大的内部资源和视频处理能力,可稳定运行在667 MHz 主频以上,支持Mobile DDR 和多种NANDFLASH。OK6410 开发板上集成了多种高端接口,如复合视频信号、摄像头、USB、SD 卡、液晶屏、以太网,并配备温度传感器和红外接收头等。

  3 实时语言程序的设计

  本系统的实时语言程序的设计代码如下:

  // 初始化声卡

  int init_soundcard (int oflag)

  { /* 打开声音设备 */

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

  /* 设置采样时的量化位数 */

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

  /* 设置采样时的声道数目 */

  status=ioctl(fd,SOUND_PCM_WRITE_CHANNELS,&arg) ; /* 设置采样时的采样频率 */

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

  ...

  // 录音函数

  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 结 语

  本文开发的基于Linux 的嵌入式系统应用医院病房管理系统,能满足医院病房、护士站系统提出的语音通信的要求,保证任务完成的实时性、可靠性、实现护士与病人的即时通信。相对于传统的系统更容易实现系统集成和维护。在语音实时通信领域有很好的应用前景。《物联网技术》杂志授权发布,严禁转载。

分享到新浪微博         责任编辑:苏洁   投稿邮箱:editor@yktworld.com
关于 物联网  语音通信  音频通信 的文章
  • RFID应用架构规划指南
  • 物联网综合论述及终端技术
  • 物联网与有源电子标签
  • 从技术角度描绘物联网三大应用架构
  • 探讨物联网感知技术——RFID技术
  • 物联网技术框架与标准体系
  • 物联网发展中问题的初析
  • RFID中间件技术在物联网中的应用及研究
  • 基于RFID技术的物联网探析
  • 物联网的技术与应用分析
  • 硬件信任锚确保智能家居安全
    硬件信任锚确保智能家居安全
    基于物联网的冷链物流监测系统设计
    基于物联网的冷链物流监测系统设计
    仓储物联网数据采集终端的设计
    仓储物联网数据采集终端的设计
    基于物联网的环境监测仪的设计与实现
    基于物联网的环境监测仪的设计与实现
    一周点击热点
    相关产品
    最新收录
    新闻   产品   企业   招标   求购
    技术   方案   下载
    关于我们
    网站介绍   广告服务   会员分类   联系方式
    企业推广   产品推广
    Copyright © 一卡通世界网
    粤ICP备11061396号-3   粤公网安备 44030602000993号