软件工程师也是硬件控
前言
笔者是一位软件工程师,民间俗称“程序猿”,软件行业也有很多分类,以下是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架构相继开发了功能更多、更强大的兼容产品
其它主流架构:
除了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
ARM架构:
随着市场对MCU的要求越来越高,传统架构越来越满足不了很多高性能功能需求,那么ARM架构就横空出世,ARM全称精简指令集处理器(Advanced RISC Machine),最初是由英国Acorn公司设计的低功耗成本的第一款RISC微处理器,后期分割出来的ARM公司,与其他芯片公司有所不同,自己不制造芯片,而是将其技术知识产权(ARM架构IP核)授权给其它芯片制造商。ARM架构能脱颖而出,其低成本、高性能、低耗电的特性,广泛地使用在许多嵌入式系统设计中。
现在市面上的手机处理芯片都是基于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
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生产商。
阿尔特拉(Altera)也是位于美国的可编程逻辑器件生产商,2015年6月1日,英特尔(Intel)宣布以167亿美元收购Altera,2015年12月28日,英特尔完成收购Altera,全球市场份额排名第二
莱迪思半导体公司(Lattice)是美国高性能可编程逻辑器件制造商,该公司成立于1983年,全球市场份额排名第三
可以发现几大FPGA都来自于美帝,之前的中兴事件,作为全球第三大的通信设备商,FPGA芯片也是被美帝卡脖子的一环。鉴于FPGA的重要性,国家也在大力推进国产FPGA,比如紫光同创、智多晶微电子、智多晶微电子、上海安路等,虽然差距明显,但必须继续前行
开发板收藏
到这儿专业性的介绍就算完毕,不知道值友们感觉怎么样 ,在大妈这儿必须按大妈的套路来,正经晒物开始
笔者从大学到工作,收藏了不少开发板,有些是参加论坛活动所得,有些是参加项目遗留,每块板都有笔者的青春和汗水,还有那些年逝去的头发
瑞萨(Renesas)YRPBRL78G13开发板
德州仪器(TI)LaunchPad单片机开发板
凌阳单片机开发板
凌阳中国“芯”
这个板子是笔者在大学期间选修课时购买的,所有元器件的焊接也是笔者一手完成的
ARM7 开发板
板载SAMSUNG ARM7TDMI架构芯片S3C44B0X01
这个板子是笔者在大学期间购买的,当时为了想自学ARM程序开发,没想到后期转投FPGA了,ARM开发板收藏不多
笔者做FPGA开发项目比较多,因此收藏的FPGA开发板也比较多
Xilinx Spartan-6 FPGA LX9 开发板
Xilinx Spartan-6 LX16 评估套件
SPARTAN-6系列是xilinx出品的低端FPGA,主打低成本市场
Xilinx Zedboard 开发板
ZYNQ系列是Xilinx出品的全球首选嵌入ARM核心(Processing System)和FPGA逻辑(Programmable Logic)的Soc芯片
Xilinx Artix-7 50T FPGA 评估套件
Xilinx Artix-7 35T开发板
ARTIX-7系列属于xilinx出品的中端FPGA
Altera CycloneIV 开发板
Altera MAX10 开发板
MAX10系列是Altera出品的FPGA芯片
Lattice 小脚丫 STEP开发板
总结
最后来个全家福
笔者是位普通的软件工程师,很庆幸能以自己的兴趣作为职业,从大学到工作至今,也期望不忘初心,能为民族“芯”贡献微薄之力。
值友3480006521
校验提示文案
中年沙袋
校验提示文案
穷得只剩下钱
校验提示文案
G5-Solo
校验提示文案
朝天在活
校验提示文案
码呆茶
校验提示文案
垃圾佬进城
校验提示文案
z11nux
校验提示文案
Hylers
校验提示文案
上岸呼吸
校验提示文案
阿誌
校验提示文案
木头桩子2004
校验提示文案
soonco
校验提示文案
KrisTian_
校验提示文案
noalone
校验提示文案
Siriuszhao
校验提示文案
小城书房
校验提示文案
朱哲__
校验提示文案
寡寡寡寡人
校验提示文案
养猪
校验提示文案
寡寡寡寡人
校验提示文案
小龟Go
校验提示文案
值友4241825002
校验提示文案
yuanbangyin
校验提示文案
Mrsail
校验提示文案
依林如故
校验提示文案
石小利
校验提示文案
csmkaka
校验提示文案
sosingle
校验提示文案
xiao力
校验提示文案
longying
校验提示文案
Chunssu
校验提示文案
买买买剁剁剁的
校验提示文案
胖胖男
校验提示文案
土三岁
校验提示文案
汲时与送江
校验提示文案
阳光下De猫
校验提示文案
小样儿一
校验提示文案
必必
校验提示文案
小城书房
校验提示文案