原创 【工程师故事】逐光十年:一位软件工程师的职业与家庭旅程

2025-2-9 16:09 50 0 分类: MCU/ 嵌入式


一、初入职场:显示器领域的探索(2014 - 20XX)

2014 年,我怀揣着对未来的憧憬和对技术的热爱,大学毕业踏入了职场,进入了显示器行业。那时的我,就像一张白纸,对这个领域充满了好奇与期待。
我的主要工作是调试通讯外设,UART、I2C、SPI 这些协议成了我日常接触最多的东西。一开始,面对这些复杂的通讯协议,我有些手足无措。但凭借着在学校打下的基础和一股不服输的劲儿,我一头扎进了各种技术文档和代码里。记得有一次,为了调试一个 UART 通讯问题,我连续几天都守在电脑前,反复检查线路连接、修改配置参数,甚至怀疑是不是芯片本身出了故障。经过无数次的尝试和失败后,终于找到了问题所在 —— 是一个小小的电容参数设置不当导致了信号的不稳定。那一刻,我深刻体会到了作为一名工程师的成就感,也明白了细节对于技术工作的重要性。
除了通讯外设调试,我还负责控制电源时序。这就好比是给显示器的各个部件安排一场精密的 “开机秀”,确保它们在正确的时间顺序下启动,否则可能会导致显示器无法正常工作或者出现各种奇怪的故障。通过编写代码来精确控制电源的开关时间和顺序,我逐渐掌握了电源管理的精髓。

PWM 控制 MOS 管来控制电机也是一项充满挑战的工作。想象一下,通过调节 PWM 信号的占空比,就像在用一根无形的指挥棒,精准地控制着电机的转速和方向,从而实现显示器内部各种机械部件的协调运作。在这个过程中,我不仅学会了电机控制的原理和方法,还对硬件和软件的结合有了更深刻的理解。

同时,我还接触到了 E2PROM、陀螺仪、BT656 协议以及屏驱动等相关工作。E2PROM 好似一个小小的 “记忆宝盒”,存储着显示器的重要参数和配置信息,我需要确保这些数据能够准确无误地读写和存储。陀螺仪则为显示器带来了更多的交互可能性,通过它,显示器能够感知到用户的操作角度和动作,我努力让这些感知数据能够准确地转化为屏幕上的显示效果。BT656 协议是连接显示器与外部设备的重要桥梁,我致力于优化协议的实现,提高数据传输的稳定性和效率。而屏驱动更是整个显示器的核心,我不断地调试和优化屏驱动代码,让屏幕能够呈现出更加清晰、绚丽的画面。

二、行业转换:TV 软件的适配挑战(20XX - 20XX)

在显示器行业积累了一定的经验后,我迎来了职业生涯的第一次转型 —— 进入 TV 行业,从事 TV 软件相关工作。这是一个全新的领域,虽然同样涉及到软件开发,但面临的挑战和需求却大不相同。
我的主要任务是适配客户主机生产自动化测试协议。这就像是要为 TV 软件和客户的生产设备搭建一座沟通的桥梁,确保它们能够顺利地进行各种测试和交互。我需要深入了解客户的测试流程和要求,然后将这些需求转化为软件能够理解和执行的协议。在这个过程中,我与客户进行了大量的沟通和协作,不断地调整和优化协议的实现,以满足不同客户的个性化需求。

遥控器和屏的工作也是我的重点之一。遥控器是用户与 TV 交互的重要工具,我努力让遥控器的信号能够准确无误地被 TV 接收和处理,同时优化遥控器的操作体验,让用户能够更加便捷地控制 TV。屏的工作则涉及到 TV 的显示效果和稳定性,我与硬件团队紧密合作,调试和优化屏的驱动程序,解决各种显示问题,如画面闪烁、色彩偏差等,致力于为用户带来最佳的视觉享受。

三、技术深耕:汽车 HUD 模块开发(20XX - 20XX)

随后,我加入了 BYD,投身于汽车 HUD(抬头显示)模块的开发工作。这是一个充满机遇和挑战的领域,汽车 HUD 作为车辆与驾驶员之间的重要信息交互窗口,对安全性和可靠性有着极高的要求。
在这一阶段,我学习了车身 CAN 诊断。CAN 总线就像是汽车内部的 “信息高速公路”,承载着各种车辆数据和控制信号。通过学习 CAN 诊断,我能够深入了解汽车各个部件的运行状态,及时发现和解决潜在的问题,为 HUD 模块的稳定运行提供了有力保障。

