PCI5565反射內(nèi)存網(wǎng)技術(shù)的應(yīng)用研究
隨著嵌入式與通信技術(shù)的發(fā)展,數(shù)控系統(tǒng)經(jīng)歷了由傳統(tǒng)的單處理器的集中式體系結(jié)構(gòu)到開放式體系結(jié)構(gòu),再到多處理器的分布式數(shù)控系統(tǒng)體系結(jié)構(gòu)的發(fā)展過程。分布式數(shù)控系統(tǒng)以高精、高速的加工特征為發(fā)展核心,同時(shí)以達(dá)到異構(gòu)網(wǎng)絡(luò)間信息的無縫融合,實(shí)現(xiàn)高實(shí)時(shí)性、高可靠性和高兼容性的新一代生產(chǎn)制造系統(tǒng)為發(fā)展方向。
針對(duì)如何提高分布式數(shù)控系統(tǒng)實(shí)時(shí)通信能力的問題,陶林等[1]提出了一種基于以太網(wǎng)的分布式數(shù)控系統(tǒng)實(shí)時(shí)通信網(wǎng)絡(luò); 宋真君等[2]提出了基于工業(yè)以太網(wǎng)的分布式控制系統(tǒng)體系結(jié)構(gòu),雖然以太網(wǎng)技術(shù)有良好的穩(wěn)定性、低成本、高帶寬及優(yōu)良的兼容性等優(yōu)點(diǎn),但以太網(wǎng)的CSMA /CD( 載波多路訪問、沖突檢測(cè))的傳輸機(jī)制決定了它無法確保網(wǎng)絡(luò)傳輸延遲,導(dǎo)致其實(shí)時(shí)性差。金振華[3]提出了基于CAN 總線的分布式數(shù)控系統(tǒng),雖然各種現(xiàn)場(chǎng)總線廣泛應(yīng)用于連接現(xiàn)場(chǎng)設(shè)備,有布線簡(jiǎn)單、硬件成本低、運(yùn)行精確穩(wěn)定等優(yōu)點(diǎn),但數(shù)據(jù)傳輸率低,實(shí)時(shí)性不高。反射內(nèi)存網(wǎng)光纖總線不但數(shù)據(jù)傳輸率遠(yuǎn)高于以太網(wǎng)和現(xiàn)場(chǎng)總線,而且是一種實(shí)時(shí)、確定性的網(wǎng)絡(luò),可以較好地解決實(shí)時(shí)系統(tǒng)中數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性問題[4 - 5]。
反射內(nèi)存技術(shù)用于所有使用以太網(wǎng)、光纖通道或其他串行網(wǎng)絡(luò)將計(jì)算機(jī)或可編程邏輯控制器連接在一起的應(yīng)用場(chǎng)合,如實(shí)時(shí)的飛行仿真器、電訊、高速過程控制( 軋鋼廠和制鋁廠) 、高速測(cè)試和測(cè)量系統(tǒng)等,但并非適用于所有應(yīng)用場(chǎng)合[6 - 8]。因此反射內(nèi)存網(wǎng)是否適用
于分布式數(shù)控系統(tǒng),如何將反射內(nèi)存網(wǎng)有效地應(yīng)用到數(shù)控機(jī)床中成為反射內(nèi)存網(wǎng)絡(luò)應(yīng)用的關(guān)鍵問題。文中在分析分布式數(shù)控系統(tǒng)基本結(jié)構(gòu)和反射內(nèi)存網(wǎng)工作原理的基礎(chǔ)上,提出了一種基于反射內(nèi)存網(wǎng)的分布式數(shù)控系統(tǒng)實(shí)時(shí)通信網(wǎng)絡(luò)方案,給出了系統(tǒng)的基本框架結(jié)構(gòu)、節(jié)點(diǎn)模型和拓展結(jié)構(gòu)。該結(jié)構(gòu)方案的實(shí)現(xiàn)不僅極大地提高了網(wǎng)絡(luò)帶寬,而且也提高了數(shù)控系統(tǒng)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性能。
1 分布式數(shù)控系統(tǒng)基本結(jié)構(gòu)分布式數(shù)控系統(tǒng)是分布式控制思想在數(shù)控系統(tǒng)上的綜合應(yīng)用。隨著數(shù)控系統(tǒng)功能的增加,數(shù)控機(jī)床加工速度的提高,許多數(shù)控系統(tǒng)采用了多微處理器結(jié)構(gòu),每個(gè)微處理器通過數(shù)據(jù)總線或者通信方式進(jìn)行連接,共享系統(tǒng)的公用存儲(chǔ)器與I /O 接口,每個(gè)處理器分擔(dān)系統(tǒng)的一部分工作[3,9- 11]。在分布式數(shù)控系統(tǒng)中,信號(hào)傳遞對(duì)實(shí)時(shí)性要求越來越高。
圖1 是分布式數(shù)控系統(tǒng)共享總線基本結(jié)構(gòu)。
2 反射內(nèi)存網(wǎng)技術(shù)2. 1 反射內(nèi)存網(wǎng)工作原理
反射內(nèi)存網(wǎng)( ReflecTIve Memory Network,RNN) 是一種高速實(shí)時(shí)網(wǎng)絡(luò),是由光纖連接的高速共享內(nèi)存網(wǎng)絡(luò),與一般的基于TCP/IP 協(xié)議的局域網(wǎng)一樣,也是在每個(gè)節(jié)點(diǎn)計(jì)算機(jī)上附加一塊網(wǎng)卡。反射內(nèi)存網(wǎng)接口適配器為各任務(wù)設(shè)備和反射內(nèi)存光纖網(wǎng)絡(luò)相連的接口,具有數(shù)據(jù)傳輸及網(wǎng)絡(luò)管理雙重功能,是整個(gè)反射內(nèi)存環(huán)網(wǎng)的核心設(shè)備。RM 接口適配器主要由光電轉(zhuǎn)換、數(shù)據(jù)編/解碼/并行處理、網(wǎng)絡(luò)管理狀態(tài)機(jī)、存儲(chǔ)器、協(xié)議管理模塊及任務(wù)設(shè)備接口等組成,系統(tǒng)功能框圖如圖2 所示。
圖2 RM 接口適配器功能框圖
反射內(nèi)存網(wǎng)是一種特殊的共享內(nèi)存系統(tǒng),每個(gè)節(jié)點(diǎn)都占有一段對(duì)應(yīng)的內(nèi)存地址,可以在每一個(gè)節(jié)點(diǎn)子系統(tǒng)中獨(dú)立地保存整個(gè)系統(tǒng)內(nèi)存。在實(shí)時(shí)通信網(wǎng)的節(jié)點(diǎn)機(jī)上各插一塊反射內(nèi)存卡,卡上帶有雙口內(nèi)存,各層軟件可以讀寫這些內(nèi)存[12 - 13]。反射內(nèi)存網(wǎng)可以在分布系統(tǒng)中實(shí)現(xiàn)內(nèi)存到內(nèi)存的通信。當(dāng)數(shù)據(jù)被寫入一臺(tái)機(jī)器的反射內(nèi)存卡的內(nèi)存中后,反射內(nèi)存卡FPGA 硬件通過光纖自動(dòng)將數(shù)據(jù)傳輸?shù)綄?shí)時(shí)通信網(wǎng)上其他反射內(nèi)存網(wǎng)中反射內(nèi)存網(wǎng)節(jié)點(diǎn)卡的內(nèi)存里。通常,一個(gè)節(jié)點(diǎn)的更新只有不到0. 4 μs 的時(shí)間延遲,傳輸遍歷所有反射內(nèi)存卡,所有反射內(nèi)存網(wǎng)節(jié)點(diǎn)中對(duì)應(yīng)地址都被寫入對(duì)應(yīng)數(shù)據(jù)。因此,實(shí)時(shí)通信網(wǎng)上各成員在訪問數(shù)據(jù)時(shí),只要訪問本地反射內(nèi)存卡的內(nèi)存即可[9, 14 - 15]。一個(gè)反射內(nèi)存網(wǎng)節(jié)點(diǎn)由本地內(nèi)存、嵌入式接口和用來提供訪問主機(jī)和反射內(nèi)存的仲裁邏輯構(gòu)成,反射內(nèi)存網(wǎng)節(jié)點(diǎn)可以安裝或者連接在不同種類的計(jì)算機(jī)總線上,包括VME、PCI /PCI - X、PCI Express 等[4]。
2. 2 反射內(nèi)存網(wǎng)拓?fù)浣Y(jié)構(gòu)
反射內(nèi)存網(wǎng)主要是由反射內(nèi)存卡通過光纖等傳輸介質(zhì)連接而成的,它主要有兩種物理拓?fù)浣Y(jié)構(gòu): 星型拓?fù)浣Y(jié)構(gòu)( 如圖3 所示) 和環(huán)型拓?fù)浣Y(jié)構(gòu)( 如圖4 所示) 。對(duì)于環(huán)型拓?fù)浣Y(jié)構(gòu)的反射內(nèi)存網(wǎng),相鄰反射內(nèi)存卡通過輸入端和輸出端的連接形成一個(gè)環(huán)形網(wǎng)絡(luò),數(shù)據(jù)包沿著環(huán)形網(wǎng)絡(luò)進(jìn)行傳遞。其優(yōu)點(diǎn)是不需要光纖Hub、光纖使用量小、節(jié)省經(jīng)費(fèi); 缺點(diǎn)是每個(gè)節(jié)點(diǎn)都有延時(shí),如果任何節(jié)點(diǎn)或者光纖發(fā)生故障時(shí),數(shù)據(jù)包將不能被發(fā)送,從而導(dǎo)致整個(gè)傳遞網(wǎng)絡(luò)癱瘓。因此,一般采用星型結(jié)構(gòu)。事實(shí)上,星型拓?fù)浣Y(jié)構(gòu)只是一個(gè)物理意義上的結(jié)構(gòu),因?yàn)榫W(wǎng)絡(luò)集線器內(nèi)部結(jié)構(gòu)是環(huán)型連接。邏輯上來講,它仍然是一個(gè)環(huán)型結(jié)構(gòu)[4]。在網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)都有唯一的節(jié)點(diǎn)ID,在同一個(gè)網(wǎng)絡(luò)中,不允許有兩個(gè)一樣的標(biāo)識(shí)ID,這個(gè)ID 是通過板上的撥碼開關(guān)進(jìn)行設(shè)置的。ID 號(hào)越小,優(yōu)先級(jí)越高。當(dāng)數(shù)據(jù)源節(jié)點(diǎn)通過集線器發(fā)送數(shù)據(jù)包時(shí),集線器可以根據(jù)相鄰板的高低ID 來找出數(shù)據(jù)傳遞方向,從而實(shí)時(shí)更新所有節(jié)點(diǎn)的相應(yīng)數(shù)據(jù)。在星型配置中,如果一個(gè)節(jié)點(diǎn)不工作時(shí),集線器可以自動(dòng)屏蔽故障節(jié)點(diǎn),而不影響其他節(jié)點(diǎn)的數(shù)據(jù)傳輸,當(dāng)然星型結(jié)構(gòu)的缺點(diǎn)是網(wǎng)絡(luò)中的Hub 一旦發(fā)生故障,整個(gè)網(wǎng)絡(luò)將會(huì)癱瘓[16]。圖3 星型拓?fù)浣Y(jié)構(gòu)圖4 環(huán)型拓?fù)浣Y(jié)構(gòu)
3 基于反射內(nèi)存網(wǎng)的分布式數(shù)控系統(tǒng)的構(gòu)建3. 1 數(shù)控系統(tǒng)網(wǎng)絡(luò)構(gòu)建根據(jù)數(shù)控系統(tǒng)信息傳輸?shù)奶攸c(diǎn)及總體傳輸要求,擬采用反射內(nèi)存光纖總線連接CNC 裝置、PLC、故障診斷專家系統(tǒng)、HMI 控制面板、CAD/CAM、數(shù)控加工仿真模擬系統(tǒng)等部件構(gòu)成一個(gè)分布式數(shù)控系統(tǒng)??偩€網(wǎng)絡(luò)的每個(gè)任務(wù)節(jié)點(diǎn)接一個(gè)RM( ReflecTIve Memory) 接口適配器,每個(gè)RM 接口適配器均集成一塊專用的存儲(chǔ)空間,系統(tǒng)將該存儲(chǔ)空間映射到該網(wǎng)絡(luò)節(jié)點(diǎn)處理系統(tǒng)的地址空間,這樣節(jié)點(diǎn)處理系統(tǒng)對(duì)RM 接口適配器的操作就和對(duì)本機(jī)內(nèi)存操作方式一樣。當(dāng)節(jié)點(diǎn)任務(wù)設(shè)備往映射到反射存儲(chǔ)器的虛擬地址空間的某個(gè)位置寫數(shù)據(jù)的時(shí)候,反射內(nèi)存網(wǎng)絡(luò)協(xié)議在納秒級(jí)的時(shí)間內(nèi)將數(shù)據(jù)傳播到網(wǎng)絡(luò)上的每個(gè)其他節(jié)點(diǎn)。并且更新的傳播操作是異步的,沒有應(yīng)用系統(tǒng)處理器的介入。數(shù)控系統(tǒng)網(wǎng)絡(luò)連接結(jié)構(gòu)如圖5 所示。
圖5 數(shù)控系統(tǒng)反射內(nèi)存網(wǎng)絡(luò)連接圖分布式數(shù)控系統(tǒng)工作過程: CAD/CAM 系統(tǒng)對(duì)待加工零件建模,并根據(jù)加工工藝生成NC 代碼[17]; 數(shù)控仿真加工及加工模擬系統(tǒng)對(duì)生成的NC 代碼進(jìn)行圖形仿真,進(jìn)行預(yù)加工,檢測(cè)是否有刀具干涉等異?,F(xiàn)象;HMI( 人機(jī)操作界面) 作為工控機(jī)的輸入和顯示單元是系統(tǒng)和用戶之間進(jìn)行信息交換的媒介,顯示各種控制信號(hào)的狀態(tài),操作人員可以通過它對(duì)機(jī)床進(jìn)行操作,對(duì)機(jī)床參數(shù)進(jìn)行設(shè)定和修改,加載零件加工文件; CNC模塊接收上位機(jī)傳送的加工代碼,通過解釋器、插補(bǔ)器生成運(yùn)動(dòng)控制指令; 遠(yuǎn)程監(jiān)控及故障診斷專家系統(tǒng)通過采集數(shù)控系統(tǒng)及機(jī)床本體傳感器件信息,遠(yuǎn)程監(jiān)控機(jī)床運(yùn)行狀態(tài),對(duì)運(yùn)行故障進(jìn)行故障原因分析和故障點(diǎn)定位。如果將這些功能或者系統(tǒng)裝在一臺(tái)計(jì)算機(jī)上,會(huì)增加計(jì)算機(jī)負(fù)載,而插補(bǔ)過程是一個(gè)高實(shí)時(shí)性的過程,用反射內(nèi)存網(wǎng)絡(luò)把這些模塊分別連接起來,并且其相互之間信息交換幾乎沒有時(shí)間延遲,相當(dāng)于一臺(tái)計(jì)算機(jī)實(shí)現(xiàn)的控制,能很好地滿足數(shù)控機(jī)床對(duì)加工實(shí)時(shí)性的要求。
3. 2 反射內(nèi)存網(wǎng)絡(luò)通訊過程
由于反射內(nèi)存網(wǎng)的傳輸是純硬件操作,所以不受特定網(wǎng)絡(luò)協(xié)議的限制,也就不用編寫復(fù)雜的接口程序,軟件上只需幾行代碼就可以完成對(duì)反射內(nèi)存卡的讀寫操作。整個(gè)通訊過程如下:Step1: 打開板卡并復(fù)位板卡;Step2: 板卡初始化設(shè)置:執(zhí)行中斷初始化函數(shù)( INT_Init) ;設(shè)置板卡中斷包中斷使能( RM_IntDataArrive_IntEnable) ;使能光纖收發(fā)器( RM_FM_Enable)Step3: 通訊開始
(1) 發(fā)送方發(fā)送中斷包( RM_TxIntPkt) ,中斷包中斷后,中斷處理函數(shù)自動(dòng)調(diào)用中斷處理函數(shù)( RM_Rx-IntPkt) 。發(fā)送方發(fā)送數(shù)據(jù)包( RM_TxDatPk) : 當(dāng)產(chǎn)生一個(gè)對(duì)SDRAM 的寫操作時(shí),反射內(nèi)存卡自動(dòng)將數(shù)據(jù)和其他相關(guān)信息( 包括數(shù)據(jù)地址、節(jié)點(diǎn)號(hào)等) 寫入到發(fā)送緩沖器中,在發(fā)送緩沖器中,發(fā)送電路檢測(cè)并將數(shù)據(jù)變成一個(gè)4 到64 字節(jié)長(zhǎng)度可變的數(shù)據(jù)包,通過光纖接口發(fā)送到下一個(gè)板卡的接收端口。
?。?2) 接收方接收中斷包; 中斷包中斷后,中斷處理函數(shù)自動(dòng)調(diào)用中斷處理函數(shù)( RM_RxIntPkt) 。接收數(shù)據(jù)包( RM_RxDatPkt) ,寫入磁盤,開啟線程函數(shù)查詢板卡接收數(shù)據(jù)包狀態(tài)( RM_IntStatus) ,先判斷本節(jié)點(diǎn)是否需要寫入數(shù)據(jù),若不需要,則直接轉(zhuǎn)發(fā)寫中斷給下一組內(nèi)節(jié)點(diǎn); 否則,向其反射內(nèi)存卡中寫入數(shù)據(jù)后發(fā)送讀中斷,接收電路解開數(shù)據(jù)包并將數(shù)據(jù)存儲(chǔ)到板載的接收緩沖器中,在接收緩沖器中,另一個(gè)電路將數(shù)據(jù)寫入到本地的SDRAM 的和源節(jié)點(diǎn)相同的地址中。同時(shí)該電路將數(shù)據(jù)發(fā)送到發(fā)送FIFO 中,重復(fù)這個(gè)處理過程直至所發(fā)送的數(shù)據(jù)返回到源節(jié)點(diǎn)接收端,然后源節(jié)點(diǎn)將節(jié)點(diǎn)ID 相同的數(shù)據(jù)從網(wǎng)絡(luò)中刪除,從而實(shí)現(xiàn)所有節(jié)點(diǎn)都被更新。重復(fù)上述流程。退出程序,關(guān)閉板卡( RM_Card_close) 。
3. 3 帶寬及實(shí)時(shí)性分析高速、高精加工中插補(bǔ)周期一般控制在1 ~ 2 ms,插補(bǔ)周期越短,以直代曲插補(bǔ)直線段越逼近實(shí)際加工曲線,加工精度越高。對(duì)于分布式數(shù)控系統(tǒng)而言,地理位置上相對(duì)獨(dú)立的各個(gè)單元通過網(wǎng)絡(luò)通信系統(tǒng)進(jìn)行互聯(lián),數(shù)據(jù)傳輸?shù)膸捈皩?shí)時(shí)性會(huì)極大地影響實(shí)際加工效果。
表 1 為幾種數(shù)控系統(tǒng)中常用網(wǎng)絡(luò)通信方式的對(duì)比情況。文中采用的發(fā)射內(nèi)存網(wǎng)帶寬最高可達(dá)1. 06Gbps,網(wǎng)絡(luò)傳輸延遲為400 ~ 750 ns,這兩個(gè)指標(biāo)都明顯優(yōu)于FDDI( Fiber Distributed - Data Interface) 、CAN、工業(yè)以太網(wǎng)及PROFIUBS 現(xiàn)場(chǎng)總線。表1 幾種通訊網(wǎng)絡(luò)對(duì)比網(wǎng)絡(luò)類型帶寬實(shí)時(shí)性分析RMN 1. 06 Gbps 節(jié)點(diǎn)確定的傳輸延遲為400 ~ 750 nsFDDI 100 Mbps光纜延遲和站延遲使其響應(yīng)時(shí)間至少為> 5msCAN 1 Mbps數(shù)據(jù)率很低,速度低,一般響應(yīng)時(shí)間5 ~ 10ms工業(yè)以太網(wǎng)100 MbpsCSMA/CD 的傳輸機(jī)制決定了它無法確保傳輸延遲的確定性,導(dǎo)致其實(shí)時(shí)性差。傳輸延遲可達(dá)到1 ~ 10 msPROFIBUS < 12 Mbps 響應(yīng)時(shí)間> 10 ms4
結(jié)束語文中對(duì)反射內(nèi)存網(wǎng)技術(shù)應(yīng)用于數(shù)控系統(tǒng)這一極富研究?jī)r(jià)值的領(lǐng)域作了初步探索,提出了一種基于反射內(nèi)存網(wǎng)的分布式數(shù)控系統(tǒng)實(shí)時(shí)通信網(wǎng)絡(luò)方案,給出了系統(tǒng)的基本框架結(jié)構(gòu)、節(jié)點(diǎn)模型和拓展結(jié)構(gòu)。在實(shí)際應(yīng)用中,可以考慮把反射內(nèi)存網(wǎng)同以太網(wǎng)相結(jié)合,在強(qiáng)實(shí)時(shí)部分使用反射內(nèi)存網(wǎng),在弱實(shí)時(shí)部分則利用以太網(wǎng),實(shí)現(xiàn)資源的充分利用,降低開發(fā)成本。