|
Беспроводная передача данных |
|
|
|
Apr 11 2017, 15:50
|
Частый гость
 
Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612

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

|
Цитата(V_G @ Apr 12 2017, 02:45)  2. Китайские модули HC05 ужасно плохо документированы (по состоянию на 5 лет назад, когда я рассматривал их применение). Было на что-то более солидное описание, где расписывались эфирные пакеты и эфирные таймауты. В первом случае (если не пользоваться механизмом таймаутов) вам просто надо забить любым мусором свой пакет от конца информационной части до конца эфирного пакета. Во втором случае надо попробовать настроить таймауты блютус-модуля, чтобы он выдавал в эфир незаполненный буфер. В любом из этих случаев в эфире будет присутствовать мусорная часть пакета. В третьем случае можно попробовать подогнать длину эфирного пакета под Вашу длину (если протокол и система команд модуля позволяют менять длину эфирного пакета) С этим согласен. И интерфейс управления через AT-команды убогий. Забивать буфер мусором, при этом не зная его реального размера, тоже не очень эффективно. я надеялся, что можно простыми средствами изменить настройки модуля, но похоже не судьба. Видимо придётся переходить в реализации протокола от уровня отдельных сообщений к уровню обработки потоков данных. При этом заполнение буферов произойдёт автоматически. Цитата(bassizlink @ Apr 12 2017, 00:59)  Пере прошивать можно.Для реализации вашей задачи нужно создавать прошивку, но слава богу не с нуля.Качайте Bluelab 4.1, в месте с ним будет доступны примеры, интерактивная справка по структурам, функциям, перечислениям и.д. , через браузер. Там же и документация по программированию. По всей видимости на BC417 доступно только программирование на СИ, так как во всей документации я не нашел информации по MCU XAP, не смог найти и по ассемблеру, накопал только по XAP4,5,6, все что ниже как будто засекретили.В блюкор чипах уже с завода предустановлена прошивка.Программист имеет возможность создавать программу, которые взаимодействует с Виртуальной машиной и работает с уже встроенной прошивкой.Как я понял там несколько кольцевых буферов, все тонкости не знаю, сам учусь, в качестве любителя, но думаю размер буфера настроить можно.Отлаживать и запускать можно прям на Ваших платках, через SPI LPT.USB SPI для SCR bluecore продают китайцы на али.Есть решение на FTDI чипе, но у меня не вышло, так как я самостоятельно сделал платку, а чип оказался поддельный, мне кажется проще купить готовый USB to UART с FTDIRL. Путь погружения в программирование блютуз модулей выглядит слишком затратным. Часть моего вопроса была ещё в том, что может быть известны другие работоспособные варианты реализации беспроводного канала связи. Желателен конечно блютуз (из-за распространенности), но не исключены и другие технологии. Или же, как пишет уважаемый zltigo "2)Все радиоитерфейсы ПАКЕТНЫЕ а не байтовые в отличие он UART." Следовательно при беспроводной передаче данных следует просто это учитывать.
|
|
|
|
|
Apr 12 2017, 06:21
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 8-08-16
Пользователь №: 92 884

|
Цитата(amiller @ Apr 12 2017, 04:04)  С этим согласен. И интерфейс управления через AT-команды убогий. Забивать буфер мусором, при этом не зная его реального размера, тоже не очень эффективно. я надеялся, что можно простыми средствами изменить настройки модуля, но похоже не судьба. Видимо придётся переходить в реализации протокола от уровня отдельных сообщений к уровню обработки потоков данных. При этом заполнение буферов произойдёт автоматически.
Путь погружения в программирование блютуз модулей выглядит слишком затратным. Часть моего вопроса была ещё в том, что может быть известны другие работоспособные варианты реализации беспроводного канала связи. Желателен конечно блютуз (из-за распространенности), но не исключены и другие технологии. Или же, как пишет уважаемый zltigo "2)Все радиоитерфейсы ПАКЕТНЫЕ а не байтовые в отличие он UART." Следовательно при беспроводной передаче данных следует просто это учитывать. Думаю, что говорить о платках HC-05,06, как о китайских не совсем правильно на мой взгляд.По сути из китайского там только обвязка, текстолит и не большой кусочек кода микропрограммы.Посмотрел на дорогие модули bluegiga, там тот же чип от SCR, только обвязка другая и экран металлический,разочаровался.На самом деле не так страшен черт как его малюют и запрограммировать этот чип не так сложно.Весь процесс заключается в том, что нужно взять пример из Bluelab4.1(в инете пошарьте найдете), с которым платка будет полностью работать как готовое устройства реализуя профиль SPP, только не будет ни одной AT команды.Если сравнить HC-05,06 и другие например блюгига, то базовая прошивка там везде одинаковая, это предустановленная заводом изготовителя чипа и всем известная под именем linvor.Процесс программирования сводится к тому,что просто создаются свои AT команды, которые изменяют PSkey ключи из хранилища.Но такая микропрограмма необходима не во всех случаях.Можно абсолютно легально скачать Bluesuite с сайта SCR и с помощью PSTool изменить нужные ключи, которые будут заставлять работать чип так как Вам нужно, если конечно нет необходимости в динамическом изменении поведения работы чипа.В этой же программе есть кнопка, которая предоставляет описание на ключ.
Сообщение отредактировал bassizlink - Apr 12 2017, 06:23
|
|
|
|
Сообщений в этой теме
amiller Беспроводная передача данных Apr 11 2017, 15:50 zltigo Цитата(amiller @ Apr 11 2017, 18:50) Цель... Apr 11 2017, 16:06 bassizlink Цитата(amiller @ Apr 11 2017, 15:50) Прив... Apr 11 2017, 20:59 bassizlink Цитата(V_G @ Apr 11 2017, 22:45) 1. БеСпр... Apr 11 2017, 23:33  jcxz Цитата(amiller @ Apr 12 2017, 06:04) Путь... Apr 12 2017, 10:12   amiller Цитата(jcxz @ Apr 12 2017, 14:12) Так и и... Apr 12 2017, 11:06    bassizlink Цитата(amiller @ Apr 12 2017, 12:06) nRF2... Apr 12 2017, 11:32     bassizlink Программно управление потоком можно задействовать ... Apr 12 2017, 15:52     amiller Цитата(bassizlink @ Apr 12 2017, 15:32) П... Apr 13 2017, 06:07      bassizlink Цитата(amiller @ Apr 13 2017, 07:07) Если... Apr 13 2017, 07:15       amiller Цитата(bassizlink @ Apr 13 2017, 11:15) С... Apr 13 2017, 10:25        bassizlink Цитата(amiller @ Apr 13 2017, 11:25) Я пр... Apr 13 2017, 11:04        bassizlink Кстати файл, который он мне прислал называется Blu... Apr 13 2017, 12:22         bassizlink Писец, я в шоке.После установки USB драйвера перес... Apr 13 2017, 15:29        bassizlink Вообщем благополучно удалил драйвер, все снова зар... Apr 13 2017, 21:45         bassizlink Немного по изучал стэк профиля SPP.Из ходя из него... Apr 14 2017, 08:05 bassizlink Цитата(amiller @ Apr 11 2017, 16:50) Прив... Apr 12 2017, 10:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|