基于SoC的NCSF總線系統(tǒng)的研究與設(shè)計術(shù)
圖4用戶層行規(guī)層次結(jié)構(gòu)圖
2.2 FPGA上總線系統(tǒng)的設(shè)計
協(xié)議棧的應(yīng)用層和數(shù)據(jù)鏈路層實現(xiàn)在FPGA內(nèi)嵌的MicroBlaze處理器中,配合FPGA內(nèi)部硬件邏輯資源編程實現(xiàn)高層協(xié)議和底層邏輯的解析處理。應(yīng)用層為用戶層行規(guī)提供傳輸服務(wù)及安全支持,并實現(xiàn)用戶層行規(guī)與數(shù)據(jù)鏈路層之間數(shù)據(jù)交互。首先應(yīng)用層程序讀取PCI中的命令數(shù)據(jù)結(jié)構(gòu)并將其封裝成APDU(應(yīng)用協(xié)議數(shù)據(jù)單元)轉(zhuǎn)發(fā)到數(shù)據(jù)鏈路層,然后數(shù)據(jù)鏈路層程序讀取來自應(yīng)用層的數(shù)據(jù)并解析封裝成數(shù)據(jù)鏈路幀轉(zhuǎn)發(fā)到PHY控制器,最后數(shù)據(jù)幀由PHY以比特流的形式發(fā)送到NCSF總線上:當(dāng)以太網(wǎng)控制器接收到來自NCSF總線的數(shù)據(jù)時,執(zhí)行逆解析操作,最終由應(yīng)用層程序?qū)?yīng)答數(shù)據(jù)結(jié)構(gòu)的發(fā)送到PCI上,至此完成一次完整的數(shù)據(jù)交互過程。具體過程如圖5所示。
圖5 FPGA上總線系統(tǒng)層次結(jié)構(gòu)3 基于SoC的NCSF總線系統(tǒng)程序設(shè)計
基于SoC的NCSF總線系統(tǒng)將NCSF協(xié)議棧分兩個部分實現(xiàn),即:用戶層行規(guī)以用戶層行規(guī)接口的形式實現(xiàn)在NC主機上,應(yīng)用層及數(shù)據(jù)鏈路層實現(xiàn)在FPGA內(nèi)嵌MicroBlaze處理器上,相應(yīng)的程序設(shè)計也分兩個部分進行。
3.1用戶層行規(guī)接口程序設(shè)計
用戶層行規(guī)接口程序以外部時鐘中斷處理程序的形式調(diào)用執(zhí)行,即當(dāng)外部時鐘計數(shù)器到期發(fā)送時鐘脈沖信號至NC主機時,主機調(diào)用用戶層行規(guī)接口程序響應(yīng)中斷。
接口程序與數(shù)控系統(tǒng)軟件共享一個命令數(shù)據(jù)結(jié)構(gòu)數(shù)組和一個應(yīng)答數(shù)據(jù)結(jié)構(gòu)數(shù)組。命令數(shù)據(jù)結(jié)構(gòu)數(shù)組中存儲的元素為數(shù)控系統(tǒng)事先封裝好的需要發(fā)送的命令數(shù)據(jù)結(jié)構(gòu),應(yīng)答數(shù)據(jù)結(jié)構(gòu)數(shù)組中存儲的元素為行規(guī)接口程序接收到的應(yīng)答數(shù)據(jù)結(jié)構(gòu)。
命令數(shù)據(jù)結(jié)構(gòu)規(guī)劃如下,具體實現(xiàn)可以根據(jù)實際應(yīng)用進行調(diào)整。
命令數(shù)據(jù)結(jié)構(gòu)數(shù)組和應(yīng)答數(shù)據(jù)結(jié)構(gòu)數(shù)組的大小應(yīng)根據(jù)實際應(yīng)用中從站的數(shù)量進行動態(tài)配置,保證發(fā)往和來自每個從站的數(shù)據(jù)都有各自的緩沖空間。
評論