新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線節(jié)點(diǎn)電路的設(shè)計(jì)與實(shí)現(xiàn)

CAN總線節(jié)點(diǎn)電路的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2013-04-06 來源:網(wǎng)絡(luò) 收藏


圖 1 原理圖

(1)SJA1000并沒有和單片機(jī)共用復(fù)位電路,而是通過單片機(jī)的一I/O口來控制,這樣,SJA1000的復(fù)位就可以方便地由單片機(jī)通過軟件來控制。

(2)SJA1000的地址/數(shù)據(jù)端和單片機(jī)的P0口相連時(shí),不需要再加鎖存器,因?yàn)樗鼉?nèi)部已經(jīng)有地址鎖存功能。

(3)SJA1000 的TX1 腳懸空, RX1 引腳的電位必須維持在約0.5VCC上, 否則將不能形成 協(xié)議所要求的邏輯電平。

(4)總線上電阻R3、R4一定不能省略,它們對(duì)匹配總線阻抗起著相當(dāng)重要的作用,如果去掉它們,系統(tǒng)通訊的可靠性和抗干擾能力就會(huì)大大降低,甚至不能正常工作。

4 軟件設(shè)計(jì)

和硬件電路相比,軟件的設(shè)計(jì)相對(duì)來說要復(fù)雜的多。而且,其中還涉及到有關(guān)通訊協(xié)議的問題,對(duì)于不同的控制系統(tǒng)、不同的功能要求,總線通訊軟件的差別很大,在此不可能一一列出。但是,對(duì)于基于SJA1000的CAN總線系統(tǒng),它們開始時(shí)都必須對(duì)SJA1000進(jìn)行初始化,而這種初始化的流程是基本一致的。下面給出用匯編語言編制的SJA1000的初始化程序,假設(shè)SJA1000的首地址為0100H,其中設(shè)置波特率的有關(guān)參數(shù)是針對(duì)晶振為12M,波特率為500Kbit/s計(jì)算出來的。另外,在整個(gè)CAN總線系統(tǒng)中,所有節(jié)點(diǎn)設(shè)置的波特率必須一致,否則,系統(tǒng)就不能正常工作。

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 結(jié)束語

CAN 具有較強(qiáng)的糾錯(cuò)能力,適用于高噪聲環(huán)境, 并具有較遠(yuǎn)的傳輸距離, 現(xiàn)已廣泛應(yīng)用于許多領(lǐng)域,該設(shè)計(jì)作為CAN的一個(gè)模塊,能夠和儀器儀表等設(shè)備相結(jié)合,使其具有網(wǎng)絡(luò)通訊的能力,有著廣闊的應(yīng)用前景。


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

評(píng)論


相關(guān)推薦

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

關(guān)閉