A probléma megoldására a Microchip a FlexConnect fantázianevű technológiai megoldását ajánlja, amely egyedi a cég saját, USB253x, USB3613, USB3813 és USB46x4 termékszámok alatt létező USB elosztóinál érhető el. A FlexConnect lehetővé teszi, hogy az elosztó dinamikusan változtassa a feltöltési vagy letöltési irányban működő fizikai portokat, így lehetőséget ad olyan eszközök tervezésére, amelyek két külön, dedikált csatlakozó nélkül is képesek USB gazdavezérlőként és eszközként működni.
Alkalmazások
Az olyan hordozható alkalmazások, mint az okostelefonok vagy tabletek, képesek gazdaként és eszközként is működni. Ha ezen alkalmazások tartozékait FlexConnecttel bővítik, a dokkoló vagy maga az eszköz képességei kiterjeszthetők: ha például a dokkoló letöltésirányú FlexConnect portja támogathat gazdavezérlő és eszközszerepének betöltésére is alkalmas mobileszközt, átválthat a két szerep között.
Sokan használják ezeket a mobileszközeiket autóban is. A FlexConnect-támogatású autósinformatikai rendszer nagy előnye, hogy viselkedhet gazdaként, ha például USB-s adattárolót vagy valamilyen memóriakártya-olvasót csatlakoztatunk rá, de eszközként is, ha – mondjuk – mobiltelefonunkat vagy tabletünket csatlakoztatjuk rá, és vezérlőparancsokat akarunk rajtuk keresztül adni az autónak.
E technológiának még az automata tesztrendszerek is hasznát vehetik, amelyek lehetővé teszik az új SoC firmware letöltését, a többi eszközzel folytatott adatcserét és az automatizált tesztrutinok végrehajtását is (lásd 1. ábra).
Lehetséges, hogy a mikrokontroller szoftvere nem minden esetben képes a csatlakoztatott eszközök teljes körű tesztelésére, így egy automatizált tesztrendszer jelentősen csökkentheti a költségeket. Ez azt jelenti, hogy szükséges lehet olyan belső mérőbefogókra, amelyek miatt az USB elosztónak tudnia kell irányt váltani a feltöltés és letöltés között. A FlexConnect technológia lehetővé teszi, hogy a tesztrendszer az USB elosztót anélkül vezérelje, hogy az USB alrendszerben bármilyen változtatást végre kellene hajtani.
Követelmények
Többféle lehetőség adott arra, hogy az USB gazdavezérlő átruházza az eszközre a busz tulajdonjogát. Ha egy elosztó kerül a rendszerbe, további tényezőket kell figyelembe venni annak érdekében, hogy minden eszköz „tisztában” legyen a saját maga által alakítandó szereppel. Az alábbi alacsony szintű jeleket kell figyelembe venni:
- Vbus: általában 5 V, amelyet a gazdavezérlő szolgáltat,
- DP: a gazdánál 15 kΩ-os lehúzó ellenállás, az eszköznél 15 kΩ-os felhúzó ellenállás 3,3 V feszültségre,
- DM: a gazdánál 15 kΩ-os lehúzó ellenállás,
- ID: OTG (On the Go) alkalmazásokban használt opció, az OTG-kompatibilis eszköz végzi a felhúzását,
- GND: közös földelés.
Egy port kétféle módon válhat gazdavezérlőből eszközzé. Az első lehetőség, hogy a processzor alacsony szintű szoftverrel dinamikusan állapítja meg, hogy az adott port gazdaként vagy eszközként működik-e. Ha a gazda küld egy speciális parancsot az eszköznek, amelyben irányváltásra szólítja fel, a szoftver ezzel párhuzamosan szintén lefuttat egy alacsony szintű irányváltási procedúrát. Az OTG specifikációban ennek a neve gazdanavigációs protokoll (HNP – Host Navigation Protocol). Ezzel a belső módszerrel a gazda fenntartja a Vbus tápfeszültséget, miután szerepet változtatott és eszközként folytatja a működését.
A második lehetőség jelezni az ID ponton keresztül, hogy az USB port gazdaként vagy eszközként funkcionáljon. Ha az ID pont monitorozása során az eszköz úgy találja, hogy magas szinten van, az eszköz ellenőrzi gazdavezérlő jelenlétét a Vbus monitorozásával, és amennyiben talál gazdát, eszközként működik tovább. Ha az ID alacsony szinten van, az eszköz 5 V feszültséget ad Vbus-ra és gazdaként működik tovább.
Korábban ezt huzalozással oldották meg. A µA csatlakozónál az ID rövidre van zárva a GND-vel, és a kábel másik végén standard B dugasz található. A µB csatlakozónál az ID lebeg, a kábel másik végén pedig standard A dugasz található. Az intelligens USB rendszer képes az ID pont állapotának változtatására, és ezáltal az OTG portok gazda/eszköz szerepének beállítására.
Ha a belső szerepmegváltoztató paranccsal történik az irányváltoztatás, az USB busz vezérlése az új gazdához kerül át, ami azt jelenti, hogy az eredeti rendszer az új gazdavezérlő szoftverének egészében ki van szolgáltatva. Az eredeti rendszer azonban képes a vezérlés visszavételére Vbus eltávolításával. Ha az új gazda felfüggeszti az eredeti rendszert, nem küld tovább kereteleje (SoF) csomagokat, és a rendszer célszerűen kis fogyasztású üzemállapotba kerül át. Az SoF csomagok abban az esetben is eltűnnek, ha az új gazda teljes egészében leválasztódik.
Ha a külső szerepváltoztató procedúrával dolgozunk, a Vbus és ID állapotokat szükséges figyelni. Az új gazdavezérlő leválasztásának meghatározásához Vbus eltávolítása szükséges. Ha az új gazda vissza akarja adni a vezérlést az eredeti rendszernek, az ID pontot földelik.
A FlexConnect engedélyezése
Három lehetőség van a FlexConnect engedélyezésére: az SMBus-on keresztül, egy digitális kivezetőpont magas szintre kapcsolásával, vagy pedig egy egyedi konfigurációs csomag elosztóvezérlőhöz küldésével. Léteznek különféle, magasabb szintű utak is a FlexConnect engedélyezésére és használatára, például az OTG segítségével.
Bár az USB elosztó nem teljesen felel meg az OTG-nek, a rendszer mégis élvezheti az OTG-funkcionalitás néhány előnyét a dinamikus irányváltoztatás implementálására. Sok processzor rendelkezik OTG-képes USB porttal, de portonként csak egy USB eszköz engedélyezett, az eszközök számának kiterjesztéséhez pedig USB elosztóra van szükség. Az ID kivezetőpont szolgál az irány meghatározására. Az OTG csatlakozásait a 2. ábra mutatja.
Ha egy µB csatlakozós eszköz kerül a foglalatba, az ID kivezetőpont lebegő állapotban marad, és a mikrokontroller a mintavételezése során logikai magas szintet fog látni. A mikrovezérlő az SMBus-on keresztül kommunikál az USB elosztóval és határozza meg a Vbus_DET kivezetőpont állapotát. Ha az ID és Vbus_DET egyaránt logikai magas szinten van, USB gazdavezérlőt érzékel a rendszer az adott csatlakozón, így a mikrovezérlő OTG portját eszközként kell konfigurálni.
Ezzel szemben, ha egy µA csatlakozós eszköz kerül a foglalatba, az ID kivezetőpont a GND földpontra rövidzárásra kerül, és a mikrokontroller a mintavételezése során logikai alacsony szintet fog látni. Az adott porton érzékelt USB eszköz miatt a mikrovezérlő OTG portját gazdavezérlőként kell konfigurálni. A 3. ábra USB eszköz esetén mutatja az adatfolyamot.
A FlexConnect implementálható olyan hordozható eszközöknél is, amelyek a tápellátást olyan kiegészítőkből szerzik, amelyeket később saját irányításuk alá vonhatnak. Például, ha egy okostelefont teleptöltés céljából egy gépjármű konzoljára illesztünk, később felmerülhet az igény arra, hogy az okostelefon interfészén keresztül játsszunk le zenét. Ebben az esetben az autó infokommunikációs rendszerének USB parancsot kell kiküldeni az USB elosztó felé, az okostelefonnak pedig kezdeményeznie kell a vezérlésben történő változtatást.
Az USB-rendszer konfigurálása és üzemelése független lehet. Az USB elosztó letöltésirányú portján az akkutöltés engedélyezett, a többi letöltésirányú port pedig nyilvántartásba kerül. Ha okostelefon csatlakozik a portra, érzékeli a Vbus feszültséget, és az akkutöltést engedélyező handshaking folyamat lefolyását követően megkezdődik az akkumulátor töltése. Az autó infokommunikációs rendszere nyilvántartásba és vezérlés alá veszi az eszközt. Ezután, ha a felhasználó szeretne hozzáférést az interfészhez, az USB elosztó vezérlése átkerülhet az okostelefonhoz. Az adatfolyamot a 4. ábra mutatja.
Összegzés
A modern elektronikai rendszerekhez több USB-kapcsolatra és szélesebb funkcionalitásra van szükség, mint valaha. A FlexConnect technológiával fejlettebb rendszerek fejleszthetők, mivel az USB elosztón keresztül lehetőség van az adatáramlási irányok dinamikus megváltoztatására.