用FIFO設計A/D與DSP之間的接口
發布時間:2007/8/15 0:00:00 訪問次數:795
文章作者:聞路紅 童衛旗 陳桂林
摘要:在采用CCD對非透明薄板厚度的測量系統設計中,采用高速A/D和DSP等器件進行電路設計可以確定CCD的像點位置。由于A/D轉換器的采樣速率和DSP的工作時鐘頻率相差非常大,為了提高DSP的工作效率,避免數據丟失和控制方便,采用小容量的FIFO作為兩者之間的接口可以產生很好的效果。
關鍵詞:A/D;DSP;FIFO
1 前言
在使用CCD對非透明薄板厚度的測量系統設計中,筆者采用高速A/D和DSP等器件設計信號采集和處理電路來確定CCD的像點位置。其具體電路如圖1所示,該信號采集和處理電路由CCD驅動電路、加法電路、濾波放大等信號預處理電路、A/D轉換電路、FIFO、DSP電路、時序與邏輯控制產生電路、USB總線接口電路等組成。其中DSP芯片選用TI公司生產的TMS320C6211高速數字信號處理芯片它主要用于對A/D轉換后的數據進行插值和重心算法處理,從而確定CCD上像元的位置,然后把處理后的數據通過USB總線傳輸到PC機進行厚度計算、結果顯示、存儲等后續處理。該電路所需的時鐘信號和采樣邏輯控制時序由一片FPGA芯片產生。
當模擬信號由ADC轉換成數字信號后,往往都需要輸入DSPs的CPU作進一步處理。但A/D轉換后數據輸出與DSP的讀外部數據的時鐘很難精確地配合。即使DSP能讀取到外部總線上的數據,由于A/D速率是4MHz,DSP外部存儲器時鐘為90MHz,為了讀到總線上的數據,DSP外部存儲器讀寫時鐘也必須控制在4MHz,這樣就大大降低了DSP的使用效率,同時再加上DSP處理數據也需要一定的時間,而不能一味地讀取外部數據。所以,為了控制方便,避免數據丟失,設計時應采用小容量的FIFO作為兩者之間的接口。本設計選用的FIFO芯片是Cypress公司的CY7C425-25ns。該芯片容量為1k×9bit,存取時間最大為25ns,讀寫周期最小為35ns。該器件具有半滿(HF)、全滿(FF)和空(EF)三個標志位輸出,可以同時滿足深度和寬度級聯的需要。
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發出中斷申請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空間控制寄存器中配置的讀信號的三個狀態信號;tacc是FIFO的存取時間(≤25ns),tsu是數據建立時間(≥15ns),trp是讀脈沖寬度(≥25ns),trc是FIFO的讀周期(≥35ns)。由于本設計中DSP的內部時鐘為150MHz,外設時鐘ECLK為90MHz,所以,最后設定SETU
文章作者:聞路紅 童衛旗 陳桂林
摘要:在采用CCD對非透明薄板厚度的測量系統設計中,采用高速A/D和DSP等器件進行電路設計可以確定CCD的像點位置。由于A/D轉換器的采樣速率和DSP的工作時鐘頻率相差非常大,為了提高DSP的工作效率,避免數據丟失和控制方便,采用小容量的FIFO作為兩者之間的接口可以產生很好的效果。
關鍵詞:A/D;DSP;FIFO
1 前言
在使用CCD對非透明薄板厚度的測量系統設計中,筆者采用高速A/D和DSP等器件設計信號采集和處理電路來確定CCD的像點位置。其具體電路如圖1所示,該信號采集和處理電路由CCD驅動電路、加法電路、濾波放大等信號預處理電路、A/D轉換電路、FIFO、DSP電路、時序與邏輯控制產生電路、USB總線接口電路等組成。其中DSP芯片選用TI公司生產的TMS320C6211高速數字信號處理芯片它主要用于對A/D轉換后的數據進行插值和重心算法處理,從而確定CCD上像元的位置,然后把處理后的數據通過USB總線傳輸到PC機進行厚度計算、結果顯示、存儲等后續處理。該電路所需的時鐘信號和采樣邏輯控制時序由一片FPGA芯片產生。
當模擬信號由ADC轉換成數字信號后,往往都需要輸入DSPs的CPU作進一步處理。但A/D轉換后數據輸出與DSP的讀外部數據的時鐘很難精確地配合。即使DSP能讀取到外部總線上的數據,由于A/D速率是4MHz,DSP外部存儲器時鐘為90MHz,為了讀到總線上的數據,DSP外部存儲器讀寫時鐘也必須控制在4MHz,這樣就大大降低了DSP的使用效率,同時再加上DSP處理數據也需要一定的時間,而不能一味地讀取外部數據。所以,為了控制方便,避免數據丟失,設計時應采用小容量的FIFO作為兩者之間的接口。本設計選用的FIFO芯片是Cypress公司的CY7C425-25ns。該芯片容量為1k×9bit,存取時間最大為25ns,讀寫周期最小為35ns。該器件具有半滿(HF)、全滿(FF)和空(EF)三個標志位輸出,可以同時滿足深度和寬度級聯的需要。
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發出中斷申請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空間控制寄存器中配置的讀信號的三個狀態信號;tacc是FIFO的存取時間(≤25ns),tsu是數據建立時間(≥15ns),trp是讀脈沖寬度(≥25ns),trc是FIFO的讀周期(≥35ns)。由于本設計中DSP的內部時鐘為150MHz,外設時鐘ECLK為90MHz,所以,最后設定SETU
上一篇:淺析光纖放大器技術