Megosztás a következőn keresztül:


I2C WinRT IO stressztesztek (EEPROM szükséges)

Az I2C-tesztek a Windows.Devices.I2c WinRT API-kon keresztül végzik a felhasználói élménynek kitett I2C-vezérlők funkcionális és stressztesztelését. A tesztek két részre oszlanak: alapfokú funkcionális és stressztesztekre, valamint speciális funkcionális tesztekre. Az alapszintű funkcionális tesztek tesztelésének hatóköre a következőket foglalja magában:

  • Annak ellenőrzése, hogy egy megadott felhasználóbarát névvel rendelkező I2C-vezérlő elérhető-e a usermode-ból.
  • Annak ellenőrzése, hogy az adatok helyesen íródnak-e az órajelek és a pufferhosszok 8 bájtig (EEPROM oldalméret).
  • Annak ellenőrzése, hogy az adatok megfelelően olvashatók-e az órajelek és a pufferhosszok tartományán.
  • Annak ellenőrzése, hogy az írás-újraindítás-olvasási sorozatok (WriteRead-ek) megfelelően vannak-e végrehajtva az órajelek és pufferhosszok tartományán keresztül.
  • Annak ellenőrzése, hogy az illesztőprogram STATUS_NO_SUCH_DEVICE-t ad vissza, amikor egy írási, olvasási vagy WriteRead műveletet próbálnak végrehajtani egy nem nyugtázott alárendelt eszköz címére. Ezt az I2cDevice::Write/Read/WriteRead() jelenti HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) néven, és az I2cDevice::WritePartial/ReadPartial/WriteReadPartial() jelentése pedig I2cTransferStatus::SlaveAddressNotAcknowledged.
  • Annak ellenőrzése, hogy az API-k és az illesztőprogramok megfelelően működnek-e stresszhelyzetben. A stressztesztek egyidejűleg, hosszú időtartamon keresztül, külön eszközkezelőkkel írnak és olvasnak két EEPROM-ból.

A speciális funkcionális tesztek tesztelésének hatóköre a következőket foglalja magában:

  • Annak ellenőrzése, hogy az adatok helyesen íródnak-e a legfeljebb 16384 bájtos pufferhosszokhoz.
  • Annak ellenőrzése, hogy i2C-újraindítási feltétel jön-e létre a WriteRead-sorozatra válaszul.
  • Annak ellenőrzése, hogy amikor az alárendelt eszköz NAK-ot küld, miközben a mester még bájtokat ír, az illesztőprogram a kérést STATUS_SUCCESS kóddal zárja le, és a ténylegesen írt bájtok számát a kérelemadatokon jelenti. Ezt részleges átvitelnek nevezzük, és a WritePartial() és a WriteReadPartial() I2cTransferStatus::PartialTransfer státuszként jelenti.
  • Annak ellenőrzése, hogy az 500 ms-ig terjedő óra engedélyezett-e, és nem okozza-e az átvitel meghiúsulását.
  • Annak ellenőrzése, hogy ha a rabszolgaeszköz hosszabb ideig (10+ másodpercig) alacsonyan tartja az óravonalat, az illesztőprogram legfeljebb 10 másodpercen belül befejezi az átvitelt egy hibakóddal. A hibakódot STATUS_IO_TIMEOUT kell megadni, de kompatibilitási okokból ez nem ellenőrizhető.

Az alapvető funkcionális tesztek és a stressztesztek két külsőleg csatlakoztatott EEPROM-en futnak. A speciális funkcionális tesztek egy mbed LPC1768 egyéni belső vezérlőprogrammal futnak. A mbed LPC1768 egy népszerű mikrovezérlő prototípus-kezelő platform, amely számos online viszonteladótól vásárolható meg, beleértve a Farnell, a Digikey és az Adafruit termékeket. Az mbed belső vezérlőprogramjának frissítése olyan egyszerű, mint egy fájl húzása és elvetése. A belső vezérlőprogram forráskódja elérhető a GitHubon. A mbed előkészítésére és a tesztek futtatására vonatkozó utasításokat alább találja.

Teszt részletei

   
Specifikációk
  • Device.BusController.I2C.WinRT.Discretional
platformok
    támogatott kiadások
    • Windows 10
    • Windows 10, 1511-es verzió
    • Windows 10, 1607-es verzió
    • Windows 10, 1703-es verzió
    • Windows 10, 1709-es verzió
    • Windows 10, 1803-es verzió
    • Windows 10, 1809-es verzió
    • Windows 10, 1903-es verzió
    • A Windows 10 következő frissítése
    Várható futási idő (percben) 240
    Kategória Fejlődés
    Időtúllépés (percben) 10 000
    Újraindítást igényel hamis
    Speciális konfiguráció szükséges igaz
    Típus automatikus

     

    További dokumentáció

    Az ezen a szolgáltatásterületen végzett tesztek további dokumentációval rendelkezhetnek, beleértve az előfeltételeket, a beállítási és hibaelhárítási információkat, amelyek az alábbi témakör(ek)ben találhatók:

    A teszt futtatása

    Az alapvető funkcionális és stressztesztek futtatása

    A tesztek futtatásához a következő hardverre lesz szüksége:

    Csatlakoztassa az EEPROM-eket az alábbi ábrán látható módon, és csatlakoztassa az SDA-t és az SCL-t a tesztelt eszközhöz.

    i2c eeprom schematic

    Most már ütemezheti az alapvető funkcionális és stresszteszteket a HLK-kezelőn keresztül.

    A speciális funkcionális tesztek futtatása

    A speciális funkcionális tesztek ellenőrzik a NACKing viselkedését, a lefagyott buszfeltételeket, az óranyújtást és az ismétlődő indításokat. A tesztekhez egy mbed LPC1768 egyéni belső vezérlőprogramot kell csatlakoztatni a tesztelt eszközhöz. A tesztek futtatása előtt be kell töltenie a HLK szoftvert az mbed LPC1768 rendszerére. Így frissítheti a firmware-t:

    1. Csatlakoztassa a mbed LPC1768 USB-n keresztül a pc-hez. Eltávolítható meghajtóként jelenik meg a számítógépen.
    2. A meghajtó megnyitása a Fájlkezelőben
    3. Másolja a c:\Program Files (x86)\Windows Kits\10\Hardware Lab Kit\Tests\x86\iot\busses-tester-mbed_LPC1768.bin a mbed fájlba
    4. A mikrovezérlő alaphelyzetbe állításához nyomja le az mbed gombot

    Ezután drótozza fel a mbed-et az eszközére a tesztelés alatt. Csatlakoztassa a mbed over USB-t az eszközhöz tesztelés alatt. Ezután végezze el az I2C-kapcsolatokat (mbed pinout),

    1. Csatlakoztassa az mbed pin 9 -et (P0.0/SDA) a tesztelt eszköz SDA-tűjéhez
    2. Csatlakoztassa az mbed pin 10 -et (P0.1/SCL) a tesztelt eszköz SCL-tűjéhez
    3. Mbed GND csatlakoztatása egy GND pin-kódhoz a tesztelt eszközön

    A mbed belső lekéréses ellenállásokkal rendelkezik, amelyek engedélyezve vannak az SDA- és SCL-vonalakon, és nem igényelnek külső lekéréses ellenállásokat.

    Most már ütemezheti a HLK-kezelő speciális funkcionális tesztjeit.

    hibaelhárítása

    A HLK-teszthibák általános hibaelhárítását a Windows HLK-teszthibák hibaelhárításacímű témakörben találja.

    Javasoljuk, hogy futtassa a teszteket a parancssorban, hogy betekintést nyerjen a hibákba, és gyorsan iterálja a megoldásokat. A következő lépéseket kell elvégeznie a tesztek futtatásához a parancssorban:

    1. Másolja %programfiles(x86)%\Windows Kits\10\Testing\Runtimes\TAEF\<arch>\MinTe a c:\data\minte mappába.

    2. Másolja Windows.Devices.LowLevel.UnitTests.dll %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\<arch>\iot fájlból a c:\data mappába az eszközön.

    3. Telnet vagy ssh az eszközre

    4. Váltás a c:\data könyvtárra

    5. Futtassa a teszteket:

      minte\te windows.devices.lowlevel.unittests.dll /name:I2c*
      

    Parancssori teszt használata:

    minte\te windows.devices.lowlevel.unittests.dll [/name:test_name] [/select:select_clause] [/p:I2cFriendlyName=friendly_name] [/p:Duration=duration]
    
    • test_name – a futtatandó teszt neve, amely helyettesítő karaktereket is tartalmazhat. Példák: /name:I2c*, /name:I2cEepromWriteTests#metadataSet0::VerifyWrite#metadataSet0
    • select_clause – TAEF kiválasztási záradék. Példa: /select:"@name='I2c*' és nem(@name='I2cTestsEx*')"
    • friendly_name - az I2C-vezérlő teszt alatti barátságos neve. Ha nincs megadva, a rendszer az első számba vett vezérlőt használja. Példák: /p:I2cFriendlyName=I2C0
    • időtartam – mennyi ideig futtassa a stresszteszteket. Példák: /p:Duration=10s (10 másodperc), /p:Duration=1m (1 perc), /p:Duration=2h (2 óra), /p:Duration=1d (1 nap)

    Példák:

    Az alapszintű funkcionális tesztek futtatásához

    minte\te windows.devices.lowlevel.unittests.dll /select:"@name='I2c*' and not(@name='I2cTestsEx*')"
    

    A speciális funkcionális tesztek futtatásához

    minte\te windows.devices.lowlevel.unittests.dll /name:I2cTestsEx::*
    

    Ha egy adott I2C-vezérlőpéldányon szeretné futtatni a teszteket, adja meg a rövid nevet az I2cFriendlyName tesztparaméternek,

    minte\te windows.devices.lowlevel.unittests.dll /name:I2c* /p:I2cFriendlyName=I2C0
    

    Egy adott teszt futtatásához adja át a teljes tesztnevet a /name paraméternek:

    minte\te windows.devices.lowlevel.unittests.dll /name:I2cNonexistentSlaveAddressTests::TestWriteRead
    

    Az ajánlott 8 órás időtartamban indítsa el a stresszteszteket azzal, hogy futtassa a

    minte\te windows.devices.lowlevel.unittests.dll /name:I2cStressTests::StressIoConcurrent /p:Duration=8h
    

    A manuális hibaelhárítást segítő eszköz az I2cTestTool. Az I2cTestTool egy egyszerű segédprogram az I2C parancssorból való interakcióhoz.

    További információk

    paraméterek

    Paraméter neve Paraméter leírása
    I2cFriendlyName A vizsgált I2C-vezérlő rövid neve (pl. I2C0).
    Időtartam Meghatározza, hogy mennyi ideig futtassa az egyes stresszteszteket. pl. 30 mp, 1 p, 1 ó, 1 n