摘 要: 在基于ARM的超聲波測厚系統(tǒng)中,ARM處理器的數(shù)據(jù)接收能力往往與A/D芯片的工作速率不匹配,為避免有效數(shù)據(jù)丟失,提高系統(tǒng)工作效率,用FIFO作為高速A/D與ARM處理器之間的中轉(zhuǎn)接口會得到很好的效果。這里以FIFO存儲器CY7C4261作為中轉(zhuǎn)器件實現(xiàn)了A/D芯片AD9283與ARM處理器S3C2410的接口設(shè)計,并敘述了數(shù)據(jù)從A/D芯片到ARM的整個數(shù)據(jù)采集過程。該接口電路用FIFO實現(xiàn)了超聲測厚系統(tǒng)中A/D與ARM之間的無縫連接,提高了系統(tǒng)測厚精度。它的電路簡單,調(diào)試方便,具有較高的應(yīng)用價值。
關(guān)鍵詞: FIFO; A/D; ARM; 接口電路
中圖分類號: TP368.1文獻標識碼: B
文章編號: 1004-373X(2010)08-0035-03
Design of A/D and ARM Interface for Ultrasonic Thickness Measurement System Based on FIFO
LIN Guo-qing,GAO Xiao-rong,WANG Li,WANG Ze-yong
(School of Physical Science and Technology,Southwest Jiaotong University,Chengdu 610031,China)
Abstract:In the ultrasonic thickness measurement system based on ARM,usually,the data reception capability of ARMcannot match the operation speed of A/D chip.In order to avoid loss of the valid data and improve the efficiency of the system, taking a FIFO chip as the transfer interface between the high-speed A/D chip and ARM processor can get good result. The design ofthe transfer interface between the A/D chip AD9283 and the ARM chip S3C2410 was realized with the FIFO chip CY7C4261 as a transfer device. The whole process of data acquisition from A/D to ARM is described.Seamless connection between A/D and ARM chips in the ultrasonic thickness measurement system is achieved by FIFO. The precision of the measurement is improved.The circuit is simple and easy to debug, and has higher applicable value.
Keywords: FIFO; A/D; ARM; interface circuit
在高頻超聲波數(shù)據(jù)采集系統(tǒng)中,很多高速A/D轉(zhuǎn)換器往往不能直接與處理器相連接,這時就需要使用FIFO在處理器與A/D轉(zhuǎn)換器之間架一座橋梁,F(xiàn)IFO的先入先出特性可以方便緩存大量的數(shù)據(jù)塊[1]。在基于ARM的超聲波測厚系統(tǒng)中,所用為1 MHz以上的高頻超聲波探頭,測量數(shù)據(jù)經(jīng)A/D轉(zhuǎn)換后頻率與ARM處理器的數(shù)據(jù)接收能力不匹配,因此需在A/D與ARM處理之間連接一個FIFO來解決以上問題。該設(shè)計選用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設(shè)備,SD主機和MMC接口,2路SPI。S3C2410是16/32位RISC體系結(jié)構(gòu)處理器[2],使用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采樣速率相一致。該設(shè)計選用CY公司的FIFO存儲器CY7C4261,其最大采樣速率達100 MHz,與AD9283最大采樣速率相同;容量為16 KB×9 B,可以滿足數(shù)據(jù)量要求[1]。
2 接口設(shè)計
AD9283是8位模/數(shù)轉(zhuǎn)換器,CY7C4261是9位FIFO,S3C2410的數(shù)據(jù)總線是32位,CY7C4261只需接S3C2410的低8位D0~D7。由于FIFO的先入先出結(jié)構(gòu),系統(tǒng)中不需要任何地址線的參與,大大簡化了電路。A/D采樣所得數(shù)據(jù)要實時送入FIFO,兩者的寫時鐘頻率必須一樣,且AD9283和CY7C4261的最小時鐘輸入都是10 ns,操作起來統(tǒng)一方便。74ALS08是四-二輸入與門,把ARM的脈寬調(diào)制波輸出口中的TOUT1(GPB1),TOUT2(GPB2)配置為通用輸出口,對74ALS08的通斷進行控制,從而對A/D和FIFO的寫時鐘進行控制。S3C2410的CLKOUT0與CY7C4261的RCLK相連為FIFO提供讀時鐘。CY7C4261的全滿標志位FF與S3C2410的外部中斷EINT1相連用以觸發(fā)外部中斷。S3C2410的nRSTOUT1與CY7C4261的RS相連用以復(fù)位FIFO[35]。
接口框圖如圖1所示。
3 時序設(shè)計
通過兩個與門分別對A/D和FIFO的寫時鐘進行控制。因為AD9283從模擬輸入開始到該次轉(zhuǎn)換的數(shù)據(jù)出現(xiàn)在輸出口上需要4個時鐘周期,并且在高速度采樣時導(dǎo)線的延時效果會非常明顯,若把A/D和FIFO的時鐘連在一起,很可能過多地采到無效數(shù)據(jù)。分開控制以后,通過軟件延時,可以方便地分別對A/D和FIFO的時鐘進行控制,調(diào)試起來相當方便,力圖把采到無效數(shù)據(jù)的位數(shù)減至最低。AD9283的工作時序如圖2所示\\,CY7C4621寫時序圖如圖3所示\\。
圖1 A/D,F(xiàn)IFO與ARM的接口框圖
圖2 AD9283的工作時序圖
圖3 CY7C4621寫時序圖
采樣時,通過程序使能TOUT1,TOUT2輸出為1。此時采樣時鐘脈沖與TOUT1,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,在完成了16 KB次轉(zhuǎn)換之后,CY7C4261將不能再存入新的數(shù)據(jù),此時存儲器滿標志FF輸出低電平(在未滿時輸出高電平)。把此信號接到S3C2410的外部中斷EINT1上,利用它由高到低的變化產(chǎn)生中斷,以表明一組數(shù)據(jù)采集完成。
在中斷中,ARM首先迅速關(guān)閉采樣脈沖信號(使TOUT1和TOUT2)的輸出為0,停止A/D和FIFO的工作。ARM外部時鐘信號CLKOUT0與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先復(fù)位,把S3C2410的nRSTOUT1配置為通用輸出口,給CY7C4261的RS引腳輸入一個不小于10 ns的低脈沖,即在ARM的nRSTOUT1引腳輸出一個低脈沖。這樣可以更充分地保證FIFO的讀、寫指針的穩(wěn)定[1,8-10]。
4 數(shù)據(jù)采集流程
超聲波測厚系統(tǒng)數(shù)據(jù)采集工作流程主要包括ARM初始化、輸入激勵脈沖、使能外部中斷、時鐘送入A/D、FIFO、等待中斷,停止A/D及FIFO,ARM讀數(shù)據(jù),復(fù)位FIFO。流程圖如圖4所示。
圖4 系統(tǒng)數(shù)據(jù)采集流程圖
5 結(jié) 語
通過實際設(shè)計在基于ARM的超聲波無損檢測系統(tǒng)中,采用FIFO可以使高速A/D與ARM處理器之間得到很好的無縫連接,解決兩者之間不匹配的問題。通過軟件設(shè)置,可以靈活調(diào)整A/D,F(xiàn)IFO及ARM的操作時序,調(diào)試簡便,保證了數(shù)據(jù)采集的安全可靠。該接口電路簡單,靈活高效,具有很高的應(yīng)用價值。
參考文獻
[1]武曉東, 戴波.基于FIFO的高速A/D和DSP接口設(shè)計[J].北京石油化工學(xué)院學(xué)報, 2006, 14(2): 26-29.
[2]佚名. S3C2410中文用戶手冊(1.0版本)[M]. 2004.
[3]孫秋野, 孫凱, 馮建.ARM嵌入式系統(tǒng)開發(fā)典型模塊[M].北京: 人民郵電出版社, 2007.
[4]黃智偉, 鄧月明, 王彥.ARM9嵌入式系統(tǒng)設(shè)計基礎(chǔ)教程[M].北京: 北京航空航天大學(xué)出版社, 2008.
[5]李巖, 孟曉英.基于ARM嵌入式系統(tǒng)接口技術(shù)[M].北京: 清華大學(xué)出版社, 2009.
[6]Analog Devices Incorporation. AD9283 A/D converter data manual[M]. \\: Analogy Devices Incorporation, 2001.
[7]Cypress Incorporation. CY7C4261 16K x 9 deep sync FIFOs data manual[M]. \\: Cypress Incorporation, 2001.
[8]陳光成.用FIFO實現(xiàn)A/D與ARM處理器的接口[J].單片機與嵌入式系統(tǒng)應(yīng)用, 2006(11): 69-70.
[9]單承剛.基于S3C2410的超聲波避障系統(tǒng)設(shè)計[J].計算機與數(shù)字工程, 2009(2): 55-57.
[10]陳春林, 陳宗海, 卓睿.基于多超聲波傳感器的自主移動機器人探測系統(tǒng)[J].測控技術(shù), 2004, 23(6): 11-13.