软件工程师也是硬件控

2019-03-17 11:15:04 243点赞 1070收藏 173评论

前言

笔者是一位软件工程师,民间俗称“程序猿”,软件行业也有很多分类,以下是stack overflow对软件从业者2018年的统计,前三都是互联网相关:后端(Back-end)、全栈(Full-stack)、前端(Front-end)软件开发,而笔者属于倒数那 5.2% 的小众程序猿:嵌入式软件开发(Embedded application or devices developer)

软件工程师也是硬件控

首先科普一下什么是嵌入式系统:

嵌入式系统是指用于执行独立功能的专用计算机系统,它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。

嵌入式软件开发就是围绕着所有嵌入式硬件,需要比一般的软件工程师更了解硬件,资深一点的嵌入式软件工程师其实就是“全栈工程师”:写代码、画板子、调板子样样精通。

软件工程师也是硬件控

嵌入式处理器和控制器

嵌入式系统中软件工程师接触最多的硬件就是嵌入式处理和控制芯片了,如MCU、DSP和FPGA,接触最多是因为它们的可编程性,嵌入式软件都是运行在这些芯片中

MCU

MCU全称是微控制器(Micro Control Unit),俗称“单片机”,是把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成电路芯片上的处理器。相比于应用在计算机上的中央处理器,如Intel、AMD出品的x86 & x64架构处理器,其特点体现在它是“微”处理器,体积小、成本低,主要实现一些专用功能,比如消费电子、家电、医疗设备等。

MCU厂商:

软件工程师也是硬件控

8051架构:

8051架构历史悠久,兼容产品众多,到现在有更多的IC设计商,如Atmel、microchip、freescale、TI、renesas、infineon、ST等公司,基于8051架构相继开发了功能更多、更强大的兼容产品

Intel 8051架构单片机Intel 8051架构单片机

软件工程师也是硬件控

其它主流架构:

除了8051核心架构,还有很多芯片商自主开发了架构,以下列举了主流几个大厂的架构:

  • 赛普拉斯半导体(Cypress Semiconductor):M8C、CY16、F2MC-8、F2MC-16、FR60Lite RISC、FR81S

  • 英飞凌(Infineon):C500、C166、C166SV2、TriCore、XC800、XE166

  • 美信(Maxim Integrated):MAXQ20、MAXQ20S、80515

  • 微芯科技(Microchip):MIPS、PIC、AVR

  • 恩智浦(NXP):RS08、S08/12、ColdFire、CPU12/16/32、e200/300、HC05/08/11/12/16、HCS08/12、M-CORE、MPC500

  • 瑞萨电子(Renesas Electronics):78K0、H8、M16C、R8C、RH850、RL78、RX、V850

  • 意法半导体(STMicroelectronics):ST10/ST7、STM8/STM8A

  • 德州仪器(Texas Instruments):COP8、CR16C、MSP430



Microchip PIC架构Microchip PIC架构

TI MSP430架构TI MSP430架构

ST STM8架构ST STM8架构

ARM架构:

随着市场对MCU的要求越来越高,传统架构越来越满足不了很多高性能功能需求,那么ARM架构就横空出世,ARM全称精简指令集处理器(Advanced RISC Machine),最初是由英国Acorn公司设计的低功耗成本的第一款RISC微处理器,后期分割出来的ARM公司,与其他芯片公司有所不同,自己不制造芯片,而是将其技术知识产权(ARM架构IP核)授权给其它芯片制造商。ARM架构能脱颖而出,其低成本、高性能、低耗电的特性,广泛地使用在许多嵌入式系统设计中。

软件工程师也是硬件控

ARM1架构ARM1架构

现在市面上的手机处理芯片都是基于ARM架构,如 高通骁龙855、苹果 A12 Bionic、海思 麒麟980、三星 Exynos 9820、联发科 Helio P20,其中高通、苹果、三星使用的是基于ARM的自主核心,相比于海思、联发科使用的公版ARM架构,定制性更强,但是并不能说使用了公版ARM架构就毫无技术含量,海思980虽然采用公版ARM架构,但是性能却不输自主架构的骁龙855

软件工程师也是硬件控

DSP

DSP全称是数字信号处理器(Digita Signal Processor),是专门用来完成数字信号处理任务的处理器,相比于MCU具有更为强大的处理运算能力,可以实现对数字信号的各种算法的处理。

DSP厂商相比MCU厂商相对较少,如下

  • 德州仪器(Texas Instruments):TMS320、TMS320C28、TMS320C5x、TMS320C64x、TMS320C66x、TMS320C67x

  • 亚德诺半导体(Analog Devices Inc.):Blackfin、SHARC、TigerSHARC

  • 恩智浦(NXP):56000、56300、56800EX

  • 安森美半导体(ON Semiconductor):Rcore

