Apparaten beheren met behulp van een computer. UniCOM - apparaatbeheer via COM-poort van de computer

Computerbesturingsapparaat
verschillende apparaten, waarvan het diagram wordt getoond in Fig. 1, functioneel vergelijkbaar
beschreven in, maar wordt aangesloten op de USB-poort van een computer, die (in tegenstelling tot
vanaf de COM-poort) is tegenwoordig in elk van hen aanwezig. De enige chip van het apparaat
- een gemeenschappelijke microcontroller ATmega8. Het is noodzakelijk voor de organisatie
USB-buscommunicatie. Hoewel het gespecialiseerde hardware mist
module, deze functie wordt softwarematig uitgevoerd. Weerstand R1 aangesloten tussen
positieve aansluiting van de voeding en de USB D-bus-lijn, brengt deze over naar lage snelheid
LS-modus met een wisselkoers van 1,5 Mbit/s, waarmee u pakketten kunt decoderen
computer programmatisch. Weerstanden R4 en R5 elimineren transiënten
processen die ontstaan ​​tijdens de uitwisseling van informatie, waardoor de stabiliteit van het werk toeneemt.
Condensator C1 blokkeert impulsruis in het stroomcircuit, wat ook verbetert
stabiliteit van het apparaat. Diodes VD1 en VD2 worden gebruikt om de spanning te verlagen
voed de microcontroller op ongeveer 3,6 V - hiervoor is nodig
niveau dat overeenkomt met de USB-bus. Er worden apparaatbesturingssignalen gegenereerd
uitgangen РВ0-РВ5 en PC0, PC1 van de microcontroller. Hoog logisch niveau -
spanning is ongeveer 3,4 V. Laagspanning is bijna nul. Naar de uitgangen
U kunt apparaten aansluiten die een stroom verbruiken van maximaal 10 mA (van elke uitgang).
Als grote stroom- of spanningswaarden vereist zijn, moeten knooppunten worden gebruikt
overeenkomsten getoond in Fig. 5 en 6.

Het apparaat is gemonteerd op broodplank,
er is geen gedrukte versie ontwikkeld. Er worden MLT-weerstanden, condensatoren C2 en C3 gebruikt -
keramische hoge frequentie, C1 - K50-35 of vergelijkbaar geïmporteerd. Dioden
silicium met een spanningsval over de kruising van ongeveer 0,7 V. Programma voor een microcontroller
ontwikkeld in de Bascom-AVR-omgeving versie 1.12.0.0. Voor USB-busbediening
Er wordt gebruik gemaakt van de swusb.LBX-bibliotheek, die softwarematige signaaldecodering uitvoert
USB in realtime. De resulterende programmacode
uit een bestand met de HEX-extensie moet in het FLASH-geheugen van de microcontroller worden geladen.
Hiervoor werd de programmeur gebruikt in combinatie met de ingebouwde Bascom-AVR
nutsvoorziening. De status van de configuratiebits van de microcontroller moet overeenkomen
getoond in afb. 2. Wanneer u het apparaat voor de eerste keer op de computer aansluit, wordt het besturingssysteem weergegeven
het systeem zal de nieuwe USB HID detecteren compatibel apparaat met naam
“uniUSB” en installeer noodzakelijke chauffeurs. Binnen een paar seconden
Het apparaat is geconfigureerd en klaar voor gebruik.

