在医疗设备数据采集的圈子里,德尔格(Dräger)绝对是个绕不开的名字。无论是ICU里的Infinity系列监护仪,还是手术室里的Fabius、Primus麻醉机,德尔格的市场占有率都很高。
但是,对于做集成的工程师来说,德尔格有时候让人“又爱又恨”。
爱的是它的数据确实精准,恨的是:都2024年了,它的大量设备(尤其是麻醉机和部分监护仪)依然依赖古老的 RS232 串口 进行通讯,而不是大家喜欢的网口(TCP/IP)。
这就意味着,你不能简单地插根网线就完事,得从物理接线到协议校验,一步步去啃这块“硬骨头”。今天就结合我们现场实施的经验,聊聊德尔格串口采集的那些坑。

一、 物理层的坑:不是插上就能通
如果你拿着一根普通的USB转串口线,直接插到德尔格设备背后的 COM口(通常标识为 COM1 或 MEDIBUS),你会发现电脑上什么数据都收不到。
这里有两个常见的物理大坑:
-
线序问题(Pinout):
德尔格的串口定义通常遵循 Null Modem 标准,也就是俗称的“交叉线”(RX和TX要反接,2脚接3脚,3脚接2脚)。但部分型号又需要标准的直连线。去现场前,最好多带几种线,或者准备那种可以跳线的串口转接头。 -
接口供电:
有些老款设备的串口电平比较弱,如果你的采集盒子或串口服务器是被动供电的,可能带不动,导致数据时断时续。
二、 串口参数
接好线只是第一步,配置参数才是重头戏。
1. 波特率与校验位(The Settings)
典型的配置通常是,不过这些也可以在机器设置里面改:
-
Baud Rate: 9600 或 19200(Medibus X可以是38400或更高)
-
Data Bits: 8
-
Parity: None
-
Stop Bits: 1
2. 握手与初始化(Handshake)
很多国产监护仪,串口一通就开始哗哗吐数据。德尔格不一样,它很“矜持”。
在Medibus协议下,设备通常处于“静默”状态。根据设备不同,一般需要主动请求设备状态,或是设备发起ICC请求之后立即回复指令,中途心跳包也是要一直发不能断的,它才会回复当前的数据。
如果不写这个“心跳保活”逻辑,你连上一分钟后,设备就会认为从机断开,停止发送数据。
三、 规模化采集的难题
搞定一台机器容易,搞定全院几十台难。
在一个几十张床位的ICU或拥有20个间的手术室,难道要给每台监护仪后面都挂一台电脑吗?显然不现实。
我们的做法是一般两种:
-
串口服务器方案:使用串口转以太网服务器(Serial to Ethernet),把串口数据封装成 TCP 网络包,传回机房。
-
采集盒子方案:直接在床旁放一个嵌入式的小盒子,完成数据抓取和清洗。
但无论哪种方案,你都需要在服务端写代码去处理 TCP拆包、校验CRC 以及 解析Medibus协议 的复杂逻辑。
在对接了无数台德尔格设备,把各种接线法和波特率都试了一遍后,我们将这些经验固化到了我们的生命体征数据采集系统中。
针对德尔格(以及欧美达等其他串口设备),我们做了针对性的优化:
-
内置驱动:系统内置了 Medibus 的完整协议栈,不需要你去研究十六进制的报文定义。
-
模式兼容:完美支持 “串口直连”(通过COM口)和 “串口服务器中转”(TCP Client/Server)两种模式。你只管把线接好,剩下的交给系统。
-
自动探针:在部分场景下,系统可以自动轮询常见的波特率和校验位,尝试“握手”,减少人工配置的麻烦。
-
数据对齐:自动将德尔格的非标准体征代码映射为行业标准代码,并与医院其他设备的数据在时间轴上对齐。
如果您在数据获取过程中还遇到过其他问题,欢迎一起探讨交流。
515

被折叠的 条评论
为什么被折叠?



