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 公司的STM32H以750为核心,配置了一个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 引脚连接,可实现特定的硬件接口。
- 高速ADC 数据采集
- PWM/脉冲计数
- 电机驱动接口
- 光电解码器接口
硬件
- 处理器 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 之间的数据传输接口有两种方法:
- BANK1 –连接外部SDRAM
- BANK2 –连接FPGA
采用FMC 接口与FPGA 连接,能够提高SOC/FPGA之间数据交换的速率。
数据采集系统需要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 异构计算平台的支持。
结束语
上述内容只是一个初步的想法,抛砖引玉。感兴趣的读者可以共同探讨。