This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:iot-open:embeddedcommunicationprotocols2 [2023/08/25 11:34] – ekontoturbo | en:iot-open:embeddedcommunicationprotocols2 [2024/03/05 15:43] (current) – pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Embedded Communication ====== | ||
| + | {{: | ||
| + | IoT systems and related data flows are typically structured into three primary layers {{ref> | ||
| + | ((Internet of Things: Architectures, | ||
| + | ((Internet of Things: Security Vulnerabilities and Challenges; I. Andrea, C. Chrysostomou, | ||
| + | The lowest layer is the Perception (physical, acquisition) Layer, the intermediate is the Network Layer, and the higher is the Application Layer. The function of the Perception layer is to keep in contact with the physical environment. Devices working in this layer are designed as embedded systems with a network module. The modern embedded device includes a microcontroller, | ||
| + | |||
| + | <figure iotstack3> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <figure iotstack5> | ||
| + | {{ : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | This chapter describes some popular internal protocols used to communicate between microcontrollers and other electronic elements called “embedded protocols”. | ||
| + | |||
| + | The embedded protocol that can be used in specific implementation depends mainly on the type of peripheral element. The method of connection and data exchange strictly depends on the kind of element. Some parts are analogue sensors that should be connected to an analogue-digital converter; some can be connected to digital pins working as inputs (for sensors) or outputs (for actuators). | ||
| + | |||
| + | === Analog === | ||
| + | Simple sensors do not implement the conversion and communication logic, and the output is just the analogue signal – voltage level, depending on the value of the measured parameter. It needs to be further converted into a digital representation; | ||
| + | Examples of sensors with analogue output are a photoresistor, | ||
| + | ADC conversion is a process of conversion of the continuous-time signal into a discrete one. It has 2 crucial parameters to consider: | ||
| + | * Sampling rate: usually measured in Hz (kHz, MHz) is a sampling frequency, or in other words, defines a time period between two consecutive reads. A Nyquist-Shannon theorem defines minimum sampling frequency. Oversampling (using higher than Nyquist-Shannon) is common because many ADC converters built into the MCUs tend to be noisy due to the electromagnetic inference of other components, such as e.g. built-in radio. Oversampling brings the capability to average consecutive reads and obtain more reliable and less noisy ADC conversion. | ||
| + | * Sampling resolution: measured in bits, defines the minimum change in the input voltage the device can measure, e.g. 12-bit resolution brings 4096 values mapped to the input range. The ideal ADC converter linearly maps the discrete values to the voltage input range. Still, in real-life applications, | ||
| + | It is worth noting that each ADC has its useable input range (voltage), and the input and analogue signal should be altered accordingly. In real applications, | ||
| + | |||
| + | === Digital === | ||
| + | Simple, true/false information can be processed via digital I/O. Most devices use positive logic, where, e.g. +5 V (TTL) or +3.3 V (the most popular, yet other voltage standards exist) presents a logical one, also referenced as //HIGH//. In contrast, 0V gives a logical zero, referenced as //LOW//. In real systems, this bounding is fuzzy. It brings some tolerance, simplifying, | ||
| + | Alternating //HIGH// and //LOW// constitutes a square wave signal, usually used as a clock signal (when symmetrical) or used to control the power delivered to the external devices with means of so-called PWM. | ||
| + | |||
| + | === Communication Protocols === | ||
| + | Elements that need more data to be transferred (e.g. displays) usually use some digital data transmission protocol. It is often a serial protocol, meaning that data is transmitted bit by bit. Serial communication can be done in three modes. | ||
| + | * In simplex mode, only one of the two devices on a link can transmit; the other can only receive. The simplex mode can use the entire capacity of the channel to send data. | ||
| + | * In half-duplex mode, each station can transmit and receive, but not simultaneously. When one device sends, the other can only receive, and vice versa. | ||
| + | * In full-duplex mode, both stations can transmit and receive simultaneously. The link must contain two physically separate transmission paths, one for sending and the other for receiving. | ||
| + | |||
| + | Serial data transmission can be done synchronously or asynchronously. In synchronous data transmission, | ||
| + | Asynchronous data transmission does not need any separate synchronization signal, but the transmitter and receiver must use the exact timings, and synchronization information must be included in the information transmitted. Examples of asynchronous interfaces implemented in microcontrollers are 1-Wire and UART (Universal Asynchronous Receiver Transmitter). | ||
| + | |||
| + | <WRAP excludefrompdf> | ||
| + | Details for selected protocols are presented in the following chapters: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | </ | ||