česky english Vítejte, dnes je pondělí 30. prosinec 2024

Archiv – historie designu jedné DPS

DPS 2/2022 | Články
Autor: Ing. Tomáš Navrátil, Ryston Electronics

Úvod

Moderní osobní a průmyslové počítače mají stále vyšší nároky na komunikaci s periferiemi. Oblíbené a široce rozšířené rozhraní ISA, dříve přítomné v každém PC, bylo už dávno vytlačeno sběrnicí PCI. Ale dnes již není tak jednoduché navrhnout aplikační desku do PC, jako tomu bývalo kdysi…

Jeden z našich produktů – desku do PC s pracovním názvem Archiv − bylo potřeba po hardwarové stránce několikrát redesignovat. Kromě rozhraní sběrnice bylo nutné udržet maximální možnou kompatibilitu s již existujícím softwarem běžícím v PC.

Obr. 1, 2 a 3 a tabulka (jpg)

Ryston se věnuje vývoji zákaznických desek plošných spojů už přes třicet let. Rozpětí aplikací je od telekomunikací přes lékařskou a průmyslovou elektroniku k automotivním a železničním aplikacím a bezpečným systémům. Každý vývoj hardwaru je samozřejmě „obalen“ softwarem a technicko-fyzikálním kontextem dané aplikace. Proto je součástí vývoje analýza, z níž pak vyplynou požadavky na hardware. Archiv je vestavná deska do sítě technologických počítačů sloužící jednak pro rychlé archivování záznamů o událostech nastalých při běhu programu, jednak pro připojení specifického zařízení − porovnávače přes 8bitový port s galvanickým oddělením. Deska měla původně rozhraní sběrnice ISA (8 bitů, kompatibilní s PC XT/AT).

Jednotka obsahuje zálohovanou statickou paměť RAM s kapacitou původně 4 až 16 MB připojenou přes rozhraní podobné řadiči pevného disku (proto i název RAMdisk z jiné aplikace), kde adresa „sektoru“ je tvořena porty − nastavitelnými čítači. Do těchto čítačů je možné programem vstoupit zápisem jako do paralelních registrů. První verze dnes působí až trochu úsměvně.

Galvanicky oddělený osmibitový výstupní port a LED diody indikující probíhající přístup ze sběrnice byly spolu s rozhraním sběrnice zprvu provedeny obvody řady 74HCT střední integrace, později byly nahrazeny programovatelným logickým obvodem. Zálohovací obvod s baterií v době výpadku externího napájení zajišťuje uchování dat ve statické RAM po dobu až několika let.

Karta se chová jako 8 registrů v I/O adresním prostoru PC, jejichž bázová adresa je určena nastavením přepínače DIP v rozsahu adres 1C0h až 1F8h, zpravidla neobsazených žádnou periferií. Každý registr je přístupný na adrese bázová adresa + offset podle tabulky 1. Rozhraní mezi deskou Archiv a PC bylo průběžně modernizováno podle přibývajících požadavků, u dalších verzí se přešlo z obvodů rodiny 74 na hradlové pole typu CPLD. I v případě ISA sběrnice to bylo z pohledu zabraného místa lepší (ne levnější), a tak bylo možné použít obvod EPM3064 od firmy Altera.

Obr. 4  (jpg)

Příchod PCI

Specifikace PCI protokolu byla vyvinuta a je udržována společenstvím PCI-SIG, které má globální rozsah a respekt. Tato sběrnice je orientována na přenos zpráv (transakcí) místo přímého zápisu a čtení dat a používá multiplexaci adresních a datových signálů. Každá transakce obsahuje inicializaci, adresní část, datovou část s případnými čekacími cykly a zakončení. Jednotlivé části transakce probíhají synchronně rychlostí 33 MHz nebo 66 MHz (určeno nejpomalejším zařízením) a šířkou dat 32 nebo 64 bitů. Datová průchodnost sběrnice je tak přibližně 100x vyšší než u ISA.

