ARM9远程图像无线监控系统

发布者:GoldenSunrise最新更新时间:2011-06-15 关键字:ARM9  远程图像无线监控 手机看文章 扫描二维码
随时随地手机看文章

  在嵌入式领域,ARM9系列微处理器在高性能和低功耗方面提供了最佳的性能,因此选用ARM9嵌入式处理器S3C2440设计实现了一个远程图像光线监控系统通过这个系统,可以远在千里之外控制一个摄像机进行图像采集并回传。如果这个摄像机有一个485接口的云台,还可以通过互联网远程控制摄像机的取景角度、镜头拉伸、聚焦等功能.

  除了获取图像数据.系统还提供了多路开关控制和数据采集功能,可以连接温度、湿度等各类传感器和控制红外夜视灯等其他外部设备的开关状态。最后,通过GPRS或CDMA无线通信模块及Internel互联网将数据传至任何地方

  1 系统设计

  本系统采用三星公司的S3C2440嵌入式处理器和arm-linux2.4.26操作系统;S3C2440使用ARM920T内核,主频是400MHz;除了集成通用的串口控制器、USB控制器、A/D转换器和GPIO等功能之外,还集成了一个摄像头接门(CAMIF)(这个接口是远程图像采集的核心部分)。系统在S3C2440处理器的控制下,从CCD摄像机采集模拟视频信号,然后经过编码、DMA传输到内存缓冲,接着由软件对内存中的数字视频数据进行压缩和打包.最后通过通信单元将图像以IP包的方式发送到监控中心的服务器。整个系统的硬件结构原理如图1所示

ARM9远程图像无线监控系统[page]

  1.1 图像采样接口

  S3C2440的摄像头接口(CAMIF)支持ITU-R BT.601/656

  YCbCr8 比特标准的图像数据输入,最大可采样4096×4096像素的图像。摄像头接口可以有两种模式与DMA控制器进行数据传输:一种是P端口模式,把从摄像头接口采样到的图像数据转为RGB数据,并在DMA控制下传输到SDRAM(一般这种模式用来提供图像预览功能);另一种是C端口模式,把图像数据按照 YCbCr4:2:0或4:2:2的格式传输到SDRAM(这种模式主要为MPEG-4、H.263等编码器提供图像数据的输入)。上述两种工作模式都允许设置一个剪辑窗口,只有进入这个窗口的图像数据才能够传输到SDRAM。上述过程可用图2说明。

ARM9远程图像无线监控系统

  S3C2440 的摄像机接口接收ITU标准的图像数据,不能直接接收CCD摄像机输出的模拟视频信号,因此还需要1片SAA7113视频解码芯片。SAA7113可以输入4路模拟视频信号,通过内部寄存器的不同配置可以对4路输入进行转换,输入可以为4路CVBS或2路S视频(Y/C)信号,输出8位“VPO”总线,为标准的ITU656、YUV 4:2:2格式。对SAA7113初始化需要通过I2C 总线进行,而S3C2440内部集成的I2C控制器正好可以实现这个过程。S3C2440的摄像机接口与SAA7113的连接原理如图3所示。

ARM9远程图像无线监控系统

[page]

  SAA7113 的CE 引脚与S3C2440 的一个GPIO 引脚相连,这样可以控制SAA7113的工作状态。当无须采集图像时,将该GPIO口输出低电平,使SAA7113芯片处于低功耗状态,节省电能的消耗。对照图2和图3可以看出,SAA7113芯片就是图2的“外部图像传感器”。它向嵌入式系统的摄像机接口提供了采样到的标准ITU视频数据。这些数据经过 DMA的P端口或C端口控制传输到了内存,这样就可以在内存中对图像数据作进一步的加工处理。

  1.2

  图像采样接口的驱动按照Linux视频设备驱动的模型V4L(video for Linux)编写了SAA7113与S3C2440摄像机接口的驱动。驱动使用C端口模式与DMA进行通信。采样1帧图像之前,首先设置采样图像的分辨率和剪辑窗口大小等参数,然后设置DMA控制器访问的视频采样输出缓冲的内存地址,接着就可以通过设置S3C2440的CAMIF接口控制寄存器启动1帧图像的采集。当采集完1帧图像时,CAMIF接口会自动启动1次C端口的DMA通信,把采集的图像数据传到内存。传输结束后,会产生一个C端口的中断,通知驱动1帧数据采样和传输结束。具体来说,这个驱动需要实现以下功能:

  初始化S3C2440的CAMIF接口的时钟寄存器。主要是根据SAA7113的外接晶振频率设置摄像机时钟分频寄存器(CAMDIVN)。该寄存器的0~3位是分频系数,其计算方法是:

  CAMCLK_DIV=UPLL/(CAMCLK * 2)-1

  (初始化代码略— — 编者注)

  配置CAMIF接口的采样参数。主要是输入源图像数据的格式、输出的图像格式、采样的窗口大小、DMA的访问地址等参数。这里定义了一个结构,用于存储与CAMIF接口相关的配置信息:[page]

