新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于GAP技術(shù)的網(wǎng)絡(luò)隔離設(shè)備的研究與設(shè)計(jì)

基于GAP技術(shù)的網(wǎng)絡(luò)隔離設(shè)備的研究與設(shè)計(jì)

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

  3.2 SCSI協(xié)議控制器的設(shè)計(jì)

  在SCSI總線上進(jìn)行任何處理都需要8個(gè)總線階段:空閑階段、仲裁階段、選擇階段、重選階段、消息輸入/輸出階段、數(shù)據(jù)輸入/輸出階段、命令階段、狀態(tài)階段。在任何時(shí)候,SCSI總線只能處于一個(gè)確定的總線階段。階段之聞的前后關(guān)聯(lián)受到嚴(yán)格限制,也就是說(shuō)并不是每個(gè)階段后面都可以跟著任何階段。圖3示出了SCSI總線階段狀態(tài)的轉(zhuǎn)化,如命令和數(shù)據(jù)階段只能在消息階段之后出現(xiàn),同樣,消息階段的后面必須緊跟這兩個(gè)階段,而不是其他階段。

SCSI總線階段狀態(tài)的轉(zhuǎn)化

  該協(xié)議控制器的設(shè)計(jì)嚴(yán)格按照SCSI總線階段轉(zhuǎn)化過(guò)程,由以上分析提出SCSI協(xié)議控制器的FP-GA實(shí)現(xiàn)方案:由于空閑、仲裁這兩個(gè)總線階段的機(jī)理簡(jiǎn)單,故將其直接放在SCSI模塊中實(shí)現(xiàn),其余每個(gè)階段都有相對(duì)應(yīng)的模塊,整個(gè)系統(tǒng)軟件由1個(gè)頂層模塊和7個(gè)平行的底層模塊構(gòu)成。模塊層次如圖4所示。

模塊層次

  • SCSI模塊有1個(gè)有限狀態(tài)機(jī),每個(gè)狀態(tài)對(duì)應(yīng)底層的1個(gè)模塊,并用寄存器S_MODE的不同取指來(lái)表示不同模塊,通過(guò)這個(gè)狀態(tài)機(jī)實(shí)現(xiàn)階段轉(zhuǎn)換、消息處理、命令解釋、數(shù)據(jù)處理和狀態(tài)處理等功能。
  • Sel模塊處理選擇階段的時(shí)序。啟動(dòng)器將信號(hào)BSY、SEL、ATN和啟動(dòng)器的ID號(hào)以及目標(biāo)器的ID號(hào)置為有效,啟動(dòng)器隨后釋放BSY信號(hào),經(jīng)過(guò)200ms之后目標(biāo)器將BSY信號(hào)置為有效,再過(guò)2個(gè)延遲周期后啟動(dòng)器釋放SEL信號(hào)并進(jìn)入消息階段。
  • Resel模塊處理重新選階段的時(shí)序。啟動(dòng)器將信號(hào)BSY、SEI I/O和啟動(dòng)器的ID號(hào)以及目標(biāo)器的ID號(hào)置為有效,啟動(dòng)器隨后釋放BSY信號(hào)。最多200ms之后目標(biāo)器必須將BSY信號(hào)置為有效作為響應(yīng)。
  • Msg_out模塊處理消息出階段的時(shí)序。啟動(dòng)器將ATN置為有效,目標(biāo)器將信號(hào)MSG和C/D信號(hào)置為有效,I/O信號(hào)為無(wú)效。這意味著接下來(lái)要進(jìn)入的是消息出相序,啟動(dòng)器將發(fā)出16位寬傳輸消息。發(fā)送完信息字節(jié)后,啟動(dòng)器將釋放ATN信號(hào),根據(jù)發(fā)出的信息確定下一個(gè)階段。
  • Cmd模塊處理命令階段的命令接收時(shí)序。目標(biāo)器在接收到啟動(dòng)器80H的消息后進(jìn)入命令階段。目標(biāo)器需將MSG和I/O置為無(wú)效,將C/D置為有效,接收完命令后,將根據(jù)命令判斷接下來(lái)要進(jìn)入的是數(shù)據(jù)輸入階段還是數(shù)據(jù)輸出階段。
  • Dat模塊處理數(shù)據(jù)階段的數(shù)據(jù)接收和發(fā)送時(shí)序。數(shù)據(jù)接收時(shí),在命令READ、TESI UNIT READY、INQUIRY、REQUEST、SENSE、READ CAPACITY后都將進(jìn)入數(shù)據(jù)進(jìn)相序。此時(shí)目標(biāo)器將MSG和C/D信號(hào)置為無(wú)效,將I/O信號(hào)置為有效。目標(biāo)器將發(fā)送相應(yīng)的數(shù)據(jù)。在命令為WRITE后將進(jìn)入數(shù)據(jù)出階段,此時(shí)目標(biāo)器將MSG、C/D和I/O都置為O,啟動(dòng)器向目標(biāo)器發(fā)送數(shù)據(jù),之后進(jìn)入消息階段。
  • Status模塊處理狀態(tài)階段的時(shí)序。在命令完成后將進(jìn)入狀態(tài)階段,目標(biāo)器將MSG信號(hào)置為無(wú)效,將C/D和I/O信號(hào)置為有效,并發(fā)送命令執(zhí)行的情況是GOOD還是CHECK CONDITON。狀態(tài)階段結(jié)束后將進(jìn)入消息進(jìn)階段,向啟動(dòng)器說(shuō)明一個(gè)COM-MAND COMPLETED。至此一個(gè)SCSI訪問(wèn)結(jié)束。目標(biāo)器將進(jìn)入空閑階段,啟動(dòng)器將可以通過(guò)1個(gè)80 H的消息觸發(fā)另外一個(gè)訪問(wèn)。
  • Msg_in模塊處理消息進(jìn)階段的消息發(fā)送時(shí)序。目標(biāo)器接收到16位寬傳輸?shù)南⒑髮⑦M(jìn)入消息進(jìn)時(shí)序。目標(biāo)器將MSG、C/D以及I/O都置為有效,并發(fā)送重復(fù)的信息。發(fā)送完后目標(biāo)器將釋放MSG信號(hào),并根據(jù)消息確定下一個(gè)階段。

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