現(xiàn)如今汽車(chē)行業(yè)的快速發(fā)展,使得汽車(chē)集成了更多的系統(tǒng)單元模塊,其中所包含的數(shù)據(jù)傳輸壓力卻成一直令人頭疼,難以解決。經(jīng)過(guò)不斷的努力,CAN-FD總線應(yīng)運(yùn)而生。
今天的話(huà)題就是為大家介紹汽車(chē)CAN-FD總線的各個(gè)細(xì)節(jié)以及喲如何使用的方法,并為講解RIGOL的數(shù)字示波器怎樣能夠在CAN-FD總線分析上提供強(qiáng)力的支持!一起來(lái)了解下吧。
1986年德國(guó)電氣商博世公司開(kāi)發(fā)出面向汽車(chē)CAN(Controller Area Network)通信協(xié)議。在這之后,CAN經(jīng)過(guò)ISO11898及ISO11519進(jìn)行了標(biāo)準(zhǔn)化。如今,CAN的高性能與可靠性早已經(jīng)得到認(rèn)同且廣泛投入工業(yè)生產(chǎn)。
面對(duì)工業(yè)的快速發(fā)展,工業(yè)總線上的數(shù)據(jù)量正在日益增長(zhǎng),特別是在CAN總線運(yùn)用較多的汽車(chē)領(lǐng)域,總線通訊的數(shù)據(jù)量愈發(fā)龐大。比如汽車(chē)內(nèi)部將出現(xiàn)更多的輔助系統(tǒng)以及人機(jī)交互系統(tǒng),導(dǎo)致傳統(tǒng)的CAN總線在傳輸速率、帶寬方面漸漸“崩潰",CAN總線已慢慢達(dá)到負(fù)荷極限的范圍內(nèi)。根據(jù)CAN規(guī)范ISO11898-2所定義的標(biāo)準(zhǔn)幀結(jié)構(gòu),一幀報(bào)文最大只能傳輸64位(8個(gè)字節(jié))的數(shù)據(jù),因此在較理想的情況下總線負(fù)載也已達(dá)到70%左右。
那么面對(duì)現(xiàn)今更巨大的數(shù)據(jù)量挑戰(zhàn),應(yīng)要改進(jìn)原有的總線來(lái)提高總線傳輸速率,CAN-FD(CAN with Flexible Data-Rate)由此出現(xiàn)在大眾的視野中。
汽車(chē)CAN網(wǎng)絡(luò)拓?fù)鋱D
如下圖例舉了一個(gè)汽車(chē)CAN網(wǎng)絡(luò)拓?fù)鋱D。在此可以看出的是,CAN網(wǎng)絡(luò)根據(jù)CAN節(jié)點(diǎn)及不同的CAN總線構(gòu)成,CAN節(jié)點(diǎn)主要由CPU、CAN控制器以及CAN收發(fā)器組成,但是不同的CAN總線上布置有不同功能的智能電子控制單元(ECU)。
(CAN網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu))
汽車(chē)CAN網(wǎng)絡(luò)拓?fù)鋱D
CAN協(xié)議包含有ISO規(guī)定的OSI基本參照模型中的傳輸層、數(shù)據(jù)鏈路層及物理層。CAN協(xié)議的關(guān)于ISO/OSI基本參照模型中的數(shù)據(jù)鏈路層分為MAC子層和LLC子層,MAC子層是CAN協(xié)議的主要構(gòu)成部分。
數(shù)據(jù)鏈路層的功能是將物理層收到的信號(hào)組織成有意義的消息,且提供傳送錯(cuò)誤控制等傳輸控制的流程。更加深入來(lái)說(shuō),則是消息的幀化、仲裁、應(yīng)答、錯(cuò)誤的檢測(cè)或報(bào)告。數(shù)據(jù)鏈路層的功能一般在CAN控制器的硬件中執(zhí)行,且在物理層定義了信號(hào)真實(shí)的發(fā)送方式、位時(shí)序、位的編碼方式以及同步的步驟??墒切盘?hào)電平、通信速度、采樣點(diǎn)、驅(qū)動(dòng)器和總線的電氣特性、連接器的形態(tài)等都沒(méi)有進(jìn)行定義,一定要由用戶(hù)依據(jù)系統(tǒng)需求自行確定。
CAN-FD通過(guò)使用兩種位速率,從控制場(chǎng)中的BRS位到ACK場(chǎng)之前(包括CRC分界符)為可變速率,剩余部分皆為原CAN總線用的速率。CAN-FD數(shù)據(jù)幀格式如下圖所示:
IDE(Identifier Extension)標(biāo)志位擴(kuò)展位:0表示11位ID,1表示29位ID。
r0,r1(Reserved for future use)保留未來(lái)使用:CAN-FD不支持遠(yuǎn)程幀。
EDL(Extended Data Length)表示報(bào)文格式:0表示CAN-FD報(bào)文,1表示CAN報(bào)文。
BRS(Bit Rate Switch)速率轉(zhuǎn)換開(kāi)關(guān):0表示不轉(zhuǎn)換速率,1轉(zhuǎn)換速率。
ESI(Error State Indicator)錯(cuò)誤狀態(tài)指示:0表示錯(cuò)誤主動(dòng)狀態(tài),1錯(cuò)誤被動(dòng)狀態(tài)。
DLC(Data Length Code)數(shù)據(jù)長(zhǎng)度代碼:線性部分為CAN的速率,非線性為CAN-FD可變部分。
CAN總線由于位填充規(guī)則對(duì)CRC的干擾,將會(huì)產(chǎn)生錯(cuò)幀漏檢率,因此無(wú)法達(dá)到設(shè)計(jì)意圖。CAN-FD對(duì)CRC算法進(jìn)行了調(diào)整,即CRC以含填充位的位流進(jìn)行計(jì)算。為避免在校驗(yàn)和部分出現(xiàn)6個(gè)以上連續(xù)位,即在前一位以及之后每4位添加一個(gè)填充位加以分割。這個(gè)填充位的值是上一位的反碼,作為格式檢查,假如填充位不是上一位的反碼,將立即做出處理。
CAN-FD的CRC場(chǎng)擴(kuò)展到了21位。由于數(shù)據(jù)場(chǎng)長(zhǎng)度存在很大變化區(qū)間,因此需要根據(jù)DLC大小應(yīng)用不同的CRC生成多項(xiàng)式。如CRC_17,適合于幀長(zhǎng)小于210位的幀,而CRC_21,適合于幀長(zhǎng)小于1023位的幀。
CAN-FD數(shù)據(jù)幀通過(guò)使用新的DLC編碼方式,在數(shù)據(jù)場(chǎng)長(zhǎng)度在0~8個(gè)字節(jié)時(shí),利用線性規(guī)則。當(dāng)數(shù)據(jù)場(chǎng)長(zhǎng)度為12~64個(gè)字節(jié)時(shí),使用非線性編碼。如下圖所示。
1.以差分信號(hào)進(jìn)行傳輸,擁有出色的抗噪性能。
2.所有節(jié)點(diǎn)沒(méi)有主從之分,總線空閑時(shí),任意節(jié)點(diǎn)都可向總線發(fā)送消息。
3.非破壞性位仲裁機(jī)制,用信息內(nèi)的標(biāo)識(shí)符ID決定信息發(fā)送優(yōu)先順序,保證已發(fā)送數(shù)據(jù)的完整性與及時(shí)性。
4.繼承自CAN總線的CAN-FD總線上的節(jié)點(diǎn)沒(méi)有“地址"的概念,因此在總線上增加節(jié)點(diǎn)時(shí),不會(huì)對(duì)總線上已有節(jié)點(diǎn)的軟硬件及應(yīng)用層造成影響。
5.可以配合網(wǎng)絡(luò)的規(guī)模、系統(tǒng)的機(jī)能設(shè)定通信速度,此外兩條不同通信速度總線上的節(jié)點(diǎn)可通過(guò)網(wǎng)關(guān)實(shí)現(xiàn)信息交互。
6.具有容錯(cuò)處理能力,所有的節(jié)點(diǎn)都可以檢測(cè)出錯(cuò)誤,檢測(cè)出錯(cuò)誤的節(jié)點(diǎn)會(huì)立即通知總線上其它所有的節(jié)點(diǎn);正在發(fā)送消息的節(jié)點(diǎn),如果檢測(cè)到錯(cuò)誤,會(huì)立即停止當(dāng)前的發(fā)送,并同時(shí)不斷地重復(fù)發(fā)送此消息,直到該消息發(fā)送成功為止。
7.能實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)請(qǐng)求,通過(guò)發(fā)送“遙控幀"請(qǐng)求其他單元發(fā)送數(shù)據(jù)。
在CAN-FD總線解析過(guò)程中,需要觀測(cè)系統(tǒng)噪聲對(duì)總線信號(hào)傳輸造成的影響,且判斷總線報(bào)錯(cuò)時(shí)是否因?yàn)橛布斐傻幕蚴擒浖幊痰恼_性。這對(duì)示波器的總線解析能力提出了更多的需求:
1.具備高速采樣率,清晰捕捉和顯示串行模擬信號(hào)并觀測(cè)其物理特性。
2.具備較大存儲(chǔ)深度,記錄較長(zhǎng)時(shí)間的總線控制過(guò)程。
3.豐富的觸發(fā)功能以及高波形捕獲率,捕獲到錯(cuò)誤且相對(duì)捕獲波形發(fā)掘問(wèn)題根因。
4.靈活的屏幕多窗口分屏顯示,同步顯示解碼結(jié)果與列表結(jié)果,方便觀測(cè)總線數(shù)據(jù)信息。
5.具有多路總線分析功能,可以滿(mǎn)足同步分析多路CAN節(jié)點(diǎn)的需要。
串行總線通信在汽車(chē)等各領(lǐng)域得到了廣泛應(yīng)用。對(duì)汽車(chē)制造來(lái)說(shuō),從制動(dòng)系統(tǒng)到車(chē)輛導(dǎo)航系統(tǒng),總線都非常重要。要保障正常的車(chē)輛性能,保證電子控制單元(ECU)、傳感器和執(zhí)行器之間的通信更為重要。除了驗(yàn)證總線協(xié)議的數(shù)字邏輯之外,還應(yīng)要對(duì)波形質(zhì)量、噪聲以及傳感器/執(zhí)行器信號(hào)的同步測(cè)量進(jìn)行模擬物理層驗(yàn)證。
RIGOL自主研發(fā)的DS70000示波器*的總線分析功能具備突出的優(yōu)勢(shì):
1.具備高采樣率,基于RIGOL的“鳳凰座"示波器專(zhuān)用芯片組,完成了國(guó)內(nèi)最高的20GSa/s采樣率、5GHz實(shí)時(shí)帶寬,更真實(shí)捕捉并還原信號(hào)。
2.具備更大存儲(chǔ)深度,基于RIGOL新一代UltraVision III平臺(tái),完成最大2Gpts的存儲(chǔ)深度,在高采樣率下采集更長(zhǎng)時(shí)間的波形,滿(mǎn)足長(zhǎng)時(shí)間觀測(cè)的要求。
3.具備豐富的觸發(fā)功能,能夠達(dá)到每秒1百萬(wàn)次的波形刷新率,更容易捕獲偶發(fā)的信號(hào)瑕疵。
4.具有強(qiáng)大的串行總線分析功能,支持多種主流串行總線,例如RS232/UART、I2C、SPI、LIN、CAN、CAN-FD、FlexRay、I2S、MIL-STD-1553等。
5.解碼結(jié)果列表顯示,解碼總線上每個(gè)幀信息,其中包括地址、數(shù)據(jù)、標(biāo)識(shí)符等,支持屏幕窗口列表顯示所有幀的分析結(jié)果,并可導(dǎo)出測(cè)試報(bào)告。
在現(xiàn)實(shí)的情況中,工程師可以采用協(xié)議分析輕松地發(fā)現(xiàn)錯(cuò)誤、調(diào)試硬件、加快開(kāi)發(fā)進(jìn)度,為高速度、高質(zhì)量完成工程提供保障。
但是協(xié)議分析的基礎(chǔ)是協(xié)議解碼,只有解碼正確的協(xié)議分析才可以被接受,只有正確的解碼才可以反饋更多的錯(cuò)誤信息以供工程師進(jìn)行功能調(diào)試與設(shè)計(jì)改進(jìn)。
DS70000示波器支持CAN-FD的解碼分析,且能夠完成4路總線分析,如下所示為DS70000示波器CAN-FD解碼設(shè)置界面示意圖。
1. 此選項(xiàng)可選擇解碼協(xié)議類(lèi)型,支持CAN-FD解碼分析,此外可選擇SPI、FlexRay、I2S、1553B等多種協(xié)議選項(xiàng)進(jìn)行解碼分析;
2. 在此可以選擇打開(kāi)或關(guān)閉總線解碼開(kāi)關(guān);
3. 在此為信源選項(xiàng),能夠設(shè)置信源的閾值和類(lèi)型;
4.此處信號(hào)速率選項(xiàng),支持CAN和CAN-FD不同的信號(hào)速率,并可設(shè)置期望的采樣位置。
DS70000系列示波器擁有簡(jiǎn)便的解碼設(shè)置操作界面,幫助工程師更為高效的測(cè)量。