CAN總線在嵌入式數控系統中的應用
驅動程序是應用程序與硬件之間的一個中間軟件層。它使某個特定的硬件響應一個定義良好的內部編程接口,同時完全隱蔽了設備的工作細節二用戶通過一組標準化的調用來完成相關操作,這些標準化的調用和具體設備驅動無關,而驅動程序的任務就是把這些調用映射到具體設備對于實際硬件的特定操作上團,其流程圖如圖4所示。
總線報文通過中斷進行接收,此中斷在接收緩沖器滿時被觸發。報文傳送至某一接收緩沖器,與該接收緩沖器對應的中斷標志寄存器的RXNIF位將置1。一旦緩沖器中的報文處理完畢,MCU就必須將該位清除以接收下一條報文。該控制位提供的鎖定功能確保在MUC尚未處理完上一條報文前,MCP2515不會將新的報文載入接收緩沖器。在程序中通過使能CAN 1TTC寄存器中的RXXIE位,來使能接收中斷,提高了系統工作效率。
驅動程序的接口主要分為三部分:
(1)與內核通信的接口。
內核通過主設備號將設備驅動程序和設備文件相連,而構成驅動的一個重要數據結構就是Cle_operaLions內核就是通過這個結構來訪問驅動程序的。它包含指向驅動程序內部大多數函數指針,它的每一個成員名稱對應著一個系統調用。程序如下:
(2)與系統啟動代碼的接口,完感沙寸設備的初始化。
在Linux初始化或驅動動態加載的時候要調用初始化函數,它包括以下內容:
①初始化設備相關的參數:
②注冊設備;
③中斷注冊。
(3)與設備的接口,完成對設備的讀寫等操作。
外部數據和命令通過5I}}腳傳送到器件中,且數據在SCK時鐘信號的上升沿傳送進去。MCP257 5在SCK的下降沿通過510引腳將數據傳送出去。
4 結語
本項目實現了上位機將鍵盤、觸摸屏等設備的輸入數據利用CAN總線有選擇性的對下位機進行傳輸,系統中各MCU間及MCU與PLC間可相互通訊。實際運行證明了該系統能夠較好完成六軸聯動通信系統的要求。由于選擇了總線控制,系統得以數字化,使系統可靠性得到大大提高,同時簡化方案節約了成本。由于CAN總線具有高傳輸速率及高可靠性,在數控機床上必將有著廣闊的前景。
評論