用FIFO實現(xiàn)超聲測厚系統(tǒng)A/D與ARM接口設計
2 接口設計
AD9283是8位模/數(shù)轉換器,CY7C4261是9位FIFO,S3C2410的數(shù)據總線是32位。CY7C4261只需接S3C2410的低 8位DO~D7。由于FIFO的先入先出結構,系統(tǒng)中不需要任何地址線的參與,大大簡化了電路。A/D采樣所得數(shù)據要實時送入FIFO,兩者的寫時鐘頻率必須一樣,且AD9283和CY7C4261的最小時鐘輸入都是10 ns,操作起來統(tǒng)一方便。74ALS08是四-二輸入與門,把ARM的脈寬調制波輸出口中的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從模擬輸入開始到該次轉換的數(shù)據出現(xiàn)在輸出口上需要4個時鐘周期,并且在高速度采樣時導線的延時效果會非常明顯,若把A/D和FIFO的時鐘連在一起,很可能過多地采到無效數(shù)據。分開控制以后,通過軟件延時,可以方便地分別對 A/D和FIFO的時鐘進行控制。調試起來相當方便,力圖把采到無效數(shù)據的位數(shù)減至最低。AD9283的工作時序如圖2所示,CY7C4621寫時序圖如圖3所示。
采樣時。通過程序使能TOUTl,TOUT2輸出為1。此時采樣時鐘脈沖與TOUTl,TOUT2相與后被分別送入AD9283的時鐘輸入 ENCODE和CY7C4621的寫時鐘輸入WCLK。此時A/D開始工作,A/D將轉換數(shù)據送至自己的輸出口D0~D7。當寫使能WEN1為低、 WEN2為高的時候,A/D輸出口上的數(shù)據在WCLK的上升沿被依次寫入FIFO。A/D和FIFO每來一次脈沖,便完成一次模/數(shù)轉換并把數(shù)據順序存入 FIFO。CY7C4261的數(shù)據最大儲存容量是16 KB,在完成了1 6 KB次轉換之后,CY7C426l將不能再存入新的數(shù)據,此時存儲器滿標志FF輸出低電平(在未滿時輸出高電平)。把此信號接到S3C2410的外部中斷 EINTl上,利用它由高到低的變化產生中斷,以表明一組數(shù)據采集完成。
在中斷中,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ù)據便依次從CY7C4261送入S3C2410系統(tǒng),整個數(shù)據采集工作就此完成。在進行每一次數(shù)據的采集前,將CY7C4261先復位,把S3C24-10的nRSTOUTl配置為通用輸出口,給CY7C4261的RS引腳輸入一個不小于10 ns的低脈沖,即在ARM的nRSTOUTl引腳輸出一個低脈沖。這樣可以更充分地保證FIFO的讀、寫指針的穩(wěn)定。
評論