遠(yuǎn)程診斷DoIP
繼傳統(tǒng)CAN線、MOST、FlexRay以及CAN-FD后挪哄,車載以太網(wǎng)將憑借其低成本、高帶寬始赎、高傳輸速率、網(wǎng)絡(luò)實(shí)時(shí)而被納入到新型整車總線中仔燕。尤其在娛樂(lè)信息系統(tǒng)及T-Box子網(wǎng)中造垛,采用以太網(wǎng)傳輸視頻數(shù)據(jù)代替原有各模塊間復(fù)雜連接線將很大程度減少線束重量及復(fù)雜度。同時(shí)以太網(wǎng)也將是未來(lái)解決如何快速更新ECU軟件及標(biāo)定的主要策略之一晰搀。
DoIP技術(shù)五辽,在UDS診斷服務(wù)基礎(chǔ)上,通過(guò)TCP/IP及以太網(wǎng)來(lái)進(jìn)行遠(yuǎn)程車輛診斷外恕,協(xié)議定義在ISO 13400杆逗,文檔中詳細(xì)描述了外部測(cè)試及刷新設(shè)備如何與整車內(nèi)部ECU通過(guò)以太網(wǎng)及TCP/IP協(xié)議進(jìn)行通訊乡翅。
文檔目前分三份:
- — Part 1: General information and use case definition
- — Part 2: Transport protocol and network layer services
- — Part 3: Wired vehicle interface based on IEEE 802.3
以下兩份正在籌備中
- — Part 4: Ethernet Diagnostic Connector
- — Part 5: Conformance test specification
Part 1: General information and use case definition
ISO13400架構(gòu)實(shí)現(xiàn)基于互聯(lián)網(wǎng)的OSI 7層模型(詳見ISO/IEC 7498-1及ISO/IEC 10731),各層采用的協(xié)議見以下表格罪郊。
SI七層模型自上向下分成應(yīng)用層蠕蚜,表示層,會(huì)話層悔橄,傳輸層靶累,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層癣疟,以及物理層尺铣。但I(xiàn)SO13400涉及到的主要分布在傳輸層、網(wǎng)絡(luò)層争舞、數(shù)據(jù)鏈路層、物理層四層中澈灼。
根據(jù)互聯(lián)網(wǎng)中的定義竞川, OSI模型中,由軟件(進(jìn)程)或者硬件(輸入/輸出芯片)實(shí)現(xiàn)的活躍部分稱之為實(shí)體Entity叁熔,用于進(jìn)行信息的發(fā)送或者接收委乌。實(shí)體是子系統(tǒng)中的活動(dòng)單元,每一層被拆分成多個(gè)實(shí)體荣回,同一層內(nèi)的通訊由不同子系統(tǒng)上的對(duì)等實(shí)體(Peer-Entity)來(lái)實(shí)現(xiàn)遭贸。
DoIP診斷網(wǎng)絡(luò)架構(gòu)
整個(gè)DoIP診斷網(wǎng)絡(luò)架構(gòu)由所有的Entity實(shí)體與外部的測(cè)試設(shè)備組成。
有簡(jiǎn)單的外部設(shè)備點(diǎn)對(duì)點(diǎn)與車內(nèi)單獨(dú)某個(gè)DoIP實(shí)體連接心软,或是在一個(gè)復(fù)雜的分布式網(wǎng)絡(luò)中壕吹,多臺(tái)測(cè)試設(shè)備通過(guò)DoIP網(wǎng)關(guān)與多臺(tái)車輛中的多個(gè)DoIP實(shí)體以及子網(wǎng)進(jìn)行連接通信。
DoIP的應(yīng)用場(chǎng)景具體有三個(gè):
1. 售后模式 車輛的檢測(cè)與維修
在維修廠里删铃,外部的檢修設(shè)備不需要使用傳統(tǒng)ALDL口硬線連接耳贬,通過(guò)TCP/IP協(xié)議與車輛建立直接聯(lián)系,并按照指令順序?qū)⒖煽空?qǐng)求發(fā)送給車輛DoIP實(shí)體猎唁,而后模塊反饋出車輛實(shí)時(shí)的錯(cuò)誤追溯信息咒劲。
2.產(chǎn)品/工廠模式 車輛ECU的模塊刷新
外部刷新設(shè)備根據(jù)既定的刷新流程步驟,通過(guò)以太網(wǎng)或TCP/IP協(xié)議在進(jìn)行安全訪問(wèn)及模塊解鎖后與車輛內(nèi)部模塊IP網(wǎng)絡(luò)建立通信诫隅。車輛內(nèi)部網(wǎng)絡(luò)對(duì)外部刷新設(shè)備傳輸過(guò)來(lái)的Op及標(biāo)定文件應(yīng)支持下載以及寫入操作腐魂。
產(chǎn)品模式下,工程開發(fā)工具往往實(shí)現(xiàn)的是設(shè)備與模塊DoIP實(shí)體點(diǎn)對(duì)點(diǎn)的通訊與刷新逐纬,但在工廠模式下蛔屹,采取的則是刷新設(shè)備對(duì)整車進(jìn)行的并行刷新操作。
3. 在工廠模式總裝終檢線工位進(jìn)行檢測(cè)維修
在工廠制造環(huán)節(jié)豁生,外部檢測(cè)設(shè)備會(huì)按照指定順序判导,對(duì)接入IP網(wǎng)絡(luò)的車輛進(jìn)行終檢工位的完整性測(cè)試嫉父。與售后模式下有所不同的是,在工廠環(huán)節(jié)眼刃,外部測(cè)試設(shè)備通常會(huì)與整車多個(gè)模塊的多個(gè)DoIP實(shí)體進(jìn)行連接以及并行通訊绕辖。
診斷連接場(chǎng)景
單臺(tái)車與外部設(shè)備使用雙絞線點(diǎn)對(duì)點(diǎn)通信
這種方式意味著在進(jìn)行IP診斷時(shí),系統(tǒng)不會(huì)受到來(lái)自其他車輛或者設(shè)備的干擾擂红,通常用IP尋址或者自動(dòng)配置仪际。
通過(guò)無(wú)線網(wǎng)絡(luò)連接單車與單一外部測(cè)試設(shè)備
在這種場(chǎng)景下,意味著無(wú)線網(wǎng)絡(luò)中可能會(huì)存在多輛車或者多個(gè)設(shè)備昵骤,因此無(wú)論是車或者是設(shè)備都應(yīng)具備判別機(jī)制树碱,能在網(wǎng)絡(luò)下識(shí)別出所需要連接的對(duì)象,并且拒絕來(lái)自其他車輛或者設(shè)備的請(qǐng)求信號(hào)变秦。當(dāng)然成榜,設(shè)備與車輛本身都應(yīng)具備自動(dòng)接入到已存在的IP網(wǎng)絡(luò)的能力。應(yīng)用場(chǎng)景如維修廠蹦玫。
單設(shè)備與多輛車進(jìn)行無(wú)線連接
在該場(chǎng)景下赎婚,只有外部測(cè)試設(shè)備需要有點(diǎn)對(duì)多連接的能力(sockets),如在工廠里某一臺(tái)產(chǎn)線整車刷新服務(wù)器需要同時(shí)對(duì)多臺(tái)車輛進(jìn)行并行刷新樱溉。
單車與多個(gè)外部設(shè)備連接挣输,但只允許同時(shí)只建立一條通道
車輛具備了與多部設(shè)備連接的能力,對(duì)于車輛來(lái)說(shuō)福贞,需要具備區(qū)分診斷請(qǐng)求還是反饋的能力撩嚼。而對(duì)于外部設(shè)備,則需要有判斷當(dāng)前車輛是否有在與其他設(shè)備進(jìn)行通訊的能力挖帘。該情況會(huì)發(fā)生在工廠模式下完丽,在某些網(wǎng)絡(luò)重疊區(qū)域,某臺(tái)設(shè)備需要對(duì)車輛進(jìn)行模塊的刷新拇舀,而另一臺(tái)設(shè)備則需要對(duì)該車輛進(jìn)行檢修時(shí)舰涌。
DoIP之通信建立
ISO 13400-2文檔詳細(xì)定義了整車電子模塊組件如何通過(guò)TCP/IP協(xié)議與外部刷新診斷設(shè)備建立通信連接。其中包括作為IP節(jié)點(diǎn)的汽車網(wǎng)關(guān)如何加入到現(xiàn)有網(wǎng)絡(luò)中你稚,及外部刷新診斷設(shè)備如何在網(wǎng)絡(luò)中檢測(cè)到車輛并與其內(nèi)部IP組件建立有效通訊瓷耙。
其中,DoIP架構(gòu)模型必須實(shí)現(xiàn)以下特征:
- — 汽車與設(shè)備具備檢測(cè)對(duì)方并加入到網(wǎng)絡(luò)的能力
- — 汽車具有聲明存在且被檢測(cè)到的能力
- — 獲取車輛基本狀態(tài)信息 (如Power Mode狀態(tài))
- — 通信建立刁赖,如雙方通信請(qǐng)求建立搁痛,保持,以及對(duì)網(wǎng)關(guān)的控制等
- — 汽車網(wǎng)關(guān)實(shí)現(xiàn)診斷設(shè)備與車輛子網(wǎng)組件之間的數(shù)據(jù)路由
- — 錯(cuò)誤狀態(tài)處理
DoIP中的一些定義
DoIP Entity
DoIP實(shí)體是任意一個(gè)滿足DoIP協(xié)議的host宇弛,其中包括DoIP節(jié)點(diǎn)及DoIP網(wǎng)關(guān)
DoIP Gateway
DoIP網(wǎng)關(guān)是在車輛網(wǎng)絡(luò)內(nèi)部鸡典,實(shí)現(xiàn)與本模塊及所連接多個(gè)子網(wǎng)內(nèi)ECU通訊訪問(wèn)的節(jié)點(diǎn)
DoIP Node
DoIP節(jié)點(diǎn)是在車輛網(wǎng)絡(luò)內(nèi)部,遵守DoIP協(xié)議枪芒,但不具備路由DoIP數(shù)據(jù)到連接子網(wǎng)內(nèi)功能的節(jié)點(diǎn)
DoIP Edge Node
DoIP邊緣節(jié)點(diǎn)是在車輛內(nèi)部彻况,與診斷口Ethernet activation line直連的節(jié)點(diǎn)
External Test Equipment
車輛外部設(shè)備是指存在車輛網(wǎng)絡(luò)外部谁尸,通過(guò)DoIP協(xié)議與車輛內(nèi)部子網(wǎng)DoIP Entity實(shí)現(xiàn)通訊建立的設(shè)備
In-vehicle Test Equipment
車輛內(nèi)部設(shè)備與外部設(shè)備擁有同樣功能,但不具備Activation硬線纽甘,車輛身份請(qǐng)求及DCHP服務(wù)(自動(dòng)為接入網(wǎng)中的DoIP節(jié)點(diǎn)分配不同的IP地址)
針對(duì)協(xié)議定義良蛮,雖從名字上看TCP/IP協(xié)議僅包括傳輸控制協(xié)議(TCP)與網(wǎng)際協(xié)議(IP),但實(shí)際上TCP/IP是協(xié)議簇悍赢,包含了除這兩種以外的用戶數(shù)據(jù)報(bào)協(xié)議(UDP)决瞳,文件傳輸(FTP)和地址解析協(xié)議(ARP)等。
這里著重介紹TCP與UDP左权,這兩者都是傳輸層協(xié)議皮胡,且在后續(xù)建立通訊中起到非常重要的作用。
DoIP中TCP原理及通信建立
TCP(Transmission Control Protocol)傳輸控制協(xié)議是一種面向連接的協(xié)議赏迟,即必須與對(duì)方建立可靠連接后才能進(jìn)行數(shù)據(jù)交互屡贺。這個(gè)建立過(guò)程就是「三次握手」,即建立TCP連接時(shí)锌杀,需Client與Server端總共發(fā)3次包來(lái)確認(rèn)連接的建立甩栈。
DoIP建立TCP通訊時(shí),通常成對(duì)出現(xiàn)端口抛丽,一個(gè)用于發(fā)送,稱之為遠(yuǎn)程端口(remote port)饰豺;另一個(gè)用于接收亿鲜,稱之為本地端口(local port)。但一個(gè)host的發(fā)送端口相對(duì)也就是對(duì)方host的接收端口冤吨。每個(gè)DoIP Entity需對(duì)TCP_DATA端口進(jìn)行監(jiān)聽蒿柳,TCP_DATA端口號(hào)通常為13400,以便外部設(shè)備能與節(jié)點(diǎn)建立通訊漩蟆。
參考互聯(lián)網(wǎng)體系中TCP/IP的握手流程垒探,DoIP節(jié)點(diǎn)與外部診斷設(shè)備建立流程如下:
- 第一次握手: 建立連接
Client也就是External Test Equipment發(fā)送連接請(qǐng)求報(bào)文段,將標(biāo)志位syn置為1怠李,并隨機(jī)產(chǎn)生一個(gè)Sequence Number: seq=x; 把這個(gè)值發(fā)送給Server DoIP Entity圾叼,此時(shí)Client進(jìn)入SYN_SENT的狀態(tài),等待Server確認(rèn)捺癞。
- 第二次握手: Server收到syn報(bào)文段
Server收到Client的syn報(bào)文段夷蚊,由syn=1知道Client正在請(qǐng)求建立連接。Server把a(bǔ)ck=x+1髓介;同時(shí)要發(fā)送syn請(qǐng)求消息惕鼓,因此把標(biāo)志位syn置成1,并隨機(jī)生成seq=y唐础;Server把所有信息一并放入報(bào)文段(即syn+ack報(bào)文段)發(fā)給Client用來(lái)確認(rèn)連接請(qǐng)求箱歧,自此Server進(jìn)入了SYN_RCVD狀態(tài)矾飞。
- 第三次握手: Client收到Server(syn+ack)報(bào)文段
檢查ack是否等于x+1,如果正確呀邢,把a(bǔ)ck=y+1洒沦,并把數(shù)據(jù)包發(fā)給Server,Server會(huì)檢查ack是否等于y+1驼鹅,seq是否等于x+1微谓,如果正確就連接成功,Client和Server進(jìn)入ESTABLISHED狀態(tài)输钩,完成握手豺型,可以開始接收數(shù)據(jù)。
DoIP中UDP原理及通信建立
UDP(User Data Protocol)用戶數(shù)據(jù)報(bào)協(xié)議是一種非連接买乃,不保證可靠性的傳輸層協(xié)議姻氨,也就是傳輸數(shù)據(jù)前Client與Server不需建立連接。只需要知道對(duì)方IP地址及端口號(hào)剪验,即能夠直接發(fā)送數(shù)據(jù)包肴焊,只是不能保證是否能夠到達(dá)。但相比TCP功戚,UDP的速度更快娶眷,因此對(duì)于需要實(shí)時(shí)同步傳輸,但不要求可靠到達(dá)的數(shù)據(jù)啸臀,優(yōu)先考慮UDP協(xié)議届宠。
在下載數(shù)據(jù)的場(chǎng)景下,當(dāng)要求數(shù)據(jù)精確無(wú)誤時(shí)乘粒,由于UDP會(huì)出現(xiàn)丟數(shù)據(jù)的情況豌注,因而就應(yīng)采用更安全的TCP。但在高速網(wǎng)絡(luò)保證下灯萍,傳輸數(shù)據(jù)延遲以及穩(wěn)定性得以改善的情況下轧铁,若丟幀后采用應(yīng)用層控制數(shù)據(jù)重傳,則也能夠保證UDP傳輸?shù)目煽啃浴?/p>
DoIP場(chǎng)景下旦棉,通過(guò)兩個(gè)UDP端口
- UDP_DISCOVERY
- UDP_TEST_EQUIPMENT_REQUEST
來(lái)建立通訊并進(jìn)行遠(yuǎn)程數(shù)據(jù)控制齿风,尤其需要外部設(shè)備對(duì)車輛IP節(jié)點(diǎn)進(jìn)行廣播消息請(qǐng)求時(shí),須使用UDP绑洛,由于TCP機(jī)制所在聂宾,無(wú)法實(shí)現(xiàn)廣播與多播。
過(guò)程如下诊笤,DoIP以UDP_DISCOVERY或動(dòng)態(tài)定義端口來(lái)作為Source Port系谐,向UDP_DISCOVERY廣播報(bào)文數(shù)據(jù),而外部診斷設(shè)備則始終監(jiān)聽UDP_DISCOVERY端口來(lái)獲取消息。
當(dāng)外部診斷設(shè)備需要發(fā)送數(shù)據(jù)時(shí)纪他,同樣將目標(biāo)端口設(shè)置為UDP_DISCOVERY鄙煤,源端口UDP_TEST_EQUIPMENT_REQUEST則是動(dòng)態(tài)定義,范圍為(49152~65535)茶袒。
當(dāng)請(qǐng)求發(fā)送給DoIP后梯刚,診斷設(shè)備保持對(duì)UDP_TEST_EQUIPMENT_REQUEST的監(jiān)聽。
DoIP反饋請(qǐng)求時(shí)薪寓,把目標(biāo)端口設(shè)置為UDP_TEST_EQUIPMENT_REQUEST亡资,具體實(shí)現(xiàn)過(guò)程參考下圖:
在ISO13400-2中,DoIP的策略制定中參考了非常多的傳統(tǒng)通信網(wǎng)絡(luò)技術(shù)向叉。下次會(huì)分析在DoIP過(guò)程中锥腻,不同層級(jí)之間如何實(shí)現(xiàn)對(duì)DoIP幀中的payload數(shù)據(jù)進(jìn)行解析等。
DoIP以太網(wǎng)診斷口設(shè)計(jì)規(guī)范
在 Part3中母谎,基于IEEE 802.3 100BASE-TX的標(biāo)準(zhǔn)(速率達(dá)100M的快速以太網(wǎng)信令標(biāo)準(zhǔn))瘦黑,就物理層以及數(shù)據(jù)鏈路層對(duì)DoIP的通信接口及測(cè)試設(shè)備提了設(shè)計(jì)需求。
Part4里則是強(qiáng)調(diào)DoIP中通信診斷口的設(shè)計(jì)規(guī)范奇唤。這里對(duì)ISO13400的part3及part4部分關(guān)于以太網(wǎng)診斷口pin腳布局進(jìn)行簡(jiǎn)介幸斥。
以太網(wǎng)需求定義
根據(jù)IEEE 802.3u 100BASE-TX標(biāo)準(zhǔn)定義,車載以太網(wǎng)連接口由四條傳輸線(transmission line)加一條額外的使能線(activiation line)組成咬扇,通過(guò)使能線可決定DoIP邊緣節(jié)點(diǎn)(Edge Node)的打開與否甲葬。
以太網(wǎng)線纜分兩類:
- 端對(duì)端(1:1)連接:通常用于網(wǎng)絡(luò)集線器或交換機(jī)與端節(jié)點(diǎn)(如計(jì)算機(jī))連接。
此情況下懈贺,每個(gè)RJ45線纜接口经窖,即水晶頭的每一個(gè)針腳會(huì)與車輛的接口針腳一一對(duì)應(yīng)連接。也就是Source Port的Rx+接口會(huì)與Destination Port的Rx+口對(duì)應(yīng)相連隅居。
- 交叉連接(cross-linked):通常用于兩個(gè)端節(jié)點(diǎn)間直連(兩臺(tái)計(jì)算機(jī)之間)钠至。
此情況下葛虐,Source Port的Tx針腳會(huì)與Destination Port的Rx針腳直連胎源,反之亦然。
以太網(wǎng)物理層需求
根據(jù)IEEE 802.3中定義屿脐,DoIP應(yīng)支持100Base-TX(100Mbit/s以太網(wǎng))
-
根據(jù)IEEE 802.3中定義涕蚤,DoIP應(yīng)支持10Base-TX(10Mbit/s以太網(wǎng))
對(duì)10Mbit/s網(wǎng)絡(luò)支持的提出目的是,當(dāng)兩個(gè)以太網(wǎng)接口之間100Mbit/s網(wǎng)絡(luò)無(wú)法建立時(shí)的诵,10Mbit/s的低速網(wǎng)絡(luò)會(huì)作為備用方案啟動(dòng)万栅。
根據(jù)IEC 60950-1 (TNV1 circuit) and IEEE 802.3定義,DoIP邊緣節(jié)點(diǎn)應(yīng)設(shè)置變壓器線圈以滿足對(duì)1500V電壓1min以上的隔離西疤。
以太網(wǎng)數(shù)據(jù)鏈路層需求
DoIP邊緣節(jié)點(diǎn)應(yīng)支持與外部網(wǎng)絡(luò)建立10Mbit/s的以太網(wǎng)
DoIP邊緣節(jié)點(diǎn)應(yīng)支持100Mbit/s以太網(wǎng)
根據(jù)IEEE 802.3中定義烦粒,DoIP的邊緣節(jié)點(diǎn)在建立連接時(shí),應(yīng)支持自動(dòng)握手及自動(dòng)協(xié)商(Auto-Negotiation)以保證端口使用相同的傳輸速率及單雙工模式等
根據(jù)IEEE 802.3中定義,測(cè)試設(shè)備應(yīng)支持100Mbit/s標(biāo)準(zhǔn)
為提高對(duì)以太網(wǎng)線纜(端對(duì)端及交叉線纜)的容錯(cuò)能力扰她,測(cè)試設(shè)備應(yīng)支持Auto-MDI特性兽掰,也就是線序自適應(yīng)的功能,設(shè)備可通過(guò)這個(gè)功能可以自動(dòng)檢測(cè)連接到自己接口上的網(wǎng)線類型徒役,能夠自動(dòng)進(jìn)行調(diào)節(jié)孽尽。
而DoIP邊緣節(jié)點(diǎn)不需具備Auto-MDI特性。
診斷口兩種針腳布局定義
目前通行的以太網(wǎng)針腳布局有兩種忧勿,但具體OEM采用何種應(yīng)參照具體的整車通訊網(wǎng)絡(luò)架構(gòu)進(jìn)行選擇杉女。
以下兩種車載以太網(wǎng)診斷口模式都是參考了IEEE 802.3信號(hào)規(guī)范,基于現(xiàn)有ISO 15031-3/SAE J1962車輛診斷口標(biāo)準(zhǔn)設(shè)計(jì)鸳吸。
首先熏挎,對(duì)于高頻信號(hào)傳輸,成對(duì)的Tx+/Tx-以及Rx+/Rx-都應(yīng)盡可能地接近對(duì)方层释,另外婆瓜,還需要有一個(gè)額外的針腳用于表示pin腳類型以及激活以太網(wǎng)控制器。
第一種類型
第一種以太網(wǎng)pin腳布局可用于解決當(dāng)主機(jī)廠已占用1&9針腳的沖突贡羔。
下圖為當(dāng)主機(jī)廠占用了1&9針腳作為CAN_H與CAN_L時(shí)的診斷口端面針腳布局:
各pin腳定義如下表:
對(duì)應(yīng)診斷口與設(shè)備連接時(shí)的通信示意圖:
第二種類型
第二種以太網(wǎng)pin腳布局可用于解決在主機(jī)廠已占用3&11針腳的沖突廉白。
下圖為當(dāng)主機(jī)廠占用了3&11針腳作為CAN_H與CAN_L時(shí)的診斷口端面針腳布局:
各pin腳定義如下表:
對(duì)應(yīng)診斷口與設(shè)備連接時(shí)的通信示意圖:
文章轉(zhuǎn)載于:解讀:車輛遠(yuǎn)程診斷DoIP。