Seriële communicatie wordt nog volop gebruikt, bijvoorbeeld tussen verschillende componenten in een apparaat of tussen verschillende apparaten onderling.
We bespreken hier specifiek protocollen die gebruikt kunnen worden met een arduino board. |
-
RS-232Data kan over tientallen meters verstuurd worden, dit protocol is ideaal als er bijvoorbeeld een sensor op afstand uitgelezen moet worden. Een klassiek voorbeeld is de arduino die data naar een lcd panel of een seriële printer stuurt. Er bestaan twee versies van het protocol, die enkel verschillen in de spanningen die gebruikt worden. De klassieke RS-232 werkt met positieve en negatieve spanningen en de TTL versie die met spanningen van 0 en 5V werkt en een omgekeerde logica gebruikt. Matrixprinters met een seriële interface gebruiken RS-232 terwijl lcd panelen de TTL versie gebruiken. Links naar pagina's:
I2CHet I2C protocol (I2C of IIC: Inter Integrated Circuit) is een minder bekend protocol, maar die veel gebruikt wordt in apparaten zelf. Het werd door Philips ontworpen in de jaren 1980 om de verschillende delen van een complex electronisch apparaat met elkaar te verbinden (televisietoestel, videorecorder,...).Het protocol gebruikt twee lijnen (plus een gemeenschappelijke massa) en kan verschillende masters (processoren) verbinden met verschillende slaves (sensoren, geheugenmodules, GPS ontvangers,...). Andere protocollen zoals SPI hebben meer lijnen nodig en zijn niet zo flexibel.
Het protocol wordt nog volop gebruikt door bijvoorbeeld beeldschermen, real time clocks, geheugenchips (EEPROM), intelligente sensoren en dergelijke meer. SPIDit is een recenter en sneller protocol die met unidirectionele lijnen werkt om één van de beperkingen van I2C te omzeilen. Het is mogelijk data over langere afstanden te versturen door middel van lijnversterkers, maar in de praktijk worden de gegevens slechts over een paar meters verstuurd. Er zijn 4 communicatielijnen nodig.De norm wordt gebruikt door bepaalde apparaten zoals SD geheugenkaarten. Een SD interfacekaart bevat niet veel meer dan een kaarthouder en een connector. Om het protocol te kunnen gebruiken moet de library SPI gebruikt worden. De digitale lijnen 11, 12 en 13 worden hiervoor gebruikt, samen met lijn 4 voor de chipselectie. Om een geheugenkaart te lezen moet men ook de library SD gebruiken. Deze bevat de nodige routines om met de datakaart te werken (FAT-16 of FAT-32 geformateerd). Een voorbeeld waar gegevens op de geheugenkaart geschreven worden staat uitgelegd op de pagina opslaan van gegevens op een datakaart (opmaken van logs). Een voorbeeld van een SD kaarthouder staat rechts, je ziet de 4 communicatielijnen: Chip Select, Master Out Slave In, Serial Clock en Master In Slave Out en de voedingslijnen. De kaarthouder bevat enkel een 3.3V voeding voor kaarten die enkel op 3.3V werken. CANDe CAN bus is een seriële databus. Bij een bussysteem worden er meer apparaten op eenzelfde lijn aangesloten. Een van de kenmerken van de CAN bus is dat deze met prioriteiten werkt: een apparaat met een lagere prioriteit stopt met zenden als er een apparaat met een hogere prioriteit zendt.De apparaten hebben geen echte adressen: een adres is in feite een pririteitslevel. Alle apparaten op de bus kunnen de data lezen en daarop reageren indien nodig (softwarebepaald in het apparaat). De bus werd oorspronkelijk gebruikt in auto's om het aantal kabels te beperken, maar het protocol wordt veelvuldig in de industrie gebruikt. De busspanningen zijn niet compatibel met de spanningen die door een arduino (of een andere microcontroller) gebruikt worden. Een specifieke IC MCP2515 voert de vertaling uit tussen SPI (locale communicatie tussen bijvoorbeeld een processor en de busdriver) en CANbus (communicatie tussen verschillende apparaten. Het apparaat hier is een deel van het motormanagement. Het stuurt de informatie betreffende de ingangen door naar de bus en zet de uitgangen hoog of laag naargelang de ontvangen data.
Andere communicatieprotocollenWe zullen hier niet alle protocollen bespreken, maar ons beperken tot de meest interessante protocollen.De meeste LCD schermen gebruiken een parallel protocol over 4 of 8 bits. Om niet een aantal poorten van de arduino te blokkeren hebben de meeste lcd schermen ook een seriële interface (TTL). De interface vertaalt de opdrachten via de seriële poort in een parallele communicatie. Een LCD scherm heeft tot 16 pennen, waarvan er 7 voor de datacommunicatie gebruikt worden (over 4 bits). Een dergelijke verbinding zou nagenoeg alle digitale poorten van een arduino gebruiken, terwijl de communicatie ook over één enkele pen zou kunnen gebeuren. De parallele verbinding laat echter meer instructies toe, terwijl de seriële verbinding beperkt is in een paar basisopdrachten (scherm wissen, lijnsprong,...). De andere pennen van de lcd module dienen om de backlighting te regelen en voor de voeding. |
Publicités - Reklame