Een belangrijk en in bijna elk project terugkerend fenomeen is de benodigde communicatie. Deze communicatie vindt altijd plaats over een of andere communicatiebus en met behulp van een protocol. Deze bussen en protocollen bestaan er in velerlei uitvoeringen voor de meest uiteenlopende toepassingen, variërend van zeer eenvoudig tot buitengewoon complex.

De volgende tabel geeft een opsomming van het werkgebied van White Bream op dit gebied.
Natuurlijk gaat White Bream de uitdaging van nieuwe protocollen of communicatiebussen zeker niet uit de weg.


RS232
Tot 10 à 20 jaar geleden nog standaard op elke PC. Maar nu nog steeds veelgebruikt in embedded systemen of voor interfacing met 'legacy' apparatuur.
RS485
Tweedraads differentiele serieële 'multidrop' communicatie; het industriële broertje van RS232.
I²C
I²C is bedoeld voor communicatie tussen (complexe) IC's binnen een apparaat. Bijvoorbeeld diverse sensors, backlightdrivers, I/O expanders, etc.
SPI
Evenals I²C alleen voor communicatie op een print of binnen een apparaat. SPI vergt meer bedrading, maar biedt daardoor ook veel meer bandbreedte. Veelvuldig ingezet om flash geheugens op een microcontroller aan te sluiten.
1-Wire
De onewire bus is met name bekend van de Dallas/Maxim semiconductor iButton rom/eeprom tokens. Deze waren een tijdje populair voor toepassingen zoals toegangscontrole.
IrDA
Een protocol voor korte afstands communicatie op basis van infrarood licht. Tegenwoordig nagenoeg uitgestorven, en de beheerdende association lijkt zelfs opgeheven. Dit was de voorloper van bluetooth en rond de eeuwwisseling standaard op bijna elke laptop, telefoon en PDA.
USB-HID
Wij zien USB-HID als het moderne alternatief voor RS232. Apparaten met dit protocol hebben geen drivers nodig aan de PC-kant, hetgeen ideaal is voor relatief kleine projecten waarbij een (dure) driver ontwikkeling niet in het budget past.
USB-MSC
De USB mass storage class is bekend van de USB-sticks. Hiermee wordt een directe toegang geboden naar het flash geheugen. Nadeel is dat de microcontroller daarbij zelf geen gelijktijdige toegang heeft tot dat geheugen, en evenmin controle over wat er met dat geheugen gebeurt.
USB-PTP/MTP
De tegenhanger van USB-MSC, hierbij behoud het apparaat de volledige controle over het bestandssysteem en biedt een objectgeorienteerde interface richting de PC.
USB Host
Soms is het nodig om dat apparaat zelf contact kan maken met USB devices, bijvoorbeeld een USB stick. Diverse microtrollers bieden de hardware om dit mogelijk te maken. Meestal wel tamelijk complex om dat handen en voeten te geven in de software.
Ethernet
Dé standaard voor bedrade netwerk aansluitingen.
Single Pair Ethernet (SPE)
Emerging standaard voor bedrade netwerk aansluitingen van sensors en dergelijke. Er zijn verschillende standaarden, maar de meest interesante voor IoT is de 10base-T1L met mogelijkheden voor power en afstanden tot 2km.
TCP/IP
TCP/IP is de basis van alle moderne netwerk protocollen. In onze projecten voornamelijk in de vorm van webservers voor management doeleinden en diverse support functies zoals DNS, DHCP, SNTP, etc. En incidenteel ruwe TCP poort verbindingen.
SSL/TLS
Tegenwoordig volstaat een simpele webserver niet meer vanwege gebrek aan beveiliging. Daarom worden nieuwe projecten veelal opgetuigd met een TLS service om HTTPS (het bekende slotje) mogelijk te maken.
CAN
Controller Area Network is een robuuste netwerk technologie voor industriele automatisering en ook zeer popolair in de automotive hoek. De maximale snelheid is 1Mbit bij maximaal 40meter, dit neemt ongeveer evenredig af tot 10kbit bij 5km.
CAN-FD
Een nadeel van gewoon CAN is dat de bitrate beperkt wordt door de lengte van de bus. CAN-FD biedt soelaas door de bitrate te verhogen voor de daadwerkelijke data overdracht. Helaas niet compatibel met gewoon CAN en daardoor in de praktijk eigenlijk weinig gebruikt.
CANopen®
CAN bus an-sich is slechts een betrouwbare dataverbinding. CANopen is een laag daarbovenop en beschrijft in detail wat er moet gebeuren om configuratie en concrete data-uitwisseling te bedrijven.
LIN
Local Interconnect Network is een enkeldraads verbinding voor niet-critische communicatie in automotive omgevingen. Typisch gebruikt voor bediening van spiegels, ramen en dergelijke.
GSM, GPRS, UMTS
GSM en verwanten kunnen we op drie manieren inzetten: 1) standalone met scripts in een GSM module, 2) met microcontroller maar TCP/IP stack in de GSM of 3) als kaal GSM modem voor microcontroller met eigen TCP/IP stack - bijvoorbeeld LwIP.
GPS
.
WiFi
Alom tegenwoordig voor netwerk- en internettoegang. Tegenwoordig ook steeds meer haalbaar binnen apparaten en machines.
Bluetooth
Communicatie over korte afstand met laptop of smartphone. Hiermee is vrij eenvoudig een transparant kanaal te realiseren à la RS232. Zonder licenties echter niet bruikbaar icm Apple devices.
Bluetooth LE
.
RFID, NFC
.
RC5
Een codering voor infrarood transmissie van commando's, onder andere bekend van Philips afstandsbedieningen.
Pelco-D
Pelco-D is een protocol gebaseerd op RS422 voor de bediening van bewakingscamera's en bijbehorende pan & tilt units.

Ontwikkelde functionaliteiten:


Encryptie

Encryption

Steeds vaker wordt er een zekere mate van beveiliging gevraagd in embedded systemen. Bijvoorbeeld om de code (intellectueel eigendom) te beschermen tegen klonen van het product. Of om te voorkomen dat bepaalde data ingezien of gemodificeerd kan worden.

Op het gebied van code bescherming hebben we veel ontwikkelingen geïnvesteerd in een beveiligde bootloader en bijbehorende tools voor de STM32 microcontroller. Deze bootloader kan de nieuwe encrypted applicatie bijvoorbeeld ontvangen via USB, of via een voorgeinstalleerde binary image, of vanaf een filesystem - bijvoorbeeld ezFat of fsfat - op micro-SD kaart of embedded SPI flash geheugen.

Qua data beveiliging hebben we de nodige ervaring opgedaan met het tweaklite project. Daarbij wordt er in een PHP+ JavaScript omgeving een tweetraps encryptie gedaan van zogenaamde behandelprotocollen. Deze protocollen zijn gelocked aan een bepaald serienummer en een gelimiteerd aantal activaties. De firmware in het apparaat voert de omgekeerde encryptie uit van die AES 256-bits coderingen. Uiteraard is die firmware ook voorzien van de eerder genoemde bootloader encryptie, om reverse engineering van de precieze encryptie algoritme en achterhalen van de sleutels te voorkomen.