电机控制和Linux驱动开发哪个方向更好?
先说结论:任何领域就像世界上的五行一样,阴阳结合、虚实结合、利弊结合。至于哪一种更好,我们不能一概而论。最重要的是弄清楚哪一个更适合你?
1. 共鸣
当我看到这个问题的时候,确实是我早年面临的一个选择。我忍不住回答一下,一来是为了表达自己的观点,二来是为了在网络上发光,影响和帮助更多的人。
2. 洞察力
要知道电机控制和Linux驱动开发哪个方向更好,首先要知道这两个方向主要是做什么的!
我相信,对这个问题有疑问的大多数人都站在岔路口,不知道两个方向的具体情况。
2.1 电机控制的主要作用是什么?
电机控制就是控制电机!那么需要什么技术来控制电机呢?
电机类型及特点:电机有多种类型,如直流电机和交流电机;分为有刷、无刷、单相、三相等。您必须熟悉各类电机的基本知识。
控制算法:如果要控制电机,最重要的是控制算法。你必须会PID,你必须了解三环控制理论,你必须熟悉很多理论推导,你必须有基本的数学基础!
控制策略:需要了解各种控制策略,如矢量变换控制、直接扭矩控制、直接功率控制、无传感器控制、自适应控制等,这还涉及到物理知识和信号处理知识。 ETC。
驱动代码实现:这部分在整个电机控制中并不是那么重要。它基本上实现了基于算法的C控制代码,常用于DSP开发。
电机控制方向的工作一般需要较高的理论知识、控制算法等,而且学习起来并不容易。但相对而言,门槛高的竞争会更小。
以上是一个粗略的清单。如有错误,请指出。
2.2 Linux驱动开发的主要目的是什么?
Linux驱动开发主要分为两个方面:Linux总线驱动开发和Linux外设驱动开发。
2.2.1 Linux总线驱动
这部分主要是芯片原厂需要做的事情。芯片流片后,如果需要支持Linux系统,则需要实现Kernel总线驱动。这部分主要包括
各类子系统开发:IIC子系统、SPI子系统、MMC子系统、CLK子系统、GPIO子系统、Pinctrl子系统、中断子系统等。
BringUp工作:这部分是实现芯片从上电到uboot-kernel-rootfs的完整启动方案,供客户使用。
文档撰写:为了提供芯片给客户使用,需要一些SPEC和开发指南等文章。
从事Linux总线驱动开发,由于技术的迭代,底层驱动的实现一般不会有太大的变化,大部分都是维护工作和支持工作。
2.2.2 Linux外设驱动
这部分和我们经常使用STM32做的开发工作几乎是一样的。更专注于Sensor开发和周边开发。
各类传感器开发:如MPU6050、激光传感器、摄像头传感器等。
各种外设开发:如PWM控制、WiFi和BT开发、显示开发、音频开发等。
从事Linux外设驱动开发,主要面向产品。公司每次迭代产品,都需要保持外围功能的稳定性,这个过程可能相当复杂。
三、总结
以上只是粗略的列出,肯定会有一些错误。
以我为例
我从事电机控制工作。当时我在一家世界500强公司工作。整体加班强度不高,整体工作还不错。
不过我感觉电机控制毕竟不是大学专业研究的领域,它涉及物理、信号处理、电机控制理论等知识。我消化起来比较慢,所以果断转向Linux驱动开发方向。到目前为止还不错。
我只想说明一点:每个方向的好坏都不是非黑即白的。重要的是看什么适合你!
编辑:黄飞