基于CAN總線數(shù)控系統(tǒng)遠程輸入輸出模塊的設計與實現(xiàn)
1 引 言
CAN即控制器局域網(wǎng),他的通信具有突出的可靠性、實時性和靈活性。他的應用不再局限于汽車行業(yè),其中CAN在機床數(shù)控系統(tǒng)方面實現(xiàn)的功能主要包括:程序管理;機床系統(tǒng)參數(shù)輸入輸出診斷、參數(shù)的通訊;機床狀態(tài)采集;機床工作模式采集;數(shù)據(jù)庫管理等。
目前,國產(chǎn)數(shù)控系統(tǒng)的主要份額是經(jīng)濟型機床數(shù)控系統(tǒng)。經(jīng)濟型數(shù)控系統(tǒng)與機床基本輸入輸出接口的數(shù)量都是有限的,經(jīng)常不能滿足實際操作中的需求,同時在實際車間中,機床與數(shù)控系統(tǒng)可能距離較遠,輸入輸出信號在遠程傳輸過程中非常容易受到干擾而出錯,而CAN總線在傳輸較遠距離的信號時傳輸時間短,受干擾概率低,還具有較高的傳輸速度,基于這些原因本文提出了基于CAN總線的數(shù)控系統(tǒng)遠程輸入輸出模塊的設計思想。
2 模塊結構設計
該模塊的組成結構設計如下:CANIN,CANOUT是CAN總線的輸入輸出接口。DI,DO是模塊與機床的接口,DI:機床信息輸入接口;DO:來自數(shù)控系統(tǒng)的信息輸出給機床的接口。且D1,DO接口接收的信息都是開關量信息。
3 模塊硬件設計
本輸入輸出模塊中的微處理器選用宏晶公司的單片機STC89C516RD+。在CAN總線通信接口中,CAN通信控制器選用SJA1000,CAN總線驅動器采用PCA82C250。由圖2 CAN遠程輸入輸出模塊硬件原理圖可以看出,電路主要由6部分組成:微控制器STC89C516RD+、獨立CAN控制器、電氣隔離器件6N137、CAN總線驅動器PCA82C250、輸出模塊和輸入模塊。微處理器STC89C516RD+負責向輸出模塊傳出要輸出的數(shù)據(jù),對輸入模塊的輸入點進行掃描輸入,以及初始化SJA1000,并通過控制SJA1000實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務。
SJA1000的AD0~AD7連接到STC89C516RD+的P0口,片選信號CS*由P2.7控制,其為0時CPU片外存儲器地址可選中SJA1000,進而可對SJA1000執(zhí)行相應的讀/寫操作。SJA1000的RD*WR*ALE分別與STC89C516RD+的對應引腳相連,INT*接STC89C516RD+的INT0*,使單片機可通過中斷方式對SJA1000進行實時訪問。P1口3個端口外接一撥碼開關,用來確定自身模塊的標識號即該模塊的ID號,撥碼開關的取值為000~111,所以該ID號的取值為0~7。
為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX0和RX0并不是直接與PCA82C250的TXD和RXD相連,而是在中間加入了一級高速光耦6N137,這樣就很好地實現(xiàn)了總線上各CAN節(jié)點間的電氣隔離,但前提是光耦部分電路所采用的兩個電源VCC和VDD必須完全隔離,否則就只是利用其響應速度做低通濾波器用。電源的完全隔離可采用小功率的DC-DC,或帶多5 V隔離輸出的開關電源模塊實現(xiàn)。這雖然增加了接口電路的復雜性及成本,但卻提高了節(jié)點的穩(wěn)定性和安全性。
輸出模塊中各輸出點通過鎖存器74ALS273與STC89C516RD+的P0口相接,并由P2譯出的地址以及寫信號WR*進行鎖存控制。而輸入模塊中各輸入點通過總線緩沖器74ABT245與P0口相連,74ABT245由P2譯出的地址以及讀信號RD*進行選通控制。這樣STC89C516RD+就可以方便地對外部I/O進行訪問而無須其他額外的軟硬件開支,大大提高了STC89C516RD+的執(zhí)行效率。
4 模塊軟件設計
CAN總線數(shù)控系統(tǒng)遠程輸入輸出模塊的軟件設計主要包括6大部分:STC89C516RD+初始化、CAN控制器初始化、報文發(fā)送、報文接收、對輸出點的輸出訪問和輸入點的掃描輸入。本設計應用的CAN的pelic模式的標準幀格式。
程序流程如圖3所示。SJA1000初始化只有在復位模式下才能進行,初始化主要包括通過調(diào)節(jié)撥碼開關設置本模塊的標識符,工作方式的設置、接收濾波方式的設置、接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)的設置、波特率設置和中斷允許寄存器(IER)的設置等。
機床信息傳到數(shù)控系統(tǒng):當掃描到機床的輸入信號有電平變化時,模塊把自身的ID信息和輸入信號一起打包成標準幀發(fā)送給數(shù)控系統(tǒng)。
數(shù)控系統(tǒng)指令傳到機床:模塊實時監(jiān)控總線,當總線上有來自數(shù)控系統(tǒng)的信息,啟動CAN接收,根據(jù)AMR和ACR來判斷是否該接收該指令幀,如果不應該接收,將信息丟棄,如果應該接收,將指令輸出給機床。
5 模塊應用
在實際應用中,多塊輸入輸出模塊相連接組成CAN的網(wǎng)絡,多塊輸入輸出模塊的上位機都是機床數(shù)控系統(tǒng),各模塊的輸入輸出接口均與機床相連如圖4所示。
注意在該網(wǎng)絡中,在總線的兩端應各接有一個終端電阻,終端電阻的作用是吸收信號線上電脈沖的多余能量,防止反射形成信號混淆,而信號混淆將導致通訊錯誤。
由于各模塊的ID號的取值為0~7,所以本設計數(shù)控系統(tǒng)外部可擴展8個輸入輸出模塊,其中各個模塊ID號設置不能相同,且站號越小,優(yōu)先級越高。在本設計中每個模塊的輸入點為64個,輸出點為64個,則一共可以擴展到512(64*8)個輸入輸出點。
6 結 語
基于CAN總線的數(shù)控系統(tǒng)遠程輸入輸出模塊不僅擴展了經(jīng)濟型數(shù)控系統(tǒng)的輸入輸出節(jié)點,而且提高了遠程輸入輸出信號傳輸?shù)恼_率。本系統(tǒng)通過了現(xiàn)場進行的實驗測試,總線單接一個模塊;接兩個模塊;串接8個模塊,分別測試各個模塊的工作情況,機床和數(shù)控系統(tǒng)之間的信息都能正確傳送,通信速率完全能滿足系統(tǒng)實時性能的要求,運行可靠。系統(tǒng)具有結構簡單,集成度、智能化程 度高,結構與功能可擴展性好,安全可靠,極大地增加了數(shù)控系統(tǒng)和機床通信的輸入輸出節(jié)點。隨著未來工廠自動化的發(fā)展,CAN總線將具有廣闊的應用前景。