繁体   English   中英

Windows中的C程序可访问总线上的内容

[英]C program in Windows to access the contents on the bus

我有一个Zigbee USB加密狗,它可以插入Windows笔记本电脑的USB端口。 我需要能够捕获传入的数据包。

我正在尝试编写一个ac程序,该程序将通过监视与相应的USB端口关联的总线来捕获传入的数据包。

是否有一些c库可促进此监视? 如果没有,如何访问总线的内容?

这就是硬件驱动程序为您所做的:它直接监视低级硬件,然后在更方便的界面中处理该数据并将其公开给用户级程序。

我认为TelegesisAdaptive提供Windows驱动程序供下载。 如果不兼容,则制造Zigbee的人应提供自己的驱动程序。

或者, 您可以编写自己的驱动程序 ,但这不是一件虚弱的事情,这是一件非常困难而棘手的工作。

您可以使用libusb轻松读取和写入USB数据包。 通常我通过python包装器pyUSB使用libusb

但是,您实际上是否拥有有关如何编码/解码来自特定加密狗的数据包格式的文档? 实际的zigbee数据包可能已封装在某些专有协议中,您将需要对其进行解码。

我还假设您的USB加密狗实际上是通过原始USB通信,而不是使用FTDI芯片通过USB创建虚拟串行端口。 如果是这种情况,那么您就不需要USB,只需使用虚拟COM端口存储串行数据即可。

打开加密狗的外壳并查看所使用的芯片会很有用(仅在容易打开且您对此想法感到满意的情况下才这样做)。

您说它是基于Texas Instruments的:那么它可能正在运行TI的Z-Stack固件。 如果是这种情况,则很有可能正在运行Z-Stack Monitor and Test API(搜索文档代码SWRA198)。 您可以轻松编写C / C ++与之交互。

但是,您的第一个障碍是能够读取/写入设备。 如果它具有FTDI芯片,那将很容易:如前一篇文章所述,它应显示为虚拟通讯端口。 CC2531之类的芯片能够直接连接到USB总线。 我不熟悉该配置。 我有一个这样的加密狗,它们使用一些奇怪的Texas Instruments-USB串行协议。 但是,如果您获得了正确的Windows驱动程序,它将显示为供应用程序使用的常规通讯端口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM