Ryabenky VM Computerbesturing van externe apparaten via standaardinterfaces

Apparaten bedienen via de USB-poort van een computer.

P. VYSOCHANSKY, Rybnitsa, Transnistrië, Moldavië
Een computerbesturingsapparaat voor verschillende apparaten, waarvan het diagram wordt getoond in Fig. 1, functioneel vergelijkbaar met die beschreven in, maar wordt aangesloten op de USB-poort van een computer, die (in tegenstelling tot de COM-poort) tegenwoordig in elk van hen zit. De enige microschakeling van het apparaat is de gewone ATmega8-microcontroller. Het is nodig om de communicatie via de USB-bus te organiseren. Hoewel er geen speciale hardwaremodule is, wordt deze functie in software uitgevoerd.

Weerstand R1, aangesloten tussen de positieve pool van de voeding en de USB D-bus-lijn, zet hem in de low-speed LS-modus met een overdrachtssnelheid van 1,5 Mbit / s, wat het mogelijk maakt om de computerhagels in software te decoderen. Weerstanden R4 en B5 elimineren communicatietransiënten, wat de stabiliteit verhoogt. Condensator C1 blokkeert impulsruis in het voedingscircuit, wat ook de stabiliteit van het apparaat verbetert. Diodes VD1 en VD2 worden gebruikt om de voedingsspanning van de microcontroller te verlagen tot ongeveer 3,6 V - dit is nodig om het niveau met de USB-bus overeen te laten komen.
Instrumentbesturingssignalen worden gegenereerd aan de uitgangen PB0-PB5 en PCO, PC1 van de microcontroller. Hoog logisch niveau - spanning ongeveer 3,4 V.
Laagspanning is bijna nul. Op de uitgangen kunnen apparaten worden aangesloten die niet meer dan 10 mA stroom verbruiken (van elke uitgang). Als er grote stroom- of spanningswaarden nodig zijn, worden de overeenkomende knooppunten weergegeven in Fig. 5 en 6. Het apparaat is gemonteerd op een breadboard, de printplaat is niet ontwikkeld.MLT-weerstanden worden gebruikt, condensatoren C2 en CZ zijn hoogfrequent keramiek, C1 - K50-35 of vergelijkbaar geïmporteerd. Siliciumdiodes met een spanningsval over het knooppunt van ongeveer 0,7 V. Het programma voor de microcontroller is ontwikkeld in de Bascom-AVR-omgeving, versie 1.12.0.0. Om met de USB-bus te werken, werd de swusb.LBX-bibliotheek gebruikt, die softwarematige decodering van USB-signalen in realtime uitvoert. De programmacode die is verkregen als resultaat van compilatie uit een bestand met de HEX-extensie, moet in het FLASH-geheugen van de microcontroller worden geladen. Hiervoor werd de programmer gebruikt in combinatie met het hulpprogramma dat in de Bascom-AVR is ingebouwd. De toestand van de bits van de microcontrollerconfiguratie moet overeenkomen met die getoond in Fig. 2


Wanneer u het apparaat voor de eerste keer op uw computer aansluit, detecteert het besturingssysteem een ​​nieuw USB HID-compatibel apparaat met de naam "uniUSB" en installeert het de benodigde stuurprogramma's. Na een paar seconden is het apparaat ingesteld en klaar voor gebruik. Om ermee te werken, is het UniUSB-programma gemaakt. Het wordt gepresenteerd in twee versies: voor 32-bits (x86) en 64-bits (x64) Windows-besturingssystemen. De 32-bits versie is getest in besturingssystemen: Windows 98, Windows XP, Windows 7 en de 64-bits versie is alleen getest in Windows XP x64. Het UniUSB-programma is geschreven in PureBasic (versie 4.31) met behulp van de door de gebruiker gedefinieerde functiebibliotheek van HID Lib, die het werken met USB HID-apparaten ondersteunt. Het uiterlijk van het programmavenster wordt getoond in Fig. 3


