APP下载

基于ARM微控器LPC2132嵌入式球机控制系统设计

2010-08-23庄志红

制造业自动化 2010年11期
关键词:字节菜单摄像机

庄志红,伍 峰

ZHUANG Zhi-hong1, WU Feng2

(1. 常州工学院 电子信息与电气工程学院,常州 213002;2. 常州神采电子有限公司,常州 213002)

0 引言

进入21世纪,随着经济的快速发展,安防监控市场逐年旺盛,巨大的应用市场、产品丰厚的利润,吸引着许多企业涉足这一领域,随之竞争也更激烈。球机作为安防监控系统中最关键的设备,不但要求性能可靠性、功能完善,更要求使用方便、灵活,成本低廉。

1 球机系统结构

系统以LPC2132作为控制核心,通过485总线接收上位机(如:硬盘录像机、键盘等)所发出的操作命令,根据协议(如PelcoD协议、P协议等)对此进行解码分析,主要实现两大类功能:一是控制两只步进电机,带动球机实现左右360°无限位旋转和上下90°转动;通过协动两只电机动作,带动摄像机进行全方位监控;另一是视频信号和镜头动作控制,根据要求叠加适当的字符、动态反映现场信息,镜头的FAR/NEAR、OPEN/CLOSE、WIDE/TELE等功能控制。

系统中铁电存储器用于存储协议信息(包括通信协议、摄像机控制协议)、预置点信息、轨迹信息等等,实现预设的轨迹巡航、自学习运动等。为了使得系统夏天冬季、室内室外都能正常工作,系统中采用温度传感器感知摄像机工作环境温度,通示控制风扇、加热器实现恒温控制,使球机更具适应性、可靠性。此外,系统接受双鉴探头所发出的报警信号,控制声光机构,实现报警联运功能。系统结构框图如1所示。

图1 系统结构框图

2 硬件系统设计

2.1 ARM7微控器LPC2132

LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-STM CPU 的微控制器,片内Boot装载软件可实现在系统/在应用中编程(ISP/IAP)[1];借助EasyJTAG仿真器,在ADS1.2集成开发环境下,可实现程序固化、仿真等功能,研发成本非常低廉。

LPC2132带有64KB高速Flash存储器、16KB的静态RAM、1个8路10位A/D转换器、1个10位D/A转换器、2个16C550工业标准的UART、2个高速I2C 接口及SPITM和SSP串行接口、2个32 位定时器/计数器、通过片内PLL可实现最高达60MHz的CPU操作频率,这些优异性能对简化系统结构、嵌入实时操作系统,铺垫了良好条件。

由于球机一方面通过串行口与上位机通信,接受上位机所发出的各种命令、实现相关动作;另一方面借助串行口,完成对摄像机的镜头、图像等控制;所以LPC2132双串口性能正好满足系统控制要求。

2.2 字符叠加芯片MB90092

安防监控场合一般是由一个主机 (监控室)和众多球机 (监视点)构成的分布式系统,球机参数经常要根据控制场合、对象等要求进行修改,而球机一般安装在高处或隐蔽处,参数修改只能通过远程操作来完成。在视频信号中叠加菜单、通过菜单修改参数是工程中最方便、最实用的方案。

MB90092是日本富士通公司推出的一款字符叠加芯片,内部集成了显示内存(VRAM)、外挂字库接口和视频信号发生器,外部只需连接少量的元件就可以显示汉字和图形[3],其主要性能有:双屏显示功能,主屏和子屏可单独或重叠显示;显示容量:24字符×12行、多种模式字符,三线接口实现与外部控制系统通信,等等。

利用MB90092最多可实现显示288个字符,可设计出显示信息量较丰富的菜单,利用此菜单完成球机系统相关参数设置,具体参数包括:1)摄像机参数:图像色彩、冻结、镜像,帧累积功能、背光补偿、低照度,光圈、变倍、对焦,亮度、锐度、白平衡等等;2)预置点参数:监控点位置(左右、上下)、摄像机ZOOM值、位置点特征标题等;3)隐私遮蔽参数:区域、大小、色彩、开关状态等;4)轨迹参数:预置点号、速度、停留时间等;5)巡航参数:起点、终点、速度、时间等;6)报警参数;7)温控参数;8)其他参数:口令、制式、显示语言、ID等等。

2.3 步进电机驱动芯片A3980

高速球系统中所选用的摄像机一般是性能较强的一体化摄像机,不仅有光学变焦还有数码变焦能力,如一款SONY FCB-EX480CP机芯,其18倍光学和12倍数码变焦,可实现将监控对象放大216倍(即18*12),所以球机系统实际上是定位要求非常高的系统,定位稍有偏差,图像就会“跑出”监视器。

A3980是Allegro公司推出的一款内置功率驱动的步进电机驱动电路,它可以整步、半步、1/8步和1/16步等四种工作模式来控制双极性步进电机,且具有带迟滞作用的热关断、过压关断、低电压关断和交叉电流保护等内部保护电路,芯片最高可达1A/35V驱动能力[6]。

A3980四个输出脚可直接接到步进电机的四个电极,设置MS1、MS2二引脚状态,最高可实现16细分;只要控制方向脚DIR和脉冲脚STEP,就可实现利用A3980完成对步进电机的控制,使用非常方便, 如图2所示。借助细分驱动方式,并结合系统齿轮和同步带减速,可以实现非常高的定位精度。

图2 电机控制原理图

2.4 其他电路

FM24CL64是一引脚与AT24C64完全兼容的铁电存储器,其不但具有一般E2PROM的优点,更主要是写入后无需延时等待(一般E2PROM写入后要延时几ms才能继续写入下一页),可大大提高系统数据存储的实时性。

