<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > SCSI處理器FAS466的通用軟件解決方案及應用

SCSI處理器FAS466的通用軟件解決方案及應用

作者: 時(shí)間:2005-08-09 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:466是Qlogic公司的一款Fast結構的。而466的開(kāi)發(fā)難點(diǎn)之一是軟件設計。文中通過(guò)對466內部結構和操作原理的深入分析,給出了基于FAS466的系統的通用軟件解決方案和應用實(shí)例。

關(guān)鍵詞:FAS466;;控制器;微控制器

FAS466是Qlogic公司生產(chǎn)的一款高性能SCSI處理器,它可提供Fast40 SCSI同步傳輸速率,其高度集成的SCSI核心支持先進(jìn)的SCAM一層和二層協(xié)議,而內嵌的微控制器則使用戶(hù)可以通過(guò)靈活多變的編程方式協(xié)調SCSI隊列,簡(jiǎn)明清晰的外部接口使得硬件設計更為簡(jiǎn)單,尤其適合于開(kāi)發(fā)專(zhuān)用SCSI存儲系統。硬件接口的設計此前已有文章介紹,而軟件設計是基于FAS466系統的開(kāi)發(fā)難點(diǎn),目前此類(lèi)文章尚不多見(jiàn)。本文通過(guò)對FAS466處理器內部結構和操作原理的深入分析,給出了基于FAS466處理器系統的通用軟件解決方案和應用實(shí)例。

1 FAS466的結構和原理

FAS466的內部結構如圖1所示,該器件由SCSI控制器、微控制器、FIFO以及連接它們的總線(xiàn)和信號線(xiàn)組成,并通過(guò)它們?yōu)橥獠刻峁┪⑻幚砥鹘涌?、DMA接口和SCSI總線(xiàn)接口。

FAS466微處理器接口可以連接多種微處理器或DSP;而DMA接口則主要與外部DMA控制器連接?組成DMA通道;SCSI總線(xiàn)接口可以連接各種SCSI設備。其中,SCSI控制器與微控制器分別是SCSI協(xié)議的執行中心和控制核心。

1.1 SCSI控制器操作原理

SCSI控制器為SCSI協(xié)議操作提供了靈活有力的底層硬件支持。它通過(guò)32個(gè)8位寬的寄存器與外部微處理器作用。SCSI控制器命令集包括中斷命令、斷開(kāi)命令、目標器模式命令、啟動(dòng)器模式命令和混合命令。外部微處理器或者FAS466微控制器通過(guò)向SCSI控制器命令寄存器中寫(xiě)入代表特定行為的命令代碼來(lái)實(shí)現命令的發(fā)送。SCSI控制器將自動(dòng)執行命令,通過(guò)命令中斷狀態(tài)寄存器和命令狀態(tài)寄存器來(lái)反映命令完成的狀態(tài)信息。

SCSI控制器內部有五個(gè)狀態(tài)階段:復位狀態(tài)、斷開(kāi)(空閑)狀態(tài)、選擇和重選允許狀態(tài)、目標器空閑狀態(tài)和啟動(dòng)器空閑狀態(tài)。其狀態(tài)轉換圖如圖2所示。

(1)復位狀態(tài)

上電復位后,SCSI控制器處于復位狀態(tài),此時(shí)SCSI控制器不能驅動(dòng)任何SCSI總線(xiàn)信號,也不響應任何信號,命令寄存器中的命令被忽略?而且只要FAS466外部復位信號有效,SCSI控制器始終保持在這個(gè)狀態(tài)。在操作過(guò)程中,外部微處理器可以通過(guò)給SCSI控制器模塊的復位位寫(xiě)1(微處理器接口模塊復位寄存器1位)使SCSI控制器處于復位狀態(tài),寫(xiě)0使SCSI控制器進(jìn)入空閑狀態(tài)。

(2) 斷開(kāi)(空閑)狀態(tài)

當SCSI總線(xiàn)復位信號(RST)有效,且SCSI控制器不處于復位狀態(tài)或者SCSI控制器與SCSI總線(xiàn)斷開(kāi)時(shí),SCSI控制器進(jìn)入該狀態(tài),此狀態(tài)不能進(jìn)行選擇和重選操作。

(3)選擇和重選允許狀態(tài)

當斷開(kāi)模式命令允許SCSI控制器響應選擇和重選信號時(shí),系統進(jìn)入此狀態(tài),所有參與仲裁使用SCSI總線(xiàn)的命令都必須經(jīng)過(guò)此狀態(tài)。該狀態(tài)下,SCSI控制器響應總線(xiàn)發(fā)出選擇和重選事件。除非進(jìn)入目標器或啟動(dòng)器空閑狀態(tài),或者RST信號有效,否則SCSI控制器將一直保持這個(gè)狀態(tài)。

