I2C-interface: beschrijving in het Russisch

Inhoudsopgave:

I2C-interface: beschrijving in het Russisch
I2C-interface: beschrijving in het Russisch
Anonim

In moderne huishoudelijke apparaten, industriële elektronica en verschillende telecommunicatieapparatuur zijn vaak vergelijkbare oplossingen te vinden, hoewel de producten praktisch niets met elkaar te maken hebben. Bijna elk systeem bevat bijvoorbeeld het volgende:

  • een bepaalde "slimme" besturingseenheid, die in de overgrote meerderheid van de gevallen een microcomputer met één chip is;
  • componenten voor algemene doeleinden zoals LCD-buffers, RAM, I/O-poorten, EEPROM of speciale dataconverters;
  • specifieke componenten, waaronder circuits voor digitale afstemming en signaalverwerking voor video- en radiosystemen.

Hoe hun applicatie te optimaliseren?

korte beschrijving van uart spi i2c-interfaces
korte beschrijving van uart spi i2c-interfaces

Om het meeste uit deze veelvoorkomende oplossingen te halen ten voordele van ontwerpers en fabrikanten, maar ook om de algehele prestaties van verschillende hardware te verbeteren en de toegepaste circuitcomponenten te vereenvoudigen, ging Philips op zoek naar de eenvoudigste tweedraads bidirectionele bus die de meest productieve inter-chip biedtcontrole. Deze bus zorgt voor gegevensoverdracht via de I2C-interface.

Tegenwoordig omvat het productassortiment van de fabrikant meer dan 150 CMOS, evenals bipolaire apparaten die compatibel zijn met I2C en ontworpen zijn om in een van de vermelde categorieën te werken. Opgemerkt moet worden dat de I2C-interface in eerste instantie in alle compatibele apparaten is ingebouwd, waardoor ze gemakkelijk met elkaar kunnen communiceren via een speciale bus. Door het gebruik van een dergelijke ontwerpoplossing was het mogelijk om een vrij groot aantal problemen op te lossen bij het koppelen van verschillende apparatuur, wat vrij typerend is voor de ontwikkeling van digitale systemen.

Belangrijkste voordelen

i2c-interface
i2c-interface

Zelfs als je kijkt naar een korte beschrijving van de UART-, SPI-, I2C-interfaces, kun je de volgende voordelen van de laatste benadrukken:

  • Om te werken, hebt u slechts twee regels nodig - synchronisatie en gegevens. Elk apparaat dat verbinding maakt met een dergelijke bus kan dan programmatisch worden geadresseerd aan een volledig uniek adres. Op elk willekeurig moment is er een eenvoudige relatie waardoor de masters kunnen optreden als master-zender of master-ontvanger.
  • Deze bus biedt de mogelijkheid om meerdere masters tegelijk te hebben, en biedt alle benodigde middelen voor het bepalen van botsingen, evenals arbitrage om datacorruptie te voorkomen in het geval dat twee of meer masters tegelijkertijd informatie beginnen te verzenden. In standaardmodusalleen seriële 8-bits gegevensoverdracht vindt plaats met een snelheid van niet meer dan 100 kbps, en in de snelle modus kan deze drempel vier keer worden verhoogd.
  • De chips gebruiken een speciaal ingebouwd filter dat pieken effectief onderdrukt en zorgt voor maximale gegevensintegriteit.
  • Het maximaal mogelijke aantal chips dat op één bus kan worden aangesloten, wordt alleen beperkt door de maximaal mogelijke capaciteit van 400 pF.

Voordelen voor constructeurs

i2c-interface lcd1602
i2c-interface lcd1602

De I2C-interface, evenals alle compatibele chips, kunnen het ontwikkelingsproces aanzienlijk versnellen, van een functioneel diagram tot het uiteindelijke prototype. Tegelijkertijd moet worden opgemerkt dat vanwege de mogelijkheid om dergelijke microschakelingen rechtstreeks op de bus aan te sluiten zonder allerlei extra circuits te gebruiken, er ruimte wordt geboden voor verdere modernisering en aanpassing van het prototypesysteem door verschillende apparaten van de bus.

