移动互联时代:应用驱动的万物互联新架构
|
去年二月那台工业网关,修得我直骂娘——客户说设备总断连,现场一看,好家伙,协议栈堆了七层,从MQTT到CoAP再到LwM2M,全塞在一个256M的RAM里。我原以为拆开能直接换模块,结果发现PCB上焊了三个不同厂商的通信芯片,其中一颗还是定制版,丝印被磨得只剩半截字母。车间那台风扇一直在响,我蹲在铁架前拆螺丝,手套上那块硬掉的胶硌得手疼,手机在铁台上震了一下,是客户催进度。 拆到一半我就觉得不对——这架构根本不是“应用驱动”,是“硬件堆料驱动”。每个芯片都配了自己的驱动库,库与库之间还互相调用,像极了老张头那台改了八手的捷达,发动机舱里塞了三个不同型号的继电器。我拿示波器测SPI总线,波形抖得跟旁边小王抖腿似的,测到第三组数据时,谁把扳手掉地上了一声闷响,我手一抖,探头直接戳到电源线上,烧了颗LDO。 其实我也没拆到底。那颗定制芯片的封装是BGA,得用热风枪吹,可车间里的热风枪调温旋钮是坏的,只能靠感觉——我敢打包票,这温度绝对超过260度,但具体多少?鬼知道。拆下来一看,芯片背面有块焊盘被刮花了,像是之前有人用美工刀刮过,估计是想飞线,结果没成功。中午盒饭里有块姜,我嚼着姜丝想,这架构要是能跑稳,我直播吃键盘。 但怪就怪在,它还真跑稳了——或者说,跑得“勉强稳”。客户说,设备每天凌晨三点会断连十分钟,我查日志发现,是内存泄漏到临界值后触发系统重启。可奇了怪了,重启后内存不降反升,像极了老李头那台电脑,杀毒软件越杀病毒越多。我原以为是驱动库的问题,结果把所有库都换成最新版,问题还在;又以为是硬件资源不足,结果把日志级别调到最低,断连时间反而从十分钟缩短到五分钟。 后来是客户自己解决了问题——他们把设备上的应用全删了,只留一个最基础的MQTT客户端,结果断连消失了。我听到这消息时,正蹲在车间地上焊飞线,旁边小刘抖着腿说:“这不就应了那句话?‘应用驱动’?驱动个屁,明明是‘应用拖累’。”我笑出声,结果被焊锡烫了手,手套上那块硬胶又硌了一下,疼得我直抽气。
文章配图,仅供参考 这个型号我只在别人那儿见过一次,是去年在深圳参加展会时,某厂商展台上摆的。当时他们吹得天花乱坠,说这是“万物互联的终极架构”,我凑近看,发现PCB上居然用了四颗不同的晶振——两颗给主芯片,一颗给通信模块,还有一颗给实时时钟。我问他们工程师:“这么多晶振,不怕时钟不同步?”那工程师支支吾吾说:“我们有补偿算法。”我追问:“算法在哪?”他指了指主芯片上的一个小黑点:“在固件里。”我盯着那小黑点看了三秒,转身走了——这补偿算法要是靠谱,我名字倒过来写。回到去年二月那台网关,客户后来又找过我一次,说想加几个应用。我直接拒绝了——不是不想修,是修不了。那架构就像个漏底的桶,你往里倒水,它漏得比倒得还快;你想堵漏,结果发现漏的是桶底,不是桶壁。我跟他实话实说:“要么换硬件,要么降应用,二选一。”客户选了换硬件,买了台新的,架构简单得像张白纸——就一颗主芯片,配了个4G模块,协议栈只用了MQTT,运行了三个月,没断过一次连。 这个事儿让我琢磨了很久——“应用驱动的万物互联新架构”,到底站不站得住?我的结论是:优胜劣汰。好的架构像老张头那台捷达,虽然老,但改得合理,能跑能造;差的架构像那台网关,堆料堆得像座山,结果连个小坡都爬不上去。但这个判断我也说不准,要看运气——有些架构现在看着烂,可能过两年硬件性能上去了,问题就解决了;有些架构现在看着好,可能过两年应用场景变了,又成垃圾了。 修完那台网关后,我把PCB上的那颗定制芯片收了起来,放在工具箱最底层。有时候干活累了,会拿出来看看,想想那丝印被磨掉的半截字母,到底是啥。小刘说我是闲的,我笑他不懂——干我们这行的,总得留点念想,万一哪天用上了呢? (编辑:应用网_常德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


移动互联时代,你的设备还在单机?
物联网+移动互联时代下的数码安全新挑战
浙公网安备 33038102330457号