我与汽车IT系统搏斗的故事

2018 年 11 月 20 日 余晟以为

2018年,浦东机场

我是会修车的,我也是会开发软件的。照道理推断,汽车的IT系统理解起来应该不算太难。然而我必须承认,我被汽车的IT系统打败了。

我会修车,是因为我买的第一辆车,就是一辆车龄超过十年的北京吉普切诺基。有些年龄的人大概还记得这款车,四四方方的外形,号称所有SUV的鼻祖,改革开放之后,上海引进了大众生产桑塔纳,北京引进了AMC(后来的克莱斯勒)生产切诺基。在当时,这都是了不起的大工程。

虽然桑塔纳与切诺基在引进这回事上地位齐平,在民间的口碑却大不相同。有道是“开不坏的桑塔纳,修不好的切诺基”。关于后者,又有加注:“开切诺基的人,不在修车厂,就在去修车厂的路上”。具体原因到底是什么,一直没看到权威结论,大概因为本来德国佬就比美国佬细致,加上南方人又比北方人细心吧。早年有故事说,美国专家来到北汽检查生产质量,气得要砸掉几辆刚下线的新车,结果中方工人也气得跳脚:我爷爷那辈就在朝鲜狠狠教训过美国鬼子,才过了几十年,他们又想来对咱们耀武扬威了……

对了,我这辆切诺基还是国产减配版,四驱简化成了两驱,所以取名City Special。如果你看过美国友人何伟写的《寻路中国》就知道,他开的也是一辆City Special,两驱版SUV。

有段时间最喜欢的就是开车去这种地方“越野”

好吧,无论如何。就在拥有这辆车的两年时间里,我基本把这辆车折腾了个遍:全车做隔音、车窗升降改电动、更换全套气门、加装转速表(原配没有)、更换鸡爪垫、改小糸70w前大灯、更换缸线火花塞…… 顺带的,也练出了三脚猫的修车手艺,不但能根据季节把化油器调到最佳状态,还知道各种诡异现象背后的原因:发动机冒蓝烟一定是烧机油了,时速在80上下全车抖动一定是车轮没做动平衡,如果方向盘发虚或者难保持正中就要检查前束角……

可惜,这些经验全都是针对机械故障的,机械的故障很直接,观察、思考就可以得到结论,一般的分析不会要求超过高中物理。如今的车大不相同,各种传感器、控制单元密布,基本可以说全方位主宰了汽车。然而,这其中的逻辑再也不是可以拆开观察和分析的了。前些年报道说汽车的IT系统在软件工程方面“差劲到令人惊讶”——比如丰田的车载系统竟然有一万个全局变量,“正常”的系统里应该一个都没有,我当时还不敢相信,最近才真切感受到。

事情是这样的:虽然我会修车,但也不希望花时间修车。在综合调查了各品牌汽车的故障率之后,这次购车我选择了本田(而且是更靠南的广汽本田),并且选择了装备自适应巡航、自动驻车等功能的车型,为的就是一个省心。

头两年的感受相当好,果然非常可靠,平时完全不必操心。但是两年一过,异常问题就出现了。

问题之一是CarPlay的异常。如今新出厂的车大都装备了CarPlay,可以直接在车载显示屏上看到手机App的内容并互动,也可以直接播放手机里的音乐,不必再单独弄个手机支架。

Apple CarPlay就长这样。来源:apple.com

本来,CarPlay的功能设计很好,如果你选择的音乐来源是收音机或车载U盘里的音乐,CarPlay的音频只会在发出导航指令插入进来,两者互不干扰,和谐共处。除非你选择播放iPhone里的音乐或者打电话,手机才会抢占音源,否则原有的音源不会受到影响。但是在我这里,正听着收音机或者音乐,忽然CarPlay的音频就会莫名其妙激活抢占音源,手机也会自动激活Apple Music到前台,而我的Apple Music里分明没有任何音乐,所以正在音乐莫名其妙就“消失”了。

看起来,好像是iPhone的连接线在捣鬼,一头告诉汽车激活CarPlay音频,一头告诉手机激活Apple Music。但是无论怎么换线,问题都解决不了。

CarPlay的问题尽管不断出现,但也只是烦人,需要开车时不停切换音源而已。而另一个问题就相当危险了:自动驻车会自动解除。

自动驻车有点像编程语言里的“语法糖”。激活自动驻车之后,驾驶员在等红灯时踩下刹车,汽车自动进入驻车状态,松开刹车后车并不会动,一定要踩下油门,车才会前进。本来这是个好的设计,但在我这里,经常开着开着自动驻车就自动解除了。结果在等红灯时习惯性踩下刹车再松开,车竟然继续前行,好几次都把我吓出一身冷汗。仔细观察,才发现在行驶途中经常不定时出现“自动驻车系统关闭”的说明,自动驻车随即就真的解除了……

