FPGA 14 ,硬件开发板分类详解,FPGA开发板与普通开发板烧录的区别

目录

前言
在嵌入式系统开发中,硬件开发板是工程师常用的工具之一。不同类型的开发板有不同的特点和用途,其中最常见的两大类是普通开发板和FPGA开发板。这里分享记录,这两类开发板的分类,并深入探讨它们在烧录过程中的具体区别,帮助我们更好地理解和选择适合自己的开发板。
[一. 开发板分类](#一. 开发板分类)
[1. 普通开发板](#1. 普通开发板)
[1.1 微控制器开发板](#1.1 微控制器开发板)
[1.2 微处理器开发板](#1.2 微处理器开发板)
[1.3 单板计算机(SBC)](#1.3 单板计算机(SBC))
[2. FPGA开发板](#2. FPGA开发板)
[2.1 基础FPGA开发板](#2.1 基础FPGA开发板)
[2.2 SoC FPGA开发板](#2.2 SoC FPGA开发板)
[2.3 专用FPGA开发板](#2.3 专用FPGA开发板)
[3. 其他类型](#3. 其他类型)
[3.1 可编程逻辑控制器(PLC)开发板](#3.1 可编程逻辑控制器(PLC)开发板)
[3.2 DSP开发板](#3.2 DSP开发板)
[二. 烧录的区别](#二. 烧录的区别)
[1. 普通开发板](#1. 普通开发板)
[1.1 特点](#1.1 特点)
[1.2 烧录过程](#1.2 烧录过程)
[2. FPGA开发板](#2. FPGA开发板)
[2.1 特点](#2.1 特点)
[2.2 烧录过程](#2.2 烧录过程)
[三. 本文总结](#三. 本文总结)
普通开发板
FPGA开发板

前言

在嵌入式系统开发中,硬件开发板是工程师常用的工具之一。不同类型的开发板有不同的特点和用途,其中最常见的两大类是普通开发板和FPGA开发板。这里分享记录,这两类开发板的分类,并深入探讨它们在烧录过程中的具体区别,帮助我们更好地理解和选择适合自己的开发板。

一. 开发板分类

硬件开发板分类,请看

1. 普通开发板

普通开发板通常基于微控制器(MCU)或微处理器(MPU),可以运行操作系统或裸机代码。这类开发板适用于各种嵌入式系统和控制应用。

1.1 微控制器开发板

  • 特点
    • 基于微控制器(MCU),如ARM Cortex-M系列、AVR、PIC等。
    • 通常不运行操作系统,而是直接运行裸机代码。
    • 适用于低功耗、低成本、简单控制应用。
  • 例子
    • Arduino:基于Atmel AVR或STM32微控制器,广泛用于教育和DIY项目。
    • STM32 Nucleo:基于STM32微控制器,提供丰富的开发工具和扩展板。
    • Teensy:高性能的微控制器开发板,适合需要高速处理的应用。

1.2 微处理器开发板

  • 特点
    • 基于微处理器(MPU),如ARM Cortex-A系列、x86等。
    • 可以运行操作系统(如Linux、FreeRTOS)。
    • 适用于高性能计算、多媒体处理、网络应用等。
  • 例子
    • 树莓派(Raspberry Pi):基于ARM Cortex-A系列处理器,广泛用于教育、媒体中心、物联网项目。
    • BeagleBone Black:基于TI AM3359 ARM Cortex-A8处理器,适合嵌入式Linux开发。
    • NVIDIA Jetson系列:基于Tegra X1、Xavier等处理器,集成NVIDIA GPU,适用于深度学习和计算机视觉。

1.3 单板计算机(SBC)

  • 特点
    • 集成了CPU、GPU、内存、存储、网络接口等,类似于小型计算机。
    • 通常运行完整版的操作系统(如Linux、Windows)。
    • 适用于需要强大计算能力和多任务处理的应用。
  • 例子
    • 树莓派:如前所述,可以运行多种操作系统。
    • Odroid:基于ARM架构的高性能单板计算机,适合多媒体和计算密集型应用。
    • Rock Pi:基于Rockchip处理器,提供多种配置选项。

2. FPGA开发板

FPGA开发板基于可编程逻辑单元,通过HDL(如Verilog、VHDL)定义逻辑功能。这类开发板适用于高性能计算、信号处理、通信系统、图像处理等。

2.1 基础FPGA开发板

  • 特点
    • 基于可编程逻辑单元,通过HDL(如Verilog、VHDL)定义逻辑功能。
    • 适用于高性能计算、信号处理、通信系统、图像处理等。
  • 例子
    • Xilinx Artix-7 FPGA开发板:基于Xilinx Artix-7 FPGA,适合初学者和中级用户。
    • Intel Cyclone V FPGA开发板:基于Altera(现Intel)Cyclone V FPGA,集成ARM处理器,适合SoC设计。

2.2 SoC FPGA开发板

  • 特点
    • 集成了FPGA和嵌入式处理器(如ARM Cortex-A系列)。
    • 可以同时实现硬件加速和软件控制。
    • 适用于复杂系统设计,如嵌入式系统、实时控制、高性能计算。
  • 例子
    • Xilinx Zynq-7000:集成了ARM Cortex-A9处理器和FPGA逻辑,适合SoC设计。
    • Intel Cyclone V SoC:集成了ARM Cortex-A9处理器和FPGA逻辑,提供灵活的系统设计。

2.3 专用FPGA开发板

  • 特点
    • 针对特定应用领域设计,提供专门的接口和功能模块。
    • 适用于特定行业和应用,如通信、医疗、航空航天等。
  • 例子
    • 通信FPGA开发板:针对通信系统设计,提供高速接口和通信协议支持。
    • 医疗FPGA开发板:针对医疗设备设计,提供高精度数据采集和处理能力。

3. 其他类型

3.1 可编程逻辑控制器(PLC)开发板

  • 特点
    • 专为工业自动化设计,提供输入输出接口和控制逻辑。
    • 适用于工厂自动化、过程控制等。
  • 例子
    • Siemens S7-1200:基于西门子PLC技术,提供强大的工业控制功能。
    • Omron CJ2M:基于欧姆龙PLC技术,适用于复杂的工业控制系统。

3.2 DSP开发板

  • 特点
    • 基于数字信号处理器(DSP),擅长处理数字信号和音频视频数据。
    • 适用于音频处理、图像处理、通信信号处理等。
  • 例子
    • Texas Instruments TMS320C6000:基于TI的DSP技术,提供高性能的数字信号处理能力。
    • Analog Devices ADSP-BF537:基于ADI的DSP技术,适用于嵌入式音频和视频处理。

二. 烧录的区别

普通开发板与FPGA开发板烧录的区别,请看

1. 普通开发板

1.1 特点

  • 处理器架构 :通常基于微控制器(如ARM Cortex-M系列)或微处理器(如x86、ARM Cortex-A系列)。
  • 操作系统 :可以运行操作系统(如Linux、FreeRTOS)或裸机代码(没有操作系统支持的代码)。
  • 编程语言 :支持高级编程语言,如C、C++、Python等,用的是软件编程语言。
  • 应用场景 :适用于物联网、嵌入式系统、控制应用、数据采集等。

1.2 烧录过程

  1. 编写代码

    • 使用高级编程语言,如C、C++、Python编写应用程序
    • 例如,在树莓派上使用Python编写一个简单的Web服务器。
      Python
    python 复制代码
    import http.server
    import socketserver
    
    PORT = 8000
    
    Handler = http.server.SimpleHTTPRequestHandler
    
    with socketserver.TCPServer(("", PORT), Handler) as httpd:
        print("serving at port", PORT)
        httpd.serve_forever()
  2. 编译和链接

    • 使用编译器将源代码编译成二进制文件(如.hex、.bin、.elf)。
    • 例如,使用GCC编译C++代码,生成.hex文件。
      Sh
    javascript 复制代码
    g++ -o main main.cpp
    arm-none-eabi-objcopy -O ihex main main.hex
  3. 烧录工具

    • 使用编程工具(如AVRDUDE、OpenOCD、Arduino IDE)将二进制文件烧录到开发板的存储介质(如Flash存储器)。
    • 例如,使用Arduino IDE将.hex文件烧录到Arduino板。
      Sh
    avrdude -c arduino -p m328p -P /dev/ttyUSB0 -b 115200 -U flash:w:main.hex
    
  4. 验证结果

    • 启动开发板,检查应用程序是否正常运行。
    • 例如,通过串口调试或观察LED灯的状态来验证代码是否正确执行。
      Sh
    screen /dev/ttyUSB0 115200
    

2. FPGA开发板

其实FPGA(Field-Programmable Gate Array,现场可编程门阵列)开发板的配置过程通常被称为"编程"或"配置",而不是"烧录"。这是因为FPGA是一种可以通过软件工具、硬件语言来重新定义其内部逻辑结构的集成电路。与传统的单片机或微控制器通过烧录固件代码进行配置不同,FPGA的配置文件(通常是比特流文件)用于设置芯片内部的逻辑单元和互连资源,以实现特定的数字电路功能。所以,以下烧录字段,可以理解为"编程"或"配置"。

2.1 特点

  • 可编程逻辑 :基于可编程逻辑单元,可以在制造后通过编程来实现各种数字逻辑功能。
  • 编程语言 :主要使用硬件描述语言(HDL),如Verilog、VHDL,用的是硬件编程语言
  • 配置比特流 :生成的配置比特流文件(如.bit、.sof)定义了FPGA的逻辑结构和互连关系。
  • 应用场景 :适用于高性能计算、信号处理、通信系统、图像处理等。

2.2 烧录过程

  1. 设计和仿真

    • 使用HDL(如Verilog、VHDL)编写逻辑设计,并在仿真工具中进行验证。
    • 例如,使用Verilog编写一个简单的加法器模块。
      verilog
    cpp 复制代码
    module adder (
        input [3:0] a,
        input [3:0] b,
        output [4:0] sum
    );
        assign sum = a + b;
    endmodule
  2. 综合和布局布线

    • 使用综合工具将HDL代码转换为网表(Netlist),然后使用布局布线工具将网表映射到FPGA的具体物理资源上。
    • 例如,使用Xilinx Vivado进行综合和布局布线。

    Sh

    vivado -mode batch -source script.tcl
    
  3. 生成比特流文件

    • 布局布线完成后,生成配置比特流文件(通常为.bit或.sof格式)。
    • 例如,生成一个.bit文件。
      Sh
    write_bitstream -force design.bit
    
  4. 烧录比特流

    • 使用编程工具(如Xilinx Vivado、Altera Quartus II)将比特流文件通过JTAG、SPI等接口写入FPGA。
    • 例如,使用Xilinx Vivado通过JTAG接口烧录.bit文件。
      Sh
    vivado -mode batch -source program.tcl
    
  5. 验证结果

    • 启动FPGA,检查逻辑功能是否正常运行。
    • 例如,通过示波器或逻辑分析仪验证加法器的输出是否正确。
      Sh
    open_onboard_jtag
    program_device -device xc7a35tcpg236-1 -file design.bit
    

三. 本文总结

普通开发板

  • 烧录的是用软件编程语言(如C、C++、Python)编写的软件系统或程序,这些程序运行在开发板的处理器上。
  • 适用于物联网、嵌入式系统、控制应用、数据采集等。
  • 在日常生活中,普通开发板比FPGA开发板应用更加广泛。

FPGA开发板

  • 烧录的是用硬件描述语言(如Verilog、VHDL)编写的硬件代码,这些代码定义了FPGA的逻辑结构和互连关系,实现了特定的数字逻辑功能。
  • 适用于高性能计算、信号处理、通信系统、图像处理等。

希望这里能够帮助到你,更好地理解硬件开发板的分类,以及普通开发板与FPGA开发板在烧录过程中的具体区别,从而选择适合自己的开发平台。

创作不易,感觉有用,就一键三连,感谢(●'◡'●)

相关推荐
2202_754421544 小时前
一个计算频率的模块
驱动开发·fpga开发
小灰灰的FPGA5 小时前
低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能
fpga开发
fei_sun1 天前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto1 天前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安1 天前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈1 天前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun1 天前
【Verilog】第二章作业
fpga开发·verilog
碎碎思1 天前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望1 天前
fpga-状态机的设计及应用
fpga开发