美章网 资料文库 线阵CCD数据采集论文范文

线阵CCD数据采集论文范文

本站小编为你精心准备了线阵CCD数据采集论文参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

线阵CCD数据采集论文

1系统硬件电路设计

1.1TCD1208AP驱动电路TCD1208AP是一种二相双沟道线阵ccd图像传感器芯片,其驱动信号如图2所示。四路驱动信号分别为:转移脉冲SH,复位脉冲RS,时钟脉冲Φ1、Φ2。SH为高电平时信号电荷转移到CCD模拟移位寄存器,SH跳变为低电平后在时钟脉冲Φ1、Φ2交变作用下OS逐个按位输出像元电压信号,随后发出RS脉冲去掉信号输出缓冲器中的残余电荷为下一像元电压输出做准备。根据传感器结构安排,TCD1208AP在一个采样周期中首先输出40个哑元信号,之后输出2160个有效像元输出,其后又输出12个哑元信号后一个输出周期结束,因此一个采样周期中至少包含2212次时钟信号交变和2212个复位脉冲RS。CCD传感器对驱动信号的频率有严格要求[2],其时钟特性如表1所示。STM32驱动信号产生方法有两种:a.设定通用定时器产生;b.直接设置IO口模拟。第一种方法计时准确,通过设置相应定时器的预分频寄存器精度可达0.05μs,但通用定时器同步困难,需要使用中断来实现,操作困难且由于CCD交变时钟信号工作频率高而难以保证准确同步[3]。系统采用库函数直接设置CPU寄存器控制IO口的方法输出驱动信号,通过设置锁相环PLL,STM32的指令执行速度高达72MHz,克服了以往单片机直接驱动频率低的问题。IO跳变时间只有28ns,采用CPU空指令_nop()延时,精度为13ns,完成一个采样周期最快只需5ms左右,通过库函数设置相应GPIO口的GPIOx_BSRR寄存器实现相应端口同时输出高或低电平可以确保各端口满足驱动信号同步性要求。通过分析TCD1208AP驱动信号时序图可以看出除去SH中断位在一个Φ1或Φ2周期内可以将信号分为6种状态[4],如图3所示,Φ1、Φ2相位相反,周期为2倍的RS。因此可以采用循环状态分割法让STM32周期性的输出大于1106(2212/2)个Φ1周期内的这6种状态即可完成一次采样。根据图3可以列出各状态的时序变化值,如表2所示。通过调整每种状态的延时时间进而得到复合CCD传感器驱动信号频率要求的信号,在实际测量中,延时函数的输入参数可以随时调整,以取得最佳采样结果。STM32的引脚输出高电平为3.3V,输出信号经由74LS04P芯片组成的电平转换电路放大到5V后接入CCD传感器相应引脚,以满足传感器对驱动信号电平的要求。调整延时函数的输入参数,在示波器上可以得到输出驱动信号的时序图如图4所示。

1.2传感器输出电压处理电路CCD正常工作时有两路输出信号:输出信号OS和补偿信号DOS,但该信号有效信号幅值小,且存在周期性的复位脉冲串扰。系统采用差分运算方式处理输出信号,差分运算放大器选用AD公司的AD8031芯片,它是一款低功耗、高速的单电源电压反馈性放大器,小信号带宽为80MHz,压摆率为30V/μs,建立时间为125ns。采用+5V电源时,对于2V峰值、1MHz输出信号的总谐波失真(THD)为-62dBc,完全可以满足系统需要。将CCD的输出信号OS和补偿输出信号DOS分别接到芯片的+IN引脚和-IN引脚可以有效去除OS中含有的复位噪声。由于AD8031差分运算放大器的最小放大倍数为1,CCD传感器的最高模拟电压输出为5V,而STM32芯片内集成A/D转换器的外接参考电压VREF+为3.3V,因此需要对经过差分处理的模拟信号进行降压处理以满足A/D转换器的量程要求。输出电压信号处理电路如图5所示,图中R1=R2=R3=R4=10kΩ,R6=2R5=20kΩ。[5]线阵CCD传感器输出信号频率高,因此需要AD传感器有较高的转换速率,系统将时钟ADCCLK配置为9MHz,同时把所用ADC1通道11配置为7.5个采样周期,根据STM32的ADC采样时间计算公式:TCONV采样周期+12.5个周期[6]得系统所用ADC1转换通道的转换时间为:TCONV=(55.5+7.5)×1÷9=7μs,完全满足线阵CCD传感器对转换速率的要求。同时将ADC1设置为自动DMA传输模式,每次转换完成后会自动开启DMA传输功能将所得数据采用硬件方式转移到STM32内存预设位置的数据存储数组中,这个过程不需要CPU的参与,不影响CPU产生驱动信号。ADC1采用软件启动模式,编程时在时序状态变化表的特定时刻插入ADC_SoftwareStartConvCmd()库函数启动ADC转换。

1.3触控液晶显示器电路设计系统采用2.4寸(240×320)TFT液晶显示器,由于STM32内部没有集成专用的液晶屏和触摸屏的控制接口,所以需要外接专用芯片来控制显示面板,系统采用ILI9325和TSC2046芯片。由STM32的FSMC(静态存储控制器)的NOR/PSRAM模式模拟产生ILI9325的8080接口通信时序,通过对FSMC的操作向ILI9325写入控制命令或GRAM数据。通过配置STM32的SPI接口向四线电阻触摸屏控制器TSC2046写入控制字和接收控制器返回的屏幕X、Y方向的触电电压值。

2系统软件设计

根据系统硬件功能设计,系统软件主要有3个模块组成:驱动信号产生模块、数据处理模块、液晶显示模块。为了使3个模块协调运行、更好地管理微处理器及缩短软件开发周期,系统在STM32微处理器平台上移植了μC/OS-Ⅱ实时操作系统[7]。根据所完成任务性质及特性的不同,3个模块有不同的优先级及运行频率,其中驱动信号产生模块拥有最高优先级,可剥夺型的实时内核在任何时候都运行就绪了的最高优先级任务,数据处理模块的运行是基于驱动信号产生的基础之上,优先级次低,窗口显示模块对实时性要求最低,可设置最低的优先级。驱动采样任务、数据处理任务及显示任务的流程如图6所示。液晶显示处理任务负责及时按指定格式显示出处理后的数据及完成通过触摸屏控制系统的运行启停等人机交互任务,为了简化开发步骤和提高程序开发效率,系统在μC/OS-Ⅱ操作系统的基础上移植了uCGUI嵌入式图形支持系统。uCGUI设计用于为任何使用LCD图形显示的应用提供高效且独立于处理器及LCD控制器的图形用户接口。uCGUI可以在任何的CPU上运行,因为它是100%的标准C代码编写的。系统的控制显示界面如图7所示。

3结语

系统采用高分辨率、高灵敏度的CCD传感器,低成本、易实现的STM32微控制器,配以μC/OS-Ⅱ和uCGUI操作及图形处理系统,因此该嵌入式CCD数据采集系统可以不依赖于上位机实现任意时间、地点的灵活性数据采集。试验表明,该数据采集系统简单易行、成本低、分辨率高、开发方便,可为基于线阵CCD的数据采集工作提供一种有效便捷、运行可靠的解决方法。

作者:李亚威陆永华刘斌单位:南京航空航天大学机电学院