Er is een programma gemaakt om ermee te werken
UniUSB. Het wordt gepresenteerd in twee versies: voor 32-bit (x86) en 64-bit
(x64) besturingssystemen Windows-familie. Er is geverifieerd dat de 32-bits versie werkt
in operatiekamers Windows-systemen 98, Windows XP, Windows 7 en 64-bit -
alleen op Windows XP x64. Het UniUSB-programma is geschreven in PureBasic-taal (versie
4.31) met behulp van de HID_lib-bibliotheek met door de gebruiker gedefinieerde functies,
ondersteunt het werken met USB HID-apparaten. Verschijning van het programmavenster
getoond in afb. 3. In dezelfde map als zij uitvoerbaar bestand moet zijn
een bestand met de naam UniUSB_Code.txt of UniCOM_Code.txt. De laatste optie is vereist
voor compatibiliteit met het UniCOM-programma voorgesteld in . In dit bestand
Het script voor het besturen van externe apparaten wordt opgeslagen. Wanneer het programma start, worden de data
uit het bestand worden na voltooiing in de tabel in het hoofdvenster geladen
werken worden opgeslagen in een bestand. Door met de linkermuisknop op tabelcellen te klikken, kunt u dit doen
verander hun status: 1 - hoog logisch niveau, 0 of leeg - laag
logisch niveau. Als u een tabelkolom wilt toevoegen of verwijderen, moet u deze gebruiken
klik klik met de rechtermuisknop muis en selecteer de gewenste actie in het menu dat verschijnt.

Bij het aansluiten van een apparaat op een USB-poort
het programma zal het detecteren en de knop bovenaan activeren
vensters op de werkbalk. Als u op deze knop klikt, wordt het proces gestart
het doorzoeken van de tabelkolommen en het instellen van de daarin aangegeven uitvoerstatussen. Voor
Voor meer duidelijkheid zijn de uitvoernummers links van de tabel gemarkeerd op
die momenteel op een hoog logisch niveau zijn ingesteld. Snelheid
zoeken (tijd in milliseconden tussen overgangen van kolom naar kolom) is ingesteld
in het veld "Snelheid, ms".

Houd er rekening mee dat het besturingssysteem Windows is
- multitasken! Dit betekent dat de CPU-tijd onder velen wordt verdeeld
soms verborgen voor de gebruikersprocessen die op hun beurt worden uitgevoerd
rekening houdend met de prioriteiten die in het systeem zijn vastgelegd. Verwacht dus niet veel
nauwkeurigheid van het handhaven van tijdsintervallen van minder dan 100 ms. Voor korte termijn
Om het itereren door kolommen te stoppen, gebruikt u de knop Klik er nogmaals op
zal doorgaan met zoeken vanaf het punt waar het gestopt was. De knop stopt volledig met het sorteren van kolommen
tafels. Als tijdens de uitwisseling van informatie tussen de computer en het apparaat
er een storing optreedt of het apparaat wordt losgekoppeld van de USB-aansluiting van de computer,
het programma rapporteert een fout door de bijbehorende fout weer te geven
bericht.

LITERATUUR

1. Nosov T. Controle van apparaten
via de COM-poort van de computer. - Radio, 2007, nr. 11,0,61,62.

2. Ryzhkov A. Amerikaanse programmeur
AVR- en AT89S-microcontrollers, compatibel met AVR910. - Radio, 2008, nr. 7, p.
28, 29.

Van de redacteur. Programma's voor de microcontroller en computer bevinden zich
op onze FTP-server op ftp://ftp.radio.ru/pub/2011/02/uniUSB.zip

De auteur heeft een programma en apparaat ontwikkeld voor het besturen van verschillende elektrische en radioapparaten met behulp van een computer. Het apparaat is aangesloten op een van de COM-poorten en de apparaten kunnen worden bediend met zowel schermtoetsen als externe sensoren.

Het apparaatdiagram wordt weergegeven in Afb.1. De basis is de 74HC595-chip, een 8-bits schuifregister met seriële ingang en seriële en parallelle informatie-uitgangen. Parallelle uitvoer wordt uitgevoerd via een bufferregister met uitgangen die drie statussen hebben. Het informatiesignaal wordt geleverd aan de SER-ingang (pin 14), het schrijfsignaal aan de SCK-ingang (pin 11) en het uitgangssignaal aan de RSK-ingang (pin 12). De DA1-chip bevat een 5 V-spanningsregelaar om het DD1-register van stroom te voorzien.

Figuur 1. Apparaatdiagram

