打印
[ZLG-ARM]

ARM在数字化远程视频监控系统的应用

[复制链接]
1253|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
synics|  楼主 | 2009-8-16 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
随着信息技术的发展,数字化越来越多的代替了传统的模拟系统,数字化使得远程视频监控系统不需要专门架设线路,应用现有通讯线路就可以实现低成本的信息传递,与传统的模拟监控系统相比,它的组网成本大大降低、系统体积重量大大减小、运行维护更容易。    所使用的通信线路有很多种,如:以太网、ISDN、xDSL、公共电话网、无线电话网等,根据线路的带宽不同,远程视频监控系统的图像质量也有很大不同。
    本文针对低设备成本、低运行成本和超远距离的视频监控系统应用提出了解决方案,使用ARM嵌入式处理器和Linux操作系统构建嵌入式系统,开发出可实际应用的远程视频监控系统,适用于低分辨率、低成本、长距离的监控应用。
    它的特点有:
    ·构建了ARM嵌入式处理器开发平台,提出了嵌入式系统的低成本开发流程;
    ·前端使用便宜的一体化高集成数字化视频采集模块,简化了系统前端的设计,大大降低了前端成本;
    ·编写简单的嵌入式操作系统程序,动态加载应用程序,加快其执行速度;
    ·信号处理使用由高速、高性能的ARM处理器构建的嵌入式系统,通过软件来实现图像压缩。
    ARM视频监控系统平台
    本课题要求建立低成本的图像数据采集、实时压缩与远程传送系统,而且要求容易进行实验室环境下的开发与调试;另外考虑到以后的扩展要求,还需要具备内存管理单元(MMU)与音频接口。
    CirrusLogic公司的EP7312正适合要求。它是基于ARM720T内核的嵌入式微处理器,运行于74MHz时其性能与100MHz的IntelPentium芯片基本相当,且功耗很低,在74MHz工作频率下,功耗90mW,具有MMU、音频接口及LCD控制器。
    图1是视频监控应用系统的开发平台。ARM的系统扩展槽和设备扩展槽,用于为ARM系统添加如以太网接口、海量数据存储接口和PCMCIA等接口或者用于与其他功能开发板,为ARM系统扩展了CMOS图像获取功能和VGA显示功能。其中,VGA接口是通过电阻网络实现320×240×12bits,即4096色彩色显示。与SRAM访问相关的寄存器有:SRAM控制寄存器、读地址低16位、读地址高16位、读出数据寄存器、写地址低16位、写地址高16位、写入数据寄存器;与CMOS图像采集有关的寄存器有CMOS采集控制寄存器、CMOS采集状态寄存器;与VGA显示有关的是VGA显示控制寄存器。
    图1  ARM视频监控开发平台
    ARM控制CMOS图像采集,然后ARM从图像缓冲SRAM中读取图像数据到ARM内部的LCD显示存储区,显示到LCD屏上。这也就打通了整个数据前向通道,ARM获取了图像后就可以进一步做压缩处理和传输。
    ARM程序开发
    ARM视频监控系统配备512KB的FLASHROM,用于程序存储器,所以应用程序与原始数据的总和必须小于512KB。以下是ARM程序开发流程:
    软件的编写与调试
    针对应用编写所需的各种程序,使用ADS(ARMDeveloperSuite)建立工程文件,把编写好的汇编程序*.s文件、C语言程序*.c文件、*.h文件加入到工程中。然后对编译参数进行相应设置,编译工程文件,编译通过后生成可执行二进制代码。使用ADW调试已编译工程,软件调试只能调试ARM指令,无法仿真外围设备;调试通过后,准备下载可执行二进制代码,进行硬件测试。
    程序下载的实现
    通过bootloader程序来实现对FLASH程序存储器的编程,bootloader程序是自己编写的基于内启动方式下的小程序。
    (1)首先让EP7312以内启动方式运行,PC通过串口1(9600bps)接收到"<"标志,
    (2)然后PC从串口发送2KB的bootloader程序到EP7312。
    (3)这时bootloader程序开始运行,PC通过串口1(115200bps)发送"0x79"与EP7312再次建立连接,随后PC发送"0xFF0xFA"命令,EP7312返回"Len:",PC再发送四字节的要下载的文件长度数据。接着PC继续发送整个要下载的程序,发送完成后将接收到"Ok!",然后编程结束后将接收到"Done!"表明下载编程操作成功完成。
    (4)此时重新以外启动方式启动EP7312就可以运行刚下载的程序。
    以上是以工程方式来进行ARM应用程序开发的基本流程,在实际使用过程中如果应用到新器件还需要一个硬件调试阶段,在硬件调试通过以后才可以进一步开发应用程序。
    有关硬件调试的软件方法
    在没有硬件开发工具的情况下,可以通过串口来进行硬件的调试,EP7312与外围硬件的连接基本上有三种方式:直接总线连接、与EP7312的片内外设专用引脚连接、连接EP7312的通用I/O引脚。
    以总线方式连接的外设可以通过总线读写来访问;专用外设可以通过内部专门的控制寄存器来访问;经通用I/O扩展的外设则可以通过对内部通用I/O设置寄存器的控制来访问。由于内部专用寄存器都对应固定的总线地址,所以这三种方式都可以通过ARM的总线操作对指定地址的访问来实现调试。
    软件设计
    在ARM处理器硬件复位以后,需要运行汇编启动代码完成系统初始化,主要包括:中断向量设置、各种处理器模式下的堆栈设置、系统寄存器设置、SDRAM、LCD等外围部件的设置。以下是其部分程序代码:
    ldrr1,=DRAMControlvalue;设置SDRAM参数
    ldrr12,=rSDCONF;rSDCONF= 0x8000.2300
    strr1,[r12]
    ldrr12,=rSYSCON2
    strr0,[r12];rSYSCON2= 0x8000.1100
    ldrr1,=DRAMConfigvalue;设置SDRAM刷新速度
    ldrr12,=rSDRFPR
    strr1,[r12];rSDRFPR= 0x8000.2340
    ;------------------------------------------------
    ldrr1,=0x06;设置系统时钟为74MHz
    ldrr12,=rSYSCON3
    strr1,[r12];rSYSCON3= 0x8000.2200
    ;-----------------------------------------------
    MemConfig1valueEQU0x0202023c;nCS0 = NOR FLASH, 8-bit, 0 wait states
    MemConfig2valueEQU0x0000023f;nCS4 = for FPGA, 16-bit, 0 wait states
    ldrr1,=MemConfig1value;配置存储器位宽格式与等待状态
    ldrr12,=rMEMCFG1
    strr1,[r12];MEMCFG1= 0x8000.0180
    ldrr1,=MemConfig2value
    ldrr12,=rMEMCFG2
    strr1,[r12];MEMCFG2= 0x8000.01c0
    ;-----------------------------------------------
    ldrsp,=SVCStack;设置堆栈
    图2是ARM主程序流程图。ARM处理器从获取图像信息,执行压缩程序,压缩后的文件通过公共电话线路传递到监控主机端。由于系统采用相同的图像分辨率和常量表,所以文件头都相同,为了减少传输数据量,不传送文件头,文件头在监控主机端由软件自动添加。
    图2  ARM主程序流程图
    本系统还使用调制解调器通过公共电话网来建立远程数据连接,在远程图像监控终端处的调制解调器处于待命状态,它使用"ATS0=3&D0W&W1"命令设置为自动应答方式,在3次振铃后自动摘机,经历"数据风暴"以后与主叫方建立连接。监控中心的调制解调器由监控软件控制拨号建立连接或者挂断连接。
    数据联接建立好ARM会接收到“CONNECT”字符串表明通讯线路连接成功,此时就可以像使用普通串口一样使用调制解调器建立的远程数据连接。ARM接收到从监控中心发来的采集命令后,依次完成图像采集、压缩处理,然后通过串口以ASC码形式直接发送图像数据到监控中心,完成一次操作后等待下一个采集命令。
    结语
    本文是完全针对低设备成本、低运行成本和超远距离的图像监控系统应用提出的解决方案,前端使用便宜的一体化高集成数字化视频采集模块,简化了系统前端的设计,大大降低了前端成本;信号处理使用由高速、高性能的ARM处理器与FPGA芯片构建的嵌入式系统,通过软件来实现图像压缩;最后经由公共电话网来实现同城范围内的全数字化远程图像监控。在降低系统成本的同时,提高了系统的灵活性。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

161

帖子

0

粉丝