ARM和CDMA在远程视频监控系统中的应用
扫描二维码
随时随地手机看文章
引言
CDMA (Code Division Multiple Access) 又称码分多址,是在无线通讯上使用的技术,CDMA允许所有使用者同时使用全部频带(1.2288Mhz),且把其他使用者发出讯号视为杂讯,完全不必考虑到讯号碰撞 (collision) 问题。CDMA中所提供语音编码技术,通话品质比目前GSM好,且可把用户对话时周围环境噪音降低,使通话更清晰。就安全性能而言,CDMA不但有良好的认证体制,更因其传输特性,用码来区分用户,防止被人盗听的能力大大增强。 Wideband CDMA(WCDMA)宽带码分多址传输技术,为IMT-2000的重要基础技术,将是第三代数字无线通信系统标准之一。这里开发的嵌入式远程视频系统就是充分利用CDMA网络技术和嵌入式系统的特点而搭建的数据传输系统,特别适合边远偏僻或不具备常规网络传输条件的地方使用,例如车载视频系统、交通路口(车牌实时监视)及城市路灯的等。
1 嵌入式Linux系统
嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。
Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最着名的例子。Linux本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
本系统选用的处理器是SAMSUNG公司的一款中高端arm9内核的CPU-S3C2410,其内建有MMU,主频可达到203MHz,运行嵌入式Linux2.4系统正好如鱼得水,不但保持了嵌入式系统小型化、低功耗、易携带的特点,又充分利用了Linux系统的内存、文件、线程管理功能。
2 系统结构
系统一般可分为实时和触发模式两种,可以根据具体的情况设计合适的方式,如果采用实时,将占用较多网络资源,成本相对较高,采用触发模式的运行成本较低。
当遇异常情况后,触发终端拍摄图片,同时其内部的嵌入式模块和CDMA模块协同运作,完成Internet的接入,并把拍摄到的图片数据经打包后发送给中心主机,或发送给指定的E-mail地址,中心主机登录到Internet上后运行服务器端软件就可以浏览由点发来的图片。
3 硬件系统设计
要能够正确运行一个操作系统,硬件方面至少应该包括CPU、内存和固态存储器、系统内部以及外设接口。
S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。具有3个UART、1个RTC和触摸屏接口,还具有I2C、USB Host、USB Device等接口,充分满足了系统的需要。
由于剪裁后的Linux系统所占得存储空间非常小,我们选择Nor Flash作为固体存储器,通过16位数据与CPU交换数据,并利用其上端8MB空间(00800000H-00ffffffH)开辟了一个jffs2文件存储系统,存储系统的配置文件。
64MB的SDRAM为2片K4S561632C,通过32位数据与CPU交换数据。
通过MAX3232C电平转换芯片和RTL8019网络芯片转换成一个RS-232接口和一个以太网接口,用串口线和以太网网线与PC机相连,组成可以交叉编译的开发环境。
通过CPU上集成的USB Host接口直接与USB摄像头连接,考虑到监控与控制模块接口的要求,选用USB1.1接口的红外线摄像头。
通过CPU上集成的UART接口直接与CDMA Modem模块相连接,选用价格适中的AnyData公司的DTGS-800 CDMA模块。
4 软件系统设计
4.1 控制终端程序设计
控制终端软件的核心是嵌入式Linux操作系统,Linux本身作为一个桌面系统,进入嵌入式操作系统领域时,小型化的目的是在满足操作系统基本功能和用户特定需要的情况下,使内核尽可能小,作为一个操作系统,Linux内核主要负责程序的管理与调度、内存的管理及对外设的驱动和管理等,由于Linux内核采用模块化的设计,很多模块可以独立地加载或卸载,所以小型化就是对Linux内核重新编译,在编译时仔细地选择嵌入式设备所需要的功能模块,同时删除不需要的功能,这里只需要串口驱动、USB摄像头接口驱动(包含USB Host,USB Core和USB Device)还有拨号网络应用,还要支持PPP、TCP/IP网络协议,其他都可以删除掉。
具体程序设计包括Bootloader启动
a)系统加电后复位。
b)Bootloader初始化CPU、SDRAM、分配地址空间等。
c)Bootloader把Linux内核的压缩文件解压到SDRAM中,同时把控制权从Bootloader移交到Linux。Linux的内核有两种运行方式可供选择。可以在Flash存储器上直接运行,也可以加载到内存中运行。Flash存储器运行方式就是把内核的可执行映像烧写到Flash存储器上,系统启动时从Flash存储器的某个地址开始运行内核,进入SDRAM继续运行,这种做法能减少内存需要,实际上很多嵌入式系统都采用这种方法,内存加载方式把内核的压缩文件存放在Flash存储器上,系统启动时自动读取压缩文件并在内存中解压,然后开始执行。
d)开始执行SDRAM中的代码,Linux内核初始化,完成堆栈,中断的分配等。
e)加载串口驱动模块和USB
f)运行PPP拨号程序,通过CDMA网络与Internet进行连接,在Linux下的PPP包是专门为解决Modem拨号上网问题而编写的,并且是公开源代码的,PPP拨号脚本程序主要是通过调用pppd和chat这两个应用程序,并通过AT指令实现对Modem的操作。
至此,已经建立了从图像采集到图像传输的完整的嵌入式监控系统,但是,作为一个嵌入式操作系统,他是为某一专门的用途而设计的。运行不同的用户应用程序,就可以实现用户要求的不同功能。
我们运行的用户程序是一个无限循环的过程,控制终端在不断等待拍照请求,通过比较识别认为有请求后,CPU通过USB摄像头驱动控制摄像头拍照,同时接收图片并发送控制中心,或通过SMTP协议,发送到指定的Email地址。
4.2 控制中心服务器程序设计
服务器端软件实现的主要功能是接收、保存和重显由嵌入式终端发送过来的监控图片,控制中心主机通过拨号、带宽上网等方式登录到Internet上,注意必须申请一个静态IP地址,使主机每次登录到Internet所获得的IP地址(互联网IP地址)不变,主机登录Internet后,即可运行服务器端软件,服务器端程序设计主要包括网络通信、接收图片、保存图片、即时重显图片和察看图片,用户通过此软件可以方便地浏览由控制终端发来的图片。
另一种方案是不设置控制中心服务器,控制终端抓怕到的图片直接发送到指定的Email地址,这种方案容易管理,只需定期查收Email,清除Email存储空间即可,运行成本很低,但可靠性差。
5 结束语
利用无线网络与IT技术对传统监控领域进行革新,是市场的需要,在这个过程中,嵌入式系统因其体积小、处理能力强、支持网络服务等功能,无疑扮演了重要角色。