Ẹyọ 7 / 12

Awọn Ilana Ibaraẹnisọrọ ati Iṣakojọpọ Nẹtiwọọki

Awọn anfani:

  • Agbara lati ṣe itupalẹ fireemu / ọna apo ti awọn ilana bii I2C / SPI / UART ati TCP/IP, MQTT pẹlu atilẹyin AI
  • Agbara lati dín awọn aṣiṣe ilana (akoko, adirẹsi, checksum) bi awọn idawọle pẹlu AI
  • Agbara lati jẹrisi itumọ ilana Ilana AI pẹlu iwe boṣewa, wiwọn atunnkanka (logbon / soso)

Ilana kan jẹ eto awọn ofin ti awọn ẹrọ meji gba lori lati ni oye ara wọn: ni iyara wo, ni aṣẹ wo, ni ọna wo ni wọn yoo sọrọ. Boya sensọ iwọn otutu sọrọ si microcontroller nipasẹ I2C tabi ẹrọ kan sọrọ si olupin awọsanma nipasẹ TCP/IP ati MQTT da lori ilana kan. Ninu ẹyọ yii, iwọ yoo rii bii o ṣe le lo AI lati ṣe itupalẹ awọn fireemu/awọn apo-iwe ilana, dín awọn aṣiṣe ilana dín, ati loye akopọ ibaraẹnisọrọ (awọn fẹlẹfẹlẹ lori ara wọn, lati Layer ti ara si ohun elo). AI jẹ alagbara ni ṣiṣe alaye awọn ilana ati ipilẹṣẹ awọn idawọle; ṣugbọn ohun ti ila kan n ṣe ni otitọ nikan ni a mọ nipasẹ wiwọn olutupalẹ rẹ (oluyanju ọgbọn, ilana / olutupalẹ apo) ati iwe boṣewa.

Ifibọ ni tẹlentẹle Ilana: I2C, SPI, UART

Awọn eerun lori igbimọ ni gbogbogbo sọrọ si awọn ilana ilana tẹlentẹle mẹta:

  • UART: Awọn ila meji (TX/RX), ko si laini aago; Awọn ẹgbẹ mejeeji gbọdọ ṣeto si iyara kanna (oṣuwọn baud). Rọrun ṣugbọn amuṣiṣẹpọ da lori iyara.
  • SPI: Aago (SCLK), titẹ sii / ijade data (MOSI/MISO) ati yan awọn laini (CS); Yara, ile oloke meji kikun, ṣugbọn nilo awọn pinni diẹ sii. Aago polarity/alakoso (CPOL/CPHA) gbọdọ baramu ni ẹgbẹ mejeeji.
  • I2C: Awọn ila meji (SDA / SCL), orisun adirẹsi, awọn ẹrọ pupọ lori ila kanna; fa-soke resistors ati wọpọ ilẹ majemu. O lọra ṣugbọn ti ọrọ-aje.

AI ṣe alaye daradara bi awọn ilana wọnyi ṣe n ṣiṣẹ, eto ilana wọn, ati awọn idi ikuna aṣoju. Ni eto ṣe atokọ awọn okunfa ti o ṣeeṣe (adirẹsi ti ko tọ, fifa-padanu, aiṣedeede iyara, isansa ti ilẹ ti o wọpọ, ariyanjiyan laini, gigun okun / agbara) nigbati ẹrọ I2C kan di idahun. Ṣugbọn ewo ninu awọn wọnyi jẹ gidi ni a le loye nipa wiwọn ila pẹlu olutọpa ọgbọn ati wiwo awọn igbi SDA / SCL; AI funni ni idawọle, wiwọn pinnu.

Imọran: Ninu ikuna ilana ilana tẹlentẹle, beere lọwọ AI “ipo awọn idi ti o ṣeeṣe lati o ṣeeṣe ki o kere ju, ati ohunkohun ti Mo rii lori olutupalẹ fun ọkọọkan ni a fi idi mulẹ.” Ni ọna yii o ṣe wiwọn ti a fojusi; Dipo ki o gbiyanju idi kọọkan ni ọkọọkan, wiwo oluyẹwo yoo mu ọ lọ si ẹka ti o tọ.

Awọn ilana nẹtiwọki: TCP/IP, UDP, MQTT, CoAP

Awọn Ilana Layered wa sinu ere bi awọn ẹrọ ṣe sopọ si nẹtiwọọki ati awọsanma. Akopọ TCP/IP jẹ pataki siwa: ọna asopọ ti ara / data (Eternet, Wi-Fi), nẹtiwọki (IP: adirẹsi ati afisona), gbigbe (TCP: gbẹkẹle, lesese, sisan-dari / UDP: sare, trustless), ati ohun elo (HTTP, MQTT, CoAP). Awọn imọran bọtini:

  • TCP vs UDP: TCP sanpada fun pipadanu ati awọn iṣeduro aṣẹ ṣugbọn ṣafihan lairi ati oke; UDP yara ṣugbọn ko ni iṣeduro ifijiṣẹ (ohun gidi-akoko / fidio ti o fẹ fun telemetry).
  • MQTT: Ilana fifiranṣẹ IoT Lightweight ti o ṣiṣẹ pẹlu awoṣe ṣiṣe alabapin; fifiranṣẹ nipasẹ awọn koko-ọrọ nipasẹ alagbata kan. Awọn ipele QoS ṣeto iṣeduro ifijiṣẹ.
  • CoAP: HTTP-bii, Ilana iwuwo fẹẹrẹ ti orisun UDP fun awọn ẹrọ ihamọ.

AI ṣe itupalẹ ilana fireemu/packet ti awọn ilana wọnyi, ṣe iranlọwọ fun ọ lati ṣe itumọ Wireshark (olutupalẹ apo-iwe), ati ṣe atunwo apẹrẹ akọle MQTT kan. Ṣugbọn kini ijabọ gidi jẹ iṣeduro nipasẹ imudani soso, ati ihuwasi olupin ti jẹri nipasẹ idanwo gidi.

Checksum, CRC ati fireemu

Pupọ awọn ilana lo checksum tabi CRC (Cyclic Redundancy Check) lati ṣayẹwo pe data ko bajẹ: olufiranṣẹ ṣe iṣiro iye ijẹrisi lati inu data naa, olugba ṣe iṣiro kanna ati ṣe afiwe. AI ṣapejuwe ati kọ koodu fun iṣiro CRC / checksum, ṣugbọn awọn alaye gẹgẹbi yiyan pupọ, endianness, iye ibẹrẹ ati bẹbẹ lọ jẹ pato si boṣewa; Koodu CRC ti ipilẹṣẹ nipasẹ AI gbọdọ jẹ akawe ni asọye si asọye osise ti ilana naa ati jẹrisi lodi si fekito idanwo ti a mọ.

mẹta mini igba

Irú 1 - Ailopin fifa soke. A egbe ko le ṣiṣe ohun I2C sensọ on a breadboard; ko jẹwọ adirẹsi ẹrọ (ko si ACK). Awọn atokọ AI ti o padanu resistor-soke ati ilẹ ti o wọpọ bi idi ti o ṣeeṣe julọ. Nigbati o ba n wo laini SDA pẹlu olutọpa ọgbọn, o rii pe ifihan agbara ko le de ipele giga ni kikun; Ibaraẹnisọrọ bẹrẹ nigbati awọn resistors fa soke ti wa ni afikun. Ẹkọ: AI ṣe afihan idi ti o ṣeeṣe julọ, olutupalẹ jẹrisi rẹ.

Ọran 2 - Ipo SPI ti ko tọ. Onimọ-ẹrọ ka data gibberish lati ẹrọ SPI kan. AI daba aago polarity/phase (CPOL/CPHA) ibaamu bi idi ti o ṣeeṣe. Ninu olutupalẹ, aago naa han lati ṣe apẹẹrẹ yatọ si eti ti ẹrọ n reti; Nigbati ipo naa ba ṣe atunṣe, data naa yoo ni itumọ. Ẹkọ: Awọn aami aisan "data ṣugbọn ọrọ isọkusọ" ni SPI ni igbagbogbo aiṣedeede ipo; wiwọn mu ki yi ko o.

Irú 3 - MQTT QoS aiyede. Akọṣẹ kan firanṣẹ telemetry nipasẹ MQTT ṣugbọn rii diẹ ninu awọn ifiranṣẹ ti sọnu ati beere lọwọ AI. AI sọ pe QoS 0 jẹ "ni pupọ julọ ni ẹẹkan, ifijiṣẹ ko ni iṣeduro"; Ṣalaye pe QoS 1/2 nilo lati ṣe iṣeduro ifijiṣẹ, ṣugbọn eyi ṣafihan oke ati idaduro. Akọṣẹ naa yipada si QoS 1 ti o da lori pataki telemetry ati jẹrisi ihuwasi alagbata pẹlu idanwo gidi. Ẹkọ: Ṣe alaye aṣayan ilana Ilana AI; Yiyan ti o pe ni ibamu si ohun elo ati rii daju nipasẹ idanwo.

Awọn awoṣe kiakia idakọ

PROTOCOL FAILURE NAVIGATION TEMPLATE"[I2C/SPI/UART/TCP/MQTT] ibaraẹnisọrọ ni awọn aami aisan wọnyi: [aisan]. Ṣe ipo awọn okunfa ti o le ṣe lati julọ julọ si o kere julọ. Fun idi kọọkan: (1) kilode ti o fi fun aami aisan yii, (2) ohunkohun ti mo ba ri lori olutọpa / wiwọn, DOIM. KO ṣe ayẹwo ti o daju;

FRAMEWORK/PACKET ANALYSIS TEMPLATE "Fẹ awọn wọnyi [I2C/SPI/UART baiti orun / packet Yaworan] akoonu sinu awọn aaye ati ki o se apejuwe kọọkan aaye (adirẹsi, pipaṣẹ, data, checksum / CRC, flag). Sọ kedere rẹ arosinu nipa endianness ati bit ibere. Akiyesi pe mo nilo lati mọ daju rẹ ọrọìwòye pẹlu awọn osise apejuwe ti a propactor.

Àdàkọ ìmúdájú CRC/ChecksUM"Ṣapejuwe CRC/iṣiro checksum fun [ilana]: ilopọ, iye ibẹrẹ, aṣẹ bit, ipari

Àdàkọ Aṣayan Ilana"Ṣiṣe iṣeduro gbigbe / ohun elo Ilana fun ohun elo atẹle: [ibeere: ẹri ifijiṣẹ, lairi, agbara, bandiwidi, ihamọ ẹrọ]. Ṣe afiwe awọn aṣayan TCP/UDP ati MQTT/CoAP/HTTP pẹlu awọn ilana wọnyi. MAA ṢE gbe ipinnu ti o han gbangba; dọgbadọgba aṣayan kọọkan ki o sọ pe o yẹ ki o jẹri pe aṣayan gangan yẹ ki o jẹri. "

Ailagbara kiakia / Alagbara kiakia

AGBARA alailagbara: "I2C ko ṣiṣẹ, kilode?"

Lagbara PROMPT: "Mi I2C sensọ ko ni ACK (adirẹsi ko gba) Akojọ awọn ti ṣee ṣe okunfa ti o bere lati awọn julọ seese: fa-soke, wọpọ ilẹ, ti ko tọ si adirẹsi, iyara, USB capacitance, ariyanjiyan. Fun kọọkan idi, kọ ohunkohun ti mo ti ri lori SDA / SCL lori awọn kannaa analyzer ti wa ni timo, ohunkohun ti mo ti ri ti wa ni kuro. Ma ko ṣe kan ayẹwo; Mo le dín akojọ kan ti mo ti.

Awọn ailagbara tọ fun wa kan nikan amoro; Itọkasi ti o lagbara n pese maapu aisan ti o le dín si wiwọn, paṣẹ ati ijẹrisi.

Ilana lafiwe chart

Ilana

Iru

lagbara ojuami

ọpa ijerisi

UART

Series, lai aago

Rọrun, awọn ila meji

Logbonwa itupale

SPI

Tẹlentẹle, clocked

Yara, kikun ile oloke meji

Oluyanju ọgbọn (CPOL/CPHA)

I2C

Serial, adirẹsi

Awọn ẹrọ pupọ, awọn pinni diẹ

Oluyanju (ACK, fa soke)

TCP

nẹtiwọki, irinna

Gbẹkẹle, ni ibere

Oluyanju apo (Wireshark)

UDP

nẹtiwọki, irinna

Yara, kekere lairi

soso analyzer

MQTT

Ohun elo

Ìwúwo Fúyẹ́, Ọjà/ọgbà, QoS

Alagbata log + soso Yaworan

Išọra: Nini itumọ AI ti imudani ilana kan yara, ṣugbọn AI le ṣaṣepe aṣẹ bit tabi aala aaye. Ṣe idaniloju itupalẹ kọọkan lodi si ijuwe osise ti ilana naa ati fekito idanwo ti a mọ.

Awọn aṣiṣe ti o wọpọ

  • Yiyipada rẹ da lori asọtẹlẹ AI laisi wiwọn idi aṣiṣe. Wiwo itupale yoo tọ ọ lọ si idi ti o tọ.
  • Fojusi ibamu CPOL/CPHA ni SPI. "Data wa ṣugbọn ọrọ isọkusọ" jẹ igbagbogbo aiṣedeede ipo kan.
  • Ngbagbe fifa-soke ati ilẹ ti o wọpọ lori I2C. O jẹ idi ti o wọpọ julọ ti "ko ṣiṣẹ rara".
  • A ro CRC sile. Polynomial, ibere, ibere bit wa ni pato si bošewa; O jẹ idaniloju pẹlu fekito idanwo.
  • Idarudapọ MQTT QoS pẹlu iṣeduro ifijiṣẹ. QoS 0 ko ṣe iṣeduro; Aṣayan naa jẹ ati idanwo ni ibamu si ohun elo naa.

Ni akojọpọ

Ninu ẹyọ yii o ti lo AI bi iranlọwọ ti o lagbara ni ṣiṣe alaye awọn ilana bii I2C/SPI/UART ati TCP/IP, MQTT, itupalẹ fireemu/packet ati ni ọna eto idinku awọn idi ẹbi. Ṣugbọn awọn ilana jẹ kongẹ ati iwọn-idiwọn: kini laini kan ṣe ni ipinnu nipasẹ ọgbọn kan / olutupalẹ apo-iwe, deede ti itupalẹ jẹ ipinnu nipasẹ asọye deede ati fekito idanwo, idi ti aṣiṣe jẹ ipinnu nipasẹ wiwọn. Dari AI lati fun “idi ti o ṣeeṣe julọ ati wiwọn lati jẹrisi rẹ”; Jẹ ki olutupalẹ ati boṣewa pinnu.

Ohun elo iṣẹ-ṣiṣe

Yan oju iṣẹlẹ ikuna ilana ni tẹlentẹle (fun apẹẹrẹ ko si I2C ACK). Beere ilana-tẹle ati wiwọn maapu iwadii ti o ṣee ṣe lati AI pẹlu awoṣe “aṣiṣe dínkuro” awoṣe. Lẹhinna mu apẹrẹ baiti apẹẹrẹ kan (fun apẹẹrẹ fireemu kika sensọ kan) ki o si aaye pẹlu apẹrẹ “Frame/Packet parsing” ki o ṣe akiyesi arosinu endianness. Ni ipari, ṣayẹwo koodu CRC kan lodi si fekito idanwo ti a mọ pẹlu awoṣe “CRC/ checksum ijeri”.

akojọ ayẹwo

  • [] Mo jẹrisi idi ti ikuna nipasẹ wiwọn atupale, kii ṣe nipasẹ asọtẹlẹ AI.
  • [] Mo ti ṣe akojọ CPOL/CPHA lori SPI, adirẹsi / fifa soke / iṣakoso ilẹ ti o wọpọ lori I2C.
  • [] Mo ṣe afiwe fireemu/pakẹti ti n ṣalaye pẹlu asọye ilana ilana.
  • [] Mo jẹrisi awọn aye CRC/checksum pẹlu fekito idanwo.
  • [] Mo ṣe yiyan Ilana gbigbe / ohun elo ni ibamu si ibeere ati idanwo pẹlu idanwo gidi.
  • [] Mo ti tumọ itumọ ti iṣeduro ifijiṣẹ ti MQTT QoS.