Het apparaat wordt aangesloten op een van de COM-poorten van de computer. Informatiesignalen worden naar pin 7 van de XS1-aansluiting gestuurd, informatie-opnamesignalen worden naar pin 4 gestuurd en informatie-uitvoersignalen worden naar pin 3 gestuurd. COM-poortsignalen hebben volgens de RS-232-standaard niveaus van ongeveer -12 V (log .1) en ongeveer +12 V (log.0). Deze niveaus zijn gekoppeld aan de ingangsniveaus van register DD1 met behulp van weerstanden R2, R3, R5 en zenerdiodes VD1-VD3 met een stabilisatiespanning van 5,1 V.

Aan de uitgangen Q0-Q7 van register DD1 worden stuursignalen voor externe apparaten gegenereerd. Het hoge niveau is gelijk aan de voedingsspanning van de microschakeling (ongeveer 5 V), het lage niveau is minder dan 0,4 V. Deze signalen zijn statisch en worden bijgewerkt wanneer een hoog niveau arriveert op de RSK-ingang (pin 12) van de DD1 register. LED's HL1-HL8 zijn ontworpen om de werking van het apparaat te controleren.

Het apparaat wordt bestuurd met behulp van het door de auteur ontwikkelde UmiCOM-programma. Verschijning het hoofdprogrammavenster wordt weergegeven Afb.2.

Figuur 2. Uiterlijk van het UniCOM-programma

Nadat u het hebt gestart, moet u een vrije COM-poort en uitgangsschakelsnelheid selecteren. De status van elk van de apparaatuitgangen wordt in de tabelrijen ingevoerd (hoog niveau - 1, laag niveau - 0 of leeg). Het programma dat tijdens de bedieningscyclus door de tabelkolommen “sorteert”, stelt de overeenkomstige logische niveaus aan de apparaatuitgangen in. De in de tabel ingevoerde informatie wordt automatisch opgeslagen wanneer het programma wordt beëindigd en de volgende keer dat het wordt gestart opnieuw geladen. Voor de duidelijkheid: aan de linkerkant van het programmavenster staan ​​de aantallen uitgangen waarop de hoog niveau.

Apparaten kunnen ook worden bestuurd met behulp van externe contactsensoren, die zijn aangesloten op ingangen 1-3 en de +5 V-lijn. Ze moeten werken om contacten te sluiten of te openen. Een voorbeeld van een sensoraansluitschema vindt u in Afb.3.

Figuur 3. Contactsensoren aansluiten

Wanneer u op de softkey "Ingangsinstellingen" drukt, wordt het venster "Ingangs- en uitgangstoewijzing" geopend ( Afb.4.), waar ingangen worden geselecteerd die de status van de uitgangen zullen veranderen. U kunt de werking van ingangen simuleren door op te klikken softtoetsen"1", "2", "3" van het hoofdprogrammavenster. In gevallen waarin apparaten niet kunnen worden bediend met behulp van logische niveaus moet u een relais gebruiken, waarvan het aansluitschema is weergegeven in Afb.5, of transistor-optocoupler ( Afb.6.).

Figuur 4. Matching van invoer en uitvoer

Figuur 5. Aansluitschema relais

Figuur 6. Aansluitschema transistor-optocoupler

De meeste onderdelen zijn gemonteerd printplaat gemaakt van eenzijdig folieglasvezellaminaat met een dikte van 1...1,5 mm, waarvan de tekening is weergegeven in Afb.7. Weerstanden R1-R6 zijn gemonteerd op de klemmen van socket XS1.

Figuur 7. PCB-tekening

Het apparaat maakt gebruik van weerstanden C2-23. MLT, oxidecondensatoren - K50-35 of geïmporteerd, XS1-aansluiting - DB9F. Naast de zenerdiodes die in het diagram worden aangegeven, kunt u BZX55C5V1 of binnenlandse KS174A, alle LED's, gebruiken. Het apparaat wordt gevoed door een gestabiliseerde of ongestabiliseerde stroombron met een spanning van 12 V en een stroomsterkte tot 100 mA.

