在高频超声波数据采集系统中,很多高速A/D转换器往往不能直接与处理器相连接,这时就需要使用FIFO在处理器与A/D转换器之间架一座桥梁,FIFO的先入先出特性可以方便缓存大量的数据块。在基于ARM的超声波测厚系统中,所用为1 MHz以上的高频超声波探头,测量数据经A/D转换后频率与ARM处理器的数据接收能力不匹配,因此需在A/D与ARM处理之间连接一个FIFO来解决以上问题。该设计选用AD公司的A/D芯片AD9283,FIFO选用Cyperss公司的CY 7C4261,两者的最大采样频率都是100 MHz。ARM采用Samsung公司的S3C2410处理器。三者都具有很强的外部接口能力,方便构成无缝连接,硬件接口电路简单,调试方便。
1 芯片选型
1.1 S3C2410处理器
S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18μm制造工艺的32位微控制器。该处理器拥有:独立的16 KB指令Cache和16 KB数据CACHE,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer,I/O口,RTC,8路10位ADC,Touch Screen接口,I2C-BUS接口,IIS-BUS接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410是16/32位RISC体系结构处理器,使用ARM920T CPU核的强大指令集,处理器最高可运行在203 MHz。
1.2 AD9283高速模数转换器
在超声波无损检测系统中,超声波探头的频率一般是2~10 MHz。取探头频率为5 MHz,根据采样定理,采样频率最好是探头频率的5~8倍,因此A/D芯片选用AD公司的AD9283,它的最大采样速率达100 MHz,可以满足系统要求。
1.3 FIFO存储器CY7C4261
FIFO存储器作为A/D与ARM之间的桥梁,其参数指标直接影响数据的采集速度。首先,FIFO存储器的读/写速度要足够快,为方便调试,最好能和A/D器件的最大速度相一致;其次,FIFO存储器的存储容量要适宜,如果容量过大会造成资源浪费,如果容量过小会造成溢出或者数据采集速度过慢。
常用被测物厚度为10 mm,当信号长度取前8个波峰,整个系统工作在极限频率100 MHz的情况下,有如下计算:
采样次数=采样速率×时间=采样速率×(2×厚度×8/超声波速度)=100×2×0.01×8/5 900=2 712次
即需要将近3 KB的缓存。该超声波测厚系统最大需测量厚度50 mm的物体,故需要容量15 K×8 B的FIFO。因此FIFO的深度要大于15 KB;宽度大于A/D的位数,即大于8位;最大工作速率100 MHz,与A/D采样速率相一致。该设计选用CY公司的FIFO存储器CY7C4261,其最大采样速率达100 MHz,与AD9283最大采样速率相同;容量为16 KB×9 B,可以满足数据量要求。
2 接口设计
AD9283是8位模/数转换器,CY7C4261是9位FIFO,S3C2410的数据总线是32位。CY7C4261只需接S3C2410的低8位DO~D7。由于FIFO的先入先出结构,系统中不需要任何地址线的参与,大大简化了电路。A/D采样所得数据要实时送入FIFO,两者的写时钟频率必须一样,且AD9283和CY7C4261的最小时钟输入都是10 ns,操作起来统一方便。74ALS08是四-二输入与门,把ARM的脉宽调制波输出口中的TOUTl(GPBl),TOUT2(GPB2)配置为通用输出口,对74ALS08的通断进行控制,从而对A/D和FIFO的写时钟进行控制。S3C2410的CLKOUTO与CY7C4261的RCLK相连为FIFO提供读时钟。CY7C4261的全满标志位/FF与S3C2410的外部中断EINTl相连用以触发外部中断。S3C2410的nRSTOUTl与CY7C4261的/RS相连用以复位FIFO。接口框图如图1所示。
3 时序设计
通过两个与门分别对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所示。