In dezelfde map met het uitvoerbare bestand moet er een bestand zijn met de naam UniUSB_code.txt of UniCOM_code.txt. De laatste optie is vereist voor compatibiliteit met het UniCOM-programma dat wordt voorgesteld in. Dit bestand bevat een script voor het aansturen van externe apparaten. Wanneer het programma start, worden de gegevens uit het bestand in de tabel in het hoofdvenster geladen en wanneer het programma is voltooid, worden ze in het bestand opgeslagen. Door met de linkermuisknop op de tabelcellen te klikken, kunt u hun status wijzigen: 1 - hoog logisch niveau, 0 of leeg - laag logisch niveau. Om een ​​kolom van een tabel toe te voegen of te verwijderen, moet u er met de rechtermuisknop op klikken en de vereiste actie selecteren in het menu dat verschijnt. Wanneer een apparaat is aangesloten op de USB-poort, detecteert het programma het en activeert het de knop in het bovenste deel van het venster op de werkbalk. Door op deze knop te drukken, wordt het proces van het opsommen van de kolommen van de tabel en het instellen van de statussen van de daarin aangegeven uitgangen gestart. Voor meer duidelijkheid zijn aan de linkerkant van de tabel het aantal uitgangen gemarkeerd waarop momenteel een hoog logisch niveau is ingesteld. De zoeksnelheid (tijd in milliseconden tussen overgangen van kolom naar kolom) wordt ingesteld in het veld "Snelheid, ms". Overweeg het Windows-besturingssysteem - multitasking! Dit betekent dat de processortijd wordt verdeeld over vele processen, soms verborgen voor de gebruiker, die beurtelings worden uitgevoerd, rekening houdend met de prioriteiten die in het systeem zijn gesteld. Daarom mag men geen hoge nauwkeurigheid verwachten bij het houden van tijdsintervallen van minder dan 100 ms.
Om het tellen van kolommen kort te stoppen, gebruikt u de knop. Als u er nogmaals op drukt, gaat het tellen verder vanaf het punt waar u stopte. De knop stopt volledig met itereren over de tabelkolommen. Als er tijdens de uitwisseling van informatie tussen de computer en het apparaat een storing optreedt of het apparaat wordt losgekoppeld van de USB-connector van de computer, zal het programma een fout melden door een bijbehorend bericht in de statusbalk weer te geven.

LITERATUUR

1. Nosov T. Bediening van apparaten via de COM-poort van een computer - Radio, 2007, No. 11, p.61.62.
2. Ryzhkov A. US-programmeur voor AVR- en AT89S-microcontrollers, compatibel met AVR910. - Radio, 2008, nr. 7, p. 28, 29.

Gebaseerd op de materialen van het tijdschrift "Radio 2`2011"
U kunt de firmware van de microcontroller en het pc-programma downloaden

Een van de eenvoudigste en meest gebruikte methoden voor het organiseren van gegevensuitwisseling tussen een computer en externe apparaten is het gebruik van standaard invoer-uitvoerpoorten - zoals COM, LPT, IrDA en USB, evenals industriële interfaces SPI, 12C, I-Wire . Dit boek is gewijd aan het uitleggen van de principes van hun werk en het maken van gebruikerscontroleprogramma's. Er wordt rekening gehouden met problemen met het koppelen van apparaten aan een computer met behulp van de gespecificeerde interfaces. Er wordt rekening gehouden met problemen met het koppelen van apparaten aan een computer met behulp van de gespecificeerde interfaces. Er worden voorbeelden gegeven van schakelingen, evenals broncodes van programma's voor computers en microcontrollers van de AVR-familie.De handleiding is bedoeld voor ontwikkelaars van elektronische apparatuur die softwareondersteuning voor hun apparaten moeten leveren.

