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