...

Microcontroller Netwerk

Een microcontroller netwerk door Willem Ouwerkerk 'De grote gemene snuffelaar' Een netwerk bestaat uit minimaal twee met elkaar verbonden computers die met elkaar communiceren via een afgesproken protocol. Op kantoor wordt het veelal gebruikt om belangrijke files centaal op te slaan en de dure laserprinter met elkaar te delen. Dankzij een netwerk kunnen computers hardware en informatie met elkaar delen (ook het internet is een voorbeeld hiervan). Praten via een protocol Om een netwerk betrouwbaar te laten functioneren moeten alle aangesloten computers zich aan bepaalde afspraken houden, anders loopt de communicatie fout. Over protocollen zijn boeken vol geschreven, ook zijn er internationaal vele afspraken gemaakt. Twee voorbeelden van zo'n protocol zijn, het TCP/IP protocol dat uw computer gebruikt om met het internet te praten en de I2C bus die in het 'Egel werkboek gebruikt wordt om een microcontroller diverse chips te laten besturen. De informatie wordt in pakketten met een voorgeschreven formaat verstuurd. In het beschreven voorbeeld is gekozen voor een netwerk met maar een master, als dit niet zo is dan moet het protocol voorzien in een afhandeling van conflicten tussen de master computers. Als het netwerk maar een master kent, dan vinden deze conflicten niet plaats, omdat altijd dezelfde master het netwerk beheert. Hardware voor een netwerk Als we microcontrollers een netwerk willen laten vormen moeten we geschikte hardware vinden om de chips met elkaar te kunnen verbinden. Bij chips met een ingebouwde UART (RS232) kan deze unit gebruikt worden om de hardware laag van het netwerk te vormen. De uitgangs pennen genaamd TXD en RXD worden voor de werkelijke verbindingen gebruikt, de UART regelt de omzetting van byte naar bitstroom en vice versa. Hier zijn twee manieren om zo'n netwerk te bouwen: Een ring Een bus Een voorbeeld Er zijn vier sensor units, een motor-regelaar en een 8052 besturingscomputer, deze zes computers worden via een netwerk met elkaar verbonden. De sensoren en de motor-regelaar zijn de slave nodes van het netwerk, de 8052 besturingscomputer is de master. De computers zijn via methode b) (een bus) op elkaar aangesloten en de UART in de microcontrollers wordt gebruikt om de bus te besturen. Alle vijf de slaves hebben een of meerdere identificatie- nummers. De master activeert een slave door een pakket van een byte over het netwerk te versturen. Dit pakket bevat het slave adres en een opdracht. De geadresseerde slave voert vervolgens deze opdracht uit. Het lage nibble van elk een byte pakket bevat het slave adres, dit betekent dat er maximaal 16 nodes op de bus aan te sluiten zijn. De hoge nibble bevat data of een commando voor een van de nodes. Adres 0 is een speciaal geval, deze beschrijf ik later. De adressen 1 t/m 4 benaderen de vier sensor nodes, adres 5 t/m 11 benaderen de motor node en adres 12 t/m 15 zijn nog ongebruikt. Er is een adres waarop alle nodes op reageren, je raad het al, dat is adres 0. Deze wordt gebruikt om te controleren of het netwerk nog in leven is. Als dit adres verzonden wordt door de master dan reageert elke node door een nummer terug te sturen. Door deze getallen bij elkaar op te tellen weet de master of alle nodes hebben gereageerd en nog werken. Hoe werkt een sensor node Als een sensor node geaddresseerd is, bekijkt het de data in het hoge nibble. Drie van de vier bits hiervan hebben een betekenis: -- L U2 U1 U1 - Zet uitgang 1 aan of uit (hoog is actief), U2 - Zet uitgang 2 aan of uit (hoog is actief), L - Lees data van alle sensoren. Een sensor stuurt na de leesopdracht L een datapakket van vier bytes terug naar de master. De eerste twee bytes zijn de afstand tot een obstakel gemeten door de ultrasoonsensor, het volgende byte de lichtintensiteit op de ingebouwde LDR en de laatste byte is een vlag die aangeeft of de PIR-sensor beweging heeft gedetecteerd. Epiloog Dankzij het toegepaste netwerk worden nu 11 sensoren, 2 motoren, 5 lampen, een hoorn en een spraakunit bestuurd en uitgelezen via vier draden (+24V, nul, TXD en RXD). Dit heeft mijn robot genaamd 'De grote gemene snuffelaar' onnoemelijk veel bedrijfszekerder gemaakt en veel eenvoudiger om te bedraden.

12 juni 2020

...

CHForth

Author's website CHForth (van Coos Haak) is een 16 bits ANSI standaard implementatie voor Intel 80x86 processoren onder MSDOS of DRDOS, maar loopt tegenwoordig ook keurig in een DOSBOX or dosemu. Het loopt in de real mode (16 bits 8086) en gebruikt meerdere segmenten waardoor het veel meer programmeer geheugen heeft dan F83 of de MS-DOS versie van ciforth. Met CHForth kun je MSDOS executeerbare programma's maken ("EXE" files), wat Forthers turnkey programma's noemen. De download is versie 1.25. Hoewel chforth tot minstens 2017 is doorontwikkeld, is dit de versie van 1994, gearchiveerd in 1998.  Pak de zipfile uit en  volg de instructies in de README. Er is pdf documentatie is in dit archief aanwezig (alsook een versie in platte tekst.) Naast de bovenstaande Forth archief, georienteerd op gebruikers, is er ook "ch125m.zip". Dit zijn de sources van chforth zelf en de middelen om daarmee een nieuwe gewijzigde versie te bouwen. Forthers noemen dat een meta omgeving. Het bevat veel know-how en is alleen interessant voor gevorderde Forthers. U moet dan in startup.frt de versie ophogen to 126 en dan bouwt U een nieuwe versie van bovenstaande Forth.  Het archief bevat ook veel dat niet bij de meta-omgeving behoort en mogelijk interessant is. Het gebruik van CHForth is vrij, ook voor commerciele doeleinden. U kunt de documentatie in PDF bekijken. Voor eventuele vragen en hulp, kunt U contact opnemen met Coos Haak. Voor dit gratis beschikbare systeem aanvaardt de auteur geen aansprakelijkheid. Wat bevat CHForth? CHForth bevat onder ander de volgende zaken. Online "help" voor alle Forth woorden (ook voor veel andere begrippen). Een 80x86 assembler, een eenvoudige DOS interface, command line editor met history Locale variabelen, uitgebreide foutopvang, 'TO' bruikbaar met alle datatypen, Interrupt ondersteuning, fraaie decompiler en disassembler, uitgebreide set bibliotheek files, turnkey voorbeelden, etc.  Klikbare woordenlijst CHForth gebruikers-omgeving Download     CHForth meta-omgeving Download

12 juni 2020

...

8052 ANS Forth

8052-ANS-Forth Author's website Zoals de naam zegt is '8052-ANS-FORTH' een 16 bits ANSI standaard implementatie van Forth voor Intel 8052 processoren en verwante processoren. 8052-ANS-Forth, een 16 bits ANSI standaard implementatie voor de 8032 processoren, is op dit moment verkrijgbaar voor de 80(C)32/80(C)52, 80C320, 80C520, 80C552, 80C535 en draait ook op de nieuwe 87C251 familie van Intel. Zoals met de Arduino's kan je een apparaat maken dat een speciaal doel dient. Deze zelfstartende programma's heten turnkey in Forth. Ze starten op zodra het apparaat aangezet wordt. Turnkey programma's kun je in een RAM met batterij backup zetten, of, na reloceren met de ingebouwde relocater, in een vrij gebied in de EPROM branden. Deze Forth voor Single Board Computers moet natuurlijk aangepast worden aan de hardware waar het op draait. Het volgende is een typische configuratie. 8052-ANS-Forth zit in een 32 kByte EPROM en vraagt daarnaast nog 32 kByte RAM. Turnkey programma's kun je in een RAM met batterij backup zetten, of, na reloceren met de ingebouwde relocater, in het vrije gat van 8 kByte in de EPROM branden. Dit is de Forth die gebruikt wordt in het ATS board en in het oorspronkelijke Egel project Wat bevat 8052-ANS-Forth? Locale variabelen, uitgebreide foutopvang, 'TO' bruikbaar op alle soorten variabelen, 8051 assembler, krachtige ondersteuning van ingebouwde registers (SFR, bit-SFR en bit-variabelen) en andere hardware, vele bibliotheek files, veel geteste voorbeeld files en een SERVER onder DOS met vele utilities waaronder een online help functie. Copyright De download is versie #.### Het gebruik van deze Forth is vrij, ook voor commerciele doeleinden. Turnkey's gemaakt met 8052-ANS-FORTH zijn vrij van royalties. U kunt de documentatie in PDF bekijken. U kunt de Forth zelf exclusief documentatie downloaden. Voor eventuele vragen en hulp, kunt U contact opnemen met de auteur. Voor dit gratis beschikbare systeem aanvaardt de auteur geen aansprakelijkheid. 8052-ANS-Forth (Willem Ouwerkerk) 8052-ANS-Forth handleiding (Manual )

7 juni 2020

...

ATS bord en 8052-ANS-Forth

