Приветствую! Возникла задача сделать канал передачи данных между основным устройством на микроконтроллере и пультом управления (тоже на микроконтроллере). Сначала я сориентировался на блютуз модули типа НС-05 и НС-06. Закупил несколько штук, удалось настроить канал связи достаточно легко. Тестировал в двух вариантах: 1. COM-порт блютуза от ноутбука - НС-05 (slave) - UART микроконтроллера. 2. USB-UART - НС-05 (master) - НС-05 (slave) - UART микроконтроллера. В принципе связь есть в обоих случаях, но с проблемами. У меня протокол полудуплексный, спроектирован под RS485: запрос - ожидание ответа - если таймаут, то новая попытка. А эти модули похоже отправляют данные пачками, т.е. мои запросы набиваются в буфер и при его заполнении или по таймауту (достаточно большому), происходит передача целого блока. С ответами тоже самое. При этом эффективная скорость передачи данных получается примерно на порядок меньше расчётной. Конечно можно переделать ПО для связи, сделать отдельные очереди на передачу и прием с разбором и распределением ответов, хотя это не избавляет от задержек реакции на единичный запрос. Но вдруг есть способ настроить эти модули (размер буфера, интервал передачи данных). Может у кого есть опыт успешного использования? Может есть варианты перепрошивки модулей. Кстати для их прошивки я находил только реализацию программаторов на базе LPT. Может кто видел решение посовременнее? Или предложите совсем другое решение. Цель в общем то понятна из названия.
Сообщение отредактировал amiller - Apr 12 2017, 03:37
|