IMPLEMENTACE ROZHRANÍ USB DO MALÉHO SYSTÉMU S

Transkript

IMPLEMENTACE ROZHRANÍ USB DO MALÉHO SYSTÉMU S
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

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í...

Více

Studijní text - E-learningové prvky pro podporu výuky

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 č...

Více

sborník

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...

Více

Dokumentace

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...

Více

Práce s deskou Altera DE2

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.

Více

M-Bus/USB Stick

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...

Více

RS485 - REGMET sro

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...

Více

Převodník USB - UART Uživatelská příručka

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...

Více