Kysymys:
Onko tämä viestintä I²C?
Daniel
2018-09-28 22:21:08 UTC
view on stackexchange narkive permalink

Minun on purettava kahden laitteen välinen tiedonsiirto, mutta minulla ei ole tietoa näistä laitteista. Tiedän vain, että tarvitaan neljä johtoa (GND, VCC ja kaksi tiedonsiirtojohtoa). Epäilen, että kyseessä on I²C-viestintä.

Yritän purkaa sen oskilloskoopin dekoodaustyökalulla, mutta en ole siitä aivan varma. En pysty tunnistamaan I²C-viestinnän elementtejä asianmukaisesti, kun tarkistan aaltomuodot visuaalisesti.

Aaltomuotoja tarkastellessani tein seuraavat oletukset, ja ehkä joku voi auttaa. Nämä olivat olettamukseni:

  1. Kaikki johtaa siihen, että kello on sininen signaali ja data on punainen signaali.
  2. Kello näyttää olevan käänteinen, koska sen lepotila ei ole korkealla.
  3. En ole varma, onko datasignaali myös käänteinen, mutta se näyttää olevan.

Ovatko oletukseni oikeita?

Viimeisessä kuvassa luku numero 5 on merkitty ympyrään ja siinä on osa signaalista. En pysty tunnistamaan aloitus-, tarkistus- ja lopetusbittejä. Voiko kukaan tunnistaa nämä elementit vain katsomalla kuvaa?

Enter image description here Enter image description here

[Muokattu] Jotkut ihmiset kysyivät minulta viestinnässä olevia laitteita. Viestintä on auton avaimen ja työkalun välillä, jota en saa sanoa, mutta yritän tehdä siihen käänteisen suunnittelun.

Sinulla on lähtöolosuhde vasemmanpuoleisessa punaisessa (SDA) reunassa.Se menee matalalle, kun käännettyä sinistä (–SCL) pidetään matalana.Sen jälkeen muutokset punaiseksi (SDA) näyttävät tapahtuvan vasta, kun käännetty sininen (–SCL) on korkea.Se on pätevä I²C-puhe.
@Janka,, joka on vain kelvollinen I2C-puhe, jos oletat, että SCL on käännetty.Ei ole mitään syytä olettaa sitä.
OP kirjoitti juuri sen.
@Janka, OP listasi tämän oletuksena.Tämä oletus perustuu oletukseen, että tämä on I2C.On useita syitä uskoa, että tämä ei ole I2C - yksi niistä on, että kello on tyhjäkäynnillä.
Mistä tämä oletus tuli?Kohdissa (1) ja (2) molemmat linjat ovat korkealla alussa ja (1) myös korkealla lopussa
@Daniel, voisitteko kertoa meille, mitkä kaksi laitetta ovat?
True I2C käyttää vetovastuksia ja avotappeja.Mutta ehkä on I2C-muunnos, jota ei ole?Asennuksen, riippumatta siitä, mikä se on, on oltava helppo tarkistaa ylösvetävien vastusten suhteen, mutta nousevat reunat näyttävät liian puhtailta (ei aikavakioita).
mielestäni jotkut vihjeet viestinnän sisällöstä auttaisivat - onko sinulla syytä olettaa kaksisuuntaisuutta?
@Annie, tämä tiedonsiirto tapahtuu työkalun ja auton ajonestolaitteen avaimen piirin välillä
Ehkä sen sijaan, että olisit huolissasi "mitä se on", sinun pitäisi miettiä "mitä se sanoo".Selvitä, mitkä reunat sinun on näytettävä.Hanki looginen analysaattori, luultavasti suoratoistettava USB-tyyppi, ja aloita kirjoittaa dekooderia, joka kerää vaihtelevuuden.Sitten alkaa etsiä malleja tiedoista.
@ChrisStratton Näyttää siltä, että se on hyvä idea, mutta minulla ei ole toistaiseksi käytettävissä olevaa logiikan analysaattoria
@RobStarling En todellakaan tiedä, vaatisiko se kaksisuuntaisuutta, mutta luulen, että sitä tarvitaan, koska työkalu palauttaa menettelyn tilan, onnistumisen tai virheen.
Jos olet tosissasi tästä projektista, sinun on ostettava sigrok-yhteensopiva peruselektroniikan analysaattori (noin 12 dollaria) tai käytettävä kohtuuttoman enemmän aikaa mukautetun rakentamiseen.
Neljä vastused:
Dave Tweed
2018-09-28 22:54:41 UTC
view on stackexchange narkive permalink

Ottaen huomioon, että tavua on vain 8 kelloa (I2C vaatii yhdeksännen kellon ACK / NAK-bitille) ja kellon tyhjäkäyntitila näyttää olevan alhainen, sanoisin, että tämä on todennäköisemmin SPI (tai SPI: n kaltainen) käyttöliittymä.

Etkö ole varma kunkin tavun ensimmäisen bitin ylimääräisestä kellon leveydestä.

Toisaalta, että kapea pulssi kellosarjan lopussa näyttää paljon kuin NACK.Myös tyhjäkäynnillä näyttää kellon venyttäminen, jota spec ei enää salli, mutta vanhat orjat voivat käyttää sitä.Kuvien (1) ja (2) alkutila on todella korkea
@Maple: Näen kapean datapulssisi, mutta en silti näe yhdeksännen kellopulssia.Datakuvio on täysin yhdenmukainen tiettyjen kellovaiheen ja kellon napaisuuden SPI-kokoonpanojen kanssa.
Se on totta, olen oikeastaan samaa mieltä kanssasi kellossa.Minulle outoa on epäjohdonmukainen SDI / SDO: n (mitä se onkin) joutokäyttäytyminen (1): n päissä
@Maple Eikö I2C vapauta linjoja tyhjäkäynnillä?
@Selvek Kyllä, ja juuri tämän näen kuvassa (1) ja kuvan alussa (2).Loput siitä ovat kuitenkin yhdenmukaisempia SPI: n kanssa, kuten Dave huomautti.No, lukuun ottamatta yllättävää ensimmäistä kelloa, joka näyttää aloitusbitiltä.Hmm ... alku vähän ... voisiko tämä olla ...
@Selvek Yup, I2C: llä on molemmat linjat korkealla, kun bussi on tyhjäkäynnillä.Kyseiset aaltomuodot eivät näytä I2C: ltä.
Annie
2018-09-28 23:33:37 UTC
view on stackexchange narkive permalink

Oletan, että se on jonkin yrityksen kotimainen "I2C-kaltainen" protokolla.Siellä oli joitain heistä tuolloin, kun I2C: n käyttäminen tarkoitti tarvetta antaa rahaa Philipsille.

Näyttää siltä, että sillä on ACK (lyhyt pulssi tietolinjalla ennen kellojännitystä näyttää paljon siltä, että datalinja siirtyy isännältä orjalle).

Kummallista näyttää siltä, että se lähettää 7 bittiä kerrallaan.

Jos se on protokollan oma versio, se saattaa käyttää yhtä hyvin vähintään 7-bittistä tiedonsiirtoa
@Maple Joo.Voin kuvitella insinöörin sanovan: "Kuinka voimme tehdä tämän kuten I2C, mutta aivan tarpeeksi erilainen, jotta meidän ei tarvitse maksaa rojalteja? Käännä kello ja lähetä 7 bittiä kerrallaan."Mutta voin vain arvata.
Maple
2018-09-29 04:55:05 UTC
view on stackexchange narkive permalink

Heitän hatun renkaaseen ...

Jos nämä ovat vanhoja laitteita, voit tarkastella jotakin "vähimmäistasoa" 7-bittistä synkronista RS-232-versiota:

  • Se, että jokaisen kehyksen alussa pidempi pulssi voi olla aloitusbitti,

  • Kellosignaalin tasanne voi alussa palata arvoon 0 ennen negatiivisen "merkin" siirtymistä.(Et antanut jännitettä kuvakaappauksissa, joten arvaan täällä).

