《基于ARM的监控系统中静态图像网络传输的软硬件设计.pdf》由会员分享,可在线阅读,更多相关《基于ARM的监控系统中静态图像网络传输的软硬件设计.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、文章编号:100525630(2006)0120059205基于ARM的监控系统中静态图像网络传输的软硬件设计潘泰才,林斌,戚巽骏,林小倩(浙江大学国家光学仪器工程技术研究中心,浙江 杭州310027)摘要:阐述了ARM 7TDM I体系结构的32位微控制器S3C4510B在无人值守监控系统中的应用。在uClinux操作系统下实现了以S3C4510B为核心的控制模块的图像网络传输软硬件设计,并介绍Bootloader的编写和uClinux操作系统内核在S3C4510B芯片上的移植。系统的高速传输和稳定性通信设计为无人值守监控系统的大量商业使用增加了可能。关键词:网络传输;ARM;S3C4510
2、B;uClinux;Socket编程中图分类号:TP37;TP316文献标识码:ASoftware and hardware design of network static i mage transferin the mon itored control system based on ARMPA NT ai2cai,L IN B in,Q I X un2jun,L IN X iao2qian(CN ERC for Optical Instrument,Zhejiang U niversity,Hangzhou 310027,China)Abstract:This paperworked o
3、ut one method to apply the 32 bit m icro2controller(S3C4510B)basedon ARM 7TDM I system structure to automatic monitored control system.In the uClinux operation sys2tem,it designed the hardw are and softw arew hich functioned successfully in the network i mage transfer2ring through the S3C4510B contr
4、olmodule.In addition,it described how to w rite Bootloader and trans2plant the core of uClinux operation system in S3C4510B chip.It is possible to the commercial applica2tions of automatic monitored control system for this systems high speed and stability.Key words:network transferring;ARM(advace ri
5、sc machine);S3C4510B;uClinux;Socket pro2gramm ing1引言无人值守监控系统是从维护社会公共安全和预防灾害事故为目的的一项系统工程,在银行、智能小区、金融系统、大型商场中能有广泛的应用。把无人值守监控系统中存储的图片传输到远程的PC机,以前是通过M odem串口传输。串口传输有一个缺点是速率太慢,而且传输的数据容易出错。下面采用基于TCP?IP(transm ission control protocd?internet protorcl)的网络传输,把图片传到远程PC机中,这样很大程度上能提高图片数据传输的速度,增加了无人值守监控系统的使用价值。2
6、系统功能工作原理及硬件方案1整个无人值守监控系统主要分为两部分:图像采集压缩模块和网络传输控制模块。系统的基本结构框第28卷第1期2006年2月 光学仪器OPT ICAL I N STRUM EN TSVol.28,No.1February,2006收稿日期:2005205225作者简介:潘泰才(19792),男,浙江温州人,硕士生,主要从事远程图像监控技术方面的研究。1994-2007 China Academic Journal Electronic Publishing House.All rights reserved.http:/图如图1所示。图1无人值守监控系统结构图图像采集压缩模
7、块控制CMOS图像传感器完成图像的采集,并对采集到的图像进行压缩,在LCD上进行实时显示。图像采集模块有相当于数码相机的功能,能把拍摄到的图片保存到一块专用flash中,通过网络传输模块,把保存在flash中的图片传输到远程PC机上。网络传输部分则由S3C4510B的以太网M ac层连接物理层芯片DM 9161实现。S3C4510B通过RS232串口和图像采集压缩模块进行通信,串口主要传送简单的命令来控制图像采集压缩模块。两模块之间有一块双端口RAM(random accessmemory),主要是用来在两块模块之间实现图片数据的传输。S3C4510B通过RAM接收到图片数据以后,就可以使用以
8、太网把图片传输到远程PC机上。系统可以设置成自动报警模式,当有人闯入时,能自动报警,并启动图像采集压缩模块的自动拍摄功能,把照片传输到有关部门,以便进行处理。3软件流程与分析在无人值守监控系统硬件搭建完成以后,就需要完成在uClinux下软件的开发。在开发软件之前,介绍一下操作系统uClinux的移植和Bootloader(启动代码)程序的编写。3.1Bootloader程序的编写2Bootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,要完成初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常
9、,Bootloader是严格依赖于硬件而实现的,特别是在嵌入式系统里,每种不同的CPU体系结构都有不同的Bootloader。图2为系统Bootloader主要执行步骤。3.2uClinux内核移植目前uClinux支持的平台非常多,下面将以系统中使用的芯片s3c4510b为例,简单介绍一下uClinux的移植。在uClinux众多内核文件中,有两个目录很重要,linux2.4x?arch?armnommu和linux2.4?in2clude?asm2armnommu。它们存放的是处理器有关的代码和头文件,所谓的移植,主要工作就是把处理器相关的部分作修改,再高层的是通用的,无需修改。在内核代码
10、中,每种设备都由一M achine I D来标识,所以正式移植uClinux内核之前,需要注册M a2chine I D和A rchitectur N umber。在修改或添加了内核中的代码后,需要修改config文件,使得用户在编译内核的时候能够选择将修改或添加了的代码编译入内核。3.3系统软件的总体功能系统通过以太网与远程PC机进行通信,响应PC机用户的请求,并根据具体的请求命令做出相应的操作。当网络传输模块接收到用户传输图片命令时,便使用串口控制图像采集模块,通过双端口RAM得到存储在flash中的图片,利用以太网传输到远程PC机中。系统总体功能流程如图3。06光学仪器第28卷 1994
11、-2007 China Academic Journal Electronic Publishing House.All rights reserved.http:/图2系统Bootloader执行步骤图3系统总体功能流程图3.4网络传输部分程序的实现3系统中网络传输部分的软件实现是采用socket(套接口)编程技术,系统调用socket()函数,返回一个整型的socket描述符,随后的连接建立、图象数据传输等操作都是通过该socket函数实现的。常用的socket类型有两种:流式socket和数据报式socket。前者使用TCP协议,后者使用UDP协议,系统中采用的是流式socket。以下是
12、在uClinux下socket编程中用到的主要函数。(1)socket()函数每一个套接口都是一个数据通信通道。在两个进程通过套接口建立连接以后,它们就使用套接口描述字来从套接口中读取数据,并向套接口中写入数据。其函数结构如下:Int socket(int domain,int type,int protocol);当返回值非负时成功,返回-1时失败。代码中的do2main指明协议族,在这里指定为A F_I N ET。Socket的类型type是某个常值,在这里指定为SOCK_STREAM。参数protocol设置为0。16第1期潘泰才等:基于ARM的监控系统中静态图像网络传输的软硬件设计 1
13、994-2007 China Academic Journal Electronic Publishing House.All rights reserved.http:/(2)bind()函数函数bind将一个进程和一个套接口联系起来,函数原型为:Int bind(int socket,struct sockaddr3my_addr,intmy_addr_length);?3返回:0成功,-1失败3?。第一个参数是前一个对函数socket的调用中返回的套接口值。第二个参数是指向sockaddr的结构指针。第三个参数是该结构的长度。(3)linsten()函数当创建了套接口并且使用bind把它
14、和一个进程关联起来以后,服务器类型的进程可以调用listen函数来监听接入的套接口连接。其函数原型为:int listen(int socket,int input_queue_size)?系统调用listen的第一个参数是前一次调用socket函数(而且在调用了bind之后)返回的整型socket值。第二个参数设置接入队列的大小。(4)accept()函数当一个接入信号抵达监听套接口,它们会被排入队列直到服务器程序准备处理它们为止。当服务器准备处理一个新连接时,它会使用系统调用accept从套接口的队列中检索一个挂起信号。其函数原型为:intaccept(int socket,struct
15、sockaddr3my_addr,int3my_addr_length);第一个参数是监听套接口的套接口描述符。第二个参数是一个指向数据区的指针,它将会把有关接入连接的信息填入到数据区中。第三个参数是一个整数指针,这个整数设置了my_addr所能容纳的最大字节数。(5)recv()函数函数revc用来接收从以及功能连接的套接口传来的消息。其函数原型为:int recv(int socket,void3buf,int buf_len,unsigned int flags);第一个参数定义的套接口必须是已经使用connect连接到一个端口的套接口。第二个参数是指向内存块的指针,此内存块用来存储接收
16、的消息。第三个参数指定所保留的内存块的大小。第四个参数指出了操作标志。(6)send()函数系统调用send用来通过套接口向其他程序传递数据。其函数原型为:int send(int socket,const void3message_data,int message_data_length,unsigned int flage);第一个参数仅仅是调用函数socket时返回的套接口值。第二个参数包含了要传送的数据。第三个参数以8bit字节为单位指定了信息数据的大小。第四个参数在该程序中一直为0。图4是图像数据网络传输的流程图。图4图像数据传输流程图26光学仪器第28卷 1994-2007 Chi
17、na Academic Journal Electronic Publishing House.All rights reserved.http:/4系统软件调试实验在系统软硬件设计完成之后,接着就需要对系统功能进行调试,下面主要阐述系统中图像传输部分软件的调试。在图像采集压缩模块中,CMOS传感器的像素为30万,一幅彩色图片经过压缩后大小为60K70K左右。现在利用一个计数器来测试一幅彩色图片传输到远程PC机上的时间,测试的图片大小为64.8K,环境为局域网。当PC机客户端发出命令后,服务器端先解析具体的命令,如果是要求传输图片,那么网络传输模块先和图像采集压缩模块进行通信,通过双端口RAM
18、得到图片数据,然后通过网络开始发送数据。当发送第一个数据时候,启动计数器,发送完最后一个数据时,停止计数。读取计数器经过的时间,就可以得到传输一幅图片需要的时间。经过测试,一幅64.8KB大小的图片,在局域网中传输的时间为543m s,那么传输的平均速率为119KB?s。5结论经实验测试,一幅约60KB的图片,通过网络传输到远程PC机上,只要0.5s左右时间,而采用串口传输,当波特率9600bit?s时,需将近1m in,所以系统的传输方式很大程度节省了时间。串口传输的误码率比较高,当距离比较长的时候就容易出错4。而系统传输图片是基于TCP?IP协议的,TCP所提供的服务,具有修正错误,顺序控
19、制,流控制和阻塞控制等功能,为各应用程序之间提供可靠的通信,因此通信程序对通信时的错误或阻塞等低层的通信情况不需要考虑即可进行通信。系统基于TCP?IP的网络通信不仅提高了图片传输的速度,而且降低了通信的误码率,增强了可靠性。所以系统的高速传输和高可靠性通信设计为无人值守监控系统的大量商业使用增加了可能。6参考文献1W ayneW,等著,孙玉芳,等译.嵌入式计算机系统设计原理M.北京:机械工业出版社,2002.2李驹光,等.ARM应用系统开发详解M.北京:清华大学出版社,2003.3KurtW,等著,张辉译.GNU?L linux编程指南M.北京:清华大学出版社,2002.4胡皓,陈晓禾.L inux系统及其网络应用M.北京:人民邮电出版社,1999.36第1期潘泰才等:基于ARM的监控系统中静态图像网络传输的软硬件设计 1994-2007 China Academic Journal Electronic Publishing House.All rights reserved.http:/