數控系統作為數控機床裝備的核心關鍵部件,是決定機床裝備的性能、功能、可靠性和成本的關鍵因素。我國的數控系統技術基礎薄弱,高檔數控系統基本依賴進口,而相關高檔數控系統的開發技術,國外對我國至今仍封鎖限制,成為制約我國高檔數控機床發展的瓶頸。自主開發高檔數控系統迫在眉睫,而其中的關鍵技術就是數據通信速率的提高。
IEEE 1394最初由Apple公司提出,命名為FireWire(火線),是一種高速串行總線。IEEE(電氣和電子工程師協會)在1995年認可FireWire為IEEE1394—1995規范,繼而又對該協議中一些模糊的定義加以修正,推出了IEEE 1394a.2000規范,解決了一些兼容性問題。2001年,更新的1394規范——1394b也被推出,其帶寬、傳輸速度、距離和效率都有了大幅度提高。IEEE 1394支持100 Mb/s、200 Mh/s和400 Mb/s的傳輸速率;支持點到點的傳輸,各個節點可以脫離主機自主執行事務;另外,它還支持即插即用、熱插拔、同步和異步傳輸方式,公平仲裁原則。鑒于IEEE 1394的高速傳輸等優越性,將其應用于高檔數控系統成為一種必然的趨勢。
本研究設計出一塊基于1394總線傳輸的I/O模塊,該模塊應用在高檔數控系統中,負責實時采集機床開關量數據,數據傳輸及控制機床進給量。
1 1394總線通信I/O模塊硬件設計
1.1 I/O模塊整體結構介紹
該模塊主要包括1394芯片、DSP芯片和光耦芯片。該模塊共引出32個輸入口和24個輸出口,具有高速傳輸、抗干擾的特點。該模塊I/O端El通過排線與數控機床的開關量相連接,負責數據采集及實時控制。1394端口通過1394總線與上位機進行通信,負責I/O模塊與上位機的數據傳輸。該模塊與上位機及機床的整體架構。
I/O模塊中各芯片間的連接:DSP芯片選用TI公司的TMS320F2812,它是一款32位定點DSP芯片,運行速度高,處理功能強大,并且具有豐富的片內外圍設備,便于接口和模塊化設計。共有56位復用GPIO,可引出作為I/O端口。1394芯片選用TI公司的TSB43AA82,它是一款集成物理層和數據鏈路層的兩端口1394控制器,兼容1394—1995和IEEEl394a一2000規范,支持異步數據傳輸。光耦芯片選用TOSHIBA公司的TLP521-4,每個芯片內具有4個獨立隔離通道舊J。DSP芯片與1394芯片通過數據線、地址線和控制線連接。DSP芯片引出56位GPIO管腳,通過光耦芯片與外界設備連接。
1.2 DSP芯片外圍電路介紹
TMS320F28 12的XZCS6 AND7連接TSB43 AA82的xcs(片使能),用于片選TSB43AA82,當訪問區域6時有效;XWE為寫有效,連接TSB43AA82的XWR(寫使能),用于向TSB43AA82寫入數據;XRD為讀有效,連接TSB43AA82的XRD(讀使能),用于讀取TSB43AA82數據;XRS為復位輸出,連接ARESETP(物理層模塊復位輸入)和ARESETL(鏈路層模塊復位輸入),用于控制TSB43AA82復位;TSB43AA82的XINT為中斷信號輸出,連接TMS320F2812的XINTl一XBIO中斷輸入),用于中斷程序;XWAIT為等待信號輸出,連接TMS320F2812的XREADY(數據準備輸入),用于說明外設已為訪問做好準備;XA0~XA7,BD108~BDI015為8位地址總線,XD0~XDl5,DA0~DAl5為16位數據總線,用于TMS320F2812與TSIM3AA82之間數據傳輸。TLP521-4的P為內部發光二極管正極,N為內部發光二極管負極,Out為內部三極管輸出。
1.3 光耦芯片電路介紹
本設計的I/O模塊通過引入光耦芯片,實現DSP芯片與機床的電路隔離、電平匹配等功能。輸入光耦電路指I/O模塊輸入端,“輸入1”連接機床開關量;“輸出1”連接DSP的輸入GPIO。輸出光耦電路指IZO模塊輸出端,“輸入2”連接DSP的輸出GPIO;“輸出2”通過繼電器連接機床的控制量。
根據光耦芯片TLP521-4的使用條件,Ic范圍應在0~10 mA;,If范圍應在0~25 mA;Ic/If范圍應在100%~600%。又根據光耦芯片內部結構可知,輸入部分為一個發光二極管,故其工作電流,,不可太小。對于輸入光耦電路,選取R1=4.7kΩ,R2=470Ω,則有Ic=7.02 mA,If=5.11 mA,Ic/If=137Ω;對于輸出光耦電路,選取R3=1kΩ,R4=4.7kΩ,則有Ic=5.11 mA,If=3.3 mA,Ic/If=155%,均在正常工作范圍內。
2 I/O模塊通信軟件設計
IEEE 1394協議支持異步傳輸和等時傳輸兩種機制。本設計采用的是異步傳輸模式,其特點是叮靠,通過發送ACK信號及響應包來實現。1394芯片為收發數據準備了FIFO空間。針對異步傳輸的是ARF(異步數據包接收FIFO),ATF(異步數據包傳輸FIFO)空間,空間大小可以進行配置分配,FIFO空間總和為512個Quadlet(4字節字)。由于FIFO不能直接映射到DSP空間,需要通過操作CFR寄存器(配置寄存器)來讀寫FIFO空間。
發送數據時,通過Write First,Write Continue,Write Update 3個寄存器將數據寫入ATF,發送器從ATF寄存器中取出數據,并把它們打包成規則的串行總線數據包的格式,然后通過物理層仲裁總線,并發送數據包。發送數據包之后若能接收到正確的ACK信號及響應包則表示發送成功,否則需要重傳。接收數據時,首先接收器從物理層接口取走數據并檢查目標節點是否為當前節點,CRC字段是否正確。若檢測到是正確的異步包,則將數據包存入ARF中。ARF中存人數據后,可以通過讀取ARFThere寄存器,了解ARF中收到的數據量,之后通過操作ARFRead寄存器讀取接收到的異步數據。讀取之后發送正確的響應包,完成數據接收。實現數據發送接收部分代碼如下:
3 I/O模塊在數控系統中的應用
3.1 I/O模塊在數控系統中的功能測試
使用基于1394通信的I/O模塊完成上位機應用程序對機床的控制。I/O模塊輸入端連接刀庫左移極限、刀庫右移極限、刀庫回零、刀庫定位、刀庫提前感應、手輪軸選擇(x、y、z、A、C共5個輸入)、手輪擋位選擇(1,0.1,0..01共3個輸入)共13個輸入。I/O模塊輸出端連接機床照明燈、冷卻泵、主軸使能、主軸定位、主軸正轉、主軸反轉、主軸停止、主軸松刀、潤滑泵、伺服上電、刀庫左移、刀庫右移、刀庫正轉、刀庫反轉、刀具夾緊、刀具松開和刀具定位共17個輸出。其余輸入輸出端口置高。為了保證數據的準確性,1394通信采用異步傳輸方式。所有數據運算及處理均由上位機應用程序完成,I/O模塊主要負責數據傳輸。
上位機每4 ms向I/0發送一次異步數據,I/O模塊收到上位機數據后觸發中斷,進入中斷程序。根據收到數據命令控制機床運行,并將輸入GPIO狀況發送給上位機。數百萬個周期測試下來,機床運行正常。查看到輸入開關量被正確傳輸到上位機,上位機控制數據也被正確的輸出給數控機床,并且機床能夠實時執行指令。驗證了1394總線的高速傳輸,及I/O模塊在高檔數控系統中的功能實現。
3.2中轉時延測試分析
TSIM3AA82是一種雙端口1394芯片,因此可以將多個I/O模塊串聯,模塊1最后上電,并進行總線復位,強制自己為根節點。模塊1的節點號為0,模塊2、3、4節點號相應為1、2、3。
寄存器Ping_Timer記錄了Ping包從發出到收回的時間,每次40 as。現在從O節點分別向1、2、3節點發送Ping包,共測試20次。0節點到l節點的Ping_Timer值穩定為14;0節點到2節點的Ping_Timer值為19共14次,值為20共6次;0節點到3節點的Ping_Timer值為24共12次,值為25共8次。
0到1節點不經過轉發,僅僅是數據傳輸時間。0節點到2節點的傳輸增加了1節點的兩次轉發時間。0節點到3節點的傳輸增加了1節點兩次轉發及2節點兩次轉發的時間。
按照以上分析,采用代數平均數算法,可計算得到節點轉發時間為108.7 as。而TSB43AA82芯片的PHY Internal Registers中的delay字段定義了中轉時延的最大值,即從數據的第1位接收到數據包被轉發所需要的最大時間,為144+(delay×20)as,其中TSB43AA82中delay為0。故最壞情況下轉發器轉發數據的延遲為144 ns。所測得的中轉時延為108.7 n8在144 ns以內,與理論值完全符合。
3.3 多節點的伺服同步
一個數控系統中有多個伺服單元,這些伺服單元可以通過各自的I/O模塊與上位機進行通信。高檔數控系統對于各個伺服單元之間的伺服周期同步有較高的要求。
可以利用上位機向所有節點發送1394廣播包作為同步信號,各節點收到廣播包后開始執行新得到的插補命令,從而實現各個伺服節點同時執行同一插補周期的數據。根據1394網絡拓撲結構及1394傳輸協議可知,數據的傳輸是經過各個節點的轉發實現的,所以在邏輯位置上距離上位機較遠的節點收到廣播包比其他節點要晚,導致同步信號不夠準確。
針對這一情況,可以利用3.2節所測節點中轉時延,人為地補足這個時間差,實現更高精度的同步。由于采用的TSB43AA82是雙端口1394芯片,拓撲結構比較簡單,呈線性,一般上位機強制為根節點,節點號為0。假設整個數控系統共有m個節點,則邏輯位置上距離上位機最遠的節點號為m-1。可以編程控制節點號為i的節點在收到廣播包后延時(m-1-i)×108.7 as,之后執行插補命令,從而實現各節點之間真正的伺服同步。
4 結束語
本設計的基于IEEE 1394通信的I/O模塊經測試完全滿足高檔數控系統的實時性要求。根據3.2節中轉時延的測試結果,可以利用1394廣播包來同步多個節點模塊。另外該模塊利用光耦芯片與外界環境隔離,能夠有效預防干擾。除數控系統外,該模塊還可廣泛應用于很多其他場合,負責實時數據采集及高速數據傳輸。
(審核編輯: 智匯張瑜)
分享