《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 基于FAS466的高速CCD相機(jī)數(shù)字視頻實(shí)時(shí)存儲(chǔ)系統(tǒng)設(shè)計(jì)

基于FAS466的高速CCD相機(jī)數(shù)字視頻實(shí)時(shí)存儲(chǔ)系統(tǒng)設(shè)計(jì)

2008-04-29
作者:盛翠霞1,2,張 濤1,陳俊江1

  摘 要:為了滿(mǎn)足高幀頻" title="高幀頻">高幀頻、大面陣CCD相機(jī)數(shù)字視頻實(shí)時(shí)存儲(chǔ)要求,設(shè)計(jì)出基于SCSI協(xié)議處理器(FAS466),脫離計(jì)算機(jī)平臺(tái)的圖像數(shù)據(jù)直接存儲(chǔ)系統(tǒng)。該系統(tǒng)采用FPGA芯片編程實(shí)現(xiàn)DMA控制功能,從而協(xié)調(diào)SCSI協(xié)議處理器實(shí)現(xiàn)數(shù)據(jù)的傳輸。此外,系統(tǒng)采用雙硬盤(pán)交替存儲(chǔ)方案以提高存儲(chǔ)速度,實(shí)現(xiàn)存儲(chǔ)流量達(dá)70MBps。本文介紹了該設(shè)備的系統(tǒng)結(jié)構(gòu)和軟硬件設(shè)計(jì)方法。
  關(guān)鍵詞: FAS466協(xié)議處理器 微處理器? DMA控制器? FPGA? FIFO

  由于高幀頻、大面陣CCD數(shù)字相機(jī)的圖像數(shù)據(jù)量非常巨大,存儲(chǔ)流量超過(guò)50MBps。而且圖像輸出速率也比較高,所以高速圖像數(shù)據(jù)的實(shí)時(shí)記錄是一個(gè)不易解決的問(wèn)題。高幀頻、大面陣CCD相機(jī)的數(shù)字視頻存儲(chǔ)的一般方案是基于高性能" title="高性能">高性能計(jì)算機(jī)體系結(jié)構(gòu),把PCI總線(xiàn)的視頻采集卡與高性能IDE硬盤(pán)系統(tǒng)或基于PCI-SCSI橋的SCSI存儲(chǔ)硬盤(pán)系統(tǒng)結(jié)合起來(lái)完成任務(wù)。這種方案實(shí)現(xiàn)起來(lái)比較容易,但存在總線(xiàn)瓶頸問(wèn)題,一次存儲(chǔ)占用兩次PCI總線(xiàn),而且還受到操作系統(tǒng)和文件系統(tǒng)的限制,因而在實(shí)際應(yīng)用中存儲(chǔ)速度很難突破40MBps[1]。針對(duì)這一問(wèn)題,本文設(shè)計(jì)出脫離計(jì)算機(jī)平臺(tái)的圖像數(shù)據(jù)存儲(chǔ)方式,采用FPGA芯片控制時(shí)序,運(yùn)用VHDL語(yǔ)言編程實(shí)現(xiàn)微處理器和DMA控制功能,從而協(xié)調(diào)SCSI協(xié)議處理器實(shí)現(xiàn)數(shù)據(jù)的傳輸。FPGA的運(yùn)用比單獨(dú)使用DMA控制器減少了電路板的體積,降低了成本,提高了存儲(chǔ)的速率。
1 系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)
  實(shí)現(xiàn)SCSI協(xié)議和硬盤(pán)存儲(chǔ),通常需要有微處理器、DMA控制器、SCSI協(xié)議控制器、數(shù)據(jù)緩存" title="數(shù)據(jù)緩存">數(shù)據(jù)緩存器等硬件支持和相應(yīng)的軟件控制模塊。而本系統(tǒng)DMA控制通過(guò)對(duì)FPGA編程來(lái)實(shí)現(xiàn)。圖像數(shù)據(jù)存儲(chǔ)系統(tǒng)結(jié)構(gòu)圖如圖1所示。