(4)目標器空閑狀態(tài)

當SCSI控制器響應總線(xiàn)發(fā)起事件或者作為其它SCSI設備重選的結果時(shí),系統進(jìn)入該狀態(tài)。此狀態(tài)下,SCSI控制器將作為目標器連接到SCSI總線(xiàn),且當BSY(總線(xiàn)忙)信號有效時(shí),系統將驅動(dòng)SCSI階段流水線(xiàn)。此狀態(tài)承認目標器模式和混合命令。除非SCSI控制器目標器斷開(kāi)(總線(xiàn)空閑)或者RST信號有效,否則SCSI控制器將一直保持該狀態(tài)。

(5)啟動(dòng)器空閑狀態(tài)

當SCSI控制器響應總線(xiàn)重選事件或者作為其它SCSI設備選擇的結果時(shí),系統進(jìn)入該狀態(tài)。此狀態(tài)下,SCSI控制器將作為啟動(dòng)器連接到SCSI總線(xiàn)上,而FAS466并不使BSY信號有效,也不驅動(dòng)SCSI階段流水線(xiàn)。SCSI控制器將一直保持這個(gè)狀態(tài)、直到SCSI總線(xiàn)空閑(目標器斷開(kāi))或者RST信號有效。

SCSI控制器根據當前狀態(tài),總線(xiàn)發(fā)起事件和命令寄存器中的命令來(lái)決定各個(gè)狀態(tài)階段之間的轉換,以實(shí)現SCSI總線(xiàn)的仲裁作用,并響應總線(xiàn)發(fā)起選擇或者重選事件以及進(jìn)行命令、消息、數據、狀態(tài)在SCSI總線(xiàn)上的傳輸等任務(wù)。

1.2 FAS466微控制器操作原理

FAS466微控制器是一個(gè)小型的Fast結構(40Million指令每秒)RISC微處理器,內部有一個(gè)32位的寄存器文件、一個(gè)五級深度的堆棧、一個(gè)整型ALU和其它特殊功能寄存器。該微控制器的所有指令都是16位寬,除了子程序在兩個(gè)指令周期(四個(gè)時(shí)鐘周期)內完成外,其它所有指令均在一個(gè)指令周期內完成。

FAS466微控制器有三種操作狀態(tài):復位狀態(tài),空閑狀態(tài)和運行狀態(tài),其狀態(tài)轉換圖如圖3所示。

系統復位時(shí),微控制器進(jìn)入復位狀態(tài),在空閑和復位狀態(tài)下,外部微處理器可以通過(guò)I/O口操作微控制器的內部寄存器和程序存儲器。首先由外部微處理器通過(guò)地址指針寄存器加載寄存器地址,然后再通過(guò)內部寄存器或者程序存儲器的字節操作寄存器來(lái)進(jìn)行操作。外部微處理器則通過(guò)設置地址指針寄存器和寫(xiě)程序數據到程序存儲器的字節寄存器來(lái)將程序下載到微控制器的程序存儲器中。下載完畢后,外部微處理器向程序計數器寫(xiě)程序開(kāi)始執行的地址,然后寫(xiě)01h到控制狀態(tài)寄存器,這樣程序就會(huì )從指定的位置開(kāi)始執行以進(jìn)入運行狀態(tài)。微控制器運行過(guò)程中,外部微處理器不能打斷微控制器或者SCSI控制器,直到收到微控制器產(chǎn)生的一個(gè)中斷。在運行狀態(tài),外部微處理器可以操作郵箱寄存器但不能操作通用功能寄存器。當微控制器已執行完當前指令又沒(méi)有接收到新的指令時(shí),系統將進(jìn)入空閑狀態(tài)以等待新的命令。

2 FAS466的軟件解決方案

基于FAS466的系統可通過(guò)外部微處理器、FAS466微控制器和SCSI控制器的協(xié)調工作來(lái)實(shí)現系統功能。根據FAS466的內部結構和原理分析,這里給出如圖4所示的基于FAS466的系統整體軟件設計流程。其軟件工作過(guò)程如下:

(1)外部微處理器初始化FAS466微控制器和SCSI控制器。(FAS466微控制器初始化包括裝載和執行它的固件)。

(2)FAS466微控制器允許SCSI控制器對SCSI總線(xiàn)選擇隊列的響應。

(3)外部微處理器寫(xiě)一個(gè)SCSI操作命令給外部命令/設置郵箱寄存器,然后設置LoadTBS位(外部 TBS寄存器6位),以通知FAS466微控制器有一個(gè)未響應請求。

(4)FAS466位控制器檢查 LoadTBS位,確認請求。

