新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用FIFO設計A/D與DSP之間的接口

        用FIFO設計A/D與DSP之間的接口

        作者: 時間:2004-12-06 來源:網絡 收藏
        摘要:在采用CCD對非透明薄板厚度的測量系統(tǒng)中,采用高速等器件進行電路可以確定CCD的像點位置。由于A/D轉換器的采樣速率和DSP的工作時鐘頻率相差非常大,為了提高的工作效率,避免數據丟失和控制方便,采用小容量的作為兩者可以產生很好的效果。

        關鍵詞:

        1 前言

        在使用CCD對非透明薄板厚度的測量系統(tǒng)中,筆者采用高速A/D和DSP等器件設計信號采集和處理電路來確定CCD的像點位置。其具體電路如圖1所示,該信號采集和處理電路由CCD驅動電路、加法電路、濾波放大等信號預處理電路、A/D轉換電路、FIFO、DSP電路、時序與邏輯控制產生電路、USB總線電路等組成。其中DSP芯片選用TI公司生產的TMS320C6211高速數字信號處理芯片?它主要用于對A/D轉換后的數據進行插值和重心算法處理,從而確定CCD上像元的位置,然后把處理后的數據通過USB總線傳輸到PC機進行厚度計算、結果顯示、存儲等后續(xù)處理。該電路所需的時鐘信號和采樣邏輯控制時序由一片FPGA芯片產生。

        當模擬信號由ADC轉換成數字信號后,往往都需要輸入DSPs的CPU作進一步處理。但A/D轉換后數據輸出與DSP的讀外部數據的時鐘很難精確地配合。即使DSP能讀取到外部總線上的數據,由于A/D速率是4MHz,DSP外部存儲器時鐘為90MHz,為了讀到總線上的數據,DSP外部存儲器讀寫時鐘也必須控制在4MHz,這樣就大大降低了DSP的使用效率,同時再加上DSP處理數據也需要一定的時間,而不能一味地讀取外部數據。所以,為了控制方便,避免數據丟失,設計時應采用小容量的FIFO作為兩者。本設計選用的FIFO芯片是Cypress公司的CY7C425-25ns。該芯片容量為1k9bit,存取時間最大為25ns,讀寫周期最小為35ns。該器件具有半滿(HF)、全滿(FF)和空(EF)三個標志位輸出,可以同時滿足深度和寬度級聯的需要。

        圖1

        2 DSP與FIFO芯片的工作原理

        2.1 FIFO讀寫過程

        FIFO的一次讀寫過程如圖2所示,由于FIFO是順序讀取數據,因此?只需提供讀寫和其它控制信號線,而不需要一般RAM所需的地址線。若將兩路A/D輸出的數據存入FIFO中,每片FIFO用8bit?兩片FIFO即可級聯構成16bit的數據寬度。由于FIFO采用的是5V供電,所以經電壓轉換器件74LVTH244可將5V數據信號電平轉換成3.3V,然后與DSP的16Bit外部數據總線相連。再由FIFO的半滿信號HF作為外部中斷信號,當FIFO存儲器半滿時,便可由HF經邏輯處理后向DSP發(fā)出中斷申請INT4。由于外部FIFO占用著DSP的CE0空間,所以讀信號的邏輯關系為:R=CE0+ARE,啟動DSP 的EDMA(Enhanced Direct Memory Access)通道傳輸,可將FIFO中的數據讀入內部RAM中,這樣,在FIFO輸出數據的同時,也將A/D轉換的數據寫入了FIFO中,從而達到了同時讀寫的目的。使用EDMA方式傳輸數據的好處在于:EDMA控制器可以獨立于CPU工作,從而可方便地實現片內存儲器、片內外設以及外部存儲空間的數據轉移。由外部中斷INT4啟動EDMA傳輸,可以大大提高傳輸速率和CPU的工作效率。DSP讀完2048個數據后即開始處理,處理完后便可以在一次掃描結束與下一次掃描尚未開始的時間內將16Bit計算結果數據輸出,總的處理時間為一個幀周期。FIFO的寫信號可由FPGA產生,并可在A/D轉換結束后向FIFO寫數據。另外,在每一幀處理之后,還應由FPGA輸出控制信號以對FIFO進行初始化,然后重新輸入下一幀數據。

        2.2 DSP的讀時序設計

        DSP可以通過硬件的ARDY信號和軟件設置來達到與異步外設之間進行通訊的目的。DSP工作時,硬件ARDY信號應始終有效。而如果采用軟件設置方法,則設計時需要考慮以下幾點:

        (1)SETUP≥1;

        (2)STROBE≥?tacc+tsu)ECLK;

        (3)STOBE≥trp ECLK;

        (4)SETUP+STROBE+HOLD≥trc ECLK;

        其中,SETUP、STROBE和HOLD是需要在EMIF CE0空間控制寄存器中配置的讀信號的三個狀態(tài)信號;tacc是FIFO的存取時間(≤25ns),tsu是數據建立時間(≥15ns),trp是讀脈沖寬度(≥25ns),trc是FIFO的讀周期(≥35ns)。由于本設計中DSP的內部時鐘為150MHz,外設時鐘ECLK為90MHz,所以,最后設定SETUP=1、STROBE=2、HOLD=2來滿足DSP與異步FIFO接口的要求。

        2.3 軟件設計

        圖3所示是該系統(tǒng)中DSP的軟件流程圖。由于TMS320C6211采用ROM加載的芯片自舉模式,因此,在芯片復位過程中,EDMA將從位于外部CE1空間的EEPROM中拷貝1kB數據到地址0處,并在傳輸結束后,使CPU退出復位狀態(tài),同時從地址0處開始執(zhí)行指令。由于主程序大小要大于1kB,所以需要編寫BOOT LOAD(大小小于1kB)程序,以使其在復位后將程序從外部EEPROM拷貝到內部程序RAM中運行。在圖3所示的主程序流程圖中,當系統(tǒng)上電復位后,首先應進行DSP的初始化,接著進行EDMA的中斷使能和初始化,然后由FIFO的半滿信號啟動EDMA傳輸和由其觸發(fā)中斷程序。當傳輸完一組2048個數據后,再根據重心算法求出CCD像點的位置,之后便可開始下一次循環(huán)。

        3 結束語

        在高速數據采集電路中,使用FIFO設計DSP芯片和A/D轉換器的接口電路具有設計簡單、控制方便等優(yōu)點,可大大提高DSP的使用效率。



        關鍵詞: 之間 接口 DSP A/D 設計 FIFO

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 隆德县| 漳浦县| 南城县| 上林县| 枞阳县| 喀喇| 封开县| 金华市| 灵宝市| 美姑县| 临江市| 永修县| 三门峡市| 仲巴县| 浑源县| 扎兰屯市| 平度市| 黄浦区| 沐川县| 三穗县| 茶陵县| 冷水江市| 通海县| 沙洋县| 霍山县| 昭苏县| 仁化县| 北宁市| 普兰县| 太和县| 航空| 焦作市| 和林格尔县| 聊城市| 景谷| 余姚市| 瑞金市| 来凤县| 丁青县| 故城县| 延吉市|