Что было бы самым простым способом считывать данные с глюкометра USB извне с помощью микроконтроллера. Не с программным обеспечением, которое предоставляется. Итак, как я могу перехватывать отправляемые цифровые сигналы?
Родной интерфейс для большинства глюкометров (Abbott, Bayer, J&J и Roche) представляет собой выход UART. На одном конце кабеля есть схема, которая переводит это в протокол USB. Данные можно считывать с помощью UART, используя штекер 2,5 мм или 3,5 мм для прямого подключения к измерителю.
J&J использует штекер 3,5 мм, где наконечник является Tx, а кольцо - Rx (Tx и Rx по отношению к вашему UART, а не измерителю), и обменивается данными со скоростью 9600 бод. За исключением различных моделей J&J One-Touch, уровни сигнала для других брендов, как правило, не являются обычными уровнями UART (0 / 3,3) или RS232 (+-5), а являются какой-то странной комбинацией. Некоторые модели также меняют Tx/Rx по сравнению с J&J. Примечание. One Touch Ultra и Ultra 2 используют другой (более текстовый) протокол, чем двоичный протокол, используемый Ultra Mini (ссылку на последний см. в ответе CoderTao).
Если вы все еще ищете устройство, этот поиск предполагает, что OneTouch UltraMini / UltraEasy имеет доступный интерфейс RS232 с документацией разработчика программного обеспечения, что должно упростить взаимодействие.
Вам понадобится встроенное устройство с USB-хостом для чтения с вашего USB-устройства. Это подразумевает определенный уровень сложности (и стоимости).
Самый простой путь, вероятно, использовать Linux. Посмотрите на этот вопрос для некоторых вариантов: https://electronics.stackexchange.com/questions/2191/options-for-a-small-linux-hw-platform
Вам также понадобится драйвер Linux для вашего устройства. Если он недоступен, возможно, вам придется перепроектировать существующий драйвер (возможно, с помощью usbsnoop или других инструментов для прослушивания USB).
В качестве альтернативы существуют более мелкие/дешевые/более энергоэффективные устройства, такие как USB AVR или различные варианты микроконтроллеров ARM, которые могут выполнять функции USB-хоста.
Если бы не USB - это было бы просто с Arduino. Arduino может быть только USB-устройством и только последовательным портом через USB.
Если бы вы могли найти альтернативный считыватель глюкозы, который выдает напряжение или простой цифровой сигнал (I2C/SPI/RS232), тогда все было бы проще...
Если вы действительно хотите использовать встроенный USB-хост, вы можете использовать PIC24 от Microchip. Они обеспечивают хороший стек USB с некоторыми базовыми профилями устройств. Я не видел профиля устройства для глюкометра, но, возможно, они используют профиль HID или CDC. В противном случае вам может понадобиться получить эту информацию от производителя глюкометра.
Кортук