




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、7.6 PeliCAN功能7.6.1擴展數據幀7.6.1擴展數據幀7.6.1擴展數據幀Start of FrameData Field8N (0 N 8)Identifier11 msbReserved Bits4 bitsDataLengthCodeCRC15 bitsCRCField16DelAckFieldACK2DelControl Field6R0DLC3DLC0R1RTRID28Arbitration Field32ID18SRRIDEID17ID0Identifier18 lsb7End ofFrame01 10 0 01 1 1 1 1 1 1117.6.2擴展Start of
2、 FrameIdentifier11 msbReserved Bits4 bitsDataLengthCodeCRC15 bitsCRCField16DelAckFieldACK2DelControl Field6R0DLC3DLC0R1RTRID28Arbitration Field32ID18SRRIDEID17ID0Identifier18 lsb7End ofFrame01 11 0 01 1 1 1 1 1 1117.6.3 SJA1000 PeliCanPeliCan相關寄存器相關寄存器nSJA1000 PeliCan模式下的內部地址劃分(1)模式寄存器(MOD)(地址0、可讀寫)
3、n用于改變CAN控制器的行為方式n57位:保留n4位SM:睡眠模式( 1:睡眠;0:喚醒)n3位AFM:驗收濾波器模式(1:單向32位;0:雙向16位)n2位STM:自檢模式(1:自檢;0:正常)n1位LOM:只聽模式(1:只聽;0:正常)n0位RM:復位模式。(1復位:檢測到復位請求后,進入復位; 0正常:此位接到一個下降沿后回到工作模式)(2)命令寄存器(CMR)(地址1、只寫)n啟動CAN控制器傳輸層的工作n57位:保留n4位SRR:自動接收請求 (1接收當前,0空缺)n3位CDO:清除數據溢出(1清除數據溢出狀態位,0無作用)n2位RR:釋放接收緩沖器(1釋放RXFIFO,0無作用)n
4、1位AT:中止發送(1忽略發送請求,0無作用)n0位:發送請求(1報文被發送,0無作用)(3)狀態寄存器(SR)(地址2、只讀)n反應CAN控制器的狀態n7位BS:總線狀態(1關閉,0開啟) n6位ES:出錯狀態(1出錯,0正常)n5位TS:發送狀態(1發送,0空閑) n4位RS:發送狀態(1發送,0空閑)n3位TCS:發送完畢狀態(1完成,0未完成)n2位TBS:發送緩沖器狀態(1釋放,0鎖定)n1位DOS:數據超載狀態(1超載,0未超載)n0位RBS:接收緩沖狀態(1滿,0空)(4)中斷寄存器()中斷寄存器(IR)(地址)(地址3、只讀)、只讀)n反應CAN控制器的中斷原因。讀時,除接收中
5、斷位外的所有位被復位置0。n7位BEI:總線錯誤中斷(IER中的總線錯誤中斷使能) n6位ALI:仲裁丟失中斷(IER中的仲裁丟失中斷使能) n5位EPI:錯誤認可中斷( IER中的錯誤認可中斷使能) n4位WUI:喚醒中斷( IER中的喚醒中斷使能) n3位DOI:數據溢出中斷( IER中的數據溢出中斷使能) n2位EI:錯誤報警中斷(IER中的出錯報警中斷使能)n1位TI:發送中斷(IER中的發送中斷使能)n0位RI:接收中斷( IER中的接收中斷使能)(5)中斷使能寄存器(IER)(地址4、可讀寫)n允許或禁止不同類型的中斷源產生中斷。n7位BEIE:總線錯誤中斷使能 n6位ALIE:仲
6、裁丟失中斷使能 n5位EPIE:錯誤認可中斷使能 n4位WUIE:喚醒中斷使能n3位DOIE:數據溢出中斷使能 n2位EIE:出錯報警中斷使能n1位TIE:發送中斷使能n0位RIE:接收中斷使能(6)仲裁丟失捕捉寄存器()仲裁丟失捕捉寄存器(ALC)(地址)(地址11、只讀)、只讀)n獲取仲裁丟失位置信息。n7位5位:保留,取0 n4位0位:數值對應仲裁丟失的位置 仲裁丟失位編碼舉例仲裁丟失位編碼舉例(7)錯誤代碼捕捉寄存器(ECC)(地址12、只讀)n獲取總線的各種錯誤類型和位置。n7位 ERRC16位ERRC0:錯誤類型 00:位錯; 01:格式錯; 10:填充錯;11:其他類型錯誤 n5
7、位 DIR 方向 1:接收時發生的錯誤; 0:發送時發生的錯誤。n4位0位:各種組合代表不同含義 PeliCanPeliCan相關寄存器相關寄存器n(8)錯誤報警限額寄存器(EWLR)(地址13、復位可寫,正常工作只讀)n定義錯誤報警限額。默認96n(9)RX錯誤計數寄存器(RXERR)(地址14、只讀)n反映接收錯誤計數的當前值。復位時可寫,一般初始化時為0。n(10)TX錯誤計數寄存器(TXERR)(地址15、只讀)n反映發送錯誤計數的當前值。復位時可寫。硬件復位初始化時為0??偩€關閉時,TXERR被初始化為127來計算協議定義的最小時間(128個總線空閑信號)。這段時間里讀TXERR將給
8、出總線關閉恢復的狀態信息。n復位時向TXERR寫入255,在進入工作狀態時會引起總線關閉事件。(11)發送緩沖器(TXB)(地址1628、可讀寫)n發送信息的緩存TX結構信息(SFF)(地址16)標準幀n位7 FF:幀結構格式(0:標準幀;1:擴展幀)n位6RTR:遠程發送請求n位54:保留(取0)n位30:數據長度代碼標準幀nTX標識碼1(SFF)(地址17)n位70 :對應ID.10ID.3nTX標識碼2(SFF)(地址18)n位75 :對應ID.2ID.0TX結構信息(EFF)(地址16)擴展幀n位7 FF:幀結構格式(0:標準幀;1:擴展幀)n位6RTR:遠程發送請求n位54:保留(取
9、0)n位30:數據長度代碼擴展幀nTX標識碼1(EFF)(地址17)n位70 :對應ID.28ID.21nTX標識碼2(EFF)(地址18)n位70 :對應ID.20ID.13nTX標識碼3(EFF)(地址19)n位70 :對應ID.12ID.5擴展幀nTX標識碼4(EFF)(地址20)n位73 :對應ID.4ID.0n位20 :保留(12)接收緩沖器()接收緩沖器(RXB)(地址)(地址1628、可讀寫)可讀寫)nRXFIFO中的報文存儲RX結構信息(SFF)(地址16)標準幀n位7 FF:幀結構格式(0:標準幀;1:擴展幀)n位6RTR:遠程發送請求n位54:保留(取0)n位30:數據長度
10、代碼標準幀nRX標識碼1(SFF)(地址17)n位70 :對應ID.10ID.3nRX標識碼2(SFF)(地址18)n位75 :對應ID.2ID.0RX結構信息(EFF)(地址16)擴展幀n位7 FF:幀結構格式(0:標準幀;1:擴展幀)n位6RTR:遠程發送請求n位54:保留(取0)n位30:數據長度代碼擴展幀nRX標識碼1(EFF)(地址17)n位70 :對應ID.28ID.21nRX標識碼2(EFF)(地址18)n位70 :對應ID.20ID.13nRX標識碼3(EFF)(地址19)n位70 :對應ID.12ID.5RX標識碼4(EFF)(地址20)擴展幀n位73 :對應ID.4ID.0
11、n位20 :保留(13)驗收濾波器n驗收代碼寄存器ACRn(n:03 地址1619 復位時可讀寫)n驗收屏蔽寄存器AMRn(n:03 地址2023 復位時可讀寫)n接收標準幀報文的濾波器的配置n通過設置模式寄存器MOD.3 AFM (1:單濾波模式 0:雙濾波模式)標準幀的單濾波器接收n注意ACR1和AMR1的低4位是不用的,置為1作為無關。擴展幀的單濾波器接收n注意ACR3和AMR3的低2位是不用的,置為1作為無關。標準幀的雙濾波器接收n一條接收的報文要和兩個濾波器比較來決定是否接收。擴展幀的雙濾波器接收(14)RX報文計數器RMC (地址29 只讀 復位清0)n反映RXFIFO中有效的報文
12、數。每接收一次+1,每釋放接收緩沖器-1。n位75:保留置0;n位40:為計數。(15)RX緩沖器起始地址寄存器RBSA (地址30 只讀)n反映接收緩沖區窗口存放被接受的報文的第一個字節的內部RAM地址。n內部RAM地址起始為32;nCAN地址=RBSA+32;n地址范圍在3263之間;n位76:保留置0;n位50:為地址值(范圍031)。(16)總線時序寄存器0(BTR0)(地址6、復位時可讀寫)n確定波特率預引比例因子(BRP)和同步跳轉寬度(SJW)的值。n76位:同步跳轉寬度位域SJWntsjw = tclk(2BTR0.7+BTR0.6+1)tsjw:同步跳轉寬度。定義了一個周期可
13、以被一次重新同步縮短或延長的時鐘周期最大數。tclk:外晶振的振蕩周期。n50位:波特率預置位域BRP,定義CAN的系統時鐘tsclntscl = 2tclk(BTR0.5 BTR0.0+1)(17)總線時序寄存器1(BTR1)(地址7、復位時可讀寫)n確定位時間的長度、采樣點的位置和在每個采樣點欲獲取的采樣數目。如果復位模式有效,這個寄存器可以被訪問(讀/寫)。n7位:采樣位1:3次采樣0: 1次采樣n64位:時間段2(TSEG2)n30位:時間段1(TSEG1)ntTSEG1 = tscl( TSEG1 +1)ntTSEG2 = tscl( TSEG2 +1)(18)輸出控制寄存器(OCR
14、)(地址8、復位時可讀寫)n建立不同的輸出驅動配置。輸出控制寄存器允許在軟件控制下建立輸出驅動器的不同配置。如果復位模式有效,此寄存器可被訪問(讀/寫)。正常工作時,在BasicCAN模式中呈現的是FFH,在PeliCan模式中可讀。(19)時鐘分頻寄存器(CDR)(地址31、可讀寫)n7位:在BasicCAN模式與PeliCAN模式之間進行選擇;n6位(CBP):接收比較器旁路;n5位(RXINTEN):專用的接收中斷脈沖在TX1上;n4位:0;n3位:允許使CLKOUT引腳無效;n20位:控制用于微控制器的CLKOUT頻率。7.6.3 SJA1000 PeliCanPeliCan編程舉例編
15、程舉例n;本程序適用于帶ALE發生器的新板,是兩塊板的收發程序n;將模塊1上CS0用跳線帽短接,模塊2上CS1用跳線帽短接.n;兩塊模塊上的JUMP-4的兩個跳線短接在Single側n;用導線分別對應短接兩模塊上的CANL和CANH.n;(也可用帶水晶頭的專用CAN連接線的兩頭分別插在兩模塊的插座中而不用導線連接)n;有且只能有一塊模塊上的A短接到CANL,B短接到CANH.n;接通電源,運行本測試程序,在斷點處查看內存單元20H27H中的值是否與30H37H中的值完全對應相等n;如果相等表示模塊正常,否則用自檢程序分別檢測收發模塊MODEEQU00H;模式寄存器CMREQU01H;命令寄存器
16、SREQU02H;狀態寄存器IREQU03H;中斷寄存器IEREQU04H;中斷使能寄存器BTR0EQU06H;總線定時寄存器一BTR1EQU07H;總線定時寄存器二OCREQU08H;輸出控制寄存器ALC EQU 0BH;仲裁丟失捕捉寄存器ECC EQU 0CH;錯誤代碼捕捉寄存器TXERR EQU 0FH;發送錯誤計數器ACR0EQU10H;驗收代碼寄存器0ACR1EQU11H; 1ACR2EQU12H; 2ACR3EQU13H; 3AMR0EQU14H;驗收屏蔽寄存器0AMR1EQU15H; 1AMR2EQU16H; 2AMR3EQU17H; 3FINEQU 10H;發送/接收幀信息ID
17、1 EQU11H;發送/接收緩沖區之標示符一ID2EQU12H;發送/接收緩沖區之標示符二DATA1 EQU13H;發送/接收數據首址RBSAEQU1EH;接收緩沖器起始地址寄存器CDR EQU1FH;時鐘分頻寄存器ORG 4000HJMP STARTORG 4080H;-START: MOV R1,#8 MOV R0,#20HFILL: MOV B,#11H MOV A,R1 MUL AB MOV R0,A INC R0 DJNZ R1,FILLMOV DPH, #0DEHMOV R0, #0AAHLCALL INITCAN ;CAN1初始化(CAN1片選為CS0:0DE00H) MOV D
18、PH, #0DFHMOV R0, #0BBHLCALL INITCAN ;CAN2初始化(CAN2片選為CS1:0DF00H) ;- CAN1發送2楨數據-RETRAN: MOV DPH, #0DEH MOV R0, #20H LCALL SEND ;發送20H為首址的1楨數據(前三字節為:08H、BBH、FFH,后8字節任意) LCALL DELAY;- CAN2接收數據- MOV DPH, #0DFH MOV R0, #30H LCALL RECV NOP ;在此處設置斷點,以觀察結果 JMP $INITCAN: MOVDPL,#MODE;初始化子程序,DPH、R0為入口參數MOVA,#0
19、9HMOVX DPTR,A;模式寄存器,單驗收濾波器,進入復位模式MOVDPL,#CDRMOVA,#88HMOVXDPTR, A;時鐘分頻R,選擇增強CAN模式,關閉CLKOUT輸出MOVDPL,#IERMOVA,#0DHMOVX DPTR,A;中斷使能寄存器,開溢出、錯誤、接收中斷MOVDPL,#BTR0MOVA,#03HMOVXDPTR,A;總線定時寄存器一MOVDPL,#BTR1MOVA,#0FFHMOVX DPTR,A;總線定時寄存器二,6MHz晶振,波特率30KbpsMOVX A, DPTRMOVDPL,#OCRMOVA,#0AAHMOVXDPTR,A;輸出控制寄存器MOVDPL,#
20、ACR0MOVA, R0MOVXDPTR,A;驗收代碼ACR0MOVDPL,#ACR1MOVA,#0FFHMOVX DPTR,A;無關INCDPTRMOVXDPTR,A;無關INCDPTRMOVXDPTR,A;無關MOVDPL,#AMR0MOVA,#00HMOVXDPTR,A;驗收屏蔽寄存器AMR0=00HINCDPTRMOVA,#0FFHMOVXDPTR,A;AMR1INCDPTRMOVXDPTR,A;AMR2INCDPTRMOVXDPTR,A;AMR3驗收屏蔽:只有ACR0是相關項MOV DPL, #RBSAMOV A, #00HMOVX DPTR, A;接收緩沖器FIFO起始地址為0MO
21、V DPL, #TXERRMOVX DPTR, A;清除發送錯誤計數器 MOV DPL, #ECCMOVX DPTR, A;清除錯誤代碼捕捉寄存器 MOVDPL,#MODEMOVA,#08HMOVX DPTR,A;單濾波方式,返回工作方式RETSEND: MOV DPL,#SR;狀態寄存器MOVX A,DPTR;從SJA1000 讀入狀態寄存器值JB ACC.4,SEND;判斷是否正在接收正在接收則等待SEND0:MOVX A,DPTRJNB ACC.3,SEND0;判斷上次發送是否完成未完成則等待發送完成SEND1:MOVX A,DPTRJNB ACC.2,SEND1;判斷發送緩沖區是否鎖定
22、鎖定則等待SEND2: MOV DPL,#FIN;SJA1000 發送緩存區首址MOV A, #08HMOVX DPTR, AINC DPLMOV A, #0BBHMOVX DPTR, AINC DPLMOV A, #0FFHMOVX DPTR, AINC DPL MOV R2, #08HSEND3:MOV A, R0;R0為發送數據首址MOVX DPTR, AINC R0INC DPLDJNZ R2, SEND3MOV DPL,#CMR;命令寄存器地址MOV A,#01H;發送請求MOVX DPTR,A;啟動SJA1000 發送RETRECV: MOV DPL,#SR;狀態寄存器地址MOVX
23、 A,DPTRANL A, #0C3H;讀取總線脫離、錯誤狀態、接收溢出、有數據等位JNZ PROCRET ;無上述狀態,結束PROC: JNB ACC.7, PROC1BUSERR: MOV DPL, #IR;IR中斷寄存器,出現總線脫離 MOVX A, DPTR;讀中斷寄存器,清除中斷位 MOV DPL, #MODE MOV A, #08H MOVX DPTR, A;將方式寄存器復位請求位清0 RET NOPPROC1: MOV DPL, #IR;總線正常 MOVX A, DPTR;讀取中斷位 JNB ACC.3, OTHEROVER: MOV DPL, #CMR;數據溢出處理 MOV A, #0C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集裝箱道路運輸與物流市場分析考核試卷
- 棉花供應鏈管理與優化考核試卷
- 油氣倉儲安全評價與監控考核試卷
- 陶瓷制作中的熱工設備與節能技術考核試卷
- 臨床常見急救救護流程規范
- 多重感染肺炎
- 胎兒窒息臨床急救護理
- 子癇患者的麻醉管理
- AIDS合并口腔念珠菌感染診療體系
- 外科護理局部麻醉
- 致命性肺血栓栓塞癥急救護理專家共識(2024版)解讀
- 濟寧醫學院《科學技術哲學》2023-2024學年第二學期期末試卷
- 2025年醫藥代表職業資格考試試題及答案
- 項目合作經驗與能力證明(8篇)
- 2025年廣東省深圳中考數學考前沖刺(含詳解)
- 2025-2030年中國基因檢測行業現狀調查及發展前景預測研究報告
- 貴州省黔南布依族苗族自治州2023-2024學年八年級下學期期末質量監測語文試卷(含答案)
- 2025年“全國安全生產月”《安全知識》競賽題庫及答案
- 2025中考政治最后一課及考前指導【課件】
- 2025春國開《馬克思主義基本原理》大作業答案
- 消防體能訓練教學課件
評論
0/150
提交評論