1.1 微處理器
  微處理器負(fù)責(zé)對(duì)各個(gè)模塊進(jìn)行協(xié)調(diào)和控制。本系統(tǒng)所設(shè)計(jì)的專(zhuān)用高速硬盤(pán)存儲(chǔ)設(shè)備實(shí)現(xiàn)數(shù)據(jù)的持續(xù)高速存儲(chǔ),要求處理數(shù)據(jù)的速度高,因此采用DSP微處理器。微處理器主要功能如下:
 ?。?)完成與外接數(shù)據(jù)的傳輸起始、結(jié)束控制。
 ?。?)對(duì)FPGA進(jìn)行復(fù)位、開(kāi)始操作。
 ?。?)對(duì)FAS466的初始化操作,對(duì)傳輸?shù)漠惓G闆r進(jìn)行中斷處理。
 ?。?)對(duì)協(xié)議控制芯片內(nèi)部寄存器的讀寫(xiě)控制,從而控制SCSI總線(xiàn)的命令傳輸和狀態(tài)監(jiān)控。對(duì)SCSI的命令信息進(jìn)行解釋、執(zhí)行、管理;對(duì)來(lái)自SCSI總線(xiàn)的信息狀態(tài)進(jìn)行翻譯、執(zhí)行、管理。
1.2 DMA控制器
  DMA控制器控制數(shù)據(jù)發(fā)送或接收源的數(shù)據(jù)緩沖器與SCSI協(xié)議控制器內(nèi)部緩沖器之間的數(shù)據(jù)傳送,這樣通過(guò)與協(xié)議控制器的DMA接口相協(xié)調(diào)以控制數(shù)據(jù)源與SCSI總線(xiàn)間的數(shù)據(jù)傳送。本設(shè)計(jì)采用FPGA器件,利用VHDL語(yǔ)言編程實(shí)現(xiàn)DMA控制器功能,而不采用專(zhuān)用的DMA控制器,主要考慮以下一些因素:本設(shè)計(jì)的數(shù)據(jù)傳輸速率" title="傳輸速率">傳輸速率達(dá)到50MBps,而一般的專(zhuān)用DMA控制器難以勝任;專(zhuān)用的DMA控制器與SCSI協(xié)議控制芯片之間的連接需要大量的邏輯轉(zhuǎn)換電路和外圍連線(xiàn),使設(shè)計(jì)難度加大;使用FPGA器件,除了完成DMA控制功能之外,還可以把電路中的邏輯轉(zhuǎn)換、系統(tǒng)復(fù)位等模塊設(shè)計(jì)進(jìn)去,減小了設(shè)備的體積,方便了以后對(duì)系統(tǒng)的升級(jí)和改進(jìn)。