struct s3c2440_camif_cfg_t {
int src_x; //输入的源图像宽度
int src_y; //输入的源图像高度
int 
dst_x; //输出的目标图像宽度
int dst_y; //输出的目标图像高度
int dst_fmt; 
//输出的目标图像数据格式
int pre_x; //预览通道(P端口模式)输出的图像宽
int pre_y; 
//预览通道(P端口模式)输出的图像高
int pre_fmt; //使用通道(P端口模式)时设为1
__u16 bypass; 
//为1时表示不启用按比例的图像放大/缩小
__u16 ycbcr; //输入图像的YcbCr顺序
struct s3c2440_camif 
*dev; //设备的系统信息
};

  上述这些配置信息最终是与一系列的寄存器相关联的。这个结构为读/写寄存器提供了一个清晰的、集中的存储缓冲。

  打开、关闭和控制摄像机的接口函数。这3个接口函数是按V4L规范编写的,其原型如下:

  ① 打开摄像机接口函数:

  static int

  v4l_cam_open(struct video_device *v,int mode);

  ② 控制摄像机接口函数:

  static int

  v4l_cam_ioctl(struct video_device *v,unsigned int cmd,void *arg);

  ③ 关闭摄像机接口函数:

  static void v4l_cam_close(struct video_device *v);

  中断处理接口函数。该中断处理函数在使用C端口模式完成1帧图像采集后被调用。函数原型定义如下:

static void 
s3c2440_camif_isr_c(int irq,void *dev_id,struct pt_regs *regs);

  读取图像数据的实现函数。该函数通过dev→rdy的值判断1帧图像有无采集转换结束。如果该值置1,则表示采样结束,这时就可以从图像数据的缓冲中拷贝数据到用户的存储空间;如果为0,则函数进入阻塞或返回EAGAIN标志。顺便提一下,dev→rdy的值是在中断处理函数中设置的。(实现代码略——编者注)

[page]

  1.3 图像数据的压缩

  S3C2440的CAMIF接口处理得到的1帧图像数据比较大,还要经过进一步的压缩才能适合进行网络数据传输。S3C2440处理器内部没有提供硬件的图像压缩编码器,但因为它的主频较高,可以使用软件来进行图像压缩。考虑到CPU的处理能力和对单帧采样图像的清晰度有较高的要求,采用基于离散余弦变换算法(DCT)的JPEG/MJPEG方式对图像数据进行压缩编码。

  1.4 图像数据的传输

  通信单元承担了图像的数据传输任务。在本系统中,有两种通信单元可供使用。一种是GPRS/CDMA无线传输模块。它们通过串口与S3C2440处理器相连接,在以太网络传输线缆难以铺设的环境中可以使用这种通信方式。它的缺点是通信带宽小,传输速度慢,但是如果对实时性要求不高,也能够传输高清晰的静态图片。另一种通信单元是10MHz的CS8900a以太网络传输模块。它可与局域网相连接,然后将监控图像发送到局域网的监控服务器或者通过网关发送到互联网上。这种通信方式速度高,实时性好,但监控现场要安装有线的以太网络。

  1.5 摄像机云台的控制

  摄像机的云台控制接口采用RS485通信方式。因S3C2440内部只有RS232的控制器,为此使用MAX485芯片设计了一个RS232到RS485的转换接口。该电路原理如图4所示。

ARM9远程图像无线监控系统

  图4中RS485的数据流方向由GPE13口的电平进行控制。

  2 系统软件的设计

  系统软件包含下位机软件、服务器软件和客户端软件。下位机软件部署在远程图像监控设备上。这个软件作为一个Linux的守护进程启动,负责压缩采样到的图像数据,并把压缩后的图像打包,然后通过Socket通信方式上传到监控服务器。如果使用GPRS/CDMA无线传输模块,上位机软件在系统启动完成后,就自动进行PPP拨号,建立起一条TCP/IP的通信管道。客户端软件部署在一台连接到互联网的PC机上,它提供给最终用户浏览监控画面,设置监控参数等功能。服务器软件也部署在一台连接到互联网的计算机上。这台计算机在互联网上有固定的IP或者域名,服务器软件作为一个后台进程启动,为客户端和远程图像监控设备之间的通信起到一个桥梁的作用。因为远程监控设备的IP地址是动态的,无法被客户端直接寻址,因此就需要服务器作为双方通信的中间桥梁。

