首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
DSP技术
» 基于Android平台的可视对讲系统设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于Android平台的可视对讲系统设计
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-12-13 19:18
|
只看该作者
基于Android平台的可视对讲系统设计
Android
,
Google
,
操作系统
,
Linux
,
对讲
本帖最后由 yuchengze 于 2016-12-27 15:08 编辑
Android是Google公司推出的基于Linux的开源手机操作系统,由于代码开源,受到很多手机厂家的青睐。可视对讲系统在Android操作系统未出现之前,软件研发一般采用底层语言,容易出现功能单一、产品升级困难等情况,要在对讲系统中开发出具有3D图形效果的界面更是难上加难。鉴于此,本文利用Android平台的可移植性、代码开源等优势,结合JNI、NDK技术,提出了基于Android平台的可视对讲系统的设计方案并加以实现。
JNI[1](Java Native Interface)是Java本地调用接口,它使得运行于Android平台的Java程序可以使用C、C++甚至汇编语言编写的动态链接库。在需要频繁访问内存或复杂计算的情况下,使用C动态链接库比在Android平台上使用Java语言实现相同功能更具有效率[2]。NDK[3](Native Development Kit)提供了一系列的工具,可以生成ARM二进制码的动态库,并且能自动地将生成的动态库和Java应用程序一起打包成Android系统可以直接安装的apk安装包,即NDK可以将包含JNI接口函数的C源程序文件编译生成动态库,供Android应用程序调用,提高了对现有代码的重用性,而加快了开发进度。
本文提出一种可视对讲系统设计方案,对讲双方为门口机和室内机,并将设计方案在i.MX51硬件平台进行实现。门口机进行音视频的采集、编码、传输及音频解码、播放;室内机采用Android平台,但考虑用户室内信息的保密性,室内机没有视频采集功能,室内机只进行音视频的解码、播放以及音频的采集、编码、传输。
1 可视对讲系统设计
1.1 通信流程设计
数据包传输协议使用面向无连接、资源消耗小、处理速度快的UDP协议。寻址完成建立UDP直连后,门口机首先对视频进行编码传输,直到被叫方按下接听键后,门口机才对音频数据进行传输。为了保证通话一直在线,室内机每隔一定的时间向门口机发送通话在线询问,如果收到在线确认应答则保持通话状态,否则就结束通话。可视对讲系统通信流程如图1所示。
表2中:包头为对讲数据包的标示符,命令类型、操作类型说明详见表3,时间戳主要是用于音视频的同步,数据类型分为音频和视频两种,帧序号为0~65 535。如果没有进行数据包分段,则总包数与当前包数均为1。音视频数据从第41位开始算起,音视频数据长度由数据包格式中的数据长度所指定。
根据系统通信流程图1、结合数据包格式,本对讲系统参数如表3所示。其中命令类型、操作类型分别与表2数据包格式相对应。
1.5 音视频编解码选择
系统音频编码选用G.711编码[4]。G.711是一种由国际电信联盟订定的音频编解码方式,拥有一倍的压缩率,是语音通信中最常用的编解码方式之一。采样和量化是音频编程及
声音数字化
的两个关键步骤,本系统使用的音频采样频率为8 kHz、量化位数为16 bit、单声道。
FFmpeg是用于音频和视频
开源方案
,由于它的开源和免费以及跨平台的特点,受到开发商的青睐。FFmpeg支持包括xvid等在内的多达90种解码器,由C语言实现,不仅可以应用于PC软件平台,也可以用于
嵌入式
设备。本系统中视频选用xvid编解码器,视频格式为MPEG-4。(xvid是一个开放源代码的MPEG-4视频编解码器)视频标准采用NTSC制,视频尺寸为352×240,帧频为30 F/s;使用NDK提供的交叉编译工具将包含JNI接口函数的音视频编解码源文件统一编译成为动态链接库,供Android平台调用。
2 系统实现
2.1 系统软硬件平台
系统硬件平台为i.MX51 EVK。i.MX51 EVK是由Freescale公司自主研发的,中央处理器基于ARM Cortex A8核心的i.MX51处理器;主频可扩展到1 GHz;处理器内部集成了DDR/DDR2内存控制器、OpenGL/OpenVG图形核心、ATA控制器、
以太网
控制器等,支持720 p高清视频播放;指令缓存和数据缓存为32 KB,二级缓存为256 KB;其容量指标是之前ARM11产品的2倍,可大大提高CPU的处理能力。同时处理器内部还集成了矢量运算的浮点运算及信号处理加速器,为多媒体信息娱乐终端提供了强大的处理核心支持[5]。
系统软件平台采用Linux操作系统、eclipse集成开发环境。Android SDK[6]版本为2.2,Android NDK版本为android-ndk-r6。使用串口进行调试。
2.2 Android平台在i.MX51 EVK上的移植
系统采用4 GB的SD卡存放引导程序、内核、根文件系统等镜像。引导程序采用U-Boot,Linux内核版本为2.6.31。移植流程:Android源码可以从http://source.android.com获取到,编译好U-Boot、Linux内核、根文件系统以及Android系统镜像[7]后,设置i.MX51板上的S1 Boot Switch模式为1100000001,使用ATK工具进行镜像的下载。下载后系统镜像在SD卡上分布图如图3所示。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议