电子技术主要涉及两个方面,软件和硬件。软件就是C、C++等代码;硬件就是电路设计,包括原理图设计,PCB绘制,电路板焊接调试等。

很多工科学生,在大学期间,都学习C语言、C++、C#等编程语言,甚至verlog硬件语言。模拟电子技术、数字电子技术、电路等课程,也基本都学过。由于课程比较少,加上学生没有太多的时间去深入研究这些课程。因此,很多学生到毕业时,基本上什么都不会,要从0开始学习。

学校每年都会有电子大赛,这些大赛可以给学生一个自我展示能力的机会。有条件的学生,最好多参与这样的比赛,这样在准备期,你可以和老师、师兄学习电子技术,提高自己的动手能力。

forum.jpg


我们最近做一个无刷电机控制方面的项目。该产品需要具备功能是,通过上位机发送指令,CAN总线通信给CPU,CPU接到上位机的指令以后,去控制无刷电机运行,无刷电机运行时是带负载的,需要做到匀速,不因电机负载变化,而无刷电机速度发生变化。

从这个项目项目中,作为一个电子设计者需要哪些技术。

一、能设计原理图,绘制PCB

这个项目的原理图设计,需要选择合适CPU,CPU是否具有CAN通信模块。市场上很多CPU自带CAN功能,然后选择CAN通信的电平转换芯片。我们需要驱动是无刷直流电机,需要选择一个电机驱动芯片,你需要考虑驱动芯片能否正常驱动电机。选择元器件时,需要考虑性价比。

forum.jpg


PCB绘制,很多人认为PCB绘制是一个体力活,没有技术含量。任何技术,你要把它学好、学精,都不容易,绘制PCB也是如此。你需要考虑元器件的摆放,通信信号和电源线的距离多远才合适。特别是电机驱动,有的电流非常大,可高达20多A,PCB走线需要多宽,才能承受这样的大电流。总之,绘制PCB需要考虑很多因素。用合适PCB板尺寸,将元器件摆放完成,走线完成。PCB的可靠性和稳定性也需要有保证,不能用几天,板子就烧坏了。

forum.jpg


二、下位机代码的撰写

下位机软件包括CPU的初始化,CAN通信协议(自定协议),电机驱动,电机的速度采集,电机速度调节算法(PID算法)等。

forum.jpg


CPU初始化,也就是让处理器运行起来,这个很容易。CAN通信协议,这个一般是客户自己定义的软件协议,这个有难有简单的,需要有一定基础,才能完成协议代码的撰写。电机驱动,一般才用PWM波进行驱动,难度不大。采集速度函数,要能准确地算出电机实时速度,通过PID算法去调节电机速度,让电机达到我们给定的速度值,这个难度较大,需要设计者有较强的基础。正所谓万事开头难,多多做项目,技术能力总会提高的。

三、上位机代码的撰写

一般中小公司,都希望电子设计者完成这项工作,而不是专门请上位机设计者,大公司论当别论。上位机代码撰写,一般采用的C++语言或者C#,也有用labview的。你需要将上位机软件的界面优美化,你可以找一些合适图片,让上位机界面看起来舒心合适。

forum.jpg


作为一个合格电子设计者,起码具备前两项技能,最好上位机软件也能做,这样可以增加你的竞争能力。电子技术是慢慢积累的,需要一步一个脚印,急不得。