您的位置:首页 > 移动开发 > IOS开发

基于NIOS II处理器的面阵CCD采集系统设计

2009-10-09 09:27 155 查看
SOPC (片上可编程系统)是Altera公司提出的一种灵活、高效的SOC解决方案,能将处理器、存储器、I/O 口等系统设计需要的功能模块集成到一个PLD器件上,构建一个可编程的片上系统。本文介绍的面阵CCD采集系统,利用Altera的SOPC Builder定制的NIOS II软核处理器及与采集相关功能的“软” 硬件模块来实现信号的采集。它与目前具有同样功能的CCD采集系统相比,具有灵活、稳定、易升级、易维护等优点。本系统的实验在现有的数码相机平台上进行。
1 系统设计
系统原理框图如图1所示。目标物经光学镜头成像于在RJ21P3AH0PT的光敏面上,产生电荷包强度分布的图像,RJ21P3AH0PT为隔列转移面阵CCD,在四相垂直驱动脉冲和两相水平驱动脉冲来驱动下,通过CCD内部将光信号转化为电信号。当LR38642的时序发生器对其施加特定时序脉冲时,每个像素的电荷信号将被依次移出CCD,并经放大变成电压幅度不等的模拟视频信号OS。OS视频信号送到LR38642的模拟前端电路并转换为数字信号,在NIOS II处理器的控制下通过自定制的CCD采集控制接口以及NIOS II处理器的Avalon总线,将图像数据高速地存储到外部存储器SDRAM中。




2 系统硬件及功能模块
2.1 CCD芯片及专用控制芯片LR38642
本系统面阵CCD采用夏普公司的RJ21P3AH0PT 图像传感器,如图2所示,它为1/1.8英寸,330万象素(2096*1560),有效象素为321万(2080*1544)。它具有高感广度,暗电流非常小,要求的水平驱动脉冲频率为18MHz,需要4相垂直驱动脉冲和两相水平驱动脉冲来驱动。对其驱动控制选用专用集成控制芯片LR38642,它集成了时序发生器(LR38617)、垂直驱动器电路(LR36685)以及模拟前端模块(IR3Y48A1)等功能,如图3所示。






2.2 NIOS II处理器
本系统中FPGA选用Altera Cyclone EP1C6Q240,在实现对NIOS II处理器硬件开发时,使用嵌入在QuartuslI中的SOPC Builder来创建相应“软” 硬件,通过NIOS II Development Kit来实现相应模块之间的开发,为实现面阵CCD的采集所选用的相应外设自己定制,其中CCD采集控制IP 自定制。具体外设架构及内核结构框图如图4所示。



2.3 外同步行、场信号控制模块
CCD芯片驱动控制及ADC采集的关键在于对时序的控制,特别是外同步HD、VD的控制要求很高,我们的系统中,采用计数分频方式实现HD、VD 信号的产生,考虑到EP1C6Q240本身资源有限,我们在NIOS处理器外用CPLDEPM7128AETC100-10来定制同步信号IP核,同时此芯片中还包含有自动(手动)变焦控制,CCD 加(掉) 电控制等模块。该模块的关键在于行、场消隐以及行、场信号之间的对应关系,如果HD、VD信号不精确,系统将无法控制得到CCD的正常输出信号。该模块的时钟HVCLK信号为36MHz晶振信号CKI经LR38642内部的2分频后而得到,控制采集时由NIOS II发送一启动控制信号START来启动外同步行、场信号控制电路。
2.4 SCCB控制模块
SCCB总线控制是I2C总线的一种,仅靠两根连线就能实现全双工同步数据传送:一根串行数据线(SDA),一根串行时钟线(SCL),在数据传输过程中严格依I2C总线协议,在我们的系统中,考虑到SOPc Builder中通用桥模块中没有Avalon Wishbone桥,我们利用PIO口模拟I2C总线方式来传送控制字。对于该面阵CCD采集控制时SCCB控制用两次,
第一次:通过ED0~ED2来设置LR38642中相应的寄存器组来产生CCD所需要的驱动脉冲以及对控制电子快门等。这一过程在上电复位时进行,ED0为启动控制信号,当ED0启动有效后,由ED1传送时钟脉冲,由ED2传送数据,当25位控制字符写到LR38642中相应的寄存器后,时序发生器电路产生不同垂直驱动脉冲组合及相关功能。
第二次:在采集控制时,通过控制CSN、SCK 以及SDATA实现PGA 控制,双相关采样控制,黑电平补偿以及ADC的转换等功能。每次写入之后,为验证写入正确与否,把相应寄存器的数据读出并与写入的数据比较,如果相同,说明写入正确,否则写入错误。图5给出了上电复位时实际配置波形。




