cdma(码分多址)网络具有覆盖面广,高效、低成本的特点,cdma网络的数据传输速率可达200kb/s,这里开发的嵌入式远程视频系统就是充分利用cdma网络技术和嵌入式系统的特点而搭建的数据传输系统,特别适合边远偏僻或不具备常规网络传输条件的地方使用,例如车载视频系统、交通路口(车牌实时监视)及城市路灯的等。
本系统选用的处理器是samsung公司的一款中高端arm9内核的cpu-s3c2410,其内建有mmu(内存管理单元),主频可达到203mhz,运行嵌入式linux2.4系统正好如鱼得水,不但保持了嵌入式系统小型化、低功耗、易携带的特点,又充分利用了linux系统的内存、文件、线程管理功能,大大方便了程序的开发和程序中多任务功能的实现
1 嵌入式linux系统
linux本身作为一个桌面系统,其最大的特点是操作系统源代码公开并且遵循gpl协议,其内核采用模块化的设计,易于裁减,特别适合嵌入式系统的小型化要求,在嵌入式系统中占据了半壁江山。
2 系统结构
系统一般可分为实时和触发模式两种,可以根据具体的情况设计合适的方式,如果采用实时,将占用较多网络资源,成本相对较高,采用触发模式的运行成本较低,这里采用触发模式,系统结构见图1。
当遇异常情况后,触发终端拍摄图片,同时其内部的嵌入式模块和cdma模块协同运作,完成internet的接入(包括拨号、ppp和ctp/ip协议的处理等),并把拍摄到的图片数据经打包后发送给中心主机,或发送给指定的e-mail地址,中心主机登录到internet上后运行服务器端软件就可以浏览由点发来的图片。
3 硬件系统设计
要能够正确运行一个操作系统,硬件方面至少应该包括cpu、内存和固态存储器、系统内部以及外设接口。
samsung公司的s3c2410 cpu具有3个uart、1个rtc和触摸屏接口,还具有i2c、usb host、usb device等接口,充分满足了系统的需要,而且性价比极高,是一个很不错的选择。
由于剪裁后的linux系统所占得存储空间非常小(只有几mb),我们选择nor flash作为固体存储器,型号是e28f128j3a150,容量为16mb,通过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内核采用模块化的设计,很多模块可以独立地加载或卸载,所以小型化就是对linux内核重新编译,在编译时仔细地选择嵌入式设备所需要的功能模块,同时删除不需要的功能,这里只需要串口驱动、usb摄像头接口驱动(包含usb host,usb core和usb device)还有拨号网络应用,还要支持ppp、tcp/ip网络协议,其他都可以删除掉,使系统运行所需要的内核显著减小至1mb以内。
具体程序设计包括bootloader启动
代码、设备驱动程序(usb摄像头接口驱动程序、串口驱动程序)、拨号、ppp及tcp/ip协议处理,监控接收转发控制程序等。
a)系统加电后复位。
b)bootloader初始化cpu、sdram、分配地址空间等。
c)bootloader把linux内核的压缩文件解压到sdram中,同时把控制权从bootloader移交到linux。linux的内核有两种运行方式可供选择。可以在flash存储器上直接运行,也可以加载到内存中运行。flash存储器运行方式就是把内核的可执行映像烧写到flash存储器上,系统启动时从flash存储器的某个地址开始运行内核,进入sdram继续运行,这种做法能减少内存需要,实际上很多嵌入式系统都采用这种方法,内存加载方式把内核的压缩文件存放在flash存储器上,系统启动时自动读取压缩文件并在内存中解压,然后开始执行,这种方式相对较复杂,但运行速度更快,我们采用的就是这种方式。
d)开始执行sdram中的代码,linux内核初始化,完成堆栈,中断的分配等。
e)加载串口驱动模块和usb
摄像头驱动模块,完成串口和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技术对传统监控领域进行革新,是市场的需要,在这个过程中,嵌入式系统因其体积小、处理能力强、支持网络服务等功能,无疑扮演了重要角色。
一个PLC编程项目的四大步如何实现?
使用通用电源IC实现电源时序控制的电路 —总结—
阿里达摩院发布2019十大科技趋势,5G仍是主要生产力
MOS管内的体二极管简析
马歇尔MarshallKilburn音响评测 派对爱好者们的最佳之选
基于ARM9和CDMA的远程视频系统
代小权无罪释放_未来欲进人工智能行业
5G推动数字化转型,平台赋能传统制造到智能制造
气体设备数据采集并上传到云平台进行监控和报警
HPLC通信技术初识
浅谈磁致伸缩液位计
区块链在智慧城市有什么创新应用
IBM:我们用硅光芯片挑战摩尔定律
传统的蓄电池维护测试技术发展历程及效果分析(一)
“秒开机”不是梦 aigo国民好物固态硬盘P3000是关键
魅族18系列相关信息曝光
天能控股张天任:动力电池产业将更好地实现可持续发展
360N5S评测:360N5S和红米Note4X高配版对比评测,外观、配置、性能、价格谁将主宰千元市场?
中国移动:安全可靠的5G解决方案是电网智能化升级的关键
自来水恒压供水系统如何实现远程监控?