基于嵌入式技术和GPRS通信的图像传输系统设计
2013-04-23浙江工业职业技术学院徐见炜
浙江工业职业技术学院 徐见炜
随着嵌入式技术和GPRS技术的广泛应用和Web技术的广泛普及,使得图像的无线传输得到了快速的发展。此项技术应用于监测系统中,可以让操作者通过浏览器,利用GPRS网络观看到监测点的图像,具有很高的实用价值。
1.系统总体设计方案
系统采用S3C2410处理器作为系统处理和控制核心,移植好的Linux2.6.14作为操作系统核心。通过GPRS实现网络接入,在嵌入式端运行Boa服务器,由CGI程序实现网页的动态交互,并自动将采集的图像经过JPEG压缩后链接到服务器的网页中。系统框图如图1所示,整个系统的构成按照客户端/服务端模式(C/S模式)设计,包含了前端的图像采集、中间的通信网络以及最终的监控中心。
2.系统硬件平台
系统硬件开发平台采用博创科技公司的UP-ARM 2410实验箱,实验箱系统主板由S3C2410处理器、LCD接口、AD/DA接口、UART通道、网络接口、JTAG接口、Reset复位电路、USB摄像头、GPRS模块、电源等几部分组成。系统硬件平台框图如图2所示。
图像采集模块由基于CMOS图像传感器的OV7620感光器件及OV511微处理芯片的USB接口摄像头组成。
OV7620是美国Omnivision公司生产的一款高集成度高分辨率图像传感器,它将所有摄像功能和矩阵处理功能都集成在片上,是一款彩色CMOS型图像采集集成芯片[1],提供了体积很小的封装,此器件的分辨率可达到640x480,传输速率可以达到30帧左右。
OV511芯片是OmniVISion公司提供的一款高性能的用于摄像机到USB接口的单片控制芯片,它在很大程度地简化了单片的CMOS图像传感器和USB之间的接口电路,同时增加了256KDRAM和USB收发器,因此它可以很容易地构成基于USB的子系统。
GPRS模块采用博创公司出品的GPRS SIM300扩展板模块,该模块采用SIMCOM公司的SIM300 GPRS模块,并配以相关电路而构成。SIM300是SIMCOM推出的一款GSM/GPRS三频模块,主要为语音传输、短消息和数据业务提供无线接口技术。SIM300-E模块提供了功能非常完备的一整套系统接口,利于将GPRS技术融合在自己设计的系统中。
3.系统软件设计
系统软件的实现包括交叉编译器的移植、内核的配置、PPP点对点连接、USB摄像头模块驱动加载、根文件系统建立、Boa服务器的移植以及图像采集软件和网络传输程序。本文将讲重点介绍图像采集和网络传输的实现。
3.1 系统软件结构模型
系统采用成熟的C/S(Client/Server)软件模型。系统上电后加载Linux操作系统,初始化外围硬件,然后通过启动脚本运行PPP拨号上网脚本联网,启动Boa服务器,通过CGI程序调用[2]应用程序启动摄像头进行图像采集,然后将采集到的图像进行JPEG压缩,最后再通过CGI程序将压缩的JPEG图像链接到动态网页上,提供给远程用户查看。系统软件工作流程如图3所示。
3.2 图象采集
系统中为了简化和方便视频设备应用程序的开发,采用了Video4Linux(简V4L),它是Linux中关于视频设备的内核驱动[3],提供了丰富的接口函数。V4L可以利用提供的接口函数实现USB摄像头的驱动程序[4],首先是让系统识别出USB接口,在对系统的内核进行配置时就把USB控制器的驱动模块静态的编译进内核。其次当需要USB摄像头工作时,通过nsmode命令把USB驱动程序动态地加载到驱动模块[5],驱动摄像头进行图像采集工作。
图象采集的流程如图4所示。系统中采用mmap()内存映射方式进行图像的截取。步骤如下:
第一步,调用函数dev=open(device,O_RDWR),打开视频设备/dev/video0。如果返回的是-1说明打开设备失败,device代表/dev/video0的设备文件[6]。
第二步,将USB摄像头的存储缓冲区的帧大小信息通过函数ioctl(dev,VIDIOCGMBUF,&vid_buf)函数获取出来,得到的结果为vid_buf.size,即是摄像头存储缓冲区的大小。
第三步,需要将摄像头对应的设备文件映射到内存区,这一步需要利用摄像头的存储缓冲区。将设备文件映射到内存,以便实现对映射内容的读写操作和不同进程间的共享。
在图像的采集过程中,可以通过修改video_mmap和帧状态的当前值,来完成图像帧的垂直及水平分辨率、彩色显示格式、最多可支持的帧数的设置[7]。
3.3 图象压缩
由于采集到的原始图像数据量大,不利于在网络上传输,所以通过对JPEG图像压缩编码库的交叉编译,生成JPEG库文件并移植到嵌入式系统中,完成对图像的压缩处理,以解决在保证图像画质的前提下,提高系统的传输效率。
JPEG是Joint Photographic Expert Group(联合照片专家组)的缩写,是由国际标准组织和国际电话电报咨询委员会为静态图像建立的第一国际数字图像压缩标准,JPEG是目前静态图像压缩格式中压缩比最高的。
由于在离散余弦变换中,要将压缩的图像分成8×8的子块,对图像压缩会带来块效应,从而使块与块之间的边界不连续,并且相邻块之间的冗余数据也是不容忽视的。经过实验发现,如果能设法使变换后的图像子块的能量下降速度加快,就可以减少块效应并可能使细节部分清晰。基于这一思路,在系统中对采集的图像采用了软件压缩的方法,实验证明通过收敛性良好的Chebychev多项式来拟合离散余弦变换,使得变换后的图像子块的能量下降速度加快,从而提高了图像数据的压缩比,同时还能够改善图像的块效应。
3.4 网络传输
TCP协议的所有操作都是基于Socket套接字来完成,当需要建立一个新的连接时,初始化一个新的Socket,连接成功则保存Socket,否则释放Socket。请求、建立和关闭等过程的进行由套接字Socket中的函数指针调用来实现,为了保证传输数据的准确性,系统中采用数据流式的套接字进行无线网络的传输。系统接入Internet流程如图5所示。
网络程序一般分为服务器端和客户端两大部分。因此,网络连接流程可以分为TCP客户端和TCP服务器端。系统整个C/S软件的工作流程如图6所示。
4.系统测试
配置好超级终端,打开S3C2410主板电源开关,在超级终端里可以看到启动信息自动加载。最后进入到shell控制台。PPP拨号上网脚本和Boa服务器都通过启动脚本在系统启动。
4.1 Linux操作系统下的测试
4.1.1 服务器配置
#:cd/home/poplar/user/gprs/server
#:./server
4.1.2 GPRS控制终端配置
#:cd/usr/video/linux
#:./linux-test[服务器IP]
图1 系统框图
图2 系统硬件平台框图
图3 系统软件工作流程图
图4 图象采集流程图
图5 系统接入Internet流程图
图6 C/S软件工作流程图
图7 Linux操作系统下的图像传输界面
图8 Windows操作系统系服务器的监控界面
图9 Windows操作系统下客户端登陆界面
图10 windows操作系统下的图像传输界面
4.1.3 客户端配置
#:cd/home/poplar/user/gprs/client
#:./client[服务器IP]
在客户端与GPRS监控终端建立了TCP/IP连接以后,开始进行图像的采集与传输。客户端收到的图片保存到Boa服务器的文件夹:/usr/boa/www/image里。
启动Boa服务器。
在浏览器地址栏中输入客户端的IP,得到实时监控采集的网页。如图7所示。
4.2 Windows操作系统下的测试
首先,在Windows操作系统下编写服务器和客户端的程序,此服务器可以实现对多个客户端和多个GPRS连接的请求。编写的客户端程序可以实现与不同的GPRS监控终端建立TCP/IP连接。
4.2.1 服务器端配置
运行Windows下的服务器程序,然后服务器进入监听模式,如图8所示。
4.2.2 GPRS控制终端配置与Linux系统的操作相同。
4.2.3 客户端的配置
启动在Windows系统下编写好的客户端。如图9所示。
当客户端对GPRS监控目标进行监控时就会自动打开一个网页对其画面进行实时监控。如图10所示。
5.结束语
木文介绍了基于嵌入式平台的图像传输系统,用户可以在互联网上通过远程无线访问网站来获得通过GPRS网络传回的图像,系统终端体积较小便于携带和安装,在实际测试中取得较好效果。由于GPRS通信速度和网络质量的限制,系统传输的信息量还不是很大。随着3G网络的覆盖和技术推广,该系统的架构很容易升级到3G网络进行远程的图像,视频和语音传输。
[1]Walsh,H.Ye.Scheduling of networked control systems[J].IEEE Control System Magazine,2001,21(2):57-65.
[2]孙天泽等.嵌入式设计及Linux驱动开发指南[M].北京:电子工业出社,2005.
[3]万永波等.基于ARM的嵌入式系统Bootloader启动流程分析[J].微计算机信息,2005,11:31-33.
[4]杨继华等.基于嵌入式Linux与S3C2410平台的视频采集[J].单片机与嵌入式系统应用,2004,11:69-71.
[5]Jonatban Corbet,Alessandro Rubini著.魏永明等译.LINLJX设备驱动程序[M].北京:中国电力出版社,2002,2.
[6]翟海涌.数字视频网络传输层协议的选择[J].电信建设,2004,4:61-65.
[7]孙天泽等.嵌入式设计及Linux驱动程序开发指南——基于ARMS处理器[M].北京:电子工业出版社,2007,2.