CAN總線及應(yīng)用實(shí)例_第1頁
CAN總線及應(yīng)用實(shí)例_第2頁
CAN總線及應(yīng)用實(shí)例_第3頁
CAN總線及應(yīng)用實(shí)例_第4頁
CAN總線及應(yīng)用實(shí)例_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、FpgCAN總線及應(yīng)用實(shí)例(1) CAN特點(diǎn) CAN為多主方式工作,網(wǎng)絡(luò)上任意智能節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信 息,而不分主從,且無需站地址等節(jié)點(diǎn)信息,通信方式靈活。利用這特點(diǎn)可方便地構(gòu)成多機(jī)備份系統(tǒng)。 CAN網(wǎng)絡(luò)上G節(jié)點(diǎn)信息分成不同G優(yōu)先級(jí)(報(bào)文有2032種優(yōu)先權(quán)),可滿足不同G實(shí)時(shí)要求,高優(yōu)先級(jí)G數(shù)據(jù)最多可在134,us內(nèi)得到傳輸。 CAN采用非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低G節(jié)點(diǎn)會(huì)主動(dòng)地退出發(fā)送,大大節(jié)省了總線沖突仲裁時(shí)間。 CAN只需通過報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式收發(fā)數(shù)據(jù),無需專門調(diào)度”。 CANG直接通信距離

2、最遠(yuǎn)可達(dá)l 0km(速率5kbp以下):通信速率最高可達(dá) Mbps(此時(shí)通信距離最長(zhǎng)為40m)。 CAN上G節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng)電路,目前可達(dá) 110個(gè);報(bào)文標(biāo)識(shí)符可達(dá)2032種(CAN2.0A),而擴(kuò)展(CAN2.0B) G報(bào)文標(biāo)識(shí)符幾乎不受限制。(2) CAN總線協(xié)議CAN協(xié)議以國(guó)際標(biāo)準(zhǔn)化組織G開放性互連模型為參照,規(guī)定了物理層、傳輸層和對(duì)象 層,實(shí)際上相當(dāng)于ISO網(wǎng)絡(luò)層次模型中G物理層和數(shù)據(jù)鏈路層。圖3.9為CAN總線網(wǎng)絡(luò)層次結(jié)構(gòu),發(fā)送過程中,數(shù)據(jù)、數(shù)據(jù)標(biāo)識(shí)符及數(shù)據(jù)長(zhǎng)度,加上必要G總線控制信號(hào)形成串行G 數(shù)據(jù)流,發(fā)送到串行總線上,接收方再對(duì)數(shù)據(jù)流進(jìn)行分析,從中提取有效G數(shù)據(jù)。CAN協(xié)

3、議G一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)G站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼,數(shù)據(jù)在網(wǎng)絡(luò)上通過廣播方式發(fā)送。其優(yōu)點(diǎn)是可使網(wǎng)絡(luò)內(nèi)G節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制(實(shí)際中受網(wǎng)絡(luò)硬件G電氣特性限制),還可使同一個(gè)通信數(shù)據(jù)塊同時(shí)被不同G節(jié)點(diǎn)接收,這在分布式控制 系統(tǒng)中非常有用。CAN 2.0A版本規(guī)定標(biāo)準(zhǔn) CAN G標(biāo)識(shí)符長(zhǎng)度為11位,同時(shí)在2.0 B版本中又補(bǔ)充規(guī)定了標(biāo)識(shí)符長(zhǎng)度為29位G擴(kuò)展格式,因此理論上可以定義2 G 11次方或2 O19次方種不同G數(shù)據(jù)塊。 遵循CAN 2.0 B協(xié)議O CAN控制器可以發(fā)送和接收標(biāo)準(zhǔn)格式報(bào)文 (11位標(biāo)識(shí)符)或擴(kuò)展格式報(bào)文(29位標(biāo)識(shí)符),如果禁止CAN 2.0B則CAN

