跳转到主要内容

前12嵌入式设计技能为新开发人员

嵌入式设计技能

电子工业很快将急需的新设计师,包括PCB布局专家和嵌入式工程师。新工程师,嵌入式是完美的十字路口之间的硬件和软件建设。在嵌入式系统设计中,开发人员需要知道一点关于他们正在与硬件,他们需要能够为应用程序编写代码。但是其他技能是很重要的,以确保成功在工作场所?

在本文中,我们将介绍一些最重要的技巧嵌入式工程师需要知道在现代电子产品设计的世界。嵌入式设计人员将不得不与PCB布局工程师和电气工程师密切合作,所以他们的技能在很大程度上依赖于从两组获得信息。我们会看到,所需技能远远超过学习编程语言和开发人员从半导体供应商资源。

前12个嵌入式设计技能

嵌入式设计技巧在这个列表包括许多技能要求在软件和硬件世界。许多硬件开发人员可以过着双重人格的生活作为软件开发人员,因为这些技能进入这两个领域。如果你是一个新开发人员,即使你不打算在电子专业工作,确保你学习这些嵌入式设计技能。

1。C / c++编程

这是大多数芯片组的旗舰语言用于编写应用程序。此外,有许多ide为C / c++提供全力支持,包括供应商的ide,可以编译C / c++代码到一个十六进制或本文件。许多开源项目和供应商开发库是用C / c++编写的,所以重要的是要知道如何将这些资源集成到您的程序。

2。Python编程

最近,Python已经成为软件开发人员所使用的主要语言之一,为构建桌面应用程序,网络应用程序,甚至是移动应用和一些附加包。现在一些单片机ide将支持MicroPython,使用Python语言的编程方案应用到微控制器固件开发。在Python中看到更多的采用传统的软件公司,了解这门语言会让你更有价值的雇主或作为一个自由开发人员。

3所示。算法优化技巧

核心算法开发和验证一次,重要的是要了解如何优化它。算法优化是指消除冗余或不必要的计算步骤的算法。这个想法是为了减少总的计算努力实现一个算法在嵌入式系统上。有些算法可能会很简单,一个额外的步骤不会大大增加工作量。然而,先进的嵌入式系统可以实现复杂的算法,需要用最少的时间和完成计算;确保你知道如何发现重复步骤一个算法,以便不浪费计算资源。

4所示。阅读电路图和插脚引线

这是一个基本的技能对于任何工作在电子技术中,包括嵌入式开发人员。嵌入式系统设计师可能需要参与前端设计审查通过仔细回顾图表,以确保所需的组件之间的连接。这也可能需要的系统测试和调试一旦建立一个原型设计和编程。

嵌入式设计技能

5。数字信号和时间图

这可能听起来像一个广泛的需求,但了解数字信号之间的过渡的水平,以及如何阅读时间图,与董事会沟通设计师来说是至关重要的。如果你理解信号的行为,您可以将这些需求传递给PCB布局工程师,谁就可以确定高速设计要求阻抗控制是必要的。

:嵌入式设计技能

这样的主板可能部署在嵌入式系统中,而开发人员需要知道的重要数字接口需求和PCB布局工程师交流。

6。常见的数字接口

基于微控制器的嵌入式系统和嵌入式cpu将通常使用的一组标准数字接口源和接收信号。这是另一个重要的部分理解数字信号的基本标准和接口在嵌入式系统和数字组件一般。

随着时间的推移,电子行业在很大程度上已经聚集了一组最常用的串行接口在嵌入式处理器和asic。四个最常见的单端串行接口:

  • 串行外围接口(SPI)
  • Inter-integrated电路(I2C)
  • 通用异步收发两用机(UART)
  • 可配置GPIOs

嵌入式开发人员需要知道如何实现所需的接口产品的应用程序,以及任何将出现在设备的外围设备。根据组件,这些接口可能操作率非常快的优势,比如在一个FPGA。某些微控制器将使用更少的先进逻辑和自然会操作速度较慢的边缘。PCB布局工程师,嵌入式开发人员应该都知道接口需求,为PCB布局的目的和时间的目的。

更先进的嵌入式系统将使用高速接口,根据可能的部件和外围设备需要支持主要的芯片组。这些接口包括:

  • 各种类型的以太网路由(信息产业部、RMII SGMII,等等,通常1 Gbit)
  • USB(最常见的USB 2.0,但新系统使用USB 3.0)
  • DDR2或更高
  • 作为PCIe(通常是代或更高)
  • 并行转换器(可能不是标准化)

对于更复杂的组件fpga,您将需要知道一些额外的接口需求这些可以传达给其他工程师。最重要的接口在高速系统将主要是微分,所以额外的高速设计要求微分对(调优和间距、长度等)需要确保董事会功能正确。嵌入式设计师需要知道微分接口是什么以及如何发现他们在一个数据表,原理和框图。

7所示。基本的Linux安装和命令

一些嵌入式系统你会相互作用,即使嵌入式应用程序是一个标准的参考设计的一部分,将基于一个Linux发行版。大多数网络设备的固件和单板计算机(包括大量的系统)很可能建立在一个Linux发行版。在基本层面上,你会想要知道一些基本的Linux命令中需要的终端。先进水平,你可能需要构建和安装一个新系统的Linux发行版。

8。基本的终端和SSH的应用程序

因为很多系统可能在Linux上运行(或减少完整版)或在一个实时操作系统(RTOS),您可能需要打开终端与一个SSH隧道使用电脑与设备进行通信。一些

  • TeraTerm——允许TCP / IP连接嵌入式系统,或串行连接通过一个COM端口
  • 腻子——TeraTerm提供相同的功能,但有更多的连接选项
  • Git Bash——作为一个基于linux的命令提示符在本地机器上
  • 有WinSCP——可用于文件传输到远程系统使用相同的连接选项TeraTerm和油灰,但是它包括一个GUI

这些并不是唯一的终端应用程序,他们只是碰巧最常见;网上有许多其他免费终端应用程序。在这四个应用程序中,只有有WinSCP fully-GUI为基础的,它没有终端和仅用于文件管理。

9。闪光和调试工具

不同的处理器和记忆支持不同的开发工具,其中一些可能是供应商提供的组件。其他的闪光和编程工具是独立开发的,可以用于固件映像加载到内存中。确保你知道如何使用一些常用的开发工具,这样您就可以flash和调试系统。这些适配器可以插进电脑USB和将包括一个桌面程序,允许将设备和配置闪现。

一些调试任务执行的系统进入调试模式通过一个串行连接在一个COM端口(UART连接)。当设备被放置到调试模式,它将发送串行连接操作和错误信息,这可以在一个终端窗口的电脑。这可能需要一个小COM端口适配器,像USB-to-UART适配器所示。这些转换器可以在网上购买了10美元或更少。

USB UART转换器

USB-to-UART接口转换器。

10。版本控制系统

当工作在嵌入式项目在专业设置,每个修订项目需要存储和跟踪在一个集中的系统变化。这是版本控制系统是用于跟踪的数据,如果需要,克隆或恢复早期版本的项目的源文件。这些系统的最常见的是Git,它最初是由Linus Torvalds (Linux)的创造者。

Git版本控制

11。基本Web开发

这一个可能是意想不到的,但许多嵌入式系统需要与云服务或web服务器进行交互。了解如何发送和接收API调用,常见的数据格式如JSON,如何建立和实施一个API,甚至一些像SQL数据库功能对于嵌入式开发人员非常有用。即使你不知道怎么做,能够与web开发人员交流这些需求是非常宝贵的。

12。软技能

最后但并非最不重要,有一个的技巧在极端需求在开发人员中,然而,这些都不是容易教类。这些都是所谓的软技能,基本上非技术。

嵌入式设计需要清晰简洁的沟通、团队工作能力,管理任务和可交付成果,以及快速学习新信息的策略。嵌入式开发人员会的不仅仅是编写代码,他们需要一起工作的工程师和PCB设计者合作建立一个新的系统。通信方面是最重要的,因为它是常见的PCB设计和电气工程师less-knowledgeable嵌入式系统的代码开发的挑战。

上面的列表并不全面,和更先进的系统的成功将需要额外的技能。然而,这个列表应该帮助新开发人员更好地理解他们所需要知道为了开始构建嵌入式系统。

当你开始与电气工程师在嵌入式设计项目工作,确保你知道如何阅读和修改图表使用OrCAD,这个行业是最好的PCB设计和分析软件节奏。OrCAD用户可以访问一组完整的原理图捕获功能,混合信号在PSpice软件仿真,和强大的CAD功能,等等。

订阅我们的通讯最新的更新。如果你想了解更多关于节奏是如何对你的解决方案,跟我们的专家团队