What is an IoT module

An IoT module is an integrated assembly, oftentimes a system-on-chip (SoC) device, that basically consists of a microcontroller and a radio transceiver. It is not necessarily full-featured but a fully functional system created with an intention to simplify IoT device development and accelerate time to market. The barebone system is the backbone of an embedded system that resides in the heart of an IoT device. The Internet of Things is no longer just a novelty or an emerging trend but an essential part of the reality that plays out each day in business and life.

Common examples of IoT in action include smart cities, smart homes, smart buildings, smart factories, smart logistics, smart metering, smart wearables, digital twins, and smart farms. IoT applications that are being run on IoT devices are used for home automation, factory digitalization, inventory management, preventative maintenance, traffic control, fleet management, access control, fitness tracking, health monitoring, human centric lighting, automated driving, supply chain management, energy management, environmental monitoring, crops monitoring and automatic irrigation, etc.

What is Internet of Things (IoT)

The essence of the Internet of Things is about leveraging the power of the Internet to unify and transform physical objects, allowing them to collaborate with each other, collect data for the IoT platform from the environment, and act on valuable insights extracted from the massive amounts of data they generate. The IoT transformation enables the convergence of information technology (IT) and operational technology (OT) in the real world of physical objects. Each thing is not only uniquely identifiable and individually controllable through its embedded computing system, but also able to communicate and interoperate with other homogeneous and heterogeneous things within the IoT network. The previously isolated islands of automation are interconnected in the Internet world where cutting edge IT technologies such as cloud computing, big data processing, advanced analytics, databases, artificial intelligence and machine learning can be harvested to turn data into value and create innovative or value-added applications. The collective intelligence of the IoT network lends the individual Internet-connected IoT devices a high level of contextual awareness and thus amplifies their capabilities to implement IoT applications.

What are IoT devices

IoT devices are connected, intelligent endpoints that work at the physical layer of the IoT architecture to interact with the physical environment through sensing and actuation. Integrated sensors or independent sensor nodes convert the changes in physical parameters into electrical signals which are then captured, processed and communicated to the Internet-based backend by embedded systems. Actuators integral to embedded systems or independent actuator nodes operate in the reverse direction of a sensor. They convert an electrical signal originated by embedded systems into physical action. The network layer in an IoT stack addresses connectivity, interoperability and secure data exchange between and among IoT deployments (devices, gateways and cloud servers).

At a higher level, an IoT platform performs the role of the middleware layer to provide information processing, administrate the connected devices, manage IoT transformation and connectivity, and facilitate the provision of different types of applications and services. It is a mediator between the physical layer and application layer. The application layer provides the interface to enable implementation of IoT features and functions into IoT devices.

Microcontroller

An IoT module contains key functional blocks needed for a smart device to participate in the Internet of Things. The SoC or circuit assembly delivers computational power, provides data storage and enables network communication for an IoT device at the physical layer. At the heart of an IoT device is an embedded system based on a microcontroller which is also referred to as an MCU (microcontroller unit). Although there are IoT devices built on microprocessors, microcontrollers are practically synonymous with IoT processors.

A microcontroller is a self-contained microcomputer that has all functional components of a computer integrated onto a single integrated circuit (IC). A microprocessor is essentially a central processing unit (CPU). It is not able to function as a stand-alone system without interfacing with external memory and other peripheral devices. Microprocessors are used in general purpose computers and may be required to perform a variety of tasks. As a single-chip microcomputer, a microcontroller resembles a general-purpose computer in functionality but is dedicated to specific tasks. Since a general-purpose computer is often used to perform complex tasks, the microprocessor should provide high computational performance. It typically operates with a clock frequency in the order of gigahertz. On the other hand, embedded systems have much less demand on the processing power because they usually run a single program and the typical application does not need an operating system.

Embedded systems designed for IoT applications have been intentionally suppressed in their computational performance in order to minimize power consumption and maintain a long battery autonomy. The typical clock frequency of IoT microcontrollers is in the low to high tens of MHz.

MCU design