4、控制器只能發(fā)送和接收標(biāo)準(zhǔn)格式報(bào)文而忽略擴(kuò)展格式G報(bào)文,但不會(huì)出現(xiàn)錯(cuò)誤。每個(gè)報(bào)文數(shù)據(jù)段長(zhǎng)度為0-8個(gè)字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及檢測(cè)數(shù)據(jù)傳送G一般要求。同時(shí),8個(gè)字節(jié)占用總線時(shí)間不長(zhǎng),從而保證了通信G實(shí)時(shí)性。CAN協(xié)議采用CRC檢驗(yàn)并提供相應(yīng) G錯(cuò)誤處理功能,保證了數(shù)據(jù)通信G可靠性。對(duì)象層:報(bào)文濾波、報(bào)文和狀態(tài)G處理傳輸層:故障界定、錯(cuò)誤檢測(cè)和信令、報(bào)文校驗(yàn)、應(yīng)答、仲裁、報(bào)文分幀、傳輸速 率和定時(shí)物理層:信號(hào)電平和位表示、傳輸媒體圖3.9 CAN總線層次結(jié)構(gòu)(3)報(bào)文傳送和幀結(jié)構(gòu)CAN總線以報(bào)文為單位進(jìn)行信息傳送。報(bào)文中包含標(biāo)識(shí)符,它標(biāo)志了報(bào)文G優(yōu)先權(quán)。CAN總線上各個(gè)節(jié)點(diǎn)都可

5、主動(dòng)發(fā)送。如同時(shí)有兩個(gè)或更多節(jié)點(diǎn)開始發(fā)送報(bào)文,采用標(biāo)識(shí)符 ID來進(jìn)行仲裁,具有最高優(yōu)先權(quán)報(bào)文節(jié)點(diǎn)贏得總線使用權(quán),而其他節(jié)點(diǎn)自動(dòng)停止發(fā)送。在 總線再次空閑后,這些節(jié)點(diǎn)將自動(dòng)重發(fā)原報(bào)文。CAN系統(tǒng)中,一個(gè)CAN節(jié)點(diǎn)不使用有關(guān)系統(tǒng)結(jié)構(gòu)G任何信息。報(bào)文中G標(biāo)識(shí)符并不指出報(bào)文G目G地址,而是描述數(shù)據(jù)G含義。網(wǎng)絡(luò)Fpg中G所有節(jié)點(diǎn)都可有標(biāo)識(shí)符來自動(dòng)決定是否接收該報(bào)文。每個(gè)節(jié)點(diǎn)都有標(biāo)識(shí)符寄存器和屏蔽寄存器,接收到G報(bào)文只有與該屏蔽G功能相同時(shí),該節(jié)點(diǎn)才開始正式接收?qǐng)?bào)文,否則它將不理睬標(biāo)識(shí)符后面G報(bào)文。CAN支持4種不同類型報(bào)文幀:數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀、超載幀、幀間空間1)數(shù)據(jù)幀用于在各個(gè)節(jié)點(diǎn)之間傳送數(shù)據(jù)或

6、命令,它有7個(gè)不同G位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC場(chǎng)、應(yīng)答場(chǎng)和幀結(jié)束,如圖 3.10-13所示。幀間空間 卜數(shù)據(jù)幀 d幀間空間4 仲裁場(chǎng) 控制場(chǎng) 數(shù)據(jù)場(chǎng) crc場(chǎng) 4 幀結(jié)束或超載幀幀起始ACK場(chǎng)圖3.10數(shù)據(jù)幀幀起始標(biāo)志數(shù)據(jù)幀G開始。它由一個(gè)主控位構(gòu)成。 中裁場(chǎng)由11位標(biāo)識(shí)符(M)和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR)組成,其中最高7位。不能全是E1性位。 M決定了報(bào)文G優(yōu)先權(quán)。如主控位為0,隱性位為1,則M G數(shù)值越小,優(yōu)先權(quán)越高。對(duì)數(shù)據(jù)幀,RTR為主控電平。 控制場(chǎng)r1和r0為保留位,應(yīng)發(fā)送主控電平。DLC為數(shù)據(jù)長(zhǎng)度碼n,它為0-80 數(shù)據(jù)場(chǎng)允許G數(shù)據(jù)字節(jié)長(zhǎng)度為0 8,由n決定。

7、應(yīng)答場(chǎng)包括應(yīng)答位和應(yīng)答分隔符。發(fā)送站發(fā)出G這兩位均為隱性電平。而正確地接收到有 效報(bào)文G接收站,在應(yīng)答位期間應(yīng)傳送主控電平給發(fā)送站。應(yīng)答分隔符為隱性電平。 幀結(jié)束由7位隱性電平組成。仲裁場(chǎng)控制場(chǎng)坤 數(shù)據(jù)場(chǎng)標(biāo)準(zhǔn)格式S O F11位標(biāo)識(shí)符RTRr0DLC11位標(biāo)識(shí)符18位標(biāo)識(shí)符RTRr1r0DLC圖3.11仲裁場(chǎng)擴(kuò)展格式仲裁場(chǎng)控制場(chǎng)仲裁場(chǎng) *控制場(chǎng)4卜一數(shù)據(jù)場(chǎng)或CRC場(chǎng)r1r0DLC3DLC1DLC0DLC2保留位置“數(shù)據(jù)長(zhǎng)度碼圖3.13控制場(chǎng)以上為標(biāo)準(zhǔn)格式G數(shù)據(jù)幀,除此之外,在 CAN規(guī)范2.0 B中,還定義了擴(kuò)展格式G數(shù)據(jù)幀, 它G標(biāo)識(shí)符擴(kuò)展為 29位。它G前11位標(biāo)識(shí)符后G兩位為 SRR和M

8、E,它們均為隱性電平, 后面為新增G 18位標(biāo)識(shí)符,其余與標(biāo)準(zhǔn)格式相同。表3.2數(shù)據(jù)長(zhǎng)度碼中數(shù)據(jù)字節(jié)數(shù)目編碼數(shù)據(jù)字節(jié) 數(shù)目數(shù)據(jù)長(zhǎng)度碼DLC3DLC2DLC1DLC00dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rddd2)遠(yuǎn)程幀圖3.14遠(yuǎn)程幀3)出錯(cuò)幀數(shù)據(jù)幀f4出錯(cuò)幀錯(cuò)誤標(biāo)志4幀間空間或超載幀錯(cuò)誤標(biāo)志疊加*r錯(cuò)誤界定符圖3.15 出錯(cuò)幀1)超載幀F(xiàn)pgFpg幀結(jié)束或一超載幀川幀間空間或超載幀超載界定符.超載標(biāo)志一A錯(cuò)誤界定符 _JW超載標(biāo)志疊力口A-超載界定符圖3.16超載幀(4) CAN通信接口圖3.17是CAN通信部分電路,SJA1000是一種獨(dú)立用于

9、移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中G區(qū)域網(wǎng)絡(luò)控制。它是Philips半導(dǎo)體公司PCA82C200CAN控制器(BasicCAN)斤瞽代品,而且 它增加了一種新G操作模式PeliCAN ,這種模式支持具有很多新特性GCAN2.0B G協(xié)議,獨(dú)立G CAN 控制器有 2個(gè)不同G操作模式:BasicCAN 模式和 PeliCAN 模式其中BasicCAN模式可和 PCA82c250相兼容BasicCAN模式是上電后默認(rèn)G操作模式,因此用 PCA82C250 (是協(xié)議控制器和物理傳輸線路之間收發(fā)器)開發(fā)G已有硬件和軟件可以直接在SJA1000上使用而不用作任何修改; PeliCAN模式是新G操作模式它能夠處理所

10、有 CAN2.0B規(guī)范G幀類型而且它還提供一些增強(qiáng)功能和SJA1000能應(yīng)用于更寬G領(lǐng)域。1Pl .0vccPl 4PO.OPl .2POJPl .3P0,2Pl ,4P03Pl .5P0,4Pl.6POiPl.7PO.SEST/VPDP0.7P3.0/RsDEA/VppP3.1jTxD ALE/PROGP3.2J1HT0PSENP3.3/IHT1P2.7P3.4JT0P2«P3.5EP23P3.6WRP2.4P3.7/RDP2JXTAL2P2.2XTALiP2.1GNDP2JD4 012323933S2443725S書2fi63527734288331932210314113051

11、229613283M2716152617162510K1724182322202189S52ADOTXOADITX1AD2RXOADSRXIAD4CLKOUTADSAD6MODEAD7VDD1CSVDD2RDVDD3WVSS1ALEVS52INTEET口言 代Qso HSHQ 00> 1MMUQS 明湛61皈 口"1口±=22P *疏外心L gHP1120CAM BUS圖3.17 CAN通信部分電路1) SJA1000 G特征能分成3組:已建立G PCA82C200功能這組G功能已經(jīng)在PCA82C200里實(shí)現(xiàn)。改良G PCA82C200功能這組功能G部份已經(jīng)在PCA8

12、2C200里實(shí)現(xiàn)但是在 SJA1000里這些功能在速度大小和性能方面得到了改良。PeliCAN模式G增強(qiáng)功能在PeliCAN模式里SJA1000支持一些錯(cuò)誤分析功能支持系統(tǒng)診斷系統(tǒng)維護(hù)系統(tǒng)優(yōu)化而且這個(gè)模式里也加入了對(duì)一般CPU G支持和系統(tǒng)自身測(cè)試G功能。SJA1000管腳:AD0-AD7 :地址/數(shù)據(jù)復(fù)用信號(hào)ALE/AS : ALE輸入信號(hào)(Intel模式),AS輸入信號(hào)(Motorola模式)/CS:片選信號(hào),低電平有效/RD:微控制器G /RD信號(hào)(Intel模式),或E使能信號(hào)(Motorola模式)/WR:微控制器G /WR信號(hào)(Intel模式),或R/W使能信號(hào)(Motorola模

13、式)CLKOUT :提供給微控制器G時(shí)鐘輸出信號(hào),通過可編程分頻器由內(nèi)部晶振產(chǎn)生;時(shí) 鐘分頻寄存器G時(shí)鐘關(guān)閉位可禁止該引腳。VSS1:接地端,VSS2:輸入比較器接地端,VSS3:輸出驅(qū)動(dòng)器接地端。Vddi :邏輯電路G 5V電源,VDD2輸入比較器5V電源,Vdd3輸出驅(qū)動(dòng)器5V電源。XTAL1,2 :分別位振蕩器放大電路輸入輸出。MODE :模式選擇輸入,1= Intel模式,0= Motorola模式。TX0,TX1:由輸出驅(qū)動(dòng)器0、1到物理線路G輸出端。/INT :中斷輸出,開漏輸出。/RST:復(fù)位輸入。RX0,RX1 :由物理總線到 SJA1000輸入比較器G輸入端,顯性電平將會(huì)喚醒

14、SJA1000G睡眠模式;如果 RX1>RX0 G電平高,讀出為顯性電平,反之讀出G隱性電平;如果時(shí)鐘 分頻寄存器G CBP位被置位,就忽略 CAN輸入比較器以減少內(nèi)延時(shí)(此時(shí)連有外部收發(fā)電 路);這種情況下只有RX0是激活隱性電平被認(rèn)為是高,而顯性電平被認(rèn)為是低。PCA82C250/251收發(fā)器是協(xié)議控制器和物理傳輸線路之間G接口,對(duì)總線提供差動(dòng)發(fā)送能力,對(duì)CAN控制器提供差動(dòng)接收能力,可連接110個(gè)節(jié)點(diǎn)。PCA82C250/251 管腳:TXD :發(fā)送數(shù)據(jù)輸入GND :地Vcc:電源 4.55.5 VRXD :接收數(shù)據(jù)輸出Vref:參考電壓輸出CANH :彳氐電平CAN電壓輸入/輸出

15、CANH :高電平CAN電壓輸入/輸出Rs:斜率電阻輸入,接地選擇高速工作模式2)SJA1000 G基本功能和寄存器: BasicCAN功能說明表3.3為SJA1000寄存器說明。表3.3 SJA1000寄存器說明地址功能段操作模式中G寄存器功能復(fù)位模式中G寄存器高功能0各類控制器讀寫讀寫1控制控制控制控制2FFH命令FFH命令3狀態(tài)一狀態(tài)一4FFH一中斷一5FFH一驗(yàn)收代碼驗(yàn)收代碼6FFH一驗(yàn)收屏蔽驗(yàn)收屏蔽7FFH一總時(shí)序0總時(shí)序08FFH一總時(shí)序1總時(shí)序19測(cè)試測(cè)試測(cè)試測(cè)試10發(fā)送緩沖器標(biāo)識(shí)符位域10-3標(biāo)識(shí)符位域10-3FFH一11標(biāo)識(shí)符位域2-0 RTR 和DLC位域標(biāo)識(shí)符位域2-0R

16、TR 和DLC位域FFH一1219數(shù)據(jù)字節(jié)1-數(shù)據(jù)字節(jié)8數(shù)據(jù)字節(jié)1-數(shù)據(jù)字節(jié)8FFHFFH一20接受緩沖器標(biāo)識(shí)符位域10-3標(biāo)識(shí)符位域10-3標(biāo)識(shí)符位域10-3標(biāo)識(shí)符位域10-321標(biāo)識(shí)符位域2-0RTR和DLC位域標(biāo)識(shí)符位域2-0RTR 和DLC位域標(biāo)識(shí)符位域2-0RTR 和 DLC位域標(biāo)識(shí)符位域2-0RTR 和 DLC 位域22-29數(shù)據(jù)字節(jié)1數(shù)據(jù)字節(jié)8數(shù)據(jù)字節(jié)1數(shù)據(jù)字節(jié)8數(shù)據(jù)字節(jié)1 數(shù)據(jù)字節(jié)8數(shù)據(jù)字節(jié)1 數(shù)據(jù)字節(jié)830FFH一FFH一31時(shí)鐘分頻器時(shí)鐘分頻器時(shí)鐘分頻器時(shí)鐘分頻器時(shí)鐘分頻器1控制寄存器(CR):如表3.4所示。表3.4控制寄存器位符號(hào)名稱值功能CR.7CR.6CR.5CR.

17、4OIE超載中斷使能1使能:如果數(shù)據(jù)超載位置位,微控制器接收一個(gè)超載 中斷信號(hào)0禁止:微控制器不從 SJA1000接收超載中斷信號(hào)CR.3EIE錯(cuò)誤中斷使能1使能:如果出錯(cuò)或總線狀態(tài)改變,微控制器接收一個(gè) 錯(cuò)誤中斷信號(hào)0禁止:微控制器不從 SJA1000接收錯(cuò)誤中斷信號(hào)CR.2TIE發(fā)送中斷使能1使能:當(dāng)報(bào)文被成功或發(fā)送緩沖器可再次被訪問時(shí),SJA1000向微控制器發(fā)出一次發(fā)送中斷信號(hào)0禁止:SJA1000不向微控制器發(fā)送中斷信號(hào)CR.1RIE接收中斷使能1使能:報(bào)文被無錯(cuò)誤接收時(shí),SJA1000向微控制器發(fā)出一次中斷信號(hào)0禁止:SJA1000不向微控制器發(fā)送接收中斷信號(hào)CR.0RR復(fù)位請(qǐng)求1

18、常態(tài):SJA1000檢測(cè)到復(fù)位請(qǐng)求后,忽略當(dāng)前發(fā)送 / 接收G報(bào)文,進(jìn)入復(fù)位模式0非常態(tài):復(fù)位請(qǐng)求位接收到一個(gè)下降沿后,SJA1000回到工作模式2命令寄存器(CMR):如表3.5所示。表3.5命令寄存器位符號(hào)名稱值功能CMR.7CMR.6CMR.5CMR.4CTS睡眠1睡眠:如果沒有CAN中斷等待和總線活動(dòng),SJA1000 進(jìn)入睡眠模式0喚醒:SJA1000正常工作模式CMR.3CDO清除超載狀態(tài)1清除:清除數(shù)據(jù)超載狀態(tài)位0無作用CMR.2RRB釋放接收緩沖 器1釋放:接收緩沖器中存放報(bào)文G內(nèi)存空間將被釋放0無作用CMR.1AT夭折發(fā)送1常態(tài):如果不是在處理過程中,等待處理G發(fā)送請(qǐng) 求將忽略

19、0非常態(tài):無作用CMR.0TR發(fā)送請(qǐng)求1常態(tài):報(bào)文被發(fā)送0非常態(tài):無作用3狀態(tài)寄存器(SR):如表3.6所示。表3.6 狀態(tài)寄存器位符號(hào)名稱值功能SR.7BS總線狀態(tài)1總線關(guān)閉:SJA1000退出總線活動(dòng)0總線開啟:SJA1000進(jìn)入總線活動(dòng)SR.6ES出錯(cuò)狀態(tài)1出錯(cuò):至少出現(xiàn)一個(gè)錯(cuò)誤計(jì)數(shù)器滿或超過CPU報(bào)警機(jī)制0正常:兩個(gè)錯(cuò)誤計(jì)數(shù)器都在報(bào)警限制以下SR.5TS發(fā)送狀態(tài)1發(fā)送SJA1000正在發(fā)送報(bào)文0空閑沒有要發(fā)送G報(bào)文SR.4RS接收狀態(tài)1接收SJA1000正在接收0空閑沒后要接收G報(bào)文SR.3TCS發(fā)送完畢狀態(tài)1完成最次發(fā)送請(qǐng)求被成功處理0未完成:當(dāng)前發(fā)送請(qǐng)求未處理完畢SR.2TBS發(fā)送

