CAN總線實(shí)驗(yàn)報(bào)告_第1頁
CAN總線實(shí)驗(yàn)報(bào)告_第2頁
CAN總線實(shí)驗(yàn)報(bào)告_第3頁
CAN總線實(shí)驗(yàn)報(bào)告_第4頁
CAN總線實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

CAN總線試驗(yàn)報(bào)告試驗(yàn)一SJA1000初始化一、試驗(yàn)要求:SJA1000初始化,初始化成功后用LED點(diǎn)亮,表示初始化完成;否則LED不亮。二、試驗(yàn)內(nèi)容:實(shí)現(xiàn)SJA1000的初始化設(shè)置理解SJA1000的相關(guān)存放器的設(shè)置。三、試驗(yàn)系統(tǒng)硬件設(shè)計(jì):189C51SJA1000連接圖。MCU與SJA1000連接圖。選擇適合的電阻和電容。此試驗(yàn)選擇了51KR1UF電容,開機(jī)后給電容充電,電0V5V,SJA1000牢靠復(fù)位。I/O復(fù)位,由單片機(jī)某一I/O引腳掌握SJA1000復(fù)位引腳,使單片機(jī)在牢靠復(fù)位之后完成SJA1000的復(fù)位,避開時(shí)間偏差。芯片復(fù)位,可以通過外圍芯片進(jìn)展復(fù)位。四、試驗(yàn)系統(tǒng)軟件設(shè)計(jì);然后配置時(shí)鐘分頻存放器〔CDR〕選擇PeliCAN模式,關(guān)閉CLKOUT輸出;然后是輸出掌握存放器〔OCR〕,再設(shè)置位定時(shí)〔BTR0/BTR1〕6MHz晶振,波特率30Kbps;然后配置驗(yàn)收濾波;最終再次設(shè)置模式OXOC以確認(rèn)初始化是否成功,假設(shè)成功則點(diǎn)亮LED,否則重初始化。1系統(tǒng)軟件設(shè)計(jì)框圖初始化開頭初始化開頭進(jìn)入復(fù)位模式〔MODE〕設(shè)置時(shí)鐘分頻存放器(CDR)設(shè)置輸出掌握寄存器〔OCR〕設(shè)置位定時(shí)器(BIT0/BIT1)設(shè)置驗(yàn)收濾波〔ACR/AMR 〕狀態(tài)存放器是否為0CHYN初始化完畢程序如下:MODE EQU0DE00HCMREQU0DE01H;命令存放器SREQU0DE02H;狀態(tài)存放器IREQU0DE03H;中斷存放器IEREQU0DE04H;中斷使能存放器BTR0EQU0DE06H;總線定時(shí)存放器一BTR1EQU0DE07H;總線定時(shí)存放器二OCREQU0DE08H;輸出掌握存放器ALCEQU0DE0BH;仲裁喪失捕獲存放器ECCEQU0DE0CH;錯誤代碼捕獲存放器TXERREQU0DE0FH;發(fā)送錯誤計(jì)數(shù)器ACR0EQU0DE10H;0ACR1EQU0DE11H;1ACR2EQU0DE12H; 2ACR3EQU0DE13H;3AMR0EQU0DE14H;0AMR1EQU0DE15H; 1AMR2EQU0DE16H; 2AMR3EQU0DE17H; 3FINEQU0DE10H;發(fā)送/接收幀信息ID1EQU0DE11H;發(fā)送/接收緩沖區(qū)之標(biāo)示符一ID2EQU0DE12H;發(fā)送/接收緩沖區(qū)之標(biāo)示符二DATA1EQU0DE13H;發(fā)送/接收數(shù)據(jù)首址RBSA EQU 0DE1EH ;接收緩沖器起始地址存放器CDR EQU 0DE1FH ;時(shí)鐘分頻存放器ORG 4000HJMP STARTORG 4080H;----------------------------------------------------------------START:MOV DPTR,#MODEMOV A,#01HMOVX @DPTR,AMOV DPTR,#IERMOV A,#0DHMOVX @DPTR,AMOV DPTR,#ACR0MOV A,#00HMOVX @DPTR,AMOV DPTR,#ACR1MOV A,#10HMOVX @DPTR,AMOV DPTR,#ACR2MOV A,#00HMOVX @DPTR,AMOV DPTR,#ACR3MOV A,#00HMOVX@DPTR,AMOVDPTR,#AMR0MOVA,#00HMOVX@DPTR,AMOVDPTR,#AMR1MOVA,#0FHMOVX@DPTR,AMOVDPTR,#AMR2MOVA,#0FFHMOVX@DPTR,AMOVDPTR,#AMR3MOVA,#0FFHMOVX@DPTR,AMOVDPTR,#BTR0MOVA,#6DHMOVX@DPTR,AMOVDPTR,#BTR1MOVA,#2AHMOVX@DPTR,AMOVDPTR,#OCRMOVA,#01CHMOVX@DPTR,AMOVDPTR,#TXERRMOVA,#00HMOVX@DPTR,AMOVDPTR,#MODEMOVA,#00HMOVX@DPTR,AMOVDPTR,#SRMOVXA,@DPTRCJNEA,#0CH,STARTCLRENDP1.2五.頻率計(jì)算:晶振6MHz,由試驗(yàn)運(yùn)行截圖可得BTR0=6DH, BTR1=2AH=246=246/6=46/3us1個(gè)系統(tǒng)時(shí)鐘周期,=1=(8+2×1+1)=112=2=++=14=644/3usf=1/=46.6kbps六.試驗(yàn)心得這次試驗(yàn)是第一次在試驗(yàn)臺上做試驗(yàn),剛?cè)Σ僮髋_的布局及功能都不太生疏,經(jīng)過教師的講解、演示,我們開頭在操作臺上操作練習(xí),通過實(shí)踐操作,對SJA1000模塊以及模塊SJA1000的初始化設(shè)置時(shí)計(jì)算了它的頻率,完成對SJA1000LED點(diǎn)亮,表示初始化完成;否則LED不亮。在試驗(yàn)過程中也遇到了一些困難,關(guān)鍵是不生疏試驗(yàn)臺,不知道具體的操作。剛開頭可能由于我們沒有插好板子,指示燈不亮,我們還以為操作臺壞了,最終重插了一下板子,硬件問題解決了,編程時(shí)也遇到了問題,消滅了幾個(gè)錯誤,最終在我們幾個(gè)的探討下最終完成了本次試驗(yàn)。試驗(yàn)二SJA1000一.試驗(yàn)要求發(fā)送數(shù)據(jù)是否全都。二.試驗(yàn)?zāi)康腃ANCANCANCAN三.試驗(yàn)器材計(jì)算機(jī)一臺、CAN模塊一個(gè)四.試驗(yàn)內(nèi)容1. 流程圖開頭開頭SJA1000初始化發(fā)送信息接收到信息觀看收到信息完畢2..試驗(yàn)步驟20P連線與接口掛箱的相應(yīng)插座連接.1CS02CS1用跳線帽短接.將模塊上的JUMP-4的兩個(gè)跳線短接在Single側(cè).ACANL,BCANH.將模塊插入接口掛箱插槽內(nèi).接通電源,運(yùn)行本測試程序.五.試驗(yàn)結(jié)果試驗(yàn)截圖SJA1000MODEEQU0DE00H;模式存放器CMREQU0DE01H;命令存放器SREQU0DE02H;狀態(tài)存放器IREQU0DE03H;中斷存放器IEREQU0DE04H;中斷使能存放器BTR0EQU0DE06H;總線定時(shí)存放器一BTR1EQU0DE07H;總線定時(shí)存放器二OCREQU0DE08H;輸出掌握存放器ALCEQU 0DE0BH;仲裁喪失捕獲存放器ECCEQU 0DE0CH;錯誤代碼捕獲存放器TXERREQU 0DE0FH;發(fā)送錯誤計(jì)數(shù)器ACR0EQU0DE10H0ACR1EQU0DE11H; 1ACR2EQU0DE12H; 2ACR3EQU0DE13H; 3AMR0EQU0DE14H; 0AMR1EQU0DE15H; 1AMR2EQU0DE16H; 2AMR3EQU0DE17H; 3FINEQU 0DE10H; 發(fā)送/接收幀信息ID1EQU0DE11H; 發(fā)送/接收緩沖區(qū)之標(biāo)示符一ID2EQU0DE12H; 發(fā)送/接收緩沖區(qū)之標(biāo)示符二DATA1EQU0DE13H; 發(fā)送/接收數(shù)據(jù)首址RBSAEQU0DE1EH; 接收緩沖器起始地址存放器CDR EQU0DE1FH ; 時(shí)鐘分頻存放器ORG 4000HJMP STARTORG 4080H;----------------------------------------------------------------START: MOV R1,#8MOV R0,#20HFILL: MOV B,#11HMOV A,R1MUL ABMOV @R0,AINC R0DJNZ R1,FILLMOV R0,#0AAHLCALL INITCAN ;CAN(CANCS0:0DE00H);-------------------------CAN1RETRAN:MOV DPH,#0DEHMOV R0,#20HLCALL SEND 20H1為:08H、BBH、FFH,8〕LCALL DELAY;-----------------------CAN1接收數(shù)據(jù)--------------------------MOV DPH,#0DEHMOV R0,#30HLCALL RECVNOP 此處設(shè)置斷點(diǎn),以觀看結(jié)果JMP $INITCAN:MOV DPTR,#MODE 入口參數(shù)MOV A,#09HMOVX @DPTR,A MOVDPTR,#CDRMOVA,#88HMOVX @DPTR,A MOVA,#0DHMOVX @DPTR,A MOVDPTR,#BTR0MOVA,#03HMOVX @DPTR,A MOVDPTR,#BTR1MOVA,#0FFHMOVX @DPTR,A MOVX A,@DPTRMOVA,#0AAHMOVX @DPTR,A MOVDPTR,#ACR0MOVA,R0MOVX @DPTR,A MOVDPTR,#ACR1MOVA,#0FFHMOVX @DPTR,A INCDPTRMOVX @DPTR,A INCDPTRMOVX @DPTR,A MOVDPTR,#AMR0MOVA,#0FFH ;modify#00to#0FFMOVX @DPTR,A INCDPTRMOVA,#0FFHMOVX @DPTR,A INCDPTRMOVX @DPTR,A INCDPTRMOVX@DPTR,A;AMR3ACR0MOVDPTR,#RBSAMOVA,#00HMOVX@DPTR,AFIFO0MOVDPTR,#TXERRMOVX@DPTR,A;去除發(fā)送錯誤計(jì)數(shù)器MOVDPTR,#ECCMOVX@DPTR,A;去除錯誤代碼捕獲存放器MOVA,#0cHMOVX@DPTR,A;單濾波方式,返回工作方式RETSEND:MOV DPTR,#SR;狀態(tài)存放器MOVXA,@DPTRSJA1000讀入狀態(tài)存放器值JBACC.4,SEND SEND0:MOVX A,@DPTRJNB ACC.3,SEND0 完成SEND1:MOVX A,@DPTRJNB ACC.2,SEND1 SEND2:MOV DPTR,#FIN ;SJA1000發(fā)送緩存區(qū)首址MOV A,#08HMOVX @DPTR,AINC DPLMOV A,#0BBHMOVX @DPTR,AINC DPLMOV A,#0FFHMOVX @DPTR,AINC DPLMOV R2,#08HSEND3:MOVA,@R0;R0MOVX@DPTR,AINCR0INCDPLDJNZ R2,SEND3MOVDPTR,#CMR;命令存放器地址MOVA,#10H;發(fā)送懇求MOVX@DPTR,ASJA1000發(fā)送RETRECV:MOVDPTR,#SR;狀態(tài)存放器地址MOVXA,@DPTRANLA,#0C3H;讀取總線脫離、錯誤狀態(tài)、接收溢出、有數(shù)據(jù)等位JNZPROCRET;無上述狀態(tài),完畢PROC:JNBACC.7,PROC1BUSERR:MOVDPTR,#IR;IRMOVXA,@DPTR;讀中斷存放器,去除中斷位MOVDPTR,#MODEMOVA,#08HMOVX@DPTR,A0RETNOPPROC1:MOVDPTR,#IR;總線正常MOVXA,@DPTR;讀取中斷位JNBACC.3,OTHEROVER:MOVDPTR,#CMR;數(shù)據(jù)溢出處理MOVA,#0CHMOVX@DPTR,A;去除數(shù)據(jù)溢出位,釋放接收緩沖區(qū)RETNOPOTHER:JBACC.0,RECELJMPRECOUT;接收緩沖區(qū)很多據(jù)NOPRECE:CLRP1.0SETBP1.7MOVDPTR,#FIN;接收緩沖區(qū)有數(shù)據(jù)MOVX A,@DPTRJNB ACC.6,RDATAMOV DPTR,#CMR 程楨處理MOV A,#04HMOVX @DPTR,ALJMP NOPRDATA: MOV DPTR,#DATA1 存中MOV R2,#08HRDATA1:MOVX A,@DPTRMOV @R0,AINC DPLINC R0DJNZ R2,RDATA1MOV DPTR,#CMRMOV A,#04HMOVX @DPTR,ARECOUT:MOV DPTR,#ALC 放仲裁喪失捕獲存放器和錯誤捕獲存放器MOVX A,@DPTRMOV DPTR,#ECCMOVX A,@DPTRNOPRETDELAY:MOVR2,#40DELAY1:MOVR4,#255DELAY2:NOPDJNZR4,DELAY2DJNZR2,DELAY1RETEND六.試驗(yàn)心得本次試驗(yàn)實(shí)踐了課本上關(guān)于CAN節(jié)點(diǎn)的初始化及CAN節(jié)點(diǎn)的自發(fā)收以及學(xué)會對CANCAN通信的根本流程。由于已經(jīng)做過一次試驗(yàn),因此對于CAN總線的環(huán)境有了肯定的了解,這次做試驗(yàn)就比較清楚了,硬件連線方面沒有什么問題,但是試驗(yàn)室的電腦故障太多了,動不動就死機(jī),或者有這樣或是那樣的問題。編程的時(shí)候也是事故連連。那個(gè)程序有時(shí)候保存了但是還是找不到,最終覺察原來CANSJA1000雙機(jī)通信一.試驗(yàn)要求:CANA(ID:0x00)、B〔ID:0x01〕,A、B〔標(biāo)準(zhǔn)數(shù)據(jù)幀,并將接收到的數(shù)據(jù)進(jìn)展顯示。二.試驗(yàn)?zāi)康模荷鑾AN掌握器芯片的構(gòu)造、CAN通信原理。把握雙機(jī)通信的原理及設(shè)計(jì)。三.試驗(yàn)器材:計(jì)算機(jī)兩臺、CAN模塊兩個(gè)四.試驗(yàn)內(nèi)容:1. 雙機(jī)通信流程圖:開頭開頭開中斷LCD初始化CAN初始化CAN發(fā)送延時(shí)等待接收標(biāo)志置位顯示錯誤并清接收標(biāo)志顯示接收內(nèi)容并清接收標(biāo)志2..試驗(yàn)步驟:20P連線與接口掛箱的相應(yīng)插座連接.1CS02CS1用跳線帽短接.將模塊上的JUMP-4的兩個(gè)跳線短接在Single側(cè).將模塊插入接口掛箱插槽內(nèi).ACANLBCANLACANHBCANH相連接通電源,運(yùn)行本測試程序.五.試驗(yàn)結(jié)果:1.試驗(yàn)截圖:2.SJA1000雙機(jī)通信源程序:MODE EQU0DE00H 器CMREQU2.SJA1000雙機(jī)通信源程序:SREQU0DE02H ;狀態(tài)存放器IREQU0DE03H ;中斷存放器IEREQU0DE04H ;中斷使能存放器;總線定時(shí)存放器二OCREQU0DE08H;輸出掌握存放器ALCEQU0DE0BH;仲裁喪失捕獲存放器ECCEQU0DE0CH;錯誤代碼捕獲存放器TXERREQU0DE0FH;發(fā)送錯誤計(jì)數(shù)器ACR0EQU0DE10H0ACR1EQU0DE11H; 1ACR2EQU0DE12H; 2ACR3EQU0DE13H; 3AMR0 EQU0DE14H 0AMR1EQU0DE15H;1AMR2EQU0DE16H;2AMR3EQU0DE17H;3FINEQU0DE10H;發(fā)送/接收幀信息ID1EQU0DE11H;發(fā)送/接收緩沖區(qū)之標(biāo)示符一ID2EQU0DE12H;發(fā)送/接收緩沖區(qū)之標(biāo)示符二DATA1EQU 0DE13H;發(fā)送/接收數(shù)據(jù)首址RBSAEQU0DE1EH;接收緩沖器起始地址存放器CDREQU 0DE1FH;時(shí)鐘分頻存放器ORG4000HJMPSTARTORG4080H;----------------------------------------------------------------START:MOVR1,#8MOVR0,#20HFILL:MOVB,#11HMOVA,R1MULABMOV@R0,AINCR0DJNZR1,FILLMOVR0,#0AAHLCALLINITCAN ;CAN(CANCS0:0DE00H);-------------------------CAN1RETRAN:MOVDPH,#0DEHMOV R0,#20HLCALL SEND 為:08H、BBH、FFH,8〕LCALL DELAY;-----------------------CAN1接收數(shù)據(jù)--------------------------MOV DPH,#0DEHMOV R0,#30HLCALL RECVNOP ;在此處設(shè)置斷點(diǎn),以觀看結(jié)果INITCAN:MOV DPTR,#MODE 入口參數(shù)MOV A,#09HMOVX @DPTR,A ;模式存放器,單驗(yàn)收濾波器,進(jìn)入復(fù)位模式MOVA,#88HMOVX @DPTR,A R,CANCLKOUTMOVA,#0DHMOVX @DPTR,A ;中斷使能存放器,開溢出、錯誤、接收中斷MOVA,#03HMOVX @DPTR,A ;總線定時(shí)存放器一MOVA,#0FFHMOVX @DPTR,A MOVX A,@DPTRMOVA,#0AAHMOVX @DPTR,A ;輸出掌握存放器MOVA,R0MOVX @DPTR,A ACR0MOVA,#40HMOVX @DPTR,A INCDPTRMOVX @DPTR,A INCDPTRMOVX @DPTR,A ;無關(guān)MOVDPTR,#AMR0MOVA,#0FFH ;modify#00to#0FFMOVX @DPTR,A AMR0=00HINCDPTRMOVX @DPTR,A INCDPTRMOVX @DPTR,A INCDPTRMOVX@DPTR,A;AMR3ACR0MOVDPTR,#RBSAMOVA,#00HMOVX@DPTR,AFIFO0MOVDPTR,#TXERRMOVX@DPTR,A;去除發(fā)送錯誤計(jì)數(shù)器MOV DPTR,#ECCMOVX @DPTR,A ;去除錯誤代碼捕獲存放器MOVA,#08HMOVX @DPTR,A RETSEND: MOV DPTR,#SR ;狀態(tài)存放器MOVX A,@DPTR SJA1000讀入狀態(tài)存放器值JBACC.4,SEND SEND0:MOVX A,@DPTRJNB ACC.3,SEND0 SEND1:MOVX A,@DPTRJNB ACC.2,SEND1 SEND2:MOV DPTR,#FIN ;SJA1000發(fā)送緩存區(qū)首址MOV A,#08HMOVX @DPTR,AINC DPLMOV A,#00HMOVX @DPTR,AINC DPLMOV A,#20HMOVX @DPTR,AINC DPLMOV R2,#08HSEND3:MOVA,@R0;R0MOVX@DPTR,AINCR0INCDPLDJNZ R2,SEND3MOVDPTR,#CMR;命令存放器地址MOVA,#01H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論