TI DSPTI DSP

FPGA

FPGA全称是现场可编程门阵列(Field-Programmable Gate Array),其与MCU、DSP等处理器在结构和工作方式上有很大的不同:

  • MCU、DSP虽然是软件可编程,但是内部的核心架构都是已固化的,而FPGA内部是通过可编程互连连接的可配置逻辑块 (CLB) 矩阵构成的,也就是说类似MCU和DSP中的核心架构,FPGA是需要编程(硬件描述语言Verilog或VHDL)来构建的,在FPGA中构造一个8051、PIC之类的核心架构,甚至是ARM都不是梦想


软件工程师也是硬件控

  • MCU、DSP中的程序都是串行执行,一些多线程、流水线技术都是通过软件的手段来模拟并行执行的效果,但是其本质上还是串行,有些高性能芯片会嵌入多核来提升并行性能,而FPGA中所有的程序执行都是并行的,这意味着其程序执行性能会更优秀



软件工程师也是硬件控

应用:

ASIC芯片设计:专用集成电路(ASIC)芯片与FPGA内部都是由门阵列组成,区别就是ASIC里门阵列状态和布线都是固化的,而FPGA是可编程的,在整个芯片设计的数字前端部分,需要通过FPGA模拟ASIC,验证现有的设计是否在功能和时序上满足要求

数字前端流程数字前端流程

无线通信:一直是FPGA比较大的市场,近几年3G、4G、5G技术的不断更新,相应设备也需要不断迭代升级,无线通信中涉及很多实时性要求很高的复杂算法,FPGA就是非常好解决方案,笔者之前就是从事4G通信FPGA开发的工作

软件工程师也是硬件控

数据中心:现今大数据时代,面对海量的数据分析,只凭借CPU来进行大数据计算远远无法满足需求,因此设计人员想到用FPGA为数据中心加速

软件工程师也是硬件控

人工智能:人工智能有了很大的发展很大程度上归功于深度学习技术的发展,有了深度学习算法、模型,并构建了深度神经网络,利用FPGA进行加速,可以在很短的时间内返回结果

软件工程师也是硬件控

另外还有军事/航空、医疗、工业、汽车、测试和测量等领域,FPGA都有广泛应用

厂商:

赛灵思(xilinx)是位于美国的可编程逻辑器件生产商,该公司在1985年推出了全球第一款FPGA产品,迄今为止是市场份额最大的FPGA生产商。

软件工程师也是硬件控

xilinx所有FPGA产品线xilinx所有FPGA产品线

阿尔特拉(Altera)也是位于美国的可编程逻辑器件生产商,2015年6月1日,英特尔(Intel)宣布以167亿美元收购Altera,2015年12月28日,英特尔完成收购Altera,全球市场份额排名第二

软件工程师也是硬件控

Intel所有FPGA产品线Intel所有FPGA产品线

莱迪思半导体公司(Lattice)是美国高性能可编程逻辑器件制造商,该公司成立于1983年,全球市场份额排名第三

软件工程师也是硬件控

Lattice所有FPGA产品线Lattice所有FPGA产品线

可以发现几大FPGA都来自于美帝,之前的中兴事件,作为全球第三大的通信设备商,FPGA芯片也是被美帝卡脖子的一环。鉴于FPGA的重要性,国家也在大力推进国产FPGA,比如紫光同创、智多晶微电子、智多晶微电子、上海安路等,虽然差距明显,但必须继续前行

开发板收藏

到这儿专业性的介绍就算完毕,不知道值友们感觉怎么样软件工程师也是硬件控 ,在大妈这儿必须按大妈的套路来,正经晒物开始

笔者从大学到工作,收藏了不少开发板,有些是参加论坛活动所得,有些是参加项目遗留,每块板都有笔者的青春和汗水,还有那些年逝去的头发软件工程师也是硬件控

瑞萨(Renesas)YRPBRL78G13开发板

软件工程师也是硬件控

板载Renesas RL78架构芯片R5F100LEA板载Renesas RL78架构芯片R5F100LEA

德州仪器(TI)LaunchPad单片机开发板

软件工程师也是硬件控

软件工程师也是硬件控

板载TI MSP430架构芯片M430G2553板载TI MSP430架构芯片M430G2553

凌阳单片机开发板

凌阳中国“芯”

软件工程师也是硬件控

软件工程师也是硬件控

板载芯片SPCE061A板载芯片SPCE061A

