SEP3203處理器是由東南大學國家專用集成電路系統(tǒng)工程技術研究中心設計的16/32位RISC微控制器,,面向低成本手持設備和其他通用嵌入式設備,。該處理器內嵌ARM7TDMI處理器內核,為用戶提供了面向移動終端應用的豐富外設,、低功耗管理和低成本的外存配置,,整個芯片可以運行在75 MHz,。數(shù)據(jù)通信系統(tǒng)使用的主要功能模塊如下:20 KB片上零等待靜態(tài)存儲器(eSRAM);外部存儲器接口控制器(EMI),;中斷控制器(INTC),;DMA控制器(DMAC)。
系統(tǒng)中使用的FPGA為Altera公司的Cyclone系列中的EP1C6Q240C8,,擁有豐富的I/O資源和邏輯資源,,外部接口遵循SRAM時序。它主要負責提供信號的A/D采樣頻率,,并將A/D轉換后的數(shù)據(jù)存儲到一組FIFO中,,待FIFO的FF(Full Flag)端口有效后,將FIFO中的數(shù)據(jù)讀回,,同時使能另一組FIFO的寫時序,,實現(xiàn)了信號不間斷的采樣和存儲。
FPGA將一組數(shù)據(jù)處理完畢后,,以中斷的方式通知SEP3203,,處理器以DMA方式將運算后的結果存儲到片外的SDRAM中。由于數(shù)據(jù)寫滿FIFO的時間大于FPGA處理數(shù)據(jù)的時間,,所以整個系統(tǒng)實現(xiàn)了流水線操作,。
1系統(tǒng)的總體設計[1-2]
系統(tǒng)硬件主要由信號采集模塊、FIFO,、FPGA和SEP3203處理器組成,。信號采集模塊主要包括信號接收器和A/D轉換模塊。接收到的信號首先要通過NE5534進行放大,,NE5534采用±5 V供電,。圖1為系統(tǒng)總體框圖。
![]() |
系統(tǒng)中的A/D轉換芯片使用了ADI公司的AD1672,,它采用4級流水線結構,在3 Msps采樣速度下精度為12位,。FIFO選用了IDT公司的IDT7202,。它具有輸入和輸出兩套數(shù)據(jù)線,獨立的讀/寫地址指針在讀/寫脈沖的控制下順序地從雙口FIFO讀/寫數(shù)據(jù),,讀/寫地址指針均從第一個存儲單元開始,,直到最后一個存儲單元,然后又回到第一個存儲單元,。為了支持9位數(shù)據(jù)寬度的存儲,,系統(tǒng)采用了2片IDT7202將數(shù)據(jù)寬度擴展為16位,共使用了4片IDT7202實現(xiàn)了FIFO的協(xié)同工作,。在系統(tǒng)工作時,,IDT7202內部的仲裁電路通過對讀指針和寫指針的比較,,相應給出FIFO的空(EF)和滿(FF)狀態(tài)指示;FPGA可以根據(jù)所獲得的FIFO狀態(tài)標志控制FIFO的讀/寫時序,,實現(xiàn)對FIFO的讀/寫操作,。
Cyclone系列的FPGA支持多種I/O電平標準,包括3.3 V,、2.5 V和1.8 V的LVTTL和LVCMOS電平,。SEP3203處理器的I/O電平為3.3 V,與工作在3.3 V的FPGA電平兼容,,可以直接相連,。由于FIFO必須是5 V供電,所以FPGA將數(shù)據(jù)從FIFO讀入內部存儲器時,,需要經(jīng)過一個電平轉換芯片,。系統(tǒng)選用了IDT公司的IDT74LVC16245,它支持8/16位數(shù)據(jù)的雙向傳輸,。
2 SEP3203與FPGA的接口電路設計
2.1 硬件設計[3]
系統(tǒng)中的FPGA輸入時鐘由外部晶振提供,,為20MHz。FPGA的復位信號通過SEP3203的I/O口實現(xiàn),。本系統(tǒng)有2個觸發(fā)信號:硬件觸發(fā)信號和軟件觸發(fā)信號,。硬件觸發(fā)信號低電平有效,軟件觸發(fā)信號高電平有效,。首先,,SEP3203處理器產(chǎn)生復位信號復位FPGA內部的邏輯電路;當FPGA檢測到任何一個有效觸發(fā)信號后,,會按照SEP3203處理器配置的分頻因子,,將in_clk分頻后輸出div_clk給A/D采樣電路。硬件實現(xiàn)框圖如圖2所示,。
![]() |
A/D采樣數(shù)據(jù)在采樣時鐘有效后短時間內可能會是無效的,,所以SEP3203要配置一定的延時值給FPGA。當延時滿足后,,F(xiàn)PGA才將FIFO的寫時序輸出到IDT7202的寫端口,。確保采集到的數(shù)據(jù)為有效數(shù)據(jù)。
圖3是SEP3203處理器輸入到FPGA內部的控制信號的仿真波形圖,。in_rst_n_a是復位信號,,in_we_n和in_cs_n是SEP3203的寫信號和片選信號。系統(tǒng)中FPGA接到了處理器的CSB片選上,,該片選的地址映射默認為0x24000000~0x27FFFFFF,,in_addr是地址線,in_data為輸入數(shù)據(jù)。這里將延時設為2,,分頻因子設為10,,之后通過往地址0x24000804寫1,用軟件使能系統(tǒng),。in_trig為硬件觸發(fā)信號,。
![]() |
2.2軟件設計[4]
一旦軟件使能系統(tǒng),F(xiàn)PGA就會輸出div_clk給A/D采樣電路,。div_clk可以通過軟件靈活配置,,這里Div_clk為1 MHz。
3 FPGA與FIFO的數(shù)據(jù)通信接口設計
在FPGA與FIFO數(shù)據(jù)通信接口設計中,,F(xiàn)PGA主要輸出控制時序到IDT7202的復位,、寫和讀端口,實現(xiàn)A/D轉換數(shù)據(jù)到FIFO的存儲,,并將數(shù)據(jù)從FIFO讀入FPGA的內部存儲器,。一旦延時滿足,F(xiàn)PGA就輸出寫時序給FIFO的寫端口(nW),,同時檢測FIFO的nFF(Full Flag)信號,。若該信號為低,則說明FIFO已經(jīng)寫滿1 024個半字(16位),。此時,,F(xiàn)PGA輸出讀時序給該組FIFO,同時輸出寫時序給另一組FIFO,,以不間斷地存儲A/D采樣數(shù)據(jù),。
這部分電路在硬件實現(xiàn)上比較簡單,IDT7202的輸出數(shù)據(jù)通過電平轉換芯片IDT74LVC16245輸出給FPGA,,F(xiàn)PGA輸出控制時序到FIFO,。由于FPGA輸出邏輯"1"時的最低電壓Uoh為2.4 V,輸出邏輯"0"時的最高電壓Uol為0.4 V,,而IDT7202輸入邏輯"1"時的最低電壓為2.2 V,,輸入邏輯"0"時的最高電壓為0.8 V,所以FPGA到FIFO的控制時序無須進行電平轉換,,控制端口可以直接相連,。
系統(tǒng)中FPGA輸出完全符合FIFO讀寫時序的脈沖,控制FIFO的讀寫操作,。圖4是仿真波形圖。
![]() |
IDT7202的異步讀寫操作時序如圖5所示,。
![]() |
表1是IDT7202異步讀寫操作時序的參數(shù)及說明,。
![]() |
當FPGA檢測到in_ff_n_1為低時,fifo_ff_pulse就產(chǎn)生一個50 ns的高脈沖;檢測到該脈沖后,,out_wr_n_1持續(xù)高電平,,out_rd_n_1輸出有效讀時序;同時out_wr_n_1輸出有效寫時序,。寫時序以1 MHz的頻率輸出持續(xù)100ns低電平的脈沖,;讀時序低電平持續(xù)100 ns,高電平持續(xù)50 ns,。FPGA根據(jù)out_FPGA_rd信號來采集FIFO輸出的數(shù)據(jù),。
4 SEP3203與FPGA的數(shù)據(jù)通信接口設計
數(shù)據(jù)經(jīng)FPGA做算法處理后,由SEP3203處理器將結果存儲到片外SDRAM中,,SDRAM使用的是Winbond公司的W981216BH,。硬件實現(xiàn)框圖如圖6所示。
![]() |
SEP3203對FPGA的訪問遵循SRAM時序,,圖7為SEP3203讀數(shù)據(jù)時的信號仿真波形圖,。
通過DMA方式傳輸數(shù)據(jù)時,in_cs_n和in_rd_n信號一直為低,,所以只有通過in_addr信號來控制FPGA的內部存儲器地址,。處理后的A/D數(shù)據(jù)擴展為32位。
SEP3203處理器默認的AHB總線寬度是32位,。當使用DMA傳輸時,,源和目的數(shù)據(jù)可以是不同的寬度,可以等于或小于總線的物理寬度,,DMAC會對數(shù)據(jù)進行適當?shù)拇虬徒獍?,以滿足AHB總線寬度。由于FPGA與SEP3202處理器之間只有16位數(shù)據(jù)總線,,所以設計中源地址數(shù)據(jù)寬度設為16位,,目的地址數(shù)據(jù)寬度設為32位。程序如下:
5性能分析
為了實現(xiàn)系統(tǒng)的流水線操作,,使用了EP1C6Q240C8中的PLL模塊,。FPGA的外部晶振頻率為20 MHz,PLL提供70 MHz的時鐘,,主要用于A/D數(shù)據(jù)的處理和結果輸出,。采集1 024個16位數(shù)據(jù)的時間為(1/div_clk)×1024,數(shù)據(jù)從FIFO讀入到結果輸出的時間為580μs左右,,所以當用1.7 MHz以下的頻率采樣A/D數(shù)據(jù)時,,系統(tǒng)工作正常。若需要更高的A/D采樣頻率,,則可通過優(yōu)化數(shù)據(jù)處理過程來實現(xiàn),。
![]() |
另外,,為了提高軟件的執(zhí)行速度,將代碼放在SEP3203處理器的eSRAM中執(zhí)行,。它是片上SRAM,,實現(xiàn)了單周期數(shù)據(jù)讀/寫,可以提供比外存高得多的性能(0.89 MIPS/MHz),,極大地縮短了軟件執(zhí)行時間,,提高了系統(tǒng)性能。
6 總結
本文給出了SEP3203處理器的FPGA數(shù)據(jù)通信接口設計,,限于篇幅,,具體的硬件電路和軟件源代碼未能詳細列出。目前,,該系統(tǒng)已在東南大學ASIC中心GE02實驗板上調試通過,,可以正常工作。