基于SoC的NCSF總線系統(tǒng)的研究與設(shè)計(jì)術(shù)
點(diǎn)擊:1037
A+ A-
所屬頻道:新聞中心
0 引言
數(shù)控系統(tǒng)現(xiàn)場(chǎng)總線以其高可靠性、抗干擾性的優(yōu)點(diǎn)適用于數(shù)控系統(tǒng)控制通信,隨著現(xiàn)場(chǎng)總線在工業(yè)控制領(lǐng)域的應(yīng)用,現(xiàn)場(chǎng)總線已經(jīng)成為下一代數(shù)控系統(tǒng)各設(shè)備單元之間數(shù)據(jù)交換的主要媒體。高檔數(shù)控系統(tǒng)的特點(diǎn)是高速、高精,而高速高精的數(shù)控加工要求數(shù)控各設(shè)備單元之間的數(shù)據(jù)交換媒體能完成數(shù)據(jù)的高速實(shí)時(shí)傳輸,因此數(shù)控系統(tǒng)現(xiàn)場(chǎng)總線系統(tǒng)是決定下一代高檔數(shù)控產(chǎn)業(yè)發(fā)展的一個(gè)重要因素。
傳統(tǒng)的總線系統(tǒng)(具體系統(tǒng)結(jié)構(gòu)關(guān)系如圖1所示)實(shí)現(xiàn)為數(shù)控系統(tǒng)平臺(tái)通信系統(tǒng)日。的一部分,主要完成上層應(yīng)用軟件如PLC模塊,運(yùn)動(dòng)控制模塊等與數(shù)控系統(tǒng)總線所連的伺服,I/0等從站設(shè)備之間的數(shù)據(jù)通信。總線系統(tǒng)通過(guò)NC(Numerical Control,數(shù)控)主機(jī)的通信接口(PCI、USB等)將通信數(shù)據(jù)發(fā)送到主站板卡,由主站板卡執(zhí)行PC機(jī)并行數(shù)據(jù)—總線串行數(shù)據(jù)的發(fā)送/接收處理工作。主站板卡為簡(jiǎn)單的硬件轉(zhuǎn)發(fā)電路,數(shù)據(jù)幀的封裝、解封,差錯(cuò)控制,時(shí)鐘同步等工作完全由總線系統(tǒng)執(zhí)行,需要占用大量的CPU時(shí)間和NC主機(jī)內(nèi)存,從而增加了NC主機(jī)的負(fù)載。
圖1傳統(tǒng)總線系統(tǒng)結(jié)構(gòu)關(guān)系
中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所數(shù)控總線實(shí)驗(yàn)室參照國(guó)家標(biāo)準(zhǔn)GB/T 18759.3-2009《開(kāi)放式數(shù)控系統(tǒng)第3部分:總線接口與通信協(xié)議》研發(fā)的數(shù)控同步現(xiàn)場(chǎng)總線NCSF(Numerical Control Synchronous FieldBus)在數(shù)控現(xiàn)場(chǎng)總線實(shí)時(shí)通信方面具有優(yōu)越的性能表現(xiàn)。
針對(duì)上述問(wèn)題本文依據(jù)數(shù)控現(xiàn)場(chǎng)總線NCSF提出一種基于SoC的總線系統(tǒng)實(shí)現(xiàn)方法,設(shè)計(jì)選用Xilinx公司的XC3S500E FPGA芯片,具體設(shè)計(jì)中,采用MicroBlaze軟核CPU實(shí)現(xiàn)鏈路層及應(yīng)用層協(xié)議處理。本文將在后續(xù)章節(jié)對(duì)總線系統(tǒng)的架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)方法進(jìn)行具體闡述并對(duì)統(tǒng)性能進(jìn)行分析。
1 背景介紹
1.1 NCSF簡(jiǎn)介
為滿足開(kāi)放式數(shù)控系統(tǒng)總線通信的實(shí)時(shí)性、同步性、可靠性及可擴(kuò)展要求,NCSF總線參考ISO/OSI通信模型,由物理層、數(shù)據(jù)鏈路層、應(yīng)用層、用戶層行規(guī)組成,如圖2所示。
圖2數(shù)控現(xiàn)場(chǎng)總線NCSF網(wǎng)絡(luò)模型
物理層負(fù)責(zé)協(xié)調(diào)總線在物理媒體中傳送比特流所需的各種功能,定義總線接插件和傳輸媒體的機(jī)械和電氣規(guī)約,以及為發(fā)生傳輸所必須完成的過(guò)程和功能;數(shù)據(jù)鏈路層為應(yīng)用層提供周期、實(shí)時(shí)、無(wú)差錯(cuò)的數(shù)據(jù)鏈路;應(yīng)用層負(fù)責(zé)維護(hù)站點(diǎn)間的安全、可靠的數(shù)據(jù)傳輸通路,并為用戶層行規(guī)的命令與應(yīng)答提供傳輸服務(wù);用戶層行規(guī)為裝置特征、功能特性和行為的規(guī)范。
NCSF基于ISO/IEC 8802.3物理層規(guī)范設(shè)計(jì),利用網(wǎng)絡(luò)實(shí)現(xiàn)高速、高可靠實(shí)時(shí)數(shù)據(jù)和基于以太網(wǎng)的非實(shí)時(shí)數(shù)據(jù)的傳輸。通信由主設(shè)備發(fā)起,主要支持單個(gè)主設(shè)備和多個(gè)從設(shè)備間的數(shù)據(jù)通信、站號(hào)的自動(dòng)分配、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)檢測(cè)、廣播通信、基于廣播機(jī)制的集總幀通信服務(wù)、點(diǎn)對(duì)點(diǎn)通信服務(wù)、總線延時(shí)測(cè)量和時(shí)間戳服務(wù)。在確定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下,從站設(shè)備對(duì)集總幀實(shí)時(shí)轉(zhuǎn)發(fā)保證了通信的實(shí)時(shí)性,而周期性控制為主站行為。
1.2 SoC及硬件簡(jiǎn)介
SoC稱為系統(tǒng)級(jí)芯片,也有稱片上系統(tǒng),意指它是一個(gè)產(chǎn)品,是一個(gè)有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部?jī)?nèi)容。
FPGA(Filed Programmable Gate Array)是用戶現(xiàn)場(chǎng)可編程門(mén)陣列集成電路的簡(jiǎn)稱,它使用方便,改變邏輯功能易于實(shí)現(xiàn),能夠滿足現(xiàn)代通信發(fā)展的需求。
MicroBlaze嵌入式軟核是一個(gè)被Xilinx公司優(yōu)化過(guò)的可嵌入在FPGA中的RISC處理器軟核,運(yùn)行速度高達(dá)150MHz,采用哈佛體系結(jié)構(gòu),具有獨(dú)立的32位指令總線和32位數(shù)據(jù)總線,非常適合設(shè)計(jì)針對(duì)網(wǎng)絡(luò)、電信、數(shù)據(jù)通信和消費(fèi)市場(chǎng)的復(fù)雜嵌入式系統(tǒng)。
2 基于SoC的NCSF總線系統(tǒng)的架構(gòu)設(shè)計(jì)
基于SoC的NCSF總線系統(tǒng)保留NCSF總線協(xié)議棧的用戶層行規(guī)在NC主機(jī)中實(shí)現(xiàn),以用戶層行規(guī)接口的形式為伺服驅(qū)動(dòng)、主軸驅(qū)動(dòng)、I/O等從站提供通用的系統(tǒng)應(yīng)用接口(API)。協(xié)議棧的應(yīng)用層和數(shù)據(jù)鏈路層實(shí)現(xiàn)在FPGA內(nèi)嵌的MicroBlaze處理器中,配合FPGA內(nèi)部的高精度時(shí)鐘、CRC處理、PHY控制等硬邏輯模塊,實(shí)現(xiàn)NCSF總線通信控制功能。FPGA開(kāi)發(fā)板使用PCI卡與用戶層行規(guī)接口程序通信,數(shù)據(jù)鏈路層封裝的數(shù)據(jù)最后經(jīng)由以太網(wǎng)PHY芯片發(fā)送。具體層次結(jié)構(gòu)如圖3所示。
圖3基于SoC的總線系統(tǒng)
2.1 NC主機(jī)用戶層行規(guī)接口的設(shè)計(jì)
用戶層行規(guī)通過(guò)定義命令與應(yīng)答的數(shù)據(jù)結(jié)構(gòu),確保裝置間的互操作,支持面向應(yīng)用的實(shí)現(xiàn)。根據(jù)開(kāi)放式數(shù)控系統(tǒng)中裝置的參數(shù)與行為特性,用戶層行規(guī)包括管理、傳感器控制、驅(qū)動(dòng)控制與I/O控制等部分。用戶層行規(guī)接口程序主要負(fù)責(zé)通信數(shù)據(jù)的接收與發(fā)送。在發(fā)送階段,程序首先讀取運(yùn)動(dòng)控制、PLC等模塊的命令,然后將其封裝成相應(yīng)的命令數(shù)據(jù)結(jié)構(gòu),最后通過(guò)NC主機(jī)的PCI將數(shù)據(jù)結(jié)構(gòu)發(fā)送到總線通信控制卡上;接收階段,程序首先讀取PCI上由總線通信控制卡發(fā)來(lái)的數(shù)據(jù),然后將其解析為應(yīng)答數(shù)據(jù)結(jié)構(gòu)并傳送給相應(yīng)的功能模塊。具體過(guò)程如圖4所示。
圖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ù)都有各自的緩沖空間。
如圖6所示。其中命令函數(shù)是用戶層行規(guī)為數(shù)控系統(tǒng)軟件提供的應(yīng)用接口,數(shù)控系統(tǒng)軟件通過(guò)調(diào)用命令函數(shù)封裝命令數(shù)據(jù)結(jié)構(gòu)并寫(xiě)數(shù)據(jù)到命令數(shù)據(jù)結(jié)構(gòu)數(shù)組。每個(gè)函數(shù)根據(jù)自己的功能將數(shù)據(jù)寫(xiě)人數(shù)組不同的位置,具體內(nèi)存地址為基地址加偏移地址。行規(guī)接口程序主要工作包括:讀取命令數(shù)據(jù)結(jié)構(gòu)數(shù)組中的數(shù)據(jù)并映射到PIC的輸出緩存中;讀取PCI輸入緩存中的數(shù)據(jù)并映射到應(yīng)答數(shù)據(jù)結(jié)構(gòu)數(shù)組中。由于NCSF總線支持集總幀(一個(gè)大的數(shù)據(jù)幀,里面包含所有從站的數(shù)據(jù),適用于主從環(huán)形總線拓?fù)浣Y(jié)構(gòu))和非集總幀報(bào)文,因此一次函數(shù)執(zhí)行將讀寫(xiě)整個(gè)數(shù)組,即一個(gè)通訊周期內(nèi)所需要發(fā)送的周期性數(shù)據(jù)和非周期性數(shù)據(jù);所有的安全性檢查、出錯(cuò)重傳、時(shí)鐘同步、PCI內(nèi)存與從站地址的映射等控制功能完全由FPGA部分實(shí)現(xiàn)。
圖6行規(guī)接口程序數(shù)據(jù)流向程序間的數(shù)據(jù)流向
3.2 FPGA上總線系統(tǒng)程序設(shè)計(jì)
FPGA上實(shí)現(xiàn)部分主要完成站點(diǎn)初始化、從站信息搜集、拓?fù)渑袛?、?shù)據(jù)收發(fā)等工作。其中站點(diǎn)初始化、從站信息搜集、拓?fù)渑袛喙ぷ魍ǔV辉贔PGA上電時(shí)執(zhí)行,除非出現(xiàn)通信故障需要重新初始化;數(shù)據(jù)收發(fā)以及時(shí)鐘同步等過(guò)程則要以中斷的形式周期執(zhí)行。當(dāng)MicroBlaze處理器接收到時(shí)鐘計(jì)數(shù)器的脈沖信號(hào)時(shí),將調(diào)用應(yīng)用層程序處理中斷即開(kāi)始進(jìn)行周期通信,主要工作包括數(shù)據(jù)的收發(fā)、狀態(tài)機(jī)維護(hù)、安全性檢查、出錯(cuò)重傳、地址映射、時(shí)鐘同步等。
3.2.1 應(yīng)用層處理程序設(shè)計(jì)
應(yīng)用層程序可處于不同的運(yùn)行狀態(tài),如初始態(tài)、就緒態(tài)、異步連接態(tài)、同步連接態(tài)、連接釋放態(tài)、故障態(tài)、結(jié)束態(tài)等,程序根據(jù)所處狀態(tài)提供不同的傳輸服務(wù),應(yīng)用層服務(wù)需要調(diào)用數(shù)據(jù)鏈路層提供的基本服務(wù)命令接口實(shí)現(xiàn)。
當(dāng)處理器接收到時(shí)鐘脈沖信號(hào)開(kāi)始進(jìn)行中斷處理時(shí)應(yīng)用層程序處于就緒狀態(tài),之后程序會(huì)參照從站的反饋信息進(jìn)入不同狀態(tài)。該程序的主要工作包括:讀取PCI接口中命令數(shù)據(jù)結(jié)構(gòu)數(shù)組的映射數(shù)據(jù),寫(xiě)從站的應(yīng)答信息到PCI的應(yīng)答數(shù)據(jù)結(jié)構(gòu)數(shù)組的映射內(nèi)存中。應(yīng)用層與數(shù)據(jù)鏈路層的信息交換通過(guò)傳輸APDU進(jìn)行。APDU由用戶數(shù)據(jù)負(fù)載和控制信息組成,用戶數(shù)據(jù)負(fù)載存儲(chǔ)用戶層行規(guī)數(shù)據(jù),控制信息用來(lái)描述APDU屬性。APDU控制信息數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下,具體實(shí)現(xiàn)可以根據(jù)實(shí)際應(yīng)用進(jìn)行調(diào)整。
應(yīng)用層處理程序首先讀取PCI緩沖區(qū)映射的命令數(shù)據(jù)結(jié)構(gòu)數(shù)組并進(jìn)行掃描,分析命令數(shù)據(jù)結(jié)構(gòu)中的命令分組號(hào)和組內(nèi)命令確定APDU控制信息,然后將命令數(shù)據(jù)結(jié)構(gòu)數(shù)組封裝成APDU數(shù)組,這一過(guò)程可以通過(guò)維護(hù)命令數(shù)據(jù)結(jié)構(gòu)到APDU控制信息的映射表進(jìn)行簡(jiǎn)化。下一步調(diào)用數(shù)據(jù)鏈路層基本服務(wù)命令接口發(fā)送APDU數(shù)組中的周期數(shù)據(jù),接著檢查發(fā)送狀態(tài)進(jìn)行差錯(cuò)控制、出錯(cuò)重傳或發(fā)送非周期數(shù)據(jù)。最后時(shí)鐘同步。每個(gè)通信周期都劃分為若干個(gè)階段執(zhí)行,上述各操作必須在各自時(shí)間段內(nèi)完成,其中出錯(cuò)重發(fā)和非周期數(shù)據(jù)發(fā)送共用同一個(gè)時(shí)間段(需要進(jìn)行動(dòng)態(tài)決策)。應(yīng)用層處理程序具體執(zhí)行過(guò)程如圖7所示,具體實(shí)現(xiàn)可以根據(jù)實(shí)際提供的服務(wù)進(jìn)行調(diào)整。
圖7應(yīng)用層處理程序執(zhí)行流程
3.2.2數(shù)據(jù)鏈路層程序設(shè)計(jì)
NCSF總線的數(shù)據(jù)鏈路層劃分成兩個(gè)子層:LLC(Logic Line Control,邏輯鏈路控制子層)和MAC(Media Access Control,介質(zhì)訪問(wèn)控制子層)。向上層提供服務(wù)是LLC子層的主要功能,它負(fù)責(zé)識(shí)別數(shù)據(jù)鏈路層的上層協(xié)議,然后對(duì)它們進(jìn)行解析;控制對(duì)傳輸介質(zhì)的訪問(wèn)是MAC子層的主要功能,主要包括數(shù)據(jù)幀的封裝與卸裝,鏈路管理,幀尋址與識(shí)別,幀差錯(cuò)控制等。
(1)LLC子層程序設(shè)計(jì)
LLC子層通過(guò)向應(yīng)用層提供基本服務(wù)命令接口提供服務(wù),包括通信服務(wù)命令接口和管理服務(wù)命令接口。應(yīng)用層調(diào)用通信服務(wù)命令接口收發(fā)APDU;調(diào)用管理服務(wù)命令接口進(jìn)行差錯(cuò)控制、數(shù)據(jù)安全管理、時(shí)鐘管理以及通信管理。
基本服務(wù)命令接口對(duì)應(yīng)用層是透明的,LLC子層需要對(duì)應(yīng)用層調(diào)用的接口函數(shù)和傳遞的APDU進(jìn)行解析,這一過(guò)程可以通過(guò)維護(hù)對(duì)象字典來(lái)實(shí)現(xiàn)。對(duì)象字典為L(zhǎng)LC子層服務(wù)和數(shù)據(jù)管理提供對(duì)應(yīng)的MAC子層解釋和定義,應(yīng)包括服務(wù)對(duì)象字典和協(xié)議對(duì)象字典。LLC子層程序通過(guò)查詢對(duì)象字典,完成應(yīng)用層數(shù)據(jù)通信任務(wù)到MAC子層數(shù)據(jù)通信任務(wù)間的轉(zhuǎn)換。
LLC子層還需要維護(hù)地址映射表進(jìn)行上層邏輯地址到MAC子層實(shí)地址之間的轉(zhuǎn)換(實(shí)地址可由APDU控制信息唯一確定),映射表在FPGA上電初始化時(shí)確定。
表1為主要通信服務(wù)命令接口函數(shù)的定義,具體參數(shù)可根據(jù)具體實(shí)現(xiàn)進(jìn)行調(diào)整。
表2為主要管理服務(wù)命令接口函數(shù)的定義,實(shí)際數(shù)量與應(yīng)用中提供的服務(wù)數(shù)量相關(guān)。
(2)MAC子層程序設(shè)計(jì)
MAC子層主要完成LLC子層通信服務(wù)的具體實(shí)現(xiàn),以及實(shí)際通信數(shù)據(jù)幀的封裝。
LLC子層各服務(wù)命令接口以及上層數(shù)據(jù)的收發(fā)工作最終都要通過(guò)收發(fā)鏈路層數(shù)據(jù)幀實(shí)現(xiàn)。NCSF總線支持集總幀和非集總幀報(bào)文。非集總幀由頭部、指令區(qū)、數(shù)據(jù)區(qū)和校驗(yàn)區(qū)組成,通信數(shù)據(jù)區(qū)直接由從站數(shù)據(jù)信息封裝得來(lái),組成相對(duì)簡(jiǎn)單。集總幀主要包括集總幀頭部和數(shù)據(jù)部,頭部為數(shù)據(jù)幀控制信息,數(shù)據(jù)部為各從站數(shù)據(jù)的集合舊’。下面是集總幀頭部和從站數(shù)據(jù)結(jié)構(gòu)定義,具體結(jié)構(gòu)可根據(jù)具實(shí)現(xiàn)調(diào)整。
MAC子層通過(guò)查詢對(duì)象字典將應(yīng)用層命令調(diào)用和APDU映射為MAC子層服務(wù),然后接口函數(shù)封裝相應(yīng)從站數(shù)據(jù),最終各從站數(shù)據(jù)被組裝成集總幀發(fā)送。集總幀沿著環(huán)路傳輸,當(dāng)經(jīng)過(guò)一個(gè)從站時(shí),該從站將對(duì)數(shù)據(jù)幀進(jìn)行掃描,查找、讀取本站數(shù)據(jù),然后把發(fā)反饋數(shù)據(jù)寫(xiě)入集總幀,并繼續(xù)轉(zhuǎn)發(fā)經(jīng)過(guò)處理的集總幀。
為實(shí)現(xiàn)數(shù)據(jù)幀的收發(fā)和管理控制工作,MAC子層需要維護(hù)數(shù)據(jù)收發(fā)緩沖區(qū),長(zhǎng)度寄存器,狀態(tài)寄存器,控制狀態(tài)寄存器,中斷清除寄存器和計(jì)時(shí)器寄存器。MAC子層收發(fā)程序通過(guò)設(shè)置控制寄存器,長(zhǎng)度寄存器和中斷清除寄存器收發(fā)數(shù)據(jù),通過(guò)檢查狀態(tài)寄存器判斷收發(fā)狀態(tài)進(jìn)行差錯(cuò)控制和安全管理。FPGA上總線系統(tǒng)的數(shù)據(jù)流向見(jiàn)圖8,涉及操作請(qǐng)參考應(yīng)用層處理程序設(shè)計(jì)和數(shù)據(jù)鏈路層程序設(shè)計(jì)部分。需要注意的是,MAC子層接收到的反饋信息需要通過(guò)查詢對(duì)象字典和地址映射表以周期/非周期數(shù)據(jù)的形式傳遞到應(yīng)用層,然后由應(yīng)用層迸一步處理轉(zhuǎn)發(fā)。
圖8 FPGA總線系統(tǒng)數(shù)據(jù)流同關(guān)系
4 性能分析
基于SoC的NCSF總線系統(tǒng)使用FPGA軟核MicroBlaze為現(xiàn)場(chǎng)總線NCSF協(xié)議棧的實(shí)現(xiàn)提供快速的專用處理器,由于該處理器具有運(yùn)行速度快、占用資源少、可配置性強(qiáng)等優(yōu)點(diǎn),且只用于通信控制,可以滿足數(shù)控現(xiàn)場(chǎng)總線對(duì)實(shí)時(shí)性的要求。本設(shè)計(jì)采用Xilinx XC3S500E芯片,表3中給出了總線系統(tǒng)綜合時(shí)芯片邏輯資源的使用情況,數(shù)據(jù)表明系統(tǒng)資源占用率相對(duì)較低,可實(shí)現(xiàn)在FPGA上。
表4給出了新系統(tǒng)性能測(cè)試結(jié)果,數(shù)據(jù)表明新設(shè)計(jì)完全可以滿足數(shù)控系統(tǒng)對(duì)現(xiàn)場(chǎng)總線數(shù)據(jù)的實(shí)時(shí)、高速、可靠傳輸?shù)囊蟆?/p>
同時(shí),NC主機(jī)上僅實(shí)現(xiàn)NCSF總線協(xié)議棧用戶層行規(guī)的內(nèi)容,比完整的協(xié)議棧實(shí)現(xiàn)占用更少的CPU時(shí)間,降低了NC主機(jī)的負(fù)載,提高了NC主機(jī)的響應(yīng)速度。
FPGA實(shí)現(xiàn)部分配合FPGA內(nèi)部的高精度時(shí)鐘、CRC處理、PHY控制等硬邏輯模塊實(shí)現(xiàn)NCSF總線通信控制,增加了總線系統(tǒng)的獨(dú)立性、可擴(kuò)展性,提高了總線的通信性能、穩(wěn)定性和可靠性,使得總線系統(tǒng)的升級(jí)改造可以獨(dú)立于數(shù)控系統(tǒng)從而降低了數(shù)控系統(tǒng)的開(kāi)發(fā)維護(hù)成本。
5 結(jié)束語(yǔ)
針對(duì)數(shù)控系統(tǒng)軟件對(duì)強(qiáng)實(shí)時(shí)性,高可靠性總線系統(tǒng)的應(yīng)用需求,本文在沈陽(yáng)計(jì)算技術(shù)研究所研發(fā)的NCSF總線的基礎(chǔ)上,提出了一種基于SoC的總線系統(tǒng)的實(shí)現(xiàn)方法。測(cè)試結(jié)果表明,新設(shè)計(jì)可提供速率為100Mps,同步抖動(dòng)小于0.61μs,通信周期為31.25μs的通信服務(wù),能夠滿足高檔數(shù)控機(jī)床的加工需求。同時(shí)該方法增加了總線系統(tǒng)的獨(dú)立性、可擴(kuò)展性,可在一定程度上減少數(shù)控系統(tǒng)響應(yīng)時(shí)間提高總線系統(tǒng)的實(shí)時(shí)性。
(審核編輯: 智匯張瑜)
分享