Schakelsnelheid

Een COM-poort selecteren

Start- en pauzeknop

(poort inschakelen)

Stop-knop

(poort uitschakelen)

Knop voor uitgangsinstelling

Handmatige knoppen

stuuringangen (1, 2, 3)

Knop voor het wissen van tabellen

Help-knop

Afsluitknop

Indicatoren die simuleren

uitvoerbewerking

Tabelraster met waarden

(lege cellen
gelijk aan nul)

Voor lastregeling in circuits met constante spanning, bijvoorbeeld 24V, je kunt alle krachtige composiettransistors gebruiken - in ons geval KT829.

Voor schakelen AC 220V is het gemakkelijkst te gebruiken met de zogenaamde halfgeleider AC-schakelaar, die een optodriver heeft met een fase-nuldetector aan de ingang, die voor galvanische isolatie zorgt.

Om de schakelstroom te verhogen wordt een triac op een radiator gemonteerd. Houd er rekening mee dat in het hoogspanningsgedeelte weerstanden met een vermogen van 0,5 W worden gebruikt.

Vergeet het niet veiligheidsmaatregelen - Terwijl de switch in werking is, mag u geen blootliggende elementen aanraken, en wanneer u onderdelen en draden opnieuw soldeert, koppelt u de switch los van het netwerk.

Het bord is gemaakt van eenzijdige folieprintplaat. Bordformaat 30x25mm. Een jumper is op het bord onder de behuizing van de microschakeling gesoldeerd. Om de microschakeling tijdens het solderen tegen oververhitting te beschermen, wordt een 16-pins paneel voor de microschakeling gebruikt.

