MYIR T113i 技术应用系列 · 01
做了一套电能质量监测设备后,我为什么觉得T113i核心板挺适合这类项目
工程师实战分享|基于米尔电子 T113i 核心板
|
最近手上做了一套电能质量监测设备,主控部分用的是米尔电子 T113i 核心板(MYC-YT113i-4E256D-110-I)。项目做到现在,硬件、网口、SPI、显示这些主要功能基本都已经跑通。回头看整个选型和调试过程,我觉得这套方案还是比较有代表性的,尤其是对于电力监测、数据采集、工业网关以及带本地人机界面的边缘设备来说,有一些设计思路可以拿出来跟大家分享一下。 |
先说需求:采集只是第一步,真正麻烦的是后面的数据处理和通信
我们这个设备主要做电压、电流数据采集。前端使用 GF32H737 负责 ADC 采样,同时通过 DI 光耦采集外部关断信号,并提供 4 路 DO 继电器控制,用来控制外部线路。
如果单纯只是做 ADC 采样,其实 MCU 就能完成。但真正把产品做起来之后,会发现事情没有那么简单。除了采集,还要考虑本地触摸屏显示和参数配置、电压电流数据实时上传、本地数据存储、多网口通信、网络时间同步,以及和采集 MCU 之间进行高速稳定的数据交互。
特别是电力监测这一类设备,对数据时间一致性和网络通信稳定性比较敏感。如果所有工作都堆在一个 MCU 上,后面软件复杂度会越来越高。所以我们的思路是把系统分成两层:GF32H737 专心负责实时采集和控制,T113i 负责系统管理、数据通信、人机界面和网络侧功能。实际做下来,我觉得这种架构比让一个处理器把所有事情全部包办要舒服很多。
整个系统,我们是这样搭的
简单概括一下:电压/电流 → GF32H737 ADC采集 → SPI → T113i → 本地显示/存储/网络上传。
其中,T113i 和 GF32H737 之间用了两路 SPI。一路主要负责获取 GF32 采集到的电压、电流数据;另外一路负责下发采集参数和控制参数。这样把数据通道和控制通道区分开以后,整个软件逻辑会清晰不少。特别是在连续采样、参数配置和控制操作同时发生的时候,后续程序维护更方便。
T113i 这一侧运行 Tina Linux,主要承担本地人机界面、数据存储、网络通信、时间同步和系统管理等工作。
本地人机界面:设备自己就能看、能配
设备接了一块 3.5 英寸 RGB 触控屏(BL15467),现场可以直接查看数据,也可以通过触摸屏配置采集参数。对于工业设备来说,我个人还是比较喜欢“设备自己能操作”的设计。不是所有现场都有电脑,也不是所有参数都适合通过后台网页去配置。设备上有一个简单直观的 HMI,调试和维护都会方便很多。
我们在 T113i 上把显示相关的设备树和驱动配置好之后,屏幕点亮、亮度调节以及休眠唤醒这些功能都完成了验证。
数据存储:断网不能等于丢数据
板上通过 SDMMC 接 TF 卡,可以把需要的数据进行本地保存。对于电能质量监测这种设备,本地存储还是很有必要的。网络出现异常的时候,数据不能跟着一起丢掉,至少可以先落到本地,后续再根据系统需求进行处理。
电力项目里,网络“能通”和“好用”其实是两回事
这套设备我们做了两个网口。一个是千兆网口,通过 RTL8211FS 实现,同时加入了 PTP 时钟同步功能。另外一个是百兆网口,因为板卡接口资源和整体架构的原因,我们采用 USB 转网口的方式扩展,方案使用的是 SR9900AL。
这里我重点说一下 PTP。以前做普通工业设备时,大家可能觉得网络能 ping 通、数据能上传就够了。但是到了电力监测这种场景,很多数据都有明确的时间属性。不同设备之间如果时间基准不一致,后面做数据关联、事件分析的时候就会比较麻烦。因此这个项目里,我们专门在千兆网络这一侧增加了 PTP 校时能力。
实际调试过程中,我们完成了 RTL8211FS 千兆 PHY 的适配,并对 PTP 时钟同步功能进行了启用和验证。这也是我这次比较看重 T113i 的一个地方:Linux 平台带来的价值,并不只是“跑个界面”,而是很多工业网络相关功能可以比较自然地接进系统里面。
没有足够的原生网口怎么办?USB 扩一个出来
另外一路百兆网络,我们走的是 USB 转网口。T113i 配置成 USB Host 模式,同时开启了 CDC-EEM/NCM 相关内核选项。
项目里针对 USB 网卡,我们不只是做到“识别出来、能联网”就结束了,还专门做了热插拔和长时间 ping 稳定性测试。因为工业设备跟消费电子不太一样,实验室插上去能跑,不代表现场连续运行就一定没问题。尤其是 USB 网卡这种外围设备,驱动、枚举、异常拔插恢复这些问题,最好还是在开发阶段提前验证。
目前这一路我们也已经调通。所以从这个项目来看,如果自己的板子原生 RGMII 等网络资源不够,通过 USB 再扩一路网口,也是一个比较实用的思路。
T113i 和采集 MCU 分工以后,软件反而更容易做
一开始也考虑过,能不能用一个高性能 MCU 全部搞定。但真正把需求拆开以后,我还是更倾向现在这种方案:实时性强的事情交给 MCU,复杂的软件功能交给 Linux。
GF32H737 做 ADC、DI、DO,这些和现场信号直接相关的功能;T113i 做显示、参数管理、数据存储、网络通信、PTP,以及和上位平台之间的数据交互。两边通过 SPI 协作。
这样做还有一个好处,就是应用层的软件改动不会过多影响底层采集。比如后期客户想换一个界面、增加一种通信协议、调整数据上传方式,甚至增加远程运维功能,更多是在 T113i 这一侧改,而不需要把整个实时采集链路重新动一遍。对一个需要长期迭代的工业产品来说,我觉得这一点还是挺重要的。
这次用T113i,我比较满意的其实是“能落地”
做板卡选型时,参数当然重要。但作为工程师,我现在越来越关注另外一件事情:这个方案最后到底好不好调。
因为产品真正开发时,麻烦往往不是来自 CPU 算力,而是 PHY 能不能正常起来、PTP 能不能用、SPI 设备树怎么配、屏幕能不能稳定点亮、USB Host 和 USB 网卡驱动有没有问题、热插拔之后能不能恢复、长时间通信稳不稳定。
我们这个项目中,米尔这边配合完成了 RTL8211FS 驱动适配和 PTP 调试、T113 SPI 设备树配置、RGB 显示调试以及 USB 转网口相关功能验证,包括原理图、PCB 也进行了审核。
从开发角度来说,这种支持对项目推进还是比较有价值的。毕竟对工程师来说,选核心板不是为了买一块板回来研究,而是为了尽快把自己的产品做出来。
如果再做一套类似设备,我还是会考虑这种架构
目前这套电能质量监测方案的主要功能已经基本调通。回头总结,我觉得它比较适合这样一类产品:既有 ADC、DI/DO 等现场实时采集控制需求,又需要触摸屏、本地存储、多网口、网络校时以及平台通信。
如果只做一个非常简单的采集器,用 Linux 确实有点重。但一旦产品开始涉及 HMI、多种通信接口、本地数据管理以及工业网络功能,那么 “MCU + T113i Linux 核心板”这种组合就比较有优势。MCU 把实时采集做好,T113i 把复杂系统功能接过去,各干各擅长的事情。
如果大家也在做电能质量监测、电力数据采集、通信管理机、工业数据网关或者带触控屏的边缘采集设备,又正好在纠结 Linux 主控怎么选,可以关注一下米尔电子的 T113i 核心板。至少从我们这次实际项目的结果来看,RGB 触控、双 SPI、TF 存储、千兆网络、PTP、USB 扩展网口这些需求都已经实际跑通了。对工程项目来说,我觉得“实际验证过”这四个字,往往比纸面参数更有参考价值。
156