Kitengo 7 / 12

Itifaki za Mawasiliano na Rafu ya Mtandao

Faida:

  • Uwezo wa kuchambua muundo wa fremu/pakiti ya itifaki kama vile I2C/SPI/UART na TCP/IP, MQTT kwa msaada wa AI.
  • Uwezo wa kupunguza makosa ya itifaki (wakati, kushughulikia, ukaguzi) kama dhana na AI
  • Uwezo wa kuthibitisha tafsiri ya itifaki ya AI na hati ya kawaida, kipimo cha uchambuzi (mantiki / pakiti)

Itifaki ni seti ya sheria ambazo vifaa viwili vinakubaliana kuelewana: kwa kasi gani, kwa utaratibu gani, katika muundo gani watazungumza. Iwapo kitambua halijoto kinazungumza na kidhibiti kidogo kupitia I2C au kifaa kinazungumza na seva ya wingu kupitia TCP/IP na MQTT inategemea itifaki. Katika kitengo hiki, utaona jinsi ya kutumia AI kuchanganua fremu/pakiti za itifaki, kupunguza hitilafu za itifaki, na kuelewa mrundikano wa mawasiliano (tabaka juu ya nyingine, kutoka safu halisi hadi programu). AI ina nguvu katika kuelezea itifaki na kuzalisha hypotheses; lakini kile ambacho mstari hufanya kweli hujulikana tu na kipimo cha kichanganuzi chake (kichanganuzi cha kimantiki, kichanganuzi cha itifaki/pakiti) na hati ya kawaida.

Itifaki za mfululizo zilizopachikwa: I2C, SPI, UART

Chips kwenye ubao kwa ujumla huzungumza na itifaki tatu za mfululizo:

  • UART: Mistari miwili (TX/RX), hakuna mstari wa saa; Pande zote mbili lazima ziwekwe kwa kasi sawa (kiwango cha baud). Rahisi lakini maingiliano inategemea kasi.
  • SPI: Saa (SCLK), pembejeo / pato la data (MOSI/MISO) na chagua (CS) mistari; Haraka, duplex kamili, lakini inahitaji pini zaidi. Upeo wa saa/awamu (CPOL/CPHA) lazima zilingane pande zote mbili.
  • I2C: Laini mbili (SDA/SCL), msingi wa anwani, vifaa vingi kwenye mstari mmoja; vipinga vya kuvuta na hali ya kawaida ya ardhi. Polepole lakini kiuchumi.

AI inaelezea vizuri sana jinsi itifaki hizi zinavyofanya kazi, muundo wao wa mfumo, na sababu za kawaida za kutofaulu. Huorodhesha kwa utaratibu sababu zinazowezekana (anwani isiyo sahihi, kukosa kuvuta, kasi isiyolingana, kutokuwepo kwa maelewano, ugomvi wa laini, urefu/uwezo wa kebo) wakati kifaa cha I2C kinapokosa kuitikia. Lakini ni ipi kati ya hizi ni halisi inaweza kueleweka kwa kupima mstari na analyzer ya mantiki na kuangalia mawimbi ya SDA/SCL; AI inatoa hypothesis, kipimo huamua.

Kidokezo: Katika kushindwa kwa itifaki ya mfululizo, waulize AI "orodhesha sababu zinazowezekana kutoka kwa uwezekano mkubwa hadi uwezekano mdogo, na chochote ninachoona kwenye kichanganuzi kwa kila kimoja kinathibitishwa." Kwa njia hii unafanya kipimo kilelewe; Badala ya kujaribu kila sababu moja baada ya nyingine, mwonekano wa uchanganuzi unakupeleka kwenye tawi linalofaa.

Itifaki za mtandao: TCP/IP, UDP, MQTT, CoAP

Itifaki za tabaka hutumika wakati vifaa vinapounganishwa kwenye mtandao na wingu. Rafu ya TCP/IP kimsingi imewekwa safu: kiungo cha kimwili/data (Ethernet, Wi-Fi), mtandao (IP: anwani na uelekezaji), usafiri (TCP: unaotegemewa, unaofuatana, unaodhibitiwa/ UDP: haraka, usioaminika), na utumiaji (HTTP, MQTT, CoAP). Dhana kuu:

  • TCP dhidi ya UDP: TCP hulipa fidia kwa hasara na utaratibu wa dhamana lakini huanzisha muda na malipo ya ziada; UDP ni ya haraka lakini haina hakikisho la uwasilishaji (sauti/video ya wakati halisi inayopendelewa kwa telemetry).
  • MQTT: Itifaki ya utumaji ujumbe ya IoT nyepesi ambayo inafanya kazi na modeli ya uchapishaji-kusajili; ujumbe kupitia mada kupitia wakala. Viwango vya QoS viliweka uhakikisho wa uwasilishaji.
  • CoAP: Itifaki ya HTTP-kama, UDP-based lightweight kwa vifaa vikwazo.