数字温度传感器、风扇、加热器组成一套恒温控制系统,使得球机无论夏天在室外,还是北方的冬天,摄像机都可工作在较合适的温度环境,这样不但提高系统的可靠性,还延长了使用寿命。

3 控制软件设计

3.1 开发平台

常见的嵌入式操作系统有Linux、Windows CE、uC/OS-II等,其中uC/OS-II是一个可移植、可固化、可裁剪的占先式实时操作系统[5],相对其它操作系统而言,uC/OS-II正常运行只需十几或几十KB的Flash空间和SRAM空间,并且其所需的授权费用也相对较低。

ADS集成开发环境是ARM公司推出的ARM核控制器集成开发工具,ADS1.2是目前公认较成熟的版本,它支持软件调试和JTAG硬件仿真,支持C和C++源程序。

3.2 MB90092控制

MB90092共有13种指令和2种保留指令,每条指令都由两个字节组成,其中第一个字节的高5位是命令码,其余位和第二字节是数据。图3所示是MB90092的接口时序图。当 引脚为低电平时,MB90092在每个时钟的上升沿从最低位开始由SIN引脚一位一位读取数据;读完一个字节后, 和SCLK引脚置为高电平, 然后 引脚变为低电平,并开始读取下一个字节;为了保持字节同步,在开始传输串行数据之前, 引脚应先置为高电平,然后再置为低电平。另外,除刚上电时外,在串行数据传输之前,SCLK引脚应强制设为高电平。

图3 MB90092接口时序图

3.3 电机控制

为了提高控制精度,本系统选用的是16细分工作模式,即将A3980 的MS1、MS2引脚接高电平。步进电机最大相电流Imax由基准电压Vref和取样电阻Rs决定:Imax=Vref/(8×Rs)。细分驱动时实际相电流波形和每拍时电流值(占最大值Imax的百分比)如图4所示。

步进电机的位置由CPU向A3980 的STEP脚发出的脉冲总数决定;进退通过DIR控制;转速由LPC2132中的定时器控制。通过对三个参数的控制,实现系统的快速、准确定位。

图4 相电流波纹形及百分比

3.4 uC/OS-II在LPC2132的移植

系统移植建立在广州周立功单片机发展有限公司所提供的专用工程模板[4]:ARM Image for uC/OS-II for ARM2131基础上,该模板包括以下几个文件组:scf文件组、*.h文件组、arm文件组、target文件组、uC/OS文件组和用户文件组:

scf文件组包含:mem_a.scf、mem_b.scf和mem_c.scf,为分散加载描述文件,实现ADS的分散加载机制。

*.h文件组包含:OS_CFG.H、INCLUDES.H、uCOS_II.H、config.h、target.h、os_cpu.h、LPC2294等头文件,用于定制操作系统、宏定义、文件包含操作等。

arm文件组包含:os_cpu_a.s、os_cpu_c.c,为uC/OS-II在LPC2132上的移植代码,包括任务堆栈初始化代码、钩子函数、软中断服务函数。

target文件组包含:target.c、IRQ.s、Startup.s文件,实现目标代码、中断句柄、启动代码定义。

uC/OS文件组包含uC/OS-II实时操作系统的全部文件,用户可以据实进行剪裁。

用户文件组为包含主函数文件main.c在内的用户所编写的源文件。

“任务划分”是实时操作系统应用软件设计的关键,直接影响软件设计的质量[2]。本系统任务包括:与上位通信和解码任务void TaskCPU(void*pdata)、摄像机控制任务void TaskCamera(void*pdata)、定时器速度和电机位置控制任务void TaskMotor(void *pdata)、菜单系统任务void TaskMenu(void *pdata)、温度采样任务与控制任务void TaskTemp(void *pdata)、数据存储任务void TaskEEPROM(void *pdata)等。利用main()函数进行系统初始化,创建数据存储任务读取有关参数,调用启动函数OSStart()启动相关任务执行。

表1 球机运动测试数据

4 系统调试

按照先主后次、先易后难原则,调试采用以模组为单位分组进行,参数调试采用先固定再可变、通信采用先模拟再在线等方法,分别实现电机控制、摄像机通信、上位机通信、菜单系统及温控、报警联动等功能,表1为球机系统运动参数。

5 结束语

嵌入式实时操作系统有助于提高系统可靠性和开发效率,且能够充分发挥32位CPU的多任务处理能力,处理器嵌入操作系统系统进行开发也成必然趋势。基于LPC2132所设计球机,已成为常州神采电子有限公司的主打产品,其优良性能得到众多用户的认可。

[1]周立功,等.深入浅出ARM7—LPC213X/214X[M].北京:清华大学出版社,2005.

[2]周航慈,等.基于嵌入式实时操作系统的程序设计技术[M].北京:北京航空航天大学出版社,2006.

[3]陈炳煌.基于MB90092的视频字符叠加技术[J].单片机及嵌入式系统应用,2008.

[4]吴振谦.μC/OS-II在LPC213X上的多种移植方案[J].单片机及嵌入式系统应用,2007.10.

[5]Jean.Labrosse.MicroC/OS-II The Real-Time Kernel,Second Edition[M].Published by CMP Books,CMP Media LLC,2002.

[6]A3980 Automotive DMOS Microstepping Driver with Translator Datasheet[Z].Allegro Micro Systems,Inc.

猜你喜欢

字节菜单摄像机
No.8 字节跳动将推出独立出口电商APP
中国新年菜单
No.10 “字节跳动手机”要来了?
基于MSP430的四旋翼飞行器的S-BUS通信协议的设计与实现
摄像机低照成像的前世今生
本月菜单
新安讯士Q6155-E PTZ摄像机
如何消除和缓解“摄像机恐惧症”
一个“公海龟”的求偶菜单
人类进入“泽它时代”