新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AT89C51型單片機的CAN總線智能節(jié)點設計

基于AT89C51型單片機的CAN總線智能節(jié)點設計

作者:李金剛 劉永鴻 時間:2008-07-11 來源:國外電子元器件 收藏

  4 軟件設計

本文引用地址:http://butianyuan.cn/article/85600.htm

  4.1 網絡規(guī)則

  為多主工作方式,網絡上任一節(jié)點均可在任意時刻主動向網絡上其他節(jié)點發(fā)送信息而不分主從,方式靈活。為禁止總線沖突,采用非破壞性總線仲裁技術,根據(jù)需要將各個節(jié)點設定為不同的優(yōu)先級,并以標識符ID標定,其值越小,優(yōu)先級越高。總線的節(jié)點之間可以進行實時相互,當1個節(jié)點需要接收另1個節(jié)點的數(shù)據(jù)時,只需把其代碼寄存器的內容設置成和另1節(jié)點的標識符一致即可。如果對于標識符和其代碼寄存器的內容設置不一致,則節(jié)點所發(fā)的數(shù)據(jù)不予理會。

  4.2 SJAl000的工作模式設置

  SJAl000有二種工作模式:復位模式和工作模式。在復位模式下可對接收代碼、接收屏蔽、總線時序寄存器O和1及輸出控制寄存器進行設置。一般在CAN初始化時完成對以上寄存器的設置,當CAN進入工作模式后,它們的值就不再變化。在工作模式下可進行數(shù)據(jù)的發(fā)送和接收。特別要注意的是:當硬件復位或控制器掉線時會自動進入復位模式,這樣就不能進行正常的CAN通信,這就要求對復位位進行監(jiān)控。當發(fā)生硬件復位或控制器掉線而進入復位模式時,要求把復位位置為0并進入工作模式,這樣CAN就能進行正常發(fā)送和接收。

  4.3 基于C語言的軟件編程

  系統(tǒng)軟件的設計思想是系統(tǒng)上電后首先對AT89C51和SJAl000進行初始化,以確定工作主頻、波特率、輸出特性等。其中任一可以利用查詢方式通過SJAl000從上獲取所需的數(shù)據(jù)并把該數(shù)據(jù)傳送到PC上顯示,同時可以向總線上發(fā)送數(shù)據(jù)以供其他接收顯示。以下是具體實現(xiàn)程序。

  以上就是進行試驗的程序,其中reg51.h是為AT89C52主控制器專門編寫的庫函數(shù),它在Keil軟件中是現(xiàn)成的,只要用#include語句包括進來即可;intrins.h是為以后調用空函數(shù)_nop_()作準備,它里面包括了類似于匯編語言的NOP語句;CAN_TOUWENJIAN.h是頭文件,用于對相關寄存器的定義。Tx_DATA_CAN()函數(shù)用于向總線發(fā)送數(shù)據(jù),REC_DATA_CAN()函數(shù)用于從總線接收數(shù)據(jù),SERIAL()用于PC與間的相互通信。限于篇幅,發(fā)送子程序和接收子程序沒有具體給出。

  5 結束語

  在CAN總線的開發(fā)試驗過程中,筆者掌握了CAN總線智能節(jié)點的設計,并在實踐中進行了應用。通過應用證明,CAN總線具有以下優(yōu)點:組網自由,擴展性強;自動錯誤界定,簡化了通信的操作;可根據(jù)數(shù)據(jù)內容確定優(yōu)先權,解決通信的實時性問題。此外,CAN網絡已在眾多工業(yè)控制系統(tǒng)中應用,尤其在傳輸速率較高而且對實時性及可靠性要求高的場合,CAN總線將有廣闊的應用前景。本文來源于《某型控制系統(tǒng)信號信息傳輸改進研究》課題組,組長是劉永鴻教授,副組長是張文宏副教授,主要參與者有黃晨副教授、趙勇講師、李金剛研究生。


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