新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線在嵌入式數(shù)控系統(tǒng)中的應(yīng)用

CAN總線在嵌入式數(shù)控系統(tǒng)中的應(yīng)用

作者: 時(shí)間:2016-12-20 來源:網(wǎng)絡(luò) 收藏

CAN控制器結(jié)構(gòu)

  驅(qū)動(dòng)程序是應(yīng)用程序與硬件之間的一個(gè)中間軟件層。它使某個(gè)特定的硬件響應(yīng)一個(gè)定義良好的內(nèi)部編程接口,同時(shí)完全隱蔽了設(shè)備的工作細(xì)節(jié)二用戶通過一組標(biāo)準(zhǔn)化的調(diào)用來完成相關(guān)操作,這些標(biāo)準(zhǔn)化的調(diào)用和具體設(shè)備驅(qū)動(dòng)無關(guān),而驅(qū)動(dòng)程序的任務(wù)就是把這些調(diào)用映射到具體設(shè)備對于實(shí)際硬件的特定操作上團(tuán),其流程圖如圖4所示。

CAN控制器程序流程圖

  總線報(bào)文通過中斷進(jìn)行接收,此中斷在接收緩沖器滿時(shí)被觸發(fā)。報(bào)文傳送至某一接收緩沖器,與該接收緩沖器對應(yīng)的中斷標(biāo)志寄存器的RXNIF位將置1。一旦緩沖器中的報(bào)文處理完畢,MCU就必須將該位清除以接收下一條報(bào)文。該控制位提供的鎖定功能確保在MUC尚未處理完上一條報(bào)文前,MCP2515不會(huì)將新的報(bào)文載入接收緩沖器。在程序中通過使能CAN 1TTC寄存器中的RXXIE位,來使能接收中斷,提高了系統(tǒng)工作效率。

  驅(qū)動(dòng)程序的接口主要分為三部分:

  (1)與內(nèi)核通信的接口。

  內(nèi)核通過主設(shè)備號將設(shè)備驅(qū)動(dòng)程序和設(shè)備文件相連,而構(gòu)成驅(qū)動(dòng)的一個(gè)重要數(shù)據(jù)結(jié)構(gòu)就是Cle_operaLions內(nèi)核就是通過這個(gè)結(jié)構(gòu)來訪問驅(qū)動(dòng)程序的。它包含指向驅(qū)動(dòng)程序內(nèi)部大多數(shù)函數(shù)指針,它的每一個(gè)成員名稱對應(yīng)著一個(gè)系統(tǒng)調(diào)用。程序如下:

程序

  (2)與系統(tǒng)啟動(dòng)代碼的接口,完感沙寸設(shè)備的初始化。

  在Linux初始化或驅(qū)動(dòng)動(dòng)態(tài)加載的時(shí)候要調(diào)用初始化函數(shù),它包括以下內(nèi)容:

  ①初始化設(shè)備相關(guān)的參數(shù):

 ?、谧栽O(shè)備;

  ③中斷注冊。

  (3)與設(shè)備的接口,完成對設(shè)備的讀寫等操作。

  外部數(shù)據(jù)和命令通過5I}}腳傳送到器件中,且數(shù)據(jù)在SCK時(shí)鐘信號的上升沿傳送進(jìn)去。MCP257 5在SCK的下降沿通過510引腳將數(shù)據(jù)傳送出去。

4 結(jié)語

  本項(xiàng)目實(shí)現(xiàn)了上位機(jī)將鍵盤、觸摸屏等設(shè)備的輸入數(shù)據(jù)利用CAN總線有選擇性的對下位機(jī)進(jìn)行傳輸,系統(tǒng)中各MCU間及MCU與PLC間可相互通訊。實(shí)際運(yùn)行證明了該系統(tǒng)能夠較好完成六軸聯(lián)動(dòng)通信系統(tǒng)的要求。由于選擇了總線控制,系統(tǒng)得以數(shù)字化,使系統(tǒng)可靠性得到大大提高,同時(shí)簡化方案節(jié)約了成本。由于CAN總線具有高傳輸速率及高可靠性,在數(shù)控機(jī)床上必將有著廣闊的前景。


上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