DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 151|回复: 0
打印 上一主题 下一主题

用FIFO实现超声测厚系统A/D与ARM接口设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-18 00:24:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在高频超声波数据采集系统中,很多高速A/D转换器往往不能直接与处理器相连接,这时就需要使用FIFO在处理器与A/D转换器之间架一座桥梁,FIFO的先入先出特性可以方便缓存大量的数据块。在基于ARM的超声波测厚系统中,所用为1 MHz以上的高频超声波探头,测量数据经A/D转换后频率与ARM处理器的数据接收能力不匹配,因此需在A/D与ARM处理之间连接一个FIFO来解决以上问题。该设计选用AD公司的A/D芯片AD9283,FIFO选用Cyperss公司的CY7C4261,两者的最大采样频率都是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的全满标志位

与S3C2410的外部中断EINTl相连用以触发外部中断。S3C2410的nRSTOUTl与CY7C4261的

相连用以复位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。当写使能

为低、WEN2为高的时候,A/D输出口上的数据在WCLK的上升沿被依次写入FIFO。A/D和FIFO每来一次脉冲,便完成一次模/数转换并把数据顺序存入FIFO。CY7C4261的数据最大储存容量是16 Kb,在完成了1 6 Kb次转换之后,CY7C426l将不能再存入新的数据,此时存储器满标志

输出低电平(在未满时输出高电平)。把此信号接到S3C2410的外部中断EINTl上,利用它由高到低的变化产生中断,以表明一组数据采集完成。    在中断中,ARM首先迅速关闭采样脉冲信号(使TOUTl和TOUT2)的输出为0,停止A/D和FIFO的工作。ARM外部时钟信号CLKOUTO与FIFO的读输入RCLK接在一起,ARM每执行一次I/O读操作,cLKOUT0便向RCLK发出一脉冲。把FIFO读使

能和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的操作时序,调试简便,保证了数据采集的安全可靠。该接口电路简单,灵活高效,具有很高的应用价值。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-1 13:29 , 耗时 0.085963 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表