


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、哥很郁悶,為了 CAN研究了不少,看了不少資料,現(xiàn)在我給大家總結(jié)一下先看看工作原理當(dāng)CAN總線上的一個節(jié)點站發(fā)送數(shù)據(jù)時,它以報文的形式播送給網(wǎng)絡(luò)中所 有節(jié)點,對每個節(jié)點來說,無論數(shù)據(jù)是否是發(fā)給自己的,都對其接收。每組報 文開頭的11位字符為標(biāo)識符,定義了報文的優(yōu)先級,這種報文格式成為面向內(nèi) 容的編制方案。同一系統(tǒng)中標(biāo)識符是唯一的,不可能有兩個站發(fā)送具有相同標(biāo) 識符的報文,當(dāng)幾個站同時競爭總線讀取時,這種配置十分重要。大體的工作原理我們搞清了,但是根本的協(xié)議我們還要花一番功夫。下面介 紹一個重要的名詞,“顯性“和隱性“在我看到的很多文章里,有很多顯性和隱性的地方,為此我頭痛不已,最終 我把它們徹
2、底弄明白了。首先CAN數(shù)據(jù)總線有兩條導(dǎo)線,一條是黃色的,一條是綠色的。分別是CAN_High 線和 CAN_Low 線當(dāng)靜止?fàn)顟B(tài)時,這兩條導(dǎo)線上的電平一樣。這個電平稱為靜電平。大約為2.5伏。 這個靜電平狀態(tài)就是 隱形狀態(tài),也稱隱性電平。也就是沒有任何干擾的時候的狀 態(tài)稱為隱性狀態(tài)當(dāng)有信號修改時,CAN_High線上的電壓值變高了,一般來說 會升高至少1V,而CAN_Low線上的電壓值會降低一個同樣值,也是 1v,那么 這時候。CAN_High就是2.5v+1v=3.5v,它就處于激活狀態(tài)了。而 CAN_Low降 為 2.5v-1v=1.5v??梢钥纯催@個圖在顯性狀態(tài)時* CAttHighat
3、的電壓 升垂釣3 5V在建性狀態(tài)時、這兩條馥的電壓劫 為約2 5譏靜電平S269 005在顯性狀態(tài)時 CAN-Lw線的電Q. 陣至約5由此我們得到在隱性狀態(tài)下,CAN_High線與CAN_Low沒有電壓差,這樣我們看到?jīng)]有任 何變化也就檢測不到信號。但是在顯性狀態(tài)時,電壓差最低為2V,我們就可以利用這種變化才傳輸數(shù)據(jù)了。所以出現(xiàn)了那些幀,那些幀中的場,那些場中的 在總線上通常邏輯1表示隱性。而0表示顯性。這些1啊,0啊,就可以利用起 來為我們傳數(shù)據(jù)了。利用這種電壓差,我們可以接收信號。一般來說,控制單元通過收發(fā)器連接到 CAN驅(qū)動總線上,這個收發(fā)器顧名思 義,可發(fā)送,可接收內(nèi)有一個接收器,該接
4、收器是安裝在接收一側(cè)的差動信號放大器。然后,這個放大器很自然地就放大了 CAN_High和CAN_Low線的電平差,然后傳到接收區(qū)。如以下列圖下面我們進(jìn)入重點難點。報文所謂報文,就是CAN總線上要傳輸?shù)臄?shù)據(jù)報,為了平安,我們要給我們傳輸?shù)?數(shù)據(jù)報編碼定一下協(xié)議,這樣才能不容易出錯,所以出現(xiàn)了很多的幀,以及仲 裁啊,CRC效驗。這些都是難點。識別符的概念。識別符顧名思義,就是為了區(qū)分不同報文的可以鑒別的好多字符位。有標(biāo)準(zhǔn)的, 和擴(kuò)展的。標(biāo)準(zhǔn)的是11位,擴(kuò)展的是29位。他有一個功能就是可以提供優(yōu)先級, 也就是決定哪個報文優(yōu)先被傳輸,報文標(biāo)識符的值越小,報文具有越高的優(yōu)先 權(quán)。CAN的報文格式有兩種
5、,不同之處其實就是識別符長度不同, 具有11位識別符 的幀稱為標(biāo)準(zhǔn)幀,而還有29位識別符的幀為擴(kuò)展幀,CAN報文有以下4個不同 的幀類型。分別是1數(shù)據(jù)幀:數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌鳌?遠(yuǎn)程幀:總線節(jié)點發(fā)出遠(yuǎn)程幀,請求發(fā)送具有同一標(biāo)識符的數(shù)據(jù)幀3錯誤幀:任何節(jié)點檢測到總線錯誤就發(fā)出錯誤幀4過載幀:過載幀用已在先行的后續(xù)的數(shù)據(jù)幀或遠(yuǎn)程幀之間提供一 附加的延時我們先研究數(shù)據(jù)幀吧。一,數(shù)據(jù)幀由7個不同位場組成。這里的位場,就是不同位的組合,這名字起的很爛,讓人看了感覺很抽象。我們 來看看這些個不同的位場吧。一開始是一位幀起始,也叫SOF。它用顯性位表示,也就是0.它告訴我們,兩個線上有電壓差了,
6、也就是有數(shù)據(jù)了。這個幀起始看起來只有一位,起始不簡單了。 為了讓所有的分站都同步于發(fā)送報文的發(fā)送站, 好接收數(shù)據(jù),有很多要考慮的地 方。然后下一個場是 仲裁場。這個仲裁場是個難點。但是不要怕,有我在,你會很明 白地搞定的。這個仲裁很抽象,其實在這里就是為了解決一個問題。如果2個或2個以上的單 元同時開始傳送報文,那么就會有總線訪問沖突。那么仲裁機(jī)制就是用來根據(jù)標(biāo) 識符優(yōu)先級來一個一個的去掉低級別的數(shù)據(jù)。 我們可以詳細(xì)的描述這場生動的爭 搶總線的戰(zhàn)斗。問題是多個數(shù)據(jù)發(fā)往總線,總線電平不會累積嗎?標(biāo)識符越低, 顯性位越多,是硬件仲裁的還是一種軟件機(jī)制 當(dāng)總線處于空閑狀態(tài)時呈隱性電平,此時任何節(jié)點都
7、可以向總線發(fā)送顯性電平作 為幀的開始。2個或2個以上的節(jié)點同時發(fā)送開始爭搶總線,但是總線只能被一個人搶走??偩€只屬于一個他。這時候到底怎么決定誰留下,誰滾蛋呢。我們開始考慮,思索,我們以 前定義了標(biāo)識符,標(biāo)識符有優(yōu)先級,它越小,它優(yōu)先級越高。那么怎么實現(xiàn)的呢??聪旅姘?首先搞明白兩點,一 下面的圖 低波形代表0,高波形代表1二 當(dāng)隱性碰到顯性,就變?yōu)?顯性。如以下列圖,節(jié)點 A和節(jié)點B的標(biāo)識符的第10、9、8位電平相同,因此兩個節(jié)點偵聽到的信 息和它們發(fā)出的信息相同。 第7位節(jié)點B發(fā)出一個“ 1但從節(jié)點上接收到的消息卻是“0,為什么呢,因為 A節(jié)點同時發(fā)出顯性位,讓總線也變成顯性了,也就是 0
8、。節(jié)點B會退出 發(fā)送處于單純監(jiān)聽方式而不發(fā)送數(shù)據(jù);節(jié)點A成功發(fā)送仲裁位從而獲得總線的控制權(quán),繼而發(fā)送全部消息。 總線中的信號持續(xù)跟蹤最后獲得總線控制權(quán)發(fā)出的報文,本例中節(jié)點A的報文將被跟蹤。這種非破壞性位仲裁方法的優(yōu)點在于,在網(wǎng)絡(luò)最終確定哪個節(jié)點被傳送 前,報文的起始局部已經(jīng)在網(wǎng)絡(luò)中傳輸了,因此具有高優(yōu)先級的節(jié)點的數(shù)據(jù)傳輸沒有任何 延時。在獲得總線控制權(quán)的節(jié)點發(fā)送數(shù)據(jù)過程中,其他節(jié)點成為報文的接收節(jié)點,并且不會在總線再次空閑之前發(fā)送報文自己也算接收節(jié)點?是的,總線嘛 start id 10 id8 id7 id6節(jié)點A1_1ri,d9i-11 1Rx I總線在這逐位的比較中,最終節(jié)點 B因為第
9、七位的偏差丟掉了總線。從此單純監(jiān)聽, 江山就拱手讓給了節(jié)點A 了。這就是仲裁機(jī)制這里我們涉及到總線值 總線值總線有二個互補(bǔ)的邏輯值: 顯性或 隱性 顯性位和 隱性位同時傳 送時,總線的結(jié)果值為 顯性。比方,在總線的 寫與執(zhí)行時,邏輯0代表 顯 性等級,邏輯1代表 隱性等級。上面我們說過,報文有兩種格式,標(biāo)準(zhǔn)和擴(kuò)展。這里,不同的格式仲裁場是不一 樣的。標(biāo)準(zhǔn)格式下,仲裁場由11位識別符和RTR位組成。但在擴(kuò)展格式里,包 括29位識別符,SRR位,IDE位,RTR位。RTR位。Remote Tranmission Request BIT全稱為 遠(yuǎn)程發(fā)送請求位。它在數(shù)據(jù)幀 里必須為顯性0,但在遠(yuǎn)程幀里
10、為隱性1。我暈,為什么這么搞呢,不急,先留 著這個問題。SRR位,替代遠(yuǎn)程請求位,SRR是一隱性位,也就是1,它在擴(kuò)展格式的標(biāo)準(zhǔn)幀 RTR位位置,那么標(biāo)準(zhǔn)幀怪不得優(yōu)先于擴(kuò)展幀了, 因為在傳輸完11位標(biāo)識符之 后擴(kuò)展幀的后18位在最后發(fā)送,先發(fā)送11位標(biāo)識符,輪到標(biāo)準(zhǔn)幀的RTR 位和擴(kuò)展幀的SRR位了。這時候,標(biāo)準(zhǔn)幀的RTR為顯性,而擴(kuò)展幀SRR為隱 性,這樣,總線自然就被標(biāo)準(zhǔn)幀占據(jù)。同時上面那個問題,也一目了然了, CAN 總線協(xié)議設(shè)計者,肯定是設(shè)計了數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀所以IDE全稱識別符擴(kuò)展位(Identifier Extension Bit),它屬于擴(kuò)展格式的仲裁場標(biāo)準(zhǔn)格式的控制場標(biāo)準(zhǔn)格式
11、的IDE位為顯性,擴(kuò)展格式里IDE位為隱性。這樣擴(kuò)展格式的數(shù)據(jù)幀 優(yōu)先級又落下了一截??刂茍隹刂茍鲇?位組成。標(biāo)準(zhǔn)的跟擴(kuò)展的又不同。標(biāo)準(zhǔn)的格式里的幀先是IDE位,然后保存位r0,然后數(shù)據(jù)長度代碼共四位,分別是 DLC3,DLC2,DLC1, DLC0而擴(kuò)展格式里,IDE替換為r1保存位,其余不變。數(shù)據(jù)長度代碼指示了數(shù)據(jù)場里的字節(jié)數(shù)量。數(shù)據(jù)場:數(shù)據(jù)場由發(fā)送數(shù)據(jù)組成,可以為 08個字節(jié),從高位開始MSB丨先發(fā)送。CRC場包括CRC序列,和CRC界定符。這個CRC序列又是一個難點,具體什么是 CRC序列呢,CRC即循環(huán)冗余校驗碼Cyclic Redundancy Check:是數(shù)據(jù)通信領(lǐng)域中最常用的
12、一種過失校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。生成CRC碼的根本原理:任意一個由二進(jìn)制位串組成的代碼都可以和 一個系數(shù)僅為 和 取值的多項式對應(yīng)。例如:代碼 1010111對應(yīng)的多項式為 x6+x4+x2+x+1,而多項式為 x5+x3+x2+x+1對應(yīng)的代碼 101111。參考一下下面的例題 . 自已再領(lǐng)悟一下吧 ! 信息位為 1100,生成多項式 G(x)=x3+x+1,求 CRC碼。M(x) = 1100 M(x)*x3 = 1100000 G(x) = 1011 M(x)*x3/ G(x) = 1110 + 010 /1011 R(x) = 010 CRC碼為:M(x)
13、*x 3+R(x)=1100000+010 =1100010其原理是:CRC碼一般在k位信息位之后拼接r位校驗位生成。編碼 步驟如下: 1 將待編碼的 k 位信息表示成多項式 M(x) 。 2將 M(x) 左移 r 位,得到 M(x)*xr 。 3用 r+1 位的生成多項式 G(x) 去除 M(x)*xr 得到余 數(shù)R(x)。4將M(x)*xr與R(x)作模2加,得到CRC碼。應(yīng)答場應(yīng)答場ACK長度為2個位,包含應(yīng)答間隙和應(yīng)答界定符,在 ACK場里,發(fā) 送站發(fā)送兩個隱性位。 當(dāng)接收器正確接收到有效地報文, 接收器就會在應(yīng)答間隙 期間 (發(fā)送 ACK 信號 )向發(fā)送器發(fā)送一顯性位以示應(yīng)答 。二
14、遠(yuǎn)程幀通過發(fā)送遠(yuǎn)程幀, 總線的節(jié)點發(fā)出遠(yuǎn)程幀, 請求以前發(fā)送給它數(shù)據(jù)幀的節(jié)點再發(fā) 送一遍。具體發(fā)送哪個數(shù)據(jù)幀,由遠(yuǎn)程幀的標(biāo)識符決定。遠(yuǎn)程幀的 RTR 是隱性的。沒有數(shù)據(jù)場,其余都與數(shù)據(jù)幀相同 。錯誤幀錯誤幀由兩個不同的場組成, 第一個場是不同站提供的錯誤標(biāo)志的疊加, 第二個 場是錯誤界定符。1 錯誤標(biāo)志 有兩種形式的錯誤標(biāo)志, 主動地和被動的。 這就讓人很明白了。 也就是說主動發(fā) 出錯誤的節(jié)點發(fā)出錯誤幀時,就是主動地錯誤標(biāo)志,而接收錯誤幀的節(jié)點,就 發(fā)出被動錯誤標(biāo)志 。主動地錯誤標(biāo)志由 6 個連續(xù)的顯性位組成。被動的錯誤標(biāo)志由 6 個連續(xù)的隱形位組成,除非被其他節(jié)點的顯性位重寫。 檢測到錯誤條
15、件的錯誤激活的站通過發(fā)送主動錯誤標(biāo)志指示錯誤。 這個錯誤幀也 可以看做有著跟數(shù)據(jù)幀類似的場結(jié)構(gòu),錯誤標(biāo)志的形式顯然破壞了從幀起始到 CRC 界定符的位填充規(guī)那么檢測到 5 個相同的位,就插入一個補(bǔ)充位,但是錯 誤幀卻有 6 個相同的位,顯然破壞了 ?;蛘咂茐牧?ACK 場或幀結(jié)尾場的固定 形式。所有其他的站由此檢測到錯誤條件。 并于此同時發(fā)送錯誤標(biāo)志。 并且假設(shè) 有很多站都有自己的錯誤發(fā)送, 它們會都發(fā)送主動錯誤標(biāo)志, 這種顯性標(biāo)志顯然 被疊加在一起。(2)錯誤界定符錯誤界定符包括 8個“隱性的位。錯誤標(biāo)志傳送了以后, 每一個節(jié)點就發(fā)送一個“隱性的位, 并一直監(jiān)視總線直到檢測 出一個“隱性的位
16、為止,然后就開始發(fā)送其余 7個“隱性位。四 過載幀過載幀包括 2 個位場:過載標(biāo)志和過載界定符 有三種過載的情況,這三種情況都會引起過載標(biāo)志的發(fā)送1 接收器的內(nèi)部情況此接收器對于下一數(shù)據(jù)幀或遠(yuǎn)程幀需要一定的延時 這種情況引發(fā)的過載幀只允許起始于所期望間歇的第一個位時間。2在間歇的第 1 和第 2字節(jié)檢測到一個顯性位 這里有個間歇的概念。我們可以講講。間歇屬于幀間空間的一局部。它包含 三個隱性位。 間歇期間, 所有的站不允許傳送數(shù)據(jù)幀或遠(yuǎn)程幀。 它唯一要做的就是標(biāo)示一個過載條件。3如果CAN節(jié)點在錯誤界定符或過載界定符的第 8位采樣到一個顯性位,有了上面的情況,那么節(jié)點會發(fā)送一個過載幀。錯誤計數(shù)
17、器不會增加。對于情況2, 3引發(fā)的過載幀應(yīng)起始于所檢測到顯性位之后的位。通常為了延時下一個數(shù)據(jù)幀或遠(yuǎn)程幀,兩種過載幀均可產(chǎn)生。過載標(biāo)志由6個顯性位組成。過載標(biāo)志的所有形式和主動錯誤標(biāo)志一樣。過載標(biāo)志的形式破壞了間歇場的固定形式, 因此,所有其他的站都檢測到過載 條件并于此同時發(fā)出過載標(biāo)志。過載界定符8個隱形位幀間空間數(shù)據(jù)幀或遠(yuǎn)程幀與先行幀的隔離是通過幀間空間實現(xiàn)的。 無論此先行幀類 型如何。所不同的是過載幀與錯誤幀之間沒有幀間空間。 多個過載幀之間也不是 由幀間空間隔離的。幀間空間包括間歇,總線空閑的位場。如果錯誤被動的站已作為前一報文的發(fā) 送器,那么其幀空間除了間歇,總線空閑外,還包括稱作掛起傳送的位場。t. J圖9 口非“錯誤認(rèn)可可空間 對于作溝前一報文發(fā)逆囂的“戳吳認(rèn)可的節(jié)點其幀間空間如圖丄14所示:幀憤間空間 幀何戳場曹停覽送場
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨終關(guān)懷合同范例
- 制造加工勞務(wù)合同范例
- 道路模板施工方案
- 出租培訓(xùn)合同范例
- 買賣拆除合同范例
- 人才入職合同范例范例
- 中止合同范例
- 個人銷售手機(jī)合同范例
- 青少年中華民族共同體意識與主觀幸福感的關(guān)系
- 基于深度學(xué)習(xí)的電機(jī)故障特征分析及診斷
- 首檢培訓(xùn)課件
- TSG 07-2019電梯安裝修理維護(hù)質(zhì)量保證手冊程序文件制度文件表單一整套
- GB/T 44959.2-2024法庭科學(xué)第2部分:檢驗對象的識別、記錄、收集、運輸和保存
- 小學(xué)數(shù)學(xué)一年級下冊期中試卷及答案-北師大版-2024-2025學(xué)年
- GB 4404.1-2024糧食作物種子第1部分:禾谷類
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- 診所與醫(yī)生合作協(xié)議
- 西嶺雪山旅游區(qū)總體規(guī)劃終稿文本(09-08-02)
- 一般固廢危廢安全管理制度
- 三大戰(zhàn)役完整版本
- DB11T 353-2021 城市道路清掃保潔質(zhì)量與作業(yè)要求
評論
0/150
提交評論