NFC метки что такое, как использовать и как пользоваться

Stm32g0 – идеальный выбор для систем с датчиками

Компания STMicroelectronics предлагает широкий выбор микроконтроллеров STM32: от сверхпроизводительных STM32H7 до бюджетных STM32G0 (рисунок 1). При этом именно микроконтроллеры STM32G0 во многих случаях становятся идеальным выбором для построения систем с датчиками. Преимуществами STM32G0 являются:

  • высокая производительность;
  • большой объем памяти;
  • невысокая цена;
  • наличие необходимых интерфейсов и периферии для работы с датчиками;
  • возможность работы с различными проводными и беспроводными каналами связи;
  • малое потребление;
  • широкий выбор корпусных исполнений;
  • высокий уровень надежности;
  • высокий уровень безопасности;
  • широкий выбор средств разработки и отладки.

Рассмотрим эти преимущества STM32G0 подробнее.

Производительность, память, цена. Все микроконтроллеры семейства STM32G0 построены на базе производительного 32-битного процессорного ядра ARM Cortex-M0 с максимальной тактовой частотой 64 МГц. В настоящий момент на рынке представлены модели с объемом Flash-памяти до 128 кбайт и ОЗУ до 36 кбайт (таблица 11). Производительности и объема памяти STM32G0 хватит для работы с любыми типами датчиков в большинстве приложений.

Таблица 11. Номенклатура микроконтроллеров STM32G0

НаименованиеFмакс, МГцFlash, кБайтОЗУ, кБайтAESTRNGUпит, ВTраб, °CКорпус
STM32G030C6T6643282…3,6-40…85LQFP 48
STM32G030C8T6646482…3,6-40…85LQFP 48
STM32G030F6P6643282…3,6-40…85TSSOP 20
STM32G030K6T6643282…3,6-40…85LQFP 32
STM32G030K8T6646482…3,6-40…85LQFP 32
STM32G031C6T6643281,7…3,6-40…85LQFP 48
STM32G031C8T6646481,7…3,6-40…85LQFP 48
STM32G031C6U6643281,7…3,6-40…85UFQFPN 48
STM32G031C8U6646481,7…3,6-40…85UFQFPN 48
STM32G031F4P6643241,7…3,6-40…85TSSOP 20
STM32G031F6P6643281,7…3,6-40…85TSSOP 20
STM32G031F8P6646481,7…3,6-40…85TSSOP 20
STM32G031G6U6643281,7…3,6-40…85UFQFPN 28
STM32G031G8U6646481,7…3,6-40…85UFQFPN 28
STM32G031K4T6643241,7…3,6-40…85LQFP 32
STM32G031K6T6643281,7…3,6-40…85LQFP 32
STM32G031K8T6646481,7…3,6-40…85LQFP 32
STM32G031K6U6643281,7…3,6-40…85UFQFPN 32
STM32G031K8U6646481,7…3,6-40…85UFQFPN 32
STM32G071C8T66464361,7…3,6-40…85LQFP 48
STM32G071CBT664128361,7…3,6-40…85LQFP 48
STM32G071C8U66464361,7…3,6-40…85UFQFPN 48
STM32G071CBU664128361,7…3,6-40…85UFQFPN 48
STM32G070C8T66464362…3,6-40…85LQFP 48
STM32G070CBT664128362…3,6-40…85LQFP 48
STM32G070KBT664128362…3,6-40…85LQFP 32
STM32G070RBT664128362…3,6-40…85LQFP 64
STM32G071E8Y66464361,7…3,6-40…85WLCSP 25L
STM32G071EBY664128361,7…3,6-40…85WLCSP 25L
STM32G071G8U664128361,7…3,6-40…85UFQFPN 28
STM32G071GBU664128361,7…3,6-40…85UFQFPN 28
STM32G071GBU364128361,7…3,6-40…125UFQFPN 28
STM32G071KBT664128361,7…3,6-40…85LQFP 32
STM32G071K8U66464361,7…3,6-40…85UFQFPN 32
STM32G071KBU664128361,7…3,6-40…85UFQFPN 32
STM32G071RBI66464361,7…3,6-40…85UFBGA
STM32G071RBT664128361,7…3,6-40…85LQFP 64
STM32G081RBT664128361,7…3,6-40…85LQFP 64

Существуют три линейки микроконтроллеров STM32G0:

Примеры конкретных представителей линеек, а также сравнение их характеристик можно найти в таблице 12.

Таблица 12. Характеристики представителей различных линеек STM32G0

ХарактеристикиSTM32G070RBSTM32G071RBSTM32G081RB
ПроцессорARM Cortex-M0ARM Cortex-M0ARM Cortex-M0
Частота процессора, МГцДо 64До 64До 64
Flash, кбайт128128128
SRAM, кбайт363636
Частота внешнего резонатора, МГц4…484…484…48
Встроенные RC-осцилляторы16 МГц, 32 кГц16 МГц, 32 кГц16 МГц, 32 кГц
DMA7-канальный7-канальный7-канальный
GPIO596060
АЦП12-битный, 16 каналов,
2,5 MSPS
12-битный, 16 каналов,
2,5 MSPS
12-битный, 16 каналов,
2,5 MSPS
ЦАП2 x 12-бит2  x 12-бит
Аналоговые компараторы22
Число таймеров111414
RTC
I2C222
USART444
SPI222
HDMI CEC11
LPUART11
LPTIM22
Контроль питанияPOR/PDRPOR/PDR/BOR/PVDPOR/PDR/BOR/PVD
CRC
TRNG
AES128/256 бит
96-битный уникальный идентификатор ID
Напряжение питания, В2,0…3,61,7…3,61,7…3,6
Диапазон рабочих температур, °С-40…85-40…85/125-40…85/125

В настоящий момент стоимость STM32G0 сопоставима со стоимостью 8-битных и 16-битных микроконтроллеров, обладающих меньшей производительностью и ограниченным выбором периферии.

