在高頻超聲波數(shù)據(jù)采集系統(tǒng)中,很多高速A/D轉(zhuǎn)換器往往不能直接與處理器相連接,這時就需要使用FIFO在處理器與A/D轉(zhuǎn)換器之間架一座橋梁,F(xiàn)IFO的先入先出特性可以方便緩存大量的數(shù)據(jù)塊。在基于ARM的超聲波測厚系統(tǒng)中,所用為1 MHz以上的高頻超聲波探頭,測量數(shù)據(jù)經(jīng)A/D轉(zhuǎn)換后頻率與ARM處理器的數(shù)據(jù)接收能力不匹配,因此需在A/D與ARM處理之間連接一個FIFO來解決以上問題。該設計選用AD公司的A/D芯片AD9283,F(xiàn)IFO選用Cyperss公司的CY7C4261,兩者的最大采樣頻率都是100 MHz。ARM采用Samsung公司的S3C2410處理器。三者都具有很強的外部接口能力,方便構(gòu)成無縫連接,硬件接口電路簡單,調(diào)試方便。
1 芯片選型
1.1 S3C2410處理器
S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18μm制造工藝的32位微控制器。該處理器擁有:獨立的16 KB指令Cache和16 KB數(shù)據(jù)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體系結(jié)構(gòu)處理器,使用ARM920T CPU核的強大指令集,處理器最高可運行在203 MHz。
1.2 AD9283高速模數(shù)轉(zhuǎn)換器
在超聲波無損檢測系統(tǒng)中,超聲波探頭的頻率一般是2~10 MHz。取探頭頻率為5 MHz,根據(jù)采樣定理,采樣頻率最好是探頭頻率的5~8倍,因此A/D芯片選用AD公司的AD9283,它的最大采樣速率達100 MHz,可以滿足系統(tǒng)要求。
1.3 FIFO存儲器CY7C4261
FIFO存儲器作為A/D與ARM之間的橋梁,其參數(shù)指標直接影響數(shù)據(jù)的采集速度。首先,F(xiàn)IFO存儲器的讀/寫速度要足夠快,為方便調(diào)試,最好能和A/D器件的最大速度相一致;其次,F(xiàn)IFO存儲器的存儲容量要適宜,如果容量過大會造成資源浪費,如果容量過小會造成溢出或者數(shù)據(jù)采集速度過慢。
常用被測物厚度為10 mm,當信號長度取前8個波峰,整個系統(tǒng)工作在極限頻率100 MHz的情況下,有如下計算:
采樣次數(shù)=采樣速率×時間=采樣速率×(2×厚度×8/超聲波速度)=100×2×0.01×8/5 900=2 712次
即需要將近3 KB的緩存。該超聲波測厚系統(tǒng)最大需測量厚度50 mm的物體,故需要容量15 K×8 B的FIFO。因此FIFO的深度要大于15 KB;寬度大于A/D的位數(shù),即大于8位;最大工作速率100 MHz,與A/D采樣速率相一致。該設計選用CY公司的FIFO存儲器CY7C4261,其最大采樣速率達100 MHz,與AD9283最大采樣速率相同;容量為16 KB×9 B,可以滿足數(shù)據(jù)量要求。
2 接口設計
AD9283是8位模/數(shù)轉(zhuǎn)換器,CY7C4261是9位FIFO,S3C2410的數(shù)據(jù)總線是32位。CY7C4261只需接S3C2410的低8位DO~D7。由于FIFO的先入先出結(jié)構(gòu),系統(tǒng)中不需要任何地址線的參與,大大簡化了電路。A/D采樣所得數(shù)據(jù)要實時送入FIFO,兩者的寫時鐘頻率必須一樣,且AD9283和CY7C4261的最小時鐘輸入都是10 ns,操作起來統(tǒng)一方便。74ALS08是四-二輸入與門,把ARM的脈寬調(diào)制波輸出口中的TOUTl(GPBl),TOUT2(GPB2)配置為通用輸出口,對74ALS08的通斷進行控制,從而對A/D和FIFO的寫時鐘進行控制。S3C2410的CLKOUTO與CY7C4261的RCLK相連為FIFO提供讀時鐘。CY7C4261的全滿標志位/FF與S3C2410的外部中斷EINTl相連用以觸發(fā)外部中斷。S3C2410的nRSTOUTl與CY7C4261的/RS相連用以復位FIFO。接口框圖如圖1所示。
3 時序設計
通過兩個與門分別對A/D和FIFO的寫時鐘進行控制。因為AD9283從模擬輸入開始到該次轉(zhuǎn)換的數(shù)據(jù)出現(xiàn)在輸出口上需要4個時鐘周期,并且在高速度采樣時導線的延時效果會非常明顯,若把A/D和FIFO的時鐘連在一起,很可能過多地采到無效數(shù)據(jù)。分開控制以后,通過軟件延時,可以方便地分別對A/D和FIFO的時鐘進行控制。調(diào)試起來相當方便,力圖把采到無效數(shù)據(jù)的位數(shù)減至最低。AD9283的工作時序如圖2所示,CY7C4621寫時序圖如圖3所示。
采樣時。通過程序使能TOUTl,TOUT2輸出為1。此時采樣時鐘脈沖與TOUTl,TOUT2相與后被分別送入AD9283的時鐘輸入ENCODE和CY7C4621的寫時鐘輸入WCLK。此時A/D開始工作,A/D將轉(zhuǎn)換數(shù)據(jù)送至自己的輸出口D0~D7。當寫使能/WEN1為低、WEN2為高的時候,A/D輸出口上的數(shù)據(jù)在WCLK的上升沿被依次寫入FIFO。A/D和FIFO每來一次脈沖,便完成一次模/數(shù)轉(zhuǎn)換并把數(shù)據(jù)順序存入FIFO。CY7C4261的數(shù)據(jù)最大儲存容量是16 KB,在完成了1 6 KB次轉(zhuǎn)換之后,CY7C426l將不能再存入新的數(shù)據(jù),此時存儲器滿標志/FF輸出低電平(在未滿時輸出高電平)。把此信號接到S3C2410的外部中斷EINTl上,利用它由高到低的變化產(chǎn)生中斷,以表明一組數(shù)據(jù)采集完成。
在中斷中,ARM首先迅速關閉采樣脈沖信號(使TOUTl和TOUT2)的輸出為0,停止A/D和FIFO的工作。ARM外部時鐘信號CLKOUTO與FIFO的讀輸入RCLK接在一起,ARM每執(zhí)行一次I/O讀操作,cLKOUT0便向RCLK發(fā)出一脈沖。把FIFO讀使能/WEN1和WEN2置為低,同時連續(xù)執(zhí)行16 K次I/O讀操作,數(shù)據(jù)便依次從CY7C4261送入S3C2410系統(tǒng),整個數(shù)據(jù)采集工作就此完成。在進行每一次數(shù)據(jù)的采集前,將CY7C4261先復位,把S3C24-10的nRSTOUTl配置為通用輸出口,給CY7C4261的RS引腳輸入一個不小于10 ns的低脈沖,即在ARM的nRSTOUTl引腳輸出一個低脈沖。這樣可以更充分地保證FIFO的讀、寫指針的穩(wěn)定。
4 數(shù)據(jù)采集流程
超聲波測厚系統(tǒng)數(shù)據(jù)采集工作流程主要包括ARM初始化、輸入激勵脈沖、使能外部中斷、時鐘送入A/D、FIFO、等待中斷。停止A/D及FIFO,ARM讀數(shù)據(jù),復位FIFO。流程圖如圖4所示。
5 結(jié)語
通過實際設計在基于ARM的超聲波無損檢測系統(tǒng)中,采用FIFO可以使高速A/D與ARM處理器之間得到很好的無縫連接,解決兩者之間不匹配的問題。通過軟件設置,可以靈活調(diào)整A/D,F(xiàn)IFO及ARM的操作時序,調(diào)試簡便,保證了數(shù)據(jù)采集的安全可靠。該接口電路簡單,靈活高效,具有很高的應用價值。