|
Design and Implementation of CMOS Digital Camera Configuration and Initialization Abstract: For design and application of high-performance CMOS image sensor industrial digital cameras, the control system design of hardware circuit and software program of FPGA Configuration and Initialization in camera based on MCU AT89LS8252 is presented. Also implemented the extending of Micropower 8-Bit multi-DACs , DataFlash Memory, Temperature Sensor and MCU Program Flash Downloading by AT89LS8252’s SPI, it is typical application of Multi-SPI device extending. Keywords :CMOS Digital Camera;SPI(Serial Peripheral Interface); FPGA Configuration; MCU(Micro Control Unit) 摘 要: 针对高性能CMOS图像传感器的工业数字摄像机的设计与应用,介绍利用高档微控制器AT89LS8252,设计数字相机内部FPGA逻辑配置与初始化的控制硬件电路和软件编程。并应用AT89LS8252的SPI(Serial Peripheral Interface)串行外设接口扩展了多通道数模转换器、Data Flash存储器、温度传感器和MCU的Flash串行模式编程,可以作为多SPI接口外设的典型应用。 关键词: CMOS数字摄像机;SPI串行外设接口; FPGA并行逻辑配置; 微控制器 1.引言 随着CMOS图像传感器技术的不断完善,其性能不断提高,目前很多机器视觉和数字图像处理应用中开始使用CMOS图像传感器设计数字摄像机,CMOS图像传感器具有集成度高,功耗低,数字图像数据输出,控制时序简单等特点。因此本文提出一种利用MCU实现CMOS数字摄像机控制系统硬件电路设计方案。设计中充分考虑到工业相机功能的扩展和相机自身图像预处理功能的二次开发,所以采用高性能的MCU AT89LS8252来实现摄像机内部FPGA(Field Programmable Gate Array)逻辑配置、在线逻辑下载、摄像机参数下载初始化、温度读出等控制功能。 2.CMOS数字摄像机总体系统描述 CMOS数字摄像机机,一般由:图像传感器、时序逻辑产生单元、图像预处理单元、配置初始化控制单元、图像数据输出接口单元五部分组成。下面对各部分简要介绍: CMOS图像传感器的时序逻辑一般由FPGA产生,由3.3V或5V单电源对系统供电,也有一些高级CMOS图像传感器需要外加一组电压较低的参考模拟电压,在系统提供的驱动时序下按像素时钟速率将8bit或10bit的像素数据分单通道和多通道连续输出。设计中应用Xilinx公司的高性能的FPGA XC2VP4来完成驱动时序发生和图像预处理功能。摄像机内部对图像数据进行预处理,有利于上位机图像处理算法的简化,更能够提高图像处理的实时性。根据不同机器视觉应用的需要,可以为摄像机提供多种不同图像预处理方案,如灰度变换、动态范围扩展、中值滤波等,用户可以选择相应的配置文件下载到摄像机中,就能够实现需要的图像预处理功能。高级用户也可以根据自己应用需求,自行开发摄像机内部FPGA图像预处理的算法,嵌入到FPGA配置逻辑文件中,按照设计中的配置方法下载到摄像机中,就可实现用户自己开发的图像预处理功能。数字摄像机图像数据输出接口也有很多种方式,可以采用Camera Link接口、以太网接口、USB接口、1394接口等。 文中重点描述摄像机的逻辑配置和初始化控制单元的设计,以AT89LS8252为控制器完成对FPGA的并行配置功能,应用MAX3232串口芯片和上位机通信,完成接收FPGA配置文件和初始化摄像机的参数,并将摄像机内部温度数据发送给上位机。LT1665产生一组CMOS传感器需要的8路模拟参考电压。应用Data Flash AT45DB041B保存FPGA上电配置文件。温度传感器MAX6630可获得摄像机内部的工作温度数据,对于摄像机工作环境温度过高的情况,可以向上位机发出报警,并采用制冷措施。摄像机总体结构,见图1。
3.FPGA并行逻辑配置的MCU实现 设计中应用Xilinx FPGA XC2VP4为时序逻辑控制单元和图像预处理核心,因此每次FPGA上电开始工作前必须将配置文件加载到FPGA内部的SRAM中,这个过程就是FPGA的逻辑配置(FPGA Configuration)。为实际应用和摄像机图像处理功能二次开发需要着想,采用并行逻辑配置的方法,可以减少摄像机的配置时间。设计中使用高档MCU AT89LS8252作为摄像机的控制器,实现RS232串口下载配置文件在电路逻辑配置ICR(In-Circuit Reconfigurability)功能。为摄像机的使用者开发摄像机FPGA图像预处理功能提供了方便的配置方法,从而不用使用FPGA专门的配置芯片和配置电缆,减少了摄像机的端口,提高了摄像机的性能。 AT89LS8252是低功耗、高性能CMOS 8位 微控制器,内含8KB的Flash程序存储器可用SPI串行接口总线进行程序下载和2KB的EEPROM,256B的片内RAM,32线可编程I/O,3个定时器,9个中断源、6个中断矢量,可编程UART串口,具有低功耗节电方式,可低电压供电、工作电源范围2.7~6V,最高工作频率为12MHz,可编程看门狗定时器WDT,双数据指针DPTR0和DPTR1,具有断电标志位POF,SPI外围器件扩展串行口[1]。设计中选用体积最小的44引脚TQFP贴片封装AT89LS8252_12AI,工作电压为3.3V,工作频率为11.0592MHz。所有器件都使用3.3V单电源供电,采用3.3V CMOS数字电路逻辑电平。单片机的引脚定义和FPGA配置接口电路的实现见图 2。
 Xilinx FPGA 有5种配置模式,本设计中使用的是被动并行配置模式(Slave SelectMAP Mode),这种模式的优点是在相同的配置时钟下比其它串行配置模式速度都要快。串行配置方式MCU需要8个机器周期配置一个字节,而并行模式只需要一个机器周期配置一个字节。被动并行配置方式过程:首先系统检测电源,HSWAP_EN信号把用户定义I/O引脚上拉,INIT、DONE为低后配置存储器清空。然后检测PROG_B是否由低变高,若为高电平再一次清除存储器。释放INIT_B,采样配置模式引脚设置,接下来进行数据并行逻辑配置[2]。AT89LS8252可以把存储在Data Flash AT45DB041B中的配置文件读出按照上述配置时序来进行配置。 4.系统初始化和扩展SPI外设器件设计 摄像机启动逻辑配置成功后,需要对系统进行初始化,也就是对摄像机的一些功能参数寄存器进行设置。根据摄像机工作过程和功能一般有如下一些需要初始化的功能参数: 摄像机工作模式参数:有FreeRun模式、测试图像输出模式,外部触发模式等。 传感器输出帧频参数:控制传感器每秒钟输出图像的帧数。 传感器积分时间参数:控制传感器一帧图像的曝光时间。 输出图像AOI参数:对传感器靶面中感兴趣区域图像的输出,需要设定行和列两个参数。 图像数据输出位数参数:对于高精度的图像传感器,可以选择8bit,10bit,12bit图像输出。 Digital Shift功能参数:对传感器像素N bit的数值进行左移或右移操作后输出。 Binning模式输出参数:有水平Binning,垂直Binning,全幅Binning。Binning就是一种像素合并技术,把相邻的两或多个像素值合并成一个像素值,降低了图像分辨率,但是能够提高摄像机的感光灵敏度。 参考电压参数:包括增益电压参数、偏置电压参数、自校准电压参数。虽然CMOS图像传感器已经把ADC器件集成到传感器内部,但是在摄像机不同的工作情况下,还需要改变这些参考电压,使摄像机输出用户满意的图像。设计中使用的LT1665可以输出8路0~3.3V模拟参考电压。 这些初始化参数的寄存器,一部分是设置在FPGA中,另一部分是外设器件的工作寄存器。但是这些寄存器中的参数,在每次掉电后会自动清空,因此设计中使用AT89LS8252的EEPROM来保存这些参数。参数由RS232串口接收按参数地址存入EEPROM,使用MCU的双DPTR,DPTR1写入,DPTR0读出,使得对EEPROM的读写更加便捷。每次参数下载成功或上电后,由初始化程序把EEPROM的参数通过MCU和FPGA之间的数据总线和地址总线写入参数寄存器,其它外设器件的参数寄存器由SPI总线写入。 因为FPGA信号CS_B、RDWR_B、BUSY、INIT_B 、D0-D7在逻辑配置结束后可作为普通用户定义I/O,所以在配置结束后这些引脚被定义为MCU和FPGA初始化的数据总线(P0口)和地址总线(P2口)。 SPI(Serial Peripheral Interface)是MOTOROLA公司推出的一种同步串行外设接口,允许MCU与各个厂家生产的标准外围设备直接接口,以串口方式交换信息。SPI使用4条线:串行时钟SCK,主机输入\从机输出数据线MISO(简称SO),主机输出\从机输入数据线MOSI(简称SI)和低电平有效的从机选择线CS[1]。MCU与外设器件的SCK、MOSI、MISO、都是同各端相连。扩展多个外设器件时,SPI无法通过数据线译码选择,故SPI接口的外设器件都有片选端CS,MCU通过不同的I/O口线来分时选通相应外设器件。设计中SS为DataFlash器件的片选信号,TCS为温度传感器的片选信号,VCS为多路DA器件的片选信号。图3为SPI外设器件扩展电路原理图。 SPI串行扩展系统中MCU作为主器件,启动一次传送时产生8个时钟由SCK送出,作为同步时钟控制数据的输入与输出,对于不同的外设器件,SCK的上升沿还是下降沿进行输入输出操作是不同的,有四种操作模式。4种SPI操作模式和LSB在先输出或MSB在先输出、主从模式、SPI时钟速度选择都可以在MCU的SPI控制寄存器(SPCR)中设置,其中CPHA、CPOL是设置时钟SCK相位和极性,决定SPI的操作模式。设计中使用了三种操作模式,DataFlash器件工作在模式3、温度传感器工作在模式1、多路DA器件工作在模式0。 5.软件设计 完成系统逻辑配置和初始化的软件设计包括两部分:MCU的汇编语言编程和PC上位机的VC编程。 5.1 MCU程序设计 AT89LS8252按照图4的主程序流程图来完成逻辑配置和摄像机的参数初始化。下面详细阐述一下FPGA配置文件下载到DataFlash的程序设计。因为AT45DB041B的存储空间为4,325,376bit,完全能够存储3,006,496bit的配置文件。AT45DB041B内部存储结构是将整个存储空间分为2048个page,每个page为264Byte,经由两个264Byte的buffer来实现连续的数据写入。过程是先进行写buffer1操作,然后发由buffer1写page命令,在buffer1写page的同时进行buffer2操作,当buffer2写完后再发由buffer2写page命令,再一次进行buffer1的写操作,如此反复操作实现了AT45DB041B的连续快速写入。读出时可以用连续阵列读命令就可以完成配置文件数据连续读出。

