CAN是一種多主方式的串行通訊總線,與一般的通信總線相比,CAN總線的數據通信具有可靠性、實時性和靈活性。因此,CAN已經在汽車、航空、工業控制、安全防護等領域得到了廣泛應用。
目前,在數控機床通訊方面,采用較多的是PROFIBUS,完全采用CAN總線通訊方式的目前還沒有。本系統采用32位ARM處理器,對CAN總線通信系統進行了嘗試。
1 系統構成
1)六個伺服電動機各由一個下位機控制。上位機和下位機均以ARM9微控制器為核心,對其API接口進行擴展,通過CAN總線電路進行通訊,組成全數字式的數控系統;
2)上位機還包含了鍵盤輸入、LED顯示、LCD顯示與觸摸屏控制、RS23}串口和以太網接口以及USB接口等電路:
3)數控系統所必需的機床面板信號控制與顯示等各個結構模塊電路包括指令觸發與開關量控制PLC, ADC與DAC等電路控制等)均通過CAN總線由上位機控制。
2 CAN控制器硬件結構
CAN控制器硬件電路如圖2主要由ARM 9芯片微控制器S3C X410, CAN總線控制器MCP2515,CAN總線收發器MCP2551、高速光藕6N 137和5V電源隔離模塊HDN 1-555等組成。
MCU通過SP胺口與MCP25巧進行通信。通過使用標準SP讀寫命令對寄存器進行讀寫操作。SPI系統使用四個I/O引腳,它們是主機輸入從機輸出數據線MISO、主機輸出從機輸入數據線MCSI串行時鐘9CK和低有效的選擇線器本系統采用的S3C241 D微處理器包括兩路SPI每一路分別有兩個8位轉移寄存器,用來發送和接收數據。
MCP25l 5是一款獨立的CAN控制器,支持CAN 20B技術規范中所定義的標準數據幀、擴展數據幀及遠程幀標準和擴展),有三個發送緩沖器和兩個接收緩沖器,支持(0,0)和(1,1) SPI模式。MCP2515內部提供了六個幀過濾寄存器和兩個屏蔽寄存器,對于幀Id的過濾最長可達29位。在本設計應用時每個節點可以設置一個獨有接收濾波條件,同時設置若干種公共接收濾波條件。這使得MCP2515在應用于六軸數控機床中,可以實現點對點、一點對多點及全局廣播等幾種信息的發送方式。
MCP2551是一個可容錯的高速CAN收發器,為CAN協議控制器提供差分收發能力。
3 CAN總線接口軟件設計
CAN總線軟件接口為應用層訪問CAN控制器MCP2515提供了一個便捷的侄道”,該通道”屏蔽了CAN控制器工作的實現細節,使得應用層面向通信是透明的。
驅動程序是應用程序與硬件之間的一個中間軟件層。它使某個特定的硬件響應一個定義良好的內部編程接口,同時完全隱蔽了設備的工作細節二用戶通過一組標準化的調用來完成相關操作,這些標準化的調用和具體設備驅動無關,而驅動程序的任務就是把這些調用映射到具體設備對于實際硬件的特定操作上團。
總線報文通過中斷進行接收,此中斷在接收緩沖器滿時被觸發。報文傳送至某一接收緩沖器,與該接收緩沖器對應的中斷標志寄存器的RXNIF位將置1。一旦緩沖器中的報文處理完畢,MCU就必須將該位清除以接收下一條報文。該控制位提供的鎖定功能確保在MUC尚未處理完上一條報文前,MCP2515不會將新的報文載入接收緩沖器。在程序中通過使能CAN 1TTC寄存器中的RXXIE位,來使能接收中斷,提高了系統工作效率。
驅動程序的接口主要分為三部分:
(1)與內核通信的接口。
內核通過主設備號將設備驅動程序和設備文件相連,而構成驅動的一個重要數據結構就是Cle_operaLions內核就是通過這個結構來訪問驅動程序的。它包含指向驅動程序內部大多數函數指針,它的每一個成員名稱對應著一個系統調用。
(2)與系統啟動代碼的接口,完感沙寸設備的初始化。
在Linux初始化或驅動動態加載的時候要調用初始化函數,它包括以下內容:
?、俪跏蓟O備相關的參數:
?、谧栽O備;
?、壑袛嘧?。
(3)與設備的接口,完成對設備的讀寫等操作。
外部數據和命令通過5I}}腳傳送到器件中,且數據在SCK時鐘信號的上升沿傳送進去。MCP257 5在SCK的下降沿通過510引腳將數據傳送出去。
4 結語
本項目實現了上位機將鍵盤、觸摸屏等設備的輸入數據利用CAN總線有選擇性的對下位機進行傳輸,系統中各MCU間及MCU與PLC間可相互通訊。實際運行證明了該系統能夠較好完成六軸聯動通信系統的要求。由于選擇了總線控制,系統得以數字化,使系統可靠性得到大大提高,同時簡化方案節約了成本。由于CAN總線具有高傳輸速率及高可靠性,在數控機床上必將有著廣闊的前景。
(審核編輯: 智匯胡妮)
分享