Er zijn veel voordelen waardoor de I2C-interface opv alt. Met name de beschrijving laat u de volgende voordelen voor constructeurs zien:

  • De blokken op het functionele diagram komen volledig overeen met microschakelingen en tegelijkertijd wordt een vrij snelle overgang van functioneel naar fundamenteel geboden.
  • Het is niet nodig om businterfaces te ontwikkelen omdat de bus al native is geïntegreerd in speciale chips.
  • Geïntegreerde communicatieprotocollen enMet apparaatadressering kan het systeem volledig softwarematig worden gedefinieerd.
  • Dezelfde soorten microschakelingen kunnen, indien nodig, in totaal verschillende toepassingen worden gebruikt.
  • De totale ontwikkeltijd wordt aanzienlijk verkort doordat ontwerpers snel vertrouwd kunnen raken met de meest gebruikte functionele blokken, evenals met verschillende microschakelingen.
  • Als je wilt, kun je chips aan het systeem toevoegen of verwijderen, en tegelijkertijd heb je niet veel effect op andere apparatuur die op dezelfde bus is aangesloten.
  • De totale ontwikkeltijd van software kan aanzienlijk worden verkort door een bibliotheek met herbruikbare softwaremodules toe te staan.

Het is onder andere vermeldenswaard de uiterst eenvoudige procedure voor het diagnosticeren van opgetreden storingen en verdere debugging, die de I2C-interface onderscheidt. De beschrijving suggereert dat, indien nodig, zelfs kleine afwijkingen in de werking van dergelijke apparatuur zonder enige moeite onmiddellijk kunnen worden gecontroleerd en dienovereenkomstig kunnen passende maatregelen worden genomen. Het is ook vermeldenswaard dat ontwerpers speciale oplossingen krijgen, die met name heel aantrekkelijk zijn voor verschillende draagbare apparatuur en systemen die batterijvoeding leveren met behulp van de I2C-interface. De beschrijving in het Russisch geeft ook aan dat het gebruik ervan u de volgende belangrijke voordelen biedt:

  • Voldoende hoge mate van weerstand tegen eventuele opkomende interferentie.
  • Uiteindelijklaag stroomverbruik.
  • Breedste voedingsspanningsbereik.
  • Breed temperatuurbereik.

Voordelen voor technologen

Het is vermeldenswaard dat niet alleen ontwerpers, maar ook technologen de laatste tijd vrij vaak een gespecialiseerde I2C-interface zijn gaan gebruiken. De beschrijving in het Russisch geeft een vrij breed scala aan voordelen aan die deze categorie specialisten biedt:

  • Een standaard tweedraads seriële bus met deze interface minimaliseert onderlinge verbindingen tussen IC's, wat betekent dat er minder pinnen en minder sporen nodig zijn, waardoor PCB's goedkoper en veel kleiner zijn.
  • Een volledig geïntegreerde I2C-interface LCD1602 of een andere optie elimineert de noodzaak van adresdecoders en andere externe kleine logica.
  • Het is mogelijk om meerdere masters tegelijkertijd op een dergelijke bus te gebruiken, wat het testen en de daaropvolgende installatie van apparatuur aanzienlijk versnelt, aangezien de bus kan worden aangesloten op een lopende bandcomputer.
  • De beschikbaarheid van IC's die compatibel zijn met deze interface in VSO-, SO- en aangepaste DIL-pakketten kan de vereisten voor de apparaatgrootte aanzienlijk verminderen.

Dit is slechts een korte lijst van voordelen die de I2C-interface van de LCD1602 en andere onderscheiden. Bovendien kunnen compatibele chips de flexibiliteit van het gebruikte systeem aanzienlijk vergroten, waardoor:uiterst eenvoudig ontwerp van verschillende uitrustingsopties, evenals relatief eenvoudige upgrades om de ontwikkeling op het huidige niveau verder te ondersteunen. Zo is het mogelijk om een hele familie van verschillende apparatuur te ontwikkelen, met een bepaald basismodel als basis.

Verdere modernisering van apparatuur en uitbreiding van de functies ervan kan worden uitgevoerd door middel van een standaardverbinding met de bus van de bijbehorende microschakeling met behulp van de Arduino 2C-interface of een andere uit de beschikbare lijst. Als een groter ROM nodig is, volstaat het om een andere microcontroller met een groter ROM te selecteren. Aangezien bijgewerkte chips de oude indien nodig volledig kunnen vervangen, kunt u eenvoudig nieuwe functies aan apparatuur toevoegen of de algehele prestaties verbeteren door eenvoudigweg verouderde chips los te koppelen en ze vervolgens te vervangen door nieuwere apparatuur.

