文章编号:1001-3997(2011)06-0030-03
机械设计与制造
MachineryDesign&Manufacture
第6期2011年6月
基于CPLD的线阵CCD驱动电路的设计*
2
李宁宁1,李志农2刘治华1陈金刚1
(1郑州大学机械工程学院,郑州450001)(2南昌航空大学无损检测技术教育部重点实验室,南昌330063)
ThedesignofaLinearCCDdrivingcircuitbasedonCPLD
2
LINing-ning1,,LIZhi-nong2,LIUZhi-hua1,CHENJin-gang1
(1SchoolofMechanicalEngineering,ZhengzhouUniversity,Zhengzhou450001,China)(2KeyLaboratoryofNondestructiveTesting,MinistryofEducation,NanchangHangkongUniversity,Nanchang,330063,China)
【摘要】针对传统CCD驱动电路存在的不足,尤其是当驱动电路工作在较高频率时易产生严重干扰,系统工作不稳定,我提出了一种线阵CCD驱动电路的设计方案,该方案运用CPLD技术来设计产生ILX526A图像传感器的驱动时序。采用MAXPLUSⅡ开发系统,运用硬件描述语言VHDL对CPLD稍作修改,就可以实现其他型号的CCD驱动电路的设计,因此该方案对CCD驱动电路的设计具有相当重要的参考价值。
关键词:线阵CCD;驱动电路;CPLD;VHDL语言
【Abstract】ConcerningdeficiencyoccurredinthetraditionalCCDdrivingcircuit,andseveredistur-bancemayhappyespeciallyduringdrivingcircuitworkingunderhighfrequency,whichleadsthesystemto
进行编程,然后进行仿真,并进行了实验的研究。仿真和试验结果表明,该驱动电路具有通用性,对程序
workunsteadily.InthiscaseadesignschemeforlinearCCDdrivingcircuitisproposed,inwhichCPLDtech-nologyisadoptedtodesignthedrivingtimingofimagesensorsILX526A.TheCPLDshallbeprogrammedwithsultsobtainedfromsimulationandtestshowthatthedrivecircuitdesignedisprovidedwithgooduniversality,theschemeprovidessignificantreferencevalueforthedesignofCCDdrivingcircuit.circuit.Therefore,
Keywords:LinearCCD;Drivingcircuit;CPLD;VHDLlanguage
文献标识码:A
中图分类号:TH16
VHDLbyadoptingdevelopingsystemMAXPLUSⅡ,whichissimulatedandtestedthenforresearch.There-thatistosay,someslightmodificationsofproceduresmayachieveadesignfortheothertypesofCCDdrive
1引言
目前,电荷耦合器件(ChargeCoupledDevices,CCD)及其应用技术已成为集光学、电子学、精密机械与计算机技术为一体的综合性技术,在现代光学、光电检测技术和现代测试技术领域中获得了成功的应用,特别是在图像传感和非接触测量领域的发展更为迅速。然而,以往的CCD驱动电路是由普通数字电路芯片实现的,电路体积大,设计复杂且过于偏重于硬件的实现,调试工作量大,容易出现错误,特别是当驱动电路工作在较高频率时干扰问题严重,系统工作不稳定。针对此不足,提出了一种线阵CCD驱动电路的设计方案,该方案基于CPLD,运用VHDL语言进行编程。通过软件MAXPLUSⅡ10.2的仿真和示波器对实际脉冲信号采集的结果表明:该设计具有通用性,对程序稍作修改,就可以实现其他型号的CCD驱动电路,因此,在工程实际应用中具有相当重要的参考价值。
2CCD驱动电路的设计
设计采用SONY的ILX526A图像传感器,ILX526A含有22个管脚,是3000象元CCD,象元大小为(7×200)μm,信号需要提供5V电压,时钟频率最小为100kHz,最大为1MHz。该CCD无
*来稿日期:2010-08-30*基金项目:国家自然科学基金(50775208,5107537),湖南省机械设备健康维护重点实验室开放基金(200904)
工作,该CCD的驱动电路,如图1所示。
5V
0.01μ22μ/10V
3k
准CLK
12345678910Vgg准CLKNCNCNC
VDD22GND21VOUT20NC19NC181716151413
S/HSW12
准ROG
准SHUT
准ROGNC准SHUTNCGNDNCVDDVDDT1GND11NC
论是在采样保持模式还是无采样保持模式下工作,一个周期内至该CCD驱动电路的设计即是实现3路少要有3100个时钟脉冲。
输出脉冲信号:CLK时钟脉冲信号,ROG脉冲信号和SHUT脉冲ILX526A需要在该三路脉冲信号的驱动下才能正常稳定的信号,
2SA1175
图1CCD驱动电路
该CCD的管脚2输出CLK时钟脉冲信号,其周期为2μs,频
第6期李宁宁等:基于CPLD的线阵CCD驱动电路的设计
fenp8。
INPUT
31
率为0.5MHz,当CLK脉冲信号为低电平时,电压为0V,该脉冲为高电平时,电压为5V。该CCD的管脚6输出ROG时钟脉冲信号,管脚8输出SHUT时钟脉冲信号。ROG和SHUT脉冲信号的周期均为3100个CLK脉冲信号的周期,即6.2ms,频率为0.16MHz,当ROG和SHUT脉冲信号都为低电平时,电压均为0V,ROG和SHUT脉冲信号都为高电平时,电压均为5V。ROG脉冲信号的高SHUT脉冲电平从CLK脉冲信号的高电平正中间位置开始触发,
信号的高电平从CLK脉冲信号的低电平正中间位置开始触发,ROG和SHUT脉冲信号的高电平持续时间均为6个CLK脉冲信号的周期,即12μs。驱动电路的输入信号为8MHz的脉冲信号,为或者利用了便于程序的编写,利用D触发器进行连续3次2分频,VHDL语言编写程序得到1MHz的输出脉冲信号,则ROG和SHUT脉冲信号的高电平均从1MHz脉冲信号的上升沿开始触发,高电平维持时间均为12个1MHz脉冲信号的周期。CLK,ROG和SHUT三路脉冲信号的时序关系图,如图2所示。
5
准ROG
05
准SHUT
05准CLK
0
-1012VHDL语言编程实现8分频电路得到频率为1MHz的脉冲信号
sd
VCC
DFF
DPRNQ
NOT5
CLRN2
3
OUTPUT13
DFFDPRN
Q
7
NOT
DFFDPRN
Q8
CLRN
4
CLRN
NOT
DFFDPRNQ
9
OUTPUT10NOT
INPUT
clk
VCCINPUTVCC
1
CLRN
fenp16
rd
fenp8
图3D触发器的连续四次二分频
首先需要设计一个模为8的标准计数器counter0:由于计数所以模为8的计数器counter0从0开始计数到器从0开始计时,
7结束,7转化为二进制数为111。假设所提供的8MHz的输入脉冲信号在上升沿时有效,当所提供的8MHz的输入脉冲信号处于上升沿并且计数器counter0计数到111时,计数器counter0的各即从0开始重新计数,否则每当8MHz的输入脉冲位均置为0,
信号处于上升沿时,计数器counter0加1。
然后设定一个中间信号fp8,当8MHz的输入脉冲信号处于上升沿并且计数器counter0计数到011时,计数器counter0的各即从000重新开始计时,此时中间信号fp8进行一次位均置为0,
翻转操作,否则中间信号fp8的值保持不变。以后重复上述操作,最后将得到的中间信号fp8赋给输出脉冲信号fenp8,即实现了8分频电路的设计,输出脉冲信号fenp8的频率即为1MHz。同理,设定一个中间信号fp16,当8MHz的输入脉冲信号处于上升沿并计数器counter0的各位均置为且计数器counter0计数到111时,
0,即从000重新开始计时,此时中间信号fp16进行一次翻转操最后作,否则中间信号fp16的值保持不变。之后重复上述操作,将得到的中间信号fp16赋给输出脉冲信号fenp16,即实现了16分频电路的设计,输出脉冲信号fenp16的频率即为0.5MHz。
获得ROG脉冲信号和SHUT脉冲信号也有设计硬件电路和运用VHDL语言进行软件编程两种方法,但硬件电路设计非常麻烦,而用VHDL语言进行软件编程相当简易。因此,仿真设计采用运用VHDL语言进行软件编程的方案。
首先需要设计一个模为6200的标准计数器counter:由于计数器从0开始计时,所以模为6200的计数器counter从0开始计数到6199结束,6199转化为二进制数为1100000110111。当信号fp8处于上升沿并且计数器counter计数到1100000110111时,计数器counter的各位均置为0,即从0开始重新计数,否则每当信号fp8处于上升沿时,计数器counter加1。
然后设定两个中间信号clk_temp1和clk_temp2。从图2可以看出ROG脉冲信号从CLK脉冲信号fenp16的第一个周期的高电平正中间开始触发为高电平,SHUT脉冲信号从CLK脉冲信号fenp16的第3066个周期的低电平正中间开始触发为高电平,ROG和SHUT脉冲信号的高电平持续时间均为6个CLK脉冲信号的周期。为了便于程序的编写,此仿真设计借助1MHz的脉冲信号fenp8做为ROG和SHUT脉冲信号的触发条件,则ROG脉冲信号的高电平均从脉冲信号fenp8的第一个周期上升沿开始触发,SHUT脉冲信号的高电平均从脉冲信号fenp8的第6132个周期上升沿开始触发,其高电平维持时间均为12个脉冲信号fenp8的周期,则ROG和SHUT脉冲信号的程序可编写为:当信号fp8处于上升沿并且计数器counter计数大于等于0000000000001小于等于
VOUT
Opticalblack
(30pixels)
Dummysignal(55pixels)
Effectivepicture
elementssignal(3000pixels)
D0D21D22D23D24D1D2D3D4D53D54D55S1S2S3S41-Lineoutputpenod(3066pixels)
图2CCDILX526A的时序波形
3CCD驱动电路的仿真
EPM7064采用MAXPLUSⅡ10.2开发系统,运用VHDL语言实现编程。首先得到频率为0.5MHz的CLK脉冲信号fenp16和频率为1MHz的脉冲信号fenp8有2种方法:设计硬件电路和运用VHDL语言进行软件编程。
设计硬件电路:所提供的晶振为8MHz的有源晶振,为了得到0.5MHz的CLK脉冲信号,可以使用4个D触发器连续进行四次二分频,其电路图,如图3所示。4个D触发器的PRN端和CLRN端均设置为高电平,输出端Q经非门NOT连接后均连接到输入端D。从第一个D触发器的CLK端输入频率为8MHz的脉冲信号,则输即4MHz,即实出端Q的频率为CLK端输入脉冲信号频率的1/2,
现了D触发器的第一次二分频。将第一个D触发器的输出端Q做则第二个D触发器输出端Q的频率为第二个D触发器的输入端,
为第一个D触发器输出端Q频率的1/2,即2MHz,即实现了D触发器的第二次二分频。同理,将第二个D触发器的输出端Q做为第则第三个D触发器输出端Q即为频率为三个D触发器的输入端,
1MHz的脉冲信号fenp8,即实现了D触发器的第三次二分频。将第三个D触发器的输出端Q做为第四个D触发器的输入端,则第四个D触发器的输出端Q即为频率为0.5MHz的CLK脉冲信号fenp16,即实现了D触发器的第四次二分频。此D触发器的分频电路简单易懂,有一定的参考价值。
运用VHDL语言进行软件编程:由于所提供的晶振为8MHz的有源晶振,所以需要在软件MAXPLUSⅡ10.2中,利用VHDL语言编程实现16分频电路得到0.5MHz的CLK脉冲信号fenp16,利用
S2997S2998S2999S3000D56D57D58D59D60D61D62D53D64D65Dummysignal(10pixels)
32机械设计与制造
No.6Jun.2011
0000000001100时,信号clk_temp1为高电平,否则信号clk_temp1为低电平。当信号fp8处于上升沿并且计数器counter计数大于等于1011111110100小于等于1011111111111时,信号clk_temp2为高电平,否则信号clk_temp2为低电平。最后将信号clk_temp1赋给ROG脉冲信号,将信号clk_temp2赋给SHUT脉冲信号。
选用ALTER公司的MAX7000S系列的EPM7064SLC44-10芯片,为输入输出信号配置管脚,8MHz的有源晶振作为输入信号锁定在43管脚,0.5MHz的CLK输出信号锁定在27管脚,ROG脉冲信号锁定在41管脚,SHUT脉冲信号锁定在40管脚。
最后进行程序的仿真:新建波形编辑文本,将输入输出信号导入该文本。输入信号CLK的频率为8MHz,故将其周期设置为125ns,然后进行仿真得到CCD驱动的3种脉冲输出信号,如图4所示。从仿真结果可看到,这3路驱动脉冲间的时序关系完全符合线阵CCDILX526A的要求。该仿真充分发挥了CPLD的“可编程”的技术特点。通过稍微变动CPLD中的程序,本驱动电路的设计还可以作为其它型号线阵CCD的驱动电路来使用。例如:通过改变实现ROG和SHUT脉冲信号的程序中的上升沿触发信号fp8和计数器counter的计数范围,就可以作为其它型号线阵CCD的驱动电路来使用,这充分体现了CPLD使用灵活及方便的特点。
Name:
clockshutrogfenp16fenp8
Value:00001
6.14ms
6.16ms
6.18ms
6.2ms
6.22ms
Freq=*****Vpp=3.60VVavg=642mV
图8ROG脉冲信号放大400倍图
Freq=*****Vpp=3.12VVavg=301mV
图9SHUT脉冲信号放大100倍图
对比图4与图7,示波器采集到的0.5MHz脉冲信号完全复对比图4与图8,现了仿真结果得到的0.5MHz脉冲信号fenp16;
示波器采集到的放大400倍后的ROG脉冲信号很好的复现了仿信号干扰所造成的误差在1%左真结果得到的ROG脉冲信号,
右,在允许的误差范围之内。对比图4与图11,示波器采集到的放大100倍后的SHUT脉冲信号也很好的复现了仿真结果得到的SHUT脉冲信号,信号干扰所造成的误差在1.5%左右,在允许的误差范围之内。以上结果表明了CPLD具有实用功能强、工作稳定性好的特点,同时证明了该实验的可行性,该驱动时频率高、
序的设计方案完全正确。
图4ILX526A驱动电路仿真波形图
4实验研究
实验采用USB作为该电路系统与计算机的接口,USB接口通过计算机给CPLD提供5V的电压,该系统组装图,如图5所示。将源程序下载到EMP7064SLC44-10芯片中,采用示波器对该CCD的各种脉冲输出信号进行采集。CPLD的连接电路,如图6所示。打开示波器,将示波器的探针触头分别接到CPLD的27管脚,41管脚和40管脚,通过调整示波器采集到的0.5MHz脉冲信号的图形,如图7所示。ROG脉冲信号放大400倍后的图形,如如图9所示。图8所示。SHUT脉冲信号放大100倍后的图形,
5结论
充分发挥了CPLD的“可编程”的技术特点,设计了一种线阵CCD驱动电路驱动电路,仿真和试验结果表明,该驱动时序的设计方案是正确的。驱动电路的设计具有灵活性和一定的通用性,通过稍微变动CPLD中的程序,就能作为其它型号线阵CCD的驱动电路来使用,因此,工作具有一定的参考价值。
参考文献
[1]王庆有,孙学珠.CCD应用技术[M].天津:天津大学出版社,1993.[2]PENGXiao-jun,WUMinyuan,WANGWei-ping.Designandimplementation
[J].OptoelectronicofEPC/CPCmeasurementsystembasedonduallinearCCD
(光电子技术),2006,26(1):57-61.Technology
[3]姜雪松,吴钰淳,王鹰,等.VHDL设计实例与仿真[M].北京:机械工业
出版社,2007.[4]宋万杰,罗丰,吴顺君.CPLD技术及其应用[M].西安:西安电子科技大
1999.学出版社,
[5]黄正谨,徐坚,章小丽,熊明珍,等.CPLD系统设计技术入门与应用
[M].北京:电子工业出版社,2002.[6]廖裕评,陆瑞强.CPLD数字电路设计,使用MAX+PlusⅡ入门篇[M].
北京:清华大学出版社,2001.[7]冯涛,王程.MAX+plusII入门与提高[M].北京:人民邮电出版社,2002.[8]王辉,等.MAX+plusII和QuartusII应用与开发技巧[.M]北京:机械
工业出版社,2007.
图5系统组装图图6CPLD的连接电路
Freq=500kHzVpp=1.58VVavg=-6.93mV
图7示波器采集0.5MHz脉冲信号图
因篇幅问题不能全部显示,请点此查看更多更全内容