PCI od verze 2 dále je sběrnice typu „plug and play“, s automatickou konfigurací instalovaných desek bez propojek, za cenu jistého růstu složitosti. V zařízení (periferní desce) musí být implementována konfigurační paměť, která slouží pro uložení bázové adresy, podporované šíře datové sběrnice, počtu čekacích cyklů, identifikaci výrobce apod. Tento mechanismus využívá PCI BIOS, který přiděluje adresy a další prostředky.

Sběrnice PCI je sice řádově rychlejší než ISA, její plné lokální rozhraní však vyžaduje velmi specificky pracující složitý řadič.

Poučili jsme se například z obvodu PSB4610 PITA-2 výrobce Infineon/Lantiq, který jsme použili. Poučení bylo nejen technické, ale i manažerské: výrobce obvodu ukončil náhle jeho výrobu a podporu a my jsme se museli poohlédnout po něčem jiném.

Obr. 5  (jpg)

Implementace jednoduchého PCI rozhraní Target

Vývoji nových verzí desky Archiv předcházel podrobný základní výzkum rozhraní PCI až na úroveň bitů konfiguračního prostoru a jejich významu, často i nedokumentovaného v originální specifikaci [1], avšak podporovaného PCI BIOSem a popsaného v další literatuře [2]. Deska se z pohledu PC chová jako PCI zařízení podporující pouze 8bitový přístup do I/O prostoru.

Popsané rozhraní je typu Target, což znamená, že je vždy podřízeno sběrnici. Proto je většina řídicích signálů znázorněna jako vstupy ze sběrnice do rozhraní (z levé strany). Na pravé straně (lokální) je 8bitová obousměrná datová sběrnice a výstupy adres a řídicích signálů do desky.

Podrobný popis rozhraní a protokolu je nad možnosti tohoto článku. Důležité je, že jsme si osvojili toto know-how a byli schopni ho nadále používat nejen v této desce, ale i v několika dalších typech desky pro „embedded“ PC se sběrnicí PCI i do průmyslových zařízení se sběrnicí CompactPCI.

Co se děje v počítači po zapnutí

Deska vložená do PCI slotu je po zapnutí napájení nebo resetu rozeznána PCI Biosem, který má přístup do konfiguračního prostoru desky. V něm je viditelná datová struktura s několika pozicemi popisujícími výrobce a typ desky/řadiče a další vlastnosti: Device ID, Vendor ID, Class Code. PCI Bios automaticky nastaví kartě bázovou adresu (čtecím/zápisovým mechanismem do registru BAR v konfiguračním prostoru zařízení) a zobrazí ji na displeji.

Po nabootování operačního systému je desce přidělen program − ovladač, který korektně řeší přístupy do desky v reálném čase a případně konflikty.

Pro implementaci stavového automatu, který realizuje protokol transakcí sběrnice PCI, bylo nutné použít modernější obvod EPM570T144.

Specifikace PCI [1] předepisuje na svých 400 stranách řadu mechanických a elektrických parametrů. Jedním z nejdůležitější je délka přívodů mezi konektorem a obvodem řadiče, a zejména je předepsána délka vodiče signálu PCICLK (synchronní hodiny sběrnice) a jeho impedanční přizpůsobení sériovým rezistorem pro potlačení zákmitů. U signálů sběrnice delších na desce než cca 5 cm jsou doporučeny rovněž sériové rezistory 22 Ω. V našem případě byla pečlivým návrhem plošného spoje dodržena minimální délka vodivého obrazce, a proto rezistory nejsou třeba, s výjimkou hodinového signálu.

Pro snížení spotřeby v zálohovacím (spacím) režimu je na lokální straně přizemněna datová a adresová sběrnice. Zjistili jsme, že statické paměti dramaticky zvyšují svoji spotřebu ve spacím režimu, pokud jejich sběrnice není trvale v nízké logické úrovni. Protože při výpadku napájení jsou výstupy obvodu CPLD nedefinovány, byly doplněny tyto pull-down odpory zajišťující stálou úroveň L i v zálohovacím režimu.

Tab. 2  (jpg)

Zpětná kompatibilita

