




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第第頁汽車電子中常用的通信協(xié)議—控制器局部網(wǎng)介紹
01首語
隨著人們對汽車功能需求越來越多樣化、(智能)化,汽車的零部件(ECU,Electron(ic)ControlUnit)的數(shù)量也越來越多、越來越復(fù)雜,像(自動駕駛)、主動安全等功能加入,普通汽車搭載ECU數(shù)量大約為50-100個,而豪華智能汽車的ECU數(shù)量平均可達到300個以上。在如此龐大數(shù)量的ECU的汽車中,各個ECU之間是如何進行信息交換、共同協(xié)作,以及ECU是如何完成在線升級(OTA,OnThe(Ai)r)的呢?本文將介紹(汽車電子)中常用的(通信)協(xié)議——(控制器)局部網(wǎng)((CAN),ControllerAreaNetw(or)k)。
02CAN基礎(chǔ)概念介紹
CAN(通信技術(shù))是由(博世)((BOSCH))公司于1986年開發(fā)出面向汽車的一種通信協(xié)議,隨后通過ISO-11898和ISO-11519對其進行標準化:
1、ISO-11898:定義了通信速率為125kbps~1Mbps的高速CAN通信標準,屬于閉環(huán)總線,傳輸速率可達1Mbps,總線長度≤40米。
2、ISO-11519:定義了通信速率為10~125kbps的低速CAN通信標準,屬于開環(huán)總線,傳輸速率為40kbps時,總線長度可達1000米。
CAN(通信網(wǎng)絡(luò))是歐洲汽車網(wǎng)絡(luò)的標準協(xié)議,在發(fā)展過程中,其高性能和可靠性被廣泛認可,所以也會被使用在(工業(yè)自動化)、船舶、醫(yī)療設(shè)備、(工業(yè))設(shè)備中。
CAN是異步通信,與(I2C)、SPI這類具有(時鐘)(信號)線的同步通信協(xié)議不同,CAN通信只有兩根信號線CAN_HIGH和CAN_LOW來組成一對差分信號線,下圖是在汽車電子中常見的ECU在CAN(網(wǎng)絡(luò))的連接圖:
圖1ECU連接圖
差分信號
差分信號又稱差模信號,與傳統(tǒng)使用單根信號線電壓表示邏輯的方式有區(qū)別,(晶體管)-晶體管邏輯電平(TTL)信號就是用的單根信號線的電壓值來表示邏輯值,其電平信號規(guī)定:+5V等價于邏輯1,0V等價于邏輯0。而使用差分信號傳輸時,需要兩根信號線,這兩個信號線的振幅相等,相位相反,通過兩根信號線的電壓差值(Vdiff,VoltageDifference)來表示邏輯0和邏輯1,Vdiff=CAN_H-CAN_L。CAN差分信號如下圖所示。
圖2差分信號
CAN總線為隱性電平時代表邏輯1,CAN_H和CAN_L的電平為2.5V(電位差Vdiff為0V);
CAN總線為顯性電平時代表邏輯0,CAN_H和CAN_L的電平分別是3.5V和1.5V(電位差Vdiff為2.0V左右)。
位時序
前面提到CAN是一種異步通信,沒有時鐘信號線,其通信過程類似串口通信(SerialCommunications),CAN控制器之間通過事先約定好的時序進行通信,但CAN通信還會采用位同步(BitSynchronization)的方式來抗干擾、吸收誤差,從而使得CAN控制器可以對總線信號進行正確采樣,保證正常通信。
CAN協(xié)議把每一個數(shù)據(jù)位的時序分解成如圖3所示的Sync_Seg段、Prop_Seg段、Phase_Seg1段、Phase_Seg2段,這四段的長度加起來為一個CAN數(shù)據(jù)位的長度。最小的時間單位是Tq((Ti)meQuantum),一個完整的位由8-25個Tq組成。
圖3位時間
Sync_Seg(同步段)若通訊節(jié)點(檢測)到總線上信號的跳變沿被包含在Sync_Seg段的范圍之內(nèi),則表示節(jié)點與總線的時序是同步的,當節(jié)點與總線同步時,采樣點(SamplingPoint)采集到的總線電平可被認為該位的電平。Sync_Seg的大小固定為1Tq。
Prop_Seg(傳播時間段)這個時間段是用于補償網(wǎng)絡(luò)的物理延時時間。是總線上輸入(比較器)延時和輸出(驅(qū)動器)延時總和的兩倍。Prop_Seg段的大小可以為1-8Tq。
Phase_Seg1(相位緩沖段1)這個時間段主要用來補償邊沿階段的誤差,它的時間長度在重新同步的時候可以加長。Phase_Seg1段的初始大小可以為1-8Tq。
Phase_Seg2(相位緩沖段2)這個時間段也是用來補償邊沿階段誤差的,它的時間長度在重新同步時可以縮短。Phase_Seg2段的初始大小可以為2-8Tq。
CAN(收發(fā)器)
ECU需要從總線中獲取CAN幀中的信號電平,轉(zhuǎn)化為邏輯電平,也就是將圖2差分信號中的顯性電平和隱性電平轉(zhuǎn)換為對應(yīng)的邏輯電平0和邏輯電平1,這樣在總線中的CAN幀就被轉(zhuǎn)換成程序中使用的CAN報文了。
這個步驟就是由CAN收發(fā)器(CANTransceiver)來完成的,如圖1ECU連接圖所示,其位于(MCU)和CANNetwork之間,接收CAN總線上的CAN幀相關(guān)的信號電平并將其轉(zhuǎn)化為邏輯信息電平轉(zhuǎn)發(fā)給CAN控制器,并且也接收從CAN控制器傳輸過來的邏輯電平信息并將其轉(zhuǎn)化為信號電平傳從到CAN總線上。
03CAN幀
CAN有五種幀的類型:數(shù)據(jù)幀(DataFrame)、遠程幀(Remo(te)Frame)、錯誤幀(ErrorFrame)、間隔幀(CanIntervalFrame)和過載幀(Overlo(ad)Frame),其中最復(fù)雜的幀類型為數(shù)據(jù)幀,其作用是傳輸數(shù)據(jù),數(shù)據(jù)長度是可變的,一個經(jīng)典CAN(ClassicalCAN)數(shù)據(jù)幀可傳輸0-8個字節(jié)的數(shù)據(jù)(數(shù)據(jù)內(nèi)容長度,不含CAN幀的控制信息),而一個CANFD(CANwithFlexibleDatarate)的可傳輸?shù)臄?shù)據(jù)長度可達64個字節(jié),后文提到的CAN為經(jīng)典CAN。CAN幀會因其ID位數(shù)的不同而不同,以ID位數(shù)分為兩類:標準幀(11位CANIdentifier)和擴展幀(29位CANIdentifier)。
標準幀
如圖4所示,一個帶有11位CANIdentifier的幀以SOF(StartOfFrame)開始,以EOF(EndOfFrame)結(jié)束,其中包含五個區(qū)域,分別為仲裁區(qū)(ArbitrationField)、控制區(qū)(ControlField)、數(shù)據(jù)區(qū)(DataField)、校驗區(qū)(CRCField)、應(yīng)答區(qū)((AC)KField)。
圖4標準數(shù)據(jù)幀
仲裁區(qū)這個區(qū)域包含CANIdentifier的[28:18],總共11位,其范圍為0x000-0x7FF,CANIdentifier的值越小會在CAN總線仲裁時擁有更高的優(yōu)先級(Priority)。RTR位用來指示該幀是否位遠程幀(用來區(qū)分沒有數(shù)據(jù)的數(shù)據(jù)幀和遠程幀)。
控制區(qū)IDE位用來指示該幀是否為擴展幀;r0為保留位;DLC指示該幀數(shù)據(jù)區(qū)的長度。
數(shù)據(jù)區(qū)這里放著0-8個字節(jié)需要傳輸?shù)臄?shù)據(jù)。
校驗區(qū)CRC(CyclicRedundancyCheck):循環(huán)冗余校驗;Delimiter:分隔符。
應(yīng)答區(qū)ACKSLOT:應(yīng)答槽,發(fā)送方會將此位作為隱性電平發(fā)送,接收方成功接收后會將此位重寫,以此來讓發(fā)送方知道此幀是否被成功發(fā)送。
擴展幀
設(shè)計擴展幀的目的是為了完成對更長的CANIdentifier的傳輸,所以擴展幀中的CANIdentifier使用到了ID[28:0],一共是29位,如圖5所示,擴展幀和標準幀大致相同,只有幾個地方有一些小的區(qū)別。
圖5擴展數(shù)據(jù)幀
SRR位((Sub)stituteRemoteRequest):替代遠程請求位
r0/r1位:保留位
04CAN控制器
雖然有相應(yīng)的標準來規(guī)范CAN通信,但是不同的(芯片)(廠商)對其功能的具體實現(xiàn)卻各不相同,不同點主要在CAN外設(shè)在芯片中的(寄存器)設(shè)計,各自驅(qū)動程序自然也有區(qū)別,但在CAN總線上發(fā)出和接收的CAN幀都和標準規(guī)定的一致。下面是一些具體的例子來描述CAN控制器的大致工作機制。
(Cypress)TraveoII系列芯片是(英飛凌)專為汽車應(yīng)用設(shè)計的32位MCU,其CAN控制器支持經(jīng)典CAN和CANFD(ISO11898-1:2023)。收發(fā)CAN幀時支持多種模式,給應(yīng)用帶來更多可能,方便實現(xiàn)不同的場景需要。
消息區(qū)
TraveoII系列MCU的CAN控制器具有一塊消息區(qū)(M(RAM),MessageRAM),其地址范圍與程序運行時使用的RAM地址范圍是隔離的,也就是說CAN控制器用來存儲接收/發(fā)送的CAN幀以及自身的配置信息的MRAM和程序規(guī)定的堆、棧等RAM區(qū)域是不沖突的,這樣也可以有效避免程序的可能存在的錯誤導(dǎo)致CAN幀的數(shù)據(jù)被篡改。圖6是TraveIIMRAM中關(guān)于CAN的配置。
圖6MRAM包含的區(qū)域
從圖中可以看出,TraveoII的CAN控制器的MRAM的地址是以32位對齊的,從上向下看,首先是CANID的配置信息,根據(jù)配置CAN控制器中相關(guān)寄存器,可將CANID初始化為11位或29位,并將不同的CANID寫入不同的區(qū)域。
接下來是存儲CAN幀的關(guān)鍵區(qū)域,這里存著CAN控制器從總線接收到符合上面已經(jīng)配置好的CANID的CAN幀、即將要發(fā)送的CAN幀,從圖中可以看出接收/發(fā)送時可以使用FIFO(實際也有Queue)模式和Buffer模式,后面會詳細介紹不同的模式的工作方式以及CAN幀的內(nèi)部構(gòu)造。
接收
前面提到接收有兩種工作模式,分別是FIFO(Queue)和Buffer,Buffer模式工作過程簡單,一旦有CAN幀被CAN控制器存入Buffer內(nèi),相應(yīng)的中斷處理函數(shù)就會被觸發(fā)來處理對應(yīng)的CAN幀。而FIFO和Queue模式就復(fù)雜一些,如圖7所示,這是一個擁有8個RxCAN幀塊(英飛凌TraveoII官方手冊中稱為RxElement)的FIFO區(qū)域,不難看出,有兩個關(guān)鍵的標志GetPos和PutPos,分別用來指示當前CAN幀獲取位置和下一個CAN幀存放位置。此時FIFO區(qū)域中已經(jīng)存在了3個CAN幀等待讀取,當驅(qū)動程序?qū)AN幀從MRAM中讀取完畢時,會設(shè)置對應(yīng)寄存器來通知CAN控制器,然后GetPos和PutPos會指向同一個CAN幀塊(為空狀態(tài))。
圖7RxFIFO
如圖8所示,這是一個由CAN控制器從CAN收發(fā)器上傳來的CAN幀的內(nèi)部構(gòu)造,這里還是把它稱作RxCAN幀塊,其內(nèi)容包含了一些前面講到的CAN數(shù)據(jù)幀的一些控制位、數(shù)據(jù)位,還有一些是為了兼容CANFD所預(yù)留的,這里只介紹和經(jīng)典CAN的相關(guān)內(nèi)容,CANFD的大同小異。
圖8RxCAN幀塊
XTD位:指示該幀為標準幀還是擴展幀,若此位為0則該幀是標準幀,ID中[28:18]是有效CANID,即該幀CANID為11位;若此位為1則該幀是擴展幀,ID中[28:0]全部是有效CANID內(nèi)容,即該幀CANID為29位。
RTR位:用來區(qū)分該幀為遠程請求幀還是數(shù)據(jù)幀,若此位為0則該幀是數(shù)據(jù)幀,若此位為1則該幀是遠程請求幀。
DLC[3:0]:此4位數(shù)據(jù)用來指示該幀含有的數(shù)據(jù)的字節(jié)數(shù),本文只討論經(jīng)典CAN,所以DLC規(guī)定的范圍應(yīng)該在0-8字節(jié)。
R2-R3:這兩行數(shù)據(jù)就是數(shù)據(jù)幀中的數(shù)據(jù)域中的內(nèi)容,經(jīng)典CAN最多傳輸8個字節(jié)數(shù)據(jù),從圖中可以看出,這樣一個CAN幀塊最大支持8個字節(jié)的數(shù)據(jù),DB0-DB7。
發(fā)送
CAN控制發(fā)送過程就相對復(fù)雜一些,因為上層應(yīng)用可能需要發(fā)多種CANID報文,其報文優(yōu)先級有高有低,高優(yōu)先級需要盡快發(fā)出,低優(yōu)先級則可以在緩沖區(qū)中等待優(yōu)先級更高的CAN幀發(fā)送完,再發(fā)出。
圖9同時使用TxBuffer和TxFIFO
如圖9所示,當同時使用TxBuffer和TxFIFO時,CAN控制器每次都會掃描這些區(qū)域,當前狀態(tài)下,TxBuffer中一個CANID為2的CAN幀等待發(fā)送,因為它是TxBuffer區(qū)域中CANID最小的,并且比TxFIFO中處于GetPos的這一幀(CANID為4)小,所以它擁有最高優(yōu)先級,這一幀將會最先被發(fā)出去,第二次CAN控制器再次掃描這些區(qū)域,發(fā)現(xiàn)處于TxFIFO中GetPos的這一幀(CANID為4)是這些區(qū)域中最小的(包括TxBuffer),所以第二次將會發(fā)送CANID為4的這一幀,如此往復(fù),直到這些區(qū)域內(nèi)的所有TxCAN幀塊被全部通過CAN收發(fā)器轉(zhuǎn)換為信號電平發(fā)送到總線上。
圖10TxElement
如圖10所示,與RxElement類似,XTD、RTR、ID、DLC以及DB0-DB7的用法與RxElement一致,只有部分內(nèi)容有不同。
MM[7:0]:MessageMarker,這是一個與發(fā)送事件(TxEvent)相關(guān)的信息。
EFC(Even
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 欠費整改報告范文
- 浙江國企招聘2024浙江清嶺科技有限公司招聘3人筆試參考題庫附帶答案詳解
- 二零二五年度私募股權(quán)基金自愿退股及退出機制協(xié)議
- 二零二五年度個人車位租賃與停車場安全監(jiān)控系統(tǒng)合同
- 二零二五年度商務(wù)酒店團體入住協(xié)議價合同樣本
- 廣州市2025年度租賃房屋修繕及維修服務(wù)合同
- 二零二五年度駕校合伙協(xié)議書:駕校與汽車租賃公司合作合同
- 二零二五年度健康管理項目可行性研究報告
- 二零二五年度商業(yè)地產(chǎn)租賃合同(含租戶品牌形象建設(shè))
- 2025年度餐飲娛樂綜合體商鋪租賃合同
- GB/T 30490-2014天然氣自動取樣方法
- 學(xué)習中國人民解放軍新一代共同條令PPT模板
- 二輪 河流專題(精心)
- 球墨鑄鐵管安裝規(guī)范及圖示課件
- ERCP講義教學(xué)課件
- 《人類行為與社會環(huán)境》課件
- 兒科病毒性腦炎課件
- 北京中醫(yī)藥大學(xué)《護理藥理學(xué)》平時作業(yè)2答卷
- 燃氣安全裝置改造施工方案
- 北京市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細及行政區(qū)劃代碼
- 部編版一年級語文寫話教學(xué)講座培訓(xùn)課件
評論
0/150
提交評論