1.3? SCSI協(xié)議處理器(FAS466)
  SCSI協(xié)議處理器是SCSI總線(xiàn)操作的執(zhí)行部件,各公司都有專(zhuān)門(mén)的SCSI集成電路芯片作為協(xié)議控制器,如Qlogic公司的FAS368M、FAS466等。FAS466(Fast Architecture SCSI Processor)處理器是Qlogic公司1999年上市的一種高性能SCSI引擎,它源于Qlogic公司的TEC450/452三重嵌入式控制的鋁系列,可提供Fast40的同步傳輸速率[2],它的同步數(shù)據(jù)寬總線(xiàn)傳輸速率可達(dá)80MBps;支持先進(jìn)的SCSI自動(dòng)配置模式的1層和2層協(xié)議;內(nèi)部嵌有微控制器,能夠通過(guò)編程方式靈活地協(xié)調(diào)SCSI作業(yè)隊(duì)列,可以工作在啟動(dòng)或目標(biāo)模式并支持單端或低電壓差分模式的SCSI連接。
  FAS466區(qū)別于其他SCSI協(xié)議處理器的最大特點(diǎn)是:它采用微處理器和DMA接口結(jié)構(gòu),而常見(jiàn)的SCSI協(xié)議控制器采用PCI接口總線(xiàn)結(jié)構(gòu)。這是本設(shè)計(jì)采用FAS466的一個(gè)主要原因。采用微處理器和DMA接口結(jié)構(gòu),可以通過(guò)DSP對(duì)傳輸進(jìn)行控制,脫離微機(jī)平臺(tái),減少傳輸帶寬限制,使數(shù)據(jù)存儲(chǔ)系統(tǒng)具有非常好的靈活性和可移植性。 FAS466由SCSI控制器、微控制器、DMA接口和微處理器接口四個(gè)模塊組成。外部微處理器通過(guò)微處理器接口對(duì)FAS466進(jìn)行控制,協(xié)議控制器接受微處理器的操作指令,如總裁、選擇、失連、復(fù)位總線(xiàn)等。SCSI控制器提供靈活、有效的底層SCSI協(xié)議控制,微控制器則負(fù)責(zé)控制數(shù)據(jù)從DMA接口到SCSI硬盤(pán)的傳輸以及各個(gè)模塊之間的協(xié)調(diào)。FAS466的內(nèi)部結(jié)構(gòu)如圖2所示。


1.4 數(shù)據(jù)緩存器
  在設(shè)備的輸入接口部分,需要有數(shù)據(jù)緩存單元。數(shù)據(jù)緩存的目的是為SCSI的高速DMA傳輸做好準(zhǔn)備,使兩邊數(shù)據(jù)傳輸速度匹配。數(shù)據(jù)的流向一般是一個(gè)口進(jìn),一個(gè)口出,不對(duì)信號(hào)進(jìn)行任何處理。普通的存儲(chǔ)器在寫(xiě)入的同時(shí)不能讀取,雙口隨機(jī)存儲(chǔ)器RAM雖然也可完成這個(gè)任務(wù),但是由于它需要復(fù)雜的地址譯碼電路,所以不采用。采用FIFO芯片,可以去掉復(fù)雜的緩存器譯碼電路,大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)。緩存單元在結(jié)構(gòu)上相當(dāng)于先進(jìn)先出(First In First Out,F(xiàn)IFO)隊(duì)列,即先到的數(shù)據(jù)先被存儲(chǔ)。本設(shè)計(jì)中FIFO選用IDT公司的IDT72V2113芯片。
2系統(tǒng)的軟件設(shè)計(jì)
  軟件設(shè)計(jì)" title="軟件設(shè)計(jì)">軟件設(shè)計(jì)是本系統(tǒng)設(shè)計(jì)的重點(diǎn)和難點(diǎn),它負(fù)責(zé)對(duì)相關(guān)硬件的控制和協(xié)調(diào),最終實(shí)現(xiàn)SCSI協(xié)議、硬盤(pán)的控制和DMA傳輸?shù)?。軟件設(shè)計(jì)分為SCSI控制軟件和DMA控制器的FPGA實(shí)現(xiàn)兩部分。下面分別進(jìn)行討論。
2.1 SCSI控制軟件
  一般來(lái)說(shuō),要完成一次數(shù)據(jù)交換必須完成SCSI總線(xiàn)的仲裁、選擇、消息、命令、數(shù)據(jù)和狀態(tài)等階段。這些階段,微處理器通過(guò)對(duì)FAS466寄存器的讀寫(xiě)控制來(lái)實(shí)現(xiàn)。FAS466的寄存器主要有:
  (1)命令寄存器:DSP通過(guò)向命令寄存器寫(xiě)入相應(yīng)指
  令,控制FAS466完成初始化、復(fù)位、總線(xiàn)分配與復(fù)位以及SCSI總線(xiàn)各個(gè)階段的轉(zhuǎn)變等功能。
 ?。?)FIFO寄存器:這是一個(gè)128字節(jié)的雙端口RAM,SCSI硬盤(pán)和FAS466之間的數(shù)據(jù)交換都通過(guò)該FIFO16字(深)的FIFO寄存器來(lái)完成。
  (3)傳輸計(jì)數(shù)寄存器:是一個(gè)減法計(jì)數(shù)器,用于保存一次DMA數(shù)據(jù)傳輸?shù)淖止?jié)數(shù)。
 ?。?)中斷寄存器:DSP通過(guò)FAS466中斷寄存器了解SCSI命令的執(zhí)行情況,從而決定程序的執(zhí)行流向。
  SCSI控制軟件流程如圖3所示。首先初始化SCSI控制器,然后SCSI控制器與SCSI硬盤(pán)建立同步傳輸協(xié)議,在硬盤(pán)準(zhǔn)備好的情況下才可以發(fā)送各種SCSI命令,如讀、寫(xiě)等,同時(shí)處理好各種意外情況的發(fā)生。