2. LPT-POORT PROGRAMMEREN
2.1. Het giveio sys-stuurprogramma installeren
2: 2. Beheer van LPT-poortlijnstatus
2.3. Schema van de standaard voor het debuggen van het programma
2.4. Een microcontroller koppelen met een LPT-poort
2.5. Hardware en software voor het nemen van de stroom-spanningskarakteristieken van halfgeleiderinrichtingen
2.5.1. De stroom-spanningskarakteristieken van bipolaire transistors verwijderen
2.5.2. De volt-ampère-karakteristieken van veldeffecttransistoren verwijderen
2.5.3. De stroom-spanningskarakteristieken van diodes verwijderen
2.5.4. De stroom-spanningskarakteristieken van zenerdiodes verwijderen
2.5.5. Besturingsblok
2.5.6. Beschrijving van software

3 SERILE POORT
3.1. Poort hardware organisatie
3.2. RS-232C-interface
3.3. Elektrische interface:
3.4. Stroomregeling
3.4. Huidige lus-interface
3.6. Infrarood-interface
3.7. MIDI-interface
3.8. COM-poorten configureren
3.9. COM-poorten gebruiken
3.10. Storingen en testen van COM-poorten
3.10.1. Verificatie configureren
3.10.2. Functioneel testen
3.11. UART-programmering voor microcontrollers
3.11.1. Data overdracht
3 11.2. Data ontvangen
3.11.3. UART-besturing
3.11.4. Baudrate-generator
3.12. Een computer koppelen met een microcontroller via de COM-poort
3.13. Microcontroller-programma

4. COM-POORTS PROGRAMMEREN
4.1. Poortopening
3.2. Poortparameters configureren
4.3. Time-outs instellen
4.4. Het standaard dialoogvenster voor poortinstellingen gebruiken
4.5. Ontvangst en verzending van gegevens
4.6. Streams gebruiken

5.USB-BUS:
5.1. Hardware bus organisatie
5.2. USB naar FIFO-converters
5.3. FT245BM-chip aansluiten op USB
5.4. Converters USB-RS232
5.5. FT232BM-chip aansluiten op USB

6. USB-BUS PROGRAMMERING:
6.1. Drivers installeren
6.2 Definitie van aangesloten apparaten. Apparaatgegevens ophalen
6.3. Organisatie van gegevensuitwisseling
6.4. AVR-controllersoftware
6.5. Time-outs gebruiken
6.6. Programmeerapparaten op basis van FT232
6.7. EEPROM-programmering:
6.8. USB-foutcodes

7. OVERZICHT VAN DE POORTSOFTWARE
7.1. Proteus
7.2. SCADA-systemen
7.2.1. Werkingsprincipe SCADA-systemen:
7.2.2. Genie systeem
7.3. Teiminat
7.4. Wtnscope

8. PRINCIPES VAN HET ORGANISEREN VAN NETWERKCOMMUNICATIE
8.1. Windows-sockets gebruiken
8.2. Winsock-initialisatie
8.3. Maak een socket en open een verbinding
8.4. Berichten verzenden en ontvangen
8.5. Het proces voor het genereren van berichten beheren
8.6. Voorbeeld van programma-ontwikkeling
BIJLAGEN
LITERATUUR

Uitgever: Oldie-plus
Jaar van uitgave: 2008
Pagina's: 380
ISBN: 978-966-8447-51-8
Russische taal
Formaat: PDF
Grootte: 8,5 MB
Downloaden: Ryabenky VM Computerbesturing van externe apparaten via standaardinterfaces

P. VYSOCHANSKY, Rybnitsa, Transnistrië, Moldavië

Een apparaat voor computerbesturing van verschillende apparaten, waarvan het diagram wordt getoond in Fig. 1, functioneel vergelijkbaar met die beschreven in, maar wordt aangesloten op de USB-poort van een computer, die (in tegenstelling tot de COM-poort) tegenwoordig in elk van hen zit. De enige microschakeling van het apparaat is de gewone ATmega8-microcontroller. Het is nodig om de communicatie via de USB-bus te organiseren. Hoewel er geen speciale hardwaremodule is, wordt deze functie in software uitgevoerd.

