-
Notifications
You must be signed in to change notification settings - Fork 2
/
protocol.txt
46 lines (39 loc) · 4.89 KB
/
protocol.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
HUB Package structure (request)
header: 1
hubID: 5 (the length maybe configured in header) (should be same as device address for nRF24L01)
command:1 (the length maybe configured in header)
data: depends on command
header bits (MSB-LSB):
reserved
reserved
reserved
reserved
reserved
number of package: 0=first package, 1=second (in this case data should be concatenated to data received early)
hubID length: 0=5 byte, 1=8 byte
command length: 0=1 byte, 2=more than 1 byte
Device package structure (request/response)
header: 1
deviceID: 5 (should be same as device address for nRF24L01)
Формирование адреса устройства:
Адрес устройства состоит из 5 байт.
При включении устройства, не важно, хаб это или исполнительное устройство адрес формируется их последних 5 байт серийного номера МК.
Если получить адрес МК не представляется возможным, то адрес устройства = 00-00-00-00-00 (или тот, который задан в файле nRF24L01P)
Поиск нового устройства хабом:
0) Подключение устройства к питанию, инициализация устройства. Включение приема или передачи данных.
1) На устройстве должен быть включен режим обнаружения. При этом устройство переходит в режим приема с адресом 00-00-00-00-00
2) Хаб отправляет команду обнаружения на адрес 00-00-00-00-00. Команда содержить автоматически (или тот, который задан в файле nRF24L01P) сгенерированный уникальный адрес для конкретного устройста.
3) Устройство принимает команду и распознает её.
4) Формирует и отправляет ответ, данные ответа содержат команду подтверждения обнаружения, реальный (присвоенный) адрес устройства и тип устройства. Так же может содержать доп. информацию в зависимости от типа.
4.1) Устройство переходит в штатный режим работы. При этом, если требуется режим приема, то устанавливается реальный адрес устройства полученный от хаба.
4.2) Устройство так же запоминает адрес хаба у себя в памяти.
5) Хаб получает ответ от устройства, производит поиск устройств среди ранее сохраненных в памяти и обновляет данные либо добавляет новое устройство.
Примечание:
Для работы в штатном режиме каждая полученная команда сравнивается с адресом хаба к которому была произведена привязка и только потом передается на исполнение.
Это необходимо для того, чтоб не было ложных срабатываний от других хабов. Устройство можно подвязать к нескольким хабам (в этом случае алгоритм привязки меняется)
Передача данных от хаба к устройству:
0) Хаб, получив команду на передачу данных на устройство производит поиск устройства в таблице привязанных устройств и, если таковое устройство было ранее добавлено, вызывает функцию формирования пакета.
1) Пакет для передачи формируется из заголовка, данных и подписи.
2) Сформированный пакет передается на передатчик для отправки устройству. При этом сам процесс передачи контроллируется передатчиком.
3) Хаб отслеживает состояние отправки данных по внешнему прерыванию от передатчика, а так же по состоянию статусного регистра передатчика.
4) В зависимости от того, были ли переданны данные или нет, хаб возвращает статусную информацию в USART.