2.2 DMA控制器的FPGA實(shí)現(xiàn)設(shè)計(jì)
  FAS466外部DMA控制器由FPGA實(shí)現(xiàn)。FAS466通過(guò)DREQ信號(hào)有效請(qǐng)求數(shù)據(jù)傳輸,當(dāng)DMA控制器檢測(cè)到DREQ有效并且外部FIFO非空時(shí),使DACK有效并通知FAS466開(kāi)始DMA傳輸。DMA控制器的狀態(tài)機(jī)如圖4所示。


  FPGA除了實(shí)現(xiàn)FAS466的外部DMA控制器之外,還實(shí)現(xiàn)FAS466與外部微處理器的部分邏輯和其他邏輯控制。FPGA內(nèi)部邏輯功能模塊如圖5所示。
  本文在FAST-40 SCSI協(xié)議基礎(chǔ)上,對(duì)實(shí)時(shí)高速數(shù)字視頻SCSI存儲(chǔ)系統(tǒng)的軟硬件進(jìn)行了設(shè)計(jì)。利用FAS466作為SCSI控制器實(shí)現(xiàn)啟動(dòng)器功能,控制兩塊SCSI硬盤(pán)實(shí)現(xiàn)直接存儲(chǔ),充分利用SCSI總線(xiàn)的帶寬,從而大幅度提高了系統(tǒng)的效率。初步建立了較完善實(shí)用的直接存儲(chǔ)的結(jié)構(gòu)體系,實(shí)現(xiàn)存儲(chǔ)流量達(dá)70MBps。為解決大面陣、高幀頻CCD數(shù)據(jù)實(shí)時(shí)存儲(chǔ)奠定了良好的基礎(chǔ)。該項(xiàng)技術(shù)的解決,將會(huì)大力促進(jìn)在科學(xué)研究、軍事技術(shù)、尤其在航天、航空偵察及高速數(shù)據(jù)記錄領(lǐng)域的應(yīng)用發(fā)展。
參考文獻(xiàn)
1 黃 進(jìn).基于SCSI實(shí)時(shí)高速數(shù)字視頻直接存儲(chǔ)技術(shù)的研究[D].長(zhǎng)春:中科院長(zhǎng)春光機(jī)所,2005
2 趙忠文,曾 巒.一種專(zhuān)用高速硬盤(pán)存儲(chǔ)設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2002;28(8):18~20
3 達(dá)選福,張伯珩,邊川平.高速CCD圖像數(shù)據(jù)存儲(chǔ)技術(shù)[J].光子學(xué)報(bào),2003;32(11):1393~1395
4 欒志超,歐陽(yáng)益民.用FPGA的直寫(xiě)硬盤(pán)圖像記錄技術(shù)[J].光電工程,2003;30 (6):47~49
5 歐陽(yáng)興華.計(jì)算機(jī)系統(tǒng)接口——SCSI [M].北京:電子工業(yè)出版社,1994
6 王忠寶,李變俠,曹劍中.SCSI處理器FAS466的通用軟件解決方案及應(yīng)用[J]. 國(guó)外電子元器件,2005;27(9):26~29

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。