CAN匯流排實驗報告

2022-05-13 07:32:19 字數 5180 閱讀 8220

實驗一 sja1000初始化

一、實驗要求:

正確完成對sja1000初始化,初始化成功後用led點亮,表示初始化完成;否則led不亮。

二、實驗內容:

1.實現sja1000的初始化設定

2.理解sja1000的相關暫存器的設定。

三、實驗系統硬體設計:

圖1是89c51與sja1000連線圖。mcu與sja1000連線圖。

選擇適合的電阻和電容。此實驗選擇了51kr電阻與1uf電容,開機後給電容充電,電容電壓由0v公升至5v,sja1000可靠復位。

i/o復位,由微控制器某一i/o引腳控制sja1000復位引腳,使微控制器在可靠復位之後完成sja1000的復位,避免時間偏差。

晶元復位,可以通過外圍晶元進行復位。

四、實驗系統軟體設計

程式開始採用巨集定義,初始化開始。設定模式暫存器進入復位模式;然後配置時鐘分頻暫存器(cdr)選擇pelican模式,關閉clkout輸出;然後是輸出控制暫存器(ocr),再設定位定時(btr0/btr1)6mhz晶振,波特率30kbps;然後配置驗收濾波;最後再次設定模式暫存器推出復位狀態並且設定單驗收濾波,然後判斷狀態暫存器是否位oxoc以確認初始化是否成功,如果成功則點亮led,否則重新初始化。

圖1系統軟體設計框圖

程式如下:

mode equ 0de00h

cmr equ 0de01h命令暫存器

sr equ 0de02h狀態暫存器

ir equ 0de03h中斷暫存器

ier equ 0de04h中斷使能暫存器

btr0 equ 0de06h匯流排定時暫存器一

btr1 equ 0de07h匯流排定時暫存器二

ocr equ 0de08h輸出控制暫存器

alc equ 0de0bh ;仲裁丟失捕捉暫存器

ecc equ 0de0ch ;錯誤**捕捉暫存器

txerr equ 0de0fh ;傳送錯誤計數器

acr0 equ 0de10h驗收**暫存器0

acr1 equ 0de11h1

acr2 equ 0de12h2

acr3 equ 0de13h3

amr0 equ 0de14h驗收遮蔽暫存器0

amr1 equ 0de15h1

amr2 equ 0de16h2

amr3 equ 0de17h3

fin equ 0de10h傳送/接收幀資訊

id1 equ 0de11h傳送/接收緩衝區之標示符一

id2 equ 0de12h傳送/接收緩衝區之標示符二

data1 equ 0de13h傳送/接收資料首址

rbsa equ 0de1eh接收緩衝器起始位址暫存器

cdr equ 0de1fh時鐘分頻暫存器

org 4000h

jmp start

org 4080h

start:

mov dptr,#mode

mov a,#01h

movx @dptr,a

mov dptr,#ier

mov a,#0dh

movx @dptr,a

movdptr,#acr0

mova,#00h

movx @dptr,a

movdptr,#acr1

mova,#10h

movx @dptr,a

movdptr,#acr2

mova,#00h

movx @dptr,a

movdptr,#acr3

mova,#00h

movx @dptr,a

movdptr,#amr0

mova,#00h

movx @dptr,a

movdptr,#amr1

mova,#0fh

movx @dptr,a

movdptr,#amr2

mova,#0ffh

movx @dptr,a

movdptr,#amr3

mova,#0ffh

movx @dptr,a

movdptr,#btr0

mova,#6dh

movx @dptr,a

movdptr,#btr1

mova,#2ah

movx @dptr,a

movdptr,#ocr

mova,#01ch

movx @dptr,a

movdptr,#txerr

mova,#00h

movx @dptr,a

movdptr,#mode

mova,#00h

movx @dptr,a

movdptr,#sr

movx a,@dptr

cjne a,#0ch,start

clr p1.2

end五.頻率計算:

晶振 6mhz,

由實驗執行截圖可得btr0=6dh, btr1=2ah

=2 46=2 46/ 6=46/3us

設同步段為1個系統時鐘週期, =

1= (8 +2×1+1)=11

2=2= + + =14 =644/3us

f=1/ =46.6kbps

六.實驗心得

