掌握这些,就能成为嵌入式开发多面手!

时间:2021-07-11 18:47:39

掌握这些,就能成为嵌入式开发多面手!

合格的嵌入式开发者应是多面手,应具备各方面的技能,包括从硬件到软件到应用(电力系统保护,自动化,控制,人工智能,机器学习等),从单板到系统整机,从技术到管理,甚至吹拉弹唱也需要了解一点,做项目管理时可以提升团队气氛和丰富业余生活。


嵌入式知识和技能体系庞大,样样精通者凤毛鳞角,一般都是一专多能,各类技能多少都能说上一点。按照嵌入式开发层次关系,整理嵌入式开发者技能大全如下:


1、处理器


MCU架构及开发。MCU俗称单片机,把*处理器(CentralProcess Unit,CPU)的频率和规格作适当删减,并将内存(Memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD等驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同的组合控制。常见的MCU包括Intel的C51/C8051F系列,Motorola的68K系列,MicroChip的PIC系列等。


MPU架构及开发。MPC指微处理单元,一般不带外围器件(如存储器阵列等),是高度集成的通用结构的处理器。典型如Intel的X86系列、飞思卡尔的PowerPC系列、P1系列,ARM架构处理器等。


DSP架构及开发。DSP采用哈佛结构,同一个时钟周期内可以多次访问存储器,多级指令执行流水结构提高了系统的执行效率,DSP芯片常用于复杂的运算,典型如TI的TMS CXX系列,ADI的SHARC系列、Blackfin系列等。


2、CPLD&FPGA架构及开发


CPLD&FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。通过可编程逻辑单元实现各种算法和组合逻辑。


基于CPLD&FPGA实现程序开发。包括RTL门级逻辑图设计,VerilogHDL程序设计,VHDL程序设计,XILINX编译软件使用,ALTERA编译软件使用,低速串、并行通信控制器设计,高速串行通信控制器设计。


3、电路设计和分析


包括模拟电路和数字电路设计,包括器件DataSheet阅读,原理图及PCB阅读等。


4、原理图/PCB设计工具


Cadence,Altium,PADS,DXP等。


5、电路仿真工具使用


Multisim,Pspice,ADS,MATLAB等。


6、分立类电子元器件工作原理和选型


电路防护类器件,阻容器件,电感磁珠,DC/DC,晶振,二极管,三极管,稳压管,光耦,MOS管,IGBT,继电器,开关和按键,LED指示灯,PCB板用接线端子,交流互感器等。


7、集成类电子元器件工作原理和选型


AD,逻辑器件,DA,运放,计数器,触发器,锁存器,译码器,SRAM,SDRAM,DDR,FLASH,EEPROM,接口芯片等。


8、失效分析与可靠性


物料的构造与工作原理,金相切片,显微观察,PCB形变测量,HALT实验技术,可靠性计算等。


9、硬件测试(器件、模件、整机)


元器件测试方法,模件、整机测试方法,元器件、模件、整机测试问题分析,国标、行标理解,EMC问题分析和解决等。


10、操作系统架构及开发环境


了解操作系统原理及基本编译原理。操作系统提供CPU资源管理、外设驱动、内存管理、线程/进程管理、文件系统、网络通讯、安全机制、界面管理等。嵌入式实时操作系统的基本特征是事件响应的快速性和确定性,在嵌入式系统中广泛应用。


通用操作系统包括windows、Unix、LInux等。目前在嵌入式领域广泛使用的操作系统包括:嵌入式实时操作系统µC/OS-II、嵌入式Linux、WindowsEmbedded、VxWorks、FreeRTOS、QNX等,以及应用在智能手机和平板电脑的Android、iOS等。


11、底层驱动开发


VxWorks操作系统驱动开发,Linux移植,Linux开发,单板DTS配置以及根文件系统生成(Buildroot),U-BOOT移植和开发,C语言开发,Python语言开发,Makefile编写,GNU编译器及工具链的使用,Linux操作系统使用。


具体包括以太网驱动,SPI驱动,I2C驱动,文件系统驱动,CAN驱动等。


12、系统软件设计


面向对象,设计模式,UML,嵌入式多任务开发,重构,多核开发等。了解常用的开发过程,如敏捷编程,测试驱动开发等。


13、系统软件开发


熟悉开发语言,包括:C,C++,C#,QT,Python,JAVA,等。熟悉WEB 开发,开发规范等。


14、数据结构与算法


常用数据结构和算法,图论算法,数字信号处理算法,小波算法等。


15、网络与通信


计算机网络原理,TCP/IP协议原理及分析,IEC61850规约(建模,MMS,SV,GOOSE等),103规约,104规约,DNP规约,Modbus协议,物联网Zigbee协议,bluetooth,wireshark等报文分析工具,环网HSR协议,网络安全等。


16、数据库


数据库原理与设计,SQLite/Access/MySQL/SQLServer/Oracle/大数据hadoop等。


17、界面和图形库


Zinc,UGL,QT,SVG,MiniGUI等。


18、应用知识(以电力系统自动化为例)


电力系统常识,继电保护知识,测控知识;智能变电站网络架构,网分,故障录波器,保信,远动等。


19、调试和测试


软件测试基础,61850规约测试,网络测试,时间管理测试,应用功能测试(继电保护功能等),ATS测试开发与使用,Labview测试程序开发等。


20、项目管理


配置管理如版本管理工具Git使用等,项目计划与任务划分,项目进度跟踪,项目协调等。

掌握这些,就能成为嵌入式开发多面手!

1.嵌入式开发者必备的基础硬件知识

2.电子工程师除了挣工资,还可以这样增加收入!

3.一个C程序(源代码)是如何运行在硬件上的?

4.uC/OS-II系统开发的6条重要总结

5.模电工程师的三大法宝:差分信号、时钟数据恢复、信道均衡,你都清楚吗?

6.月薪14K到经济*,电子工程师绝好的标尺性参照经历

掌握这些,就能成为嵌入式开发多面手!

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。