In veel realtime monitoringsystemen is het vaak nodig om gegevens te ontvangen van meet- en regelpunten op afstand. Deze bewakingsmodules moeten een oplossing vinden voor het betrouwbaar en snel ter plaatse verzamelen van gegevens, het op afstand verzenden van gegevens en het regelen van de uitvoer. In het streven naar een goedkoop modern ontwerp zijn veel krachtige en betrouwbare microcontrollers geproduceerd. Dit artikel is een data-acquisitie module ontworpen op basis van de C8051F021 microcontroller met complete functies en hoge kosten prestaties.
1. Hardwareontwerp van module
1.1 Algemene structuur van hardware
Het algemene blokschema van de hardwarestructuur van deze module is weergegeven in figuur 1.

Deze module gebruikt de C8051F021 microcontroller als de kern van de CPU-besturingseenheid en bevat ook meerdere functies zoals gegevensverwerving, gegevensopslag, datacommunicatie, foto-elektrische koppeling en uitschakelbeveiliging. Omdat C8051F021 relatief complete functies heeft, is de hele module bijzonder eenvoudig, wat niet alleen de grootte en het stroomverbruik van de module vermindert, veel bespaart op de kosten van randapparatuur, maar ook de betrouwbaarheid en stabiliteit van de module sterk verbetert.
1.2 Analoge acquisitie-eenheid
Deze module selecteert het ADC0 analoog/digitaal conversiekanaal van de C8051F021 als acquisitiekanaal voor analoge signalen. De temperatuur en vochtigheid van de werkomgeving kunnen bijvoorbeeld in real-time worden verzameld met temperatuur- en vochtigheidssensoren. Wanneer het ter plaatse verzamelde analoge signaal wordt verzonden naar het ADC0 ingangskanaal van de C8051F021, zal het onvermijdelijk worden verstoord door externe signalen. Om interferentie tegen te gaan en een hoge lineariteit van het verzamelde signaal te garanderen, is aan de ingang een hoge lineariteit optocoupler HCNR201 geselecteerd. Het analoge signaal wordt eenmaal geïsoleerd, zodat het bruikbare signaal nauwkeuriger wordt verkregen en de interferentiecomponent wordt verwijderd. Het schakelschema wordt getoond in Figuur 2. De operationele voorversterker LMV931 in de figuur vormt een negatieve terugkoppeling versterkercircuit om veranderingen in de stroom in de LED te onderdrukken; de operationele achterversterker LMV931 vormt een I/V conversie circuit. In de figuur is te zien dat VOUT /VAIN=KR30 /R28, dat wil zeggen dat de uitgangsspanning een lineair verband heeft met de ingangsspanning en niets te maken heeft met de intensiteit van het LED-uitgangslicht. Pas de spanningsversterking aan door de waarde van R30/R28 aan te passen. R29 is de stroombegrenzende weerstand van de LED en de twee condensatoren worden gebruikt om de hoogfrequente eigenschappen van de schakeling te verbeteren.

1.3 Schakelsignaalacquisitie-eenheid
De acquisitie-eenheid is geschikt voor het verzamelen van signalen met schakelwaarden, zoals het al dan niet onder spanning staan van het circuit, het al dan niet passeren van de waterstroom en andere schakelwaarden. Het circuit wordt getoond in Figuur 3. De acquisitie-eenheid is ontworpen voor een ingangsspanning van 220V AC. Ingesteld om geen respons te geven wanneer de ingang ongeveer minder dan de helft van de AC piekwaarde is. Om interferentie veroorzaakt door elektrische karakteristieken en ruwe werkomgeving te vermijden, wordt foto-elektrische koppeling gebruikt om primaire elektrische-naar-optische-naar-elektrische conversie van het signaal te bereiken. Voordat het signaal de optocoupler binnenkomt, wordt een deel van de piekpulsen gefilterd door de elektrolytische condensator. Tegelijkertijd vormt deze condensator een ontladingslus met de spanningsverdelende weerstand. Deze maatregelen schermen de interferentie tijdens de signaaloverdracht effectief af. Tegelijkertijd zijn er LED werkindicatoren geïnstalleerd, zodat gebruikers in één oogopslag de werkstatus van elk kanaal kunnen zien.