20、緩沖器狀 態(tài)1釋放:CPU可以向發(fā)送緩沖器寫報(bào)文0鎖定:CPU不能訪問發(fā)送緩沖器,有報(bào)文正在等待發(fā) 送或正在發(fā)送SR.1DOS數(shù)據(jù)超載狀態(tài)1超載:報(bào)文丟失,因?yàn)?RXFIFO中沒有足夠G空間來 存儲(chǔ)它0未超載:自從最舟-次清除數(shù)據(jù)超載命令執(zhí)行,無數(shù) 據(jù)超載發(fā)生SR.0RBS接收緩沖狀態(tài)1滿:RXFIFO中有可用報(bào)文0空:無可用報(bào)文4中斷寄存器(IR):如表3.7所示。表3.7中斷寄存器位符號(hào)名稱值功能IR.7IR.6IR.5IR.4WUI喚醒中斷1置位:退出睡眠模式時(shí)此位被置位0復(fù)位:微控制器G任何讀訪問將清除此位IR.3DOI數(shù)據(jù)超載中斷1置位:當(dāng)數(shù)據(jù)超載中斷使能位被置為1時(shí),數(shù)據(jù)超載狀態(tài)位

21、由低到高G跳變,將其置位。0復(fù)位:微控制器G任何讀訪問將清除此位IR.2EI錯(cuò)誤中斷1置位:錯(cuò)誤中斷使能時(shí),錯(cuò)誤狀態(tài)位或總線狀態(tài)位G 變化會(huì)置位此位0復(fù)位:微控制器G任何讀訪問將清除此位IR.1TI發(fā)送中斷1置位:發(fā)送緩沖器狀態(tài)由低到高G跳變(釋放)和發(fā) 送中斷使能時(shí),置位此位0復(fù)位:微控制器G任何讀訪問將清除此位IR.0RI接收中斷1置位:當(dāng)接收FIFO不空和接收中斷使能時(shí)置位此位0復(fù)位:微控制器G任何讀訪問將清除此位5驗(yàn)收代碼寄存器(ACR):如表3.8所示。表3.8驗(yàn)收代碼寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AC.7AC.6AC.5AC.4AC.3AC.

22、2AC.1AC.0復(fù)位請(qǐng)求位被置高(當(dāng)前)時(shí),該寄存器可以訪問。 如果一條報(bào)文通過了接收濾波器G測(cè)試而且接收緩沖器有空間,描述符和數(shù)據(jù)將被分別順次寫入RXFIFO,當(dāng)報(bào)文被正確G接收完畢,則有:接收狀態(tài)位置高(滿);接收中斷使能位置高(使能),接收中斷置高(產(chǎn)生 中斷)。驗(yàn)收代碼(AC.7AC.0 )和報(bào)文標(biāo)識(shí)符G高 8位(ID.10ID.3 )必須相等,或驗(yàn)收屏蔽 位(AM.7AM.0 ) G所有位為1。即如果滿足以下方程G描述,則予以接收。(ID.10ID.3)三(AC.7AC.0 ) V (AM.7AM.0 )三 111111116驗(yàn)收屏蔽寄存器(AMR ):如表3.9所示。表3.9驗(yàn)收

23、屏蔽寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0復(fù)位請(qǐng)求位被置高(當(dāng)前)時(shí),該寄存器可以訪問。 驗(yàn)收屏蔽寄存器定義驗(yàn)收代碼寄存器G哪些位對(duì)接收過濾器是“相關(guān)或“無關(guān)(即可為任意值)當(dāng)AM.i=0時(shí),是“相關(guān)當(dāng) AM.i=1 時(shí),是“無關(guān)(i=07)口發(fā)送緩沖區(qū):如表3.10所示。表3.10 驗(yàn)收屏蔽寄存器區(qū)CAN地址名稱位76543210描 述 符10標(biāo)識(shí)符字節(jié)1ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.311標(biāo)識(shí)符字節(jié)2ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1D

