一束激光投射到物体表面时,要获得物体受光面接收到的激光能量分布及随时间变化情况,需在对应的位置设置激光探测系统。根据被测激光束形成的光斑直径实际情况,在受光面上等间距分布安装256只光电探测器,即将具有一定能量的激光脉冲转换为相对应的电压信号,该信号能正确反映其能量大小和变化。为了使系统能实时反映光斑各点的能量大小及变化情况,要求每秒采集25帧数据,即每帧的采集时间为40 ms,每个点的平均采集时间约为150 μs。为了保证弱光信号的采样精度,系统可使用程控放大器,适当增大弱光信号的电压放大倍数,即每个采样点有可能采样两次。当首次采样值大于门限值则认为信号足够强,直接将采样数据传送给上位机,当小于该门限值时则改变放大倍数,再采样一次,然后将结果加上特征码传送给上位机。为了保证测试精度,系统使用12位高速A/D芯片进行数据转换,因此向上位机的数据传送以串行通信方式分两帧进行。上位机得到数据后作相应处理,再实时动态显示在监视器上。上位机的数据处理和图像显示本文不作详细讨论,只就信号采集和传送问题作重点介绍。
1 系统多点采集电路构成及工作原理
图1为系统构成原理电路图,只画出了信号采集部分,其他配属电路均未画出。本例设计安装256个光电探测器。
1.1 CPU的选择
本系统中CPU选用华邦公司的W77E58,其指令执行速度是51系列单片机的三倍。同样用12 MHz的晶振,一个机器周期可降低到0.35 μs。如果每次采集和传送需用40条指令实现,完成每条指令按两个机器周期计算,要完成两次采集传送2 B数据,所用时间完全可以控制在40 μs以内。因此,选用W77E58可保证在每点所限时间范围内选择相应的探测器、启动A/D转换、完成两次采集数据、把测试结果以串行通信两帧数据的格式传送给上位机。
1.2 多点探测器选择的实现
多点探测器选择电路由1片74LS574、1片CD4515、CD4067(I)和16片CD4067(Ⅱ)构成。74LS574用于锁存8个控制信号,它们分别为A、B、C、D和A′、B′、C′、D′;4515和4067(I)的通道选通控制端并联,4515的16个输出通道中的某一个通道输出为低电平“0”,这16个输出作为16片4067(Ⅱ)的使能端;16片4067(Ⅱ)的通道选择控制端A′、B′、C′、D′并联,其256个输入通道对应256套光电探测器电压信号输出端。
因此,控制信号A、B、C、D决定选哪一片4067(Ⅱ),而A′、B′、C′、D′决定选其对应的16个探测器中的某一个。4067(I)的16个输入通道分别对应16片4067(Ⅱ)的16选1的输出通道。
1.3 程控放大器和模数转换
程控放大器选用单电源供电形式,其增益带宽大于10 MHz,因此可设计成同相输入运算放大器的形式。Rf1取9.1 k?赘,R2为精密电位器,其值为10 k?赘,Rf2取100 k?赘,放大倍数调整为两档:10倍和100倍。为了防止模拟开关对放大信号的影响,将其接成反馈电路串入模拟开关,再接到运算放大器的反相输入端,这样模拟开关的导通电阻就不会对放大倍数造成影响。模拟开关选用CD4053,该芯片为3个二选一开关,选其第三个开关,由W77E58的P3.0控制。当P3.0为1时,指向低放大倍数档;当P3.0为0时,则指向高放大倍数。模数转换器采用AD678,它是12 bit AD芯片,不需外部时钟和外部基准电压,速度较快,5.0 μs完成一次转换。AD678与CPU接口简单,只相当于CPU的两个外部存储单元。
2 通信电路构成及工作原理
系统要求对256个探测器进行循环采集,每40 ms扫描一遍,因此每个探测器占用时间约为156.25 μs。由于执行数据采集与控制等指令需占用一定的时间,故用于通信的时间远小于156.25 μs。本系统中使用的是12 bit的AD芯片,所以每个点需以两帧数据的格式传送,设每帧10 bit,则每个点有效数据就需占用20 bit,加上必要的间隔及指令执行时间,每个探测器占用的时间远高于传送20 bit数据所占用的时间。若按每帧数据平均12.5 bit,每帧允许使用时间50 μs,4 μs 1 bit,则波特率高达250 kHz以上,这样高的速率就单片机的异步串行通信而言是不可能实现的,而USB则可以胜任,因此本系统选用了由FT245BM芯片构成的USB总线接口电路,其原理如图2所示。
本系统的USB通信接口芯片使用FTDI(Future Technology Devices Intl.Ltd)公司生产的FT245BM。FT245BM支持USB协议与并行I/O协议之间的转换,其主要功能是进行USB和并行I/O口之间的协议转换。芯片一方面可从主机接收USB数据,并将其转换为并行I/O口的数据流格式发送给外设;另一方面外设可通过并行I/O口将数据转换为USB的数据格式传回主机。中间的转换工作全部由芯片自动完成,开发者无需考虑固件的设计。
FT245BM通过FIFO控制器实现与单片机的接口,借助8根数据线D0~D7及读写控制线(RD、WR、RXF和TXE)完成与单片机的数据交互。其内部包含两个FIFO数据缓冲区,一个是128 B的接收缓冲区,另一个是384 B的发送缓冲区。它们均用于USB数据与并行I/O口数据的交换缓冲区。
另外,FT245BM还包括1个内置的3.3 V的稳压器,1个6 MHz的振荡器、8倍频的时钟倍频器、USB锁相环和EEPROM接口。FT245BM采用32脚的PQFP封装,体积小巧,易于和外设做到一块板上。
2.2 电路工作原理
该电路将W77E58对256个光电探测器循环测得的数据通过并行接口传送给FT245BM,相当于将FT245BM当作一个8 bit随机存储器对待,将数据写入FT245BM,然后执行下一个点的数据采集处理。只要USB接口波特率可以达到300 kHz以上,两点采集处理间隔能在100 μs以上,系统就能可靠工作。
3 数据采样和传送程序示例
mov A,#00H
mov DPTR,#2000H
movx @DPTR,A
mov DPTR,#4000H
movx @DPTR,A
mov R1,#08H
djnz R1,$
movx A,@DPTR
mov 20H,A
inc DPTR
mov A,@DPTR
mov 21H,A
mov A,20H
cjnz A,#1fH,Loop2
Loop2: jc,Loop3
Ajmp Loop
Loop3: clr P3.0
mov DPTR,#2000H
movx @DPTR,A
mov DPTR,#4000H
movx @DPTR,A
mov R1,#10H
movx A,@DPTR
mov 20H,A
inc DPTR
movx A,@DPTR
mov 21H,A
Loop:mov DPTR,#6000H
mov A,20H
movx @DPTR,A
mov A,21H
movx @DPTR,A
setb P3.0
END
采用USB接口从根本上解决了多点快速数据采集系统的大数据采集量和高速度传送的矛盾,系统要求整个采集时间为3 min左右,在这段时间里,上位机将系统通过USB接口传送过来的约5 MB的数据经过处理和修正后即时显示在计算机监视器上,可方便地观察几分钟内激光发射时间里受光表面得到的能量分布和随时间变化的过程。系统把数据处理及图形显示交给计算机,而把多点采集驱动交给单片机完成,由USB接口负责快速信息传递,发挥各自优势完成。该方案对多点高速采集系统具有普遍的应用意义,如果设计合理,监测点可以达到1 000个以上。