1.4 Uitgangsbesturingseenheid
Deze eenheid analyseert de verzamelde gegevens ter plaatse en vervolgens geeft het personeel van de hostcomputer of de microcontroller automatisch de besturingsuitgang volgens de vooraf ingestelde feedbackvoorwaarden om het solid-state relais JGX-1505FB met foto-elektrische isolatie te besturen en vervolgens de besturingsapparatuur ter plaatse aan te sturen. Tegelijkertijd zijn ook LED-werkindicatoren geïnstalleerd, die de werkstatus van elk kanaal duidelijk kunnen weergeven.
1.5 RS-485 communicatie-interface
Te oordelen naar de analyse van vele huidige oplossingen voor communicatie op middellange en lange afstand in microcontrollers, wordt de RS-485 bus communicatiemodus veel gebruikt vanwege de eenvoudige structuur, lage prijs, geschikte communicatieafstand en datatransmissiesnelheid. Daarom gebruikt deze module RS-485 communicatie en selecteert P0.0 en P0.1 van C8051F021 als de TX0 en RX0 van de seriële poort. Om de hardware-randapparatuur te beperken, wordt in het circuit de zelfgeïsoleerde RS-485 interfacechip IL485 gebruikt. Deze maakt gebruik van dubbele voedingen. Het uiteinde dat verbonden is met de microcontroller wordt gevoed door een 3,3 V voeding en het andere uiteinde wordt gevoed door een 5V voeding. Het DE enable einde van de RS485 interfacechip wordt bestuurd door P2.4 van de microcontroller op 0 of 1 te zetten, waardoor de overdracht van communicatiegegevens wordt bestuurd; het receive enable einde/RE wordt laag gehouden, dat wil zeggen dat wanneer de transmit enable ongeldig is, het altijd blijft ontvangen. Het specifieke circuit wordt getoond in figuur 4. Vergeleken met gewone RS-485 chips, kan het hoogspanningsblikseminslag voorkomen. Voor sommige locaties met relatief ruwe omgevingen kan het rechtstreeks worden aangesloten op de transmissielijn zonder extra beveiligingscomponenten.

2 module softwareontwerp
De modulesoftware is geschreven in assembleertaal en bestaat voornamelijk uit de hoofdprogrammamodule, gegevensverwerving en verwerkingsmodule, communicatiemodule, module voor gegevensuitvoercontrole, enz. De taken van het hoofdprogramma omvatten initialisatie van elk programmeerbaar apparaat, stack, verschillende parameters, enz. Nadat de initialisatie is voltooid, wordt de interrupt onmiddellijk geopend, wordt de bron van de interrupt bepaald en wordt de bijbehorende servicemodule (zoals gegevensverzameling, gegevens verzenden en ontvangen, enz. Nadat de service is voltooid, keert het systeem terug naar de opgegeven invoer in het hoofdprogramma en wacht het op de volgende cyclus. De chronometer werkt meestal ter plaatse. Aangezien de werkomgeving op locatie meestal ruw is en er veel interferentie is door verschillende apparatuur, zijn er bepaalde fouten in de verzamelde gegevens. Naast het versterken van de anti-interferentiemaatregelen op de hardware, zijn er ook overeenkomstige maatregelen genomen in het softwareontwerp. Door de manieren en oorzaken van fouten te analyseren, worden de fouten in de verzamelde gegevens ingedeeld in grove fouten, systematische fouten en willekeurige fouten, en worden overeenkomstige verwerkingsstrategieën aangenomen op basis van de kenmerken van deze drie soorten fouten: Eerst wordt de-extreme middeling gefilterd om grove fouten te elimineren. De impact van fouten en willekeurige fouten, ten tweede, rekening houden met de impact van systematische fouten veroorzaakt door sensoren en andere componenten op de verzamelde gegevens, en vormen een tabel op basis van de correctiewaarden verkregen uit het systeem fouten, en elimineren van de systematische fouten in de gegevens door het opzoeken van de tabel. Om de betrouwbaarheid en stabiliteit van de module te waarborgen, worden bovendien andere softwarefuncties toegevoegd, zoals uitschakelbeveiliging en systeemreset.
3 module schaalbaarheid en toepassingen
Dit artikel ontwerpt een data-acquisitiemodule met 4 analoge ingangen zoals sensoren, 4 schakelingangen met foto-elektrische isolatie en relaisuitgang. Deze module kiest de C8051F021 als kernbesturingseenheid van de CPU. C8051F021 heeft 64 pinnen. In dit ontwerp zijn sommige pinnen reserve. Deze reservepinnen kunnen worden gebruikt om andere functies uit te breiden, afhankelijk van de werkelijke behoeften. Een typische toepassing van deze module is in het regelsysteem voor druppelirrigatie. De bodemvochtigheid wordt verzameld door de sensor en vergeleken met de ondergrenswaarde van druppelirrigatie om het bevel te krijgen om al dan niet water te geven. Als het een watergeefcommando is, wordt het watergeefcommando uitgevoerd en wordt de elektromagnetische klep van de watertoevoer via het relais aangestuurd. Tegelijkertijd verzamelen de 4-wegschakelaars informatie over de watertoevoer om terug te koppelen of de besproeiing goed verloopt. Tegelijkertijd verzamelt de bodemvochtigheidssensor het vochtgehalte van de bodem in realtime. Als het vochtgehalte de bovengrens van druppelirrigatie overschrijdt, wordt de outputregelopdracht om het magneetventiel te sluiten uitgevoerd. Zoals weergegeven in het blokschema van Afbeelding 5.
