如何通过串口与ups进行通讯?

如何通过串口与ups进行通讯?

我有这个非品牌的中国 UPS,我想将它插入我的计算机,手册指出它有一个“COM 端口”,但没有其他信息,它也没有提供驱动程序。

使用 USB B 型转 A 型电缆将 UPS 插入我的计算机,计算机会将其检测为“HID 兼容设备”,但似乎找不到它的任何驱动程序。

设备管理器屏幕截图

有没有办法从 UPS 获取诸如剩余电量之类的信息,以便我可以编写一个程序在断电前轻轻关闭计算机?

编辑

此工具http://networkupstools.org似乎检测到我的UPS

编辑2

无法让 NUT 与我的 UPS 配合使用,手动安装 libusb 也不起作用

编辑3

rdesc:http://sprunge.us/WEZV

lsusb:http://sprunge.us/hNiM

答案1

部分答案:

符合 HID 标准的设备应该具有 HID 描述符,它描述了设备发送和接收数据的有效格式。

在 Linux 上,您可以通过以下方式访问 HID 描述符:

查看dmesg插入设备后出现的新行。这将告诉您 Linux 内核是否也将其识别为 HID 设备,以及总线号以及供应商和设备 ID。

如果尚未安装,请执行

mount -t debugfs none /sys/kernel/debug

以 root 身份运行。然后/sys/kernel/debug/hid/<dev>/rdesc将包含 HID 描述符,其中<dev>是包含总线号、供应商和设备 ID 的设备标识符以及附加编号。

使用 查看描述符的内容cat '/sys/kernel/debug/hid/<dev>/rdesc',并编辑问题以包含内容(或将其放在 pastebin 等中,并使用链接编辑问题)。

lsusb并且lsusb -v -d xxxx:yyyyxxxx:yyyy供应商和设备 ID 在哪里)也将提供有助于确定如何与设备通信的信息。

编辑

这是使用 HID USB 的一种有趣方式:HID 描述符表示您可以读取和写入 8 字节长度的块,具有特定于应用程序(非标准)的用途,事实上,blazer_usbNUT 中的驱动程序代码正是这样做的,通过 8 字节块模拟串行 USB。完全疯了。

这里描述了如何在 Ubuntu 下运行,显然有几个陷阱。串行接口的通信协议如下所述这里

如果您在 Linux 下仍无法使其正常工作,请查看usbmon以调试无法正常工作的部分。

不知道 Windows 驱动程序能做什么,除非您获取源代码并自己编写一个。

相关内容