AI huchanganua muundo wa fremu/pakiti ya itifaki hizi, hukusaidia kutafsiri kinasa cha Wireshark (kichanganuzi cha pakiti), na kukagua muundo wa mada ya MQTT. Lakini trafiki halisi ni nini inathibitishwa na kunasa pakiti, na tabia ya seva inathibitishwa na majaribio halisi.

Checksum, CRC na uundaji

Itifaki nyingi hutumia hundi au CRC (Ukaguzi wa Upungufu wa Mzunguko) ili kuangalia kuwa data haijaharibika: mtumaji hukokotoa thamani ya uthibitishaji kutoka kwa data, mpokeaji hufanya hesabu sawa na kulinganisha. AI hufafanua na kuandika msimbo wa kukokotoa CRC/cheki, lakini maelezo kama vile uteuzi wa polinomia, kudumu, thamani ya awali n.k. ni mahususi kwa kiwango; Msimbo wa CRC unaozalishwa na AI ni lazima ulinganishwe kwa neno moja na ufafanuzi rasmi wa itifaki na uthibitishwe dhidi ya vekta ya majaribio inayojulikana.

kesi tatu ndogo

Kesi ya 1 - kuvuta-up isiyokamilika. Timu haiwezi kuendesha kihisi cha I2C kwenye ubao wa chakula; haitambui anwani ya kifaa (hakuna ACK). AI inaorodhesha kukosa kipinga cha kuvuta juu na msingi wa kawaida kama sababu inayowezekana zaidi. Wakati wa kuangalia mstari wa SDA na analyzer mantiki, inaonekana kwamba ishara haiwezi kufikia kikamilifu kiwango cha juu; Mawasiliano huanza wakati vipinga vya kuvuta-up vinaongezwa. Somo: AI ilionyesha sababu inayowezekana zaidi, mchambuzi aliithibitisha.

Kesi ya 2 - Hali ya SPI si sahihi. Mhandisi anasoma data ya uwongo kutoka kwa kifaa cha SPI. AI inapendekeza kutolingana kwa polarity ya saa (CPOL/CPHA) kama sababu inayowezekana. Katika analyzer, saa inaonekana sampuli tofauti kuliko makali ambayo kifaa kinatarajia; Wakati hali imesahihishwa, data inakuwa ya maana. Somo: Dalili ya "data lakini isiyo na maana" katika SPI mara nyingi huwa hailingani; kipimo kinaweka hili wazi.

Kesi ya 3 - MQTT QoS kutokuelewana. Mwanafunzi wa mafunzo hutuma telemetry kupitia MQTT lakini anaona baadhi ya ujumbe umepotea na anauliza AI. AI inasema kwamba QoS 0 ni "mara moja, utoaji hauhakikishiwa"; Inaeleza kuwa QoS 1/2 inahitajika ili kuhakikisha uwasilishaji, lakini hii inaleta malipo ya juu na ucheleweshaji. Mwanafunzi anabadilisha hadi QoS 1 kulingana na umakinifu wa telemetry na kuthibitisha tabia ya wakala kwa majaribio halisi. Somo: Eleza chaguo la itifaki ya AI; Chaguo sahihi hufanywa kulingana na programu na kuthibitishwa na majaribio.

Violezo vya haraka vinavyoweza kunakiliwa

PROTOCOL FAILURE NAVIGATION TEMPLATE"[I2C/SPI/UART/TCP/MQTT] mawasiliano yana dalili ifuatayo: [dalili]. Orodhesha sababu zinazowezekana kutoka UWEZEKANO SANA hadi Uwezekano mdogo. IMEKOMESHWA. USIFANYE utambuzi wa uhakika;

KIOLEZO CHA UCHAMBUZI WA MFUMO/PEKITI "Vunja maudhui yafuatayo ya [I2C/SPI/UART baiti / ukamataji wa pakiti] katika nyuga na ueleze kila sehemu (anwani, amri, data, checksum/CRC, bendera). Taja kwa uwazi wazo lako kuhusu kutokamilika na utaratibu wa biti. Kumbuka kuwa ninahitaji kuthibitisha maoni yako kwa itifaki na: data rasmi ya testpa.

KIOLEZO CHA UTHIBITISHO CRC/CHECKSUM"Eleza hesabu ya CRC/cheki ya [itifaki]: polynomial, thamani ya awali, mpangilio kidogo, mwisho

KIOLEZO CHA UCHAGUZI WA PROTOCOL"Fanya ulinganisho wa itifaki ya usafiri/maombi kwa programu ifuatayo: [sharti: dhamana ya uwasilishaji, muda wa kusubiri, nguvu, kipimo data, kizuizi cha kifaa]. Linganisha chaguo za TCP/UDP na MQTT/CoAP/HTTP na vigezo hivi. USIWEKE chaguo wazi; sawazisha kila chaguo na useme kwamba chaguo linapaswa kuthibitishwa kwa kupima halisi."

Mwongozo dhaifu / Mwongozo thabiti

TAARIFA DHAIFU: "I2C haifanyi kazi, kwa nini?"

