通过两个与门分别对A/D和FIFO的写时钟进行控制。因为AD9283从模拟输入开始到该次转换的数据出现在输出口上需要4个时钟周期,并且在高速度采样时导线的延时效果会非常明显,若把A/D和FIFO的时钟连在一起,很可能过多地采到无效数据。分开控制以后,通过软件延时,可以方便地分别对 A/D和FIFO的时钟进行控制。调试起来相当方便,力图把采到无效数据的位数减至最低。AD9283的工作时序如图2所示,CY7C4621写时序图如图3所示。
采样时。通过程序使能TOUTl,TOUT2输出为1。此时采样时钟脉冲与TOUTl,TOUT2相与后被分别送入AD9283的时钟输入 ENCODE和CY7C4621的写时钟输入WCLK。此时A/D开始工作,A/D将转换数据送至自己的输出口D0~D7。当写使能WEN1为低、 WEN2为高的时候,A/D输出口上的数据在WCLK的上升沿被依次写入FIFO。A/D和FIFO每来一次脉冲,便完成一次模/数转换并把数据顺序存入 FIFO。CY7C4261的数据最大储存容量是16 KB,在完成了1 6 KB次转换之后,CY7C426l将不能再存入新的数据,此时存储器满标志FF输出低电平(在未满时输出高电平)。把此信号接到S3C2410的外部中断 EINTl上,利用它由高到低的变化产生中断,以表明一组数据采集完成。
在中断中,ARM首先迅速关闭采样脉冲信号(使TOUTl和TOUT2)的输出为0,停止A/D和FIFO的工作。ARM 外部时钟信号CLKOUTO与FIFO的读输入RCLK接在一起,ARM每执行一次I/O读操作,cLKOUT0便向RCLK发出一脉冲。把FIFO读使 WEN1能和WEN2置为低,同时连续执行16 K次I/O读操作,数据便依次从CY7C4261送入S3C2410系统,整个数据采集工作就此完成。在进行每一次数据的采集前,将CY7C4261先复位,把S3C24-10的nRSTOUTl配置为通用输出口,给CY7C4261的RS引脚输入一个不小于10 ns的低脉冲,即在ARM的nRSTOUTl引脚输出一个低脉冲。这样可以更充分地保证FIFO的读、写指针的稳定。
4 数据采集流程
超声波测厚系统数据采集工作流程主要包括ARM初始化、输入激励脉冲、使能外部中断、时钟送入A/D、FIFO、等待中断。停止A/D及 FIFO,ARM读数据,复位FIFO。流程图如图4所示。
5 结语
通过实际设计在基于ARM的超声波无损检测系统中,采用FIFO可以使高速A/D与ARM处理器之间得到很好的无缝连接,解决两者之间不匹配的问题。通过软件设置,可以灵活调整A/D,FIFO及ARM的操作时序,调试简便,保证了数据采集的安全可靠。该接口电路简单,灵活高效,具有很高的应用价值。