5.2 上位机编程 上位机客户端程序通过Visual C++软件编写,完成配置文件按page容量264字节的分割串口传送,初始化参数串口传送,按串口通信协议发送接收控制命令字,配置文件初始化参数的回读校验,用户窗口界面等功能。 6.结束语 设计中充分利用AT89LS8252的SPI接口、EEPROM、双DPTR、可编程UART串口等资源,是该高档MCU的设计的典型应用。创新应用高档MCU AT89LS8252对FPGA并行配置的方法,CMOS摄像机参数初始化的方法,多SPI外设器件扩展的设计,为高性能CMOS数字摄像机的研究和FPGA图像处理核心的二次开发建立了功能全面的控制系统,并且为其它数字摄像机系统设计应用系统提供了成功范例。 参考文献 [1] 王幸之,钟爱琴等. AT89系列单片机原理与接口技术. 北京: 北京航天航空大学出版社, 2004. [2] 孙航. Xilinx可编程逻辑器件的高级应用与设计技巧. 北京: 电子工业出版社, 2005. [3] 王文兴, 颜国正. 串行DataFlash存储器及其与单片机的接口. 单片机与嵌入式系统应用. 2003年07月. [4] 易志明, 林凌等. SPI串行总线接口及其实现.自动化与仪器仪表. 2002年第6期. [5] 王艳,李秀华. 基于单片机的现场可编程门阵列的配置.微计算机信息.2005(8)文章编号:1008-0570(2005)8-2-0104-02. 作者简介: 孙宏海(1980-),男,博士研究生,研究方向:实时数字图像处理,高帧频数字摄像机的研究。 王延杰(1963-),男,研究员,博士生导师,研究方向:数字图像处理系统的研制和开发。 E-mail:shh@jlmc.com.cn 通信地址:长春光学精密机械与物理研究所图像室,长春市东南湖大路16号,130033
|