Перейти к содержанию
    

nRF52832 - сделать мост uart<->BT<->android

Есть задача сделать транспорт пакетов между android приложением и stm32h743.

В качестве bluetooth трансивера установлена nRF52832, к которой подключена stm32h743 через 4х-проводный uart (есть rts/cts). Связь нужна пакетная (как udp), payload пакета до 64 байт. Перезапросы и отсутствие потерь пакетов не критичны, этим будет заниматься приложение.

Нужно обеспечить максимальный реалтайм. Т.е. буфера в идеале нигде не должны накапливаться, вместо этого передающая сторона ожидает освобождения буферов и формирует кодограмму непосредственно перед передачей.

в результате (как я вижу) - рыба android приложения, соединяющаяся с NRF и отправляющая пакеты c настраиваемой скоростью по этому интерфейсу и собирающая статистику по времени ответа (min/max/avg) и потерям.

на стороне stm32 - преобразование потока uart <-> пакеты, и loopback пакетов (на очередях freertos).

Москва. платы есть. Предпочтение - опытному человеку с наработками и пониманием нюансов работы таких трансиверов. Цены обсуждаемы, в приоритете безглючность и стабильность.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Всё это ест на github.

2. Сколько предлагается в деньгах и какие сроки ?

P.S. BLE 4.2/5.0 максимум 244 на пакет - будет немного быстрее чем 64..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никакого реалтайма от BLE в исполнении nRF52832 (S132) ожидать не приходится, запустил демо от Нордика, измеряющее пропускную способность BLE-канала на 2 Мбит/с на отладке PCA10040, которое шлет порции данных по 1 Кб, разброс времени на каждый пакет от 20 до 600 мс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, x893 said:

Всё это ест на github

наверняка. И сделать самому можно. Но другой работы хватает, это хочется дать тому кто знает эти чипы. Ибо с nrf не работал, пока разберешься с периферией, нюансами, глюками - время жрёт.

4 hours ago, x893 said:

2. Сколько предлагается в деньгах и какие сроки ?

Предлагайте. думаю, в базовом варианте 50-100к. Обсуждаемо. Если внутрь стека залезете, это могут быть другие цифры. Вообще, это только начало. там задача довольно большая.

4 hours ago, gerber said:

разброс времени на каждый пакет от 20 до 600 мс.

Это понятно. поэтому и спрашиваю, ибо вроде всё просто, но чем дальше - тем сложнее. Нюансов много. Стандартов блютуса много разных, BLE из коробки при низком прирывистом трафике явно будет лагать. Возможно можно как-то таймслоты правильно резервировать или еще какие-то хитрости использовать для борьбы с лагами.

 

1 hour ago, x893 said:

uart 4-х проводный. какой будет реалтайм - такой и будет.

в чем проблема? пакеты короткие. скорость хоть 15Мбит. По сравнению с десятками ms задержки радиоинтерфейса здержки уарта - ни о чем.

 

upd. хотелки по зедержкам: до 20мс туда-обратно - отлично. Приемлимо до 50мс. Выше 100мс - плохо. Редкие глитчи и единичные потери не страшны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, jeka said:

Стандартов блютуса много разных

я же указал выше BLE 4.2 или 5.0 - длина пакета до 244 (вместо 20).

Ну тогда и смартфон должен поддерживать его.

RTS/CTS и будет скорость потока регулировать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, x893 said:

я же указал выше BLE 4.2 или 5.0 - длина пакета до 244 (вместо 20).

Понимаю. Но в данном применении не нужны большие кодограммы и высокая скорость. Нужно передавать всего по несколько байт, но с минимальной задержкой.

Поискал про bluetooth low latency. явно, есть варианты. Сразу например наткнулся - https://www.bluetooth.com/bluetooth-resources/low-latency-deterministic-bluetooth-technology/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, jeka said:

Понимаю. Но в данном применении не нужны большие кодограммы и высокая скорость. Нужно передавать всего по несколько байт, но с минимальной задержкой.

Тут уж как BLE и смартфон будут забирать - так и будет.

Выше писал gerber что он там намерял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, x893 said:

Тут уж как BLE и смартфон будут забирать - так и будет.

Выше писал gerber что он там намерял.

Вы уверены что с этим нельзя ничего сделать? Если кто-то чегото намерял, это не значит что нельзя улучшить. Сейчас гуглю. bluetooth 5.2 поддерживает изохронную передачу, как раз для этих целей. С задержками порядка 1-2 мс как заявляют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, jeka said:

Вы уверены что с этим нельзя ничего сделать? Если кто-то чегото намерял, это не значит что нельзя улучшить. Сейчас гуглю. bluetooth 5.2 поддерживает изохронную передачу, как раз для этих целей. С задержками порядка 1-2 мс как заявляют.

так и смартфон должен 5.2 поддерживать.

Попросите gerber - пусть 52832/840 и телефон с поддержкой 5.2 потестирует.

У  меня такого телефона нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 минуты назад, jeka сказал:

Понимаю. Но в данном применении не нужны большие кодограммы и высокая скорость. Нужно передавать всего по несколько байт, но с минимальной задержкой.

Когда-то делал удлинитель RS-485 по Bluetooth, для железа, очень требовательного к таймингам. Работало. Путем выкручивания QoS удавалось добиться задержек не более 4 мс. НО: это не BLE, классический Bluetooth на своем миниатюрном стеке поверх HCI протокола.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно взять модуль готовый BLE 5.2-UART и всё пощупать. А потом уже городить на nRF. JDY-... немеряно. Да и на nRF готовые можно найти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Платы готовы, запаяны. С nRF52832, с ре ференс дизайна взят. Задача получается поднять на ней 5.2 low latency.

20201228_204509.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, jeka said:

Задача получается поднять на ней 5.2 low latency

Совсем другое дело! Сейчас очередь выстроится !

Оба SWD доступны - красота. Два Jlink'а, два Keil/SES и понеслась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, x893 сказал:

Совсем другое дело! Сейчас очередь выстроится !

Ну фиг знает, изохронные каналы в Bluetooth заточены, в основном, под передачу звукового потока, и все примеры ориентированы на это.

Я пробовал (на другой платформе, не Nordic) задействовать изохронные каналы под передачу произвольных цифровых данных с минимальной задержкой. Получилась такая петрушка, что baseband эти данные подвергает сжатию перед передачей по эфиру, а на приемной стороне распаковывает поток. И сжатие это совсем не lossless, то есть производится с учетом ограниченной полосы звука. На стороне приема байты "не те", что были переданы.

Таким образом, придется городить что-то вроде программного модема, и "вечер перестает быть томным" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...