Weerstand R1, aangesloten tussen de positieve pool van de voeding en de USB D-bus-lijn, zet hem in de low-speed LS-modus met een baudrate van 1,5 Mbit/s, waardoor de computer softwarematig kan worden gedecodeerd. Weerstanden R4 en R5 elimineren communicatietransiënten voor meer stabiliteit. Condensator C1 blokkeert impulsruis in het voedingscircuit, wat ook de stabiliteit van het apparaat verbetert. Diodes VD1 en VD2 worden gebruikt om de voedingsspanning van de microcontroller te verlagen tot ongeveer 3,6 V - dit is nodig om de niveaus met de USB-bus af te stemmen. Instrumentbesturingssignalen worden gegenereerd aan de uitgangen van de PBO-PB5 en RSO, PC1 van de microcontroller. Hoog logisch niveau - spanning ongeveer 3,4 V. Laag spanningsniveau is bijna nul. Op de uitgangen kunnen apparaten worden aangesloten die niet meer dan 10 mA stroom verbruiken (van elke uitgang). Als er grote stroom- of spanningswaarden nodig zijn, worden de overeenkomende knooppunten weergegeven in Fig. 5 en 6.

Het apparaat is gemonteerd op een breadboard, de printplaat is niet ontwikkeld. Gebruikte weerstanden MLT, condensatoren C2 en SZ - keramische hoge frequentie, C1 - K50-35 of vergelijkbaar geïmporteerd. Siliciumdiodes met een spanningsval over het knooppunt van ongeveer 0,7 V.

Het programma voor de microcontroller is ontwikkeld in de Bascom-AVR-omgeving versie 1.12.0.0. Om met de USB-bus te werken, werd de swusb.LBX-bibliotheek gebruikt, die softwarematige decodering van USB-signalen in realtime uitvoert. De programmacode die is verkregen als resultaat van compilatie uit een bestand met de HEX-extensie, moet in het FLASH-geheugen van de microcontroller worden geladen. Hiervoor werd de programmer gebruikt in combinatie met het hulpprogramma dat in de Bascom-AVR is ingebouwd. De toestand van de bits van de microcontrollerconfiguratie moet overeenkomen met die getoond in Fig. 2.

Wanneer u het apparaat voor de eerste keer op uw computer aansluit, detecteert het besturingssysteem een ​​nieuw USB HID-compatibel apparaat met de naam "uniUSB" en installeert het de benodigde stuurprogramma's. Na een paar seconden is het apparaat ingesteld en klaar voor gebruik. Om ermee te werken, is het UniUSB-programma gemaakt. Het wordt gepresenteerd in twee versies: voor 32-bits (x86) en 64-bits (x64) Windows-besturingssystemen. De 32-bits versie is getest in Windows 98, Windows XP, Windows 7 en de 64-bits versie is alleen getest in Windows XPx64.

Het UniUSB-programma is geschreven in PureBasic (versie 4.31) met behulp van de HIDJJb-bibliotheek met aangepaste functies die USB HID-apparaten ondersteunt. Het uiterlijk van het programmavenster wordt getoond in Fig. 3.

In dezelfde map met het uitvoerbare bestand moet er een bestand zijn met de naam UniUSB_KOfl.txt of UniCOM_KOfl.txt. De laatste optie is vereist voor compatibiliteit met het UniCOM-programma dat wordt voorgesteld in. Dit bestand bevat een script voor het aansturen van externe apparaten. Wanneer het programma start, worden de gegevens uit het bestand in de tabel in het hoofdvenster geladen en wanneer het programma is voltooid, worden ze in het bestand opgeslagen. Door met de linkermuisknop op de tabelcellen te klikken, kunt u hun status wijzigen: 1 - hoog logisch niveau, 0 of leeg - laag logisch niveau.

Om een ​​kolom van een tabel toe te voegen of te verwijderen, moet u er met de rechtermuisknop op klikken en de vereiste actie selecteren in het menu dat verschijnt.

