Головное устройство¶
Технические характеристики¶
- Размеры: TBA
- Напряжение питания: TBA
- Потребляемые ток, пиковый: TBA
Подключение электродов¶
Подключение модулей к головному устройству¶
Подключение к головному устройству модулей осуществляется по протоколу RS-485 через терминальный блок, который расположен на плате. Распиновка приведена на рисунке ниже.
Выполняемые команды¶
Команда на начало стриминга данных¶
Данная команда переводит головное устройство в режим стриминга данных с заданной ранее частотой дискретизации
Формат запроса¶
Длина запроса - 8 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета. 0x40 - получатель - Датчик ФПГ |
2 | type | uint8_t | 0x01 | Тип пакета. 0x01 - пакет команды управления |
3 | action | uint8_t | 0x00 | Действие, которое необходимо выполнить. 0x00 - Чтение |
4 | param | uint8_t | 0x42 | Параметр для действия. 0x42 - Сырые данные |
5 | data | uint8_t | 0x00 | Данные для действия. 0x00 - нет данных |
6 | payload | uint8_t | 0x00 | Дополнительные данные для действия. 0x00 - нет данных |
7 | checksum | uint8_t | 0x2D | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Формат ответа¶
Длина ответа - 26 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета 0x40 - получатель - Головное устройство |
2 | type | uint8_t | 0x42 | 0x42 - Сырые данные |
3 | systime | uint32_t | 0xXX | Системное время модуля в миллисекундах. Порядок байт - little endian |
4 | 0xXX | |||
5 | 0xXX | |||
6 | 0xXX | |||
7 | ppg_red | uint32_t | 0xXX | Сырые данные датчика ФПГ с красного светодиода в отсчетах АЦП. Безразмерная величина. Порядок байт - little endian |
8 | 0xXX | |||
9 | 0xXX | |||
10 | 0xXX | |||
11 | ppg_ir | uint32_t | 0xXX | Сырые данные датчика ФПГ с ИК-светодиода в отсчетах АЦП. Безразмерная величина. Порядок байт - little endian |
12 | 0xXX | |||
13 | 0xXX | |||
14 | 0xXX | |||
15 | ppg_green | uint32_t | 0xXX | Сырые данные датчика ФПГ с зеленого светодиода в осчетах АЦП. Безразмерная величина. Порядок байт - little endian |
16 | 0xXX | |||
17 | 0xXX | |||
18 | 0xXX | |||
19 | acc_x | int16_t | 0xXX | Линейное ускорение по оси X в 1 м/с2 = 100 LSB. Порядок байт - little endian |
20 | 0xXX | |||
21 | acc_y | int16_t | 0xXX | Линейное ускорение по оси Y в 1 м/с2 = 100 LSB. Порядок байт - little endian |
22 | 0xXX | |||
23 | acc_z | int16_t | 0xXX | Линейное ускорение по оси Z в 1 м/с2 = 100 LSB. Порядок байт - little endian |
24 | 0xXX | |||
25 | checksum | uint8_t | 0xXX | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Имплементация значений¶
- Поле systick содержит значение системного времени модуля с дискретностью 1 миллисекунда.
- Поля ppg_red, ppg_ir и ppg_green содержат значения освещенности, снятые с фотодиода по соответствующему каналу (цвету светодиода). Размерность - отсчеты АЦП и поэтому данная величина безразмерная.
- Поля acc_x, acc_y и acc_z содержат значения линейного ускорения по соответствующим осям в формате 1 м/с2 = 100 LSB. Т.е 1 = 0.01 м/с2.
Примеры¶
Все команды приведены в HEX-формате без указания 0x, что удобно для копирования в терминал.
Запрос: AA 40 01 00 42 00 00 2D
Ответ: AA 00 42 6F E3 00 00 3E 0B 00 3E E3 0B 00 00 00 00 00 00 CC FD BD 02 35 10 80
Интерпретация ответа:
- Тип пакета - сырые данные ФПГ
- systime = 1,
- ppg_red =,
- ppg_ir = ,
- ppg_green = ,
- acc_x = ,
- acc_y = ,
- acc_z = ,
Команда на получение сырых данных¶
Формат запроса¶
Длина запроса - 8 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета. 0x40 - получатель - Датчик ФПГ |
2 | type | uint8_t | 0x01 | Тип пакета. 0x01 - пакет команды управления |
3 | action | uint8_t | 0x00 | Действие, которое необходимо выполнить. 0x00 - Чтение |
4 | param | uint8_t | 0x42 | Параметр для действия. 0x42 - Сырые данные |
5 | data | uint8_t | 0x00 | Данные для действия. 0x00 - нет данных |
6 | payload | uint8_t | 0x00 | Дополнительные данные для действия. 0x00 - нет данных |
7 | checksum | uint8_t | 0x2D | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Формат ответа¶
Длина ответа - 26 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета 0x40 - получатель - Головное устройство |
2 | type | uint8_t | 0x42 | 0x42 - Сырые данные |
3 | systime | uint32_t | 0xXX | Системное время модуля в миллисекундах. Порядок байт - little endian |
4 | 0xXX | |||
5 | 0xXX | |||
6 | 0xXX | |||
7 | ppg_red | uint32_t | 0xXX | Сырые данные датчика ФПГ с красного светодиода в отсчетах АЦП. Безразмерная величина. Порядок байт - little endian |
8 | 0xXX | |||
9 | 0xXX | |||
10 | 0xXX | |||
11 | ppg_ir | uint32_t | 0xXX | Сырые данные датчика ФПГ с ИК-светодиода в отсчетах АЦП. Безразмерная величина. Порядок байт - little endian |
12 | 0xXX | |||
13 | 0xXX | |||
14 | 0xXX | |||
15 | ppg_green | uint32_t | 0xXX | Сырые данные датчика ФПГ с зеленого светодиода в осчетах АЦП. Безразмерная величина. Порядок байт - little endian |
16 | 0xXX | |||
17 | 0xXX | |||
18 | 0xXX | |||
19 | acc_x | int16_t | 0xXX | Линейное ускорение по оси X в 1 м/с2 = 100 LSB. Порядок байт - little endian |
20 | 0xXX | |||
21 | acc_y | int16_t | 0xXX | Линейное ускорение по оси Y в 1 м/с2 = 100 LSB. Порядок байт - little endian |
22 | 0xXX | |||
23 | acc_z | int16_t | 0xXX | Линейное ускорение по оси Z в 1 м/с2 = 100 LSB. Порядок байт - little endian |
24 | 0xXX | |||
25 | checksum | uint8_t | 0xXX | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Имплементация значений¶
- Поле systick содержит значение системного времени модуля с дискретностью 1 миллисекунда.
- Поля ppg_red, ppg_ir и ppg_green содержат значения освещенности, снятые с фотодиода по соответствующему каналу (цвету светодиода). Размерность - отсчеты АЦП и поэтому данная величина безразмерная.
- Поля acc_x, acc_y и acc_z содержат значения линейного ускорения по соответствующим осям в формате 1 м/с2 = 100 LSB. Т.е 1 = 0.01 м/с2.
Примеры¶
Все команды приведены в HEX-формате без указания 0x, что удобно для копирования в терминал.
Запрос: AA 40 01 00 42 00 00 2D
Ответ: AA 00 42 6F E3 00 00 3E 0B 00 3E E3 0B 00 00 00 00 00 00 CC FD BD 02 35 10 80
Интерпретация ответа:
- Тип пакета - сырые данные ФПГ
- systime = 1,
- ppg_red =,
- ppg_ir = ,
- ppg_green = ,
- acc_x = ,
- acc_y = ,
- acc_z = ,
Команда на получение пульса¶
Формат запроса¶
Длина запроса - 8 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета. 0x40 - получатель - Датчик ФПГ |
2 | type | uint8_t | 0x01 | Тип пакета. 0x01 - пакет команды управления |
3 | action | uint8_t | 0x00 | Действие, которое необходимо выполнить. 0x00 - Чтение |
4 | param | uint8_t | 0x40 | Параметр для действия. 0x40 - Данные пульса |
5 | data | uint8_t | 0x00 | Данные для действия. 0x00 - нет данных |
6 | payload | uint8_t | 0x00 | Дополнительные данные для действия. 0x00 - нет данных |
7 | checksum | uint8_t | 0x2B | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Формат ответа¶
Длина ответа - 12 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета 0x40 - получатель - Головное устройство |
2 | type | uint8_t | 0x40 | 0x40 - Данные пульса |
3 | systime | uint32_t | 0xXX | Системное время модуля в миллисекундах. Порядок байт - little endian |
4 | 0xXX | |||
5 | 0xXX | |||
6 | 0xXX | |||
7 | pulse | uint32_t | 0xXX | Частота сердечных сокращений в Уд/с Порядок байт - little endian |
8 | 0xXX | |||
9 | 0xXX | |||
10 | 0xXX | |||
11 | checksum | uint8_t | 0xXX | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Имплементация значений¶
TODO сведения по имплементации значений
Примеры¶
Все команды приведены в HEX-формате без указания 0x
Запрос: AA 40 01 00 40 00 00 2B
Ответ: AA 00 40 01 00 00 00 10 00 00 00 22
Интерпретация ответа: тип пакета - данные пульса, systime = 1, пульс = 10 уд/мин.
Команда на получение сатурации¶
Формат запроса¶
Длина запроса - 8 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета. 0x40 - получатель - Датчик ФПГ |
2 | type | uint8_t | 0x01 | Тип пакета. 0x01 - пакет команды управления |
3 | action | uint8_t | 0x00 | Действие, которое необходимо выполнить. 0x00 - Чтение |
4 | param | uint8_t | 0x41 | Параметр для действия. 0x41 - Данные сатурации крови. |
5 | data | uint8_t | 0x00 | Данные для действия. 0x00 - нет данных |
6 | payload | uint8_t | 0x00 | Дополнительные данные для действия. 0x00 - нет данных |
7 | checksum | uint8_t | 0x2C | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Формат ответа¶
Длина ответа - 12 байт.
Байт # | Поле | Тип | Значение | Описание |
---|---|---|---|---|
0 | start_byte | uint8_t | 0xAA | Стартовый байт. Всегда равен 0xAA |
1 | id | uint8_t | 0x40 | Идентификатор получателя пакета 0x40 - получатель - Головное устройство |
2 | type | uint8_t | 0x41 | 0x41 - Данные сатурации крови |
3 | systime | uint32_t | 0xXX | Системное время модуля в миллисекундах. Порядок байт - little endian |
4 | 0xXX | |||
5 | 0xXX | |||
6 | 0xXX | |||
7 | spo | uint32_t | 0xXX | Сатурация крови в процентах. Порядок байт - little endian |
8 | 0xXX | |||
9 | 0xXX | |||
10 | 0xXX | |||
11 | checksum | uint8_t | 0xXX | Котрольная сумма пакета - младший байт суммы всех байтов пакета |
Имплементация значений¶
TBA
Примеры¶
Все команды приведены в HEX-формате без указания 0x
Запрос: AA 40 01 00 41 00 00 2C
Ответ: AA 00 41 01 00 00 00 10 00 00 00 22
Интерпретация ответа: тип пакета - данные сатурации, systime = 1, сатурация = 10%.