目录
前言
在嵌入式系统开发中,硬件开发板是工程师常用的工具之一。不同类型的开发板有不同的特点和用途,其中最常见的两大类是普通开发板和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 烧录过程
-
编写代码:
- 使用高级编程语言,如C、C++、Python编写应用程序
- 例如,在树莓派上使用Python编写一个简单的Web服务器。
Python
pythonimport 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()
-
编译和链接:
- 使用编译器将源代码编译成二进制文件(如.hex、.bin、.elf)。
- 例如,使用GCC编译C++代码,生成.hex文件。
Sh
javascriptg++ -o main main.cpp arm-none-eabi-objcopy -O ihex main main.hex
-
烧录工具:
- 使用编程工具(如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
-
验证结果:
- 启动开发板,检查应用程序是否正常运行。
- 例如,通过串口调试或观察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 烧录过程
-
设计和仿真:
- 使用HDL(如Verilog、VHDL)编写逻辑设计,并在仿真工具中进行验证。
- 例如,使用Verilog编写一个简单的加法器模块。
verilog
cppmodule adder ( input [3:0] a, input [3:0] b, output [4:0] sum ); assign sum = a + b; endmodule
-
综合和布局布线:
- 使用综合工具将HDL代码转换为网表(Netlist),然后使用布局布线工具将网表映射到FPGA的具体物理资源上。
- 例如,使用Xilinx Vivado进行综合和布局布线。
Sh
vivado -mode batch -source script.tcl
-
生成比特流文件:
- 布局布线完成后,生成配置比特流文件(通常为.bit或.sof格式)。
- 例如,生成一个.bit文件。
Sh
write_bitstream -force design.bit
-
烧录比特流:
- 使用编程工具(如Xilinx Vivado、Altera Quartus II)将比特流文件通过JTAG、SPI等接口写入FPGA。
- 例如,使用Xilinx Vivado通过JTAG接口烧录.bit文件。
Sh
vivado -mode batch -source program.tcl
-
验证结果:
- 启动FPGA,检查逻辑功能是否正常运行。
- 例如,通过示波器或逻辑分析仪验证加法器的输出是否正确。
Sh
open_onboard_jtag program_device -device xc7a35tcpg236-1 -file design.bit
三. 本文总结
普通开发板
- 烧录的是用软件编程语言(如C、C++、Python)编写的软件系统或程序,这些程序运行在开发板的处理器上。
- 适用于物联网、嵌入式系统、控制应用、数据采集等。
- 在日常生活中,普通开发板比FPGA开发板应用更加广泛。
FPGA开发板
- 烧录的是用硬件描述语言(如Verilog、VHDL)编写的硬件代码,这些代码定义了FPGA的逻辑结构和互连关系,实现了特定的数字逻辑功能。
- 适用于高性能计算、信号处理、通信系统、图像处理等。
希望这里能够帮助到你,更好地理解硬件开发板的分类,以及普通开发板与FPGA开发板在烧录过程中的具体区别,从而选择适合自己的开发平台。