首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM和FPGA的线阵CCD测径系统的设计(2)

基于ARM和FPGA的线阵CCD测径系统的设计(2)

2.1 主控制模块的设计
         ARM嵌入式处理器是整个硬件系统的核心,LPC2214集成了丰富的片上功能模块,主要有:外部存储器控制模块(EMC)、系统控制模块、通用并行I/O口、串行通信口(UART)、I2C接口、SPI接口、CAN总线控制器、定时器控制模块、脉冲宽度调制器、A/D转换器、实时时钟控制器等。LPC2214集成了Flash存储器和静态RAM,其中Flash存储器可用作代码和数据的存储。
            系统中被测线缆被均匀照明后,经光学成像系统按一定倍率成像于线阵CCD传感器上,线阵CCD在驱动脉冲的作用下,将采集到的光信号转换成电信号输出,将处理后的模拟视频信号送入A/D转换器。LPC2214所起的作用是:当全部像敏单元信号转化结束之后,A/D器件停止工作,此时给ARM微处理器LPC2214一个中断信号,通知LPC2214将SRAM中的所有数据通过数据总线读取到数据存储器内。处理器LPC2214对于所有数据根据数据处理程序进行处理,并将处理结果通过数据总线输出到LCD显示器上,便于进行实时监测以及后续控制。
        2.2 CCD驱动电路的设计
          CCD驱动电路的设计是线缆直径测量系统中的一个关键问题,由于不同厂家、不同型号的CCD器件的驱动电路各不相同,而成品CCD的驱动电路价格昂贵,不便使用推广[2]。本设计中采用了Actel 公司的FPGA器件A3P030配合CCD专用驱动器组成了CCD的驱动电路。经实验证明,本电路能够可靠地驱动CCD。
        2.2.1 TCD1501D的时序要求
            根据项目的技术要求,本系统选用日本TOSHIBA公司的TCD1501D型线阵CCD作为传感器。该器件具有优良的光电特性,有5 000个像元。根据CCD的驱动信号的时序[3],TCD1501D需要六路驱动信号,它们分别是:两个时钟脉冲Φ1和Φ2,转移脉冲SH,复位脉冲RS,钳位脉冲CP,以及采样脉冲SP。TCD1501D采用两相驱动脉冲方式工作,设计中所选择的驱动频率是其典型值:fΦ1=fΦ2=0.5 MHz,相应的数据输出频率是fRS=1 MHz。该CCD器件一行输出的信号是5 076像元,包括13个虚设单元信号、48个暗信号脉冲,然后是S1 到S5000的有效像素单元信号、9个暗信号脉冲和2个奇偶检测信号及1个哑元信号,之后可以有任意个空驱动,所以有TSH≥5 076TRS,从而可以计算出每次光积分所需的最短时间为:TSH≥5 076TRS=5 076 ?滋s=5.076 ms。根据相关技术资料[3],TCD1501D的六路驱动脉冲之间需要满足特定的时序关系:Φ1、Φ2必须反相,占空比1:1;SH的高电平至少要保持500 ns,它的脉冲宽度要小于Φ1,延时至少100 ns;RS与CP时钟的占空比为1:4。
        2.2.2  TCD1501D的驱动电路设计
            驱动电路结构如图3所示。本设计中FPGA可编程逻辑器件A3P030负责产生线阵CCD器件TCD1501D六路驱动信号,该芯片有3万个系统门,以Flash架构为基础,是一款低功耗、掉电非易失的FPGA,配上电源、晶振和复位电路就可以构成最小系统。A3P030的I/O口电压为3.3 V,其输出低电平最大值VOL=0.4 V,输出高电平最小值VOH=2.4 V,而线阵CCD传感器TCD1501D要求的信号输入高电平的最小值VIL=4.5 V,因此两器件之间电平不匹配,不能够直接驱动CCD工作,这里使用电平转换器SN74ALVC4245进行电平转换,再经CCD专用的驱动芯片调整,最后得到可靠的驱动信号。这个电路结构简单,抗干扰性好,同时,还具有低功耗、高精度、时序配合准确的优点。

       


       
        2.3 A/D转换电路设计
            CCD图像传感器完成光电信号的转换后,为了存储和处理所采集的信号,需要将它们变成相应的数字信号,这就需要对CCD的输出信号进行A/D转换。由于TCD1501D的视频信号的输出频率为1 MHz,一般的A/D转换器的速度达不到此要求,必须采用高速A/D转换器。AD9243是美国ADI公司生产的完全14位高性能模数转换器。在单一+5 V电源下,它的功耗仅有110 mW,信噪比为±79 dB。且具有信号溢出指示位,并可直接以二进制形式输出数据,它的数据输出端口可以配置为3 V或者5 V CMOS电平,方便和各种处理器接口[4]。
            AD9243的作用是将线阵CCD传感器采集到的模拟视频信号转换成数字信号送到ARM微处理器进行线缆直径的计算和存储。在A/D转换电路的设计中需要特别注意的是AD9243可以在内部参考与外部参考方式下采用不同的电路设计来获取灵活的模拟输入范围[4]。本设计采用了外部2.5 V参考输入方式,如图4所示。

       


            本系统采用高精度2.5 V基准源作为稳定的外部参考源。当使用外部参考方式时,还应当在CAPT与CAPB之间加一个电容去耦网络。
        2.4 人机界面模块
            为了便于用户管理和操作,增加了一个线缆直径测量控制的参数显示和设定模块,ARM微处理器LPC2214通过并口连接到液晶显示模块LM057QC1T01上,通过LPC2214自带的SPI串行接口与触摸屏模块(控制器为ADS7843)进行通信。通过触摸屏可以设置的参数包括:直径的标称值、上公差、下公差、PID参数等。按工艺要求正确设置好线缆直径的标称值可以实现对线缆直径的自动反馈控制和超差报警,当系统出现故障时,液晶显示器上可及时显示系统的故障,方便用户及时排除,提高了对生产设备的管理和操作的效率。
        3 软件设计
          微处理器LPC2214中的数据采集和数据处理程序是整个系统的关键部分。系统的初始化工作完成之后,CPU开始进行运算处理。设计中以帧为单位进行数据采集和处理。单帧读入识别过程如下:
          (1) LPC2214发送帧启动脉冲ena给FPGA。
          (2) FPGA接收到ena信号,产生CCD驱动信号和A/D转换器的采样信号,使CCD与A/D转换器开始工作。
          (3) 将采样得到的数字信号存入SRAM中。
          (4) 一帧数据采集完毕时,发送INT信号给ARM LPC2214,ARM读取SRAM,处理数据。一帧数据的采集和处理过程完毕,若有新的数据继续处理。图5是数据处理软件流程图。]

       


            在数据处理的程序中,当A/D转换结束后,LPC2214从SRAM中读取图像数据存储在片内数据存储空间。首先对数据进行预处理,也就是滤掉波形中的毛刺,剔除实际应用中不可能出现的数值。然后对预处理过的数据与事先确定好的阈值进行比较,若高于阈值则高位寄存器内的值加1,否则低位寄存器内的值加1。将5 000个数值都比较完毕,然后对低位寄存器内的数值采用直线拟合[5]的方法计算出精确的线阵CCD被遮挡而未能感光的像敏单元数,根据公式(1)即可求出被测线缆直径的实际尺寸。
            本系统以高速ARM微处理器代替传统的单片机,且充分发挥FPGA的时序优势,使得系统硬件结构更为简单、可靠,软件调试更为方便。与以往的采集系统相比,在速度和精度上有了大幅的提高,完全满足系统设计的要求。本系统是在线测量线缆的直径,但同样适用于测量工件的长度、测距等很多方面,有很广阔的应用前景。
继承事业,薪火相传
返回列表