24、LC.0數(shù) 據(jù)12TX數(shù)據(jù)1發(fā)送數(shù)據(jù)字節(jié)113TX數(shù)據(jù)2發(fā)送數(shù)據(jù)字節(jié)214TX數(shù)據(jù)3發(fā)送數(shù)據(jù)字節(jié)315TX數(shù)據(jù)4發(fā)送數(shù)據(jù)字節(jié)416TX數(shù)據(jù)5發(fā)送數(shù)據(jù)字節(jié)517TX數(shù)據(jù)6發(fā)送數(shù)據(jù)字節(jié)618TX數(shù)據(jù)7發(fā)送數(shù)據(jù)字節(jié)719TX數(shù)據(jù)8發(fā)送數(shù)據(jù)字節(jié)8標(biāo)識(shí)符(ID): 11位,就像報(bào)文G名字,值越低,優(yōu)先級(jí)越高。遠(yuǎn)程發(fā)送請(qǐng)求(RTR):當(dāng)RTR=1 ,總線以遠(yuǎn)程幀發(fā)送數(shù)據(jù)。如果 RTR沒有被置位,數(shù)據(jù)將以數(shù)據(jù)長(zhǎng)度碼規(guī)定G長(zhǎng)度來傳送數(shù)據(jù)幀。數(shù)據(jù)長(zhǎng)度碼(DLC):數(shù)據(jù)字節(jié)數(shù) =8XDLC.3+4 X DLC.2+2 XDLC.1+DLC.0報(bào)文數(shù)據(jù)區(qū)G字節(jié)數(shù)根據(jù)數(shù)據(jù)長(zhǎng)度碼編制。在遠(yuǎn)程幀傳送中,因?yàn)?RTR被置位

25、,數(shù)據(jù) 長(zhǎng)度碼是不被考慮這就迫使發(fā)送/接收數(shù)據(jù)字節(jié)數(shù)為 0。然而,數(shù)據(jù) 長(zhǎng)度碼必須正確設(shè)置,以避免兩個(gè)CAN控制器用同樣G識(shí)別機(jī)制啟動(dòng)遠(yuǎn)程幀傳送而發(fā)生總線錯(cuò)誤。數(shù)據(jù)字節(jié)數(shù)是0-8。數(shù)據(jù)區(qū):傳送G數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長(zhǎng)度碼決定。發(fā)送G第一位是地址12單元G數(shù)據(jù)字節(jié)1G最高位。BasicCAN和PeliCAN公用寄存器1總線時(shí)序寄存器0(BTR0):如表3.11所示。表3.11 總線時(shí)序寄卡器0BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0SJW.1SJW.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0波特率預(yù)置器位域位域BRP使彳導(dǎo)CAN系統(tǒng)G時(shí)鐘G周

26、期時(shí) tscL是可編程tscL =2tcLK (32 BRP.5 16 BRP.4 8 BRP.3 4 BRP.2 2 BRP.1 BRP.0 1)tCLK =XTAL =" f xtal同步跳轉(zhuǎn)寬度位域?yàn)榱搜a(bǔ)償在不同總線控制器G時(shí)鐘振蕩器之間G相位漂移,任何總線控制器必須在當(dāng)前傳送G任一相關(guān)信號(hào)邊沿重新同步。同步跳轉(zhuǎn)寬度t SJW定義了一個(gè)位周期可以被一次重新同步縮短或延長(zhǎng)G時(shí)鐘周期G最大數(shù)目。tSJW =tSCL (2 SJW.1 SJW.0 1)2總線時(shí)序寄存器1(BTR1):如表3.12、13所示??偩€時(shí)序寄存器 1定義了一個(gè)位周期G長(zhǎng)度、采樣點(diǎn)G位置和在每個(gè)采樣點(diǎn)G采樣數(shù)目

