реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> nRF51822 вопросы по работе с ним, Непонятен bounding, pairing
Метценгерштейн
сообщение Mar 18 2017, 07:11
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Стал разбираться с данным МК, вроде понятно, но не до конца все. Не ясно, как осуществляется привязка МК, если он в режиме перифериал, например. Вообще, bonding и pairing- это одно и тоже? Или каков вообще принцип? Там что-то в device manager записывается.
Может кто-то прояснить доступным языком? Разумеется, читал документ на сайте нордика, но ясности он не внес ))
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Mar 18 2017, 08:09
Сообщение #2


Mentor
******

Группа: Модераторы
Сообщений: 4 882
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Метценгерштейн @ Mar 18 2017, 09:11) *
Стал разбираться с данным МК, вроде понятно, но не до конца все. Не ясно, как осуществляется привязка МК, если он в режиме перифериал, например. Вообще, bonding и pairing- это одно и тоже? Или каков вообще принцип? Там что-то в device manager записывается.
Может кто-то прояснить доступным языком? Разумеется, читал документ на сайте нордика, но ясности он не внес ))


Может поможет глоссарий в моей статье - https://geektimes.ru/post/276558/
Бондинг и пайринг, как следует из него совершенно разные вещи.
Но прежде чем сделать бондинг надо сделать пайринг.
За оба процесса отвечает слой GAP
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Mar 18 2017, 08:17
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Цитата(AlexandrY @ Mar 18 2017, 11:09) *
Может поможет глоссарий в моей статье - https://geektimes.ru/post/276558/
Бондинг и пайринг, как следует из него совершенно разные вещи.
Но прежде чем сделать бондинг надо сделать пайринг.
За оба процесса отвечает слой GAP

Спасибо. Почитаю статью Вашу. Сейчас уезжаю, вечером еще поразбираюсь, отпишусь с вопросами. Если не сложно будет, помогите проникнуться)
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Mar 18 2017, 19:21
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Прочитал глоссарий. Я раньше видел эту статью.
Вопрос- как в примерах от Нордика это реализовано. Где и как происходит пайринг и потом уже идет бондинг и передача данных в зашифрованном виде?
Пока копаю исходники.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Mar 18 2017, 23:05
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



в ф-ии
Код
static void on_ble_evt(ble_evt_t * p_ble_evt)


выполняется код
Код
case BLE_GAP_EVT_CONNECTED:
            m_conn_handle = p_ble_evt->evt.gap_evt.conn_handle;
            break;


Это, похоже, и есть что мне надо.
Получается, в переменную m_conn_handle я передаю то, к чему я подконнекчен и с кем пошел обмен данных.
Не понятно, как я подключаюсь? Т.е. не с любого же устройства подцепился, и уже в системе. Потом, надо как-то запомнить мое устройство, тлф, например, что как только в зоне видимости, его ID он уже знает, он уже в памяти и сразу коннект идет.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 19 2017, 13:54
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 214
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Pairing — связывание (пайринг). Процесс создания парами BLE устройств одного или более совместных секретных ключей для последующего шифрования трафика. Пользователь оказывается вовлечён в этот процесс, когда система просит ввести PIN код.
Никогда не встречал запрос пин кода в BLE. Только в пользовательских протоколах более высокого уровня, путем записи в характеристику.
Цитата
Это, похоже, и есть что мне надо.
Сперва расскажите что вам надо, мы же не знаем.
Цитата
Не понятно, как я подключаюсь? Т.е. не с любого же устройства подцепился, и уже в системе.
В примерах от нордик по-умолчанию с любого. В BLE можно передавать данные в одну сторону без установки соединения. Может вам это надо?
Цитата
Потом, надо как-то запомнить мое устройство, тлф, например, что как только в зоне видимости, его ID он уже знает, он уже в памяти и сразу коннект идет.
Вероятно ваше приложение в телефоне, которое работает с BLE должно проводить сканирование и устанавливать соединение когда нужное устройство найдено. Иначе зачем просто так устанавливать соединение самому телефону когда никакому приложению это не нужно?
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Mar 19 2017, 15:24
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Нужно передавать данные с одного девайса - перифериал на централ. Но нужно именно, чтобы устройства были привязаны друг к другу. Забондены или запэйрины. Т.е. абы кто чтобы не мог подцепиться. Вот и пытаюсь понять как это делается. Как привязать устройства одно к другому. А не привязанные чтобы не могли данными обмениваться.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 20 2017, 04:57
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 214
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Нужно передавать данные с одного девайса - перифериал на централ.
Для этого не нужно устанавливать соединение. Данные можно передавать в адвертайз пакетах.
Цитата
Но нужно именно, чтобы устройства были привязаны друг к другу. Забондены или запэйрины.
Зачем?
Цитата
Т.е. абы кто чтобы не мог подцепиться.
Если направление передачи в одну сторону зачем вообще кому-либо соединятся. Запретите соединение для всех.
Код
adv_params.type        = BLE_GAP_ADV_TYPE_ADV_NONCONN_IND;