[page]

  下位机软件通过驱动程序提供的接口,在远程图像监控设备中完成硬件的初始化、控制等功能,同时又负责图像的压缩和传输。它是所有设备的控制中枢,因此这里着重描述下位机软件的工作流程,如图5所示。

ARM9远程图像无线监控系统

  为了省电,一些像SAA7113、摄像机和夜视红外灯等大功耗的器件和设备只有在需要时才工作,所以这些设备在初始化时都是断开电源的。

  下位机程序读取保存在设备上的设备ID号(该ID号是唯一的),以及监控服务器的域名/IP地址和端口,然后下位机程序作为Socket连接的客户端主动与监控服务器进行连接。连接成功之后,送出设备的ID号。这时如果有监控的客户端想要查看某个远程监控设备的图像,只要向监控服务器发出请求,告诉服务器要连接的设备ID号,服务器就会根据这个ID号对应的Socket句柄,为客户端和远程监控设备建立一个Socket连接通道。

  3 总结

  远程图像无线监控系统在高压输电线路的覆冰监测中得到了成功的应用。在野外全天候环境下,适时准确地监测高压输电线路覆冰厚度,同时发出预警处理信息,从而有效地避免了断缆事故的发生。

  远程图像监控技术是随着计算机技术、数字通信技术、网络技术、自动控制技术以及LSI、VLSI集成电路的发展而发展的,而基于ARM9嵌入式处理器的本系统正是这些技术学科相互交叉和融合发展的集中体现。实践证明,ARM9处理器的低功耗、高性能和多功能的特性满足了远程图像监控的许多特殊需求,是实现远程图像监控的很好选择。

 

 

 

关键字:ARM9  远程图像无线监控 引用地址:ARM9远程图像无线监控系统

上一篇:基于ARM和CPLD的开放式数控系统设计
下一篇:基于ARM920T的IDE硬盘接口设计

推荐阅读最新更新时间:2024-03-16 12:37

ADC触摸屏转换---那些年我们一起玩mini2440(arm9)裸机
触摸屏工作原理: 四线电阻屏结构,是在玻璃或丙稀酸基板上覆盖两层均匀导电的ITO层,分别作为x电极和y电极,他们之间由均匀排列的透明格点分来绝缘。X电极和y电极的正负端由导电线(黑色粗体线)从两端引出,引出x-,x+,y-,y+. 当接触触摸屏表面并施加压力时,上层的ITO导电层和下层的ITO导电层发生接触,形成上面右图的等效电路。 1.y坐标计算: 在y+加驱动电压V-drive,y-接地。X+作为引出端测量接触点的电压,由于ITO层均匀导电,触电电压与V-drive电压之比等于Y坐标与屏高度之比。 2.x坐标计算: 在x+加驱动电压V-drive电压,x-接地。Y+作为引出端测量接触点的电压,由于ITO层均匀导电
[单片机]
s3c2440 ARM9 裸机驱动第三篇—定时器
定时器这篇是比较艰辛的,过程中出现了很多小问题,有些解决了,有些还是没有完全弄明白,这些问题主要集中在汇编部分的程序。 此部分主要是通过定时器中断的方式实现LED灯的闪烁。 一、硬件部分: 1.LED部分:参见之前的文章 2.定时器: 定时器的频率:Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value} {prescaler value} = 0~255 {divider value} = 2, 4, 8, 16 其中PCLK如果配置了MPLL就是50M,prescaler value配置TCFG0得到,divider
[单片机]
s3c2440 <font color='red'>ARM9</font> 裸机驱动第三篇—定时器
ARM9系统在无线发射台智能化监控系统中的应用
  1.概述   广西广播电视信息网络股份有限公司按照“有人留守,无人值班”的设计思路开发了一套无线发射台远程网络监控管理系统,对广西1 6座边远广播电视无线发射台进行远程集中监控管理。原监控系统采用下位机和上位机监控的模式,下位机采用以8位单片机为处理核心的单片机系统,这种系统具有集成度低外围扩展电路多、系统主频低、实时响应性慢的缺点,同时单片机与计算机交互需要许多专用的软硬件,不同厂家的发射机甚至同一厂家的不同类别、不同功率等级的发射机对应不同程序,使系统备件增加,而且在需要更新升级的时候只能奔赴发射台现场,这对于有着程序多样性的各类发射机采集控制器来说显得十分繁琐,给维护管理带来极大的不便。随着大规模集成电路和嵌入式技术的
[单片机]
ARM11(s3c6410)和ARM9(2440)的区别
1.主频不同。2440是400M的。6410是533/667M的; 2.处理器版本不一样:2440是ARM920T内核,6410是ARM1176ZJF内核; 3.6410在视频处理方面比2440要强很多。内部视频解码器,包括MPEG4等视频格式; 4.6410支持WMV9、xvid、mpeg4、h264等格式的硬解码和编码; 5. 6410多和很多扩展接口比如:tv-out、CF卡和S-Video输出等; 6. spi、串口、sd接口也比那两个要丰富; 7.6410采用的是DDR内存控制器;2440采用的是SDRam内存控制器; 8.6410为双总线架构,一路用于内存总线、一路用于Fl
[单片机]
基于ARM9与Win CE系统的车辆GPS定位信息采集
GPS可提供连续、高精度、实时的时间基准、三维位置、三维速度、整周模糊度等数据,具有性能好、精度高的特点,因而广泛应用于GPS载波相位测姿、精确制导、SINS/GPS组合导航、嵌入式车辆导航监控等军事与民用领域。而嵌入式系统以其低功耗、小体积、高稳定性和便携等优势,在GPS的应用中占据重要的位置。本文研究基于ARM920T内核的嵌入式微处理器S3C2440和WindowsCE 5.0(简称WindowsCE)的某型军车GPS定位信息的采集与处理。 1 系统硬/软件平台概述     车辆GPS定位信息采集系统的硬件平台结构如图l所示。     该平台可以分为3大模块:     1)微系统核心模块 由基于ARM920T的3
[单片机]
ARM9启动分析存储器区分和启动流程解析
最近遇到一个大大的问题,其实以前都一直有问题,但是我没有去深究过!主要是我自己想来弄点新东西,打算用J-link烧写ARM9的处理器,如果能够将j-link的强大调试功能也移到arm9上,那将是一件多么美妙的事情啊。就带着这个问题我一直看资料,最开始我是有两块开发板的,具体点说是三块。但是我当初只用了一块的时候,我没发现什么问题。我当时就是按照别人给我的说明书上进行操作的,也没有去理解和分析为什么!但是最近因为有了那个打算,就发现问题了。我在一块板子上用H-JTAG可以进行烧写,在另外一块上也可以,但是都有一个共同点就是,两块板子都是arm9的(分别是S3C2410和S3C2440),同样我在实际应用中还用到了LPC2478.用J-
[单片机]
<font color='red'>ARM9</font>启动分析存储器区分和启动流程解析
基于ARM9和嵌入式Linux系统的多功能综合通信控制系统的框架
本文介绍了基于ARM9硬件平台和嵌入式Linux系统的多功能综合通信控制系统的框架设计及各模块的功能。系统采用符合POSIX.1标准的C语言编写,实现了对下位机传送数据帧的采集、分析和存储,并能根据上位机的配置指令和数据传输指令分别对串口波特率、数据时间及手机短信号码等参数进行配置和存储数据的传输。 伴随着计算机技术的迅速发展,工业数据采集已由传统的测控 电路 发展为由微型计算机、接口电路、外部通用设备和工业生产对象等组成的现代数据采集与控制系统。但是以微型计算机为核心的数据采集系统也逐渐暴露出许多缺陷:体积大,不易携带;扩展性差、成本高等。因此,以嵌入式系统为平台的数据采集和控制系统应运而生,嵌入式数据采集系统具备可靠性
[单片机]
基于<font color='red'>ARM9</font>和嵌入式Linux系统的多功能综合通信控制系统的框架
s3c2440 ARM9 裸机驱动第二篇—2440系统时钟
一、硬件部分: 1.时钟树: 2440的系统时钟是由MPLL和UPLL来设置的,MPLL用于设置FCLK、HCLK、PLCK。UPLL主要用于USB。 FCLK用于CPU核,HCLK用于AHB总线,PCLK用于APB总线。 2.寄存器: 对于2440,有如下寄存器 LOCKTIME、MPLLCON、UPLLCON、CLKCON、CLKSLOW、CLKDIVN、CAMDIVN。 其中:LOCKTIME用于设置locktime,默认值即可,可以不用配置 MPLLCON用于设置FCLK UPLLCON用于设置USB时钟 CLKCON用于控制外设时钟开启或者关闭,默认都打开。 CLKDIVN、
[单片机]
s3c2440 <font color='red'>ARM9</font> 裸机驱动第二篇—2440系统时钟
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved