版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、CAN 總 線 的 編 碼 方 式對(duì)CAN總線的常見編碼格式解析我們在進(jìn)行CAN總線的通訊設(shè)計(jì)過程中,對(duì)于通訊矩陣的建立,我們常常會(huì) 選擇一種編碼方式,最常見的編碼格式是 Intel格式和Motorola格式。但是往 往人們都是以一種習(xí)慣去選擇,究竟兩種格式具體的區(qū)別在哪里呢?我們需要 明白兩種格式對(duì)信號(hào)是如何排布的,又是按照什么順序進(jìn)行正確解析的。本篇 文章就是作者根據(jù)在整理通訊矩陣和 dbc文件中遇到的一些問題,提出的自己 的一些體會(huì)和見解,希望大家通過此篇文章對(duì)兩種格式有更加深刻的理解。我們在設(shè)計(jì)初期,都會(huì)首先選擇一種編碼格式,這種選擇大多都是根據(jù)設(shè)計(jì) 者自己的習(xí)慣,具體Intel格式和
2、Motorola格式哪個(gè)更有優(yōu)勢的問題,在這里 沒有區(qū)別。但是就使用者而言,需要對(duì)接收到數(shù)據(jù)幀進(jìn)行正確的解析,否則就 無法得到想要的信號(hào)。下面我們就來說一下兩種格式的區(qū)別。首先我們需要明確一點(diǎn),無論是Intel格式還是Motorola格式,在每個(gè)字節(jié) 中,數(shù)據(jù)傳輸順序都是從高位(msb)傳向低位(lsb )。如下圖所示。byte xbit(8* x+7)bit(8* x)msblsb注:x=0,1,2,3 7圖1一般主機(jī)廠設(shè)計(jì)人員在設(shè)計(jì)初期都會(huì)定義好字節(jié)的發(fā)送順序,定義Byte0為LSB, Byte7為MSB第一種情況:先發(fā)送 Byte0,然后Byte1到Byte7;第二種 情況:先發(fā)送Byt
3、e7,然后Byte6到Byte0。根據(jù)我了解到的大部分主機(jī)廠都會(huì) 采取第一種發(fā)送方法,很少會(huì)采取后者。我們在用CANoe的CANdb+編輯數(shù)據(jù)庫時(shí),肯定會(huì)用到如下圖所示的編輯界面。圖2結(jié)合工作中的出現(xiàn)的問題,有的網(wǎng)絡(luò)設(shè)計(jì)者會(huì)在排布信號(hào)的時(shí)候出現(xiàn)誤區(qū) 上圖中用的是比較常規(guī)的排布方式,即位在字節(jié)中的索引是從右至左,還有一 種是顛倒過來的,即從左至右。如下圖所示。01234567001234567e9101112131415231617W19202122232425262?2829303132333435葺373S394404142_4344必464754849505152535455$5657死5
4、9606162637圖3我們現(xiàn)在以第一種矩陣模式進(jìn)行說明。在這種情況下,如果主機(jī)廠在初期定 義先發(fā)送LSR再發(fā)送的MSB勺形式,那么數(shù)據(jù)信號(hào)可以按照從上到下,從左 到右的順序發(fā)送,非常方便,接收器解析起來也比較容易。如果主機(jī)廠定義先 發(fā)送MSBR發(fā)送LSB的形式,那樣數(shù)據(jù)傳輸比較復(fù)雜,所以一般都不建議用這 種方案。至于設(shè)計(jì)者常出現(xiàn)的錯(cuò)誤我們在下文中會(huì)重點(diǎn)說明,下面我們先了解 一下Intel格式和Motorola格式在CANdb+中的區(qū)別。、Motorola編碼格式:如果我們選擇使用Motorola編碼格式,那需要知道它在 CANdb+中的3種信 號(hào)排布方式。這三種排布的主要區(qū)別在于它們的起始位
5、不同。我們假設(shè)一個(gè)信 號(hào)的位長為12,那么它就要跨字節(jié)排布。在 Motorola格式中的第一種排布形 式為Motorola Forward LSB ,即從小端開始,它的起始位為 lsb (16);第二 種排布形式為Motorola Forward MSB ,即從大端開始,它的起始位為 msb(11);第三種排布形式為 Motorola Backward ,它的起始位為第8位,這種 形式基本不采用,因?yàn)榕挪家?guī)律相對(duì)于前兩種比較復(fù)雜。如下圖所示;7G5432100msb1-lsb23圖4針對(duì)上述Motorola格式第一種排布形式,信號(hào)的起始位為高字節(jié)的低位。在 CANdb+中的具體體現(xiàn)如圖所示。圖
6、5在CANdb+中,無法區(qū)別這三種排布形式,它的起始位也是自動(dòng)定義的,所 以我們在設(shè)計(jì)通訊矩陣時(shí),一般都會(huì)采用第一種,即 Motorola Forward LSB 只是有的工程師根據(jù)自己的個(gè)人習(xí)慣,去改變起始位,但我們需要明確一點(diǎn)就 是,在Canoe軟件中,一種格式的信號(hào)排布是沒有區(qū)別的。二、Intel編碼格式如果我們選擇使用Intel編碼格式,它在CANdb+也有兩種信號(hào)排布方式。我們假設(shè)一個(gè)信號(hào)位長為12,它也是要跨字節(jié)排布 第一種排布形式為Intel Standard ,即標(biāo)準(zhǔn)形式,它的起始位為lsb (12)信號(hào)的起始位為低字節(jié)的低位。如下圖所示:165432100l$b1rnsb23
7、圖6圖7第二種排布形式為Intel Sequential ,即順序排布形式或者叫顛倒排布。這種 形式不太常用,但我們也需要了解,它的起始位為 lsb (11)。如下圖所示:012345&10e一-lsb1msb一-23圖8以上文字介紹了當(dāng)信號(hào)的位長超過一個(gè)字節(jié)的情況下,信號(hào)分別以Motorola編碼格式和Intel編碼格式排布時(shí)的區(qū)別。我們現(xiàn)在假設(shè)一個(gè)信號(hào)的位長為4,觀察在CANdb+信號(hào)的排布有什么區(qū)別。Motorola編碼格式下的信號(hào)排布:(綠色信號(hào))圖9Intel編碼格式下的信號(hào)排布:(綠色信號(hào))F INo MutiplBwor -圖10由圖可知,兩種格式的起始位不同,但是他們的排布方式
8、相同,都是信號(hào)的 高位放在該字節(jié)的高位(msbb,信號(hào)的低位放在該字節(jié)的低位(lsb )。所 以,當(dāng)一個(gè)信號(hào)的位長小于8時(shí),那么兩種編碼格式?jīng)]有區(qū)別。如果信號(hào)的位 長大于8,那么兩種編碼格式將會(huì)產(chǎn)生很大差別。這是我們在網(wǎng)絡(luò)通訊設(shè)計(jì)初 期必須要掌握的。下面我們說一下一些工程師在做通訊矩陣的設(shè)計(jì)時(shí),常會(huì)出現(xiàn)的幾個(gè)問題:.在編寫通訊矩陣時(shí),在起始位的編寫中,常會(huì)將 Intel格式和Motorola格 式弄混。例如:如下圖所示的通訊矩陣位題序 bit orderMSBTT TT T TT T-4LSB字革頤序13yte orderbit 7bit 6bitsbit 4bit 3bit 2bit1bit
9、OMSBByte 0165A32101Byte 1151413J211 j10:g1Byte 223222120這二81G_IByte 3131130292826 J25R4JByte 4 936373635343332XByte 547464544434241I 40JByte 95554535251504948LSBByte 76362610059585756如果一個(gè)信號(hào)的位長為4,那么若是Motorola編碼格式,那它的起始位就是4;而若是Intel編碼格式,那它的起始位就是 00.在CANdb+中進(jìn)行通訊矩陣的調(diào)整時(shí),首先應(yīng)明確信號(hào)選取的編碼格式,然 后進(jìn)行拖曳,有的工程師常常在沒有區(qū)
10、分編碼格式,憑借主觀感覺對(duì)通訊矩 陣進(jìn)行調(diào)整,這往往會(huì)導(dǎo)致信號(hào)的傳輸錯(cuò)誤。.在信號(hào)跨字節(jié)排布中,未明確 msb和lsb ,在拖曳過程中會(huì)出現(xiàn)錯(cuò)誤。綜上所述,Motorola編碼格式和Intel編碼格式主要區(qū)別還是在信號(hào)位長大 于8或者信位長不超過8但是跨字節(jié)的情況下,前者的規(guī)則:該信號(hào)的高位(S_msb將被放在低字節(jié)(MSB的高位,信號(hào)的低位(S_lsb)將被放在高字 節(jié)(LSB)的低位;后者的規(guī)則:該信號(hào)的高位(S_msb將被放在高字節(jié)(MSB的高位,信號(hào)的低位(S_lsb)將被放在低字節(jié)(LSB)的低位。希望大家能從此篇文章中收獲一些經(jīng)驗(yàn)。文中術(shù)語解釋及定義:.信號(hào)的高位,即最能表達(dá)信號(hào)特性的因子,比如:車速信號(hào)500km/h按照給定的公式,轉(zhuǎn)換成十六進(jìn)制數(shù)為 0 x6A5,因?yàn)?代表的數(shù)量級(jí)最大 (162),那么其中6就是其信號(hào)的高位。.信號(hào)的低位,即最不能表達(dá)信號(hào)特性的因子,比如:車速信號(hào)500km/h按照給定
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)療行業(yè)廣告宣傳制作合同3篇
- 二零二五年度建筑業(yè)離崗創(chuàng)業(yè)合同2篇
- 課程設(shè)計(jì)寫什么
- 二零二五年地產(chǎn)廣告折頁創(chuàng)意設(shè)計(jì)、印刷與售后合同2篇
- 2025年演講稿保護(hù)環(huán)境范文(2篇)
- 二零二五年度新能源廣告牌匾安裝與節(jié)能服務(wù)合同3篇
- 2025年醫(yī)院控?zé)煿ぷ饔?jì)劃模版(4篇)
- 企業(yè)公司目標(biāo)管理制度范文(2篇)
- 消防專職干部職責(zé)模版(3篇)
- 2025年人教版選擇性必修2生物下冊階段測試試卷
- 線上家長會(huì)模板
- 2024年200MW-400MWh電化學(xué)儲(chǔ)能電站設(shè)計(jì)方案
- 2024數(shù)據(jù)采集合同模板
- SH/T 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術(shù)標(biāo)準(zhǔn)(正式版)
- (正式版)JBT 7248-2024 閥門用低溫鋼鑄件技術(shù)規(guī)范
- 膽總管結(jié)石伴膽管炎的護(hù)理查房
- 水閘閘門運(yùn)行方案
- 消費(fèi)型股東招募計(jì)劃書
- 二年級(jí)上冊豎式計(jì)算200題附答案
- 統(tǒng)編版三年級(jí)語文下冊 第五單元 大單元教學(xué)設(shè)計(jì)
- 申請(qǐng)拘留被執(zhí)行人的文件
評(píng)論
0/150
提交評(píng)論