这个板子是笔者在大学期间选修课时购买的,所有元器件的焊接也是笔者一手完成的

ARM7 开发板

软件工程师也是硬件控

板载SAMSUNG ARM7TDMI架构芯片S3C44B0X01板载SAMSUNG ARM7TDMI架构芯片S3C44B0X01

这个板子是笔者在大学期间购买的,当时为了想自学ARM程序开发,没想到后期转投FPGA了,ARM开发板收藏不多

笔者做FPGA开发项目比较多,因此收藏的FPGA开发板也比较多

Xilinx Spartan-6 FPGA LX9 开发板

软件工程师也是硬件控

SPARTAN-6 LX9SPARTAN-6 LX9

Xilinx Spartan-6 LX16 评估套件

软件工程师也是硬件控

软件工程师也是硬件控

SPARTAN-6 LX16SPARTAN-6 LX16

SPARTAN-6系列是xilinx出品的低端FPGA,主打低成本市场

软件工程师也是硬件控

Xilinx Zedboard 开发板

软件工程师也是硬件控

软件工程师也是硬件控

ZYNQ系列是Xilinx出品的全球首选嵌入ARM核心(Processing System)和FPGA逻辑(Programmable Logic)的Soc芯片

软件工程师也是硬件控

ZYNQ内部结构ZYNQ内部结构

Xilinx Artix-7 50T FPGA 评估套件

软件工程师也是硬件控

软件工程师也是硬件控

ARTIX-7 50TARTIX-7 50T

Xilinx Artix-7 35T开发板

软件工程师也是硬件控

板载Artix-7系列XC7A35T芯片板载Artix-7系列XC7A35T芯片

ARTIX-7系列属于xilinx出品的中端FPGA

Altera CycloneIV 开发板

软件工程师也是硬件控

板载Cyclone IV系列EP4CE10F17芯片板载Cyclone IV系列EP4CE10F17芯片

Altera MAX10 开发板


软件工程师也是硬件控

板载MAX10系列10M08SAE144芯片板载MAX10系列10M08SAE144芯片

MAX10系列是Altera出品的FPGA芯片

软件工程师也是硬件控

Lattice 小脚丫 STEP开发板

软件工程师也是硬件控

软件工程师也是硬件控

板载LCMX02芯片板载LCMX02芯片

总结

最后来个全家福

软件工程师也是硬件控

笔者是位普通的软件工程师,很庆幸能以自己的兴趣作为职业,从大学到工作至今,也期望不忘初心,能为民族“芯”贡献微薄之力。

