“黑客”手段修复电子海图多年的故障,大家都来为这位“神级”电机员点个赞

船长:大电你有时间研究一下这个1号电子海图键盘。

我:直接申请新的换一个不就行了吗?

船长:2017年公司买这条船的时候(买的二手船)这个键盘就是坏的已经荒废好几年了,后来找岸基维修公司的人上来修了,换这个键盘要1000欧元,太贵了,公司没批。你能修好的话我给你申请劳务费,修不好也没关系反正本来就是坏的。

这个键盘跟普通电脑键盘的区别就是多了一些ECDIS电子海图专用控制键和旋钮,见下图:

首先把1号电子海图键盘拆下装到2号电子海图上测试一下是不是真的坏了,结果还是不好使。

损坏的是电子海图专用控制键部分就是图中的红色区域,普通键盘区域的按键都好使,背光灯也亮。电子海图专用控制键部分一个按键也不好使,背光灯也不亮。

首先简单分析了一下可能是专用键区域的背光控制芯片坏了造成短路,从而导致整个专用键控制区域失效。按照这个思路开始拆解键盘并分析电路组成,拆开后发现这个键盘不简单啊做工用料极其考究,PCB至少是4层以上布线、沉金工艺、ALPS编码器……

找到两颗PWM背光控制芯片,这两颗芯片分别控制着普通键盘区域的背光和专用键区域的背光,由于是双列SMD封装,拆焊比较简单,直接用烙铁拖焊法轻松取下对调两个芯片后测试发现涛声依旧。

拆下芯片

 背光芯片对调焊接后

专用键区域的背光依然不亮。继续分析这个PWM背光控制芯片的控制方式发现这两颗芯片都是由一个ARM处理器控制(多层PCB跑线路真的是犹如大海捞针,不过还是被我找到了)也就是说处理器判断没达到所需的条件所以故意让专用键区域不好使。

开始分析中央处理器周边电路 发现了一个串口通信芯片,会不会是这个串口通信芯片损坏了导致专用键区域不好使呢?测试一下就知道了,在电脑上用串口调试软件,然后用RS232通信小板与键盘上的串口通信芯片连接好,在电脑上的串口调试软件中的接收窗口已经可以看到键盘发来的通信数据,说明键盘通信芯片也是好使的。

在分析了整个键盘的所有芯片功能后脑海里呈现了整个键盘的原理方框图,在对所有的怀疑对象都排查掉后我得出了一个我自己都不敢相信的结论:这个键盘没坏!所有的硬件功能都是好使的!既然这个键盘没坏那就一定是ECDIS电子海图软件或者操作系统的问题,开始研究ECDIS电子海图软件系统。

查阅了电子海图说明书,说明书上对于键盘专用键区域失效问题只字未提。没办法只能自己摸索吧。

在电子海图软件漫长的探索过程中找到了键盘的端口号是COM3,也就是说系统必须要把键盘的串口号分配为COM3电子海图软件才能与键盘建立通信。想到这立马重启开机按F8想用安全模式进操作系统,没想到开机F8被屏蔽掉了。试了其他办法也没能进入电子海图XP操作系统的界面,开机就自动启动电子海图软件并屏蔽掉了显示桌面、资源管理等快捷键。

我想没有不透风的墙 继续摸索看看会不会有什么漏洞让我跳转到XP操作系统界面以查看并确认端口号是否正确来排查端口号错误导致无法通信这个假设。

终于功夫不负有心人让我找到了一个漏洞。方法是(界面全是英文为方便阅读理解以下全用中文表述)在电子海图帮助界面跳转至浏览器,后跳转至资源管理器,再跳转至系统管理,最后跳转至硬件管理,果然如我所想。

系统分配的端口号是COM20,而电子海图软件里是COM3问题就出在这里,系统分配的端口号与电子海图软件里的端口号不一致导致无法建立通信,因键盘内处理器无法与电子海图软件建立通信所以导致专用键区域失效。将COM20改成COM3重启电子海图电脑,屏幕还没点亮的时候专用键区域的背光灯就亮了,系统启动完成后测试所有功能都好使。荒废了好几年的电子海图就这样满血复活啦!修复软件故障就是这么神奇,不用换任何元件动动鼠标、敲敲键盘就搞定!

这里解释一下为什么当时把这个键盘接到2号电子海图上依然不好使,因为每一个USB串口通信芯片都有自己的硬件ID号,系统把这个ID号分配给哪个串口号已经记录进了注册表,因为2号电子海图系统已经把原来的键盘分配到COM3,再插入其他键盘就不会再分配COM3这个串口号所以才不好使。

(0)

相关推荐