Om de uitgangen (LED's) aan te sturen, hoeft het apparaat alleen maar met een 4-aderige kabel op een pc te worden aangesloten. Het snoer is gesoldeerd aan een standaardconnector op de COM-poort - een DB9-socket.

Het +5V-signaal voor de gemeenschappelijke draad van de digitale ingangen wordt uit het apparaatcircuit gehaald. Weerstanden in de digitale ingangslijnen kunnen in de DB9-busbehuizing worden gesoldeerd.

Op digitale ingangen kunt u knoppen, tuimelschakelaars en microschakelaars aansluiten.

Achtergrondinformatie

De basis van het apparaat is de beschikbare 74hc595-chip, een serieel schuifregister met uitgangsvergrendeling. Om deze microschakeling te besturen zijn drie signaallijnen voldoende. In ons geval worden de signalen in het UniCOM-besturingsprogramma geïnitieerd en via de RS-232-interface (COM-poort) uitgegeven. In deze interface worden de lijnen van een 9-pins connector gebruikt als signaallijnen: RTS - 7-pins, DTR - 4-pins en TxD - 3-pins.

Het werkingsprincipe van de 74hc595-microschakeling is het opeenvolgend registreren van logische signalen van hoog en laag niveau die worden geleverd aan de DS-ingang (14-pins). De registratie vindt plaats door de dalende flank (overgang van logisch 1 naar logisch 0) aan de SH_CP-ingang (pin 11). De uitvoer van de geregistreerde gegevens vindt ook plaats met een dalende flank, maar dan bij de ST_CP-ingang (12e been). Zo verschijnen de niveaus van de laatste acht opgenomen signalen op pinnen 1-7 en 15.

Een hoog signaalniveau aan de uitgangen (pinnen 1-7 en 15) komt overeen met de voedingsspanning van de microschakeling - in ons geval +5 volt, en laag niveau komt overeen met 0 Volt. De uitgangssignalen zijn statisch, d.w.z. ongewijzigd totdat de volgende puls arriveert bij de ST_CP-ingang (12e etappe). Opgemerkt moet worden dat het verlagen van de voedingsspanning tot onder het minimumniveau leidt tot een reset van de uitgangssignalen. Volgens de documentatie voor de chip, minimale spanning voeding is 2 volt.

De RS-232-interface is gekoppeld aan de 74hc595-microschakeling met behulp van 5,1 V zenerdiodes. Volgens de specificatie voor RS-232 ligt het hoge signaalniveau in het bereik van +3 tot +25V, waardoor we feedback met UniCOM-besturingsprogramma.

13-01-2014

ATiny2313

Zakharov Denis, Oekraïne

Zoals u weet zijn er voldoende interfaces waarmee een microcontroller (MCU) kan communiceren externe apparaten. Als u de MK wilt verbinden met persoonlijke computer of laptop, dan kunnen we vol vertrouwen zeggen dat het het beste is om de RS-232 COM-poortinterface te gebruiken.

De reden voor deze keuze ligt voor de hand: bijna alle controllers hebben UART-hardwaremodules, waarmee je informatie kunt overbrengen met minimaal verbruik van MK-bronnen. Bovendien zijn er veel beproefde programma's die zijn ontworpen om met de COM-poort te werken. Omdat MK-signalen TTL-niveaus hebben, is een niveau-omzetter vereist die past bij de RS-232-interface. Het wordt vaak uitgevoerd met behulp van de betaalbare en populaire MAX232-chip.

Figuur 1.

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

Het apparaat bestaat uit vrij toegankelijke en gemeenschappelijke elementen. Beide microcircuits zijn microcontrollers uit de ATtiny2313-familie. De eerste controller wordt aangesloten op de USB-poort van de computer en dient als USB-COM-formaatconverter. De tweede maakt verbinding met de eerste en scant voortdurend opdrachten die vanaf de pc worden verzonden via het terminalprogramma Terminal v1.9b.

Weerstand R4 aangesloten op USB pin 2 schakelt het apparaat naar de low-speed LS-modus, waarmee u berichten van een pc kunt decoderen wanneer u gegevens uitwisselt 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-blokken impuls geluid in het stroomcircuit. Zenerdiodes D1 en D2 zijn nodig om te passen bij de logische niveaus van de MK en USB-ingang PC. Voor een foutloze gegevensoverdracht tussen controllers moeten de frequenties van de kwartsresonatoren 12 en 4 MHz zijn.
Op de /RESET-pinnen moeten pull-up-weerstanden worden aangesloten om vervolgens een willekeurige reset van de MC vanwege de invloed van interferentie en statische spanning. In dit diagram worden alle opdrachten weergegeven op LED's die zijn aangesloten op poort B. Om apparaten te bedienen, moet u de controlleruitgangen aansluiten op een relais (Afbeelding 2).

Je kunt het apparaat op een breadboard monteren, hoewel het toch beter is op een volwaardige printplaat. De elementen kunnen bijvoorbeeld worden geplaatst zoals weergegeven in figuur 3.

Het programma voor de U1-microcontroller is ontwikkeld door een vriend van GetChiper in de Bascom-AVR-omgeving. Om met de USB-bus te werken, wordt een bibliotheek gebruikt swusb.LBX. Met zijn hulp wordt softwaredecodering van het USB-protocol in realtime uitgevoerd. Om het apparaat met een pc te laten werken, moet u de juiste stuurprogramma's installeren door deze te kopiëren harde schijf. Wanneer u voor de eerste keer verbinding maakt, wordt het apparaat herkend en wordt om een ​​stuurprogramma gevraagd. Vervolgens moet u het pad naar de map met de bestanden opgeven, en alles zal werken.

Het U2-microcontrollerprogramma is door mij geschreven in de AVRStudio-omgeving in assembleertaal. Het blokdiagram van het MC-bewerkingsalgoritme wordt weergegeven in Figuur 4. Hardwaremodule De UART moet worden geconfigureerd om te onderbreken wanneer het ontvangen van gegevens is voltooid. De MK zelf zal geen enkele functie uitvoeren totdat er een onderbreking optreedt. Om het energieverbruik te verminderen kunt u gebruik maken van slaapmodus, maar bij dit ontwerp was dit niet nodig. Zodra opdrachten vanaf de pc-terminal worden verzonden, begint de MK deze onmiddellijk te scannen. Op op dit moment controller ondersteunt het volgende systeem commando's:

-aan1, aan2, aan3, aan4, aan5, aan6, aan7, aan8- opdrachten voor het instellen van poorten op “log. 1";
-uit1, uit2, uit3, uit4, uit5, uit6, uit7, uit8- opdrachten voor het instellen van poorten op “log. 0";
-ser - stel alle poorten in op de actieve “log”-status. 1";
-clr- reset alle poorten naar de status "log.0".

Nadat u elke opdracht hebt ingevoerd, moet u op Enter drukken. Op deze manier kan de MK het einde van de opdracht bepalen en beginnen met scannen. De controller zal op elk correct commando “ok” reageren. Als u onjuiste gegevens invoert, wordt er “error” teruggestuurd naar de terminalregel. Een voorbeeld van de uitvoering van de opdracht wordt getoond in Figuur 5.

Firmwareversie 1.0. Het is noodzakelijk om de zekeringen in te stellen in overeenstemming met figuur 6. De volgende versie van de firmware wordt ontwikkeld, waarbij de MK de commandosystemen in de terminal zelf zal leren en wijzigen.

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

Om commentaar te geven op materiaal van de site en te ontvangen volledige toegang naar ons forum dat je nodig hebt register .

  • ....eigenlijk zou ik graag de verbinding willen zien tussen de USB-poort van de ene computer en de COM-poort van een tweede...of LPT-poort van een derde...
  • Bedankt! Typefout opgelost :)
  • Waarom 2MK gebruiken? Heeft Attiny2313 echt weinig flits? Of zijn er simpelweg niet genoeg I/O-poorten? Oké, je kunt zien dat USB op INT0/INT1 blijft hangen.
  • De weerstand van relaisspoelen met laag vermogen is ongeveer 100-200 Ohm, waarbij de verzadigde transistor niet in aanmerking wordt genomen (dit is geen starter of contactor). Dus 50-200 mA geschikte sleutel zal niet bang zijn. Het materiaal is erg interessant in termen van het aansluiten van de MK op USB zonder enige interfacechips en zonder de aanwezigheid van de MK in de structuur USB-hardware. Maar rekening houdend met de doelen en doelstellingen van de oorspronkelijke bron http://www.recursion.jp/avrcdc/cdc-232.html, van de twee MK's, vervult men nog steeds de functies van een USB-COM-converter. En een hele goedkope converter, wat zeker prettig is.
  • Hier is een interessante burger die betrapt werd op ‘nobele gewoonten’, te oordelen naar zijn bijnaam. Over welke uitersten hebben we het? Het lijkt erop dat het materiaal niet eens het type relais of transistors vermeldt. En als het relais wordt gevoed via 5V USB, wil ik natuurlijk het verbruik van de host op de pc minimaliseren. Dit kan worden bereikt met optocouplers en extra voedsel relais aan de belastingzijde, wat het circuit ingewikkelder maakt. Of nog een paar opties. Ligt de nadruk in het artikel op optimalisatie? De auteur heeft zijn doel bereikt en doet het juiste door niet te posten specifieke vergoeding. Voor degene die zal herhalen, is dit knooppunt voldoende.
  • Ja, het artikel is nog steeds hetzelfde... maar is het het waard? Ik wilde ook ergens commentaar op geven zodra ik het las, inclusief de diode. Maar je kunt hier niet anoniem zijn. Daarom de auteur van AVR-CDC? Het is mij niet opgevallen dat er ergens in het circuit DTR-, DTS-, RTS-, CTS-signalen worden gebruikt. V-USB niet genoeg? We hebben hierboven al over twee “stenen” geschreven; één zou voldoende zijn. En over de diode is al gecorrigeerd, dank Boeddha! De 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 Radio magazine, maar was ook op internet te vinden, als je geïnteresseerd bent kun je er gerust een kijkje nemen.