(5)FAS466禁止SCSI控制器對SCSI總線(xiàn)選擇和重選事件的響應。

(6)FAS466微控制器復制外部命令/設置寄存器的內容給存儲器,清除LoadTBS位,以允許外部微處理器在等待一個(gè)微控制器中斷前設置下一個(gè)命令。

(7)FAS466微控制器向SCSI控制器發(fā)送命令(一般用EXEC #k),SCSI控制器執行命令并在命令完成后產(chǎn)生一個(gè)中斷。

(8)FAS466微控制器進(jìn)行中斷處理得到SCSI操作的邏輯結果后,產(chǎn)生一個(gè)中斷給外部微處理器。

(9)外部微處理器根據命令的執行情況進(jìn)行中斷處理。

重復執行(2)~(9)步實(shí)現系統的連續操作。

DMA傳輸是基于FAS466系統的主要工作。在傳輸數據量確定的情況下,數據量可由編程時(shí)寫(xiě)入的塊數計數器和塊大小寄存器中的值決定。但由于實(shí)際應用系統的傳輸數據量存在不確定性,在設計DMA數據傳輸程序時(shí),應使SCSI FIFO中始終充滿(mǎn)數據,或使DMA控制器或SCSI控制器持續讀寫(xiě)SC-SI FIFO,以使SCSI總線(xiàn)上的數據傳輸不受啟動(dòng)器或目標器的限制。FIFO的空、滿(mǎn)門(mén)限可由外部微處理器在初始化時(shí)通過(guò)編程設定。

在傳輸數據量不確定的情況下,從外部DMA控制器接收數據的子程序如圖5所示。SCSI控制器接收到傳輸命令后即可參與總線(xiàn)仲裁以獲得總線(xiàn)的控制權,而外部微處理器則通過(guò)設置RDATA位來(lái)決定數據傳送的方向;在FIFO為空而數據接收未完成時(shí),SCSI控制器進(jìn)行一次空操作,等待數據。數據量的不確定性可能使得命令完成后FIFO中仍殘留數據,此時(shí)可以選擇暫停傳輸進(jìn)入EXFER(表示數據傳輸過(guò)程中出現錯誤)中斷并清空FIFO,也可使其它處理回到傳輸起點(diǎn),或者忽略錯誤直接回到傳輸起點(diǎn)。數據傳送完畢可以選擇是否斷開(kāi)與SCSI總線(xiàn)的連接。若選擇斷開(kāi)則進(jìn)入XFERCMPDSC(表示傳輸完成并與SCSI總線(xiàn)斷開(kāi))中斷,以釋放總線(xiàn)的控制權而讓其它的命令使用總線(xiàn),此時(shí),如果想要進(jìn)行下一次數據傳輸,必須重新獲得總線(xiàn)控制權。若選擇不斷開(kāi)總線(xiàn)則進(jìn)入XFERCMPNODSC(表示傳輸完成且不與SCSI總線(xiàn)斷開(kāi))中斷,可直接回到數據傳輸的起點(diǎn)。在所有正常情況下,FAS466都將循環(huán)回到數據傳輸起點(diǎn),以便進(jìn)行連續數據傳輸。

3 應用實(shí)例

基于FAS466的視頻存儲系統可實(shí)現數字圖像的無(wú)壓縮海量存儲,該系統硬件框圖如圖6所示。圖中,DSP接收到開(kāi)拍信號后將進(jìn)行系統初始化,CCD相機可將原始圖像信號經(jīng)過(guò)視頻采集卡轉換成數字圖像信號暫存到緩沖器中,并在DMA控制器的作用下,以DMA方式傳送給FAS466,數據在FAS466的控制下存入SCSI硬盤(pán)組。這樣,在硬件基礎上,就可通過(guò)本文所述的軟件解決方案實(shí)現視頻圖像的持續高速存儲。

4 軟件設計中的注意事項

在設計基于FAS466的系統軟件時(shí),應注意以下一些問(wèn)題:

(1)在FAS466支持的多種處理器中,每個(gè)外部微處理器類(lèi)型都有其相應的代碼,因此必須通過(guò)芯片配置寄存器選擇正確的微處理器模式。如TMS320C5X系列DSP的模式選擇值就應為3Fh。

(2)SCSI控制器并不允許命令堆棧,因此,每次只能接收和執行一個(gè)命令。

(3)DMA傳輸時(shí),塊大小不能為奇數。

(4)非法寫(xiě)入命令寄存器的命令將引起非法命令中斷,并設置非法命令錯誤位(錯誤中斷狀態(tài)寄存器第2位),因此,在將其它命令寫(xiě)到命令寄存器前,這個(gè)中斷必須得到處理。



關(guān)鍵詞: SCSI FAS 處理器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>