Så här implementerar du hårdvaruavstudsning för brytare och reläer när mjukvaruavstudsning inte är lämpligt

Av Clive "Max" Maxfield

Bidraget med av DigiKeys nordamerikanska redaktörer

Inom elektroteknik är en brytare eller omkopplare en komponent som sluter eller bryter en elektrisk krets och därmed avbryter en elektrisk ström eller styr den från en ledare till en annan. Som tekniker och ingenjörer kan intyga, finns det många olika typer av brytare/omkopplare, såsom vippomkopplare, vippströmbrytare, knappströmbrytare, mikroswitchar och gränslägesbrytare, magnetbrytare, tungomkopplare och reläer. Alla har en sak gemensamt: de studsar. Det bara är så.

Vanligtvis har detta studsande liten eller ingen effekt på kretsen, men om den digitala kretsen är tillräckligt snabb för att upptäcka och svara på flera studsar kan det få allvarliga konsekvenser. En ingenjörs uppgift är att undvika eller mildra effekterna av denna studs eller ”avstudsa” brytaren. Branschen länge har använt hårdvaruavstudsning men har på senare tid övergått till mjukvaruvarubaserade avstudsningstekniker. Det finns dock situationer där hårdvaruavstudsning är ett bättre alternativ.

Denna artikel förklarar studsfenomen och diskuterar mjuk- och hårdvarumetoder för avstudsning. Den visar sedan på tillfällen där hårdvaruavstudsning är ett bättre alternativ och visar därefter hur detta kan genomföras. Exempel på brytaranordningar och komponenter för hårdvaruavstudsning gås igenom med hjälp av exempel från NKK Semiconductor, ON Semiconductor, Texas Instruments, Maxim Integrated och LogiSwitch.

Vad är kontaktstudsar?

När en brytare eller relä manövreras eller slås om, kan det som en människa upplever som ett ögonblickligt momentant svar varje gång enheten växlar tillstånd faktiskt innebära 100 eller fler kretsbrytningar eller -slutningar, vilket kan pågå i flera tusendels sekunder innan kontakten slutligen sätter stabiliseras.

Tänk exempelvis på en enkelpolig, enkelverkande (SPST) panelmonterad lägesomkopplare som är "normalt öppen" (NO), som t.ex. M2011SS1W01 från NKK. Antag att den ena sidan av denna omkopplare, som kan betraktas som ingång, är ansluten till jord (0 volt), medan den andra sidan, som i detta fall är utgången, är ansluten till en 5 volts strömförsörjning (visas som +ve) via ett pull-up-motstånd (R1) (Figur 1).

Diagram över SPST-NO-lägesomkopplare som studsar (klicka för att förstora) Figur 1: I fallet med en SPST-NO-omkopplare kan studsning ske både när omkopplaren sluter och bryter. (Bildkälla: Max Maxfield)

Observera att omkopplaren kan studsa både när den aktiverar (sluter) och inaktiverar (öppnar). Ibland kan studsarna fortplantas hela vägen mellan matarreferensnivåerna, vilka är att betrakta som logiska tillstånden 0 och 1. I detta fall är dessa "rena" studsar. Om signalen, som jämförelse, bara når en mellanliggande spänningsnivå, benämns dessa "smutsiga" studsar.

I fallet med en enpolig, dubbelverkande (SPDT) panelmonterad lägesomkopplare, som NKK:s M2012SS1W01-BC, kan studsar ske både på de normalt öppna (NO) och normalt slutna (NC) polerna (Figur 2). I detta fall har endast "rena" studsar visats för enkelhetens skull.

Diagram över SPDT-lägesomkopplare som studsar (klicka för att förstora) Figur 2: I fallet med en SPDT-lägesomkopplare kan studsning ske både på NO- och NC-polerna när omkopplaren sluter eller bryter. (Bildkälla: Max Maxfield)

I många fall är varaktigheten för denna signalstuds så kort att den inte har någon effekt. Problem uppstår när en omkopplare är ansluten till en elektronisk utrustning som är tillräckligt snabb för att upptäcka och svara på flera studsar. Det som krävs är ett sätt att avstudsa signalen som kommer från omkopplaren innan den elektroniska utrustningen reagerar på signalen.

Mjuk- kontra hårdvaruavstudsning

På 1960- och 1970-talet hanterades switchavstudsning med hjälp av olika hårdvarutekniker, från enkla RC-fördröjningskretsar (med motstånd och kondensator) som används med SPST-switchar till mer sofistikerade set/reset latch-funktioner (SR).

I modernare tid, och eftersom många system har en mikroprocessor (MPU) eller microcontroller (MCU), har det blivit vanligt att använda mjukvaruvarutekniker för att avstudsa signaler från olika typer av brytare. Men mjukvaruavstudsning är inte alltid det bästa tillvägagångssättet. Vissa tillämpningar inbegriper små, minnesbegränsade processorer, vilka har låg prestanda, begränsad plats för kod och/eller för få klockcykler för att implementera avstudsningsrutiner. I dessa fall kan en hårdvaruimplementering vara en bättre lösning.

