CAN總線節點電路的設計與實現
(1)SJA1000并沒有和單片機共用復位電路,而是通過單片機的一I/O口來控制,這樣,SJA1000的復位就可以方便地由單片機通過軟件來控制。
(2)SJA1000的地址/數據端和單片機的P0口相連時,不需要再加鎖存器,因為它內部已經有地址鎖存功能。
(3)SJA1000 的TX1 腳懸空, RX1 引腳的電位必須維持在約0.5VCC上, 否則將不能形成CAN 協議所要求的邏輯電平。
(4)總線上電阻R3、R4一定不能省略,它們對匹配總線阻抗起著相當重要的作用,如果去掉它們,系統通訊的可靠性和抗干擾能力就會大大降低,甚至不能正常工作。
4 軟件設計
和硬件電路相比,軟件的設計相對來說要復雜的多。而且,其中還涉及到有關通訊協議的問題,對于不同的控制系統、不同的功能要求,CAN總線通訊軟件的差別很大,在此不可能一一列出。但是,對于基于SJA1000的CAN總線系統,它們開始時都必須對SJA1000進行初始化,而這種初始化的流程是基本一致的。下面給出用匯編語言編制的SJA1000的初始化程序,假設SJA1000的首地址為0100H,其中設置波特率的有關參數是針對晶振為12M,波特率為500Kbit/s計算出來的。另外,在整個CAN總線系統中,所有節點設置的波特率必須一致,否則,系統就不能正常工作。
MODE EQU 0100H
BTR0 EQU MODE+6
BTR1 EQU MODE+7
ACR0 EQU MODE+16
AMR0 EQU MODE+20
OCR EQU MODE+8
RBSA EQU MODE+30
CDR EQU MODE+31
MOV A,#01H
MOV DPTR,#MODE
MOVX @DPTR,A
MOV A,#0C0H
MOV DPTR,# CDR
MOVX @DPTR,A
MOV A,#1AH
MOV DPTR,# OCR
MOVX @DPTR,A
MOV A,#85H
MOV DPTR,# BTR0
MOVX @DPTR,A
MOV A,#0B4H
MOV DPTR,# BTR1
MOVX @DPTR,A
MOV A,#00H
MOV DPTR,# RBSA
MOVX @DPTR,A
MOV A,#0FFH
MOV DPTR,# AMR0
MOV R0,#04H
BEGIN10:MOVX @DPTR,A
INC DPTR
DJNZ R0,BEGIN10
MOV A,#00H
MOV DPTR,#MODE
MOVX @DPTR,A
5 結束語
CAN 具有較強的糾錯能力,適用于高噪聲環境, 并具有較遠的傳輸距離, 現已廣泛應用于許多領域,該設計作為CAN總線節點的一個模塊,能夠和儀器儀表等設備相結合,使其具有網絡通訊的能力,有著廣闊的應用前景。
評論