Wanneer een apparaat is aangesloten op de USB-poort, detecteert het programma het en activeert het de>-knop bovenaan het venster op de werkbalk. Door op deze knop te drukken, wordt het proces van het opsommen van de kolommen van de tabel en het instellen van de statussen van de daarin aangegeven uitgangen gestart. Voor meer duidelijkheid zijn aan de linkerkant van de tabel het aantal uitgangen gemarkeerd waarop momenteel een hoog logisch niveau is ingesteld. De zoeksnelheid (tijd in milliseconden tussen overgangen van kolom naar kolom) wordt ingesteld in het veld "Snelheid, ms".

Overweeg het Windows-besturingssysteem - multitasking! Dit betekent dat de processortijd wordt verdeeld over vele processen, soms verborgen voor de gebruiker, die beurtelings worden uitgevoerd, rekening houdend met de prioriteiten die in het systeem zijn gesteld. Daarom mag men geen hoge nauwkeurigheid verwachten bij het houden van tijdsintervallen van minder dan 100 ms.

Gebruik de JB-knop om tijdelijk te stoppen met het herhalen van de kolommen. Als u er nogmaals op drukt, wordt het zoeken voortgezet vanaf het punt waar het is gestopt. De ■-knop stopt volledig met het herhalen van de tabelkolommen. Als er tijdens de uitwisseling van informatie tussen de computer en het apparaat een storing optreedt of het apparaat wordt losgekoppeld van de USB-connector van de computer, zal het programma een fout melden door een bijbehorend bericht in de statusbalk weer te geven.

13-01-2014

ATiny2313

Zakharov Denis, Oekraïne

Zoals u weet, zijn er voldoende interfaces waarmee de microcontroller (MC) kan communiceren met externe apparaten. Als u de MC met een pc of laptop moet verbinden, kunnen we met vertrouwen zeggen dat u het beste de RS-232 COM-poortinterface kunt gebruiken.

De reden voor deze keuze ligt voor de hand - bijna alle controllers hebben hardware UART-modules, waarmee u informatie kunt overbrengen met een minimaal verbruik van MC-bronnen. Daarnaast zijn er veel beproefde COM-poortprogramma's. Aangezien de MCU-signalen TTL-niveaus zijn, is een niveauconverter vereist om overeen te komen met de RS-232-interface. Het is vaak gebaseerd op de gemakkelijk verkrijgbare en populaire MAX232-microschakeling.

Foto 1.

Het gepresenteerde apparaat (Figuur 1) is ontworpen om apparaten te bedienen met elke pc met een USB-poort. Moderne computers en laptops hebben meerdere van deze poorten. Met dit complex kunt u licht, tv en andere apparaten bedienen. Uitvoerende apparaten hoeven niet in de directe omgeving van de pc te zijn.

Het apparaat bestaat uit direct beschikbare en gemeenschappelijke elementen. Beide microschakelingen zijn ATtiny2313-microcontrollers van de familie. De eerste controller wordt aangesloten op de USB-poort van de computer en fungeert als een USB-COM-converter. De tweede is verbonden met de eerste en scant de hele tijd opdrachten die vanaf de pc worden verzonden via het terminalprogramma Terminal v1.9b.

De USB-weerstand R4 die op pin 2 is aangesloten, schakelt het apparaat naar de LS-modus met lage snelheid, waardoor de berichten van de pc kunnen worden gedecodeerd bij het uitwisselen van gegevens met een snelheid van 1,5 Mbit / s met behulp van het programma.

Met behulp van weerstanden R2 en R3 worden voorbijgaande processen geëlimineerd. Condensator C5 blokkeert impulsruis in het stroomcircuit. Zenerdiodes D1 en D2 zijn vereist om overeen te komen met de logische niveaus van de MK- en USB-ingang van de pc. Voor een foutloze gegevensoverdracht tussen regelaars moeten de frequenties van de kwartsresonatoren gelijk zijn aan 12 en 4 MHz.
Op de / RESET pinnen dienen pull-up weerstanden te worden aangesloten om een ​​willekeurige reset van de MC door de invloed van ruis en statische spanningen verder te voorkomen. In dit diagram worden alle commando's weergegeven op LED's die zijn aangesloten op poort B. Om apparaten te bedienen, is het noodzakelijk om de controlleruitgangen aan te sluiten op een relais (Figuur 2).

