查字典论文网 >> 基于Hi3510 和无线发送模块的视频传输设计

基于Hi3510 和无线发送模块的视频传输设计

小编:

1.引言

近几年,国内在嵌入式无线联网领域发送数据大都基于802.x 或WI-FI 技术,带以表现的是无限网卡或无线路由器。目前也出现了基于手机无线发送数据的嵌入式相关设计,但大都是基于2.5G 技术的短信方式的监控的设计。本文在此基础上设计了一个嵌入式linux 系统下利用3G 无线发送模块在移动网络上发送视频图像的系统。本文涉及海思公司推出的一款SOC 高性能视频编解码芯片Hi3510,其具备强大的视频处理功能,可实现D1 画质的实时编码及传输。随着中国3G 时代的到来,高宽带及多媒体技术获得高速发展,手机上语音视频数据的传输成为了人们了解外界事物的一条重要渠道,本文正是基于该芯片的优越性,从软件和硬件上设计实现了一个在3G 网络上传输视频的系统。

2.系统总体设计

3.系统硬件设计

3.1 视频处理模块 Hi3510 采用0.13μm 工艺、LFBGA400 封装,大小为19×19mm,引脚间距为0.8mm,片内集成了包括数字视频接口、USB、ETH、I2S、I2C、GPIO、SPI、UART、SDRAM、DDR等接口,满足各种应用场景设备开发的同时能大大降低设备的BOM 成本。

3.2 视频发送模块

3.3 模块硬件连接 DTM6211 模块的射频接口包括一个天线连接器,通过线缆可实现与外部天线的连接,天线连接器采用I-PEX 公司的20279-001E-01 , 连接线缆采用苏州万旭电子HM5A-12289-A1DE 的50mm的长双端子线缆,天线连接器端Plug Cable Assembly 使用MHFⅡ Plug Cable Assembly。

4.系统软件设计

4.1 操作系统与驱动设计 无线发送通过重新配置内核Usb Serial Driver 可实现其在内核的驱动部分,但需要把UsbDriver 的PID 和VID 设置成本模块的ID,即需要把PID 和VID 号增加到文件driversusbserial option.c 的结构体static struct usb_device_id 中,重新编译后便可支持无线发送模块。

ID 更改步骤如下:

path:

linux-2.6.14driversusbserial

file:

option.c

结构体:

定义两个宏(DTM6211 的VID:0x1AB7 PID:0x6000):

#define DTM6211_OPTION_VENDOR_ID 0x1AB7

#define DTM6211_ OPTION_PRODUCT_COLT 0x6000

增加到结构体中

static struct usb_device_id option_ids[] = {

{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },

… OPTION_PRODUCT_COLT) },

}

4.2 视频处理软件设计

视频处理软件主要是对采集过来的视频数据进行H.264 压缩,编码中涉及的参数需调用SDK 提供的API 进行配置,其中包括图像组长度(GOP)、编码帧率(fps)、量化参数(maxqp)、比特率(bps)和用户数据的插入等,然后将压缩过的裸流,发送到USB 端口。

其中关于配置摄像头部分,完成normal 为PAL 制式,mode 为GIF 格式的选择,其主要程序为:

step 1:

fd = open("/dev/misc/tw2834dev",O_RDWR); /*: Open the A/D device, and config it.Default is TW2834*/

step 2:if ((mode != QVGA) && (mode != VGA) && (mode != SXGA))

/*: config thd A/D devide normal(PAL/NTSC)*/

..........

step 3:switch (mode) /*: config VI mode(D1/CIF......)*/

{

case CIF:

{

hiRet = ioctl(fd,TW2834_SET_4CIF,&val);

break;

}

.......

}

配置输入公共属性部分,主要完成工作模式为从模式,VIU 与A/D 芯片的接口类型BT656,通道分布模式四路CIF,BT656 为场模式等工作,其主要程序为:

22222222222222222

VSTART 输入通道号之后需要创建一个线程,使用pthread_create()函数,随后执行线程venc_start(),其核心程序如下:

/*step 1: Open video encoder*/

hiRet = HI_VENC_Open(&venc_init);

/*step 2: Overlay must be close ,before VI pulic attribute is configed*/

for (i = 0; i < 4; i++ )

{ HI_VI_DisableOverlay(i);}

/*step 3: VI chnnel must be disable, before VI public attribute is configed*/

for (i = 0; i < 4; i++ )

{HI_VI_DisableVIChn(i);}

/*step 4: VI must be disable, before VI public attribute is configed*/

hiRet = HI_VI_DisableVI();

/*step 5: config public attribute for different mode*/

struPubAttr.enMaster = VIDEO_CONTROL_MODE_SLAVER;

struPubAttr.enInputNorm = VIDEO_ENCODING_MODE_PAL;

struPubAttr.enInputMode = VI_MODE_BT656 ;

struPubAttr.u32CapSel = VI_CAP_BOTH; /场模式选择*/ struPubAttr.bDownScaling = HI_FALSE; /*输入图像水平压缩*/

struPubAttr.u32InputOption = VI_IA_L24; /*四路CIF 输入*/

/*step 6: enable VI public attribute*/

HI_VI_EnableVI();

4.3 无线模块控制设计

无线模块 DTM6211 内提供TCP/IP 协议栈,可利用PS 业务通道发送IP 包,以AT 指令配置和控制TCP/IP 协议栈。利用APP 处理器配置TCP/IP 相关环境,注册UDP 端口,APP 处理器将要发送的数据直接发给模块,由模块将数据封装成符合UDP 格式的IP 包,然后利用PS 业务通道发送给3G 网络。

开机初始化部分,主要完成激活SIM 卡、TCP/IP 协议栈和注册网络工作,其主要代码如下:

AT+CFUN=5 //激活SIM/USIM 卡,可以根据这条指令检测SIM/USIM 卡是否在位

^DUSIMU:1

OK

AT+CFUN=1 //激活协议栈

OK

^DACTI:2

+CREG:2 +CIEV:2,3

+CIEV:8,0

AT+COPS=0 //注册网络

OK

激活场景移动部分完成主要完成PDP 和context 参数设置,以建立用户面的分组传输路由,其主要程序如下:

555555555555555555555

建立监听端口号,指定UDP 模式下要发往数据的目的地址和端口,最后还需要指定发送的字节数,其主要代码如下:

AT+CGDCONT=1,"IP",,,0,0 //设置PDP 参数和

OK OK

AT^DSTT=1 //启动TCP 任务

OK

AT^DIICR //激活移动场景

OK

5.结论

硕士论文代写网专业提供mba硕士论文代写服务

热点推荐

上一篇:企业财务报表的理财学解读

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文