我正在为火箭发动机试验台设计控制器和数据采集单元。该系统需要控制测试台上的多个执行器,并且还能够将收集到的数据传输回主机,团队将在主机上安全地观看实时数据/摄像头馈送。
总体设计要求如下:
- 以 1KHz 从约 15 个模拟传感器采集数据
- 控制测试台上的执行器,包括阀门和点火开关
- 将数据实时传回我们避难所的主机
- 接受来自主机的控制,例如手动阀门驱动、测试序列修改、序列中止等。
在为这个系统布置软件时,我不确定从哪里开始。我正在考虑使用运行频率为 180 MHz 的 STM32 ARM Cortex-M4 处理器。我无法弄清楚我应该如何解决这个问题。我曾考虑过使用 RTOS 系统,但根据我所看到的情况,这些系统会产生大量开销,因为调度程序必须运行每个滴答声,因此运行速度更快。我反复考虑的另一个想法是状态机与一些基于定时器的中断相结合,用于读取然后将数据发送回 PC。任何有关如何解决此问题以最小化代码复杂性的建议将不胜感激。谢谢。
编辑:有人告诉我要澄清一些有关系统技术规格的事情。
我的执行器包括:
- 6 个螺线管(通过继电器/MOSFET 进行数字控制,每秒切换一次)
- 2 个直流电机(在 PID 回路中使用 PWM 输出驱动,需要能够可控地斜坡位置)
- 一个点火器,再次通过继电器/MOSFET控制
我的传感器包括:
- 8 个压力传感器(模拟电压)
- 4 个热电偶(模拟电压)
- 2 个电机编码器(正交编码器)
- 1个光传感器(模拟电压)
- 1 个称重传感器(模拟电压)
理想情况下,所有收集的数据(所有上述传感器)加上一些额外的数据(时间戳、电机设置位置、螺线管位置)都会实时流回主机。