以太网 DoIp SomeIp 协议的学习也让我受益匪浅。随着汽车智能化的发展,以太网在汽车中的应用越来越广泛,DoIp(Diagnostic over Internet Protocol)和 SomeIp(SOA Middle layer Protocol)协议则为汽车的远程诊断和通信提供了标准化的解决方案。我努力掌握这些协议的原理和实现,将它们应用到 HUD 模块的开发中,实现了 HUD 与车辆其他系统之间的高效通信和远程诊断功能。

Linux 应用开发和 S32K144 开发是我在这段时期的重要技术积累。Linux 作为一款开源的操作系统,具有强大的功能和灵活性,我利用 Linux 开发了 HUD 模块的各种应用程序,如图形界面、数据处理等。S32K144 是一款高性能的汽车级微控制器,我深入学习了它的架构和特性,充分发挥其性能优势,为 HUD 模块提供了强大的硬件支持。

Qt 上位机的开发则让我在用户界面设计方面有了更多的探索。通过 Qt,我能够为 HUD 模块打造出美观、易用的上位机界面,方便工程师进行调试和测试工作。同时,我还参与了 Boot 升级的相关工作,确保 HUD 模块能够及时更新软件版本,获取最新的功能和性能优化。

四、储能新篇:BMS 软件的探索(20XX - 至今)

如今,我投身于储能 EMS(能源管理系统) BMS(电池管理系统)行业,专注于 BMS 软件的开发工作。这是一个充满前景的领域,随着全球对清洁能源的需求不断增加,储能技术的重要性日益凸显。
我的工作主要涉及单片机开发,Iot 云 mqtt 对接以及 http 协议应用开发。单片机作为 BMS 的核心控制单元,我需要编写高效的代码来实现电池的充放电管理、状态监测、故障诊断等功能。通过 mqtt 协议与 Iot 云进行对接,我能够将 BMS 的数据上传到云端,实现远程监控和数据分析,为储能系统的智能化管理提供了有力支持。http 协议应用开发则让我能够为 BMS 系统搭建起与外部设备和平台沟通的桥梁,方便用户通过网页或者手机应用等方式对储能系统进行操作和管理。
在编程语言方面,我熟练掌握了 C、C++、Java、Python、C#、ArkTs、JavaScript 等多种语言。这些语言各有特点,C 和 C++ 在底层开发和性能优化方面表现出色,Java 和 C# 则在跨平台应用和企业级开发中广泛应用,Python 以其简洁易读的语法在数据分析和人工智能领域备受青睐,ArkTs 和 JavaScript 则在前端开发和物联网应用中发挥着重要作用。通过灵活运用这些编程语言,我能够根据不同的项目需求和应用场景,选择最合适的技术方案,为储能 BMS 软件的开发提供了坚实的技术保障。

五、家庭与教育:陪伴孩子成长

在忙碌的工作之余,我的家庭也给了我无尽的温暖和支持。我的小孩已经 6 岁了,回想起前几年,由于工作的原因,我经常需要出差,陪伴孩子的时间比较少。每次回到家,看到孩子那渴望陪伴的眼神,我都感到十分愧疚。随着孩子渐渐长大,我开始更加注重家庭生活,尽量抽出时间陪伴他。
如今,每到周末,我都会回到家里,陪伴孩子玩耍、学习。在孩子的教育方面,我始终秉持着耐心教导的原则。一方面,我鼓励孩子做事要认真对待,不仅仅是为了完成任务,而是要追求超出期待的效果。比如,老师布置的作业,我引导孩子不仅要完成规定的题目,还要思考更多的解题思路,从多个角度去分析问题。通过这种方式,培养孩子的思维能力和解决问题的能力,让他在学习中能够更加主动和深入。
另一方面,我注重培养孩子的沟通表达能力。我告诉他,在日常生活中,要学会抓住事情的重点去讲述和记录。比如,白天出去玩或者做一些有意义的事情,晚上回家后,让他尝试着把当天的经历用语言表达出来,与家人分享。这不仅能够锻炼他的语言表达能力,还能让他学会回忆和总结自己的经历,从中获得思考和感悟。

这十年来,作为一名软件工程师,我在技术的道路上不断探索和前行,经历了多个行业的变迁和挑战。同时,我也在家庭生活中扮演着父亲的角色,努力平衡工作与家庭的关系,陪伴孩子成长。未来,我将继续在技术领域深耕,为行业发展贡献自己的力量,同时也会更加珍惜与家人相处的时光,用心教育孩子,让他在健康快乐的环境中茁壮成长。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /3 下一条