Pārlūkprogramma: analizējiet signālus ar bezmaksas, atvērtā koda sigroka PulseView

Assball (Jūnijs 2019).

$config[ads_text] not found
Anonim

Sigrok ir lielisks signāla analīzes programmatūras komplekts, kas darbojas ar plašu saskarnes un instrumentu klāstu

TK Hareendran, rakstnieks

Sigroka projekts rada pārnēsājamu, starpplatformu, bezmaksas un atvērtā koda signālu analīzes programmatūras komplektu, kas atbalsta dažādas signālu ieguves aparatūras, ieskaitot loģiskos analizatorus, multimetrus, osciloskopus un tamlīdzīgus elementus. Lai gan šajā komplektā ir vairāki front-end apakšprojekti, tostarp sigrokcli (komandrindas saskarne, lai manipulētu ar sigroku) un sigrokqt (Qt bāzes GUI manipulēt ar sigrok) šajā rakstā es koncentrēju uz sigroka PulseView, osciloskopu, loģiskā analizatora un jaukta signāla (MSO) GUI priekšējā gala.

Pārskats, funkcijas
Sigroka analīzes komplekts darbojas dažādās operētājsistēmas platformās un pieņem datus no daudzu veidu mērīšanas ierīcēm. Atbalstīto aparatūru saraksts ir diezgan plašs (170+), un tas tiek pastāvīgi pievienots.

Papildus grafisko datu displeja un mērīšanas iespēju nodrošināšanai Suite piedāvā dažādus protokola dekodētājus, lai iegūtu digitālo datu plūsmas sajūtu. Šie dekoderi ir pagarināmi, kas rakstīti Python, un tos var sakraut, lai palīdzētu atšifrēt cauruļvadus.

Sigrock programmatūra sastāv no šādām sastāvdaļām:

  • Libsigrok : kopīga bibliotēka, kas ierakstīta C, kurā ir vispārīga infrastruktūra loģiskā analizatora datu apstrādei straumēšanas veidā. Tas satur arī atsevišķus aparatūras draiverus, kas pievieno atbalstu dažādiem loģiskajiem analizatoriem.
  • Libsigrokdecode : koplietota bibliotēka, kas rakstīta C, kurā ir protokola dekodētāja infrastruktūra un paši protokola dekoderi, kas rakstīti Python.
  • Sigrokcli : komandrindas priekšējais gals, kurā tiek izmantoti gan libsigrok, gan libsigrokdecode . Tas var iegūt paraugus no loģiskajiem analizatoriem un izlaist tos dažādos formātos uz failiem vai uz stdout un / vai palaist protokola dekodētājus iegūtajiem datiem.
  • Sigrokqt : Qt bāzes GUI sigrok, izmantojot gan libsigrok, gan libsigrokdecode . Tas ir paredzēts pārrobežu platformas GUI (tas darbojas labi un izskatās dzimtā Linux, Windows un Mac OS X), kas atbalsta datu iegūšanu un protokola dekodēšanu.

Ir arī PulseView priekšējais galds, kas pieejams kā lejupielādējams binārais vai izpildāms fails dažādām vidēm, tostarp Windows, Linux, Mac OS X un Android, un projekts nodrošina PulseView nakts Windows instalētājus. PulseView ir arī diezgan labs saraksts ar atbalstītajiem protokola dekodētājiem, un libsigrokdecode bibliotēka tiek izlaista no kastes ar populāro protokola dekodētāju kolekciju. Ja to nepietiek, varat rakstīt savus protokola dekodētājus, izmantojot koda atvērto raksturu.

PulseView zem Windows
Viena no pirmajām lietām, kas jāievēro, ir tas, ka sigroka komplektam ir vajadzīga noteikta veida aparatūra, lai saskanētu ar signāliem, kurus vēlaties pārbaudīt. Lai izmantotu libsigrok (izmantojot sigroka priekšējo galu) operētājsistēmā Windows, jums ir jāinstalē vēlamā ierīces pareizais draiveris. Ja ierīce ir savienota ar (virtuālo) COM portu, libsigrok nav nepieciešams īpašs draiveris; ir nepieciešams tikai ražotāja norādītais vadītājs.

Tomēr USB ir atšķirīgs stāsts. Ierīces īpašais USB draiveris, kas piegādāts kopā ar pārdevēja programmatūru, gandrīz visos gadījumos nedarbosies. Tādējādi jums būs jāinstalē WinUSB draiveris, izmantojot izpildāmo failu "Zadig" no libwdi projekta. Par laimi PulseView uzstādītāji kopā ar Zadig izpildāmiem failiem piegādā kopējo ērtību, un tie ir pieejami, izmantojot Windows "Start" izvēlni.

Turklāt Windows uzstādītājiem ir arī visi programmaparatūras faili, kā arī piemēri dump faili no sigrokdumps krātuves. Dump faili (kas atrodas PulseView instalēšanas direktorijas apakšdirektorijā "piemēri") ir reprezentatīvi datu faili, kurus var izmantot, lai ērti pārbaudītu dažādas priekšgala funkcijas, protokola dekodētājus un tamlīdzīgus elementus.

Hands-on testēšana
Es izdarīju savu pirmizrāde PulseView testā, izmantojot iebūvētu ierīci, kas ģenerē daļēji izlases demonstrācijas signālu, kuru var apskatīt bez nepieciešamības izmantot kādu aparatūru.

Tālāk es atveru piemēru failu, lai sagatavotu DS1307 signālu (faktiski saruna starp mikrokontrolleru un DS1307) un izmantotu to, lai pārbaudītu sigroka atbalstu signālu dekodēšanai. Pēc pāris sekundēm meklēšanā ar tālummaiņu, man bija rezultāts, kas parādīts zemāk. Ņemiet vērā, ka sigrok parādīja ne tikai dekodētus I²C ziņojumus, bet arī atšifrēja I²C komandas, izmantojot atbalstītu "otrā līmeņa protokola dekodētāju". Tas ir milzīgs uzlabojums, salīdzinot ar impulsiem, kas skatīti un skaitīti osciloskopa ekrānā!

Tomēr, lai strādātu ar reālos signālus, izmantojot sigroka komplektu, ir ļoti svarīgi, lai vienam būtu ārēja aparatūra, kas var uztvert signālus. Pašlaik man ir tikai viena "saderīga" aparatūras daļa - 24-MHz, 8 kanālu Saelae loģisko analīžu klons, kas balstīts uz Cypress FX2 mikrokontrolleru. Šis Saleae loģikas analīzes klons var ierakstīt līdz astoņiem kanāliem 24 MHz diapazonā no 0 līdz 5 V. Tomēr, pat ja tas ir klons, Sigrok automātiski konstatēja ierīci, kad es to vienkārši pievienoju un izmantoju iepriekš instalētus draiverus, kas man bija mans klēpjdators.

Mana reālās pasaules testa laikā es savienoju Saleae klonu ar izstrādāto temperatūras mežizstrādes projektu, kuru izveidoja, pamatojoties uz DS18B20 vienvirziena digitālo temperatūras sensoru no Maxim Integrated. Vienvirziena protokols vispirms nosūta datus LSB, izmantojot laika nišus, kas tiek uzsākti, kad autobusa vadītājs pavelk zemo līniju. Kapteinis atbrīvo līniju 15 mikrosekundēs, lai līnija varētu būt augsta vai saglabāt zemu, cik nepieciešams, lai attēlotu datu bitu. Laika joslas beigās līnija atgriežas augstu, lai autobusa meistars varētu uzsākt jaunu laika nišu.

Attēlā redzamais uztvertais signāls attēlo saziņu starp sensoru un mikrokontrolleru. Autobusa meistars izsniedz "Match rom" komandu (55h), kam seko ierīces unikālā 64 bitu ROM koda adrese. Kā redzams, mēģinājums atšifrēt vienviras datu plūsmu no tikai signāla izsekojamības vislabāk ir nogurdinošs. Taču sigroks un PulseView viegli atvieglo operāciju, nodrošinot lasāmāku rezultātu. Es apstiprinu rezultātu ar "PuTTY" termināļa emulatora palīdzību.

Tālāk es mēģināju kaut ko darīt ar Xprotolab Plain breadboard osciloskopu, ko es uzrakstīju par agrāk. Diemžēl tas nav atbalstīto saderīgo aparatūras veidu vidū. Es varētu rakstīt savu vadītāju, bet tajā laikā es nevēlējos to sajaukt ar to. Varbūt vēlāk.

Beigu piezīme
Sigrok ir diezgan lielisks programmatūras komplekts, kas atbalsta plašu instrumentu klāstu un to saskarnes starp mūsu testējamām ķēdēm un mūsu datoru. Kopā ar PulseView priekšējo galu tā darbojas ar ierīcēm, sākot no lētiem USB loģikas analizatoru kloniem līdz profesionāliem digitālajiem multimetriem un osciloskopiem. Mans apsveikums atvērtā koda kopienai un Joel Holdsworth, it īpaši, par lielisko darbu PulseView.

Vēlas vairāk? Šeit ir daži TK pārējie praktiskie vērtējumi:
Pārlūkot rokasgrāmatā: ieslēdziet un atskaņojiet IoT ar Wio Link
Pārskats par rokas režīmu: Sparky vienvirziena dators multivides, VoIP un autonomai skaitļošanai
Pielāgošanas pārbaude: Jailbreaking taimeris, lai izveidotu MCU attīstības platformu