Arm 用于高速微控制器试验台控制器/daq的系统架构

Arm 用于高速微控制器试验台控制器/daq的系统架构,arm,embedded,real-time,data-acquisition,Arm,Embedded,Real Time,Data Acquisition,我正在为火箭发动机试验台设计控制器和数据采集单元。该系统需要控制试验台上的多个执行器,并能够将收集的数据传输回主机,团队将在主机上安全地观看实时数据/摄像机反馈 总体设计要求如下: 以1KHz的频率从约15个模拟传感器获取数据 控制试验台上的执行机构,包括阀门和点火开关 将数据实时传输回我们庇护所的主机 接受来自主机的控制,如手动阀门驱动、测试顺序修改、顺序中止等 我不确定在为这个系统设计软件时从哪里开始。我正在考虑使用运行频率为180 MHz的STM32 ARM Cortex-M4处理器。

我正在为火箭发动机试验台设计控制器和数据采集单元。该系统需要控制试验台上的多个执行器,并能够将收集的数据传输回主机,团队将在主机上安全地观看实时数据/摄像机反馈

总体设计要求如下:

  • 以1KHz的频率从约15个模拟传感器获取数据
  • 控制试验台上的执行机构,包括阀门和点火开关
  • 将数据实时传输回我们庇护所的主机
  • 接受来自主机的控制,如手动阀门驱动、测试顺序修改、顺序中止等
我不确定在为这个系统设计软件时从哪里开始。我正在考虑使用运行频率为180 MHz的STM32 ARM Cortex-M4处理器。我很难想出我应该如何处理这个问题。我曾考虑过使用RTOS系统,但根据我所看到的情况,由于调度程序必须运行每一个滴答声,因此运行速度加快,这些系统会产生大量开销。另一个我正在考虑的想法是,状态机与一些基于计时器的中断相结合,用于读取数据,然后将数据发送回PC。任何关于如何处理此问题以最小化代码复杂性的建议都将不胜感激。谢谢

编辑: 我被告知要澄清一些关于系统技术规格的事情

我的致动器包括:

  • 6个电磁阀(通过继电器/MOSFET进行数字控制,每秒切换一次)
  • 2台直流电机(由PID回路中的PWM输出驱动,需要能够控制斜坡位置)
  • 一个点火器,再次通过继电器/MOSFET控制
我的传感器包括:

  • 8个压力传感器(模拟电压)
  • 4个热电偶(模拟电压)
  • 2个电机编码器(正交编码器)
  • 1个光传感器(模拟电压)
  • 1个称重传感器(模拟电压)

理想情况下,所有收集的数据(上述所有传感器)加上一些额外的数据(时间戳、电机设置位置、电磁阀位置)都会实时流回到主机。

如果电机控制采用PWM和PID,则需要指定所需的分辨率,可以是PWM定时器刻度,也可以是ADC读数。这是最关键的部分。如果ADC的分辨率高于您指定的分辨率,也不会有任何影响。PCB必须进行相应的设计,在电阻器等方面具有足够的分辨率

完成此操作后,找到具有足够精度ADC的MCU。我认为12位分辨率对于大多数应用程序来说已经足够了,但我不知道您的具体情况

接下来,您需要决定PID的速度。PWM上的输出是否会导致ADC在下一个周期中读取,或者您是否可以满足于较慢的响应?这里的实时瓶颈是ADC转换时钟,而不是CPU

系统的其余部分似乎根本不需要时间-您只需确保所有内容都是同步读取/设置的。与主机之间的数据传输最好通过CAN完成,因为它具有硬实时特性。看起来你不需要太多的带宽

我设计了与此非常相似的系统,使用运行在16MHz上的裸机16位MCU。处理速度确实不是一个大问题,但满足实时截止日期却是一个大问题。这意味着您可以忘记使用诸如Rasp PI之类的Linux玩具,这是完全不可能的。RTOS很可能是杀伤力过大,因为它主要增加了额外的复杂性


具有足够ADC分辨率的裸金属Cortex M和CAN似乎是一个不错的选择。如果你能远离浮点运算,那也不错——这取决于你需要的高等数学程度。若你们不需要比PID更高级的东西,那个么它可以用定点来实现。(或者说PI,因为它通常最适用于快速电机控制系统。)

看起来您将从完全同步的所有操作中获益。读数是纯模拟电压还是需要用数字串行总线插入传感器?CPU的强度在很大程度上取决于如何控制阀门。它们是否成比例且需要PWM?您需要用PID等调节它们吗?您需要向主机传输多少数据?正如你所知,没有足够的细节来回答这个问题。“关于如何处理这个问题以最小化代码复杂性的任何建议”:是的,在做任何事情之前先写一份技术规范。RTO应该更慢,事件驱动或严格的定时主循环方法也可以工作。但我认为这里的关键不是这么快就确定一个目标mcu/品牌。是否不允许过度杀戮,比如pi为零?除非这是批量生产的产品,否则成本相当便宜。180mhz只是系统时钟的最大值,外围设备可能只是其中的一小部分,而且你有很多,如果有一台主机驱动,那么每个传感器可以有一个mcu。首先进行系统工程,通信/I/O是解决方案成功的一个重要因素。如果这仍然是国家仪器公司的名称,那么很可能会将一种产品插入pc,可以轻松处理您所需的数据采集,例如,但毫无疑问,其成本会高于mcu。我确信还有其他品牌提供全系列的现货测试设备。@Lundin我已经添加了您提到的信息,如果您还想知道什么,请告诉我。@old_timer预算是一个相当大的问题,我认为我们负担不起NI板,我将研究PI零点。之所以考虑这个特定的MCU,是因为我已经有了一个开发板,并且我已经使用相同的MCU为另一个系统(wi)设计了一个类似的DAQ系统