Цитата
Как привязать устройства одно к другому. А не привязанные чтобы не могли данными обмениваться.
Кажется для этого применяется whitelist. никогда не использовал. Не знаю как добавлять в этот список устройства.

Может быть ваша реальная цель скрывать данные для посторонних устройств? Тогда наложите шифрование на данные в адвертайз пакете. Но насколько я понимаю получится только сделать AES в режиме ECB. Для разряжения статистики можно подсовывать рандомные данные на вход.
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Mar 20 2017, 07:43
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Допустим, мне надо сделать следующее:
Устройство на nRF в режиме перифириал. Я хочу им управлять со смартфона, кот. централ.
Но управлять не любым смартфоном, а только тем, который привязал заранее.
Т.е. где- то в недрах nRF должен быть прописан ID смартфона.
Вот этот алгоритм и как это делается меня интересует.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 20 2017, 08:27
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 214
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Раньше вы писали что у вас одностороняя передача данных.
Цитата
Нужно передавать данные с одного девайса - перифериал на централ.

А гуглить не пробовали? https://devzone.nordicsemi.com/question/162...pecific-master/
Go to the top of the page
 
+Quote Post
Метценгерштейн
сообщение Mar 20 2017, 08:47
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



гуглил, разумеется.
Писал, что не до конца доезжаю.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Mar 20 2017, 11:57
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 127
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(uriy @ Mar 20 2017, 09:57) *
Для этого не нужно устанавливать соединение. Данные можно передавать в адвертайз пакетах.

Если я правильно понимаю, в этом случае есть один минус - на обоих устройствах одноврменно не достичь минимального энергопотребления. Либо приемник постоянно слушает, либо передатчик часто передает.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 20 2017, 13:45
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 214
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Пожалуй да. Но ведь приемник это как правило будет телефон. Там энергии куда больше. У меня девайс на NRF51822 уже полгода проработал на батарейке CR2032.
При этом он каждые 10 сек кидает адвертайз с температурой чипа (точность никакая), остаточным напряжением батарейки и еще своих 4 байта. Показывает что осталось 92%. За 100% было принято 3,3В
Go to the top of the page
 
+Quote Post
Alechek
сообщение Mar 20 2017, 17:46
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 127
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



А сколько было принято за 0% sm.gif
Судя по описанию АйМаяка (уж не помню где я видел) при 900 мс интервале и питании от CR24** (~600 мА*ч) будет жить примерно год.

Телефон в режиме постоянного включенного приемника? Это ж как минимум 10мА потребления только BT частью! А сколько будет кушать еще софт в фоне?
ИМХО, это приемлимо только для приемника с внешним питанием.
Go to the top of the page
 
+Quote Post
uriy
сообщение Mar 20 2017, 19:10
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 214
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



За 0% было принято 0В. На батарейке сейчас 3.06В
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 1 Метценгерштейн

 


RSS Текстовая версия Сейчас: 26th March 2017 - 09:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01513 секунд с 7
ELECTRONIX ©2004-2016