Många mjukvaruutvecklare känner inte heller till de fysiska egenskaperna hos omkopplare, exempelvis det faktum att förutom variationer mellan en manövrering och en annan, kan brytegenskaperna påverkas av miljöförhållanden som temperatur och fuktighet.

Problemet med mjukvaruutvecklarnas brist på omkopplarkunskaper förvärras av att tillgänglig litteratur om kontaktstudsar ofta är förvirrande och motsägelsefull. Exempelvis är det vanligt att läsa att en omkopplare har slutat studsa 1 ms efter att den har slagits om. Emellertid utförde den välkända experten på inbäddade system Jack Ganssle empiriska tester på en mängd olika omkopplartyper, slog om varje omkopplare 300 gånger och loggade det lägsta och högsta antalet studsar vid både öppning och slutning av kontakterna. Han rapporterade en genomsnittlig varaktighet på studsen på 1,6 ms och en maximal varaktighet på 6,2 ms. Vissa industriella och militära "best practices" rekommenderar att man väntar 20 ms efter en omkoppling innan man antar att omkopplaren har slutat studsa. Andra förespråkar en väntetid 20 ms efter den sista upptäckta studsen innan en åtgärd utlöses.

Dessutom finns många enkla system utan processorer som också kräver att omkopplare avstudsas. Några exempel på sådana system är en binär räknare som driver 7-segmentsdisplayer som räknar pulser från ett relä, utlösaringången till en 555 one-shot-timer som används som motorstyrning för en dörr eller grind, eller en registerbaserad tillståndsmaskin (FSM) som använder knappstyrda inmatningar. Det finns också elektroniska trimpotentiometrar (pottar) med värden som ändras med hjälp av ingångar från omkopplare (upp, ner och ibland spara) där kontaktstudsar skulle vara problematiskt.

Alla dessa exempel visar tydligt att en del kunskaper om hur man bygger hårdvaruavstudsning kan vara användbart för konstruktörer eller utvecklare.

Hårdvara som avstudsar en SPST-omkopplare med ett RC-nät

En av de enklaste hårdvarubaserade avstudslösningarna använder ett motstånd-kondensator-nät (RC) i kombination med en SPST-omkopplare. Det finns många varianter av sådana kretsar. En av de mer generella utförandena involverar två motstånd och en diod (figur 3).

Diagram över ett RC-nät för att avstudsa en SPST-omkopplare (klicka för att förstora) Figur 3: Om du använder ett RC-nät för att avstudsa en SPST-omkopplare (upptill), gör tillägget av dioden (D1) att kondensatorn (C1) laddas via motståndet R1 och laddas via motståndet R2. (Bildkälla: Max Maxfield)

När omkopplaren slås om (sluts) urladdas kondensatorn C1 via motståndet R2. Om dioden D1 skulle ha utelämnats från denna krets, skulle C1 laddas via motstånd (R1 + R2) när omkopplaren slogs ifrån (öppnades). Närvaron av D1 innebär dock att C1 laddas endast via R1.

I vissa fall är endast tillslag av omkopplaren av intresse (dvs. den ska utlösa en åtgärd), i vilket fall D1 kan utelämnas. Men om åtgärder ska utlösas både när omkopplaren slås till och från och om en minimering av fördröjningen är önskvärt, rekommenderas tillägg av D1.

Observera de exponentiella laddnings- och urladdningskurvorna som kondensatorns spänning V C uppvisar. Det skulle inte vara en bra idé att mata denna signal direkt till ingången till en digital logikfunktion nedströms, som inte skulle uppskatta en signal som svajar i det odefinierade intervallet mellan "bra" logiskt 0 och logiskt 1. Istället matas denna signal till ingången på en buffert med en Schmitt-triggeringång. Vidare används vanligtvis en inverterande buffert, såsom en kanal på en CD74HC14M96 från Texas Instruments, eftersom inverterande funktioner slår om snabbare än deras icke-inverterande motsvarigheter.

Avstudsning av en SPDT-omkopplare med en SR-latch

I fallet med en SPDT-omkopplare är en vanlig hårdvarulösning för avstudsning att använda en SR-latch. Ända sedan företag som IBM använde denna teknik för kopplingstavlorna på sina stordatorer omkring 1960-talet, har detta tillvägagångssätt betraktats som crème de la crème av enkla lösningar för hårdvaruavstudsning. En sådan latch kan utformas med hjälp av två direkt hopkopplade NAND-grindar med två ingångar genom att exempelvis använda två kanaler på en SN74HC00DR quad 2-ingång NAND-IC från Texas Instruments (Figur 4).

Diagram över NAND-baserad SR-latch för att avstudsa en SPDT-omkopplare Figur 4: Att använda en NAND-baserad SR-latch för att avfärda en SPDT-switch är en mycket effektiv hårdvaruavstudsande lösning. (Bildkälla: Max Maxfield)

