Seriële communicatie tussen industriële computer en single-chip master-slave gedistribueerd besturingssysteem

Jan 05, 2022

Laat een bericht achter

Hardware-interfaceontwerp Het besturingssysteem dat in dit document wordt beschreven, bestaat uit een industriële computer en meerdere AT89C2051-computers met één-chip. Gegevensoverdracht tussen master en slave maakt gebruik van asynchrone seriële communicatie. Aangezien de seriële communicatiepoort van de industriële computer een RS-232C-interface is, is het logische niveau symmetrisch ten opzichte van de grond, wat verschilt van het TTL-niveau dat wordt uitgevoerd door de seriële poort van de AT89C2051 microcomputer met één chip. Daarom is het noodzakelijk om te zorgen voor een betrouwbare gegevensoverdracht tussen beide. Op de communicatielijn moet een niveauomvormer worden aangesloten. Common level converter-chips omvatten ICL232- en MAX232-chips. Deze tekst maakt gebruik van de MAX232-niveauconversiechip.

Meerdere enkele{{0}}chip computer communicatie circuit 2 software ontwerp 2.1 AT89C2051 enkele-chip computer meerdere-computer communicatie functie AT89C2051 enkele-chip microcomputer seriële poort heeft: seriële verzendbuffer/ontvangstbuffer (SBUF), seriële poortcontroleregister (SCON), speciale functieregister (PCON). Er zijn 4 werkmodi door SCON in te stellen, waaronder werkmodi 2 en 3 geschikt zijn voor multi-computercommunicatie. De seriële communicatiemodus 3 van de AT89C2051 single-chip microcomputer is een 9-bit data asynchrone communicatiemodus met een variabele baudrate, en is momenteel ook de meest gebruikte modus in multi-computer communicatie . Hier verzendt de AT89C2051 een informatieframe met in totaal 11 bits: 1 startbit, 8 databits, 1 bit kan worden geprogrammeerd als de 9e bit van "1" of "0" en 1 stopbit, waaronder de negende bit van gegevens kan worden gebruikt als een pariteitsbit en kan ook worden gebruikt als een identificatievlag voor "adresframe" en "dataframe".

Industriële computercommunicatiefunctie De industriële computer is uitgerust met een seriële asynchrone communicatiepoort (COM1-poortadres is 3f8H, CM2-poortadres is 2f8H), en de universele asynchrone ontvanger/zender (UART) op de interfacekaart is een stuk 8250 of een stuk structuur, programmeermethode Zelfde chip als 8250 met 10 registers erin. Programmering van seriële pc-communicatie, programmeurs hoeven alleen invoer- / uitvoeropdrachten te gebruiken om de registers in de UART in / uit te voeren, om de seriële communicatiebaudrate, het gegevensoverdrachtformaat in te stellen, of onderbrekingen toe te staan, gegevens te verzenden of te ontvangen. Wacht.

Een nieuwe multi-machine communicatiemethode In de conventionele multi-machine communicatiemethode is de pariteitsbit gebruikt als de karakteristieke bit van de verzendende adrescode (kanaalnummer) of data, en de controle van de datacommunicatie keurt de accumulatie en controlemethode goed. Het gebruik van deze methode verhoogt niet alleen de software-overhead en de hoeveelheid data voor communicatie, maar beïnvloedt ook de real-time prestaties. 2.3.1 Basisprincipes van communicatie

De data is 5 2 - direct ingesteld op "0", en make plus , clear, en wat de waarde van de negende bit data (plus 9 8) ook is, de lagere computer kan genereren seriële ontvangstonderbreking, dus de negende bit kan ook worden gebruikt als pariteitsbit voor foutdetectie. Wanneer de bovenste computer bijvoorbeeld communiceert met een lagere computer, wordt eerst de adrescode verzonden en vervolgens de gegevensopdracht nadat de handdruk is geslaagd. Op dit moment is de VLAG van de onderste computer ingesteld op "1", wat overeenkomt met de "pocket" van de machine die is geopend. De computer haalt continu gegevens op van de computer op de lagere -positie en geeft een commando om de FLAG in de computer op de lagere positie te herstellen naar "0" na het zonder fouten ophalen om "het sluiten van de zak" te realiseren.

Wanneer de onderste computer gegevens naar de bovenste computer verzendt, verzendt deze eerst de lengte van de te verzenden gegevens en begint dan geldige gegevens te verzenden.

Er wordt overeengekomen dat {{0}}H het ophaalcommando is, 0FFH het reset-commando is, de communicatie een even pariteit aanneemt en de baudrate is ingesteld op 240{ {9}}b/s. Het stroomschema van de hoofdfunctie van de pc is hierboven weergegeven, zoals weergegeven. Het pc-communicatieprogramma is geschreven in de taal VC plus plus 6.0. De communicatiemodule van de onderste enkelvoudige-chipmicrocomputer omvat het hoofdprogramma en het onderbrekingsserviceprogramma, en het programmastroomschema wordt getoond in respectievelijk en. Hoe realiseer je de één-op-één communicatie tussen de bovenste computer en de onderste computer met het bijbehorende verzendadres? Software methode kan worden gebruikt. De specifieke methode is als volgt: een vlagvariabele FLAG wordt ingesteld in het lagere computerprogramma en FLAG wordt tijdens de initialisatie op "0" gezet. Wanneer de bovenste computer gegevens verzendt, genereert elke onderste computer een ontvangende onderbreking, en de routine van de onderbrekingsservice beoordeelt eerst de waarde van de lokale FLAG. . Als FLAG "0" is, vergelijkt u de ontvangen gegevens met het lokale adres, als het consistent is, stelt u FLAG in op 6", en stuurt u de lokale adrescode terug als antwoord, anders springt u onmiddellijk uit de interruptserviceroutine; als FLAG is "1", wat aangeeft dat het besturingscommando dat door de bovenste computer is verzonden, wordt overgebracht naar het overeenkomstige programma voor het verwerken van commando's en uiteindelijk uit de interruptservice-routine springt en terugkeert naar het hoofdprogramma. Na de communicatie tussen de bovenste computer en de onderste computer is voltooid, wordt de VLAG van de onderste computer ingesteld op "0". Als de handshake mislukt, stuurt de bovenste computer een resetopdracht naar de onderste computer en start de handshake opnieuw, als het drie keer mislukt, zal het draaien tot foutverwerking.

Implementatiemethode en betrouwbaarheidsmaatregelen van industriële computersoftware ① Nummer elke lagere computer en gebruik deze als de adrescode van de computer.

Conclusie Dit artikel schetst slechts één methode van seriële interface van gedistribueerd besturingssysteem, maar er zijn veel communicatie-interfacemethoden tussen elke machine, zoals: directe verbinding van seriële poort (wanneer de afstand kort is), verbinding via modem, enz. In termen van softwareprogrammering is de slave-machine rechtstreeks geschreven in de assembleertaal van de enkele-chip-microcomputer; en de communicatie-subroutinemodule van de industriële computer kan ook in verschillende talen worden geïmplementeerd. Daarom kan in het specifieke systeemontwerp een van de methoden worden geselecteerd op basis van de werkelijke situatie, en de foutdetectie- en foutcorrectietechnologie kan in de programmering worden overwogen en betrouwbare communicatie kan worden voltooid.

Aanvraag sturen