基于1394總線(xiàn)通信的I/O模塊在數控系統中的應用
3.2中轉時(shí)延測試分析
TSIM3AA82是一種雙端口1394芯片,因此可以將多個(gè)I/O模塊串聯(lián),如圖5所示。模塊1最后上電,并進(jìn)行總線(xiàn)復位,強制自己為根節點(diǎn)。模塊1的節點(diǎn)號為0,模塊2、3、4節點(diǎn)號相應為1、2、3。
圖5 中轉時(shí)延測試結構圖
寄存器Ping_Timer記錄了Ping包從發(fā)出到收回的時(shí)間,每次40 as?,F在從O節點(diǎn)分別向1、2、3節點(diǎn)發(fā)送Ping包,共測試20次。0節點(diǎn)到l節點(diǎn)的Ping_Timer值穩定為14;0節點(diǎn)到2節點(diǎn)的Ping_Timer值為19共14次,值為20共6次;0節點(diǎn)到3節點(diǎn)的Ping_Timer值為24共12次,值為25共8次,測試結果如表1所示。
0到1節點(diǎn)不經(jīng)過(guò)轉發(fā),僅僅是數據傳輸時(shí)間。0節點(diǎn)到2節點(diǎn)的傳輸增加了1節點(diǎn)的兩次轉發(fā)時(shí)間。0節點(diǎn)到3節點(diǎn)的傳輸增加了1節點(diǎn)兩次轉發(fā)及2節點(diǎn)兩次轉發(fā)的時(shí)間。
按照以上分析,采用代數平均數算法,可計算得到節點(diǎn)轉發(fā)時(shí)間為108.7 as。而TSB43AA82芯片的PHY Internal Registers中的delay字段定義了中轉時(shí)延的最大值,即從數據的第1位接收到數據包被轉發(fā)所需要的最大時(shí)間,為144+(delay×20)as,其中TSB43AA82中delay為0。故最壞情況下轉發(fā)器轉發(fā)數據的延遲為144 ns。所測得的中轉時(shí)延為108.7 n8在144 ns以?xún)?,與理論值完全符合。
3.3 多節點(diǎn)的伺服同步
一個(gè)數控系統中有多個(gè)伺服單元,這些伺服單元可以通過(guò)各自的I/O模塊與上位機進(jìn)行通信。高檔數控系統對于各個(gè)伺服單元之間的伺服周期同步有較高的要求。
可以利用上位機向所有節點(diǎn)發(fā)送1394廣播包作為同步信號,各節點(diǎn)收到廣播包后開(kāi)始執行新得到的插補命令,從而實(shí)現各個(gè)伺服節點(diǎn)同時(shí)執行同一插補周期的數據。根據1394網(wǎng)絡(luò )拓撲結構及1394傳輸協(xié)議可知,數據的傳輸是經(jīng)過(guò)各個(gè)節點(diǎn)的轉發(fā)實(shí)現的,所以在邏輯位置上距離上位機較遠的節點(diǎn)收到廣播包比其他節點(diǎn)要晚,導致同步信號不夠準確。
針對這一情況,可以利用3.2節所測節點(diǎn)中轉時(shí)延,人為地補足這個(gè)時(shí)間差,實(shí)現更高精度的同步。由于采用的TSB43AA82是雙端口1394芯片,拓撲結構比較簡(jiǎn)單,呈線(xiàn)性,一般上位機強制為根節點(diǎn),節點(diǎn)號為0。假設整個(gè)數控系統共有m個(gè)節點(diǎn),則邏輯位置上距離上位機最遠的節點(diǎn)號為m-1??梢跃幊炭刂乒濣c(diǎn)號為i的節點(diǎn)在收到廣播包后延時(shí)(m-1-i)×108.7 as,之后執行插補命令,從而實(shí)現各節點(diǎn)之間真正的伺服同步。
4 結束語(yǔ)
本設計的基于IEEE 1394通信的I/O模塊經(jīng)測試完全滿(mǎn)足高檔數控系統的實(shí)時(shí)性要求。根據3.2節中轉時(shí)延的測試結果,可以利用1394廣播包來(lái)同步多個(gè)節點(diǎn)模塊。另外該模塊利用光耦芯片與外界環(huán)境隔離,能夠有效預防干擾。除數控系統外,該模塊還可廣泛應用于很多其他場(chǎng)合,負責實(shí)時(shí)數據采集及高速數據傳輸。
評論