ATmega series AVR microcontrollers (e.g., ATmega8A or ATmega16A) and ARM microcontrollers with a Cortex M3 core (e.g., STM32F103С8T6) are among the most popular controllers used in solving engineering problems related to servicing various fire and security alarm sensors and devices for metering household and industrial power consumption. At the same time, to transfer the data via a twisted pair or AC voltage network, it needs to be encoded using Manchester 1 or Manchester 2 code, and said AVR and ARM microcontroller units (MCU) contain no hardware encoder and decoder for the Manchester code. The study aimed at solving the engineering problem of implementing the codec (encoder-decoder) of the Manchester code based on the hardware interfaces of low-performance microcontrollers. The direct implementation of the encoding algorithm with the Manchester code using a purely software-driven approach significantly decreases the information transfer rate. At the same time, among the hardware interfaces of the MCU, there is always a serial universal asynchronous data transceiver (UART). However, the UART data transfer protocol is not generally suitable for Manchester encoding and, therefore, needs to be software adapted. In order to adapt the UART protocol to the conditions of Manchester encoding, the 8N1 mode is selected at the hardware level, which means 8 data bits, 1 stop and 1 start bit. The software implementation of the encoder consists in the fact that out of the total possible volume of 256 code combinations, 16 are selected that satisfy the Manchester 2 code, while the start and stop conditions for data bytes transmitted in a row also satisfy the structure of the Manchester code. To maximize the efficiency of the program code, all code words are stored in the memory of the MCU in such a way that their serial number corresponds to the decimal interpretation of 4 bits of the input data. The decoding of the received data is also performed as efficiently as possible using the decoding table. The implementation of the software and hardware codec of the Manchester code significantly expands the scope of popular AVR and ARM microcontrollers and reduces the cost of the finished product by excluding any additional units that perform the function of encoding and decoding the Manchester code.
Read full abstract