Наличие необходимых интерфейсов и периферии для работы с датчиками. Из представленного выше описания датчиков от ST становится ясен минимальный набор интерфейсов и периферии.

Для взаимодействия с подавляющим большинством цифровых сенсоров будет достаточно интерфейсов SPI и I2C. Как видно из таблицы 12, на борту у всех микроконтроллеров STM32G0 можно найти сразу по два встроенных интерфейса SPI и I2C.

Многие цифровые датчики поддерживают работу с прерываниями. Для обнаружения сигналов прерываний контроллеры STM32G0 могут использовать порты ввода-вывода и линии EXTI. Не стоит забывать о матрице межсоединений IMX и DMA-контроллере, которые позволяют получать и накапливать данные от сенсоров даже без участия процессорного ядра.

Датчики с аналоговыми выходами, например акселерометр LIS344ALH, микрофон MP23ABS1 и многие датчики температуры требуют АЦП для оцифровки сигналов. В составе STM32G0 есть 16-канальный 12-битный АЦП с частотой преобразования до 2,5 MSPS.

Также стоит отметить наличие у старших линеек двух аналоговых компараторов, которые позволяют без особого труда реализовывать аварийные датчики, например, датчики перегрева.

Для работы с цифровыми МЭМС-микрофонами требуется интерфейс PDM. Это также не является проблемой для STM32G0, так как контролер SPI поддерживает интерфейс I2S, который в свою очередь позволяет принимать и преобразовывать поток данных от микрофонов.

Возможность работы с различными проводными и беспроводными каналами связи. В большинстве приложений будет недостаточно просто получить данные от сенсоров. Далее информацию требуется передать в облако или в управляющий узел сети.

Для этого могут использоваться различные проводные и беспроводные интерфейсы. Компания ST выпускает широкий спектр проводных и беспроводных приемопередатчиков. Например, для работы с приемопередатчиками RS-485/RS-422 у STM32G0 есть сразу четыре интерфейса UART, а для взаимодействия с субгигагерцевым модулем SPIRIT1 могут быть использованы SPI, I2C или UART.

Низкое потребление. Микроконтроллеры STM32G0 используют процессорное ядро ARM Cortex-M0 , которое разрабатывалось специально для создания устройств с малым потреблением. В активном режиме работы динамическое потребление микроконтроллеров составляет около 100 мкА/МГц (при отключенной периферии).

Широкий выбор корпусных исполнений. Обычно при построении автономных датчиков требуются микроконтроллеры с небольшим количеством выводов, однако бывают и исключения. В настоящий момент STM32G0 поставляются в корпусных исполнениях с числом выводов от 20 (TSSOP-20)

Высокий уровень надежности. Микроконтроллеры STM32G0 отличаются высокой надежностью. Они способны работать в расширенном диапазоне температур (некоторые модели – до 125°С) и характеризуются повышенной устойчивостью к помехам:

  • класс устойчивости 2B, в соответствии с IEC 61000-4-2;
  • класс устойчивости 5A, в соответствии с IEC 61000-4-4;
  • класс устойчивости 2, в соответствии с ANSI/ESDA/JEDEC JS-001 (модель HBM) с испытательным напряжением 2000 В;
  • класс устойчивости С2a, в соответствии с ANSI/ESDA/JEDEC JS-002 (модель CDM) с испытательным напряжением 500 В;
  • класс устойчивости II к защелкиваниям (Static latch-up), в соответствии с EIA/JESD 78A.

Кроме того, микроконтроллеры имеют целый ряд других специализированных функций и блоков, позволяющих контролировать исправность микроконтроллера, среди них:

  • схемы контроля уровня напряжения питания POR/PDR/BOR/PVD;
  • система контроля тактового сигнала Clock security system (CSS), которая позволяет обнаруживать неполадки в работе внешнего резонатора HSE;
  • система контроля тактового сигнала LSECSS (Clock security system for LSE clock), которая позволяет обнаруживать неполадки в работе внешнего резонатора LSE;
  • функция контроля четности данных, хранящихся в ОЗУ;
  • система ECC (Error Code Correction), которая позволяет обнаруживать и исправлять одиночные поврежденные биты во Flash, кроме того существует возможность обнаружения двух поврежденных бит, но без локализации и исправления.

Благодаря наличию матрицы соединений IMX после обнаружения аварийных ситуаций микроконтроллер может быть переведен в безопасное состояние без участия процессорного ядра. Речь, например, идет об остановке таймеров, управляющих электродвигателями.

Высокий уровень безопасности. В данном случае под безопасностью подразумевается устойчивость микроконтроллеров к атакам и взломам. Подробный обзор функций безопасности проводится в руководстве «AN5156. Application note.Introduction to STM32 microcontrollers security» [10].

Взлом микроконтроллера может производиться с различными целями, такими как кража данных, вывод из строя, изменение режима работы, реверс-инжиниринг и так далее. Методы взлома также весьма разнообразны – от шпионских программ до физического вскрытия чипа. Для защиты от перечисленных воздействий STM32G0 предлагают целый ряд защитных инструментов (таблица 13).

Таблица 13. Защитные функции и блоки микроконтроллеров STM32G0

ПараметрSTM32G0
ЯдроARM Cortex M0
RDP
Дополнительная защита RDPДля дежурных регистров ( backup registers)
WRPБлоки по 2 кбайт. Доступно определение двух областей
PCROPБлоки по 512 байт. Доступно определение двух областей
Secure area
Firewall
MPU
Unique Boot Entry (Boot lock feature)
Tamper detection
IWDG
TRNG
Device ID 96 bits
HW CryptoTRNG, AES

