隨著光電子信息技術(shù)的迅速發(fā)展 , 直接把光學信息轉(zhuǎn)化為數(shù)字圖像已經(jīng)成為發(fā)展趨勢 ,機載CCD相機是基于數(shù)字相機的基本原理 ,將圖像以數(shù)字信息的形式存儲、轉(zhuǎn)移,并與地面實現(xiàn)通信。由于大面陣 CCD 機載相機的圖像數(shù)據(jù)量非常巨大 而且圖像輸出速率也比較高 ,所以高速圖像數(shù)據(jù)的實時記錄是一個急需解決的問題。大面陣CCD 相機的數(shù)字視頻存儲的一般方案是基于高性能計算機體系結(jié)構(gòu),把 PCI總線的視頻采集卡與高性能 IDE硬盤系統(tǒng)或基于 PCI SCSI橋的 SCSI存儲硬盤系統(tǒng)結(jié)合起來完成任務(wù)。這種方案實現(xiàn)起來比較容 ,但存在總線瓶頸問題,一次存儲占用兩次PCI總線 ,而且還受到操作系統(tǒng)和文件系統(tǒng)的限制 ,所以在實際應(yīng)用中存儲速度很難突破 40MB /S。另外基于 PC I總線的存儲方式基于計算機平臺,占用體積比較大。針對這一問題,設(shè)計出脫離計算機平臺基于 SCSI總線的圖像數(shù)據(jù)存儲方式,這種存儲方式存儲速度快,占用體積小,適合于機載相機。
1 CCD相機圖像存儲系統(tǒng)
基于SCSI總線的CCD相機圖像存儲系統(tǒng)主要由數(shù)據(jù)源、DMA控制器、外部微處理器、FAS466協(xié)議處理器及 SC圖如圖1
存儲系統(tǒng)各部分功能如下 :
(1) 外部微處理器
主要負責對各個模塊進行協(xié)調(diào)和控制。完成與CCD相機圖像數(shù)據(jù)的傳輸起始、結(jié)束控制 ; 對FAS466的初始化操作 , 對傳輸?shù)漠惓G闆r進行中斷處理 ; 在本系統(tǒng)中 , 采用 FPGA芯片實現(xiàn)外部微處理器功能。
(2) DMA控制器
控制 FIFO與 SCSI協(xié)議處理器內(nèi)部緩沖器之間的數(shù)據(jù)傳送 ,這樣通過與協(xié)議處理器的 DMA接口相協(xié)調(diào)以控制數(shù)據(jù)源與 SCSI總線間的數(shù)據(jù)傳送。本設(shè)計采用 FPGA器件實現(xiàn) DMA 控制器 , 而不用專用的 DMA 控制器 ,主要考慮以下一些因素 :本設(shè)計的數(shù)據(jù)傳輸速率比較高,一般的專用 DMA控制器難以勝任 ; 專用的 DMA 控制器與 FAS466之間的連接需要大量的邏輯轉(zhuǎn)換電路和外圍連線、使設(shè)計難度加大。使用 FPGA 器件 ,除了完成DMA控制器的功能之外 , 還可以把電路中的譯碼、邏輯轉(zhuǎn)換、系統(tǒng)復位等模塊設(shè)計進去 , 減小了設(shè)備的體積 ,方便了以后對系統(tǒng)的升級和改進。
(3) SCSI協(xié)議處理器—FAS466
SCSI協(xié)議處理器是SCSI總線操作的執(zhí)行部件。它可提供 Fast40的同步傳輸速率,它的同步數(shù)據(jù)寬總線傳輸速率可達 80MB /S。FAS466區(qū)別于其它 SCSI協(xié)議處理器的最大特點是它采用微處理器和 DMA接口結(jié)構(gòu) 而常見的 SCSI協(xié)議控制器采用 PCI接口總線結(jié)構(gòu),這是本設(shè)計采用 FAS466的一個主要原因。采用微處理器和 DMA 接口結(jié)構(gòu) ,可以通過外部微處理器對傳輸進行控制 , 脫離微機平臺 ,減少傳輸帶寬限制,使數(shù)據(jù)存儲系統(tǒng)具有非常好的靈活性和可移植性。FAS466 由 SCSI控制器、微控制器、DMA 接口和微處理器接口四個模塊組成。圖 2為 FAS466的內(nèi)部結(jié)構(gòu)。
2 DMA控制器設(shè)計
本系的軟件計分為外部微處理對FAS466的初始化及 DMA 控制器的軟件設(shè)計兩部分 , 這兩部分都通過對 FPGA芯片編程實現(xiàn) , 本文將重點介紹一下 DMA控制器的軟件設(shè)計。FAS466外部 DMA控制器利用 Verilog HDL語言對 FPGA 芯片編程實現(xiàn)。FAS466通過置 DREQ信號 有效請求數(shù)據(jù)傳輸 ;DMA控制器檢測到DREQ有效并且外部 FIFO非空 ,則使 DACK有效并通知 FAS466開始 DMA傳輸。DMA控制器的狀態(tài)機如圖 3所示。
以下是實現(xiàn)DMA控制器的數(shù)據(jù)傳輸控制程序代碼 :
always(posedge clock)
begin
if (RESET) begin
DMA state 《 = sIdle;
RE 《 = 1; W E 《 = 1; DBOE 《 = 1;
end
else if (DMAEnabled)
begin
case (DMA state)
sIdle: begin
/ /如果 DREQ有效 , 則進入等待狀態(tài) ;
if (DREQ) begin
DACK 《 = 1;
RE 《 = 1; W E 《 = 1; DBOE 《 = 1;
end
else begin
DACK 《 = 0;
DMA state 《 = #1 sIdle;
RE 《 = 1; W E 《 = 1; DBOE 《 = 1;
end
end
sDACKDelay: begin
/ /如果 DREQ無效 , 則返回空閑狀態(tài) ;
if (
~
DREQ) begin
DACK 《 = 0;
DMA state 《 = #1 sIdle;
end
/ /如果 DREQ有效 , FF_ FE無效 , 則進入數(shù)據(jù)傳
輸狀態(tài) ;
else if (
~
FF_ FE) begin
DACK 《 = 1;
DMA state 《 = #1 sDataXfer;
RE 《 = 1; W E 《 = 0; DBOE 《 = 0;
end
else begin
DMA state 《 = #1 sDACKDelay;
RE 《 = 1; W E 《 = 1; DBOE 《 = 1;
end
end
sDataXfer: begin
/ /如果 DREQ無效 , 則完成傳輸進入空閑狀態(tài) ;
if (
~
DREQ) begin
DACK 《 = 0;
DMA state 《 = #1 sIdle;
RE 《 = 1; W E 《 = 1; DBOE 《 = 1;
end
/ /如果 DREQ有效 , AF_ AE有效 , 則進入等待狀
態(tài) ;
else if (AF_ AE) begin
DACK 《 = 1;
DMA state 《 = #1 sDACKDelay;
RE 《 = 1; W E 《 = 1; DBOE 《 = 1;
end
else begin
DMA state 《 = #1 sDataXfer;
RE 《 = 1; WE 《 = 0; DBOE 《 = 0;
end
end
default:
DMA state 《 = #1 sIdle;
endcase
end
end
上面程序經(jīng) ISE軟件仿真,仿真波形如圖4所示。
3 結(jié)論
本文介紹了高速、大面陣CCD相機存儲系統(tǒng)的DMA控制器設(shè)計。運用Verilog HDL語言對 FP2GA編程實現(xiàn) DMA 控制器功能。文中給出了它的軟件程序及仿真波形。仿真結(jié)果表明為利用 FPGA芯片能夠代替專門的DMA控制器完成DMA 控制功能。FPGA的運用使設(shè)計更加靈活 ,傳輸性能更好及反應(yīng)時間更快 ,而且減小了存儲設(shè)備的體積。
評論
查看更多