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