<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)T89C51型單片機的CAN總線(xiàn)智能節點(diǎn)設計

基于A(yíng)T89C51型單片機的CAN總線(xiàn)智能節點(diǎn)設計

作者:李金剛 劉永鴻 時(shí)間:2008-07-11 來(lái)源:國外電子元器件 收藏

  4 軟件設計

本文引用地址:http://dyxdggzs.com/article/85600.htm

  4.1 網(wǎng)絡(luò )規則

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

  4.2 SJAl000的工作模式設置

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

  4.3 基于C語(yǔ)言的軟件編程

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

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

  5 結束語(yǔ)

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>