IMPLEMENTACE ROZHRANÍ USB DO MALÉHO SYSTÉMU S
Transkript
obsah b c print IMPLEMENTACE ROZHRANÍ USB DO MALÉHO SYSTÉMU S JEDNOČIPOVÝM MIKROPOČÍTAČEM Bohuslávek Zdeněk, Prokůpek Kristián Abstrakt: Předmětem příspěvku je popis řešení vývoje USB komunikačního bloku připojitelného na paralelní porty mikroprocesorového systému. Hardware bloku vybudováno na bázi obvodu FTDI245BM a individuálnímu nastavení FT245BM obvodu a deskriptoru pomocí konfiguračního programu EEPROM Programmer and Test Utility for FT232/FT245 Devices. Řízení komunikace bylo řešeno na bázi D2XX driverů s jejich implementací do řídicího programu vyvinutém ve Visual Basic v.6. Klíčová slova: implementace USB, komunikační protokol, FDTI obvod ÚVOD Komunikační obvod má za úkol spojit systém s nadřízeným systémem, který provede zpracování přenášených dat. Komunikace může probíhat bezdrátově (IrDA optika, či radiofrekvenční komunikace s datovou modulací), či přímým spojením (RS-232 , RS-422 , RS-485 a nebo v poslední době přes nové seriové rozhraní USB - universal serial bus. Komunikační obvod se stará o fyzickou vrstvu přenosu, tudíž o napěťové , časové a synchronizační průběhy. Komunikace pomocí USB je interně složitá, ale při její implementaci do systému s jednočipovými mikropočítači se nemusíme zabývat průběhy na USB sběrnici, neboť ty mají na starosti již průmyslově vyráběné obvody a řešíme ovládání a komunikaci s těmito obvody v rámci implementace USB protokolu. Cílem této publikace je seznámení s návrhem a vývojem komunikačního obvodu s výstupem v normě USB 1.1, který je připojitelný k libovolnému mikropočítačovému systému přes paralelní port. Důvodem pro výběr USB jsou výhody v universálnosti, rychlosti a perspektivnosti. MATERIÁL A METODY a) Volba způsobu implementace rozhranní USB v malém mikropočítačovém systému USB sběrnici lze softwarově emulovat, ovšem nevidím to jako výhodné řešení, neboť je dost náročné na zabraný strojový čas mikroprocesoru. Externí USB kontroler dokáže spolehlivě tuto funkci přebrat, a ta pak probíhá plně hardwarově. Toto řešení je daleko výhodnější a proto se v poslední době se na trhu objevily mikroprocesory obsahující SIE (serial engine) a USB rozhraní, což jsou důležité prvky pro hardwarovou realizaci tohoto rozhraní. Patří sem například obvod TUSB3210 (8051 jádro s USB periferií) a PIC16C745 (PIC procesor s RISC architekturou a USB periferií). Druhou skupinou jsou externí kontroléry USB a patří sem např. FTDI obvody (firmy FTDICHIP), obvody firmy Cypress (CY7C63000) , či obvod AN3121, popsané v [1]. Vzhledem k požadované univerzálnosti řešení byla volena orientace na externí řídicí obvod USB. b) Výběr komunikačního obvodu pro USB Pro malé aplikace vyhoví specifikace USB1.1 při dané maximální rychlosti (12Mbit/s). Užití pomalejšího USB rozhraní přinese menší nároky na USB řadič a možnou kompatibilitu se všemi USB řadiči v počítači. Pro aplikaci se nabízí několik obvodů pro USB obsah b c print komunikaci. Jsou specifické dle účelu použití (třídy USB zařízení), dle dosahované komunikační rychlosti a typu přenosů, a neméně podle komunikace s mikroprocesorem. Nevyhovují obvody CY7C63000, protože mají málo vývodů, pomalé USB zařízení a vývojové prostředí je poměrně drahé. Dalším obvodem je AN3121 (Anchor Devices), čerpáno z [1]. Jedná se o mikroprocesor 8051 s USB jádrem, poměrně dobrých kvalit. Je zde problém s jeho dostupností a nedostatečnou dokumentací. Plně vyhovující obvody jsou od firmy FTDI chip, jedná se o řadiče komunikující se standartem USB1.1 při plné rychlosti FullSpeed (12Mbit/s). Tyto obvody umožňují i režim bez mikroprocesoru a mohou pracovat samostatně, a proto byly zvoleny pro dané řešení. c) Programování deskriptoru USB v komunikačním bloku dataloggeru Po detekci modulu systémem a při současné funkčnosti ovladačů je nutné přistoupit k dalšímu kroku – individuálnímu nastavení FT245BM obvodu a individuální nastavení deskriptoru (popisovací řetězec pod kterým se zařízení hlásí v systému). K tomuto účelu byl stažen konfigurační „in ciruit“ program „EEPROM Programmer and Test Utility for FT232/FT245 Devices“ z internetové adresy [2]. d) Komunikační blok datalogeru – ovládání v jazyce Visual Basic 6.0 Za programovací jazyk pro prostředí systému MS Windows byl zvolen Visual Basic 6.0 (dále jen „VB“). Použití není z programátorského hlediska úplně ideální, neboť VB není vhodný pro všechny aplikace a trpí řadou nedostatků. Nicméně jeho velkou výhodou je jednoduchost jazyka a rychlá tvorba vlastní aplikace. VÝSLEDKY, DISKUZE Vzhledem k rozsahu celého řešení jsou zde uvedeny pouze vybrané problémově specifické části návrhu. Především je zde presentováno originální řešení komunikačního bloku (skupina obvodů, zajišťujících komunikaci mezi mikroprocesorem a PC prostřednictvím USB). a) Řešení komunikačního bloku s obvodem FTDI FT245BM Charakteristika FTDI - tento obvod patří do druhé generace USB kontrolérů od firmy FTDI Chip. Od první generace se liší označením (xxx BM) a vylepšenými programátorskými vlastnostmi. Mezi ně například patří i další mód – BitBang , umožňující samostatnou práci a přímý přístup na piny bitového portu. Výrobce dodává 2 sady ovladačů. První z nich jsou D2XX, které umožní přímé programování přes exportované funkce knihoven ovladačů. Druhé ovladače jsou VCP a ty umožňují emulovat zařízení jako sériový COM port (RS232). Zařízení se pak hlásí v systému jako další sériový port a lze s ním ještě snadněji pracovat. Přenosové rychlosti dosahují až 1Mbit/s pří D2XX , a 300Kb/s při VCP ovladačích. Programování je podporováno ve 32bitových jazycích pro Windows systémy. Například MS Visual C++ , MS VB6.0 , Borland C Builder , Borland Delphi , a další jazyky orientované na API funkce systému Windows. Komunikační blok – návrh schéma zapojení Komunikačním blokem je označeno zapojení několika obvodů, které mají obsah b c print prostřednictvím USB rozhraní zajišťovat komunikaci mezi malým mikroprocesorovým systémem a nadřazeným PC. Koncepce vychází z dokumentace [5] pro obvod FT245BM. Na obr.1 je schéma kompletního zapojení bloku. Obr. 1 Schéma komunikačního bloku Obvody jsou napájeny jak ze zdrojových vodičů sběrnice tak je zde navržena možnost externího napájení, na které lze modul snadno upravit. V logických vstupech a výstupech FT245BM obvodu jsou přidány ochranné rezistory pro univerzálnost bloku a jeho možném použití i jako učební pomůcka v laboratoři. Obvod je doplněn propojkami: JP2 plní pomocnou funkci (SI disable) pro pevné nastavení příkazu send immediately (okamžitě odeslat data), JP3 je zde pro možné rozšíření obvodu o funkci reset (negovaný vstup reset). b obsah c print b) Použití komunikační protokolu PC Master Zvolený protokol je založen na komunikaci typu master-slave, tzn. že dotaz z PC je následován odpovědí ze strany aplikace a sama aplikace nemůže komunikaci zahájit. Filosofie tohoto protokolu je minimalizace datového toku na lince a univerzálnost použití pro různé aplikace. Zprávy protokolu PC Master jsou rozděleny do dvou skupin: 1. standardní povel (PC -> aplikace) - zpráva začíná ASCII znakem „+“ (SOB), následuje kód zprávy (command), délka datové části zprávy (data length), vlastní datová část (data part) a celá zpráva je ukončena kontrolním součtem (checksum). formát standardní zprávy PC->aplikace protokolu PC Master start-of-block command (1 BYTE) (1 BYTE) data part data length checksum (volitelná (1 BYTE) (1 BYTE) délka) Obr. 2 2. zpráva –odpověď (aplikace -> PC) - odpověď ze strany aplikace opět začíná ASCII znakem „+“ (SOB), následuje návratový kód zprávy (status code), za ním datová část známé délky (data part) a celá zpráva je ukončena kontrolním součtem (checksum). formát zprávy aplikace->PC protokolu PC Master start-of-block (1 BYTE) status (1 BYTE) code data part checksum (známá délka) (1 BYTE) Obr. 3 Návratový kód zprávy nabývá definovaných hodnot a informuje PC o výsledku provádění povelu.Kontrolní součet je ve zprávě zahrnut pro zajištění alespoň minimální bezpečnosti, vzhledem k tomu, ze byl protokol navržen pro průmyslová prostředí s možným rušením. c) Tvorba programu ve VB 6.0 Obvod FTDI byl programován v tzv. BitBang módu, který neprogramuje ve VB složitěji neboť se do hloubky pracuje s obvodem. Ladění a úspěšné odzkoušení aplikace bylo provedeno v operačním systému Windows 98 Second Edition. Použitý a testovaný interní USB hardware byl řadič VIA TECH 3038 PCI (integrovaný na základní desce, USB1.1) a přídavný PCI USB2.0 řadič (čipset Ali M527x). Oba řadiče využívaly standardních nabízených ovladačů od Microsoft Windows. Jako ovladače a programátorské knihovny obvodu FTDI FT245BM byly použity D2XX (verze 1.06.20) , dodávané výrobcem [3]. ZÁVĚR Publikace popisuje vybrané problémy vývoje komunikačního modulupro sběrnici USB. Jsou zde popsány zadané požadavky, řešení obvodů bloku a stručně charakteristika obsah b c print podmínek vývoje software komunikačního bloku. K vyřešení problému USB komunikace, dopomohl obvod FTDI FT245BM a na základě tohoto řadiče navržen komunikační modul, který umožní převést signál z USB na 8bitový port a naopak. Byla vyřešena problematika volání funkcí ovladačů D2XX z jazyka Microsoft Visual Basic 6.0 a oživeny funkce ovladačů k FTDI obvodu. Byl vytvořen program pro demonstraci a ladění USB komunikačního modulu v jazyce Visual Basic 6.0. Na základě těchto všech znalostí lze modul implementovat do jakéhokoliv systému ovládání a získávání dat přes USB. LITERATURA. [1] Kainka, Burkhard : USB, měření řízení a regulace pomocí sběrnice USB. Praha : BEN , 2003 [2] FTDI Chip : FTD2XX Programmers Guide Version 2.01 . Future Technology Devices Intl. Ltd. , 2002 , [online], (dostupný z www.ftdichip.com) [3] Softwarové nástroje pro konfiguraci obvodu FTDI , [online], (dostupné http://www.ftdichip.com/Resources/Utilities.htm) [4] Analog Devices : AduC812 , MicroConverter™, Multichannel 12-Bit ADC with Embedded FLASH MCU. Analog Devices , 1999 , [online], (dostupný z www.analog.com) [5] FTDI Chip : FT245BM Designers Guide Version 1.1 : Future Technology Devices Intl. Ltd. , 2002 [online], (dostupný z www.ftdichip.com) Kontaktní adresa: Doc. Ing. Zdeněk B o h u s l á v e k, CSc. Bc. Kristián Prokůpek Česká zemědělská univerzita, Technická fakulta, Kamýcká 129, 16521 Praha 6 –Suchdol, Česká republika, tel.: 02-2438 3300, fax.: 02-20921361, e-mail: [email protected] Department of Electrical Engineering, Technical Faculty ,Czech University of Agriculture, Kamycka 129, 165 21 Prague, Czech Republic, Tel.: 0042 02 24383300, Fax.: 02-20921361
Podobné dokumenty
Manuál - PK Design
Modul USB-FT245BM je jedním z mnoha modulů modulárního vývojového systému MVS. Lze jej použít ve spojení s některou ze
základových desek pro komunikaci s osobním počítačem přes komunikační rozhraní...
Studijní text - E-learningové prvky pro podporu výuky
Kombinací se zde rozumí kombinace hodnot 0 a 1 přiřazených jednotlivým vstupním proměnným.
Úplně určeným funkcím se někdy říká úplné funkce, funkcím neúplně určeným pak neúplné funkce.
V technice č...
sborník
některé ročníky dokonce vůbec nekonaly. V roce 1996 byla na naší fakultě uspořádána
studentská soutěž na mezinárodní úrovni, které se zúčastnili studenti elektrotechnických
fakult z České i Slovens...
Dokumentace
testu, popřípadě více testů prováděných za sebou. Součástí základního okna aplikace je i
odpojování jednotlivých výstupních vývodů a jejich nastavování do stavů „1“ nebo „0“. U
těchto prvků nalezne...
Práce s deskou Altera DE2
http://www.terasic.com.tw/
Pro dnešní cvičení je důležité správné připojení. Deska má 2 USB porty - pro programování
musíte použit konektor bližší k napájecímu kabelu.
M-Bus/USB Stick
M-Bus/USB Stick je převodník, který je určen především pro odečet a parametrizaci měřičů
tepla, průtokoměrů, elektroměrů, plynoměrů, teploměrů a dalších zařízení vybavených MBus rozhraním a k demon...
RS485 - REGMET sro
Převodník USB-RS485 zajišťuje přímý převod mezi rozhraním RS485 a USB. Není nutné, aby softwarová aplikace jakkoliv
přepínala směr toku dat. O vše se zcela automaticky postará převodník.
Komunikace...
Převodník USB - UART Uživatelská příručka
Poznámka: z důvodu zlepšení práce s dokumentem jsou jeho součástí
i hyperlinkové odkazy do internetu. Pokud odkazy vedou na neexistující
stránky, stáhněte si prosím z www.asix.cz / sekce FTDI novou...