Тема работы:

«Анализ построения сети удаленного контроля термодатчиков

на базе процессоров серии KW40X фирмы NXP»

 

 

Выполнил: студент группы 319
Рыбаков Д.А.
Руководитель: доцент кафедры ТОР
Бакке А.В.

         Проанализируем архитектуру построение BLE чипа KW40x. Рисунок 1.

На основе архитектуры BLE, представленного на рисунке 1 построим архитектуру сети многопользовательской передачи телеметрических данных (рисунок 2).

Рисунок 2.

Рассмотрим структуру адреса Bluetooth устройства (рисунок 3).

 

 Рисунок 3.

Рассмотрим подпрограммную процедуру вызова функций настройки публичного MAC – адреса BLE – устройства.

 

void SetBleConfig()

{

  SetBdAddress(); //настройка BLE - адреса

}

void SetBdAddress()

{ 

  uint8_t* pChipID = ((uint8_t*)0x40048058); //адрес идентификатора MCU

  uint32_t address = 0x00ABCDEF; //инициализирующее значение CRC24

 

  for (int i = 0; i < 12; ++i)  //идентификатор MCU расположен последовательно в трёх словах по 4 байта

  { uint32_t byte = *(pChipID + i);

    address ^= byte << 16;

    for (int j = 1; j <= 8; ++j) address = (address & 0x800000) != 0 ? (address << 1)  (0x5D6DCB) : address << 1;

  }

  //будем менять только 3 младшие байта глобального адреса, а старшие остаются как есть

  address &= 0x00FFFFFF;

  gBDAddress_c[0] = gBDAddress_c[1] = gBDAddress_c[2] = 0x00; 

  *((uint32_t*)gBDAddress_c) |= address;

}

 

Функция SetAddress() создаёт и устанавливает публичный MAC – адрес BLE-устройства, оставляя в качестве уникального идентификатора организации (три старшие байта) идентификатор фирмы Freescale. Младшие три байта адреса формируются алгоритмом CRC24 из уникального идентификатора MCU, расположенного начиная с адреса 0x40048058.

 

         Рассмотрим подпрограмму, которая отвечает за пересылку центральному устройству данные (мастеру – peerDeviceId) на установление новых параметров соединения.

bleResult_t SetMyConnectParameters(deviceId_t peerDeviceId)

{

  bleResult_t result;

  result = L2ca_UpdateConnectionParameters(peerDeviceId, 6, 6, 499, 1500, gcConnectionEventMinDefault_c, gcConnectionEventMaxDefault_c);

  return result;

}

 

6 - (=7.5мс) – минимальный интервал между коннекциями = 1.25 мс

6 - (=7.5мс) - максимальный интервал между коннекциями = 1.25 мс

499 - ([499+1]*7.5мс = 3750мс) - latency – столько запросов  (+1) имеет право проигнорировать периферийное устройство

1500 - supervisionTimeout – задаётся в 10 мс и определяет безответное время, по прошествии короткого центральное устройство определяет потерю связи.

 

Фрейм - время между началами двух последовательных событий соединения задается параметром connInterval, который указывается в интервалах 1.25 мс и может лежать в пределах от 7.5 мс до 4 с.
          Вторым важным параметром для пико сети BLE является параметр connSlaveLatency, определяющий количество последовательных фреймов в течении которых ведомое устройство не прослушивает канал и может на это время отключить трансивер. Данный параметр является
целым числом в пределах от 0 до 499 и не должно превышать контрольного интервала супервизора - параметр connSupervisionTimeout.

Параметр connSupervisionTimeout может принимать значения в диапазоне от 100 мс до 32 с. Его назначение - обнаружение потери соединения с устройством из-за ухудшения качества канала связи или перемещения его за пределы досягаемости.

 

Рассмотрим процедуру подсчёта температуры и преобразование данных термистора. Для корректного расчёта необходимы данные следующих величин.

- Температурный коэффициент чувствительности (ТКЧ) термистора NXFT15WF104FA2B100 – 4250, используется для точного расчета температуры;

- Величина сопротивления (Ом) термистора (Rterm) при Т=25°С, находящегося в верхнем плече делителя, в нижнем плече которого находится постоянный резистор 100 000 Ом;

- Величина сопротивления (Ом) постоянного резистора в нижнем плече делителя = 100 000 Ом;

Далее определяем макрос ADC12BIT (переключает режим АЦП с 16 бит на 12 бит. Далее инициируется функция, которая запускает аналогово-цифровое преобразование и возвращает полученные данные с АЦП в двоичном виде. Далее функция получает двоичные данные с АЦП
и переводит в температуру, применяя сглаживание, и возвращает её. Получаем двоичные данные с АЦП, переводим данные АЦП в сопротивление термистора, переводим сопротивление термистора в температуру:


currTemp = 1/(log(данные_АЦП/Rterm)/ТКЧ + 0.003354) - 273.15    

  

Диаграмма состояний устройства BLE (рисунок 4).

После включения электропитания термодатчики Bluetooth LE должно зарегистрироваться в подсети. Для этого устройство должно переключиться в роль запрашивающего устройства и сформировать широковещательный запрос. Находящиеся в пределах досягаемости сканирующие узлы сети принимают пакет от запрашивающего устройства и заносят сведения о нем в таблицу доступных устройств. Тип запроса, номер подсети запрашивающего устройства и его адрес (номер устройства в подсети) определяются по информационной части пакета запроса. После регистрации в подсети устройство переходит в состояние парковки.

Рисунок 4.

холостое состояние – низкое энергопотребление, работают только часы устройства

состояние соединения – устройство подключено к пикосети

состояние парковки – состояние подчинённого устройства, от которого не требуется участия в работе пикосети, но которое должно оставаться её частью

Промежуточные состояния (для подключения к пикосети новых подчинённых устройств):

опрос – определение устройством наличия других устройств в пределах его досягаемости

поиск опроса – ожидание устройством опроса

ответ на опрос – устройство, получившее опрос, отвечает на него

запрос – посылается одним устройством другому для установления с ним соединения (запрашивающее устройство становится ведущим, запрашиваемое–подчинённым)

поиск запроса – устройство ожидает запрос

ответ подчинённого устройства – подчинённое устройство отвечает на запрос ведущего

ответ ведущего устройства – ведущее устройство отвечает подчинённому после получения от него ответа на запрос

Выводы: в ходе самостоятельной работы мною были изучены:

- архитектура построения сети BLE, изучена диаграмма состояний устройств BLE;

- изучены основы организации профилей BLE протоколов и их программная реализация;

- была спроектирована многопользовательская сеть передачи телеметрических данных в контексте модели OSI.