展开 收起
173评论

  • 精彩
  • 最新
  • 3年模拟IC设计,3年硬件工程师,2年嵌入式软+上位机,工控行业,够全栈了吧。可惜好多都不精通 [喜极而泣] ,也挺迷茫

    校验提示文案

    提交
    工控行业?在哪边高就呀

    校验提示文案

    提交
    多而不精。。。。。。。和我一样 [肿包]

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 楼主这种稀缺资源绝对不怕失业的,程序员中的王者

    校验提示文案

    提交
    混口饭吃也不易

    校验提示文案

    提交
    想多了,现在芯片集成度高了,底层软件支撑也非常成熟了,十年前和现在已经天差地别了。大部分搞嵌入式的软件工程师待遇比互联网的差太多了(当然这个更多是资本炒作因素)。

    校验提示文案

    提交
    还有27条回复
    收起所有回复
  • [喜极而泣] 感觉高级工程师不屑碰真板子的,都是跑算法做仿真

    校验提示文案

    提交
    那些都是假把式,实干才是王道

    校验提示文案

    提交
    貌似是外行 [doge] ,再怎么仿真也仿不了实际的情况吧,我所在的行业仿真只能确定基本可行

    校验提示文案

    提交
    还有8条回复
    收起所有回复
  • 外行人问一下,现在fpga是不是一般用来开发asic,在fpga模拟成功后再量产asic?在需求量不大的时候是否厂家会选择直接用fpga而不流片asic?多大产量情况下流片会比直接用fpga划算?

    校验提示文案

    提交
    芯片设计公司会用FPGA做前端验证,一般开发周期短的产品基本会直接用FPGA,而且后期功能维护和更新也是FPGA更有优势。现在FPGA中高低系列选择很多,成本也不会更高,国内FPGA工程师也很多了

    校验提示文案

    提交
    流片前端验证只是一部分,还有好大一部分是直接当处理器使用,因为fpga的实时性、并行处理是mcu/cpu/dsp比不了的(各有所长),比如通信、图像处理、AI就在大量使用。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 以前买了个44B0X的开发版,种种原因没怎么用起来,一直很喜欢嵌入式,不知道arm7现在主要能做哪些应用?还能否发挥余热了?看单位里的新来的同事用树莓派的比较多,开发环境更便利了。

    校验提示文案

    提交
    arm7已经不用了,都被cortex m核心替代了

    校验提示文案

    提交
    树莓派感觉是教育机构和学生用的多,实际工业界很少用。

    校验提示文案

    提交
    收起所有回复
  • 大一生,过两天就要打嵌入式开发的比赛了 [喜极而泣]

    校验提示文案

    提交
    大一就比赛了,后生可畏

    校验提示文案

    提交
    收起所有回复
  • 篇二是不是写码农生活,我的硬件产品 [皱眉]

    校验提示文案

    提交
    哈哈,篇二正在写,是硬货,敬请期待

    校验提示文案

    提交
    收起所有回复
  • 楼主有没有fpga入门的便宜板子能推荐下的?

    校验提示文案

    提交
    马云家很多,选altera cycloneiv系列的

    校验提示文案

    提交
    收起所有回复
  • 10年fpga狗路过,难得遇到同行,一把心酸泪

    校验提示文案

    提交
    [献黄瓜] [献黄瓜] [献黄瓜] … 紫薯布丁

    校验提示文案

    提交
    收起所有回复
  • 作为一名从事汽车电子行业嵌入式软件工程师,看到楼主的这篇帖子倍感万分亲切!我玩的芯片没有楼主的高级,就是楼主提到的那些MCU,比如NXP,英飞凌还有TI, Atmel公司的,楼主还是很专业的人才,佩服佩服 [棒棒哒]

    校验提示文案

    提交
    芯片用的高级不一定就高级,最高级的就是用不高级芯片干高级的事儿

    校验提示文案

    提交

    sunf

    Hoki87

    作者
    但是对于产品来说,更多的是希望一个高级芯片解决所有问题。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 感谢这么好的入门介绍文章。我想问下如果要弄个开关状态远程通知的模块要买些啥?就是在门上装一个开关传感器,开关闭合和断开都分别访问不同的网址。后期想实现用来做微信模板消息的推送。。。

    校验提示文案

    提交
    树莓派就行,连上物联网平台就能远程控制

    校验提示文案

    提交
    我的想法是弄个小巧的,然后网址配置这些写死也行,不需要配置后台

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 看到同好了,keil公司连续两年发律师函给我公司了,现在都用ti的了,毕竟ccs软件免费的。。嵌入式做到后面还是要搞算法才行。

    校验提示文案

    提交
    keil也不容易,靠软件挣钱,搞个虚拟机,关网络,就不怕查了 [得意]

    校验提示文案

    提交
    通信,计算机,机电玩到最后都是啃算法啊

    校验提示文案

    提交
    收起所有回复
  • 可以推荐个对初学者友好的画板子工具么,我想把捡的服务器电源搞个适配板子,原理已经搞清楚了,现在飞线方式解决的,不美观

    校验提示文案

    提交
    protel、cadence . . . 紫薯布丁

    校验提示文案

    提交
    收起所有回复
  • 敢问作者哪个学校的?

    校验提示文案

    提交
    H.I.T. 紫薯布丁

    校验提示文案

    提交
    规格严格 [献花] 布丁

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 牛人最佩服搞底层开发的,这方面台湾人才比我们多得多

    校验提示文案

    提交
    近些年大天朝大环境不错,很多人才会选择留在国内发展,很多海外的也选择回国发展

    校验提示文案

    提交
    收起所有回复
  • 竟然在值得买看到板子。。楼主哪方面的嵌入式软件啊

    校验提示文案

    提交
    现在在工控行业。。。紫薯布丁

    校验提示文案

    提交
    收起所有回复
  • 那个,微博中了一个什么系统,然后收到都是一些我看不懂的东西。要是能发图就好了,问你一下。英特尔说开发的新系统。然而发给我一堆零件。我一个人女生,都不懂那个干嘛的。

    校验提示文案

    提交
    有产品名称吗? 加速卡?

    校验提示文案

    提交
    我都不知道怎么看产品名称。都不知道什么叫加速卡

    校验提示文案

    提交
    收起所有回复
  • 不明觉厉……我就看看树莓派,arduino,esp之类的……

    校验提示文案

    提交
  • 我以为我是个全栈,我以为我是个极客,我以为我是个硬件控。但我其实只是个购物狂,吃灰达人,败家东西………… [尴尬]

    校验提示文案

    提交
  • 不明觉厉, [欢呼]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
1.0K
扫一下,分享更方便,购买更轻松