基于Nios II的CCD采集系统的设计
扫描二维码
随时随地手机看文章
摘要:设计了一种在Nios II处理器上的CCD数据采集系统。电荷耦合器件(Charge-Coupled Device,CCD)采集到的信号经过前端的差分运放处理后再进行A/D转换,转换后的数据存储于外部SDRAM中,被读取后显示在LCD上。本文重点介绍了各器件的电路设计和驱动程序的编写。实践表明,该设计成本低,实时性较高。
关键词:Nios II;CCD;数据采集系统;AD9844A;驱动时序
引言
电荷耦合器件(Charge-Coupled Device,CCD)具有尺寸小、精度高、功耗低、寿命长、测量精度高等优点,在图像传感和非接触测量领域得到了广泛应用。大部分研制的数据采集卡将采集到的数据传入PC机,在PC机上编写程序进行数据处理,这种处理方法速度较慢,不适合对实时性要求较高的场合,且需要较大的平台。现场可编程门阵列(FPGA)由于其丰富的逻辑资源和较容易的硬件编程语言,在数据处理上得到越来越到的应用。本设计在FPGA上给出了一种基于Nios II处理器的CCD采集系统的设计,将采集到的信号经过一系列的处理后直接显示在LCD上,方便且实时性较高。
1 系统硬件设计
1.1 系统硬件结构
如图1所示,CCD采样控制器控制CCD进行采样,得到的信号经放大器AD623处理之后进入A/D采样电路,由A/D采样控制器控制,转换之后的数据存储于片上存储器中。系统所有的控制部分都由Nios II软核来完成,Nios II处理器将片上存储器中的数据逐一读取并进行处理之后显示在LCD上,Avalon总线负责各个控制器模块的数据传输。FPGA选用Altera公司的EP3C5E144C8。
1.2 分模块的设计
1.2.1 TCD1501D模块
根据工程项目的技术要求,本系统选用日本Toshiba公司的TCD1501D作为传感器,该器件是高灵敏度、低噪声和宽动态范围的线阵CCD器件。主要参数如下:
◆光敏像元数:5 000个。
◆像元尺寸:7μm×7μm×7μm。
◆光谱响应范围:300~1000μm。
◆灵敏度:10.4~15.6 V/(Lx·s)。
◆动态范围典型值:3 000 nm。
◆饱和曝光度典型值:0.23 Lx·s。
◆驱动时钟频率最大值:12 MHz。
该器件正常工作的驱动脉冲主要有:复位时钟rs,移位脉冲f1、f2,转移脉冲sh,箝位脉冲cp和采样保持脉冲sp。该器件具有5 000个有效像元,正常工作还需要76个虚设单元信号。由于该器件是两列并行传输,所以在一个周期内至少需要2 538个f1(或f2)时钟脉冲才能完成一帧图像的转移。采用硬件描述语言(Verilog)的输入方式,设计各脉冲产生的程序,各驱动脉冲由基准时钟分频产生。其脉冲参数分别为:f1=f2=0.5 MHz,占空比为1:1,波形为方波,f1、f2在并行转移时有一个大于sh高电平的宽脉冲,脉宽为2 000 ns;复位脉冲rs=1 MHz,占空比为3:1,波形为方波;sh在转移时宽脉冲为1 000 ns;箝位脉冲cp和采样保持脉冲sp分别为rs脉冲的延迟。正确编译后,进行波形仿真,得到的仿真时序图如图2所示。
对比芯片手册要求的时序关系(如图3所示),各时序脉冲均满足芯片手册要求。其中,φ1B、φ2B即图2中的f1、f2,φTE.0就是f1、f2在并行转移时大于sh高电平的那个宽脉冲。
1.2.2 AD623模块
AD623集成了3路运放,可单电源或双电源工作,具有较高的CMRR和极低的电压漂移。除了一个可编程的外接电阻外,所有元件都集成在内部,提高了电路温度稳定性和可靠性。AD623的连接电路图如图4所示,将视频信号及其补偿输出分别送至AD623的反相和同相输入端,在AD623的输出端接一级射极跟随器以增强信号的驱动能力。选用该器件可消除采用普通运放和外围电阻所引起的输出信号的温度漂移。
1.2.3 AD9844A模块
AD9844A是ADI公司的一款面向CCD的完善的低功率单通道模拟信号处理器,具有采样速率高达20 Msps的单通道输入体系结构,这种设计能采样并处理隔行扫描CCD阵列后所得的输出信号。芯片要求的时序图如图5所示,图6为仿真得到的时序图。
AD9844A是集相关双采样、自动增益放大、12位A/D转换于一体的可编程集成芯片,可配置为CCD-Mode、AUX1-Mode等多种模式。其中AUX 1-Mode对交流耦合信号进行采样,没有相关双采样;CCD-Mode可对CCD输出进行CDS处理。CCD帧信号的箝位时序,包括PBLK、CLPOB、CLPDM。其中线性输入箝位电路(CLPDM)用来消除CCD视频信号暗像素电流偏置,要求CLPDM脉冲覆盖整个CCD的48个暗像素;预消除电路(PBLK)用于水平箝位,削弱帧水平转移时所带来的暗电流噪声,要求与sh同时有效;光学暗点箝位电路(CLPOB)用于调整A/D转换后的视频变化和剩余偏差。这3个时序有非常严格的要求,这也是相关双采样箝位电路难于实现的原因。图7是箝位时钟仿真时序图。
内部寄存器描述如表1所列。由于本系统中AD9844A工作于CCD模式,内部操作寄存器、VGA增益寄存器、箝位电压寄存器及采样增益寄存器的设置均为默认值。本设计所要做的是配置控制寄存器,选择同步时钟的极性,实现与时钟发生器的时钟同步,即采样时钟SHP/SHD为高电平触发采样周期,箝位时钟CLP为低电平有效,数据输出时钟DATACLK为下降沿触发。芯片内部寄存器的工作方式通过一个3线串口编程得到。
1.2.4 SDRAM模块
Avalon总线接口的SDRAM控制器结构框图如图8所示。与FPGA片内的SDRAM控制器IP核与外部的SDRAM存储器芯片之间的硬件接口,这些接口包括了SDRAM芯片的时钟接口(clk)、时钟屏蔽接口(cke)、地址总线(addr)、块选信号(ba)、片选信号(cs)、行选信号(ras)、列选信号(can)、写选通信号(we)、数据字节屏蔽信号(dqm)、数据总线(dq)。需要注意的是,PLL输出连接到SDRAM芯片和SDRAM控制器IP核模块工作的两个时钟是同频不同相的。
1.2.5 LCD显示模块
本设计采用的是一款3.5寸320×240的LQ035NC111 TFT液晶屏,此款LCD接口信号归为5类:
①数字信号接口,如RESET、SPENA、SPCLK、SPDAT、Rx、Gx、Bx、HSYNC、VSYNC、DCLK和DE。此类接口主要是传输显示数据给LCD面板。
②液晶的模式设置专用输入接口,包括IF0、IF1、IF2等信号,它们的主要功能就是设置数据传输模式,本设计采用RGB数据传输。
③触摸屏信号接口,是模拟信号,如Y1、X1、Y2、X2。
④电源接口。
⑤背光电源,即VBL+和VBL-。
图9中各个模块设计好后,打开SOPC,添加Nios II处理器、片内存储器、系统ID和LCD显示组件,分配好地址和中断优先级后,然后生成系统。把生成的系统和上面各模块例化到顶层模块中,分配好引脚,做好时序约束,编译整个工程,完成硬件部分的设计。其中顶层模块包括:
◆sys_ctrl模块:系统复位信号和PLL控制模块。
◆tcd1501d模块:CCD系统模块。
◆ad9844a模块:A/D控制模块。
◆sdram模块:SDRAM封装控制模块。
◆sdfifo模块:读/写SDRAM数据缓存FIFO模块。
◆LCD模块:LCD显示模块。
2 系统软件程序
软件程序主要是数据处理和LCD的显示。数据过来后先清屏LCD,接下来就是坐标的一些定位与溢出处理,以满足从左到右、从上到下的显示顺序。
(1)LGD写数据函数
void lcd_wrdb(alt_u16 xaddr,alt_u16 yaddr,alt_u16 cor);
其中xaddr、yaddr、cor分别为X坐标地址、Y坐标地址和显示的色彩。
(2)显示函数
void print_db(alt_u16 row,alt_u16 col,alt_u8 *ptr,alt_u16 cor_b0,alt_u16 cor_q0);
该函数功能为在指定的位置显示数据。
部分主函数程序如下:
结语
本文在Nios II处理器的基础上实现了CCD采集系统的设计,经测试,该方法能较好地采集光电信号,并把图像实时地显示到LCD上,达到了本设计的预期目标。该方案稳定可行,程序操作性强,在图像采集和处理上具有一定的参考价值。