Oooh, tämä on minulle uutta.Onko sillä mitään ackia?(Ei löytynyt sellaista hyvin lyhyestä Google-haustani).Jos ei, mikään muu, mikä selittäisi lyhyen pulssin datalinjalla 8. clk: n jälkeen?
Ei minun tietääkseni.Ja joka tapauksessa, jos tämä on todellakin vanhanaikainen sarja, kaikki viestinnät toiseen suuntaan vaativat erilliset johdot.Pulssi on liian lyhyt ollakseen merkittävä.Todennäköisesti kuljettaja nollaa itsensä ennen seuraavaa kuvaa.Kaikki tämä on arvaamista, kuten sanoitte itse.Ellemme OP voi antaa lisätietoja laitteista, tämä on kaikki mitä voimme tehdä.
@Maple, viestintä on auton avaimen ja työkalun välillä, jota en saa sanoa, mutta yritän tehdä siihen käänteisen suunnittelun.
RS232 on standardi sähkötasoille, ei datasanojen koodaukselle
@ChrisStratton Mistä löysit vastauksestani jotain koodauksesta?Sanon vain, että jos jännitetasot vastaavat RS232: ta ja signaalit muistuttavat synkronista sarjaa, se ei todennäköisesti ole I2C
Jännitetasot eivät todennäköisesti ole mitään RS232: n kaltaisia.Muistatko mitä RS232-tasot ovat?Koska se kuulostaa paljon enemmän kuin kirjoitat RS232: ta, mutta tarkoittaa "logiikkatason UART, joka vuotaa kellon tai USART, joka ehkä toimii synkronisessa tilassa" ... mikä ei * ole * mitä RS232 tarkoittaa.
"logiikkataso UART"?Ole hyvä, lue vastaukseni uudelleen.Mainitsen erityisesti tasangon aivan alussa ja miltä näyttää signaalin menevän _egatiiviseksi_ joutokäynnillä 0: lla laukauksen ajan.Ja mainitsen erityisesti kuvakaappauksista puuttuvat jännitteet.Kuinka ne voivat olla "epätodennäköisiä", jos he puuttuvat kokonaan ?!
On ainakin kolme syytä, miksi se on erittäin epätodennäköistä.Ensinnäkin RS232-tasoja ei löydy kaukosäätimestä.Toiseksi julistaja olisi sanonut jotain tällaisista epätavallisista (tällaista tarkoitusta varten) jännitetasoista.Kolmanneksi keskipistejännite ei ole ominaista RS232: lle.
Huomaa, että vastaus lähetettiin _ennen_ OP mainitsi kaukosäätimen.Silloinkin se oli selvästi merkitty vain arvaukseksi riittämättömien tietojen perusteella.Tämän lisätiedon avulla näyttää todennäköisemmältä olevan omaa synkronista sarjaliikennettä, mikä tekee kaikista tähän mennessä tehdyistä arvauksista virheellisiä ja myös merkityksettömiä, kuten sanoitte niin itse OP-kommentissa
user10433585
2018-10-01 18:34:33 UTC
view on stackexchange narkive permalink

I2C: stä saatujen kokemusten mukaan voin käyttää monen metrin laitetta kellon tarkistamiseen asettamalla laitteen mittaamaan taajuutta (herttinä), joten jos se lukee tasaisen arvon, kuten 2k, se on I2C-kello.

Ei, se ei ole lainkaan pätevä johtopäätös.Monilla asioilla, jotka eivät ole I2C, on vakaat kellot.Itse asiassa I2C: llä * ei ole tasaista kelloa, vaan pikemminkin purskeinen.Jos mittari laskee tietyn ajanjakson ajan, se tosiasiallisesti keskittää aktiivisen kellon tyhjäkäynnillä - sinun on mitattava pulssin leveyden vastavuoroisuus, ihanteellisella alueella, jossa voit olla varma, että olettodella mitata mitä on tarkoitus.Sen sijaan joissakin muissa järjestelmissä, kuten I2S, on yleensä jatkuvasti käynnissä olevat kellot.Mutta kellotaajuus voi sulkea vain jotain pois, ei sisään.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 4.0-lisenssistä, jolla sitä jaetaan.
Loading...