Широкий выбор инструментов отладки. Микроконтроллеры STM32G0 входят в экосистему STM32 и предлагают широкий выбор аппаратных и программных инструментов разработки и отладки:

  • отладочные платы Discovery, Eval и Nucleo. Сейчас к услугам разработчиков предлагаются платы NUCLEO-G070RB, NUCLEO-G071RB, STM32G071B-DISCO и STM32G081B-EVAL. Скоро на рынке появятся платы STM32G0316-DISCO и NUCLEO-G031K8;
  • платы расширения X-NUCLEO, например, X-NUCLEO-IKS01A2, X-NUCLEO-6180XA1, X-NUCLEO-GNSS1A1 и другие;
  • STM32CubeMX – программа, предназначенная для генерации кода инициализации и расчета потребления тока микроконтроллера с удобным графическим интерфейсом [11];
  • бесплатные IDE: STM32CubeIDE и Atholic TrueStudio [12]. Кроме того, ARM Keil предоставляет бесплатную лицензию специально для работы с STM32G0;
  • коммерческие IDE, например, IAR и Cosmic;
  • программные пакеты и библиотеки для работы с датчиками ST;
  • ArduinoIDE, которое поддерживает работу с платами Nucleo, Discovery, а также платами расширения X-NUCLEO.
Читайте ещё про NFC:  Бургер кинг скидка android pay

Благодаря существующим средствам разработки создание устройств с датчиками на базе STM32G0 существенно упрощается. В качестве примера рассмотрим работу STM32G0 с датчиком приближения VL53L1x. Для этого воспользуемся отладочной платой Nucleo-G071RB и платой расширения X-NUCLEO-53L1A1 (рисунок 8).

Акселерометры

В настоящий момент компания STMicroelectronics производит почти три десятка наименований акселерометров (таблица 1). Кратко проанализируем их характеристики.

Тип выхода. Большинство акселерометров от STMicroelectronics – цифровые, они используют для взаимодействия с управляющим микроконтроллером интерфейсы I2C и SPI. Исключением является трехосевой акселерометр LIS344ALH, который имеет три аналоговых выхода напряжения. Для работы с ним потребуется АЦП.

Количество поддерживаемых осей. Большая часть акселерометров STMicroelectronics – трехосевые. Акселерометр AIS1120Sx работает с одной осью, а акселерометры AIS1200PS и AIS2120Sx производят измерения по двум осям.

Диапазон измеряемых ускорений. Наиболее популярными диапазонами являются ±2, ±4, ±8 и ±16 g. Однако в линейке поставок STMicroelectronics присутствуют и модели, предназначенные для измерения сверхускорений до ±200 g и ±400 g (H3LIS100DL, H3LIS200DL, и другие).

Потребление акселерометров ST варьируется в широких пределах, но для большинства моделей потребление даже в активном режиме не превышает нескольких сотен мкА. В режиме Power down потребление и вовсе падает до единиц мкА (и даже ниже).

Область применения. STMicroelectronics делит свои акселерометры на пять групп: автомобильные акселерометры AISx, промышленные акселерометры IISx, акселерометры H3LISx для работы со значительными ускорениями, акселерометры для коммерческих приложений LISx, акселерометр для медицинских приложений MIS2DH.

Дополнительные преимущества. Среди дополнительных преимуществ акселерометров от STMicroelectronics следует также отметить: наличие встроенных буферов FIFO и возможность работы по прерыванию, большой выбор корпусных исполнений, широкий диапазон напряжений питания, наличие встроенных датчиков температуры (необходимых для калибровки).

Обзор акселерометров ST, анализ их характеристик и подробное рассмотрение работы с ними можно найти в других публикациях на нашем сайте, например, здесь [1, 2].

Таблица 1. Характеристики акселерометров STMicroelectronics

НаименованиеТипОсиДиапазон, gПлотность шума тип., мкg/√ГцIпотр тип., мАIпотр мин., мкАКорпусUпит, В
AIS1120SXЦифровойX±1204,5SO-83,1…3,5
AIS1200PSЦифровойX, Y±2004SO16 мм5…16
AIS2120SXЦифровойX, Y±1206SO-83,1…3,5
AIS2DW12ЦифровойX, Y, Z±2;±41200,670,5FLGA
2x2x1 мм
1,62…3,6
AIS328DQЦифровойX, Y, Z±2; ±4; ±82180,25QFN 24
4x4x1,8 мм
2.4…3,6
AIS3624DQЦифровойX, Y, Z±6; ±12; ± 246001QFN 24
4x4x1,8 мм
2,4…3,6
H3LIS100DLЦифровойX, Y, Z±1005001LLGA 16
3x3x1,0 мм
2,16…3,6
H3LIS200DLЦифровойX, Y, Z±100; ±2005001LLGA 16
3x3x1,0 мм
2,16…3,6
H3LIS331DLЦифровойX, Y, Z±100; ±200, ±40015000,3LLGA 16
3x3x1,0 мм
2,16…3,6
IIS2DHЦифровойX, Y, Z±2; ±4; ±8; ±160,0110,5VFLGA
2x2x1 мм
1,71…3,6
IIS2DLPCЦифровойX, Y, Z±2; ±4; ±8; ±16900.0110,5LGA
2x2x0.7 мм
1,71…3,6
IIS328DQЦифровойX, Y, Z±2; ±4; ±82181QFN 24
4x4x1,8 мм
2,4…3,6
IIS3DHHCЦифровойX, Y, Z±2,5450,0110,5LGA
5x5x1,7 мм
1,71…3,6
LIS25BAЦифровойX, Y, Z±3,852,13200VFLGA
2,5х2,5х0,86 мм
1,71…1,99
LIS2DE12ЦифровойX, Y, Z±2; ±4; ±8; ±160,0110,5VFLGA
2x2x1 мм
1,71…3,6
LIS2DHЦифровойX, Y, Z±2; ±4; ±8; ±160,0110,5LGA 14
2x2x1,0 мм
1,71…3,6
LIS2DH12ЦифровойX, Y, Z±2; ±4; ±8; ±162200,0110,5VFLGA
2x2x1 мм
1.71…3,6
LIS2DS12ЦифровойX, Y, Z±2; ±4; ±8; ±161200,0180,5VFLGA
2x2x0,86 мм
1,62…1,98
LIS2DTW12ЦифровойX, Y, Z±2; ±4; ±8; ±16900,090,5LGA
2x2x0,7 мм
1,62…3,6
LIS2DW12ЦифровойX, Y, Z±2; ±4; ±8; ±161200,090,5LGA
2x2x0,7 мм
1,62…3,6
LIS2HH12ЦифровойX, Y, Z±2; ±4; ±80,0180,5VFLGA
2x2x1 мм
1,71…3,6
LIS331DLHЦифровойX, Y, Z±2; ±4; ±82180,25LLGA
16 3x3x1,0 мм
2,16…3,6
LIS331HHЦифровойX, Y, Z±6; ±12; ±246500,251LLGA 16
3x3x1,0 мм
2,16…3,6
LIS344ALHАналоговыйX, Y, Z±2; ±6500,68LLGA 16
4x4x1,5 мм
2,4…3,6
LIS3DHЦифровойX, Y, Z±2; ±4; ±8; ±162200,0110,5LLGA 16
3x3x1,0 мм
1.71…3,6
LIS3DHHЦифровойX, Y, Z±2,5452,5LGA
5x5x1,7
16LD мм
1,71…3,6
LIS3DSHЦифровойX, Y, Z±2; ±4; ±6; ±8; ±161500,252LLGA 16
3x3x1,0
1,71…3,6
LIS3LV02DLЦифровойX, Y, Z±2; ±60,651LGA 16
4,4х7,5х1,0 мм
2,16…3,6
MIS2DHЦифровойX, Y, Z±2; ±4; ±8; ±160,0020,5VFLGA
2х2х1 мм
1,71…3,6

Банковские карты

Чипы NFC используются не только в мобильных устройствах в режиме эмуляции карты, но и в самих пластиковых картах, для возможности бесконтактной оплаты, и еще в других распространенных устройствах с возможностью эмуляции вашей карты, типа кольца или браслета со встроенным чипом NFC.NFC метки что такое, как использовать и как пользоваться
Рис. 15. Этапы прохождения платжной транзакции.

В случае использования контактной карты, в ее чип зашивается платежное приложение банка-эмитента, которое через платежную систему взаимодействует с банком-эквайером продавца при проведении платежной транзакции, и персональные платежные данные клиента банка, на чье имя выпущена карта. Данные хранятся в зашифрованном криптоключами виде и защищены от перезаписи или изменения.

В работе бесконтактной карты добавляется NFC модуль, который обеспечивает бесконтактное соединение со считывателем банковских карт.

Что же происходит в случае эмулирования карты мобильным телефоном. Чтобы не записывать на чип SE в мобильном устройстве платежные приложения всех банковских карт, которыми пользуется владелец устройства, которые к тому же надо персонализировать, т.е. передать данные о выпущенных картах и хранить их в защищенном виде, была сформулирована роль TSM (Trusted Service Manager), который объединяет с одной стороны поставщиков услуг (Service Provider TSM), а с другой стороны чипы Secure Element (Secure Element Issuer TSM).

TSM — Trusted Service Manager — уникальный посредник, который владеет ключами. Это аппаратно-программный комплекс, предоставляющий технологические отношения между операторами связи и поставщиками услуг.
NFC метки что такое, как использовать и как пользоваться
Рис. 16. Trusted Service Manager или TSM — доверенный поставщик услуг. Выполняет защищенную загрузку и менеджмент контента защищенного элемента (SE) для транспортных приложений, магазинов, мобильных операторов, банковских приложений, конфиденциальные данные держателя карты.Ключевые услуги доверенной третьей стороны включают защищенную загрузку и менеджмент контента элемента безопасности, выполняемый при взаимодействии с провайдерами мобильных сервисов. Это могут быть банки, транспортные компании, поставщики и агрегаторы услуг. Удаленное управление приложениями, обычно выполняемое с использованием технологий беспроводной сотовой связи (over-the-air, OTA), включает установку и персонализацию приложений в элементе безопасности мобильного телефона, а также дальнейшее обслуживание установленных приложений на всем протяжении их жизненного цикла, равно как и сервисную поддержку. Подробнее о TSM здесь. Однако эта технология платежей все равно требовала присутствия физического защищенного элемента на мобильном устройстве. Что давало определенные ограничения, например, если производитель мобильного устройства не включил SE в свою платформу, в этом случае, требовалось менять SIM-карту на карту с поддержкой SE у мобильного оператора.

В 2021 году Дугом Йегером и Тедом Фифельски, основателями SimplyTapp, Inc. был придуман термин «эмуляция хост-карты» (Host Card Emulation ), который описывал возможность открытия канала связи между терминалом бесконтактных платежей и удаленным размещенным защищенным элементом, содержащим финансовые данные, данные платежной карты, позволяющие проводить финансовые операции в терминале торговой точки. Они внедрили эту новую технологию в операционной системе Android, начиная с версии 4.4. HCE требует, чтобы протокол NFC направлялся в основную операционную систему мобильного устройства, а не в локальную микросхему защищенного аппаратного элемента (SE). Итак, начиная с версии Android 4.4 KitKat управление платежными операциями взял на себя не физический элемент, а API, точнее Google Pay API. Эмуляция карты неотделима от понятия «токенизация», потому что это следующая ступень защиты платежных данных в виртуальном мире после TSM, который выдавал ключи. Токен — это ссылка (то есть идентификатор), которая сопоставляется с конфиденциальными данными через систему токенизации. Сопоставление исходных данных с токеном использует методы, которые делают невозможным обратное преобразование токенов в исходные данные вне системы токенизации, например, с использованием токенов, созданных при помощи случайных чисел. Т.е. вместо номера вашей карты API хранит токен, полученный от банка-эмитента, который бесполезен в том виде, в котором он хранится. Даже если его узнают третьи лица, воспользоваться им будет невозможно.
NFC метки что такое, как использовать и как пользоваться