het ATS-bord en 8052-ANS-Forth De 8052-ANS-Forth en de hardware om het op te draaien zijn in onderlinge verband ontwikkeld. Software kan natuurlijk niet eens getest worden zonder hardware. Anderszijds omdat het hier om single board computers gaat behoeft elke versie aanpassing aan de specifieke hardware. Vandaar dat de Forth IG ook het ontwerpen van SBC in eigen hand heeft genomen. (Hier voor de Intel 8052, later ook voor de Texas Instruments 430.) Hiertoe heeft At van Wijk het ATS-bord (een afstammeling van het B+bord) getekend en Willem Ouwerkerk heeft (in samenwerking met Frans Cornelis en Albert Nijhof) de 8052-ANS-Forth in de ROM van deze single board computer gemaakt. Dit wil niet zeggen dat 8052-ANS-Forth alleen op dit bordje draait, een overzicht van de mogelijke processoren vindt U in de beschrijving. 8052-ANS-Forth voor het ATS-board zit in een 32 kByte EPROM en benut de 32 kByte RAM van het board. Dit board is heel geschikt voor het schrijven van turnkey programma's. Het ATS-board kan hiertoe voorzien worden van battery backup voor het RAM. Een permanentere oplossing is om de applicatie te reloceren met de meegeleverde relocator, en dan in het vrije gat van 8 kByte in de EPROM branden.   Communicatie Het ATS-board heeft een seriele communicatie poort waar Forth commando's naar toe gestuurd worden. Hoewel in principe een willekeurige communicatie programma gebruikt kan worden, bevelen we aan om het onder vermelde server32 te gebruiken op MS-Windows systemen. Er zijn dan geen moeilijkheden te verwachten.   De hardware handleiding hieronder bevat een beschrijving van het Ats-bord     Schema van het ATS-bordje   8052-ANS-Forth DOS-Server (Willem Ouwerkerk)   8052-ANS-Forth Windows-Server (Gerard van der Sel) versie 2 (17 aug 2005)   Cursus "Besturen met 8052 Forth" (Ben Koehorst) versie 2.01 - december 2003   Voorlopige versie van de hardware handleiding (At van Wijk)

7 juni 2020

...

- ByteForth

  ByteForth ByteForth is een 8 bits Forth voor de AVR- en 8032-reeks processoren en is gebaseerd op ANSI-Forth, voorzover dat kan met 8 bits. De 8051 versie 1.70 ondersteunt de 89C1051 en 89C2051, de 8051 beta-versie is geschikt voor 16 verschillende chips waaronder de AT89C4051, de 89S51 en 89S52. Het handboek en de programmer van de beta-versie zijn nog niet klaar. De AVR versie ondersteunt tientallen verschillende AVR-chips waaronder de AT90S2313 en de ATmega8. Deze processoren, waarvan de meesten van het fabrikaat ATMEL zijn, hebben een FlashEPROM in plaats van een EPROM ingebouwd, waardoor je ze kunt wissen in 10 milliseconden. ByteForth is een optimaliserende macrocompiler die royalty-vrije stand-alone applicaties genereert. De compiler laat een zeer flexibel gebruik van het RAM en ROM geheugen toe en bezit een ingebouwde flash programmer. De ByteForth compilers draaien onder CHForth op de PC! Wat bevat ByteForth? De meeste Forth primitieven, diverse soorten variabelen met 'TO' concept, krachtige ondersteuning van ingebouwde registers (SFR, bit-SFR en bit-variabelen) en andere hardware, duidelijke decompiler, AVR- of 8051 assembler, vele bibliotheek files, geteste voorbeeld files en vele utilities waaronder een online hulp functie. Voor het testen van de code wordt de ingebouwde software simulator gebruikt compleet met een tracer die breekpunten ondersteunt. De 'In System Programmer' (ISP) wordt aangesloten op de parallelle poort. Een externe AT89C2051 flash programmer kan worden aangesloten op de seriële poort. (pagina van de auteur) Lees over de werkgroep achter ByteForth »   Of bekijk byteforth oude stijl USHI De Ushi is een robotje dat loopt op AVR ByteForth. Naar de Ushi pagina 'Egelwerkboek Nog meer toepassingen van ByteForth vindt U in het 'Egelwerkboek. Naar de 'Egel pagina 8051 ByteForth 8051 ByteForth versie 2.00beta pcr.zip 420Kb AVR ByteForth   AVR ByteForth handboek avrb207.pdf 1633Kb AVR ByteForth versie 2.07demo met onderstaande cursus erbij ned-avrf.zip 815Kb (mei2004) Er zit op verzoek van een van onze leden ook een executable bij voor 8086 en 80286 processoren. Het ISP-probleem met ATtiny13 en ATtiny2313 is nu opgelost (23maa05) AVR ByteForth version 2.07demo eng-avrf.zip 758Kb (may2004) The ISP problem with ATtiny13 and ATtiny2313 is resolved now (23mar05)

7 juni 2020

Actueel

'Meld je aan voor de nieuwsbrief' van HCC!forth

'Abonneer je nu op de nieuwsbrief en blijf op de hoogte van onze activiteiten!'

Aanmelden