TOEGANG.bus

Vanwege het feit dat de bus een tweedraads karakter heeft, evenals de mogelijkheid van programma-adressering, is een van de meest ideale platforms voor ACCESS.bus de I2C-interface. De specificatie (beschrijving in het Russisch wordt gepresenteerd in het artikel) van dit apparaat maakt het een veel goedkoper alternatief voor de eerder actief gebruikte RS-232C-interface voor het aansluiten van verschillende randapparatuur op computers met behulp van een standaard vier-pins connector.

Specificatie introductie

i2c-interfacebeschrijving in het Russisch
i2c-interfacebeschrijving in het Russisch

Voor moderne toepassingen8-bits besturing, die microcontrollers gebruikt, is het mogelijk om enkele ontwerpcriteria in te stellen:

  • compleet systeem omvat meestal één microcontroller en andere randapparatuur, inclusief geheugen en verschillende I/O-poorten;
  • totale kosten van het combineren van verschillende apparaten binnen één systeem moeten zo veel mogelijk worden geminimaliseerd;
  • het systeem dat de functies bestuurt, voorziet niet in de behoefte aan snelle informatieoverdracht;
  • totale efficiëntie is direct afhankelijk van de gekozen apparatuur en de aard van de aansluitende bus.

Om een systeem te ontwerpen dat volledig aan de vermelde criteria voldoet, moet u een bus gebruiken die de I2C seriële interface gebruikt. Hoewel de seriële bus niet de bandbreedte heeft van de parallelle bus, vereist deze minder verbindingen en minder chippinnen. Vergeet tegelijkertijd niet dat de bus niet alleen aansluitdraden bevat, maar ook verschillende procedures en formaten die nodig zijn om communicatie binnen het systeem te garanderen.

Apparaten die communiceren met behulp van software-emulatie van de I2C-interface of de bijbehorende bus, moeten een specifiek protocol hebben waarmee u verschillende mogelijkheden van botsingen, verlies of blokkering van informatie kunt voorkomen. Snelle apparaten moeten kunnen communiceren met langzame, en het systeem mag niet afhankelijk zijn van:van de apparatuur die erop is aangesloten, omdat anders alle verbeteringen en wijzigingen niet kunnen worden gebruikt. Ook is het nodig een procedure te ontwikkelen waarmee realistisch kan worden vastgesteld welk apparaat op dit moment de busbesturing verzorgt en op welk moment. Bovendien, als verschillende apparaten met verschillende klokfrequenties op dezelfde bus zijn aangesloten, moet u beslissen over de bron van de synchronisatie. Aan al deze criteria wordt voldaan door de I2C-interface voor de AVR en alle andere uit deze lijst.

Hoofdconcept

Beschrijving van de i2c-interfacespecificatie in het Russisch
Beschrijving van de i2c-interfacespecificatie in het Russisch

De I2C-bus kan elke gebruikte chiptechnologie ondersteunen. De I2C LabVIEW-interface en andere soortgelijke interfaces voorzien in het gebruik van twee lijnen voor het overdragen van informatie - gegevens en synchronisatie. Elk apparaat dat op deze manier is aangesloten, wordt herkend aan zijn unieke adres, ongeacht of het een LCD-buffer, microcontroller, geheugen of toetsenbordinterface is, en kan fungeren als ontvanger of zender, afhankelijk van waar het voor bedoeld is voor deze apparatuur.

In de overgrote meerderheid van de gevallen is de LCD-buffer een standaardontvanger en kan het geheugen niet alleen verschillende gegevens ontvangen, maar ook verzenden. Afhankelijk van het proces van het verplaatsen van informatie kunnen apparaten onder andere worden geclassificeerd als slave en master.

In dit geval is de master het apparaat dat de gegevensoverdracht initieert en ook genereertsynchronisatie signalen. In dit geval worden alle adresseerbare apparaten als slaven beschouwd.

De I2C-communicatie-interface zorgt voor de aanwezigheid van meerdere masters tegelijk, dat wil zeggen dat meer dan één apparaat dat in staat is om de bus te besturen er verbinding mee kan maken. De mogelijkheid om meer dan één microcontroller op dezelfde bus te gebruiken, betekent dat er op elk moment meer dan één master kan worden doorgestuurd. Om de potentiële chaos te elimineren die dreigt te ontstaan wanneer een dergelijke situatie zich voordoet, is een gespecialiseerde arbitrageprocedure ontwikkeld die gebruikmaakt van de I2C-interface. Uitbreidingen en andere apparaten zorgen voor het aansluiten van apparaten op de bus volgens de zogenaamde bedradingsregel.

