基于Hi3510和无线发送模块的视频传输设计
扫描二维码
随时随地手机看文章
近几年,嵌入式无线联网领域发送数据大都基于802.x或WI-FI技术,并用无线网卡或无线路由器实现。目前也出现了基于手机无线发送数据的嵌入式相关设计,但大都是基于2.5G技术的短信方式的监控设计。在此基础上设计了一个嵌入式Linux系统下基于3G无线发送模块的视频图像传输系统。采用SOC高性能视频编解码器Hi3510,具备强大的视频处理功能,实现D1画质的实时编码及传输。因此,该系统设计实现了在3G移动网络上传输视频。
1 系统总体设计
选用Hi3510作为对视频数据的编码处理,选用DTM6211无线模块对视频数据进行发送处理。图l为系统工作原理框图,其整体工作原理是:摄像头采集的数据通过PAL制的CVBS信号输入工作在主模式TW2834芯片中,经A/D转换后,由BT.656接口接收转换为CIF格式的信号,并
通过AHB总线把接收到的图像数据存入到外存SDROM;Hi3510读取外存中视频数据,进行H.264编码,包括帧内预测、帧间预测、DCT变换、量化、熵编码等,得到编码后裸码流存储到外设中;将外设中视频数据通过USB端口经测试板发送到无线模块中,其中关于无线模块的UDP数据传输设置控制工作是通过Hi3510的RS232接口经测试板发送AT指令控制,而后无线模块将数据封装成符合UDP格式的IP数据包,最后利用PS业务发送到网络上。
2 系统硬件设计
2.1 视频处理模块
视频处理模块远端摄像头采集视频信号,模拟视频信号通过CVBS信号格式输入TW2834,TW2834是一个视频控制器,内嵌PAL/NTSC视频解码器,彩色控制器和PAL/NTSC视频编码器,主要完成模拟信号到数字信号的转变。解码后,转换成的数字信号通过BT656接口输入到Hi3510处理器进行H.264编码。
视频处理模块采用Hi3510,该器件是一款基于H.264BP算法的视频压缩芯片,它采用ARM+DSP+硬件加速引擎的多核高集成度的SoC构架,具备强大的视频处理功能,可实现DVD画质的实时编码,能自适应各种网络环境,确保画面的清晰度和实时性,低码率的H.264编码技术极大减少了网络存储空间,并通过集成DES/3DES加解密硬件引擎确保网络安全。图2为Hi3510逻辑框图。
Hi3510内部包含一系列提高编解码速度的视频编解码协处理器,视频编解码部分完成图像的运动估计/补偿、DCT/IDCT变换、量化/反量化、zigzag扫描和环路滤波。最后将编码的视频数据存储在外存SDROM中。
2.2 视频发送模块
图3为无线发送模块内部原理框图。DTM6211是60针0.5mm间距的板对板连接器和一个天线连接器,与天线连接器相匹配的线缆可实现与天线MHF Plug Cable Assembly的连接。串口通信采用RS232,可以与Hi3510串口相连接,模块采用5线制接法,默认开启硬件流控。USB接口可以作为通讯口和调试口,作为USB Device设备,遵循USB2.O协议规范,最高速率支持FULL SPEED(12 Mb/s)。发送部分采用SMA(FEMALE)接口馈入天线,外接天线采用棒状天线。
[!--empirenews.page--]
DTM6211接口有2个UART接口,使用UART1作为Hi3510的AT指令接收端口,传输速度设定为115 200 b/s。其UART1信号定义如表1所示。模块的USB接口作为通信口,用于视频数据的传输,其接口信号定义如表2所示。
2.3 模块硬件连接
Hi3510和DTM6211之间通过测试板连接,测试板主要作用是连接Hi3510和DTM6211的USB及UART端口,起到一个物理接口转换作用,同时也起到存放USIM卡的作用。USB和UART之间的连接,只需把Hi3510板的USB口和RS232接口连接到测试板对应接口,DTM6211插针接口直接插到测试板上。其中测试板中主要部分USIM卡的硬件电路如图4所示。
DTM62ll模块的射频接口包括一个天线连接器,通过线缆实现与外部天线的连接,天线连接器采用I-PEX公司的20279-001E-01,连接线缆采用苏州万旭电子HM5A-12289-A1DE的50 mm的长双端子线缆,天线连接器端Plug CableAssembly使用MHFⅡPlug Cable Assembly。
3 系统软件设计
3.1 操作系统与驱动设计
选用Hi3510自带嵌入式Linux-2.6.14内核操作系统,开发前需要搭建开发环境,可以安装一款Fedoral 9.0服务器,同时建立交叉编译器、安装SDK包。SDK是基于Hi3510视频评估板的软件开发工具,包含了在Linux相关应用开发时使用的各种工具,是用户开发中最基本的平台软件。Bootloader采用uboot-1.1.4初始化硬件设备并通过网口下载Linux内核。内核通过make menuconfig配置可实现系统的量身定做,去除与本系统无关部分,缩减内核,最后将配置后的内核使用mkimage工具做成映像文件,通过网口下载到Hi3510中。
无线发送模块通过重新配置内核Usb Serial Driver选项可实现其在内核的驱动部分,但需把Usb Driver的PID和VID设置成本模块的ID,重新编译便可支持无线发送模块。
ID更改步骤如下:
首先进入linux-2.6.14\drivers\usb\serial,打开文件option.c,在其中定义两个宏(DTM6211的VID:0x1AB7 PID:Ox6000):
3.2 视频处理软件设计
视频处理软件主要是对采集过来的视频数据进行H.264压缩,编码中涉及的参数需调用SDK提供的API进行配置,其中包括图像组长度(GOP)、编码帧率(帧/秒)、量化参数(maxqp)、比特率(b/s)和用户数据的插入等,然后将压缩过的裸流,发送到USB端口。其中为了提高压缩率将GOP设置15;为了减少网络数据流量将编码速率设置8帧/秒;量化参数的数值选择在30~40之间,其设计总流程如图5所示。[!--empirenews.page--]
其中关于配置摄像头部分,open()打开/dev/misc/tw2834dev摄像头设备文件,完成normal为PAL制式,mode为GIF格式的选择;配置输入公共属性部分,首先打开视频编码器,并关闭视频输入通道,然后完成工作模式为从模式,VIU与A/D转换器的接口类型BT656,通道分布模式4路CIF,BT656为场模式,视频消耗内存为1Ox1 024x1 024等设置工作。
VSTART输入通道号之后需要创建一个线程,完成后续数据的存储和转发,使用pthread_create()函数,随后执行线程venc_start(),其核心程序如下:
3.3 无线模块控制设计
无线模块DTM6211内提供TCP/IP协议栈,可利用PS业务通道发送IP包,以AT指令配置和控制TCP/IP协议栈。利用APP处理器配置TCP/ IP相关环境,注册UDP端口,APP处理器将要发送的数据直接发给模块,由模块将数据封装成符合UDP格式的IP包,然后利用PS业务通道发送给3G网络。其控制流程如图6所示。
开机初始化部分,主要完成激活SIM卡、TCP/IP协议栈和注册网络工作;激活场景移动部分主要完成PDP和context的参数设置,包括配置使用IP协议,申请上行速度1.5 MB/s,建立用户面的分组传输路由。在完成以上初始化工作后,需要建立监听端口号为13000,指定UDP模式下要发送数据的目的地址218.18.141.79和端口号3000,最后还需要指定发送的字节数。数据发送完成后,释放UDP端口号等相关资源。
4 结论
采用Hi351O+Linux方案,其自带的SDK开发包使得应用程序开发的难度降低,同时Hi3510本身采用了ARM+DSP+硬件加速引擎的技术,具备强大的视频处理功能,具有低成本,低开发难度优点。配合DTM62ll无线发送模块,通过AT指令对数据进行UDP打包,最终将视频数据包发送到3G网络上。测试结果表明,受网络环境影响数据的上行传输速率为150~200 KB/s。该系统可用于远程网络监控的应用,相对于2.5G技术的短信监控方式,使用者可以获得更多有效的信息。