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.
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.
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
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.