Je monteert het apparaat op een breadboard, al is het toch beter op een volwaardige printplaat. Elementen kunnen bijvoorbeeld worden geplaatst zoals weergegeven in figuur 3.

Het programma voor de U1-microcontroller is ontwikkeld door een collega GetChiper in de Bascom-AVR-omgeving. De bibliotheek werd gebruikt om met de USB-bus te werken swusb.LBX... Het voert softwaredecodering van het USB-protocol in realtime uit. Om het apparaat met een pc te bedienen, moet u de juiste stuurprogramma's installeren door ze naar uw harde schijf te kopiëren. Wanneer het apparaat voor de eerste keer wordt aangesloten, wordt het herkend en wordt om een ​​stuurprogramma gevraagd. Vervolgens moet u het pad naar de map met de bestanden specificeren en alles zal werken.

Het U2-microcontrollerprogramma is door mij geschreven in de AVRStudio-omgeving in assembler. Een blokschema van het MK-bewerkingsalgoritme wordt getoond in figuur 4. De UART-hardwaremodule moet worden geconfigureerd om te onderbreken na voltooiing van de gegevensontvangst. De MC zelf zal geen enkele functie vervullen totdat er een onderbreking optreedt. De slaapstand kan worden gebruikt om het stroomverbruik te verminderen, maar dit ontwerp was niet nodig. Zodra er commando's volgen vanaf de pc-terminal, zal de MK ze onmiddellijk gaan scannen. De controller ondersteunt momenteel het volgende commandosysteem:

-on1, on2, on3, on4, on5, on6, on7, on8- commando's voor het instellen van poorten in "log. 1";
-uit1, uit2, uit3, uit4, uit5, uit6, uit7, uit8- commando's voor het instellen van poorten in "log. 0 ";
-ser - zet alle poorten in de actieve staat "log. 1";
-clr- reset alle poorten naar de "log.0" status.

Nadat u klaar bent met het invoeren van elke opdracht, moet u op Enter drukken. Zo kan de MC het einde van de opdracht detecteren en beginnen met scannen. De controller zal op elk correct commando "ok" antwoorden. Als u onjuiste gegevens invoert, wordt "fout" teruggestuurd naar de terminalregel. Een voorbeeld van het uitvoeren van een opdracht wordt getoond in figuur 5.

Firmwareversie 1.0. Het is noodzakelijk om zekeringen in te stellen volgens figuur 6. De volgende versie van de firmware wordt ontwikkeld, waarbij zelfleren van de MC en wisselende commandosystemen in de terminal zal plaatsvinden.

MK-software, Proteus virtueel model en pc-stuurprogramma -
Protocol voor gegevensoverdracht tussen MK en pc - downloaden