A microcontroller is comprised of a processor core (CPU), memory, interrupts, one or more one timers and counters, and programmable input/output (I/O) ports. The CPU contains an arithmetic logic unit (ALU) that performs arithmetic and logic operations, registers that provide operands or instructions to the ALU and store the results of ALU operations, and a control unit that directs the entire processing unit to carry out stored program instructions and communicates with both ALU and registers. The ALU of a microcontroller CPU can handle 8, 16, or 32 binary digits or bits at a time. 32-bit microcontrollers have a growing adoption in the IoT industry as a result of the trend to move data crunching and analytics closer to the edge. The instruction set architecture (ISA) of a microcontroller can be based on RISC (Reduced Instruction Set Computer) or CISC (Complex Instruction Set Computer).

A microcontroller uses random-access memory (RAM) as data memory to hold the cached data and system stack during program run time. Flash memory is used in embedded systems as program memory to store software programs (firmware) that the CPU carries out. The accessibility of program memory and data memory of microcontrollers is commonly based on known as Harvard architecture. Harvard architecture separates program and data memory. The CPU directly fetches the instructions from the flash memory or other non-volatile memory and executes them. On the other-hand, the Princeton or Von-Neumann architecture has one unified memory shared between both program and data. Many microcontrollers provide a multi-channel PWM (pulse width modulation) interface which can be configured to drive an H-bridge or to perform as standard PWM outputs.

The CPU communicates with its memory and I/O ports through system bus. A system bus is an electrical scheme that consists of three different interfacing systems: data bus, address bus, and control bus. A data bus allows for the transferring of data to and from the data registers of various system components. An address bus is used to specify a physical address where the information should be sent. A control bus carries commands from the CPU and returns status signals from system components. The data bus and control bus are designed for bidirectional data flows whereas the address bus is unidirectional from the CPU to system components. The I/O handling capability of a microcontroller is a key component that goes into the selection of an IoT microcontroller.

The I/O ports on the microcontroller connect the CPU to the physical world. The input port is used to collect data from sensors and receive user commands from input devices. The output port is used to drive/interface various external devices. The I/O ports themselves can be digital or analog. Digital I/O ports are designed to communicate simple logic states between the microcontroller with peripheral devices using binary data only. Analog ports are used to communicate continuous, or variable signals. Inputs from analog sensors need to be converted using an analog-to-digital converter (ADC) into digital signals that can be processed by a microcontroller. A digital-to-analog converter (DAC) converts digital control signals originated by a microcontroller into analog signals that can be used for controlling analog devices such as audio speakers, DC motors, pneumatic actuators, and various drive mechanisms.

I/O devices can be interfaced to microcontrollers through parallel or serial ports. A serial interface allows for more efficient use of pins and wires as the sequence of bits are sent or received over a single line, rather than using multiple lines to simultaneously send bits. A number of serial interfaces are in use today, including for example UART (universal asynchronous receiver-transmitter), and I2C (inter-integrated circuit), SPI (serial peripheral interface), MIDI (musical instrument digital interface), PCI Express (peripheral component interconnect express), USB (universal serial bus), FireWire, and serial versions of SCSI. Widely used parallel bus architectures include SCSI (Small Computer System Interface), ISA (industry standard architecture), PCI (peripheral component interface), and Parallel ATA (Advanced Technology Attachment). Many embedded controllers have a number of digital or analog General Purpose Input/Output (GPIO) pins. A parallel interface can be realized using a group of GPIO pins.

Network connectivity

An IoT module provides network connectivity, a defining characteristic that distinguishes the interoperability, communication range, data rate and autonomy of an IoT device. IoT networks are deployed using four basic communication models: Device-to-Device (D2D), Device-to-Gateway (D2G), Device-to-Cloud (D2C), and Cloud-to-Cloud (C2C). The radio transceiver connects an IoT microcontroller to a cellular network, low power wide area network (LPWAN), wireless local area network (WLAN), or low-power, short-range network. Various open or proprietary protocols run over radio transceivers to support network communication on the physical layer. They include 5G IoT, LTE-M, NB-IoT, LoRaWAN, Sigfox, ZigBee, Bluetooth, Thread, Wi-Fi/802.11, and Z-Wave.