Specifické požadavky zákazníka na absolutní zpětnou kompatibilitu se softwarem, který byl napsán pro přístup k Archivu s rozhraním ISA, nás přinutily maličko porušit specifikaci, jak bylo popsáno výše, či přesněji využít nedokumentované možnosti, kterou však podporuje BIOS. Dle standardu PCI 2+ musí být možné každé PCI zařízení umístit do adresního prostoru sběrnice na jakoukoli BIOSem zvolenou bázovou adresu kvůli odstranění možných kolizí různých zařízení. Může se tak stát, že po každém resetu PC a nové inicializaci sběrnice se deska objeví na nějaké, pokaždé jiné, Biosem zvolené bázové adrese, a tedy nebude čitelná existujícím softwarem, který chodí na pevnou adresu. Proto jsme zvolili dvě možnosti: buď čistou implementaci, anebo v hradlovém poli hodnotu bázového registru realizovat jako „read-only“ s přednastavenou hodnotou, což je v rozporu se specifikací (avšak ke spokojenosti zákazníka).

Výsledkem vývoje je deska, která obsahuje stejnou nebo větší kapacitu paměti než deska původní (nyní až 128 MB), ale po proběhnutí inicializace a využití „nuceného“ obsazení bázové adresy se tato deska vůči aplikačnímu softwaru tváří identicky jako ta původní. Z registru lze vyčíst instalovanou kapacitu paměti. Aplikační SW tak bylo možné ponechat bez jakékoli změny. Návrh CPLD však variantně umožňuje i zcela čisté chování při identifikaci. Dosud však nebyl zaregistrován žádný konflikt ani na zákazníkem schválených modelech počítače, ani jinde.

Samotný software samozřejmě rovněž prošel značným vývojem, kdy bylo použito několik operačních systémů reálného času, až po Embedded Windows.

Protože po implementaci minimalistické verze PCI protokolu zbyly v hradlovém poli ještě nějaké nevyužité prostředky, rozhodli jsme se dle přání zákazníka rozšířit zařízení Archiv o přístup přes populární rozhraní USB. To umožňuje provádět stejné operace (čtení archivu) např. pomocí externího notebooku při přítomnosti Archivu ve vypnutém či odešlém PC nebo i mimo něj, a získat tak archivovaná data.

Poučení z vývoje: možnosti dalšího využití

Popsané PCI rozhraní „chudého muže“ je asi to nejjednodušší, co lze vytvořit, aby to prošlo testem PCI Biosu. Od té doby jsme vyvinuli řadu modifikací a vylepšení pro dosažení větší průchodnosti dat, s větší šířkou sběrnice a s integrovanou aplikační logikou ve stejném pouzdru CPLD. Při vývoji jsme přešli ke korektní formě Projektu pro vývojové prostředí MaxII od firmy Altera a zdrojový kód byl napsán v jazyce VHDL.

Poznatky a techniky využité v rozhraní PCI sběrnice desky Archiv lze nyní využít ke konstrukci jednoduchých aplikačních desek do počítačů třídy PC, jako speciální převodníky, pro datovou komunikaci, průmyslové řízení, kryptografii, laboratorní přístroje a další vědecko-výzkumné aplikace.

Použitý obvod CPLD je poměrně levný a dostupný, pin-kompatibilní s dalšími typy řady EPM, a má tak dostatečnou kapacitu pro realizaci dodatečné logiky nebo automatu potřebného pro činnost vnitřku desky. Výrobce inovoval svou typovou řadu o novou rodinu s označením 5M-Z s nízkou spotřebou, jejíž použitelnost jsme si ověřili u další desky.

I když se v desce Archiv používá 4vrstvý plošný spoj, bylo odzkoušeno i použití 2vrstvého materiálu a routování signálů vhodných pro vývoj i téměř amatérských desek plošných spojů.

Pokud bude z důvodu nedostatku slotů PCI nutné použít jiné rozhraní, máme rozpracována alternativní rozhraní PCI Express, IDE/PATA, SATA a USB, takže jsme připraveni na další výzvy.

Odkazy:

[1] PCI Local Bus Specification rev. 2.1s, PCI Special Interest Group, P.O.B.14070, Portland, OR97214, USA

[2] Goodrum, A.: PCI Hot-Plug Application and Design. Annabooks, 11838 Bernardo Plaza, San Diego, CA 92128, USA.