Om commentaar te geven op materiaal van de site en volledige toegang tot ons forum te krijgen, heb je nodig register .

  • .... eigenlijk wilde ik de m / y USB-poort van de ene computer zien met de COM-poort van de tweede ... of de LPT-poort van de derde ...
  • Bedankt! Typfout gecorrigeerd :)
  • Waarom 2 MK gebruiken? Heeft Attiny2313 echt weinig flits? Of zijn er gewoon niet genoeg I/O-poorten? Oké, dan kun je zien dat USB aan INT0 / INT1 hangt.
  • De weerstand van de spoelen van relais met laag vermogen ligt in de buurt van 100-200 Ohm, zonder rekening te houden met de verzadigde transistor (dit is geen starter en geen schakelaar). Dus een 50-200mA geschikte sleutel zal niet worden geïntimideerd. Het materiaal is zeer interessant in termen van het binden van de MK aan USB zonder enige interface-microschakelingen en zonder de aanwezigheid van hardware-USB in de MK-structuur. Maar rekening houdend met de doelen en doelstellingen van de oorspronkelijke bron http://www.recursion.jp/avrcdc/cdc-232.html, van de twee MC's, vervult men nog steeds de functies van een USB-COM-converter. En een zeer goedkope converter, die zeker bevalt.
  • Hier is een interessante burger betrapt op "nobele manieren", te oordelen naar zijn bijnaam. Over welke extremen hebben we het? Het lijkt erop dat het materiaal niet eens het type relais of transistor vermeldt. En als het relais wordt gevoed door 5V USB, dan willen we natuurlijk het verbruik van de hostzijde op de pc minimaliseren. Dit kan worden bereikt met optocouplers en extra voeding van het relais vanaf de belastingszijde, wat de schakeling compliceert. Of nog een paar opties. Richt het artikel zich op optimalisatie? De auteur heeft zijn doel bereikt en doet er goed aan dat hij geen specifieke vergoeding oplegt. Voor degene die het zal herhalen, is deze knoop genoeg.
  • Ja, het artikel is nog steeds hetzelfde ... maar is het het waard? Ik wilde ook iets zeggen zodra ik het las, inclusief de diode. Maar hier kun je niet anoniem heen. Dat is de reden waarom de auteur van AVR-CDC? Het is mij niet opgevallen dat ergens in het circuit signalen DTR, DTS, RTS, CTS worden gebruikt. V-USB niet genoeg? Er zijn hierboven al ongeveer twee "stenen" geschreven - één zou voldoende zijn. En over de diode is al opgelost, Boeddha bedankt! Een diode is nodig om de transistor te beschermen tegen de zelfinductiespanningspuls van de relaiswikkeling op het moment dat de stroom wordt geopend. Ik herinnerde me trouwens één implementatie. Het artikel stond in het tijdschrift Radio, maar is ook op internet gevonden, wie geïnteresseerd is mag een kijkje nemen.
Graad 1 Graad 2 Graad 3 Graad 4 Graad 5

Een computerbesturingsapparaat voor verschillende apparaten, waarvan het diagram wordt getoond in Fig. 1, wordt aangesloten op de USB-poort van de computer, die zich vandaag in elk van hen bevindt. De enige microschakeling van het apparaat is een gewone microcontroller ATMega8... Het is nodig voor het organiseren van buscommunicatie. USB... Hoewel het een speciale hardwaremodule mist, wordt deze functie in software uitgevoerd.

Foto 1

Weerstand R1, aangesloten tussen de positieve pool van de voeding en de USB D-bus-lijn, zet hem in de low-speed LS-modus met een baudrate van 1,5 Mbit/s, waardoor de computer softwarematig kan worden gedecodeerd. Weerstanden R4 en R5 elimineren communicatietransiënten voor meer stabiliteit. Condensator C1 blokkeert impulsruis in het stroomcircuit, wat ook de stabiliteit van het apparaat verbetert.Diodes VD1 en VD2 worden gebruikt om de voedingsspanning van de microcontroller te verlagen tot ongeveer 3,6 V - dit is nodig om de niveaus met de USB-bus te matchen.

Instrumentbesturingssignalen worden gegenereerd aan de uitgangen РВ0-РВ5 en РС0, РС1 van de microcontroller. Hoog logisch niveau - spanning ongeveer 3,4 V. Laag spanningsniveau is bijna nul. Op de uitgangen kunnen apparaten worden aangesloten die niet meer dan 10 mA stroom verbruiken (van elke uitgang). Als grote stroom- of spanningswaarden vereist zijn, moeten overeenkomende knooppunten worden gebruikt.

Het apparaat is gemonteerd op een breadboard, de printplaat is niet ontwikkeld, er zijn MLT-weerstanden gebruikt, condensatoren C2 en CZ waren hoogfrequent keramiek, C1 - K50-35 of iets dergelijks geïmporteerd. Siliciumdiodes met een spanningsval over het knooppunt van ongeveer 0,7 V.