Рис. 17. Токенизация.Когда вы вводите номер карты в мобильное приложение, обеспечивающее возможность мобльных платежей, например, номер карты 4111 1111 1111 1234, удаленный поставщик токенов (remote token service server) возвращает вместо номера карты токен вида 4281 **** **** 2819, который хранится в мобильном устройстве.

Токенизация при использовании Google Pay:

  1. Когда пользователь добавляет в Google Pay свою кредитную или дебетовую карту, приложение запрашивает у банка-эмитента токен. Затем Google Pay шифрует токенизированную карту, и она становится доступна для оплаты.
  2. При оплате клиент прикладывает свое мобильное устройство к терминалу или нажимает соответствующую кнопку в приложении. Google Pay отправляет токен и криптограмму, которая действует как одноразовый код. Платежная система проверяет криптограмму и соотносит токен с номером карты клиента.
  3. Для завершения транзакции ваш банк-эквайер и банк-эмитент покупателя используют данные клиента и расшифрованную информацию о его платеже

При этом:

Датчики температуры

Датчики температуры являются обязательными элементами практически для всех измерительных систем. Это связано с необходимостью корректировки показаний измерений с учетом различных температурных зависимостей. Кроме того, датчики температуры могут использоваться для обнаружения локальных и общих аварийных перегревов.

Читайте ещё про NFC:  Samsung pay на планшетах

Компания STMicroelectronics выпускает более десятка различных датчиков (таблица 5), среди них:

Подробный обзор датчиков температуры от ST можно найти в других публикациях, например, здесь [4].

Таблица 5. Характеристики датчиков температуры от STMicroelectronics

Наименова-
ние
ТипРазре-
шение, бит
Диапазон, °СТоч-
ность, °С
Погреш-
ность, %
Iпотр тип., мкАIпотр мин., мкАКорпусUпит, В
LM135Аналоговый-55…1503TO-92
LM234Аналоговый-25…1006SO-8
LM235Аналоговый-40…1253SO-8,TO-92
LM334Аналоговый0…706SO-8
LM335Аналоговый-40…1003SO-8,TO-92
STCN75Цифровой9-55…1250,51251MSOP/TSSOP 82,7…5,5
STDS75Цифровой9-55…1250,51251MSOP/TSSOP 82,7…5,5
STLM20Аналоговый-40(-55)…85(130)0,54,80,02SOT323-5L, UFDFPN2,4…5,5
STLM75Цифровой9-55…1250,51251MSOP/TSSOP 8, SO-82,7…5,5
STTS2004Цифровой10-20…1250,51603TDFN8
2x3x0,75
2,2…3,6
STTS75Цифровой9-55…1250,5751MSOP/TSSOP 8, SO-82,7…5,5
STTS751Цифровой10-40…1250,5503DFN6
2x2x0,5
2,25…3,6

Инерционные модули

Инерционные модули – это комбинированные системы, которые объединяют в одном корпусе несколько инерционных датчиков (например, акселерометр и гироскоп).

Инерционные модули ST имеют на борту трехосевой гироскоп и трехосевой акселерометр, а также датчик температуры (в состав модуля LSM9DS1 дополнительно входит трехосевой магнитометр). Очевидными плюсами инерционных модулей являются компактные габариты, например, модуль LSM6DSO имеет размеры всего 2,5x3x0,86 мм, и это несмотря на то, что кроме сенсоров, в его состав входят АЦП, фильтры, система питания, система тактирования, регистры, FIFO и контроллеры интерфейсов (рисунок 7).

Подробный обзор инерционных модулей от ST можно найти в других публикациях на нашем сайте, например, здесь [7].

Таблица 9.  Характеристики инерционных модулей STMicroelectronics

Наименова-
ние
ТипДиапа-
зон, g
Диапа-
зон, °/с
Плотность шума тип., мкg/√ГцПлотность шума тип., °/с/√ГцIпотр тип., мАIпотр мин., мкАКорпусUпит, В
ISM330DHCXТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000100VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
ASM330LHHТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±1620000,00383VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
ISM330DLCТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000750,003875010VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM6DS3Трехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000900,00712506VFLGA
2,5x3x0,86 мм
1,71…3,6
LSM6DS33Трехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000900,00712506VFLGA
3x3x0,86 мм
1,71…3,6
LSM6DS3HТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000900,00611006VFLGA
2,5x3x0,86 мм
1,71…3,6
LSM6DS3TR-CТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000900,0059003VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM6DS3USТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000900,00611006VFLGA
2,5x3x0,86 мм
1,71…3,6
LSM6DSLТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000800,0046503VFLGA
2,5х3х0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM6DSMТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000750,00386503VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM6DSOТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000700,00385503VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM6DSOXТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±162000700,00385503VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM6DSRТрехосевой гироскоп, трехосевой акселерометр±2; ±4; ±8; ±1620000,003812003VFLGA
2,5x3x0,86 мм,
P.5
0,475х0,25
1,71…3,6
LSM9DS1*Трехосевой гироскоп, трехосевой акселерометр, трехосевой магнитометр±2; ±4; ±8; ±162000TFLGA
3,5x3x1 мм
1,9…3,6
* – Диапазон 16 Гс.

Пример 1 (arduino): x_nucleo_53l1a1_helloworld

Если требуется решить простую задачу с минимальными затратами времени, сил и средств, то следует воспользоваться платформой Arduino. После установки библиотеки STM32duino [13] среда Arduino IDE позволяет работать со многими платами Nucleo и X-NUCLEO, в том числе с Nucleo-G071RB и X-NUCLEO-53L1A1.

