嵌入式数字摄像机配置系统设计
引 言
本文以BASLER A202k面阵CCD摄像机的配置为目标设计嵌入式摄像机配置系统。BASLER公司提供了2种摄像机配置方案:一是利用该公司提供的摄像机配置软件CCT+(Camera Configuration Tool Plus),二是利用该公司提供的二进制配置命令,由用户编程实现。本文采用二进制配置命令,通过设计的嵌入式系统配置摄像机。该摄像机的二进制配置命令帧格式如下:
起始字 描述字 数据段 BCC 结束字
BCC是块检查字(Block Check Character),需要由用户计算。主要的配置命令及其二进制帧格式如表1所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-1.jpg)
![](http://www.eccn.com/xsj07/image/xsj074243w-2.jpg)
表中02h是起始字;03h是结束字。此外还有测试图像命令、选择启动点,视频输出格式选择、水平Binning和竖直Binning等命令。摄像机配置和摄像机特性的关系为:AOI(area of interesting)用于局部扫描的控制,Binning用于分辨率的控制,定时器用于曝光时间的控制等。
1 系统结构与原理
设计的摄像机配置系统所在的图像处理系统框架如图1所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-3.jpg)
其中RS232和RS644是控制通道所用的协议,即摄像机配置系统的通道;LVDS和Camera Link是数据通道用到的协议。
根据所在系统的通道协议和摄像机的配置命令,同时考虑到必要的人机交互,设计了摄像机配置系统3大模块:数据处理模块,对二进制配置命令进行必要的处理;通信模块,通过RS232串口收发摄像机配置命令;人机接口模块,用于对摄像机配置的调节更改以及配置参数的显示。此外还有支持处理器工作的时钟、电源等。系统的结构如图2所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-4.jpg)
系统的工作原理为:处理器接收数据输入,根据接收到的输入执行相应的操作,通过串口读写配置命令,从而达到对摄像机的配置调节,并根据需要显示配置参数。
2 硬件设计
由于高的性价比,单片机广泛应用于信号检测、信号处理、数据采集和控制系统中。设计的系统以AT89C51AC2单片机为处理器,以拨码开关、键盘阵列为调节输入,以数码管作为显示输出。同时利用了键盘/显示芯片Intel 8279简化系统设计。串口芯片选用MAX232A。系统工作时钟为11.059 2 MHz,整个系统采用+5 V单电源供电。系统的硬件结构图如图3所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-5.jpg)
以下介绍开关电路、键盘显示电路的设计和功能分配;串口电路和其他电路为单片机系统的常规电路,故此从略。
2.1 开关电路
利用单片机P1口的直接输入/输出功能,接开关和LED,单片机复位时,P1口皆为高电平,常态为高电平,LED不亮。当某一开关接通时,对应的P1.i口被拉成低电平,对应的LED亮。开关电路及其功能分配如表2所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-6.jpg)
2.2 键盘/显示电路
Intel 8279有键盘处理和自动显示功能。在8279内部有2个RAM:一是键盘FIFO堆栈/传感器RAM,具有自动消抖动和双键互锁功能;另一个是显示RAM,最多可为16个数码管提供RAM。
设计的系统需要用到6个数码管,因此需要扩展8279的扫描输出线。选用3~8译码器74LS138来扩展,同时设8279的工作方式为外部译码方式。由于8279的驱动能力较弱,采用74ls06驱动。数码管编号为D0~D5。D0和D5分别表示显示数据的最低位和最高位,其余类推。
系统中采用30个键盘,编号为S0~S29,代表的操作如表3所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-7.jpg)
3 软件设计
软件系统的总体思想如下:首先对单片机和8279进行初始化,然后通过单片机,把不需要调整的命令送到摄像机对摄像机进行控制;再写进另一部分命令,先给一定的初值,送到摄像机,可以根据需要随时通过键盘进行调整,这部分命令一直存储于单片机的RAM。然后单片机不断查询键盘和开关,一旦有动作,就调用与动作相对应的子程序进行相应的处理。主程序流程图如图4所示。
![](http://www.eccn.com/xsj07/image/xsj074243w-8.jpg)
3.1 存储单元的分配
AT89C51AC2内部有256 b的片内RAM,其中有一半为特殊寄存器,剩下的另一半可供用户自由使用。128 b的RAM不能存储所有的摄像机配置命令。为简化电路,硬件电路不外接RAM,系统采用分时复用策略使用这128 b的RAM。RAM的分配如下:00h到07h是寄存器R0到R7。08h到0fh用以传送开关命令和暂存从摄像机读回的命令;10h到15h用以暂存经过调整要传送给8279的显示RAM的数据;16h到18h用以暂存从命令帧中提取的数据;19h到1ch用以暂存命令数据的上下限。20h之后的RAM,用以存放经常调整的摄像机配置命令。
3.2 数据处理
3.2.1 显示预处理
从摄像机读回的命令中提取的命令值在写进8279显示RAM之前要做一定的调整。为简化程序,在显示子程序中,数据的显示代码(共阴极)只列了从00h到0fh的16个。而命令值的一个字可以是00fh到ffh中的任意一个,从10h到ffh的数值必须转换为00h到0fh的组合来显示,如ffh一个字变为两个字:0fh和0fh。
3.2.2 数据判限和计算
对于大部分的摄像机配置命令,数据段的值只有在一定的范围内或是一定值的组合时才是有效的。但是摄像机本身并不执行这些数据限制的检查。这项功能由软件编程实现。数据计算包括数据值的加一操作和数据值的减一操作。
3.2.3 BCC计算
BCC是命令帧中的描述字段和数据段的按位异或和(XOR),需要在数据处理中计算。
3.3 人机接口
人机接口的软件设计主要是8279的3个基本程序:一是8279初始化程序,二是显示程序,三是键盘处理程序。初始化程序主要是送入各种命令字,给8279送键盘/显示方式命令、分频系数命令和清除命令等,在主程序的初始化部分被调用。显示程序和键盘处理程序在主程序的按键查询部分被调用。
3.4 串口通信
在RAM中开辟发送数据存储区,首址为feedback(开关操作实现)和comdata(键盘操作实现),接收数据的首地址为feedback(与发送分时复用)。用R0存储数据发送的地址;用R1存储发送数据的字节数;用R2存储待发送数据的地址;用R3存储待发送数据的字节数。单片机把数据从接收缓冲器中读出和把数据写入发送缓冲器。通过检测是RI置位,还是TI置位来决定单片机是进行发送操作还是进行接收操作。发送和接收都是通过调用相应的子程序来完成。
4 实验结果
本文的设计在Protel Dxp(硬件设计)和伟福编译器上(软件设计)实现。利用本文设计的摄像机配置系统结合实验室研制的DSP图像采集处理器实现了对BASLERA202k面阵CCD摄像机的实时参数配置调节,为采集高质量的实时图像提供了有力的保证,满足了工程的应用需要。
5 结 论
利用介绍的数字摄像机二进制编程配置方法,以Basler A202K面阵CCD摄像机的配置为对象设计了基于单片机的嵌入式数字摄像机配置系统。该系统可作为嵌入式图像采集和处理系统的子系统,通过少量软件修改可应用于其他摄像机的配置。
评论