Plug n Play: Plug the device and play around
IoT — “Internet of Things” over the last few years has been one of the most discussed technologies wherein most of the big and small technology companies have put their stocks on it. IoT solution for any digital transformation is typically about two big components — device and computing platform (mostly cloud). As IoT proved to be very beneficial in multiple aspects like device management, fault tolerance, productivity growth, easy assembly up-gradation, and many more, there’s a rush to make legacy system IoT enabled. The industry is very focused on integrating devices and the cloud which at this moment is very pinpointed i.e. solutions are developed to focus on integrating one kind of a device family or identical system to the cloud. When this kind of solution is scaled up to support different variants of devices or systems, it results in a lot of engineering effort and re-architecting at both devices as well as the platform end. To address this issue, Azure came up with a unique service — IoT Plug and Play, which enables faster scaling of solutions through a seamless device-to-cloud integration experience. It has a design that goes without tight coupling and one-to-one integration of device software and platform software.
IoT Plug and Play (PnP)
“IoT Plug and Play enables solution builders to integrate smart devices with their solutions without any manual configuration. At the core of IoT Plug and Play, is a device model that a device uses to advertise its capabilities to an IoT Plug and Play-enabled application”
So, if we simplify this, IoT Plug and Play is based on an open modeling language DTDL (Digital Twin Definition Language) that allows device builders to declare their IoT device capabilities as a device model. The DTDL based model is then used by solution builders to develop a solution that understands that device using the device model, all without writing any embedded code. The goal is to fasten the integration of devices belonging to different device families, each of which has a unique model Id, and platform solution on Azure without the need for manual configuration.
Device models are structured as a set of interfaces comprising of properties, commands, and telemetry. Properties are either read-only or modifiable to include details like the state of a device like a fan speed or the target temperature. Telemetry is the data emitted by the device like sensor readings. Commands are the functions or operations which can be performed on a device like a reboot operation. Every model and interface consist of a unique Id and can be reused across devices to facilitate collaboration and speed development. A basic workflow of IoT PnP is depicted in Fig I.
Microsoft welcomes collaboration with customers and industry partners keeping both IoT PnP and DTDL open to the community. Additionally, IoT PnP and DTDL come free of cost. Standard rates for IoT Hub, Azure IoT Central, and other Azure services which will be peripherals for IoT PnP will remain as per the Azure costing. DTDL is based on open W3C standards such as JSON-LD (JavaScript Object Notation for Linked Data) and RDF (Resource Description Framework) which allows easier adoption across services and tools.
As of now, IoT PnP is in Public Preview and is supported by IoT Hub in all regions with standard or free tiers. Azure IoT Hub and Azure IoT central support for IoT PnP is using DTDL preview V1 and Azure Digital Twins is using DTDL V2. Microsoft provides a public Device Model Repository (DMR) where the device model can be published and consumed with characteristics like curated model (Validated by Microsoft using GitHub PR), Immutability, and Hyper-scale. One can also use the same DMR pattern to create a custom DMR in any storage medium. Currently, Microsoft provides production-ready SDKs for both devices and services in C,.NET, Java, Python, and Node with communication over MQTT protocol.
IoT Plug and Play bridge
IoT PnP bridge is an open-source application code written in C language and includes Azure IoT device SDK for C and supports of some peripherals by default like Bluetooth, Camera, Modbus, MQTT, Serial, Window USB. One can create a custom adapter also with the help of primitive adapters. The adapters to the bridge are defined in the adapter manifest. The configuration enables the bridge adapter to enable full device to digital twin communication.
i. Assists in establishing a communication channel directly.
ii. Monitors availability of communication channels through device watcher.
The Bridge can run as a standalone executable on any IoT device, industrial PC or gateway running Windows 10, or Linux. It can also be deployed as an IoT edge module on Linux based platform.
Device Certification
Azure PnP currently provides device certification for Microsoft Partner Network members through Azure Certified Device Portal. Plug and Play device certification needs to meet the following requirements:
1. Device Model should compliance with the Digital Twin Definition Language (DTDL) version 2.
2. Should support Device Provisioning Service (DPS).
- Validated product truth on certified devices
In the development phase, one can use Azure CLI to test the compatibility of the/a device using extension az IoT product. Once device is certified using portal, the device then will be published in Azure Certified Device catalog.
PnP Device Builder
1. Creating device models using DTDL via any IDE like Visual Studio or Code with extensions and publishing model to model repository.
2. Implementing code using one of the Azure IoT device SDKs on an IoT device. It lets devices to connect securely to an IoT Hub via DPS (Device Provisioning Service) or connection strings.
3. To enable Model ID registration, IoT Hub accepts a new parameter in the MQTT Connection packet with the Model ID sent by the device and makes this Model ID available to cloud applications.
4. Device builders can certify their devices using Azure Certification Portal (defined in the end) for solution builders to get the guarantee that devices are indeed supporting Plug and Play.
Plug and Play и не каких сложностей
Когда вы подключаете к порту USB, например, флешку, то вряд ли вы задумываетесь о том, как так получается, что это, на самом деле, довольно сложное, устройство, почти мгновенно опознается компьютером и становится готовым к работе. А ведь подобная ситуация существовала далеко не всегда. Быстрое подключение устройств стало возможным благодаря появлению в начале 1990-х гг технологии Plug and Play (или, сокращенно, PnP). Еще, казалось бы, совсем недавно компьютерный мир обходился без этой технологии, а теперь она стала для всех нас настолько обыденной, что мы практически ее не замечаем.
Суть технологии PnP
Раньше, до появления технологии Plug and Play, для подключения к системному блоку какого-либо периферийного устройства, неважно, будь то мышь, принтер или внутренняя плата расширения типа звуковой карты, необходимо было вручную осуществлять конфигурирование оборудования. Это означало самостоятельное определение таких параметров, как номера прерывания и прямого доступа к памяти. Также очень часто пользователю требовалось устанавливать джамперы и перемычки на устройстве. Разумеется, подобная ситуация порождала многочисленные проблемы и даже могла привести к выходу устройств из строя.
Технология Plug and Play позволила делать всю рутинную работу по настройке устройств автоматически, за пользователя, попутно экономя ему много времени и сил. Кроме того, технология Plug and Play позволяет подключать устройства «на ходу», без перезагрузки компьютера, а сам процесс распознавания новых устройств занимает всего несколько секунд. Стандарт PnP теперь поддерживают практически все внешние порты и шины компьютера, такие, как USB, PCI, COM, и.т.д.
Немного истории
Словосочетание Plug and Play в переводе дословно означает «Включи и играй» (или «работай» – в зависимости от того, насколько серьезным является предназначение подключаемого устройства). Первой из операционных систем семейства Windows, в которой появилась поддержка этой технологии, была ОС Windows 95. Впрочем, на других компьютерных платформах подобные технологии появились еще раньше. Например, на платформе Mac подобная технология называлась NuBus, а на платформе Amiga – Autoconfig.
Для того, чтобы пользователи любой ОС смогли бы использовать возможности технологии в полной мере, она должна поддерживаться материнской платой компьютера, то есть, ее поддержка должна быть зашитой в системной BIOS. Первая спецификация Plug and Play была разработана в 1993 совместными усилиями таких известных компаний, как Intel, Compaq, Microsoft и Phоenix. Очень быстро технология была принята большинством производителей оборудования. Простые пользователи также очень скоро оценили ее преимущества по достоинству. Позднейшие усовершенствования технологии стали включать поддержку интерфейса ACPI, а вместе с ним и автоматическое управление питанием компьютера.
Принцип работы технологии PnP
Хотя Plug and Play значительно упрощает пользователю работу с компьютером и установку нового оборудования, тем не менее, в своей основе она довольно сложна. Для того, чтобы в полной мере использовать ее преимущества, необходимо, чтобы технология PnP поддерживалась бы следующими компонентами программного и аппаратного обеспечения:
BIOS материнской платы компьютера
- Самим устройством, которое подключается к нему
- Операционной системой
Принцип работы технологии в упрощенном виде выглядит так – после включения компьютера и проверки оборудования, до загрузки операционной системы специальная программа, хранящаяся в BIOS, получает от каждого устройства уникальный идентификатор, содержащийся в специальной ячейке памяти устройства, и конфигурирует устройства, необходимые для загрузки системы.
Впоследствии, после загрузки операционной системы, эти идентификаторы также используются для конфигурирования устройств. В ОС Windows конфигурированием занимается специальная служба «Диспетчер устройств». В задачи этой службы входит распределение системных ресурсов и разрешение конфликтов между устройствами. Наибольшим приоритетом пользуются устройства, имеющие более жесткие требования к ресурсам. Также операционная система отслеживает и контролирует процесс «горячего» подключения и отключения новых устройств.
Заключение
Технология Plug and Play призвана облегчить жизнь пользователю, исключить проблемы при подключении внешних устройств к шинам расширения и разъемам компьютера при помощи автоматического конфигурирования нового оборудования и распределения системных ресурсов. При этом ключевым условием полноценного функционирования технологии на компьютере является ее поддержка на уровне BIOS.
Plug and Play — что это такое? Краткий обзор
Наверное, каждый юзер компьютера слышал о таком понятии, как Plug and Play. Оно уже достаточно давно вошло в обиход повседневного языка компьютерщиков. Несмотря на простоту перевода, далеко не все разбираются в теме «Plug and Play — что это такое?». Попробуем рассмотреть этот вопрос несколько подробнее.
Plug and Play — что это такое?
Начнем, пожалуй, с самого перевода термина Plug and Play, иногда обозначаемого как Plug & Play или PnP. Если придерживаться дословного перевода с английского, то plug означает «включить», «подключить», «присоединить», а play – «играть». Итак, что же получается? Plug and Play — что это такое? Можно дать ответ в виде трактовки типа «подключил и играй (работай)».
Иным словами, при подключении к компьютеру какого-либо нового (еще не присутствовавшего в системе) устройства оно определяется автоматически. При этом после установки компонента его можно использовать в работе сразу же, минуя какие-либо ручные манипуляции по установке для него программного обеспечения в виде тех же драйверов.
Как появилась технология Plug and Play?
Период появления теперь уже ставшей повсеместно распространенной технологии Plug and Play датируется 1995 годом. Она была создана благодаря усилиям разработчиков корпорации Western Digital, которая и сыграла ключевую роль в ее развитии.
В то время она чем-то особо новым не явилась, поскольку ранее в несколько другом виде использовалась на шинах MCA и EISA. С появлением шины PCI, ставшей настоящим промышленным стандартом, нововведение в области компьютерных технологий взяла на вооружение корпорация Microsoft, которая впервые попыталась внедрить его в ОС Windows 98.
Естественно, та система по сравнению с более поздними продуктами была еще очень «сырой», и список поддерживаемых устройств был достаточно ограниченным. Тем не менее, начало было положено. Теперь в любой системе есть поддержка Plug and Play. Что это такое с современной точки зрения, можно объяснить на простейших примерах.
Основные принципы работы
Грубо говоря, пример работы технологии Plug and Play можно увидеть, когда к компьютеру через порт USB подключается обычная флэшка. Система в трее выдает сообщение о том, что найдено новое устройство, и по прошествии некоторого времени сообщает, что оно готово к работе. Кстати, это касается любого «железного» компонента.
Не будем вдаваться в технические аспекты. Рядовому юзеру хватит того, что при подключении любого устройства, поддерживающего этот стандарт, «операционка» автоматически определяет его тип и производителя, после чего в том же режиме, без участия пользователя, устанавливает наиболее подходящий драйвер из своей базы данных для корректного функционирования (за исключением редких случаев). Заметьте, по окончании процесса даже перезагрузка не требуется.
Технология Plug and Play
Plug—and—play (сокр. PnP — «включай и играй (работай)») — означает, что не нужно ничего настраивать, достаточно подключить устройство к компьютеру и можно начинать работу. Хорошим примером такого рода устройств являются концентраторы (хабы). Достаточно подключить кабели к сетевым адаптерам и портам концентратора для того, чтобы можно было работать в сети.
Разработана фирмой Microsoft при содействии других компаний.
Основные знания о PnP:
PNP BIOS — расширения BIOS для работы с PnP устройствами.
Plug and Play Device ID — индификатор PnP устройства имеет вид PNPXXXX, где XXXX — специальный код.
Технология Plug-and-Play — способ создания либо реконструкции абонентской системы быстрой установкой либо заменой ее компонентов.
Технология PnP основана на использовании объектно-ориентированной архитектуры, ее объектами являются внешние устройства и программы. Операционная система автоматически распознает объекты и вносит изменения в конфигурацию абонентской системы.
Во второй половине 1995 года компания Microsoft выпустила в пользование законченную версию новой операционной системы Windows95 (рабочее название — Chicago). Новая технология Chicago — Plug and Play — позволяет программному обеспечению автоматически устанавливать конфигурацию аппаратных средств, когда вы ставите (или снимаете) адаптер в стационарный или портативный компьютер.
Plug and Play — это стандарт компьютерной индустрии для автоматизации процесса добавления новых возможностей к вашему компьютеру или изменения адаптеров.
При запуске операционная система проверяет, какие адаптеры и периферийное оборудование, такое как принтеры, видеоадаптеры, инсталлированы на вашем компьютере. Далее она присваивает каждой карте свои собственные параметры: прерывания (IRQ), канал прямого доступа к памяти (DMA) и адреса портов. Наконец, стартовый процесс загружает только те драйверы, которые поддерживают установленные аппаратные средства.
Наиболее важным элементом системы Plug and Play компьютера является системный Plug and Play BIOS.
Когда вы включаете компьютер, соответствующий стандарту Plug and Play, то выполняются следующие 5 шагов:
Системный BIOS идентифицирует устройство на материнской плате (включая тип шины), а также внешние устройства, такие как диски, клавиатуру, видеодисплей и другие адаптеры.
Системный BIOS определяет требования ресурсов каждого устройства (IRQ, DMA, I/O и адреса памяти). Некоторые устройства не требуют всех этих четырех ресурсов. На этом шаге системный BIOS определяет, какие из устройств имеют фиксированные значения ресурсов, а какие являются устройствами Plug and Play, чьи значения ресурсов могут быть реконфигурированы.
Операционная система предоставляет ресурсы, остающиеся после размещения фиксированных ресурсов, каждому устройству Plug and Play. Если имеется несколько различных устройств, то может потребоваться много итераций процесса размещения ресурсов для исключения всех ресурсных конфликтов путем изменения ресурсных присваиваний устройства Plug and Play и т.д.