Подробнее об установке STM32duino, добавлении библиотек плат расширения, а также запуске проектов с Nucleo можно прочитать здесь [14]. Чтобы использовать готовые примеры (скетчи) для X-NUCLEO-53L1A1, необходимо установить две Arduino-библиотеки: X-NUCLEO-53L1A1 [15] и VL53L1X [16] (рисунок 9).

Информацию по API для VL53L1X можно найти в

Самый простой пример для X-NUCLEO-53L1A1 называется X_NUCLEO_53L1A1_HelloWorld. В этом примере используются все три датчика VL53L1x. Датчики измеряют расстояния до объектов. Микроконтроллер считывает показания датчиков и отправляет их ПК по последовательному интерфейсу. Результаты можно наблюдать во встроенном терминале Arduino IDE (листинг 1).

Листинг 1. X_NUCLEO_53L1A1_HelloWorld (редактированный)

/* Includes ------------------------------------------------------------------*/#include <Arduino.h>#include <Wire.h>#include <vl53l1x_x_nucleo_53l1a1_class.h>#include <stmpe1600_class.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <stdint.h>#include <assert.h>#include <stdlib.h> #define DEV_I2C Wire #define SerialPort Serial // КомпонентыSTMPE1600DigiOut *xshutdown_top;STMPE1600DigiOut *xshutdown_left;STMPE1600DigiOut *xshutdown_right;VL53L1_X_NUCLEO_53L1A1 *sensor_vl53l1_top;VL53L1_X_NUCLEO_53L1A1 *sensor_vl53l1_left;VL53L1_X_NUCLEO_53L1A1 *sensor_vl53l1_right; /* Функция инициализации ------------------------------------------------------*/ voidsetup(){   // Светодиод.   pinMode(13, OUTPUT);    // Инициализация последовательного интерфейса.   SerialPort.begin(115200);   SerialPort.println("Starting...");    // Инициализация I2C   DEV_I2C.begin();    // Создание экземпляра VL53L1X(верхний)    xshutdown_top = new STMPE1600DigiOut(&DEV_I2C, GPIO_15, (0x42 * 2));   sensor_vl53l1_top = new VL53L1_X_NUCLEO_53L1A1(&DEV_I2C, xshutdown_top, A2);    // Выключитьверхнийдатчик VL53L1X.   sensor_vl53l1_top->VL53L1_Off();    // Созданиеэкземпляра VL53L1X (левый)   xshutdown_left = new STMPE1600DigiOut(&DEV_I2C, GPIO_14, (0x43 * 2));   sensor_vl53l1_left = new VL53L1_X_NUCLEO_53L1A1(&DEV_I2C, xshutdown_left, D8);    // Выключитьлевыйдатчик VL53L1X.   sensor_vl53l1_left->VL53L1_Off();    // Созданиеэкземпляра VL53L1X (правый)   xshutdown_right = new STMPE1600DigiOut(&DEV_I2C, GPIO_15, (0x43 * 2));   sensor_vl53l1_right = new VL53L1_X_NUCLEO_53L1A1(&DEV_I2C, xshutdown_right, D2);    // Выключитьправыйдатчик VL53L1X.   sensor_vl53l1_right->VL53L1_Off();    // Инициализациядатчиков   sensor_vl53l1_top->InitSensor(0x10);   sensor_vl53l1_left->InitSensor(0x12);   sensor_vl53l1_right->InitSensor(0x14);} // Основнаяфункцияvoid loop(){   int status;   uint8_t ready = 0;   uint16_t distance;    // Выключить светодиод   digitalWrite(13, LOW);    // Начало измерений   sensor_vl53l1_top->VL53L1X_StartRanging();   sensor_vl53l1_left->VL53L1X_StartRanging();   sensor_vl53l1_right->VL53L1X_StartRanging();    // Ожидаем завершения измерения верхнего датчика do   {      sensor_vl53l1_top->VL53L1X_CheckForDataReady(&ready);   }   while (!ready);    // Включитьсветодиод   digitalWrite(13, HIGH);    // Считатьпоказания   status = sensor_vl53l1_top->VL53L1X_GetDistance(&distance);    if (status == VL53L1_ERROR_NONE)   {      // Передать данные по последовательному порту      charreport[64];      snprintf(report, sizeof(report), "| Distance top [mm]: %d |", distance);      SerialPort.println(report);   }    // Сброситьфлагпрерывания   status = sensor_vl53l1_top->VL53L1X_ClearInterrupt();    // Ожидаем завершения измерения левого датчика   do   {      sensor_vl53l1_left->VL53L1X_CheckForDataReady(&ready);   }   while (!ready);    // Считатьпоказания   status = sensor_vl53l1_left->VL53L1X_GetDistance(&distance);    if (status == VL53L1_ERROR_NONE)   {      // Передать данные по последовательному порту.      char report[64];      snprintf(report, sizeof(report), "| Distance left [mm]: %d |", distance);      SerialPort.println(report);   }    // Сброситьфлагпрерывания   status = sensor_vl53l1_left->VL53L1X_ClearInterrupt();    // Ожидаем завершения измерения правого датчика   do   {      sensor_vl53l1_right->VL53L1X_CheckForDataReady(&ready);   }   while (!ready);   // Считатьпоказания   status = sensor_vl53l1_right->VL53L1X_GetDistance(&distance);   if (status == VL53L1_ERROR_NONE)   {      // Передать данные по последовательному порту.      char report[64];      snprintf(report, sizeof(report), "| Distance right [mm]: %d |", distance);      SerialPort.println(report);   }   // Сброситьфлагпрерывания   status = sensor_vl53l1_right->VL53L1X_ClearInterrupt();   //Остановитьизмерения   sensor_vl53l1_top->VL53L1X_StopRanging();   sensor_vl53l1_left->VL53L1X_StopRanging();   sensor_vl53l1_right->VL53L1X_StopRanging();} 

Примеры использования

Как используется НФС метки? Они устанавливаются в различных местах с целью передачи определенной информации.

