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