构建基于RT-Thread高性能工业电脑

Posted 姚家湾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了构建基于RT-Thread高性能工业电脑相关的知识,希望对你有一定的参考价值。

        RT-Thread OS 社区最近在讨论工业应用。笔者认为前提是要有一个开放型通用硬件平台。RT-Thread OS目前仍然是为Cortex-M ARM 通用嵌入式SOC为主的嵌入式应用设计的。如果希望将RT-Thread 应用于类似PLC/PAC 这样的工业控制器中,提高通用SoC 的处理能力是非常重要。

        嵌入式SOC厂商为各种应用开发了系列齐全的芯片。在单颗SOC芯片上集成了各种个样的IO外围电路,它们包括以太网,CAN,SPI,UART ,ADC等等。以至于要通过引脚复用的方式来提高IO外设的种类和数量。嵌入式工程师就像进入了一个自助餐宴会,一切都为你准备好了,不能想的太多。为嵌入式系统选择一片合适的SOC芯片变成了非常棘手的问题。

        但是嵌入式SOC芯片缺乏灵活性,实时性,确定性受到MCU 算力的限制。使用STM32这样的SOC来构建工业控制器时,无法满足许多高实时任务。比如伺服电机驱动器中,都包含了一个FPGA芯片。现代FPGA技术已经将传统的FPGA 演变成为了计算和AI处理器,能够实现更强大的算法,例如人脸识别,AI,快速傅里叶变换,数字滤波等。使用硬件实现算法,大大提高实时运算能力,并且更具有灵活性。

        我们使用STM32/FPGA 异构架构来实现高性能模块化嵌入式工业电脑,并且运行国产RT-Thread 实时操作系统。FPGA 强大的可编程能力能够实现IO接口模块化。

        尽管现代FPGA芯片中已经融入了软、硬核处理器,比如Xilinx公司的ZYNQ器件。但是出于成本和提高研发效率等因素,我们在modular-2 嵌入式工业电脑中增加了基于STM32/FPGA 架构的产品。选择STM32 作为SoC 芯片是因为大量的工程师对该芯片的软硬件应用具有丰富的经验,许多大学的课程也是以STM32 为背景。与此同时,国内厂商开发的嵌入式处理器与STM32 的架构类似。所以这种结构能够方便的移植到国产芯片上。

        modular-2 RTT 是为国产操作系统RT-Thread OS 设计的一台嵌入式模块化计算机。它基于ST 公司的STM32H750为核心,并且配置了一颗Xilinx spartan6 FPGA。产品符合工业领域现场使用的可靠性,实时性要求,支持多种网络协议和高性能IO接口。支持从原型设计,仿真和生产部署。

为什么增加FPGA

        对于大多数开发嵌入式系统的公司而言,通常是采用嵌入式芯片厂商开发的各种嵌入式处理器来开发嵌入式设备。著名的嵌入式处理器芯片厂商有NXP,TI,ST,Microchip等等。

        嵌入式SOC厂商为各种应用开发了系列齐全的芯片。在单颗SOC芯片上集成了各种个样的IO外围电路,它们包括以太网,CAN,SPI,UART ,ADC等等。以至于要通过引脚复用的方式来提高IO外设的种类和数量。嵌入式工程师就像进入了一个自助餐宴会,一切都为你准备好了,不能想的太多。为嵌入式系统选择一片合适的SOC芯片变成了非常棘手的问题。

  但是工业领域特殊的IO接口多,有些ASIC 芯片的接口需要增加额外的逻辑电路才能提高系统的性能(例如高分辨率ADC 高速数据采集,电机驱动,编解码器,PWM)系统中增加一颗FPGA 能够极大地增加系统的灵活性。

  另一方面,FPGA 能够实现算法加速,实现某些算法的硬件化(例如数字滤波,FFT 等)。modular-2 系统运行IEC61499 运行时,为了提高运行时的实时性和确定性,可以使用FPGA 实现IEC61499 功能块的硬件加速。

  modular-2 嵌入式电脑的一个重要的领域是教育行业,在一个电脑是包含了SoC和FPGA 双核架构,实现在一台设备上实现嵌入式系统和FPGA 学习。

产品特点

        modular-2 RTT 基于SoC/FPGA 异构计算架构。第一代产品使用STM32H750/Xilinx Spartan-6.通过配置不同的FPGA 芯片。能不断提升工业电脑的性能。

     为了满足各种工业应用的需求,modular-2 采取了模块化结构。它能够扩展一个处理器IO模块和四个FPGA IO模块。

   处理器IO模块支持SoC 的外围接口,包括Ethernet,FDCAN,UART,USB和SDCard 卡座。FPGA IO模块通过40pin 插座直接与FPGA 引脚相连,能够实现特定的硬件接口。例如

  1.  高速ADC 数据采集
  2. PWM/脉冲计数
  3. 电机驱动接口
  4. 光电解码器接口

硬件

  • 处理器 STM32H750XB,支持的主要接口

以太网

USB

FD-CAN

UART

SD 卡座

RTC 时钟

SPI Flash (用于存储FPGA bit file和其它参数文件)

  • FPGA  Xilinx spartan 6

软件

  • 国产RT-Thread OS 操作系统
  • 支持FPGA 配置
  • 支持FPGA IP 驱动程序库
  • IEC61499 运行时,与4diac IDE 兼容,支持动态功能块库

网络协议

支持各种常见的接口

  • UDP,TCP/IP
  • IEEE1588/PTP 精密时钟协议
  • modbus/TCP
  • MQTT

系统架构

FPGA与STM32 的接口

STM32/FPGA 之间的数据传输接口有两种方法:

高速口-FMC

  • BANK1 –连接外部SDRAM
  • BANK2 –连接FPGA

采用FMC 接口与FPGA 连接,能够提高SOC/FPGA之间数据交换的速率。

低速 -SPI

  数据采集系统需要SOC/FPGA 之间高速传输数据,而控制系统而言,SOC/FPGA 之间主要传递配置和状态。并不需要非常高的带宽。

FPGA 配置

        modular-2 能够在线升级FPGA 逻辑,对于Spartan-6 芯片而言,使用SelectMAP 并行接口实现。

        STM32 FMC 的D0~D15 连接到FPGA 的SelectMAP 脚。这样FMC既能够实现FPGA 的配置,又能够实现SOC/FPGA 之间的数据交换。

RT-Thread OS  的扩展

    要利用RT-thread 模块化特点,扩展对FPGA 的支持。包括FPGA 的配置,FPGA的数据交换以及各种常见FPGA IP 核的支持(例如PWM,FFT,数字滤波,电机驱动)。实现对SoC/FPGA 异构计算平台的支持。

结束语

上述内容只是一个初步的想法,抛砖引玉。感兴趣的读者可以共同探讨。

以上是关于构建基于RT-Thread高性能工业电脑的主要内容,如果未能解决你的问题,请参考以下文章

基于RT-Thread+RA6M4的远程开机助手

基于RT-Thread+RA6M4的远程开机助手

IPC

RT-Thread Studio快速配置AB32读写SD卡

基于 RT-Thread的麦克纳姆轮小车循迹运动控制算法开发和研究

RT-Thread&ART-PI工业拓展版-以太网(ETH)的使用