Метки НФС могут использоваться для:

  1. Проведения платежных операций. В данном случае НФС-чип должен стоять на карте, в телефоне или другом гаджете и в терминале. NFC-метки: что это, примеры использования, как работает
  2. Включение магнитофона, навигатора, вай-фая, блютуза и др. Особенно актуальным является программирование nfc меток в машинах.
  3. Открывания и закрывания окон, дверей, замков в домах. NFC-метки: что это, примеры использования, как работает
  4. Распространения телефонных номеров или других контактных данных, важной информации. Можно сделать запись, которая будет передаваться другим. Многие создают голосовые сообщения, которые воспроизводятся после контакта с НФС-меткой.
  5. Управления техникой в квартире (стиральной машинкой, телевизором и др.). NFC-метки: что это, примеры использования, как работает
  6. Включения и отключения режима полета, будильника, уведомлений.
  7. Синхронизации данных.
  8. Отслеживания груза.
  9. Пропуска в учебные заведения, кинотеатры, клубы и пр.

Это не все примеры использования NFC меток. Список можно продолжать и дальше. Зная суть их работы и выполнив правильную настройку, будет несложно запрограммировать собственный телефон, бытовую технику или авто.

Структура ndef

NDEF используется для форматирования данных обмена между устройствами и метками. Данный формат типизирует все сообщения, которые используются в NFC, причём не важно для карты это или для устройства. Каждое NDEF-сообщение содержит одну или несколько NDEF-записей. Каждая из них содержит уникальный тип записи, идентификатор, длину и поле для информации, которую нужно сообщить.

Читайте ещё про NFC:  Xiaomi pay — как пользоваться mi pay и где скачать?

Есть несколько распространённых типов NDEF-записей:

  1. Обычные текстовые записи. В них можно отправить любую строку, они не содержат инструкций для цели, но содержат метаданные об языке текста и кодировке.
  2. URI. Такие записи содержат данные об интернет-ссылках. Цель, получившая такую запись, откроет её в том приложении, которое сможет её отобразить. Например, веб-браузере.
  3. Умная запись. Содержит не только веб-ссылки, но и текстовое описание к ним, чтобы было понятно, что находится по этой ссылке. В зависимости от данных записи телефон может открыть информацию в нужном приложении, будь то SMS или e-mail, либо сменить настройки телефона (громкость звука, яркость экрана и т.д.).
  4. Подпись. Она позволяет доказать, что информация, которая была передана или передаётся, достоверна.

Можно использовать несколько видов записей в одном NDEF-сообщении.

Можно представить сообщение как параграф, а записи — как предложения. Параграф — определённая единица информации, которая содержит одно или несколько предложений. Тогда как предложение — меньшая единица информации, которая содержит всего одну идею. Например, можно в виде абзаца сделать приглашения на день рождения и написать в отдельных предложениях данные о дате, времени и месте проведения, а с помощью NDEF-сообщений передать друзьям напоминание об этом событии, где будет текстовое сообщение с описанием события, умную запись с местом и веб-ссылку с тем, как добраться до этого места.

Второе главное различие между NFC и RFID — формат обмена данными NFC (NDEF — NFC data exchange format). NDEF определяет формат данных в сообщениях, которые в свою очередь состоят из NDEF записей. Есть несколько видов записей, о которых будет рассказано более подробно чуть ниже.

NDEF содержит информацию о байтовом представлении сообщений, которые могут содержать несколько записей. У каждой записи есть заголовок, в котором находятся метаданные (тип, длина и т.д.), и информацию для отправки. Если вернуться к аналогии с параграфом, то параграф формируется из предложений, относящихся к одной теме, так и в NDEF-сообщениях — хорошо, когда все записи относятся к одной тематике.

NDEF-сообщения в основном короткие, каждый обмен состоит из одного сообщения, каждая метка также содержит одно сообщение. Так как обмен NFC данными происходит при касании одного устройства другим или меткой, то будет неудобно передавать в одном сообщении текст целой книги, поэтому длина NDEF-сообщения сопоставима с длиной абзаца, но не целой книги.

NDEF-запись содержит информацию для пересылки и метаданные, как эту информацию интерпретировать. Каждая запись может быть разного типа, о чем объявляется в заголовке этой записи. Также в заголовке описывается какое место занимает запись в сообщении, после заголовка следует информация. На рисунке ниже представлена полная информация о расположении бит и байт информации в NDEF-записи.

Место на информацию в NDEF-записи ограниченно по размерам 2^32-1 байтами, однако можно делать цепочки записей внутри сообщения, чтобы переслать информацию большего размера. В теории нет ограничений на NDEF-сообщения, но на практике размер сообщения ограничивается возможностями устройств или меток, участвующих в обмене информацией.

Если в обмене участвуют только устройства, то длина сообщения будет ограничена вычислительной мощностью самого слабого из устройств, но стоит учесть, что устройства придётся долго держать рядом для пересылки всех данных. При взаимодействии смартфона и карты длина сообщения будет ограничена размером памяти карты.

В общем, обмен данными через NFC достаточно быстрый. Человек подносит мобильное устройство к метке, происходит краткий обмен информацией, и человек идёт дальше. Данная технология не была спроектирована для длительных обменов информацией, потому что устройства в буквальном смысле должны находится в паре сантиметров друг от друга.

Для того чтобы передать большой объем информации, устройства придётся держать друг рядом с другом длительное время, это может быть неудобным. Если нужно длительное взаимодействие между устройствами, то можно воспользоваться NFC для быстрого обмена данными о возможностях устройств и последующего включения одного из более подходящих способов передачи данных (Bluetooth, Wi-Fi и т.д.).

