




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章CAN硬件設(shè)計(jì)2014第一頁(yè),共135頁(yè)。
TheAnswerCAN是控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)的簡(jiǎn)稱,是由以研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國(guó)BOSCH公司開發(fā)的,并最終成為國(guó)際標(biāo)準(zhǔn)(ISO11898),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。
CAN總線是德國(guó)BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率最高可達(dá)1Mbps。是唯一有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,被認(rèn)為到目前為止最有前途的現(xiàn)場(chǎng)總線?,F(xiàn)場(chǎng)總線(Fieldbus)本質(zhì)是計(jì)算機(jī)控制網(wǎng)絡(luò),因此網(wǎng)絡(luò)技術(shù)是它的重要基礎(chǔ)。計(jì)算機(jī)網(wǎng)絡(luò)連接是各個(gè)PC,現(xiàn)場(chǎng)總線連接的是生產(chǎn)最底層的受控設(shè)備,傳感器。思考第二頁(yè),共135頁(yè)。思考第三頁(yè),共135頁(yè)。思考第四頁(yè),共135頁(yè)。6CAN的開發(fā)與設(shè)計(jì)
6.1概述SJA1000是一種具有高級(jí)功能的獨(dú)立CAN控制器,它可以應(yīng)用到汽車工業(yè)和其它工業(yè)領(lǐng)域。目前獨(dú)立CAN控制器包括SJA1000和MCP2515,SJA1000應(yīng)用比較廣泛,性能較強(qiáng),但是占IO較多。集成CAN控制器的MCU有PIC18F258/2580/4580/P8XC591/STM32/C8051F040等CAN收發(fā)器常用PCA82C250/TJA1050/MCP2551SJA1000是PCA82C200(BasicCAN)替代產(chǎn)品,因此其硬件和軟件與PCA82C200完全兼容;而且SJA1000還增加一種新的操作模式-Pelican,這種模式支持很多新特性的CAN2.0B協(xié)議。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五頁(yè),共135頁(yè)。
一、CAN總線結(jié)點(diǎn)結(jié)構(gòu)一般而言,每一個(gè)CAN模塊可以被分成不同的功能塊;第一層:與CAN總線相聯(lián)的部分,一般由CAN收發(fā)器構(gòu)成。收發(fā)器將CAN控制器的邏輯電平信號(hào)轉(zhuǎn)換為CAN總線上的實(shí)際電平,同時(shí)也將總線上的實(shí)際電平轉(zhuǎn)換為CAN控制的邏輯電平。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第六頁(yè),共135頁(yè)。第二層就是CAN控制器,它完成CAN技術(shù)規(guī)范定義的完整的CAN協(xié)議,通常還包括報(bào)文的緩沖和認(rèn)可濾波功能。第三層,所有的CAN功能完全由模塊控制器來(lái)控制,它完成應(yīng)用公共的控制功能,如控制一個(gè)執(zhí)行機(jī)構(gòu),采集傳感器的信息及處理人-機(jī)接口等等。一般是MCU概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第七頁(yè),共135頁(yè)。如圖6-1所示,SJA1000獨(dú)立CAN控制的器一般均介于微控制器與收發(fā)器之間。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八頁(yè),共135頁(yè)。二、功能框圖SJA1000的功能框圖,如圖6-2所示。
第九頁(yè),共135頁(yè)。1)CAN核心模塊:根據(jù)CAN技術(shù)規(guī)范完成幀的收發(fā)。2)接口管理邏輯單元:完成與外部主控制器的連接,該控制器可以是微控制器或其他裝置,對(duì)SJA1000寄存器的讀寫及讀寫脈沖均由此單元來(lái)控制,并且增加了除BasicCAN基本功能外的PeliCAN功能,由此而增加的寄存器和控制邏輯也大多在此模塊中完成。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第十頁(yè),共135頁(yè)。3)發(fā)送緩沖器:可以存放一個(gè)完整的報(bào)文(SFF/EFF)。只要外部控制器初始化一次發(fā)送過程,IML(管理邏輯接口單元)都要迫使CAN核心模塊來(lái)讀取發(fā)送緩沖器的報(bào)文。4)認(rèn)可濾波器:當(dāng)接收到一組報(bào)文CAN核心模塊將其串/并轉(zhuǎn)換后送到認(rèn)可濾波器,利用這些可編程寄存器,SJA1000來(lái)確定哪些報(bào)文是主控制器要接收的。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第十一頁(yè),共135頁(yè)。5)接收棧FIFO
:所有通過認(rèn)可濾波的報(bào)文均存放在接收線中,根據(jù)運(yùn)行方式和報(bào)文長(zhǎng)度的不同,接收棧中最多只能存放32個(gè)報(bào)文。這給用戶提供了更大的靈活性來(lái)處理中斷優(yōu)先權(quán)判定和中斷服務(wù)程序,因此這大大降低了數(shù)據(jù)超載的可能性。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第十二頁(yè),共135頁(yè)。6.2系統(tǒng)構(gòu)成
為了與主控制器相連,SJA1000提供了復(fù)用地址/數(shù)據(jù)總線和其他的讀寫控制信號(hào),SJA1000可以被看作為面向存貯器尋址的外設(shè)I/O單元。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第十三頁(yè),共135頁(yè)。由于寄存器和輸出管腳可組態(tài)使得SJA1000可以使用任何種類的集成或分立的
CAN收發(fā)器。在圖3中給出了包括80C51和PCA82C250/1收發(fā)器的SJA1000的應(yīng)用框圖。CAN控制器給8051提供時(shí)鐘,由外部復(fù)位電路提供復(fù)位信號(hào)。在這個(gè)例子中,SJA1000由8051的端口P2.7來(lái)控制,也可以將此腳接到Vss。該腳也可以通過地址譯碼器來(lái)控制。//定義SJA1000的基址#defineSJA_BaseAdr0X7F00決定CS接到P2口的那個(gè)管腳,這樣定義就是P2.7#defineSJA_BaseAdr0XFE00決定CS接到P2口的那個(gè)管腳,這樣定義就是P2.0概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用6.2.1SJA1000的應(yīng)用第十四頁(yè),共135頁(yè)。第十五頁(yè),共135頁(yè)。
CAN總線系統(tǒng)智能節(jié)點(diǎn)硬件設(shè)計(jì)第十六頁(yè),共135頁(yè)。SJA1000有3組電源腳供給不同的內(nèi)部數(shù)字或模擬功能塊VDD1/VSS1內(nèi)部邏輯(數(shù)字)VDD2/VSS2輸入比較器(模擬)VDD3/VSS3輸出驅(qū)動(dòng)器(模擬)這組電源是相互獨(dú)立的,以提高芯片的抗干擾能力。在某些應(yīng)用場(chǎng)合VDD2可以聯(lián)接一個(gè)RC去偶網(wǎng)絡(luò),以抑制比較器的噪聲干擾。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用6.2.2電源第十七頁(yè),共135頁(yè)。6.2.3復(fù)位SJA1000的正常復(fù)位過程,要求在XTAL1腳上加以穩(wěn)定的振蕩器時(shí)鐘脈沖,Pin17上外部復(fù)位信號(hào)起同步作用,并在CAN控制器內(nèi)部被延長(zhǎng)為15個(gè)時(shí)鐘周期的脈寬,這樣就可以保證SJA1000內(nèi)部寄存器的可靠復(fù)位。此外在上電復(fù)位時(shí),也應(yīng)將振蕩內(nèi)的起振時(shí)間考慮在內(nèi)。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第十八頁(yè),共135頁(yè)。6.2.4振蕩器及時(shí)鐘的提供方法SJA1000可使用內(nèi)部振蕩器或外部振蕩器CLKOUT可被置有效,給主控制器提供時(shí)鐘,圖6-4給出了4種SJA1000的時(shí)鐘供給方法。思考有一幅圖有問題?若CLKOUT不使用,可通過使時(shí)鐘分頻寄存器的時(shí)鐘關(guān)斷位置1,使之無(wú)效,這樣做可提高CAN接點(diǎn)的電磁兼容性。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第十九頁(yè),共135頁(yè)。第二十頁(yè),共135頁(yè)。
上電復(fù)位或硬復(fù)位后,時(shí)鐘分頻系數(shù)取決于接口方式。接口方式由11腳模式位(Mode)決定。所以若振蕩的頻率為16MHz,在Intel方式,fclkout=8MHz;在Motorola方式,fclkout=1.33MHz。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第二十一頁(yè),共135頁(yè)。在沒有總線活動(dòng)和發(fā)出中斷申請(qǐng)的情況下,在BasicCAN模式中置Gotosleep位;在PeliCAN模式置SleepMode位可使CAN控制器進(jìn)入睡眠狀態(tài),振蕩器要再持續(xù)工作15個(gè)系統(tǒng)時(shí)鐘時(shí)間。這段時(shí)間微控制器可用來(lái)處理善后事務(wù),并進(jìn)入其低功耗待機(jī)狀態(tài)。喚醒條件之一發(fā)生,振蕩器將起振,并發(fā)出喚醒中斷,并且一旦振蕩器穩(wěn)定,CLKOUT就有有效輸出。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第二十二頁(yè),共135頁(yè)。6.2.5CPU接口控制
SJA1000可以直接與兩種著名的CPU系列相聯(lián),80C51、68XX,兩種CPU系列的選擇通過模式腳(Mode,Pin11)來(lái)選擇。圖6-5給出了Intel和Motorola方式下的地址/數(shù)據(jù)線及讀寫控制信號(hào)線的連線圖。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第二十三頁(yè),共135頁(yè)。第二十四頁(yè),共135頁(yè)。6.2.6物理層接口
第二十五頁(yè),共135頁(yè)。6.3CAN通信的控制
6.3.1控制SJA1000通信的基本功能和控制寄存器
主控制器通過應(yīng)用程序來(lái)設(shè)定SJA1000的功能,因此我們將對(duì)SJA1000進(jìn)行編程以滿足不同性能的CAN總線系統(tǒng)的要求。主控制器通過寄存器(控制段)和RAM(報(bào)文緩沖器)與SJA1000交換數(shù)據(jù)。這些控制寄存器和接收及發(fā)送緩沖器--RAM的可尋址窗口,對(duì)主控制器而言均為外設(shè)寄存器。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第二十六頁(yè),共135頁(yè)。表2將這些寄存器按使用功能進(jìn)行了分組。要注意,有些寄存器只能在PeliCAN方式中使用,而另一些只能在BasicCAN方式中使用;有些為只讀而另一些為只寫,還有一些寄存器只能在復(fù)位狀態(tài)下才能進(jìn)行讀寫操作。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第二十七頁(yè),共135頁(yè)。SJA1000獨(dú)立的CAN控制器有2個(gè)不同的操作模式:
1
BasicCAN模式:和PCA82C200兼容。BasicCAN模式是上電后默認(rèn)的操作模式,因此用PCA82C200開發(fā)的已有硬件和軟件,可以直接在SJA1000上使用而不用作任何修改。
2PeliCAN模式:是新的操作模式。它能夠處理所有CAN2.0B規(guī)范的幀類型。而且它還提供一些增強(qiáng)功能,使SJA1000能應(yīng)用于更寬的領(lǐng)域。PeliCAN
中文含義?53工作模式通過時(shí)鐘分頻寄存器中的CAN模式位來(lái)選擇,復(fù)位時(shí)默認(rèn)模式是BasicCAN模式。第二十八頁(yè),共135頁(yè)。第二十九頁(yè),共135頁(yè)。第三十頁(yè),共135頁(yè)。第三十一頁(yè),共135頁(yè)。(1)BasicCAN模式地址分配SJA1000對(duì)微處理器而言是存儲(chǔ)器尋址方式的I/O裝置,由于寄存器的設(shè)計(jì)是按RAM方式設(shè)計(jì)的。SJA1000的地址范圍包括控制段和報(bào)文緩沖器。在初始化時(shí)對(duì)控制段進(jìn)行編程,以便組態(tài)通信參數(shù)。位處理器也是通過此段實(shí)現(xiàn)對(duì)CAN總線通信的控制。在初始化時(shí)位處理器還可對(duì)CLKOUT信號(hào)的頻率進(jìn)行編程。要發(fā)送的報(bào)文,必須寫入SJA1000的發(fā)送緩沖器;正確接收的報(bào)文,微處理器可以從接收緩沖器中讀取,并將接收緩沖器釋放以備將來(lái)使用。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用BasicCAN模式第三十二頁(yè),共135頁(yè)。微處理器與SJA1000的狀態(tài)、控制和命令信號(hào)的交換都是在控制段完成的。此段的地址分配如表5-12所示,在初始化完成后,認(rèn)可碼寄存器、認(rèn)可碼屏蔽寄存器、總線定時(shí)寄存器0和1以及輸出控制寄存器的內(nèi)容不應(yīng)再發(fā)生變化,所以這些寄存器只能在控制寄存器的復(fù)位請(qǐng)求位被置為高時(shí),才可對(duì)其寫操作。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第三十三頁(yè),共135頁(yè)。對(duì)寄存器的操作必須區(qū)分兩種模式:復(fù)位模式運(yùn)行模式在硬件復(fù)位或總線關(guān)斷狀態(tài)(見表5-16,狀態(tài)寄存器)時(shí),芯片自動(dòng)進(jìn)入復(fù)位模式(見表5-14,控制寄存器);將控制寄存器中的復(fù)位請(qǐng)求位清零就可進(jìn)入運(yùn)行模式。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第三十四頁(yè),共135頁(yè)。第三十五頁(yè),共135頁(yè)。第三十六頁(yè),共135頁(yè)。第三十七頁(yè),共135頁(yè)。(2)復(fù)位值若檢測(cè)到‘復(fù)位請(qǐng)求’位為1,芯片將終止當(dāng)前報(bào)文的發(fā)送/接收而進(jìn)入復(fù)位狀態(tài);在‘復(fù)位請(qǐng)求’位的‘1-0’跳變,CAN控制器返回到運(yùn)行模式。(3)控制寄存器(CR)控制寄存器的內(nèi)容可以改變CAN控制器的響應(yīng),寄存器的內(nèi)容可以由與其相接的微處理器來(lái)改變。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第三十八頁(yè),共135頁(yè)。第三十九頁(yè),共135頁(yè)。注:1、CR.7:對(duì)控制寄存器的任何寫操作此位必須置零(復(fù)位值為0)。2、CR.6:在PCA82C200中此位被用來(lái)選擇同步模式,由于SJA1000中不再使用此模式,設(shè)置該位對(duì)微處理器沒有任何影響。但為了軟件的兼容性,將此位置1是允許的,硬件或軟件復(fù)位對(duì)此位沒有影響。讀操作的返回值為用戶軟件的寫入值。3、CR.5:此位讀回的值為1概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十頁(yè),共135頁(yè)。4、復(fù)位請(qǐng)求:
在硬件復(fù)位或總線狀態(tài)被置1(總線離線)期間,復(fù)位請(qǐng)求位被置為1。復(fù)位請(qǐng)求位被置零后SJA1000將等待:a)若復(fù)位請(qǐng)求是由硬件或CPU的上電復(fù)位引起的,SJA1000將等待一個(gè)總線空閑信號(hào)(連續(xù)11個(gè)隱性電平);b)若復(fù)位請(qǐng)求是由CAN控制器的總線離線狀態(tài)引起的,SJA1000要重新進(jìn)入總線在線狀態(tài),必須等待128個(gè)總線空閑狀態(tài)。應(yīng)注意的是在復(fù)位請(qǐng)求過程中,幾個(gè)寄存器的內(nèi)容被改變了。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十一頁(yè),共135頁(yè)。(4)命令寄存器(CMR)一個(gè)命令位引發(fā)SJA1000傳輸層的一個(gè)過程,命令寄存器對(duì)微處理器而言是一個(gè)只寫寄存器,若對(duì)命令寄存器執(zhí)行讀操作,其返回值為‘11111111’。兩個(gè)命令之間至少需要一個(gè)內(nèi)部時(shí)鐘周期對(duì)命令進(jìn)行處理。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十二頁(yè),共135頁(yè)。第四十三頁(yè),共135頁(yè)。注:1、進(jìn)入睡眠GTS被置1,若沒有中斷申請(qǐng)及總線無(wú)活動(dòng),SJA1000將進(jìn)入睡眠狀態(tài);2、清除數(shù)據(jù)過載CDO命令位用來(lái)清除由數(shù)據(jù)過載位指示的數(shù)據(jù)過載狀態(tài);一旦數(shù)據(jù)過載位置1,就不再產(chǎn)生其它的過載中斷了。清除數(shù)據(jù)過載命令也可作為接收緩沖器釋放命令來(lái)使用。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十四頁(yè),共135頁(yè)。3、釋放接收緩沖器RRB讀出接收緩沖器的內(nèi)容后,微處理器可以將釋放接收緩沖器置1,以釋放RX棧的存儲(chǔ)空間,此命令可以使接收緩沖器中的報(bào)文立即有效。如果中斷開放,該事件會(huì)引發(fā)另外一個(gè)接收中斷。若接收緩沖器中沒有報(bào)文存在,就不會(huì)產(chǎn)生其它的接收中斷,接收緩沖器狀態(tài)位將被清零。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十五頁(yè),共135頁(yè)。4、終止發(fā)送ATCPU需要推遲以前的發(fā)送請(qǐng)求時(shí),也就是有更緊急的報(bào)文發(fā)送前,使用終止發(fā)送位。此命令不會(huì)終止已開始的發(fā)送過程,我們通過讀取發(fā)送完成狀態(tài)位的值,可以檢驗(yàn)原報(bào)文是被成功發(fā)送還是被終止。這個(gè)檢驗(yàn)過程應(yīng)在發(fā)送緩沖器狀態(tài)位置1或發(fā)送中斷發(fā)出后進(jìn)行。5、發(fā)送請(qǐng)求TR若第一個(gè)命令為使發(fā)送請(qǐng)求位置1,不能用使發(fā)送請(qǐng)求位清零來(lái)取消第一個(gè)命令。請(qǐng)求的發(fā)送過程可以用使終止發(fā)送位置1來(lái)取消。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十六頁(yè),共135頁(yè)。(5)狀態(tài)寄存器(SR)狀態(tài)寄存器的內(nèi)容反映了SJA1000的工作狀態(tài),狀態(tài)寄存器對(duì)微處理器而言為只讀存儲(chǔ)器。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十七頁(yè),共135頁(yè)。第四十八頁(yè),共135頁(yè)。(6)中斷寄存器(IR)中斷寄存器用來(lái)識(shí)別中斷源。此寄存器的一位或多位置1,將變?yōu)榈碗娖健N⑻幚砥鲗?duì)此寄存器讀出后,此寄存器的所有位將清零,使變?yōu)閼腋‰娖?。此寄存器為只讀寄存器。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第四十九頁(yè),共135頁(yè)。第五十頁(yè),共135頁(yè)。(7)發(fā)送緩沖器布局表5-18給出了發(fā)送緩沖器的總體布局,發(fā)送緩沖器用來(lái)存放從微處理器來(lái)并將被SJA1000發(fā)送的報(bào)文。發(fā)送緩沖器可分為描述符區(qū)和數(shù)據(jù)區(qū),微處理器只能在運(yùn)行模式讀/寫發(fā)送緩沖器,若在復(fù)位模式下讀發(fā)送緩沖器其返回值為‘FFH’。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十一頁(yè),共135頁(yè)。第五十二頁(yè),共135頁(yè)。①
標(biāo)示符(ID)標(biāo)示符由11位組成(ID.10~ID.0),ID.10為最高位,在仲裁過程中它首先被發(fā)送到總線上。標(biāo)示符的作用類似于報(bào)文的名字,在接收端它被用來(lái)進(jìn)行認(rèn)可濾波;在仲裁過程中它也用來(lái)決定訪問總線的優(yōu)先權(quán)。標(biāo)示符所代表的二進(jìn)制數(shù)值越小,其優(yōu)先權(quán)越高,這是由于二進(jìn)制數(shù)越小,其高位的顯性位就越多。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十三頁(yè),共135頁(yè)。②
遠(yuǎn)程發(fā)送請(qǐng)求(RTR)如果此位置1,將通過總線發(fā)送一遠(yuǎn)程幀。在遠(yuǎn)程幀中不包含數(shù)據(jù)字節(jié),雖然這樣,也必須給出與具有相同標(biāo)示符的數(shù)據(jù)幀相同的數(shù)據(jù)長(zhǎng)度碼。如果RTR沒有置1,將發(fā)送一幀數(shù)據(jù)幀。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十四頁(yè),共135頁(yè)。③
數(shù)據(jù)長(zhǎng)度碼(DLC)報(bào)文數(shù)據(jù)區(qū)中的數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長(zhǎng)度碼給出編碼。在開始發(fā)送遠(yuǎn)程幀時(shí),由于RTR為1,這強(qiáng)制發(fā)送/接收的數(shù)據(jù)字節(jié)為零,所以不需要考慮數(shù)據(jù)長(zhǎng)度碼。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十五頁(yè),共135頁(yè)。
數(shù)據(jù)長(zhǎng)度的有效字節(jié)數(shù)為0~8,數(shù)據(jù)長(zhǎng)度編碼由下式給出:
考慮到兼容性,不能使用大于8的數(shù)據(jù)長(zhǎng)度編碼。如果選擇了大于8的DLC編碼,在后續(xù)的數(shù)據(jù)幀中只發(fā)送8個(gè)字節(jié)的數(shù)據(jù)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十六頁(yè),共135頁(yè)。④
數(shù)據(jù)區(qū)發(fā)送的數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長(zhǎng)度碼確定。發(fā)送數(shù)據(jù)的第一位是位于CAN地址12的數(shù)據(jù)字節(jié)1的最高位。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十七頁(yè),共135頁(yè)。(8)接收緩沖器接收緩沖器的總體布局與5.3.7節(jié)描述的發(fā)送緩沖器的類似。接收緩沖器是RX棧的可訪問的部分,CAN地址范圍為20~29。標(biāo)示符、遠(yuǎn)程發(fā)送請(qǐng)求位和數(shù)據(jù)長(zhǎng)度編碼所處的位置和意義與發(fā)送緩沖器的完全一樣,只是所處的地址范圍為20~29。RX棧共有64字節(jié)。在任何時(shí)刻棧中所存儲(chǔ)的報(bào)文個(gè)數(shù),由報(bào)文的長(zhǎng)度決定。如果RX棧中沒有足夠的空間來(lái)存放一個(gè)新的報(bào)文,CAN控制器將發(fā)出數(shù)據(jù)過載信息。當(dāng)發(fā)生數(shù)據(jù)過載時(shí),部分已寫入RX棧中的報(bào)文將被刪除。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十八頁(yè),共135頁(yè)。(9)認(rèn)可濾波器具有認(rèn)可濾波器,CAN控制器就可以只讓那些標(biāo)示符與認(rèn)可濾波寄存內(nèi)容相符的報(bào)文進(jìn)入RX棧中。認(rèn)可濾波器由認(rèn)可碼寄存器(ACR)和認(rèn)可屏蔽寄存器(AMR)組成。①
認(rèn)可碼寄存器(ACR)
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第五十九頁(yè),共135頁(yè)。
此寄存器只能在復(fù)位模式下才可進(jìn)行讀/寫操作。當(dāng)一個(gè)報(bào)文通過了認(rèn)可檢驗(yàn),并且接收緩沖器中空間足夠,則該報(bào)文的描述區(qū)和數(shù)據(jù)區(qū)將被順序地存儲(chǔ)到RX棧中。當(dāng)一個(gè)報(bào)文完整無(wú)誤的接收下來(lái),CAN控制器將完成下述工作:
?接收狀態(tài)位置1;
?若中斷開放,將產(chǎn)生接收中斷。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第六十頁(yè),共135頁(yè)。報(bào)文標(biāo)示符的8個(gè)高位(ID.10~I(xiàn)D.3)必須與(AC.7~AC.0)相等,而這些位是被驗(yàn)收屏蔽位(AM.7~AM.0)相應(yīng)位屏蔽的,即滿足下式給出的條件之一,報(bào)文就通過了認(rèn)可,被接受:
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第六十一頁(yè),共135頁(yè)。
此寄存器只能在復(fù)位狀態(tài)才可對(duì)其讀/寫操作。認(rèn)可屏蔽寄存器確定相應(yīng)的認(rèn)可碼位的相關(guān)性(AM.X=0),或無(wú)關(guān)性(AM.X=1)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用②
認(rèn)可屏蔽寄存器(AMR)第六十二頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用(1)總線定時(shí)寄存器0(BTR0)總線定時(shí)寄存器0(BTR0)定義波特率預(yù)分頻和同步跳轉(zhuǎn)寬度的數(shù)值。BTR0在復(fù)位方式下,為讀/寫方式;在運(yùn)行模式下為:5.3.1.5通用寄存器
第六十三頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用①
波特率予分頻器(BRP)
CAN系統(tǒng)時(shí)鐘周期tSCL的大小是可編程的,該數(shù)值也用來(lái)確定CAN的位定時(shí)。CAN的系統(tǒng)時(shí)鐘的周期由下式給出:
第六十四頁(yè),共135頁(yè)。②
同步跳轉(zhuǎn)寬度(SJW)為了補(bǔ)償不同CAN控制器時(shí)鐘振蕩器的相移,任何總線控制器都必須根據(jù)當(dāng)前傳送報(bào)文相關(guān)邊沿進(jìn)行重同步,同步跳轉(zhuǎn)寬度定義了在一次重同步操作中,位周期縮短或延長(zhǎng)的最大系統(tǒng)時(shí)鐘數(shù)目。同步跳轉(zhuǎn)寬度由下式給出:
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第六十五頁(yè),共135頁(yè)。(2)總線定時(shí)寄存器1(BTR1)所謂總線定時(shí)寄存器1(BTR1)定義了位周期的長(zhǎng)度和數(shù)據(jù)采樣點(diǎn)的位置和個(gè)數(shù)。在復(fù)位模式下BTR1為讀/寫方式;在運(yùn)行模式下,若為PeliCAN模式,該寄存器為只讀方式;
在BasicCAN模式下,對(duì)此寄存器進(jìn)行讀操作,其返回值為0FFH。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第六十六頁(yè),共135頁(yè)。第六十七頁(yè),共135頁(yè)。②
時(shí)間段1(TSEG1)和時(shí)間段2(TSEG2)TSEG1和TSEG2定義了每個(gè)位周期中含有的系統(tǒng)時(shí)鐘的個(gè)數(shù)和采樣點(diǎn)的位置。其中:
BTR0和BTR1主要涉及到波特率,具體使用時(shí)候建議大家直接利用計(jì)算軟件。第六十八頁(yè),共135頁(yè)。(3)輸出控制寄存器(OCR)輸出控制寄存器(OCR)使總線控制器通過軟件控制輸出驅(qū)動(dòng)器的不同組合。在復(fù)位模式下OCR為讀/寫方式;在運(yùn)行模式下,若為PeliCAN模式,該寄存器為只讀方式,在BasicCAN模式下,對(duì)此寄存器進(jìn)行讀操作,其返回值為0FFH。第六十九頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第七十頁(yè),共135頁(yè)。若SJA100在睡眠狀態(tài),TX0和TX1腳上輸出隱性電平,在復(fù)位狀態(tài)或者在外部復(fù)位腳為低時(shí),TX0與TX1處于懸浮態(tài),根據(jù)輸出控制寄存器設(shè)置的內(nèi)容不同,發(fā)送的輸出級(jí)可以工作在不同的運(yùn)行方式
第七十一頁(yè),共135頁(yè)。①正常輸出方式在正常輸出方式,位流序列TXD通過TX0和TX1輸出,輸出驅(qū)動(dòng)器腳TX0和TX1的電平值不僅取決于可編程位OCTPx和OCTNx,而且也取決于輸出極性位OCPOLx的編程值。②時(shí)鐘輸出模式在這種方式下,TX0與正常輸出模式一樣,輸出位流序列,而TX1則輸出發(fā)送時(shí)鐘(TXCLK),發(fā)送時(shí)鐘的上升沿標(biāo)注一個(gè)位周期的開始,時(shí)鐘的輸出寬度為一個(gè)系統(tǒng)時(shí)鐘tSCL
。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第七十二頁(yè),共135頁(yè)。第七十三頁(yè),共135頁(yè)。③雙相輸出模式與正常輸出模式不同,在雙相輸出模式時(shí),位的輸出是隨時(shí)間變化的,而且TX0和TX1交替輸出。若總線控制器是用變壓器與線路隔離的,則位流中就不允許包含有直流成份,這一點(diǎn)可以通過下述方法實(shí)現(xiàn):在發(fā)送隱性位時(shí),所有的輸出被關(guān)閉(懸浮態(tài)),而顯性位則交替地輸出到TX0和TX1,即第一個(gè)顯性位送到TX0,第二個(gè)顯性位則送到TX1,第三個(gè)又送到TX0,依次類推。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第七十四頁(yè),共135頁(yè)。第七十五頁(yè),共135頁(yè)。④
測(cè)試輸出模式在測(cè)試輸出方式,RX的接收電平將在下一個(gè)系統(tǒng)時(shí)鐘的上升沿輸出到TXn,而且此輸出電平要受輸出控制寄存器可編程極性位的控制。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第七十六頁(yè),共135頁(yè)。時(shí)鐘分頻器寄存器(CDR)控制時(shí)鐘輸出腳CLKOUT的輸出頻率,并且允許關(guān)斷此位的輸出。另外,該寄存器還可以控制是否在TX1上增加了一個(gè)接收中斷脈沖、旁路接收比較器、選擇BasicCAN還是PeliCAN模式。在硬件復(fù)位后時(shí)鐘分頻數(shù)的默認(rèn)值為、12分頻(Motorola)或?yàn)椤?分頻(Intel)。軟復(fù)位對(duì)此寄存器沒有影響,保留位CDR.4在寫入時(shí)必須為0,以便與將來(lái)的功能上保持兼容。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用(4)時(shí)鐘分頻器寄存器(CDR)第七十七頁(yè),共135頁(yè)。第七十八頁(yè),共135頁(yè)。第七十九頁(yè),共135頁(yè)。②
時(shí)鐘關(guān)斷將此位置1可以使CLKOUT腳輸出無(wú)效,此位的寫操作只能在復(fù)位模式。將此位置1,CLKOUT腳在睡眠狀態(tài)輸出低電平,否則輸出高電平。
③
RXINTEN(接收增強(qiáng)位)此位置1可允許TX1作為一個(gè)專用的接收中斷輸出腳,當(dāng)一個(gè)報(bào)文通過認(rèn)可濾波,在幀結(jié)束符的最后一位期間,TX1輸出一位寬度的接收中斷脈沖。發(fā)送輸出級(jí)應(yīng)該工作在正常模式,輸出極性和輸出驅(qū)動(dòng)控制由輸出控制寄存器來(lái)決定。此位只能在復(fù)位狀態(tài)下寫入。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十頁(yè),共135頁(yè)。④CBP(比較器旁路位)將CDR.6(CBP)位置1,可以使CAN的輸入比較器旁路,此位只能在復(fù)位方式下寫入。一般當(dāng)SJA1000聯(lián)接有一個(gè)外部收發(fā)器電路時(shí),才使用此功能。這樣可以減少SJA1000的內(nèi)部延時(shí),并能延長(zhǎng)總線的最大長(zhǎng)度。若CBP=1,則只有RX0有效,而未使用的RX1輸入端應(yīng)聯(lián)接到一個(gè)固定電平(如VSS)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十一頁(yè),共135頁(yè)。⑤CAN模式
CDR.7定義了CAN的運(yùn)行方式:此位只能在復(fù)位模式下寫入。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十二頁(yè),共135頁(yè)。發(fā)送/接收緩沖器
要通過CAN總線發(fā)送的數(shù)據(jù),存貯在SJA1000的發(fā)送緩沖器,而CAN總線上接收到的報(bào)文存放在接收緩沖器。這些緩沖器包含有2、3或5個(gè)標(biāo)示符和幀信息字節(jié)(依據(jù)不同的模式和幀結(jié)構(gòu))和至多8個(gè)字節(jié)的數(shù)據(jù)。BasicCAN模式
緩沖器10字節(jié):
2字節(jié)標(biāo)示符
至多8個(gè)字節(jié)數(shù)據(jù)PeliCAN模式
緩沖器13字節(jié):
1字節(jié)幀信息
2~4字節(jié)標(biāo)示符
至多8字節(jié)數(shù)據(jù)概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十三頁(yè),共135頁(yè)。第八十四頁(yè),共135頁(yè)。第八十五頁(yè),共135頁(yè)。認(rèn)可濾波器
CAN控制器SJA1000配備有一個(gè)通用的認(rèn)可濾波器,該濾波器能夠自動(dòng)檢驗(yàn)標(biāo)示符和數(shù)據(jù)字節(jié)。利用這種濾波方法,可以有效的防止不需要接收的報(bào)文或報(bào)文組進(jìn)入接收緩沖器,就可以減少主控制器數(shù)據(jù)處理的負(fù)荷。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十六頁(yè),共135頁(yè)。若認(rèn)可碼和認(rèn)可碼屏蔽寄存器根據(jù)一定的算法來(lái)控制濾波器的工作,接收到的數(shù)據(jù)與認(rèn)可碼寄存器的內(nèi)容逐位比較,而認(rèn)可碼屏蔽寄存器定義接收數(shù)據(jù)的那些位與比較相關(guān)(0=相關(guān)、1=不相關(guān))。只有接收到的所有相關(guān)位與認(rèn)可碼寄存器的對(duì)應(yīng)位相同,接收的報(bào)文才通過了認(rèn)可濾波。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十七頁(yè),共135頁(yè)。BasicCAN模式的接收濾波在這種模式下,SJA1000可以直接代替PCA82C200。接收濾波器由兩個(gè)8位寬度的寄存器-接收碼寄存器和接收碼屏蔽寄存器組成,接收?qǐng)?bào)文標(biāo)示符的高8位與ACR和AMR的位進(jìn)行比較,見圖6-8。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第八十八頁(yè),共135頁(yè)。
AMR=1的位對(duì)應(yīng)的ID符可為任意值,最低位的三個(gè)ID符也可為任意值,所以在此例中共有64個(gè)不同的標(biāo)示符(ID符)可以被該節(jié)點(diǎn)接收。
第八十九頁(yè),共135頁(yè)。第九十頁(yè),共135頁(yè)。PeliCAN的認(rèn)可濾波在PeliCAN方式下,認(rèn)可濾波器進(jìn)行了擴(kuò)展,有4個(gè)8位寬的認(rèn)可碼寄存器(ACR0、ACR1、ACR2、ACR3)和認(rèn)可碼屏蔽寄存器(AMR0、AMR1、AMR2、AMR3)都參與報(bào)文的濾波。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十一頁(yè),共135頁(yè)。6.4CAN的通信功能的應(yīng)用
通過CAN總線建立通信的過程:系統(tǒng)上電后設(shè)置主控制器與SJA1000相關(guān)的硬件及軟件在SJA1000上電復(fù)位后,設(shè)置CAN控制器的通信功能,包括方式選擇、認(rèn)可濾波器的設(shè)置、位定時(shí)信息等。在應(yīng)用主程序中準(zhǔn)備要發(fā)送的數(shù)據(jù)并激活SJA1000將數(shù)據(jù)發(fā)出處理CAN控制器接收到的報(bào)文處理在通信過程中發(fā)生的錯(cuò)誤
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用打開ppt2第九十二頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十三頁(yè),共135頁(yè)。6.4.1初始化
SJA1000在上電或硬復(fù)拉后,必須對(duì)其初始化以便進(jìn)行通信。而且在運(yùn)行過程中還可以通過主控制器對(duì)其組態(tài)進(jìn)行修改(重新組態(tài)),在進(jìn)行重新組態(tài)時(shí),首先要進(jìn)入復(fù)位狀態(tài)。圖6-12給出了初始化程序的流程。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十四頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十五頁(yè),共135頁(yè)。
上電復(fù)位后,主控制器要運(yùn)行其復(fù)位子程序,然后進(jìn)入初始化SJA1000的子程序,因?yàn)橐M態(tài)的寄存器只有在復(fù)位模式(ResetMode)下,才能被寫入。1)主控制器必須在復(fù)位模式下對(duì)控制段的下列寄存器進(jìn)行設(shè)置。模式寄存器(僅對(duì)PeliCAN模式)選擇下列運(yùn)行方式:接收濾波器方式自檢模式監(jiān)聽模式概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十六頁(yè),共135頁(yè)。時(shí)鐘分頻寄存器:BasicCAN或PeliCAN模式時(shí)鐘輸出(CLKOUT)是否有效接收比較器是否旁路TX1輸出腳是否用作專用接收中斷輸出認(rèn)可碼與認(rèn)可碼屏蔽寄存器:定義要接收?qǐng)?bào)文的認(rèn)可碼定義認(rèn)可碼與報(bào)文進(jìn)行比較的相關(guān)位
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十七頁(yè),共135頁(yè)。總線定時(shí)寄存器定義總線的波特率定義在位周期中的采樣點(diǎn)位值定義采樣點(diǎn)數(shù)目輸出控制寄存器定義CAN總線輸出腳
TX0和TX1的輸出方式正常輸出方式
時(shí)鐘輸出方式
雙相輸出方式或測(cè)試方式。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第九十八頁(yè),共135頁(yè)。采用的是最典型的CAN控制器芯片SJA1000。SJA1000CAN控制器的CAN通訊波特率由寄存器BTR0、BTR1晶振等參數(shù)共同決定。下表A.1列出了一組推薦的BTR0、BTR1設(shè)置值。標(biāo)注*符號(hào)的值是由國(guó)際CiA協(xié)會(huì)推薦的標(biāo)準(zhǔn)值。第九十九頁(yè),共135頁(yè)。將上述的組態(tài)信息寫入SJA1000的控制段后,就可以通過清除R/R標(biāo)志進(jìn)入運(yùn)行狀態(tài),但必須檢驗(yàn)這個(gè)標(biāo)志位是否真正被清除了,并且確已進(jìn)入運(yùn)行模式,否則程序不應(yīng)繼續(xù)往下執(zhí)行。在設(shè)置SJA1000寄存器前,主控制器應(yīng)該通過讀R/R(Resetmode/Request)標(biāo)志來(lái)確認(rèn)SJA1000確在復(fù)位方式,因?yàn)橐M態(tài)的寄存器只有在復(fù)位模式(ResetMode)下,才能被寫入。(RR復(fù)位請(qǐng)求在控制寄存器(CR)中)概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百頁(yè),共135頁(yè)。報(bào)文的發(fā)送是CAN控制器SJA1000依據(jù)CAN協(xié)議規(guī)范自動(dòng)進(jìn)行的;主控制器要將發(fā)送的報(bào)文寫入SJA1000的發(fā)送緩沖區(qū),并將發(fā)送請(qǐng)求位(TransmitRequest)置1;發(fā)送過程既可以采用中斷方式,也可以采用查詢方式(查詢SJA1000控制段的狀態(tài)標(biāo)志)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用6.4.2數(shù)據(jù)的發(fā)送第一百零一頁(yè),共135頁(yè)。1)采用中斷方式的數(shù)據(jù)發(fā)送
第一百零二頁(yè),共135頁(yè)。
根據(jù)圖6-13給出的主流程,CAN的發(fā)送中斷和主控制器的外部中斷(用來(lái)聯(lián)接SJA1000的INT信號(hào))應(yīng)在報(bào)文發(fā)送開始前開放。中斷允許標(biāo)志在控制寄存器中定義(BasicCAN)或在中斷允許寄存器中定義(PeliCAN方式)。一旦SJA1000開始發(fā)送報(bào)文,發(fā)送緩沖器就被封鎖,不能寫入新的報(bào)文。因此主控制器必須查詢“發(fā)送緩沖器的狀態(tài)標(biāo)志”(狀態(tài)寄存器)是否可以將新的報(bào)文寫入。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零三頁(yè),共135頁(yè)。發(fā)送緩沖器閉鎖
主控制器將新報(bào)文暫存在它自己的存貯器中,并設(shè)置一個(gè)標(biāo)志,標(biāo)明一個(gè)報(bào)文等待發(fā)送。如何處理報(bào)文暫存器,由程序設(shè)計(jì)決定。這個(gè)暫存器也可以設(shè)計(jì)為暫存多個(gè)報(bào)文。當(dāng)發(fā)送完當(dāng)前報(bào)文后,CAN控制器將發(fā)出中斷請(qǐng)求,并進(jìn)入中斷服務(wù)程序處理暫存報(bào)文的發(fā)送。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零四頁(yè),共135頁(yè)。
針對(duì)CAN控制器中斷的響應(yīng),主控制器要查詢中斷的類型,是否是發(fā)送中斷,要查詢是否還有報(bào)文要發(fā)送。等待發(fā)送的一個(gè)報(bào)文將拷貝到發(fā)送緩沖器,并清除報(bào)文等待標(biāo)志。置發(fā)送請(qǐng)求標(biāo)志,啟動(dòng)SJA1000的發(fā)送過程。發(fā)送緩沖器釋放主控制器將要發(fā)送的新報(bào)文寫入發(fā)送緩沖器,并置“發(fā)送請(qǐng)求“標(biāo)志,啟動(dòng)SJA1000的發(fā)送過程。當(dāng)成功發(fā)送完一個(gè)報(bào)文后,CAN控制器就會(huì)發(fā)出一個(gè)發(fā)送中斷。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零五頁(yè),共135頁(yè)。查詢方式的報(bào)文發(fā)送圖6-14是查詢方式的報(bào)文發(fā)送流程,在查詢方式下CAN發(fā)送中斷應(yīng)被屏蔽。一但報(bào)文開始發(fā)送,發(fā)送緩沖器寫閉鎖,因此主控制器要查詢“發(fā)送緩沖器狀態(tài)”標(biāo)志,確定是否可以將一個(gè)新的報(bào)文寫入發(fā)送緩沖器(TXBuffer)
。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零六頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零七頁(yè),共135頁(yè)。若發(fā)送緩沖器寫閉鎖循環(huán)查詢狀態(tài)寄存器,主控制器進(jìn)入等待狀態(tài),直到發(fā)送緩沖器空。若發(fā)送緩沖器空主控制器將新報(bào)文寫入發(fā)送緩沖器TXBuffer,并置發(fā)送請(qǐng)求標(biāo)志TR=1,啟動(dòng)報(bào)文的發(fā)送過程。發(fā)送狀態(tài)TS和接收狀態(tài)RS可以用來(lái)檢測(cè)CAN控制器是否在空閑狀態(tài),發(fā)送緩沖器狀態(tài)TBS和發(fā)送完成狀態(tài)TCS標(biāo)志可以用來(lái)檢測(cè)報(bào)文是否成功發(fā)送。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零八頁(yè),共135頁(yè)。6.4.3中止發(fā)送
請(qǐng)求發(fā)送的報(bào)文可以用“中止發(fā)送”命令來(lái)中止發(fā)送過程,這一特性可以用來(lái)發(fā)送一個(gè)比已寫入發(fā)送緩沖器TXBuff中的報(bào)文更緊急的報(bào)文。圖6-15給出了中斷方式下的中止發(fā)送程序流程圖,這個(gè)流程圖演示了中止當(dāng)前報(bào)文而發(fā)送一個(gè)優(yōu)先級(jí)別高的報(bào)文,由于其它原因也要中止發(fā)送報(bào)文的程序流程可能有所不同。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百零九頁(yè),共135頁(yè)。
第一百一十頁(yè),共135頁(yè)。6.4.4接收?qǐng)?bào)文接收?qǐng)?bào)文是CAN控制器依據(jù)CAN協(xié)議規(guī)范自動(dòng)進(jìn)行,接收?qǐng)?bào)文被放在接收緩沖器RXBuffer中。一個(gè)報(bào)文是否可以傳送給主控制器,由狀態(tài)寄存器的接收緩沖器狀態(tài)RBS和接收中斷標(biāo)志確定(若中斷開放)。主控制器要將有效數(shù)據(jù)讀入其內(nèi)存,釋放接收緩沖器RXBuffer,并對(duì)報(bào)文進(jìn)行處理。傳送過程既可由中斷控制,也可通過查詢狀態(tài)寄存器標(biāo)志來(lái)完成。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十一頁(yè),共135頁(yè)。1)查詢方式的接收過程圖6-16給出了查詢方式接收?qǐng)?bào)文程序流程圖。CAN控制器的接收中斷應(yīng)屏蔽,主控制器讀SJA1000狀態(tài)寄存器(周期性的)、查詢接收緩沖器狀態(tài)標(biāo)志RBS,看接收緩沖器中是否有報(bào)文存在。
·若接收緩沖器空,主控制器繼續(xù)其它的程序,直到下一個(gè)查詢接收緩沖器狀態(tài)命令?!と艚邮站彌_器狀態(tài)標(biāo)志指示“滿”,則接收緩沖器中已接收到一個(gè)或多個(gè)報(bào)文。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十二頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十三頁(yè),共135頁(yè)。主控制器,讀取第一個(gè)報(bào)文然后發(fā)送釋放接收緩沖器RXbuffer命令,主控制器可以在處理完一個(gè)報(bào)文后,再查詢其他報(bào)文的存在,如圖6-16所示。但是主控制器也可以將所有報(bào)文通過查詢讀出后,再一起對(duì)報(bào)文進(jìn)行處理。在這種情況下,主控制器內(nèi)的報(bào)文存貯器應(yīng)有足夠的空間,可以存入多個(gè)報(bào)文。在傳輸并處理一個(gè)報(bào)文或所有報(bào)文后,主控制器可以繼續(xù)執(zhí)行其它的程序。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十四頁(yè),共135頁(yè)。2)中斷方式的接收由圖6-17給出的程序流程圖可以看出,CAN控制器的接收中斷和主控制器用于連接CAN控制器接收中斷信號(hào)的外部中斷源,應(yīng)在接收?qǐng)?bào)文開始前開放。接收中斷允許標(biāo)志在控制寄存器(BasicCAN模式)或在中斷允許寄存器(PeliCAN模式)。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十五頁(yè),共135頁(yè)。第一百一十六頁(yè),共135頁(yè)。若SJA1000已經(jīng)接收到了報(bào)文,也就是說該報(bào)文已經(jīng)通過認(rèn)可濾波并已存放到接收棧中,此時(shí)就會(huì)產(chǎn)生接收中斷。主控制器可以立即響應(yīng)中斷,將接收?qǐng)?bào)文讀入主控制器的報(bào)文緩沖器中,發(fā)出釋放CAN接收緩沖器命令。若接收棧(ReceiveFIFO)中還有報(bào)文,CAN控制器將產(chǎn)生新的接收中斷。因此,我們沒有必要在一次接收中斷響應(yīng)中,將接收棧中的所有報(bào)文一次性讀出。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十七頁(yè),共135頁(yè)。圖6-18中給出的程序流程是在一次接收中斷響應(yīng)循環(huán)中,將接收棧中的所有報(bào)文讀出。與圖6-17給出的流程不同之處在于,該程序流程在發(fā)出釋放緩沖器命令后,檢驗(yàn)狀態(tài)寄存器中接收緩沖器狀態(tài)位RBS,若狀態(tài)位為1(滿狀態(tài)),則繼續(xù)讀出下一報(bào)文,而不是直接中斷返回。正如圖6-17中所示,報(bào)文的全部接收過程均可以在中斷子程序中完成,不需要與主程序交換信息。如果方便的話,對(duì)接收?qǐng)?bào)文的處理程序也可以在中斷子程序中完成。
概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十八頁(yè),共135頁(yè)。概述系統(tǒng)構(gòu)成CAN通信的控制CAN通信的應(yīng)用第一百一十九頁(yè),共135頁(yè)。數(shù)據(jù)過載處理如果接收棧已滿,而此時(shí)又在接收一個(gè)新報(bào)文,則SJA1000的狀態(tài)寄存器中的數(shù)據(jù)過載狀態(tài)位將置1,通知主控制器數(shù)據(jù)過載。若中斷開放,CAN控制器將發(fā)出數(shù)據(jù)數(shù)據(jù)過載中斷。概述系統(tǒng)構(gòu)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 復(fù)混肥料在農(nóng)業(yè)現(xiàn)代化進(jìn)程中的角色考核試卷
- 智能交通管理系統(tǒng)的運(yùn)營(yíng)與維護(hù)考核試卷
- 體育表演跨國(guó)合作案例考核試卷
- 辦公設(shè)備培訓(xùn)課程考核試卷
- 推廣會(huì)議合同范本
- 工地噴錨合同范本
- 兼職項(xiàng)目加工合同范本
- 物聯(lián)網(wǎng)技術(shù)在智能家居領(lǐng)域的合同
- 年度項(xiàng)目進(jìn)度計(jì)劃及任務(wù)分配方案書
- 智慧農(nóng)業(yè)技術(shù)服務(wù)合同
- 2025年舞蹈培訓(xùn)機(jī)構(gòu)學(xué)員培訓(xùn)合同范本
- 2025年保險(xiǎn)銷售業(yè)務(wù)人員崗位職業(yè)技能資格知識(shí)考試題(附答案)
- 兒科護(hù)理模擬考試題與參考答案
- 注意缺陷與多動(dòng)障礙疾病科普幼兒心理健康教育課件
- 區(qū)域臨床檢驗(yàn)中心
- 2024年07月長(zhǎng)沙農(nóng)村商業(yè)銀行股份有限公司2024年招考3名信息科技專業(yè)人才筆試歷年參考題庫(kù)附帶答案詳解
- 中醫(yī)預(yù)防流感知識(shí)講座
- 船舶水下輻射噪聲指南 2025
- 2024年黑龍江哈爾濱市中考英語(yǔ)真題卷及答案解析
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2024版)宣傳畫冊(cè)
- 2025年中國(guó)配音行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來(lái)前景分析報(bào)告
評(píng)論
0/150
提交評(píng)論