Het programma voor de microcontroller is ontwikkeld in de omgeving Bascom-AVR versies 1.12.0.0. De bibliotheek werd gebruikt om met de USB-bus te werken swusb.LBX die software-decodering van USB-signalen in realtime uitvoert. De programmacode die is verkregen als resultaat van compilatie uit een bestand met de HEX-extensie, moet in het FLASH-geheugen van de microcontroller worden geladen. De toestand van de bits van de microcontrollerconfiguratie moet overeenkomen met die getoond in Fig. 2.

Afbeelding 2

Wanneer u het apparaat voor de eerste keer op de computer aansluit, detecteert het besturingssysteem een ​​nieuwe USB HID compatibel apparaat met de naam " uniUSB"en installeert de benodigde stuurprogramma's. In een paar seconden is het apparaat geconfigureerd en klaar voor gebruik. Om ermee te werken, is het UniUSB-programma gemaakt. Het wordt gepresenteerd in twee versies: voor 32-bit (x86) en 64-bit ( x64) Windows-besturingssystemen. De 32-bits versie is getest in Windows 98, Windows XP, Windows 7 en de 64-bits versie is alleen getest in Windows XP x64.

Programma UniUSB geschreven in taal PureBasic(versie 4.31) met aangepaste functiebibliotheek HID_Lib ondersteunend werken met USB HID apparaten. Het uiterlijk van het programmavenster wordt getoond in Fig. 3.

figuur 3

In dezelfde map met het uitvoerbare bestand, zou er een bestand moeten zijn met de naam UniUSB_KOfl.txt... Dit bestand bevat een script voor het aansturen van externe apparaten. Wanneer het programma start, worden de gegevens uit het bestand in de tabel in het hoofdvenster geladen en wanneer het programma is voltooid, worden ze in het bestand opgeslagen. Door met de linkermuisknop op de tabelcellen te klikken, kunt u hun status wijzigen: 1 - hoog logisch niveau, 0 of leeg - laag logisch niveau.

Om een ​​kolom van een tabel toe te voegen of te verwijderen, moet u er met de rechtermuisknop op klikken en de vereiste actie selecteren in het menu dat verschijnt. Wanneer een apparaat is aangesloten op een USB-poort, detecteert het programma het en activeert het de "Start"-knop bovenaan het venster op de werkbalk. Door op deze knop te drukken, wordt het proces van het opsommen van de kolommen van de tabel en het instellen van de statussen van de daarin aangegeven uitgangen gestart. Voor meer duidelijkheid zijn aan de linkerkant van de tabel het aantal uitgangen gemarkeerd waarop momenteel een hoog logisch niveau is ingesteld. De zoeksnelheid (tijd in milliseconden tussen overgangen van kolom naar kolom) wordt ingesteld in het veld "Snelheid, ms".

class = "eliadunit">

Overweeg het Windows-besturingssysteem - multitasking! Dit betekent dat de processortijd wordt verdeeld over vele processen, soms verborgen voor de gebruiker, die beurtelings worden uitgevoerd, rekening houdend met de prioriteiten die in het systeem zijn gesteld. Daarom mag men geen hoge nauwkeurigheid verwachten bij het houden van tijdsintervallen van minder dan 100 ms.

Gebruik de "Pauze"-knop om even te stoppen met itereren over de kolommen. Als u er nogmaals op drukt, wordt het zoeken voortgezet vanaf het punt waar het is gestopt. De knop "Stoppen" stopt volledig met het herhalen van de tabelkolommen. Als er tijdens de uitwisseling van informatie tussen de computer en het apparaat een storing optreedt of het apparaat wordt losgekoppeld van de USB-connector van de computer, zal het programma een fout melden door een bijbehorend bericht in de statusbalk weer te geven.

Bron: Radio nr. 2, 2011

Archief voor het artikel "Belastingsbeheer via USB-interface"
Beschrijving: Broncodes van programma's, microcontroller-firmwarebestand, uniUSB-programma
Bestandsgrootte: 89,3 KB Aantal downloads: 2 773