STRONG PROMPT: "Sensor yangu ya I2C haina ACK (anwani haijakubaliwa). Orodhesha sababu zinazowezekana kuanzia uwezekano mkubwa zaidi: kuvuta-up, ardhi ya kawaida, anwani isiyo sahihi, kasi, uwezo wa cable, ugomvi. Kwa kila sababu, andika chochote ninachokiona kwenye SDA/SCL kwenye kichanganuzi cha mantiki kinathibitishwa, chochote ninachokiona kinaondolewa. Usifanye uchunguzi mdogo kwa orodha hiyo naweza.

Mwongozo dhaifu hutoa nadhani moja; Kidokezo chenye nguvu hutoa ramani ya uchunguzi ambayo inaweza kupunguzwa hadi kipimo, kupangwa na kuthibitishwa.

Chati ya kulinganisha ya itifaki

itifaki

Aina

hatua kali

chombo cha uthibitishaji

UART

Mfululizo, bila saa

Rahisi, mistari miwili

Mchambuzi wa kimantiki

SPI

Msururu, uliofungwa

Haraka, duplex kamili

Kichanganuzi cha kimantiki (CPOL/CPHA)

I2C

Serial, kushughulikiwa

Vifaa vingi, pini chache

Kichanganuzi (ACK, kuvuta juu)

TCP

mtandao, usafiri

Kuaminika, kwa utaratibu

Kichanganuzi cha pakiti (Wireshark)

UDP

mtandao, usafiri

Haraka, utulivu wa chini

analyzer ya pakiti

MQTT

Maombi

Nyepesi, baa/ndogo, QoS

logi ya wakala + kukamata pakiti

Tahadhari: Kuwa na AI kutafsiri kunasa itifaki ni haraka, lakini AI inaweza kudhani kimakosa mpangilio au mpaka wa sehemu. Thibitisha kila uchanganuzi dhidi ya maelezo rasmi ya itifaki na vekta ya majaribio inayojulikana.

Makosa ya kawaida

  • Kuibadilisha kulingana na utabiri wa AI bila kupima sababu ya kosa. Mtazamo wa analyzer unakuongoza kwenye sababu sahihi.
  • Inapuuza utiifu wa CPOL/CPHA katika SPI. "Kuna data lakini ni upuuzi" mara nyingi ni hali ya kutopatana.
  • Kusahau kuvuta-juu na msingi wa kawaida kwenye I2C. Ni sababu ya kawaida ya "kutofanya kazi kabisa".
  • Kwa kuchukulia vigezo vya CRC. Polynomial, start, bit order ni maalum kwa kiwango; Inathibitishwa na vekta ya majaribio.
  • Inachanganya MQTT QoS na dhamana ya uwasilishaji. QoS 0 haitoi dhamana; Uchaguzi unafanywa na kupimwa kulingana na maombi.

Kwa muhtasari

Katika kitengo hiki umetumia AI kama msaada mkubwa katika kueleza itifaki kama vile I2C/SPI/UART na TCP/IP, MQTT, uchanganuzi wa fremu/pakiti na kupunguza kwa utaratibu sababu za makosa. Lakini itifaki ni sahihi na imefungwa kwa kiwango: kile ambacho mstari hufanya kweli imedhamiriwa na analyzer ya mantiki / pakiti, usahihi wa uchambuzi unatambuliwa na ufafanuzi rasmi na vector ya mtihani, sababu ya kosa imedhamiriwa na kipimo. Elekeza AI kutoa "sababu inayowezekana zaidi na kipimo cha kuithibitisha"; Hebu analyzer na kiwango kuamua.

Jukumu la maombi

Chagua hali ya kutofaulu kwa itifaki ya mfululizo (k.m. hakuna I2C ACK). Omba ramani ya uchunguzi inayoweza kuthibitishwa kwa mpangilio na kipimo kutoka kwa AI ukitumia kiolezo cha "protocol hitilafu ya kupunguza". Kisha chukua safu ya sampuli ya baiti (k.m. fremu ya kusoma ya vitambuzi) na uiweke na muundo wa "Uchanganuzi wa Fremu/pakiti" na utambue dhana ya kuishia. Hatimaye, thibitisha msimbo wa CRC dhidi ya vekta ya majaribio inayojulikana kwa kiolezo cha "CRC/checksum verification".

orodha ya ukaguzi

  • [ ] Nilithibitisha sababu ya kutofaulu kwa kipimo cha kichanganuzi, si kwa ubashiri wa AI.
  • [ ] Niliorodhesha CPOL/CPHA kwenye SPI, anwani/vuta-up/udhibiti wa kawaida wa ardhini kwenye I2C.
  • [ ] Nililinganisha uchanganuzi wa fremu/pakiti na ufafanuzi rasmi wa itifaki.
  • [ ] Nilithibitisha vigezo vya CRC/checksum kwa vekta ya majaribio.
  • [ ] Nilichagua itifaki ya usafiri/programu kulingana na mahitaji na kuijaribu kwa majaribio halisi.
  • [ ] Nimefasiri kwa usahihi maana ya dhamana ya uwasilishaji ya MQTT QoS.