這次實驗是第一次在試驗台上做實驗,剛去對操作台的布局及功能都不太熟悉,經過老師的講解、演示,我們開始在操作台上操作練習,通過實踐操作,對sja1000模組以及模組的初始化有了詳細的認識並且在以後的應用中會更熟練。在對sja1000的初始化設定時計算了它的頻率,完成對sja1000初始化,初始化成功後用led點亮,表示初始化完成;否則led不亮。

在實驗過程中也遇到了一些困難,關鍵是不熟悉試驗台,不知道具體的操作。剛開始可能因為我們沒有插好板子,指示燈不亮,我們還以為操作台壞了,最後重新插了一下板子,硬體問題解決了,程式設計時也遇到了問題,出現了幾個錯誤,最後在我們幾個的**下終於完成了本次實驗。

實驗二 sja1000區域性自檢測

一.實驗要求

進行單節點自測實驗,要求can節點自發自收標準資料幀,觀察所收資料與傳送資料是否一致。

二.實驗目的

1.實現can節點的初始化及can節點的自發收。

2.學會對can節點的基本操作,理解can通訊的基本流程。

三.實驗器材

計算機一台、can模組乙個

四.實驗內容

1. 流程圖

2..實驗步驟

(1)將cpu掛箱右側的「data port」和「address port」分別用 5p、14p、20p連線與介面掛箱的相應插座連線.

(2)將模組1上cs0用跳線帽短接,模組2上cs1用跳線帽短接.

(3)將模組上的jump-4的兩個跳線短接在single側.

(4)有且只能有一塊模組上的a短接到canl,b短接到canh.

(5)將模組插入介面掛箱插槽內.

(6)接通電源,執行本測試程式.

五.實驗結果

1.實驗截圖

自檢測源程式

mode equ 0de00h模式暫存器

cmr equ 0de01h命令暫存器

sr equ 0de02h狀態暫存器

ir equ 0de03h中斷暫存器

ier equ 0de04h中斷使能暫存器

btr0 equ 0de06h匯流排定時暫存器一

btr1 equ 0de07h匯流排定時暫存器二

ocr equ 0de08h輸出控制暫存器

alc equ 0de0bh仲裁丟失捕捉暫存器

ecc equ 0de0ch錯誤**捕捉暫存器

txerr equ 0de0fh傳送錯誤計數器

acr0 equ 0de10h驗收**暫存器0

acr1 equ 0de11h1

acr2 equ 0de12h2

acr3 equ 0de13h3

amr0 equ 0de14h驗收遮蔽暫存器0

amr1 equ 0de15h1

amr2 equ 0de16h2

amr3 equ 0de17h3

fin equ 0de10h傳送/接收幀資訊

id1 equ 0de11h傳送/接收緩衝區之標示符一

id2 equ 0de12h傳送/接收緩衝區之標示符二

data1 equ 0de13h傳送/接收資料首址

rbsa equ 0de1eh接收緩衝器起始位址暫存器

cdr equ 0de1fh時鐘分頻暫存器

org 4000h

jmp start

org 4080h

start: mov r1,#8

mov r0,#20h

fill: mov b,#11h

mov a,r1

mul ab

mov @r0,a

inc r0

djnz r1,fill

mov r0,#0aah

lcall initcancan初始化(can片選為cs0:0de00h)

can1傳送楨資料

retran: mov dph, #0deh

mov r0, #20h

CAN匯流排與485匯流排區別

現場匯流排是當今自動化領域技術發展的熱點之一,被譽為自動化領域的計算機區域網。它的出現為分布式控制系統實現各節點之間實時 可靠的資料通訊提供了強有力的技術支援。can controller area network 屬於現場匯流排的範疇,它是一種有效支援分布式控制或實時控制的序列通訊網路。較之目前許...

系統匯流排實驗報告

電腦科學與技術系 實驗報告 專業名稱電腦科學與技術 課程名稱計算機組成與結構 專案名稱具有基本輸入輸出功能的匯流排介面實驗 班級學號姓名 同組人員無 實驗日期 2015 10 24 一 實驗目的 1.理解匯流排的概念及其特性 2.掌握控制匯流排的功能和應用。二 實驗邏輯原理圖與分析 2.1 實驗邏輯...

STM32的can匯流排實驗心得

標籤 匯流排心得實驗 2010 09 01 21 08 工作模式 bxcan有3個主要的工作模式 初始化 正常和睡眠模式。初始化模式 軟體通過對can mcr暫存器的inrq位置1,來請求bxcan進入初始化模式,然後等待硬體對can msr暫存器的inak位置1來進行確認。軟體通過對can mcr...