2.5 ADC采集控制及存储模块(以帧累积模式为例进行说明)
在帧累积方式下,采集控制时,先从CCD光电转换器读出模拟数据,通过VD 给CCD 一个长度为T1 (T1=9×55.7ns×2640,其中2640为一个HD的时钟CLK数,每个CLK为1/18M=55.7ns,9为保持9个HD) 的低电平,在VD)变为高电平时,CCD 在CLK 的同步控制下,HD先维持260个行消隐时钟的低电平,随后HD变为高电平,经464个时钟的积累时间,再经过24个时钟哑元象素,2个时钟黑电平象素输出后,在CLK 的同步控制下输出2096个有用象素,输出完有用象素后,再次进入行消隐阶段,(进入行消隐的前54个时钟输出的为黑电平象素) 为下次行输出做准备。在帧累积模式下采用奇偶两场分别输出,每场848个HD,其中场消隐9个HD时间内VD为低电平,随后VD变为高电平,经58个HD场累积时间,以及2个HD的黑电平象素后,在HD的同步控制下,输出780行有用象素,后再次进入场消隐阶段进入行消隐的前5个时钟输出的为黑电平象素),依据先奇行后偶行的顺序串行输出视频OS信号。当传输完2096*1560个像素时表明当前一幅图像传输完毕,对于判别是否开始传输以及是否传输完毕,在我们的系统中,通过自定义的CCD采集IP核来对数据作出判断。
自定义的采集IP核依HD、VD信号确定什么时间开始为有用信号、什么时间为结束有用信号,什么时间表示一场(一行)数据开始(结束)等功能,知道了开始传输、结束传输、行(场)开始与结束等信息后,在NIOS II处理器的控制下,可以依IORD宏指令很容易将数据写到SDRAM中。在我们的系统中SDRAM 选用采用HYNIX公司的HY57V561620CT-H型SDRAM存储器。它的容量是256Mbit(16M *16bit),速度可以达到133M赫兹。为便于开发系统中SDRAM 控制器选用SOPCBuilder中的IP核。
下面给出基于自定义采集IP核以及GPIO读写宏指令实现数据采集的部分程序代码。
……
while (IORD_ALTERA_AVALON_PIO_DATA (CCD_VD_ADDR)== 0x00);//场消隐(场逆程)
while (IORD_ALTERA_AVALON_PIO_DATA (CCD_VD_ADDR)== 0x01);//场正程,开始新的场CCD_VD= IORD_ALTERA_AVALON_PIO_DATA (CCD_VD_ADDR);
while(CCD_VD ==0x00)//等待场消隐开始写入SDRAM ,如为场正程则不写入SDRAM
{
while ((uchar)(IORD_ALTERA_AVALON_PIO_DATA (CCD_CLK_ADDR))== 0x00);
*SDRAM_Point=IORD_ALTERA_AVALON_PIO_DATA (CCD_VD_ADDR);
SDRAM_Point++;
}
2.6 CCD智能电源控制模块
由于面阵CCD正常工作有严格的加(掉)电顺序,所以必须严格按技术文档要求按规定加(掉)电,对于电源模块,我们选用了MAXIM 公司的Max685,Max687分别提供+15V,-9V 和+3.3V。为确保加(掉) 电顺序,EPM7128AETC100-10内设计的电源控制模块(EPM7128供电+3.3V 与CCD供电模块分开),在系统上电后,当按下POWER键时控制Max685的SEQ 为高电平时,随后Max685在SHDN及SYNC的控制下先输出+15V,后输出-9V,而后控制Max687的SHDN 为高电平控制输出+3.3V。关闭(掉电)时,按下POWER键先控制Max687的SHDN 为低电平,关断+3.3V,后设Max685的SEQ 为低电平时,在SHDN及SYNC的控制下控制先关断-9V,再关断+15V。

3 系统软件
本采集系统模块的软件主要有两部分:一是基于NIOS II的PIO 口实现模拟I2C总线功能,一是图像数据写入到SDRAM。其程序流程图分别如图7、图8所示。







4 结束语
该面阵CCD采集系统利用NIOS II作为FPGA 嵌入式处理器的解决方案,能较容易地实现面阵CCD图像的采集,由于采用“软”硬件实现面阵CCD的开发,调试过程中能不断更改“软件”就可达到改进硬件功能目的。经实验测试,在帧累积模式下可实现1.6s采集一幅静止图像。同时由于面阵CCD采集系统本身是一个复杂系统,不确定因素较多,如变焦控制、电磁兼容性等,对该系统还有待作进一步的研究。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: