Abstract [en]

This report describes the design and implementation of a multi-master, packet based protocol for small and tiny microcontrollers where resources are limited. The protocol was named "Tiny Controller Network" or TCN for short. The protocol is meant mainly as a control bus for automation and sensor acquisition applications but due to its flexibility can also be used for other purposes as well. It borrows some of its functionality and design ideas from the well known CAN bus and Modbus but also has a number of major differences like the use of standard hardware and time synchronisation. One of the key aspects during the design was the use of very little system resources and common on-chip hardware peripherals like a UART. No special hardware resources are needed, except for the support for 9 bit bytes in the UART, also known as "Multi Processor Communication Mode". The report also describes the serial communication standards RS-232, RS-422 and RS-485 in order for the reader to gain better understanding of the different properties they have and why RS-485 was chosen as the physical layer for the protocol. Another topic that also is described is the different bus topologies and ways of termination and how they affect the performance of the bus. It also describes the simplified time synchronisation support that was included in the protocol. During the development, microcontrollers from Atmel's AVR family of 8 bit microcontrollers was used, more specifically the ATmega16. The implementation of the protocol was made for these microcontrollers in the C programming language. Also two hardware interfaces was developed for connecting a microcontroller to the TCN bus, one minimalistic and one with galvanic isolation between the bus and microcontroller.