摘要
传统的嵌入式开发培训课程已无法满足市场对嵌入式开发工程师提出的更高要求,市场亟待提供基于SOC的嵌入式培训课程。本文通过介绍ZYNQ SOC开发的相关技术,勾勒出ZYNQ SOC开发的相关知识的脉络,让有志于从事或转行嵌入式开发的同学对ZYNQ SOC开发技术形成总体认识,避免在学习过程中迷失于细枝末节中,成为符合市场需求的嵌入式开发工程师。
关键词
ZYNQ SoC,SoC,嵌入式系统,Linux,ARM,FPGA,IP核,ASIC,IC
引言
嵌入式系统为适应多变的市场需求,演进出了FPGA、SoC等相关技术。基于FPGA的SoC应运而生,ZYNQ SoC就是这样的产品,而且也是目前最全的嵌入式系统。传统的SoC或嵌入式开发对工程师的要求主要是软件开发能力,培训课程也是据此设计。ZYNQ SoC由于结合了软件与IP核(IC部分),不仅要求工程师的具备软件开发能力,同时也要求具备SoC芯片级系统开发的能力。因此,传统的嵌入式开发课程亟需刷新,增加SoC芯片级开发相关知识,以弥补传统嵌入式开发课程的不足。
掌握了ZYNQ SoC开发技术,就掌握了通往嵌入式软件开发、(嵌入式)Linux应用开发、(嵌入式)Linux驱动开发、Linux系统剪裁与移植、FPGA开发、ASIC开发大门的钥匙,通过几年的工作时间能够成为这些领域的高级工程师、甚至成为专家级工程师,成就职业人生。
SoC关键技术简介
集成电路(Integrated Circuit,IC),就是把一定数量的电子元件(如电阻、电容、晶体管等)以及连接它们导线,通过半导体工艺集成在一起的具有特定功能的电路。从最初的小规模集成电路(Small-scale integration,SSI)发展到中等规模集成电路(Middle-scale integration,MSI)、大规模集成电路(Large-scale integration,LSI)、甚大规模集成电路(Very-Large-scale integration,VLSI)、超大规模集成电路(Ultra-Large-scale integration,ULSI),直到现在的巨大规模集成电路(Giga Scale Integration,GSI),集成度越来越高,功能和性能越来越强大,成本越来越低,现广泛应用于消费类电子产品、大件耐用消费品、工业品等各个领域,满足各种形式的需求。
芯片/芯片组
芯片(Chip)指内含集成电路的硅片。芯片组(Chipset)是指一组共同工作的芯片。
专用集成电路
专用集成电路(Application Specific Integrated Circuit,ASIC),是指为特定应用而设计、制造的集成电路。
现场可编程门阵列
现场可编程门阵列(Field Programmable Gate Array,FPGA),是指由许多“可配置逻辑模块”(Configurable Logic Block,CLB)、输入/输出单元(I/O Block,IOB)和分布式的可编程互联矩阵(Programmable Interconnection Matrix,PIM)组成可编程逻辑器件。
ARM
ARM(Advanced RISC Machines)是一个32位精简指令集(RISC)处理器。ARM处理器广泛地使用在许多嵌入式系统中。
嵌入式系统
嵌入式系统由硬件和软件组成,能够独立运行的器件。其软件内容包括软件运行环境、操作系统及运行于其上的应用程序,硬件内容包括处理器/控制器、存储器、通信模块等在内的多方面的内容。嵌入式系统由于其运行场景的不同存在较大的差异性。
片上系统
片上系统(System on Chip,SoC),又称系统级芯片,是指整个系统在单个硅芯片的实现。
ZYNQ SoC
ZYNQ SoC 整合了 ARM 双核 cortex-A9处理器(被称为处理系统,Processing System, PS)和 Xilinx 7 系列 FPGA 架构(被称为可编程逻辑,Programmable Logic,PL),使得它不仅拥有 ASIC 在能耗、性能和兼容性方面的优势,而且具有FPGA 硬件可编程性的优点。因其软硬件都可以编程,被称为全可编程片上系统(All Programmable SoC,AP SoC)。
Linux
Linux,全称GNU/Linux,是一种可免费使用的、开源的、可自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,支持多用户、多任务、多线程和多CPU的操作系统。
市场呼唤面向未来的SoC人才
集成电路出货量持续增长
从统计数据(下图)来看,从2001年开始到2020年,集成电路出货量持续增长,近两年有加速的趋势。
集成电路的出货量统计(数据来源:国家统计局)
持续增长的成因
如何在VUCA时代的求生存、谋发展呢?唯有主动应对和灵活适应才能做到。
集成电路的发展之初就是通过把电路集成在一个芯片里,解决了分立元器件加导线的方案带来的电路上出现的不稳定、不确定性、复杂性和模糊性的问题。而市场需求的需求的不稳定、不确定性、复杂性和模糊性的问题,催生了FPGA和软件的出现,让硬件和软件可定制可以提供集成电路的适应能力。随着制造工艺的发展,集成电路发展到大规模集成电路、超大规模集成电路,让SoC的出现成为可能。用一个芯片解决了以前用多个芯片解决的问题,而且能够做到硬件可定制、软件可定制,这是时代的必然要求,也是集成电路发展的主要方向。集成电路就是在这个方向上的努力,使其出货量大规模持续地增长,在中国20年的持续增长可见一斑。
我们从手机的发展就可以看出端倪,从无到有,从大部头到小型化,从功能机的可用、好用到智能机的个性化。现在的手机,外表看着都差不多,可每个人的手机里安装的软件各不相同,而且隔段时间厂家还会升级软件解决问题、提升性能、增加功能。现在还有多少人在用功能机和以前的大部头呢?早已被时代所抛弃。
如何成为面向未来的SoC人才
SoC时代已然来临,已经到了AP SoC的时代。它既可以满足以往的市场需求,也可以满足未来的需求。我们唯有主动拥抱AP SoC,才能跟上时代步伐,成为面向未来的人才。
学习嵌入式SoC开发全栈技术
以下是SoC开发的技术栈,自底向上,从硬件技术到FPGA,再到软件技术,通过Linux操作系统将底层技术整合,通过SoC开发实战做到技术的融会贯通。
适应目前的人才需求
掌握了SoC全栈技术,就可以从事以下工作:
SoC系统开发工程师
ZYNQ硬件及FPGA开发工程师
嵌入式Linux软件开发工程师
嵌入式Linux驱动开发工程师
成就未来的职业人生
未来,在掌握的SoC技术的基础上,或深耕一个技术方向(硬件、FPGA、软件),或充分运用全栈技术,在一个应用领域发展。发展方向如下:
跨操作系统的软件/驱动开发:FreeRTOS, vxWorks,RThread, QNX
跨领域的软件/FPGA/硬件开发:人工智能、大数据、云计算、区块链
总结和展望
虽然说得有点夸张,但这就是未来的方向,客户对产品的Time to Market要求越来越苛刻了。当你看到送外卖的小哥在小区里面一路狂奔的时候,你一定对此非常警醒。你的客户也在要求你一路狂奔,你的竞争对手已经在路上了,你呢?