Когда телефон на Android считывает NFC-метку, он сначала её обрабатывает и распознает, а затем передаёт данные о ней в соответствующее приложение для последующего создания intent. Если с NFC может работать больше одного приложения, то появится меню выбора приложения. Система распознавания определяется тремя intent, которые перечислены в порядке важности от самой высокой до низкой:

  1. ACTION_NDEF_DISCOVERED: Этот intent используется для запуска аctivity, если в метке содержится NDEF-сообщение. Он имеет самый высокий приоритет, и система будет запускать его в первую очередь.
  2. ACTION_TECH_DISCOVERED: Если никаких activity для intent ACTION_NDEF_DISCOVERED не зарегистрировано, то система распознавания попробует запустить приложение с этим intent. Также этот intent будет сразу запущен, если найденное NDEF-сообщение не подходит под MIME-тип или URI, или метка совсем не содержит сообщения.
  3. ACTION_TAG_DISCOVERED: Этот intent будет запущен, если два предыдущих intent не сработали.

В общем случае система распознавания работает, как представлено на рисунке ниже.

Когда это возможно, запускается intent ACTION_NDEF_DISCOVERED, потому что он наиболее специфичный из трёх. Более того, с его помощью можно будет запустить ваше приложение.

Если activity запускается из-за NFC intent, то можно получить информацию с отсканированной NFC-метки из этого intent. Intent может содержать следующие дополнительные поля (зависит от типа отсканированной метки):

  • EXTRA_TAG (обязательное): объект Tag, описывающий отсканированную метку.
  • EXTRA_NDEF_MESSAGES (опциональное): Массив NDEF-сообщений, просчитанный с метки. Это дополнительное поле присуще только intent ACTION_NDEF_DISCOVERED.
  • EXTRA_ID (опциональное): Низкоуровневый идентификатор метки.

Ниже представлен пример, проверяющий intent ACTION_NDEF_DISCOVERED и получающий NDEF-сообщения из дополнительного поля.

Kotlin

override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
...
if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) {
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)?.also { rawMessages ->
val messages: List = rawMessages.map { it as NdefMessage }
// Обработка массива сообщений.
...
}
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
...
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMessages =
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMessages != null) {
NdefMessage[] messages = new NdefMessage[rawMessages.length];
for (int i = 0; i < rawMessages.length; i  ) {
messages[i] = (NdefMessage) rawMessages[i];
}
// Обработка массива сообщений.
...
}
}
}

Kotlin

val tag: Tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

Существует несколько методов для создания NDEF-записи: createUri(), createExternal() и createMime(). Лучше использовать один из них во избежание ошибок, которые могут возникнуть при создании записи вручную. Все примеры, представленные ниже, следует отправлять первым сообщением при записи метки, либо сопряжением с другим устройством.

Kotlin

Физический контроль доступа

Индустрия систем контроля и управления доступом (СКУД) разрабатывает решения для различных сегментов рынка, для которых в качестве идентификаторов исторически использовались низкочастотные RFID-метки, используемые с приложениями, которые позволяют подключенным в систему точкам доступа считывать метки и проверять сервер (или управляющий контроллер) в режиме реального времени для подтверждения доступа.

В течение последних нескольких лет индустрией были предприняты серьезные усилия по обновлению этой инфраструктуры и переходу от поддержки только RFID оборудования низкочастотного диапазона к более функциональным высокочастотным устройствам, совместимым с ISO / IEC 14443.

Это дает возможность выполнять дополнительные функции, кроме обычного контроля доступа, такие как оплата проживания, создание пропуска, проверка личности и предоставление других разрешений.Наиболее известной реализацией стандарта стало семейство смарт карт Mifare.

Если мы говорим про СКУД не нужно забывать что основным устройством, будет контроллер, который тоже должен поддерживать соответствующий функционал. Основной требуемый от контроллера функционал это — бесшовно работать с криптозащищенными секторами смарт-карт.

Современные облачные сервисы позволяют поставщикам продуктов и услуг доступа просто и безопасно портировать свои приложения для смарт-карт на смартфоны. Все права и функции, связанные с бесконтактной картой контроля доступа, могут обрабатываться смартфоном.Смартфоны, поддерживающие NFC, могут хранить и предоставлять учетные данные доступа считывателям, которые поддерживают карты бесконтактного доступа, соответствующие ISO / IEC 14443. Учетные данные могут быть сгенерированы в режиме реального времени  и храниться в SE или в приложении с поддержкой HCE.Смартфон, среди прочих функций, становится устройством открывания дверей, электронным билетом или системой отслеживания пользователей и посещаемости.Контроль доступа на основе NFC катастрофически удобен для управления физическим доступом для большого количества территориально распределенных объектов.

Например поставщики коммунальных услуг регулярно сталкиваются с проблемой одновременного управления многочисленными объектами и огромным количеством персонала. Это традиционно означает, что необходимо поддерживать огромное количество замков, а ключи от которых находятся в постоянном обращении.

В том числе огромным преимуществом использования смартфона с NFC в качестве ключа, является возможность использования замков, для которых источником питания будет выступать смартфон в момент идентификаций передающий на замок достаточно питания для его разблокировки.РеализацияЧастично реализация физического контроля доступа описана в пункте «Гостиничный бизнес».

Самым, наверное, распространенным примером использования технологии NFC в контроле физического доступа будут обычные домофоны, где в брелок зашивается метка с ключом, а в устройстве на двери стоит считыватель NFC меток.

ПроблемыКроме проблем, описанных в разделе «Гостиничный бизнес», есть еще несколько.Поддержка NFC производителями смартфонов до сих пор относится к аппаратам премиум-сегмента. Кроме того, некоторые телефоны имеют неоптимальное расположение и дизайн антенны, что дает в результате низкое качество считывания.

Поэтому технология NFC используется в связке с Bluetooth в качестве бесконтактного протокола. Bluetooth доступен практически на всех смартфонах, у этого протокола больший радиус действия. И производители оборудования систем контроля доступа включают поддержку Bluetooth в дополнение к стандарту ISO / IEC 14443 и NFC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector