C программа в Windows для доступа к содержимому на шине - PullRequest
0 голосов
/ 24 января 2012

У меня есть USB-адаптер ZigBee, который подключается к USB-порту на моем ноутбуке с Windows.Мне нужно иметь возможность перехватывать входящие пакеты.

Я пытаюсь написать программу переменного тока, которая будет перехватывать входящие пакеты, отслеживая шину, связанную с соответствующим портом usb.

Есть ли некоторыеc библиотеки, которые облегчают этот мониторинг?Если нет, то как я могу получить доступ к содержимому автобуса?

Ответы [ 3 ]

2 голосов
/ 24 января 2012

Вот что аппаратный драйвер делает для вас: он непосредственно контролирует низкоуровневое оборудование, а затем обрабатывает и предоставляет эти данные программам пользовательского уровня в более удобном интерфейсе.

Я думаю Telegesis и Adaptive предлагают драйверы для Windows для загрузки;кто бы ни изготовил ваш Zigbee, он должен предоставить свои собственные драйверы, если они не совместимы.

или вы можете написать свой собственный драйвер , но это очень сложная и сложная работа, недля слабонервных.

1 голос
/ 24 января 2012

Вы можете легко читать и записывать USB-пакеты, используя libusb.Обычно я использую libusb через оболочки Python pyUSB

Однако, есть ли у вас документация о том, как кодировать / декодировать форматы пакетов, поступающие от вашего конкретного ключа?Фактические пакеты zigbee могут быть обернуты в какой-то проприетарный протокол, который вам нужно будет уметь декодировать.

Я также предполагаю, что ваш USB-ключ на самом деле обменивается данными через сырой USB, а не использует чип FTDI для созданиявиртуальный последовательный порт через USB.Если это так, то вам не нужно гадить с USB, просто используйте виртуальный COM-порт для последовательных данных.

0 голосов
/ 26 января 2012

Было бы полезно открыть корпус ключа и взглянуть на использованные чипы (делайте это только в том случае, если его легко открыть, и идея вас устраивает).

Вы говорите, что он основан на Texas Instruments: тогда, вероятно, он работает с прошивкой T-Z Z-Stack. Если это так, то есть большая вероятность, что он использует Z-Stack Monitor и Test API (найдите код документа SWRA198). Вы можете легко написать C / C ++ для взаимодействия с этим.

Однако ваше первое препятствие - возможность чтения / записи на устройство. Если у него есть чип FTDI, то это будет легко: он должен выглядеть как виртуальный коммуникационный порт, как упоминалось в предыдущем посте. Микросхема типа CC2531 способна подключаться непосредственно к шине USB. Я не знаком с этой конфигурацией. У меня есть один такой ключ, и они используют какой-то странный протокол Texas Instruments с последовательным интерфейсом через USB. Но если вы получите правильный драйвер Windows, он должен выглядеть как обычный коммуникационный порт для приложений.

...