高職教師培訓CAN總線_第1頁
高職教師培訓CAN總線_第2頁
高職教師培訓CAN總線_第3頁
高職教師培訓CAN總線_第4頁
高職教師培訓CAN總線_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CAN總線理論與實踐閆邦交2014-08-08CAN總線培訓教程第一節(jié):SJ1000CAN控制器的作用SJA1000介紹SJA1000內(nèi)部結(jié)構(gòu)框圖基本模式(BasicCAN)控制段寄存器數(shù)據(jù)段寄存器擴展模式(PeliCAN)第一節(jié):SJA1000CAN控制器的作用CAN控制器扮演網(wǎng)絡(luò)協(xié)議的角色它提供了微處理器的物理線路的接口進行數(shù)據(jù)的發(fā)送和接受第一節(jié):SJA1000CAN控制器的作用第一節(jié):SJA1000SJA1000簡介:管腳與獨立CAN控制器PCA82C200兼容電氣特性與獨立CAN控制器PCA82C200兼容具有PCA82C200模式(即默認的BasicCAN模式)擴展的接收緩存器(64字節(jié)的FIFO隊列)支持CAN2.0A和CAN2.0B協(xié)議支持11位和29位標識碼位速率最高可達1Mbps可與不同的微處理器接口可編程的CAN輸出驅(qū)動器配置溫度適應(yīng)范圍大(-40℃—+125℃)

第一節(jié):SJA1000SJA1000介紹第一節(jié):SJA1000SJA1000的內(nèi)部結(jié)構(gòu)圖第一節(jié):SJ1000SJA1000有兩種工作模式:分別為Basic模式和PeliCAN模式,對應(yīng)與CAN2.0A和CAN2.0B。每種模式又分兩種狀態(tài)模式,分別為復位模式,操作模式。復位模式下完成控制寄存器的設(shè)置,在初始化時寫入驗收代碼,驗收屏蔽,總線時序0與1以及輸出控制等寄存器就不能再改變。只有將寄存器的復位請求會置高時,才能進入復位模式。第一節(jié):SJA1000SJA1000的寄存器可分為:控制段系統(tǒng)初始化時對控制段進行編程,以配置通訊參數(shù)微處理器也可通過控制段來控制總線通訊數(shù)據(jù)段報文被發(fā)送前,微處理器將報文寫入發(fā)送緩沖區(qū)成功接收一個報文后,寫入接收緩沖區(qū)微處理器讀接收緩沖區(qū)并釋放緩沖區(qū)

第一節(jié):SJA1000兩種狀態(tài):復位狀態(tài)和運行狀態(tài)1.復位狀態(tài)三種情況下,SJA1000進入復位狀態(tài)(1).軟件復位:通過設(shè)置控制寄存器CR的RR位為1(2).硬件復位:在復位引腳上出現(xiàn)一個低電平脈沖(3).BUS_OFF狀態(tài)(總線脫離狀態(tài))

2.運行狀態(tài)

在CR的RR位上出現(xiàn)“1-0”的下跳沿時,SJA1000返回運行狀態(tài),可通過檢測RR來判斷SJA1000的工作狀態(tài)第一節(jié):SJA1000擴展模式下的模式寄存器第一節(jié):SJA1000在程序的初始化時,要在復位模式下操作各寄存器操作完寄存器后退出復位模式uint8bdataStatus;{//.0=1---resetMODRe,進入復位模式,以便設(shè)置相應(yīng)的寄存器//防止未進入復位模式,重復寫入SJA_MOD=RM_BIT|AFM_BIT; Status=SJA_MOD;}while((Status&RM_BIT)!=RM_BIT);第一節(jié):SJA1000do{ SJA_MOD=AFM_BIT; Status=SJA_MOD;}while(Status&RM_BIT);退出復位模式,AFM_BIT:表設(shè)單濾波器校驗?zāi)J健?defineRM_BIT0x01//復位模式請求位#defineLOM_BIT0x02//只聽模式位#defineSTM_BIT0x04//自檢模式位#defineAFM_BIT0x08//驗收濾波器模式位#defineSM_BIT0x10//睡眠模式位第一節(jié):SJA1000擴展模式下的模式寄存器復位值第一節(jié):SJA1000時鐘分頻寄存器各位的功能說明BIT7:CAN模式0:Basic模式1:PeliCAN模式。BIT3:CLOCKOUT引腳設(shè)置,置1,引腳失效SJA_CDR=CANMode_BIT|CLKOff_BIT;//CDR.3=1--時鐘關(guān)閉,.7=0---basicCAN,.7=1---PeliCAN#defineCLKOff_BIT0x08//時鐘關(guān)閉位,時鐘輸出管腳控制位#defineCANMode_BIT0x80//CAN模式控制位第一節(jié):SJA1000第一節(jié):SJA1000總線時序寄存器0:BTR0總線時序寄存器1:BTR1第一節(jié):SJA1000SJA_BTR0=0x03;SJA_BTR1=0x1c;//16M晶振,波特率125Kbps第一節(jié):SJA1000中斷使能寄存器第一節(jié):SJA1000SJA_IER=RIE_BIT;//.0=1--接收中斷使能;.1=0--關(guān)閉發(fā)送中斷使能#defineRIE_BIT0x01//接收中斷使能位#defineTIE_BIT0x02//發(fā)送中斷使能位#defineEIE_BIT0x04//錯誤警告中斷使能位#defineDOIE_BIT0x08//數(shù)據(jù)溢出中斷使能位#defineWUIE_BIT

0x10//喚醒中斷使能位#defineEPIE_BIT0x20//錯誤消極中斷使能位#defineALIE_BIT0x40//仲裁丟失中斷使能位#defineBEIE_BIT0x80//總線錯誤中斷使能位第一節(jié):SJA1000輸出控制寄存器第一節(jié):SJA1000第一節(jié):SJA1000模式說明:

正常輸出模式:位序列在TX0和TX1輸出時鐘輸出模式:TX0輸出位序列,TX1輸出的位流為發(fā)送時鐘脈沖(TXCLK),其上升沿標志著位周期的開始,脈沖寬度為T_scl雙相輸出模式:它與正常輸出方式恰好相反,位出現(xiàn)的時間是可變的,并且是可觸發(fā)的。在隱性位期間,所有輸出被禁止(懸空),顯性位被交替送至TX0和TX1測試輸出模式:RX腳上的電平反映了TXn的電平,但時間上落后于TXn的上升沿f_osc/2

OCR的前六位用于配置輸出驅(qū)動器特性(OCTP和OCTN)和極性(OCPOL),驅(qū)動器可編程為懸空、上拉、下拉和推挽四種方式第一節(jié):SJA1000SJA_OCR=NormalMode|Tx0PullDn|OCPOL1_BIT|Tx1PullUp;//配置輸出控制寄存器#defineTx1PullUp0x80//配置為上拉#defineNormalMode0x02//正常輸出模式#defineTx0PullDn0x08//配置為下拉#defineOCPOL1_BIT0x20//輸出極性控制位第一節(jié):SJA1000命令寄存器第一節(jié):SJA1000當在初始化和接收完數(shù)據(jù)時一定要清接收緩沖區(qū)SJA_CMR=RRB_BIT;//釋放接收緩沖器#defineTR_BIT0x01//發(fā)送請求位#defineAT_BIT0x02//中止發(fā)送位#defineRRB_BIT0x04//釋放接收緩沖器位#defineCDO_BIT0x08//清除數(shù)據(jù)溢出位#defineSRR_BIT0x10//自身接收請求位第一節(jié):SJA1000驗收代碼寄存器、驗收屏蔽寄存器

第一節(jié):SJA1000

不管驗收碼與否的:

SJA_ACR0=0x11;SJA_ACR1=0x22;SJA_ACR2=0x33;SJA_ACR3=0x43;//初始化標示碼SJA_AMR0=0xff;SJA_AMR1=0xff;SJA_AMR2=0xff;SJA_AMR3=0xff;//初始化掩碼驗收碼必須正確

SJA_ACR0=0x11;SJA_ACR1=0x22;SJA_ACR2=0x33;SJA_ACR3=0x43;//初始化標示碼SJA_AMR0=0x00;SJA_AMR1=0x00;SJA_AMR2=0x00;SJA_AMR3=0x03;//初始化掩碼第一節(jié):SJA1000將以上寄存器初始化完畢后,退出復位模式。SJA1000將進出操作模式do{ SJA_MOD=AFM_BIT; Status=SJA_MOD;}while(Status&RM_BIT);進入操作模式,單濾波器方式。第一節(jié):SJA1000發(fā)送緩沖區(qū)寄存器幀信息(EFF)(CAN地址16)TX_buffer[0]=0x88;//.7=0擴展幀;.6=0數(shù)據(jù)幀;.3=1數(shù)據(jù)長度第一節(jié):SJA1000TX識別碼1(EFF)(CAD地址17)TX識別碼1(EFF)(CAD地址17)第一節(jié):SJA1000TX識別碼2(EFF)(CAD地址18)第一節(jié):SJA1000TX識別碼3(EFF)(CAD地址19)第一節(jié):SJA1000第一節(jié):SJA100021-28地址為發(fā)送的8個數(shù)據(jù)第一節(jié):SJA1000uint8dataStatus;//初始化標示碼頭信息TX_buffer[0]=0x88;//.7=0擴展幀;.6=0數(shù)據(jù)幀;.3=1數(shù)據(jù)長度TX_buffer[1]=0x89;//本節(jié)點地址TX_buffer[2]=0x11;//TX_buffer[3]=0x9A;//TX_buffer[4]=0x20;////初始化發(fā)送數(shù)據(jù)單元TX_buffer[5]=Txd_data;TX_buffer[6]=0x22;TX_buffer[7]=0x33;TX_buffer[8]=0x44;//TX_buffer[9]=0x55;//TX_buffer[10]=0x66;//TX_buffer[11]=0x77;//TX_buffer[12]=0x88;//第一節(jié):SJA1000發(fā)送數(shù)據(jù)時,要判斷狀態(tài)寄存器,以確定數(shù)據(jù)可否發(fā)送第一節(jié):SJA1000第一節(jié):SJA1000do{Status=SJA_SR;}while(Status&RS_BIT);//SR.4=1正在接收,等待

do{Status=SJA_SR;}while(!(Status&TCS_BIT));//SR.3=0,發(fā)送請求未處理完,等待do{Status=SJA_SR;}while(!(Status&TBS_BIT));//SR.2=0,發(fā)送緩沖器被鎖。等待第一節(jié):SJA1000

SJA_TBSR0=TX_buffer[0];SJA_TBSR1=TX_buffer[1];SJA_TBSR2=TX_buffer[2];SJA_TBSR3=TX_buffer[3];SJA_TBSR4=TX_buffer[4];SJA_TBSR5=TX_buffer[5];SJA_TBSR6=TX_buffer[6];SJA_TBSR7=TX_buffer[7];SJA_TBSR8=TX_buffer[8];SJA_TBSR9=TX_buffer[9];SJA_TBSR10=TX_buffer[10];SJA_TBSR11=TX_buffer[11];SJA_TBSR12=TX_buffer[12];SJA_CMR=TR_BIT;//置位發(fā)送接收請求第一節(jié):SJA1000接收的緩沖區(qū)與發(fā)送相同,只是在接收時要判斷接收中斷位為1,才可讀數(shù)據(jù)。if(Status&RI_BIT){//IR.0=1接收中斷RX_buffer[0]=SJA_RBSR0;RX_buffer[1]=SJA_RBSR1;RX_buffer[2]=SJA_RBSR2;RX_buffer[3]=SJA_RBSR3;RX_buffer[4]=SJA_RBSR4;RX_buffer[5]=SJA_RBSR5;

第一節(jié):SJA1000RX_buffer[6]=SJA_RBSR6;RX_buffer[7]=SJA_RBSR7;RX_buffer[8]=SJA_RBSR8;RX_buffer[9]=SJA_RBSR9;RX_buffer[10]=SJA_RBSR10;RX_buffer[11]=SJA_RBSR11;RX_buffer[12]=SJA_RBSR12;

第一節(jié):SJA1000SJA_CMR=RRB_BIT;Status=SJA_ALC;//釋放仲裁隨時捕捉寄存器Status=SJA_ECC;//釋放錯誤代碼捕捉寄存器}SJA_IER=RIE_BIT;//.0=1--接收中斷使能;第二節(jié):常用的CAN總線收發(fā)器CAN總線驅(qū)動器的作用及分類CAN總線收發(fā)器PCA820C250CAN總線收發(fā)器CTM1050第二節(jié):常用的CAN總線收發(fā)器CAN總線收發(fā)器的作用:CAN總線驅(qū)動器提供了CAN控制器與物理總線之間的接口,對總線提供差動的發(fā)送能力,并對CAN控制器提供差動的接收能力。也可以理解為CAN收發(fā)器是一個電平轉(zhuǎn)換芯片,功能形如MAX232,MAX485。第二節(jié):常用的CAN總線收發(fā)器CAN總線收發(fā)器的分類:隔離型CAN總線收發(fā)器(CTM1050)非隔離型CAN總線收發(fā)器(PCA82C250)隔離型總線收器是在非隔離型CAN總線收器的基礎(chǔ)上增加了信號隔離與電源隔離。第二節(jié):常用的CAN總線收發(fā)器PCA82C250特點:最高速率1Mbps驅(qū)動能力達110個節(jié)點1TXD:發(fā)送數(shù)據(jù)輸入5Vref:參考電壓輸出2GND:地6CANL:差動輸入輸出3VCC:電源7CANH:差動輸入輸出4RXD:接收數(shù)據(jù)輸出8RS:斜率電阻輸入第二節(jié):常用CAN總線收發(fā)器RS=5V:低電流待機模式關(guān)閉發(fā)送器,接收器工作。RS與地之間串一個電阻,斜率模式,應(yīng)用于較低速或較短總線長度。使用非屏蔽雙絞線或平行線作為總線。RS=0V:高速模式,用屏蔽雙絞線,以避免射頻干擾RFI。第二節(jié):常用的CAN總線收器PCA82C250的應(yīng)用電路:PCA82C250應(yīng)用電路第二節(jié):常用的CAN總線驅(qū)動器CTM1050第三節(jié):CAN最小系統(tǒng)設(shè)計最小CAN系統(tǒng)的組成單片機系統(tǒng)

CAN控制器

CAN驅(qū)動器

第三節(jié):最小的CAN系統(tǒng)單片機系統(tǒng)第三節(jié)最小的CAN系統(tǒng)CAN控制芯片第三節(jié):CAN最小系統(tǒng)CAN驅(qū)動器第四節(jié):SJA1000相關(guān)編程SJ1000初始化voidPeli_Init(void){uint8bdataStatus;//do{//.0=1---resetMODRe,進入復位模式,以便設(shè)置相應(yīng)的寄存器//防止未進入復位模式,重復寫入SJA_MOD=RM_BIT|AFM_BIT; Status=SJA_MOD;}while((Status&RM_BIT)!=RM_BIT);SJA_CDR=CANMode_BIT|CLKOff_BIT;//CDR.3=1--時鐘關(guān)閉,.7=0---basicCAN,.7=1---PeliCANSJA_BTR0=0x03;SJA_BTR1=0x1c;//16M晶振,波特率125KbpsSJA_IER=RIE_BIT;//.0=1--接收中斷使能;.1=0--關(guān)閉發(fā)送中斷使能SJA_OCR=NormalMode|Tx0PullDn|OCPOL1_BIT|Tx1PullUp;//配置輸出控制寄存器SJA_CMR=RRB_BIT;//釋放接收緩沖器

第四節(jié):SJA1000相關(guān)編程

SJA_ACR0=0x11;SJA_ACR1=0x22;SJA_ACR2=0x33;SJA_ACR3=0x44;//初始化標示碼SJA_AMR0=0xff;SJA_AMR1=0xff;SJA_AMR2=0xff;SJA_AMR3=0xff;//初始化掩碼do{ SJA_MOD=AFM_BIT; Status=SJA_MOD;}while(Status&RM_BIT);}//SJA1000的初始化第四節(jié):SJA1000相關(guān)編程發(fā)送數(shù)據(jù)uint8dataStatus;//初始化標示碼頭信息TX_buffer[0]=0x88;//.7=0擴展幀;.6=0數(shù)據(jù)幀;.3=1數(shù)據(jù)長度TX_buffer[1]=0x89;//本節(jié)點地址TX_buffer[2]=0x11;//TX_buffer[3]=0x9A;//TX_buffer[4]=0x20;////初始化發(fā)送數(shù)據(jù)單元TX_buffer[5]=Txd_data;TX_buffer[6]=0x22;TX_buffer[7]=0x33;TX_buffer[8]=0x44;//TX_buffer[9]=0x55;//TX_buffer[10]=0x66;//TX_buffer[11]=0x77;//TX_buffer[12]=0x88;//第四節(jié):SJA1000相關(guān)編程do{Status=SJA_SR;}while(Status&RS_BIT);//SR.4=1正在接收,等待

do{Status=SJA_SR;}while(!(Status&TCS_BIT));//SR.3=0,發(fā)送請求未處理完,等待do{Status=SJA_SR;}while(!(Status&TBS_BIT));//SR.2=0,發(fā)送緩沖器被鎖。等待第四節(jié):SJA1000相關(guān)編程

SJA_TBSR0=TX_buffer[0];SJA_TBSR1=TX_buffer[1];SJA_TBSR2=TX_buffer[2];SJA_TBSR3=TX_buffer[3];SJA_TBSR4=TX_buffer[4];SJA_TBSR5=TX_buffer[5];SJA_TBSR6=TX_buffer[6];SJA_TBSR7=TX_buffer[7];SJA_TBSR8=T

溫馨提示

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

最新文檔

評論

0/150

提交評論