När omkopplarens NC-pol är ansluten till jord, som visas i den övre halvan av figur 4, tvingar detta utgången från grinden g2 till logiskt 1. I sin tur tvingar de två logiska 1:orna på ingångarna till grinden gl dess utgång till logiskt 0. Som jämförelse, när omkopplarens NO-pol är ansluten till jord, som visas i den nedre halvan av figur 4, tvingar detta utgången från grinden gl till logiskt 1. I sin tur tvingar de två logiska 1:orna på ingångarna till grinden g2 dess utgång till logiskt 0.

Anledningen till att denna krets fungerar så bra, är att när båda dess ingångar är i sitt inaktiva logiskt 1, kommer SR-latchen ihåg sitt tidigare värde. Kom ihåg att när en SPDT-omkopplare slår om, som illustreras i figur 2, kommer den av dess poler som är ansluten till jord - vid det ögonblicket i tiden - att studsa först. Eftersom dessa studsar ligger mellan dess ursprungliga värde (logiskt 0) och dess nya värde (logiskt 1) har de ingen effekt på det aktuella tillståndet för SR-latchen. Det är först efter att denna pol upphör att studsa som dess motsvarighet börjar studsa, vid vilken tidpunkt SR-latchen växlar tillstånd.

Avstudsning av en SPST-omkopplare med en dedikerad anordning

Ett problem med den tidigare lösningen är att många konstruktörer föredrar att använda SPST-omkopplare eftersom de i allmänhet kostar mindre än SPDT. Det finns ett antal välkända dedikerade SPST-avstudsningsenheter på marknaden, exempelvis MC14490DWG från ON Semiconductor och MAX6818EAP + T från Maxim Integrated.

En annan tillverkare, LogiSwitch, erbjuder en svit med 3-kanaligas, 6-kanaliga och 9-kanaliga avstudslösningar i både hål- och ytmonterade utföranden (SMD). Tänk till exempel på en krets som använder en LS18-S-anordning från LogiSwitch (Figur 5).

Diagram över dedikerat 3-kanaligt LS18-S-chip för att avstudsa en SPDT-omkopplare Figur 5: Använda ett dedikerat trekanaligt LS18-S-chip för att avstuds en SPDT-omkopplare (6- och 9-kanalsenheter finns också). (Bildkälla: Max Maxfield)

Liksom alla medlemmar i LogiSwitch-familjen stöder LS18-S ett driftspänningsområde på 2,5 till 5,5 volt (värdet på matningsspänningen påverkar inte enhetens svarstid). Till skillnad från några av de andra dedikerade IC-lösningarna kräver LogiSwitch-avstudsningsanordningar heller inte några ytterligare komponenter, som en extern klocka, ett RC-timingnät eller pull-up-motstånd på ingångar eller utgångar.

LS18-S använder LogiSwitchs egenutvecklade NoBounce-teknik som erbjuder en hög brusimmunitet. Brustoppar som är kortare än 20 ms hindras att starta eller avsluta en cykel, och utgångarna fördröjs under en period på 20 ms efter den sista kontaktstudsen vid både slutning och brytning, oavsett studsens varaktighet.

Slutsats

Det finns många olika typer av brytare och omkopplare, såsom lägesomkopplare, vippbrytare och knappbrytare, vilka alla kan studsa. Om detta inte åtgärdas kan kontaktstudsar göra att mikroprocessorer och andra elektroniska kretsar uppfattar en enda aktivering av en brytare, som en sekvens av flera händelser.

Den studsande signalen från en omkopplare avstudsas ofta med mjukvara som körs i en microcontroller. Även om detta är en billig lösning, är det, såsom visats, kanske inte det bästa alternativet i många fall, såsom för system beroende av prestanda och minnesbegränsade microcontrollers, för mjukvaruutvecklare som saknar expertis inom kontaktrelaterade problem eller för system implementerade utan microcontrollers.

Alternativ kan avstudsning utföras i hårdvaran med hjälp av en mängd olika metoder som omfattar allt från motstånd-kondensator-nät till SR-latchar till dedikerade IC:ar.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield received his BSc in Control Engineering in 1980 from Sheffield Hallam University, England and began his career as a designer of central processing units (CPUs) for mainframe computers. Over the years, Max has designed everything from silicon chips to circuit boards and from brainwave amplifiers to steampunk Prognostication Engines (don't ask). He has also been at the forefront of Electronic Design Automation (EDA) for more than 30 years.

Max is the author and/or co-author of a number of books, including Designus Maximus Unleashed (banned in Alabama), Bebop to the Boolean Boogie (An Unconventional Guide to Electronics), EDA: Where Electronics Begins, FPGAs: Instant Access, and How Computers Do Math. Check out his “Max’s Cool Beans” blog.

Om utgivaren

DigiKeys nordamerikanska redaktörer