这个问题不是必定出现,一旦出现就频繁出现。去4S店检查,频繁启停时竟然一次都不出现。考虑到这种现象的危险性,他们还是给我免费更换了手刹和自动驻车开关,可惜问题依然存在。

所以最后的情况就是,我不得不一边开车,一边不停切换音源,不停留意自动驻车有没有解除。本来是想省事,结果反而更紧张。更要命的是,这种问题谁也解决不了,谁也没有个头绪。

出乎意料的是,在一周之内,这两个问题竟然全部解决了,而且都是凭借我自己的能力解决。如果这不是运气,那我真不知道什么是运气了。

先说第一个问题。4S店从来没遇到过这样的问题,要求“换车”似乎也有些小题大做,“换手机”对我也不算可以接受的方案——身为IT人员,我总觉得,这种问题应该有答案的,不是简单一换了之。

我之前在网络上搜索,似乎不少人都遇到过这种问题,但谁也没解决。然后我尝试用英文搜索,honda apple carplay auto activate,答案一大堆,原来iPhone插好之后就自动播放音乐的问题很普遍。解决办法也很简单,有人建议Apple Music里不要保存任何音乐,有人建议Apple Music里只保留一首乐曲,就是很长很长的“静音”,还有人建议删掉Apple Music…… 看得我直摇头,看来老外也相信偏方土方,而这些偏方土方,经我验证都不能解决问题。

直到一个偶然的机会,我想到,是不是我搜索的关键词有问题。这种“莫名其妙自动激活”的现象,真的是auto activate吗?再仔细想想,似乎“自动激活”也应当有更地道的说法,是“随机切换音源”,也就是random switch source。把这个关键词输入Google的一瞬间,我的眼睛亮了:在Apple官方网站上,有人的描述和我的情况几乎一模一样,他的解释是:

如果你的手机是从iOS 10.3.1升级上来的,那么手机里大概遗留一些历史文件。出于某种原因,本田的车载系统遇到这些文件,就会认为此USB接口连接的设备是移动硬盘,而不是iPhone,于是它准备按照读取文件的方式与iPhone交互,而iPhone完全不认识这个指令……

解决的办法很简单,在电脑上备份手机,然后恢复iPhone到工厂模式,再从备份恢复手机。这样数据都在,但系统干净了,就不会有这种问题。

因为我确实是从iOS 10.3.1升级而来,现象与他描述的完全一致,而且这个分析合乎技术人员的判断,我当即按照他的描述做了备份-重制-还原的操作,之后问题果然解决了。等我再仔细看这个帖子,发现下面还有许多跟帖(链接在最后)。看来不只是本田中招,宝马、大众、通用等其它品牌的车也有类似的问题,不过,“重置大法”都可以解决问题。

我以前写过《程序员要怎样学英语》,在里面提出程序员学英语应当能读懂文档、能搞对读音、能直到怎样用英文描述问题。惭愧的是,第三个方面我自己做得也不够好,因为无法准确用英文描述问题,才走了这么长的弯路。看来,路漫漫其修远兮……

大概应了“好事成双”的老话,解决了CarPlay的问题之后,我开始顺着这个思路琢磨自动驻车自动解除的问题。出现这些诡异问题,大概是汽车IT系统与外界交互时出现的问题。那么,我的车上还有什么东西是“汽车之外”但又要与车交互的呢?

我看来看去最后发现,扶手箱里很贴心地提供了一个12V的点烟器接口,而我在这个接口上接了一个车载USB充电器,给后排乘客使用。问题会在这里吗?似乎不应该,车载充电器功能极其简单,没有CPU,基本没有计算能力,怎么会对汽车的控制系统有影响?虽然逻辑上分析不太可能,但实践出真知,我还是把这个车载充电器拔掉了。

结果,自动驻车自动解除的问题,果然一次也没有出现了!无论开多少公里,开多少天,都可以一脚放心地踩下去。回想起来,在4S店检查的时候正逢保养连带洗车,打扫卫生时把这个充电器拔出来了。因为这个充电器在扶手箱里,平时看不到,所以根本也没想到还有这么个变量。

我联系了车载充电器的卖家,他们听说之后也很惊异,因为事关重大,但从来没有任何人反馈过这种问题,所以当即给我更换了一个车载充电器,并把出问题的要回去检查。新换的充电器果然没有任何问题,而老的充电器怎么检查也查不出问题……

更诡异的是,我在朋友圈里说了下这事,才发现还有朋友也遇到了类似的现象,而且这位朋友比我悲惨得多。他的车不是本田,故障也不是自动驻车自动解除,而是开着开着ABS、ESP等等功能莫名其妙报警,只能手动关掉警报。更奇特的是,有一次他的钥匙在车里,人在车外,全车莫名其妙落锁了,只能打车回家去取备用钥匙,4S店反复检查也查不出问题,只能认为他的车实在太特殊。而在他拔掉车载充电器之后,所有问题都奇迹般消失了……

