УДК 616.71
М. А. Петровский, А. Г. Иванчуков
ОСОБЕННОСТИ ОРГАНИЗАЦИИ ИНТЕРФЕЙСА МОБИЛЬНОГО КАРДИОАНАЛИЗАТОРА
M. A. Petrovskiy, A. G. Ivanchukov FEATURES OF INTERFACE MOBILE CARDIOANALIZER
Аннотация. Рассмотрены способы организации связи между отдельными частями беспроводного кардиоанализатора. Описаны протоколы обмена как между отдельными микросхемами устройства, так и между отдельными блоками и частями.
Abstract. The methods of communication between different parts of a wireless cardio-analizer. Describes the protocols, both between individual chips unit, and between the individual blocks and units.
Ключевые слова: кардиоанализатор, последовательный синхронный порт, Bluetooth 4.0.
Key words: cardioanalizer, SPI, Bluetooth 4.0.
Современные технологии быстро развиваются. Многие идеи и подходы, которые сегодня используются, еще вчера казались фантастикой. Такое развитие требует совершенства уже известных стандартов и технологий и создания новых, более сложных, но в то же время и более эффективных. Целями данной статьи являются рассмотрение подходов к беспроводной передаче данных в беспроводном кардиоанализаторе, выявление недостатков и преимуществ предлагаемых методов.
Беспроводной кардиоанализатор состоит из двух основных компонентов: собственно самого кардиоанализатора и устройства приема-передачи для взаимодействия с управляющим устройством. Устройство управления кардиоанализатора - это устройство, которое позволяет посредством передачи команд кардиоанализатору осуществлять управление его состоянием. В данном случае в качестве такого устройства предлагается использовать смартфон под управлением операционной системы Android, а в качестве приемопередатчика - Bluetooth-модуль.
Рассмотрим часть кардиоанализатора, включающую в себя непосредственно датчик и приемопередатчик. Структурная схема показана на рис. 1. Устройство содержит три электрода, подключенных к телу человека, цепи защиты от электростатического разряда дефибриллятора микросхемы аналогового интерфейса (AFE - Analog Front End), в качестве которой используется ADS1298 фирмы Texas Instruments и «Систему-на-чипе» СС2540 фирмы Texas Instruments. Данная система содержит микроконтроллер с ядром 8051 и модуль Bluetooth 4.0.
Рис. 1. Структурная схема датчика для беспроводного кардиоанализатора
Взаимодействие микросхемы AFE, которая предоставляет цифровые данные об ЭКС, с модулем Bluetooth осуществляется с помощью последовательного периферийного интерфейса SPI. Bluetooth-модуль представляет собой базовый модуль BLE112, который является законченным полнофункциональным устройством Bluetooth 4 и содержит чипсет Texas Instruments CC2540.
SPI - последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырехпроводным (англ. four-wire) интерфейсом [1].
В отличие от стандартного последовательного порта (англ. standard serial port) SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая (ведомая) периферия синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (англ. chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участия в передаче по SPI.
В SPI используются четыре цифровых сигнала:
1. MOSI или SI - выход ведущего, вход ведомого (англ. Master Out Slave In) - служит для передачи данных от ведущего устройства ведомому.
2. MISO или SO - вход ведущего, выход ведомого (англ. Master In Slave Out) - служит для передачи данных от ведомого устройства ведущему.
3. SCLK или SCK - последовательный тактовый сигнал (англ. Serial Clock) - служит для передачи тактового сигнала для ведомых устройств.
4. CS или SS - выбор микросхемы, выбор ведомого (англ. Chip Select, Slave Select).
Протокол передачи по интерфейсу SPI предельно прост и, по сути, идентичен логике
работы сдвигового регистра, которая заключается в выполнении операции сдвига и, соответственно, побитного ввода и вывода данных по определенным фронтам сигнала синхронизации. Установка данных при передаче и выборка при приеме всегда выполняются по противоположным фронтам синхронизации. Это необходимо для гарантирования выборки данных после надежного их установления. Если к этому учесть, что в качестве первого фронта в цикле передачи может выступать нарастающий или падающий фронт, то всего возможны четыре варианта логики работы интерфейса SPI. Эти варианты получили название режимов SPI и описываются двумя параметрами:
1) CPOL - исходный уровень сигнала синхронизации (если CPOL = 0, то линия синхронизации до начала цикла передачи и после его окончания имеет низкий уровень (т.е. первый фронт нарастающий, а последний - падающий), иначе, если CPOL = 1, - высокий (т.е. первый фронт падающий, а последний - нарастающий));
2) CPHA - фаза синхронизации; от этого параметра зависит, в какой последовательности выполняются установка и выборка данных (если CPHA = 0, то по переднему фронту в цикле синхронизации будет выполняться выборка данных, а затем по заднему фронту - установка данных; если же CPHA = 1, то установка данных будет выполняться по переднему фронту в цикле синхронизации, а выборка - по заднему).
На рис. 2 показаны различные режимы работы SPI. Ведущая и подчиненная микросхемы, работающие в различных режимах SPI, являются несовместимыми, поэтому перед выбором подчиненных микросхем важно уточнить, какие режимы поддерживаются ведущим шины.
СPOL=0 СРЩ=0
CPOL=0
СННА=И
CPGL=1 ' СИНД = 0
CPOL=l
СР+1А=А
Ш5У
MISO
MOSH
WiSO
Рис. 2. Режимы работы протокола SPI
В микросхеме СС2540 имеются два порта ввода вывода информации (не считая дополнительных выводов общего назначения): USART0 и USART1. В зависимости от требуемого типа подключения (UART или SPI, I2C) и от топологических предпочтений при разводке печатной платы эти порты могут конфигурироваться в одной из двух локаций. Рассмотрим пример конфигурации микросхемы для конкретного случая: микросхема СС2540 будет выступать в качестве SPI Master, в качестве Slave будет использоваться AFE система ADS1298.
Для конфигурации необходимо знать параметры настройки интерфейса SPI ведомого устройства. В нашем случае CPOL = 0, CPHA = 1, MSB first [2]. Конфигурация производится путем установки соответствующих регистров. В первую очередь необходимо установить регистр UxCSR = 0 (число х означает номер порта USART0 или USART1, в дальнейшем будем считать, что конфигурируем USART0). Данное значение указывает, что USART0 будет использоваться в режиме SPI Master. Далее с помощью регистра U0GSR определяем конфигурацию CPOL = 0, CPHA = 1, MSB first (U0GSR = bit6+bit5 ). С помощью того же регистра U0GSR и регистра U0BAUD устанавливаем частоту тактовых импульсов. Импульсы генерируются с помощью встроенного тактового генератора, в котором частота определяется формулой [3]
(256 + BAUD M )х 2baud_e
BaudRate = ----------------------------х f,
2
где f - системная тактовая частота, равная 16 МГц при использовании встроенного генератора либо 32 МГц при использовании внешнего кварцевого резонатора. Значения BAUD_M и BAUD_E записываются в регистры: UxBAUD.BAUD_M[7:0] и UxGCR.BAUD_E[4:0].
Микросхема CC2540 будет осуществлять передачу в режиме Master после того, как данные (один байт) будут записаны в буфер U0DBUF. При каждом тактовом импульсе USART сдвигает этот байт с выходного регистра на вывод MOSI, в то же время входной регистр сдвигает байт с входа MISO. После выполнения передачи полученный байт будет доступен в буфере U0DBUF. Прерывание осуществляется после посылки каждого байта, TX флаг устанавливается в положение 1, показывая тем самым, что буфер готов для записи новых данных. Также для контроля прерывания можно использовать UxCSR.ACTIVE бит в соответствующем регистре. Этот флаг принимает значение «1», когда USART используется, как только байт передан или принят значение возвращается в «0». Для обмена информацией через SPI можно пользоваться методом прямого доступа к памяти (DMA).
Модуль Bluetooth, рассматриваемый в данной статье, имеет поддержку спецификации Bluetooth 4.0. Данная спецификация с низким энергопотреблением разработана международным объединением SIG - Bluetooth Special Interest Group. Технология Bluetooth 4.0 специально разработана для использования в батарейных устройствах, которым требуется продолжительное автономное функционирование без подзарядки. Благодаря использованию специального алгоритма работы, при котором передатчик включается только на время передачи данных, в Bluetooth 4.0 удалось достигнуть ультранизкого энергопотребления [3].
В спецификации Bluetooth 4.0 предусмотрены два типа устройств: Single-mode и Dualmode. Базовые чипсеты Single-mode поддерживают работу только в соответствии со спецификацией 4.0. Чипсеты Dual-mode могут работать с поддержкой как Bluetooth 3.0, так и Bluetooth 4.0.
Модули серии BLE112, используемые в рассматриваемом устройстве, имеют встроенный стек протоколов Bluetooth BLE, обеспечивающий режимы микропотребления. Структурная схема стека BLE приведена на рис. 3.
Стек протокола BLE, состоящий из двух блоков (контроллер и хост), содержит следующие профили:
- GAP (Generic Access Profile);
- GATT (Generic Attribute Profile);
- L2CAP (Logical Link Control and Adaptation Protocol);
- SM (Security Manager);
- ATT (Attribute Protocol).
Рис. З. Структурная схема стека BLE
В стандарте Bluetooth 3 для устройств BR/EDR (Basic Rate/Enhanced Data Rate) контроллер и хост также рассматривались отдельно, поэтому есть основания говорить, что при разработке нового стандарта был осуществлен возврат к старому стандарту. На самом верху, выше уровня хоста, расположены уровни GAP и GATT.
Физический уровень (PHY) соответствует передаче на центральной частоте 2,4 ГГц с использованием гауссовской частотной манипуляции GFSK (Guassian Frequency-Shift Keying). Канальный уровень (Link Layer) контролирует процесс работы радиоканала и управляет его состоянием. При этом устройство может находиться в одном из пяти состояний: ожидание, сканирование, идентификация, инициализация передачи, процесс передачи. После того как устройство инициализировалось, оно может выступать в роли ведущего или ведомого (master/slave), о чем было сказано выше. Устройство, инициализировавшее соединение, будет выступать как «мастер». Устройство, разрешившее соединиться с ним, будет выступать в роли «ведомого». В стандарте Bluetooth v.4.0, Single mode устройство «мастер» может одновременно поддерживать от четырех до восьми соединений с «ведомыми» устройствами.
Уровень HCI (Host controller interface) обеспечивает связь между хостом и контроллером, используя стандартные интерфейсы. Он может быть реализован с помощью программного обеспечения интерфейса прикладного программирования (API) или с помощью аппаратной части через интерфейсы UART, SPI или USB. При этом через эти интерфейсы управление модулем реализуется с помощью бинарных команд.
Уровень L2CAP (Logical Link Control and Adaptation Protocol) обеспечивает инкапсуляцию данных для верхних уровней, в том числе и при логическом соединении «точка-точка». Этот протокол, реализующий логическое соединение поверх соединения по радиоканалу, позволяет протоколам более высокого уровня обмениваться пакетами данных длиной до 64 кбайт. Несколько логических каналов могут одновременно использовать одно и то же радиосоединение. При этом пакет протокола L2CAP, получаемый каналом, перенаправляется к соответствующему протоколу более высокого уровня. Узел L2CAP, как правило, всегда подключается к уровню HCI.
Уровень SM (Security Manager) определяет методы, с помощью которых реализуется соединение между устройствами. Кроме того, на этом уровне вырабатываются инструкции о ме-
рах безопасности при соединении различных устройств и степени конфиденциальности передаваемых данных. Здесь следует отметить тот факт, что соединение между Bluetooth-устройствами может носить защищенный характер, поскольку данный уровень предоставляет средства для шифрования канала соединения. Этот факт имеет большое значение, поскольку информация, которая будет передаваться с кардиоанализатора на устройство-приемник, имеет конфиденциальный характер. Поэтому защита передаваемых с кардиоанализатора данных -процедура обязательная. При шифровании данных в Bluetooth 4.0 используется симметричный алгоритм блочного шифрования AES. Размер ключа шифрования равен 128 бит, что позволяет говорить о высокой степени безопасности по сравнению с предыдущими спецификациями Bluetooth (в которых ключ был намного короче), так как размер ключа напрямую влияет на степень защищенности данных.
Уровень GAP организует связь с приложениями и внешними устройствами и контролирует их безопасное взаимодействие.
Протокол ATT ограничивает передачу данных и позволяет модулю пересылать другим устройствам только ту часть данных, которые помечены как «атрибуты». В контексте этого протокола устройство, передающее «атрибуты», обозначается как «сервер». Устройство, принимающее «атрибуты», обозначается как «клиент». При этом определенные на уровне LL роли устройств в качестве «мастера» и «ведомого» не зависят от того, как эти устройства определены на уровне ATT. Поэтому и «сервер», и «клиент» могут выступать как в качестве «мастера», так и в качестве «ведомого».
Уровень GATT реализует сервисную службу, которая вырабатывает дополнительные детальные инструкции, как именно должно быть реализовано взаимодействие между устройствами на уровне ATT. Уровень GATT определяет структуру профилей. В стандарте BLE все данные, которые используются профилем или сервисными службами, обозначают как «характеристики». Весь процесс передачи данных между двумя устройствами в стандарте BLE реализуется только через уровень GATT. Поэтому абсолютно все приложения и профили в стандарте BLE так или иначе взаимодействуют с профилем GATT.
Следует отметить, что конкретная реализация логики работы Bluetooth-модуля осуществляется программированием его микроконтроллера. Сам модуль предоставляет для этого достаточно широкий набор средств.
Данные хранятся на сервере в виде таблицы атрибутов, которая, по сути, представляет собой простую базу данных. При появлении новых данных сервер уведомляет клиента и тот запрашивает необходимый атрибут. Сервер обрабатывает запрос и выдает ответ, в котором содержится атрибут с непосредственно его значением и уникальным идентификатором. В рассматриваемом случае сервером как раз является кардиоанализатор. Клиент представляет собой смартфон под управлением операционной системы Android. Соответственно, клиент также должен иметь встроенный модуль Bluetooth 4.0. Запрос данных с телефона на кардиоанализатор происходит программно через заданный промежуток времени либо по требованию пользователя смартфона.
Список литературы
1. Serial Peripheral Interface, Википедия, свободная энциклопедия. - URL:
http://ru.wikipedia.org/wiki/Serial_Peripheral_Interface (дата обращения: 01.02.2013).
2. Low-Power, 2-Channel, 24-Bit Analog Front-End for Biopotential Measurements (Rev. B). -URL: http://www.ti.com/lit/ds/symlink/ads1291.pdf (дата обращения: 01.02.2013).
3. Программное обеспечение. Руководство разработчика. Версия 1.0. Texas Instruments. CC2540, Bluetooth Low Energy. - URL: http://www.bluetooth.com/Pages/Low-Energy.aspx (дата обращения: 03.02.2013).
Петровский Михаил Александрович Petrovskiy Mikhail Aleksandrovich
аспирант, postgraduate student,
Пензенский государственный университет Penza State University
E-mail: [email protected]
Иванчуков Антон Геннадьевич
аспирант,
Пензенский государственный университет
Ivanchukov Anton Gennad'evich
postgraduate student,
Penza State University
E-mail: [email protected]
УДК 616.71 Петровский, М. А.
Особенности организации интерфейса мобильного кардиоанализатора / М. А. Петровский, А. Г. Иванчуков // Измерение. Мониторинг. Управление. Контроль. - 2013. - № 1(3). - С. 44-49.