27、。在復(fù)位模式中,這個(gè)寄存器可以被讀/寫訪問。在PeliCAN模式G操作模式中,該寄存器是只讀在BasicCAN模式G操作模式中總是“FFHT表3.12總線時(shí)序寄存器1BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0采樣位(SAM表3.13 采樣位位值功能SAM13次:總線采樣3次,建議在低/中速總線上使用,這對(duì)過 濾總線上G毛刺是有效G0單次:總線米樣1次,建議使用在高速總線上時(shí)間段1和時(shí)間段2位域tSYNCSEG =1 tSCLtTSEG1 =tSCL (8 TSEG1.3

28、 4 TSEG1.2 2 TSEG1.1 TSEG1.0 1)tTSEG2 =tSCL (4 TSEG2.2 2 TSEG2.1 TSEG2.0 1)3輸出控制寄存器(OCR:如表3.14-16所示。允許軟件控制建立不同輸出驅(qū)動(dòng)G配置。在復(fù)位模式中,這個(gè)寄存器可以被讀/寫訪問。在PeliCAN模式G操作模式中,該寄存器是只讀在 BasicCAN模式G操作模式中總是"FFrfo表3.14輸出控制寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0在SJA1000在睡眠模式中,T

29、XR TX1根據(jù)輸出控制寄存器G內(nèi)容輸出隱性G電平。在復(fù)位 狀態(tài)(復(fù)位請(qǐng)求=1)或外部復(fù)位引腳/RST被拉低時(shí),TXR TX1懸空。表3.15輸出控制寄存器OCMODE1OCMODE0說明00雙相輸出模式:與正常輸出模式相反01測(cè)試輸出模式:在下一次系統(tǒng)時(shí)鐘G上升沿RX上G電平反映到TXX上,系統(tǒng)時(shí)鐘(fosc/2 )與輸出控制寄存器中G編 程定義G極性相對(duì)應(yīng)。10正常輸出模式:通過TX0、TX1送出,取決于 OCTR OCTHOCPOL程。11時(shí)鐘輸出模式:TX0同正常輸出模式,TX1由發(fā)送時(shí)鐘TXCLK取代表3.16輸出引腳配置驅(qū)動(dòng)TXDOCTPOCTNOCPOLTPxTNXTXX懸空X0

30、0X關(guān)關(guān)懸空上拉0010關(guān)開低1010關(guān)關(guān)懸空0011關(guān)關(guān)懸空1011關(guān)開低下拉0100關(guān)關(guān)懸空1100開關(guān)高0101開關(guān)高1101關(guān)關(guān)懸空下拉推挽0110關(guān)開低1110開關(guān)高0111開關(guān)高1111關(guān)開低4時(shí)鐘分頻寄存器:如 表3.17-18所示。表3.17時(shí)鐘分頻寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0CAN模式CBPRXINTEN0保留CLOCKOFFCD.2CD.1CD.0=0 , 工作BasicCAN=1, 工作PeliCAN=1 ,只有 RX0 起作用,RX1 應(yīng)接到確定電 平。例如Vss允許TX1輸出 用來做專用接 收中斷輸出時(shí)鐘關(guān) 閉位1 功效表3.

31、18 CLKOUT頻率選擇CD.2CD.1CD.0時(shí)鐘頻率000fosc/2001fosc/4010fosc/6011fosc/8100fosc/10101fosc/12110fosc/14111fosc3) BASICCAN程序設(shè)計(jì):CAN應(yīng)用節(jié)點(diǎn)G程序主要包括初始化、發(fā)送、接收子程序。CAN初始化子程序NODE EQU 30H;節(jié)點(diǎn)號(hào)緩沖區(qū)NBTR0 EQU 31H;總線定時(shí)寄存器 0緩沖區(qū)NBTR1 EQU 32H ;總線定時(shí)寄存器 1緩沖區(qū)TXBF EQU 40H ; RAM 內(nèi)發(fā)送緩沖區(qū)RXBF EQU 50H ; RAM 內(nèi)接收緩沖區(qū)CR EQU 0BF00H ;控制寄存器CMR

32、EQU 0BF01H ;命令寄存器SR EQU 0BF02H ;狀態(tài)寄存器IR EQU 0BF03H ;中斷寄存器ACR EQU 0BF04H ;接收碼寄存器AMR EQU 0BF05H ;接收碼屏蔽寄存器BTR0 EQU 0BF06H ;總線定時(shí)寄存器 0BTR1 EQU 0BF07H ;總線定時(shí)寄存器 1OCR EQU 0BF08H ;輸出控制寄存器CDR EQU 0BF1FH ;時(shí)鐘分頻寄存器RXB EQU 0BF14H ;接收緩沖器TXB EQU 0BF0AH ;發(fā)送緩沖器入口:節(jié)點(diǎn)號(hào)在 NODE ,波特率在 NBTR0、NBTR1出口:無CANINI:MOV DPTR,#CR;寫控制寄存器MOV A,#01H ;置復(fù)位請(qǐng)求為高M(jìn)OVX DPTR,ACANI1:MOVX A,DPTR ;判斷復(fù)位請(qǐng)求有效JNB ACC.0,CANI1MOV DPTR,#ACR;寫驗(yàn)收碼寄存器MOV A,NODE ;設(shè)置節(jié)點(diǎn)號(hào)MOVX DPTR,AMOV DPTR,#AMR ;寫接收碼屏蔽寄存器MOV A,#00HMOVX DPTR,AMOV DPTR,#BTR0 ;寫總線定時(shí)寄存器 0MOV A,NBTR0 ;設(shè)置波特率MOVX DPTR,AMOV DPTR,#BTR1 ;寫總線定時(shí)寄存器 1MOV A,NBTR

溫馨提示

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

評(píng)論

0/150

提交評(píng)論