到底是什么原因造成了这种现象,我始终找不到合理解释。按说车载充电器里都有三极管,脉冲信号并不能反向输出到上游;而且点烟器的12V应当只是纯能量输出,不承载任何通讯功能。所以逻辑上说,根本不存在任何可能,然而,它就是影响了行车电脑的控制,让驾驶员紧张。

照我猜测,汽车的IT系统真的很“特殊”,它的软件工程本来就很糟糕,而且涉及到成千上万个变量,实时性要求极高,还需要与各种未知的设备交互,最关键的,它还是人命攸关的。这也能从一定程度上解释,为什么“互联网出身”的造车人很多,但真正造出来的不多,车也不时出现各种诡异问题。尤其是,汽车的IT系统还不能像平常的软件系统那样出问题重启——微博上看到对“互联网汽车”的吐槽,许多故障都是重启之后就消失了。

我又想起之前在Wired杂志上看到,不少飞行员已经习惯在驾驶舱里使用iPad做辅助,查看地图和各种参数,因为数据只是从飞机单向输出,不存在反向影响,所以航空公司也大都“睁只眼闭只眼”。我只能说,航空业的IT系统虽然也封闭,但似乎比汽车行业要做得好点。

如今iPad已经成了许多飞行员的标配。来源:United Continental Holdings Inc.

这两个诡异问题虽然不大,但我觉得还是有必要记下来。一方面是它们可以启发我们,得到排查问题的更多思路,一方面也能帮助其它遇到同样现象的人(如果你或你的朋友也遇到了类似的问题,请帮忙留言并转发),毕竟这种问题太诡异,人人都调查研究一番,实在是对社会成本的极大浪费。

最后,就在准备写文章说这事的当天,我不慎点击了“升级到iOS 12.1”。然后,CarPlay的问题又出现了……

点击“阅读原文”可以查看Apple官网上的讨论,简直是诉苦大会。

相关文章:从Macbook Pro的塑料珠说起程序员要怎样学英语程序员为什么不能只学好“专业英语”?

如果您认为本文说的有道理,欢迎长按识别上面二维码订阅。

“余晟以为”虽是个人号,但只用心做原创,不虚张声势,不故弄玄虚,不带节奏,力求定期更新,只为和你一同探索世界,分享致中平和的观点。

登录查看更多
0

相关内容

CarPlay 可以让司机在驾车的时候安全使用 iPhone. 第一批合作车厂有法拉利、梅赛德斯奔驰、沃尔沃,后续还有宝马汽车、福特、通用、本田、现代、捷豹、起亚、三菱、尼桑、标致雪铁龙、斯巴鲁、铃木和丰田。CarPlay 仅支持 Lightning 接口的设备。 > Available on select new cars in 2014, CarPlay takes the things you want to do with your iPhone while driving and puts them on your car’s built-in display. Now you have a smarter, safer way to make calls, get directions, or play music from your iPhone while in the car. Just plug in your iPhone and go.

1. Apple - CarPlay
2. Apple - Press Info
3. Apple (中国)

Volvo 提供的一个演示视频:
youtube.com/watch?
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
106+阅读 · 2020年1月2日
自动驾驶技术解读——自动驾驶汽车决策控制系统
智能交通技术
30+阅读 · 2019年7月7日
特斯拉首席设计师150页PPT详解其全自动驾驶芯片
智能交通技术
14+阅读 · 2019年5月1日
【财富空间】一个人真正的资本是什么
产业智能官
6+阅读 · 2018年3月16日
无人驾驶免费、人脸识别免费、语音识别免费…百度要干啥?
人工智能机器人联盟
4+阅读 · 2017年12月15日
“黑”掉自动驾驶汽车,只要给路标涂个大花脸
无人驾驶汽车
劲说
6+阅读 · 2016年8月26日
Arxiv
8+阅读 · 2019年3月21日
Self-Driving Cars: A Survey
Arxiv
41+阅读 · 2019年1月14日
Arxiv
11+阅读 · 2018年4月8日
VIP会员
相关资讯
自动驾驶技术解读——自动驾驶汽车决策控制系统
智能交通技术
30+阅读 · 2019年7月7日
特斯拉首席设计师150页PPT详解其全自动驾驶芯片
智能交通技术
14+阅读 · 2019年5月1日
【财富空间】一个人真正的资本是什么
产业智能官
6+阅读 · 2018年3月16日
无人驾驶免费、人脸识别免费、语音识别免费…百度要干啥?
人工智能机器人联盟
4+阅读 · 2017年12月15日
“黑”掉自动驾驶汽车,只要给路标涂个大花脸
无人驾驶汽车
劲说
6+阅读 · 2016年8月26日
Top
微信扫码咨询专知VIP会员