Het genereren van het kloksignaal is de verantwoordelijkheid van de master, en elke master genereert zijn eigen signaal tijdens gegevensoverdracht, en het kan alleen later veranderen als het wordt "getrokken" door een langzame slave of een andere master wanneer er een botsing optreedt

Algemene parameters

Zowel SCL als SDA zijn bidirectionele lijnen die worden aangesloten op een positieve voeding met een pull-up-weerstand. Als de band helemaal vrij is, staat elke lijn in een hoge positie. De eindtrappen van apparaten die zijn aangesloten op de bus moeten open-drain of open-collector zijn, zodat de bedrade EN-functie kan worden geleverd. Informatie via de I2C-interface kan worden verzonden met een snelheid van maximaal 400 kbpssnelle modus, terwijl de standaardsnelheid niet hoger is dan 100 kbps. Het totale aantal apparaten dat tegelijkertijd op de bus kan worden aangesloten, is afhankelijk van slechts één parameter. Dit is de lijncapaciteit, die niet meer is dan 400 pf.

Bevestiging

i2c interface beschrijving
i2c interface beschrijving

Bevestiging is een verplichte procedure in het proces van gegevensoverdracht. De master genereert de juiste synchronisatiepuls terwijl de zender de SDA-lijn vrijgeeft tijdens deze synchronisatiepuls ter bevestiging. Daarna moet de ontvanger ervoor zorgen dat de SDA-lijn stabiel wordt gehouden tijdens de klok-hoge toestand in een stabiele lage toestand. Houd in dit geval rekening met de instel- en bewaartijden.

In de overgrote meerderheid van de gevallen is het verplicht voor de geadresseerde ontvanger om een bevestiging te genereren na elke ontvangen byte, met als enige uitzondering wanneer het begin van de verzending een CBUS-adres bevat.

Als de ontvanger-slave geen manier heeft om de bevestiging van zijn eigen adres te verzenden, moet de datalijn hoog worden gelaten, en dan kan de master een "Stop" -signaal afgeven, dat het verzenden van alle informatie. Als het adres is bevestigd, maar de slave kan lange tijd geen data meer ontvangen, moet de master ook de verzending onderbreken. Om dit te doen, bevestigt de slave de volgende ontvangen byte niet en verlaat hij gewoon de lijnhoog, waardoor de master een stopsignaal genereert.

Als de overdrachtsprocedure voorziet in de aanwezigheid van een master-ontvanger, dan moet deze in dit geval de slave informeren over het einde van de verzending, en dit wordt gedaan door de laatst ontvangen byte niet te bevestigen. In dit geval geeft de slave-zender onmiddellijk de datalijn vrij, zodat de master een "Stop"-signaal kan geven of het "Start"-signaal opnieuw kan herhalen.

Om te controleren of de apparatuur werkt, kunt u proberen standaardvoorbeelden van schetsen voor de I2C-interface in Arduino in te voeren, zoals in de bovenstaande foto.

Arbitrage

2c arduino-interface
2c arduino-interface

Masters kunnen pas beginnen met het verzenden van informatie nadat de bus volledig vrij is, maar twee of meer masters kunnen een startsignaal genereren bij de minimale wachttijd. Dit resulteert uiteindelijk in een specifiek "Start"-signaal op de bus.

Arbitrage werkt op de SDA-bus terwijl de SCL-bus hoog is. Als een van de masters een laag niveau op de datalijn begint te verzenden, maar tegelijkertijd is de andere hoog, dan is de laatste volledig losgekoppeld, omdat de SDL-status niet overeenkomt met de hoge status van zijn interne lijn.

Arbitrage kan over meerdere bits doorgaan. Vanwege het feit dat eerst het adres wordt verzonden en daarna de gegevens, kan arbitrage duren tot het einde van het adres, en als de mastershetzelfde apparaat, dan nemen ook verschillende gegevens deel aan de arbitrage. Dankzij dit arbitrageschema gaan er geen gegevens verloren als er een botsing optreedt.

Als de master de arbitrage verliest, kan hij klokpulsen in SCL afgeven tot het einde van de byte, gedurende welke de toegang verloren is gegaan.

Aanbevolen: