STM32 és usb
Az utolsó cikk, beszéltem arról, hogy a projekt kell keresni Keil-betakarító eszközök USB, adott egy linket a projekt, és elmagyarázta, hogyan kell beállítani, hogy szinte bármilyen fórumon STM32.
A projekt interfész két tömeges endpoyntami (és ki) hajtották végre, az én „egyedi” protokoll, amely segítségével engedélyezheti, letilthatja, és svetoiody villog a kívánt időben az égő / nem ég.
Nos lefektetett egy kis programot mindezt:
Ebben a cikkben, én kiad egy kis összefoglaló, hogy milyen eszközöket lehet használni, hogy nagy mértékben egyszerűsíti az életét.
Tehát van napirenden a következő lehetőségek közül:
1) Írj maga a vezető. A feladat nehéz, hálátlan, hosszú. Itt egyszerre lehet küldeni, például a Windows Driver Foundation. Rengeteg példát, akkor vedd nyitott és alkalmazkodni, hogy megfeleljen az Ön igényeinek.
A nyilvánvaló előnye ennek a lehetőség - a döntést, hogy egy szép és kompakt. De megéri az időt ...
Bocs, ha csalódást okozott azoknak, akik azt gondolták, hogy fogom leírni ezt a lehetőséget :)
3) Egy kész eszközöket. Itt, ebben a „variáns kezdőknek és nem csak a” nem mondunk le.
De először, egy rövid kitérőt.
Hogy a Windows felismeri az USB-eszközt?
A legtöbb esetben ez a „vezetékes” a készülék VID (Vendor ID) és PID (Product ID). Vannak kivételek, mint például HID és Mass Storage, ahol a Windows felismeri a készüléket és az osztály vezető megcsúszik már főzött.
Ha csatlakoztatni az eszközt a számítógépes rendszer felismeri, de nyilvánvaló, akkor esküszöm, hogy nincs egy vezető, és kéri, hogy válassza ki .inf- fájlt.
Ez az a fájl, és az előírt, többek között, a VID és PID, valamint az utat a vezető.
Tehát találkozunk: libusbt-win32 és Jungo WinDriver.
Jungo WinDriver
Egy nagyon hasznos dolog.
A varázsló futtatása, válassza ki a VID-PID A készülék:
Generál inf-fájlt, kivéve, telepítse a vezetőt azonnal, és íme. Itt vannak a két nagy-endpoynta + menedzser, nulla endpoynt:
De a készülék meghatározott Eszközkezelő:
De ez még nem minden. Kattintson a mágikus gomb generálása kód:
És mi lesz az igazán széles a lehetőségek minden ízét:
Létrehoz projekt C # (.NET) és ő adott nekem solyushen két projekt: a tényleges program maga, és Lieb dolgozni egy USB-eszközt. Az utóbbi mindent meg kell, akár a kapcsolat-leválasztás devaysa eseményeket. Általában, ha nem zavarja, mindent lehet csökkenteni a normál olvasási-felvétel endpoynty.
Következő maguk megbirkózni? ;-)
Nos, most beszéljünk a hiányosságokat.
1) Jungo WinDriver - egy darab nagyon fizetni. Ki szeretné, hogy ideges - az árak itt.
2) Egyes USB-eszközök több konfigurációkat. Ez a ritka, de előfordul.
WinDriver ilyen munka nem függvényében a változás a konfigurációs van megjelölve még nem elérhető.
libusbt-win32
Kivonat a bin és apu programm inf-Wizard.exe. Szintén egy varázslót az inf fájlt, és ezzel együtt az összes többi szükséges fájlok telepítéséhez.
Fuss, úgy döntünk, a készüléket, tartsa inf, stb külön mappában:
A telepítéshez a jól azonnal.
Most, hogy hozzon létre a projekt, meg kell gyűjteni az összes szükséges fájlt a libusbt a lib könyvtárban, a többek között, kém, hogy hogyan működik a készülék az oltalmi kör mappában. A munka - egyszerű (lásd bulk.c)
De ez úgy tűnt, hogy egy kicsit. Ahogy egyszer kikötöttek kemény drogok, a továbbiakban C # .NET + elkezdtem keresni a megoldásokat, amelyek olyan egyszerű, mint Jungo WinDriver.
És találtam a következőket:
LibUsbDotNet
Éppen ez liby írtam egy programot az előző cikkben. Bízza endpoyntami olyan egyszerű.
Nos, miután a végrehajtási egy kis protokoll, író-olvasó és a kényelem endpoynty LED villog :)
Csak ne felejtsük el egy finomság: az egész csere USB-devaysom előfordul kezdeményezésére a házigazda. Ezért az adatok nem tartoznak bele a gazda, amíg a gazda nem akar olvasni.
Ez minden.
Itt alapvetően mindent meg kell, hogy hozzon létre egy primitív STM32 USB-eszközt. Minden kommunikáció csökken az olvasás és írás endpoynty és elemzése, hogy mi van ott mindegy is ez, és mit kell tenni róla.
Személy szerint úgy gondolom, ezt a lehetőséget is könnyebb, mint végrehajtó egy eszköz szerepel, mint egy normál osztályban.
Mint mindig, a projekt fájlokat itt.
Nos, a következő alkalommal eléri a kezét, akkor emelje fel az USB Mass Storage, és több mint egy interfész készült LED, azaz Kompozit USB-eszköz :)
Libusbt egy jó dolog, de a standard osztályok szintén nem rossz. Például a CDC osztály látható a rendszerben virtuális COM port, amely nem tud, de örülnek, de nagyon egyszerűen. Mégis, bármilyen rendszeren anélkül, hogy telepíteni a járművezetők sokkal megéri.
Nos, igen :) Csak CDC-osztály még mindig szükség van inf-fájlt, valamint a VID-PID. Nos, a Linux nem számít.
Általában az volt a probléma a következő: szervezni az USB-csere gyorsan és egyszerűen, olvasás és írás endpoynty. És ez a felismerés még a CDC már legalább egy részét, de mélyülő :)
További információkat a cikkek köszönöm, érdekes és informatív. Most fokozatosan is vehetem USB. Apránként -, mert nem látok sok értelme az USB-kreatív legyen felbontás a készülék, mert FT232. VCP - mi minden. )
ft232 költségek körülbelül ugyanaz, mint STM32F103. Ennek van értelme. )