Ingångsenheter i inbäddade system kräver noggrann gränssnitt för att säkerställa tillförlitlig och effektiv datainsamling. Den specifika metoden beror starkt på typen av ingångsenhet och kapaciteten för det inbäddade systemets mikrokontroller eller processor. Här är en uppdelning av vanliga tillvägagångssätt:
1. Digitala ingångsenheter:
* enkla switchar (knappar, doppomkopplare): Dessa är de enklaste. En enda GPIO -stift (General Purpose Input/Output) på mikrokontrollern är ansluten till omkopplaren. När omkopplaren är stängd läser stiftet en låg logiknivå (vanligtvis 0V), och när den är öppen läser den högt (vanligtvis VCC, mikrokontrollerns matningsspänning). Pull-up eller pull-down-motstånd är avgörande för att säkerställa ett definierat tillstånd när omkopplaren är öppen eller stängd. Debouncing -tekniker (mjukvara eller hårdvara) är viktiga för att undvika falska avläsningar på grund av växelstopp.
* kodare (roterande, inkrementell, absolut): Dessa ger positionsinformation. Inkrementella kodare använder två eller flera signaler för att bestämma riktning och antal steg. Absolutkodare ger en direkt digital representation av positionen. Mikrokontroller läser vanligtvis dessa signaler med GPIO -stift och dedikerade mot-/timer -kringutrustning för korrekt räkning och hastighetsmätning. Kvadraturavkodning är vanligt för inkrementella kodare.
* digitala sensorer: Många sensorer (t.ex. digitala temperatursensorer, digitala trycksensorer) matar ut en digital signal (t.ex. I2C, SPI eller UART) som lätt läses av mikrokontrollern med hjälp av dess motsvarande kommunikationsutbildning.
2. Analoga ingångsenheter:
* analoga sensorer (temperatur, tryck, ljus osv.): Dessa ger en analog spänning proportionell mot den uppmätta mängden. En ADC (analog-till-digital omvandlare) behövs för att konvertera denna analoga spänning till ett digitalt värde som mikrokontrollern kan förstå. ADC:s upplösning (antal bitar) bestämmer omvandlingens noggrannhet. Noggrant övervägande måste tas till ADC:s ingångsområde och sensorns utgångsområde för att undvika att överskrida ADC:s gränser.
* potentiometrar: Dessa variabla motstånd ger en analog spänning som är proportionell mot deras position. De är kopplade till en ADC som liknar analoga sensorer.
3. Kommunikationsgränssnitt:
Många inmatningsenheter ansluter med standardkommunikationsprotokoll:
* i2c (interintegrerad krets): En tvåtrådsseriebuss som vanligtvis används för sensorer och andra kringutrustning. Mikrokontrollern behöver en I2C -perifer för att kommunicera med I2C -enheter.
* spi (seriellt perifert gränssnitt): En fyra-ledare (eller mer) seriebuss som erbjuder högre hastighet än I2C. I likhet med I2C kräver mikrokontrollern en SPI -perifera.
* uart (universell asynkron mottagare/sändare): Ett vanligt seriekommunikationsgränssnitt, som ofta används för kommunikation med externa enheter som GPS -moduler eller tangentbord.
* USB (Universal Serial Bus): Mer komplex att implementera i inbäddade system, men ger hög bandbredd och ett standardiserat gränssnitt. Kräver dedikerade USB -styrenheter och involverar ofta mer programvara.
* Can (Controller Area Network): Används i bil- och industriella applikationer, som kräver dedikerade CAN -styrenheter för robust kommunikation.
gränssnittsöverväganden:
* nivåskiftning: Om spänningsnivåerna för ingångsenheten och mikrokontrollern är olika (t.ex. 3.3V -enhet och 5V mikrokontroller) är nivåskiftare nödvändiga för att undvika att skada komponenterna.
* Signalkonditionering: Analoga signaler kräver ofta konditionering (t.ex. filtrering, amplifiering) innan de matas till ADC för att förbättra noggrannheten och minska bruset.
* Strömförsörjning: Se till att ingången får rätt spänning och ström.
* Programvarudrivrutiner: Lämpliga mjukvarudrivrutiner behövs för att läsa och bearbeta data från inmatningsenheterna.
* Realtidsbegränsningar: För tidskritiska applikationer är noggrann övervägande av avbrottshantering och timing avgörande för att säkerställa snabb datainsamling.
Att välja rätt gränssnittsmetod beror på de specifika kraven i det inbäddade systemet och de ingångsenheter som används. Faktorer som kostnad, kraftförbrukning, hastighet och komplexitet spelar alla en roll i beslutsprocessen.