写在开篇丢失的武侠梦在这里起航和延续用科技向老爷子的经典致敬。话说郭靖在江湖上混了几年立了不少功家底也越来越厚实。黄蓉早就不想坐那台快十年的老马车了——颠得慌不说还没有空调。更气人的是那老马车三天两头出毛病修车比养马还贵。“靖哥哥咱换台车吧。隔壁杨过大侠都换第三辆了。”郭靖想了想一咬牙一跺脚“换”他听朋友说国产自主的新能源智能网联车好功能丰富价格实惠。于是去4S店转了一圈还真看上了一台——激光雷达、摄像头、域控制器、大屏幕比他那匹老马听话多了。提车那天郭靖和黄蓉坐在新车里摸着方向盘看着中控大屏心里美滋滋的。黄蓉靠在座椅上歪头看着郭靖“靖哥哥你最近学那些车载网络知识还真是越来越上道了。什么IP包、TCP、UDP、ARP……老顽童一嗓子就蹦出来那次你居然也能跟上了。”郭靖挠挠头憨憨一笑“蓉儿你别夸我我就是硬啃的。不过学了之后再看这车感觉确实不一样了。你看啊摄像头传图像给域控制器走的应该是UDP——要快要低延迟不怕丢几帧。诊断仪连OBD口估计要走TCP得可靠不能丢数据。”黄蓉点点头眼睛转了转突然皱了皱眉“靖哥哥道理是这么个道理。可万一哪天这车真出毛病了——摄像头不传图了域控制器死机了——可怎么办总不能像老顽童一样满车喊一嗓子吧”郭靖一愣“对啊……修车总不能靠喊吧”他想了想忽然一拍大腿“郎中肯定有他的办法”于是郭靖想起了以前修老马车的经历。一、郭靖的修车回忆录从DoCAN到DoIP那台老马车用的是DoCANDiagnostic over CAN。有一次车坏了郎中把诊断仪往OBD口一插说“郭大侠您这车用的是DoCAN速度慢500kbps。您先去休息室喝杯茶估计得等两三个小时。”郭靖那时候还没接触以太网不知道500kbps是啥概念。他乖乖去休息室喝了三杯茶眯了一觉醒来车才修好。郎中擦擦汗“郭大侠您这车太老了刷个固件跟搬家似的。要是有DoIP就好了刷刷刷一根烟的功夫。”郭靖当时没在意现在回想起来忍不住问车郎中“那DoIP又是啥”车郎中指了指新车“您这辆国产新能源用的就是DoIP。插上网线或者通过转接线连上OBD口电脑自己读故障码快得跟您的轻功似的。”二、DoIP是啥——4S店郎中的“诊断网线”DoIP全称Diagnostic over Internet Protocol中文叫“基于IP的诊断”。说白了用网线或以太网修智能电动车。以前修车靠DoCAN慢得像老牛拉车。现在新车用的是车载以太网郎中插上专用连接线一头插OBD口一头插电脑网口电脑自己读故障码、看数据流、刷固件。一句话DoIP就是让4S店郎中插上网线电脑自己给车“把脉”。三、DoIP替掉了DoCAN——修车从“睡一觉”到“刷个短视频”郭靖想起以前修老马车的经历忍不住对比了一下对比项DoCAN老马车DoIP新车底层CAN总线车载以太网100BASE-T1速度500kbps100Mbps快200倍刷固件几小时睡一觉几分钟刷个短视频连接器专用诊断线OBD接口内的以太网差分对*远程诊断不支持支持适用车型传统燃油车国产自主新能源、智能网联车*注部分新车型已直接集成RJ45网口多数车型需通过OBD-to-RJ45专用转接线连接。郭靖感叹“那台老马车当年修一次我在店里睡了一觉。现在这车刷个短视频的功夫就好了。”四、交换机vs网关——郭靖问了个好问题郭靖忽然想到之前学过的交换机问郎中“你刚才说的网关跟之前学的交换机有啥不一样”郎中捋了捋胡子“郭大侠您住过客栈吧”“住过。”“客栈里有店小二您告诉他‘我要找天字一号房的客人’他看手里的登记本MAC地址表就知道天字一号房在哪直接把信送过去。这就是交换机——管的是同一个院子里的短途送信。比如您这车上的三个摄像头都连在同一个交换机上图像数据传给自驾域控交换机知道该往哪送不会发错。”“那网关呢”“网关就像驿站。您要从襄阳送信到桃花岛驿站伙计看地址IP地址决定‘下一站往哪送’。他不管桃花岛在哪只管送到下一个驿站。网关管的是不同院子之间的长途传信。比如您这车的自驾域控IP10.0.1.x要给座舱域控IP10.0.2.x传视频两个IP不在同一个网段交换机不认得网关负责跨网段转发。”郭靖恍然大悟“原来交换机是店小二只管同一条巷子网关是驿站伙计管跨城传信。各管一摊。”郎中点头“对了。车上也是一样。同一个域里的ECU之间交换机就够了。但跨域通信、诊断仪跨网段找ECU就得靠网关。所以车上的以太网交换机负责同一个域比如智驾域内部的高速转发而网关负责跨域智驾域↔座舱域和跨网络以太网↔CAN的路由。各司其职谁也替不了谁。”五、DoIP在车上谁说了算DoIP在车上是一个“小团伙”各司其职角色位置干啥的诊断仪4S店的平板电脑发请求、读故障码、刷固件网关车上的“网络交通枢纽”把诊断仪的消息从OBD口转到对应的ECU/域控制器ECU/域控制器智驾域、座舱域、车身域……接收诊断请求回复数据T-Box车联网终端远程诊断用的云端通过它发指令一根专用转接线插进OBD口就连上了网关。网关看IP地址知道诊断仪要找的是智驾域控制器负责把消息转发过去——这就是网关的活儿。六、DoIP在协议栈的哪一层DoIP不是独立协议它跑在TCP/IP上。以太网类型0x88DD这是一个特殊的“标签”放在以太网帧头里告诉网卡“这个包是DoIP的请交给上层处理”目标端口13400ISO 13400标准规定的DoIP专用需要澄清一点DoIP报文不是替换了TCP/IP而是作为TCP或UDP的“负载”Payload被传输。也就是说物理层 → IP头 → TCP/UDP头 → DoIP头 → UDS诊断数据七、车上哪里用DoIP4S店诊断郎中插上转接线 → 平板读故障码 → 查出问题 → 修车刷写域控制器厂家发了新算法4S店通过DoIP刷进去几分钟搞定远程诊断你车亮故障灯4S店不用你跑一趟云端直接读故障码八、这些坑靖哥哥替你先踩了坑1以为“DoIP是独立协议”。后来才搞明白DoIP跑在TCP/IP上。坑2以为“OBD口只能插CAN线”。后来才搞明白新能源车的OBD接口里定义了以太网差分对信号Pin 1/9或3/11/12/13需要通过专用转接线才能转换成标准RJ45。坑3以为“DoIP只在4S店用”。后来才搞明白T-Box也能做DoIP远程诊断靠它。坑4以为“交换机和网关是一回事”。后来才搞明白交换机管同网段店小二网关管跨网段驿站。九、下步目标DoIP初识算是搞清楚了——它是啥、替掉了谁、车上谁在管、协议栈在哪层。但郭靖合上笔记本摸了摸下巴总感觉缺了点什么。“郎中我知道DoIP是插网线修车了也知道网关负责转消息。可……这网线插上去之后诊断仪怎么知道车上都有哪些域控制器它怎么找到我要修的那个总不能一个个试吧”郎中笑了笑“郭大侠问到点子上了。插上网线只是第一步。接下来诊断仪和车之间还得有个‘入门仪式’——互相认识、验明正身、建立信任。这套流程走完了才能正式开始诊断。”郭靖眼睛一亮“入门仪式啥仪式”“车辆发现和路由激活。下一期我就带您看看郎中插上转接线之后诊断仪是怎么找到车上那些‘失散的域控制器兄弟们’的。”下期预告DoIP的“入门仪式”——寻找失散的域控制器兄弟们。十、写在最后这一篇最大的收获DoIP就是4S店郎中的“秘密武器”——插上转接线电脑自己给智能电动车“把脉”。修车从“睡一觉”变成了“刷个短视频”趁蓉儿不在刷刷其他美女哦吼吼。郭靖感叹那台老马车用了十年这辆国产新能源怕是能用到退休。周末在家当个学爸886。