Firma Cyprus již delší dobu nabízí velmi zajímavé integrované obvody označené jako PSoC (Programmable System-on-Chip). Tyto obvody kombinují výhody strukturu obvodů FPGA a klasických mikrokontrolérů. Díky tomu obsahují široký rozsah analogových i digitálních periferií, což je obzvláště výhodné pro oblast zpracování signálů z libovolných senzorů, některých s analogovým výstupem, jiné s digitálním. Svojí konfigurovatelnou strukturou po vzoru FPGA, umožňují zvolit zpracování dat v přesnosti 8 až 32 bitů a libovolně přiřazovat výstupy obvody vnitřním blokům, zatímco po vzoru MCU a DSP umožňují složité aritmetické a logické operace včetně hardwarového násobení. Toho je dosaženo unikátní strukturou chipu a možností programové konfigurace, resp. propojování, bloků na chipu.
Další výhodou je možnost výběru, nastavení a propojení použitých bloků prostřednictvím klikání v konfiguračním programu, zatímco programovou část vnitřního MCU lze napsat v programovacím jazyku C nebo asembleru obvodu. Nepoužité bloky na chipu zůstanou odpojeny od sběrnic i napájení obvodu a tím se výrazně snižuje spotřeba obvodu. Z laického pohledu lze strukturu přirovnat k stavebnici, kde jednotlivé kostičky jsou jednotlivé funkční bloky, které přidáváme okolo MCU (viz. obrázek).
Použití a vlastnosti integrovaných obvodů PSoC
- Zařízení z oblasti MaR (Měření a Regulace)
- Zpracování signálů až mnoha desítek libovolných analogových i digitálních senzorů v jedné součástce
- Zařízení z oblasti telekomunikací
- HMI (Human-Machine Interface) - Uživatelské bez nutnosti použití externích součástek budičů displejů a LED, přímé napojení klávesnic
- Paralelní zpracování dat a signálů
- Volitelné 8 až 32bitové zpracování signálů na jednom chipu (včetně operací násobení)
- Programovatelné zesilovače, A/D převodníky (Sigma-Delta, integrační, aproximační), D/A převodníky
- Rozhraní sběrnic UART, SPI, IrDa, I2C, LIN, nejnověji USB 2.0 a libovolné další podle konfigurace obvodu
- Analogové i digitální filtry spolu paralelně v jedné součástce
- Kompletní A/D převod včetně analogových anti-aliasingových filtrů, obvodů sample/hold i A/D či D/A převodníku
- Využití v kamerách, MP3 přehrávačích, ústřednách, serverech, automobilová technika, zabezpečovací technika ....
- atd.
Struktura obvodů PSoC
Jak již bylo napsáno výše, typický integrovaný obvod PSoC je takovým "hybridem" mezi klasickým MCU a obvody FPGA s cílem co nejvíce potlačit nevýhody obou uvedených samostatných skupin. Nevýhodu je pak trošku netradiční práce s obvodem, resp. jeho programování.
Stručně lze strukturu popsat takto:
|
Obr. 1. Blokové schéma komunikace bloků obvodu PSoC (detail) |
Výběr bloků, které mají být aktivní, nastavování jejich parametrů i jejich vzájemné propojení se provádí nastavováním bitů příslušných registrů na chipu. Struktura je tedy snadno rekonfigurovatelná. Bloky obsahující MCU se pak například chovají jako jedna velká centrální ALU (aritmeticko-logická jednotka) nebo samostatně odděleně pro jednodušší úlohy. Nevyužité bloky nejsou připojeny k napájení, takže snižují spotřebu ne úplně využitého obvodu.
Obr. 2. Blokové schéma uspořádání bloků na chipu (detail)
Digitální bloky
Digitální bloky jsou sdružené v poli digitálních bloků (Array of Digital PSoC Blocks), přičemž jsou zde různé bloky (uživatelské moduly) z pohledu jejich funkce. Obecně však platí, že každý blok je 8bitový, ale sdružováním více bloků dohromady lze vytvořit více bitovou funkci, např. 16, 24 nebo 32bitovou. Nutný je jen dostatečný počet bloků.
Digitální blok jako takový je z uživatelského pohledu definován jako sada registrů, kterými se nastavují vlastnosti daného bloku . Nelze si tedy, narozdíl od obvodů FPGA a CPLD, představovat konkrétní zapojení bloků. Jen lze vyjmenovat funkce, které lze registry "zapnout". Obvykle se bloky poskytují funkce časovače, čítače (8bit. čítač včetně děličky, registrů a funkcí Input Capture/Output Compare a přerušeními), PWM, sériové vysílače a přijímače, UART, SPI, I2C, IrDA nebo složitějších funkce jako CRC/PRS generátor, řízení LCDI. Některé obvody nabízejí i speciální tzv. MCU blok složený z D klopných obvodů a registrů, který doplňuje hlavní MCU jádro obvodu. Jako hodinový signál může být do bloků přiveden vnitřně generovaný signál 24MHz (48MHz), nízkopříkonový signál 32kHz (sleep mód, watchdog) nebo externí signál z 24 MHz krystalu přes soustavu děliček. |
Obr. 3. Digitální bloky obvodů PSoC (detail) |
Vždy se digitální bloky uspořádávají do jedné či více řad (row) po čtyřech (viz. obrázek 3.). Počet řad pak závisí na označení obvodu a velikosti PSoC obvodu. Uvedené řady bloků je pak možné přes globální digitální propojovací sběrnici (Global Digital Interconnect) vzájemně propojovat nebo připojit přímo k vstupně/výstupním pinů pouzdra. Mezi propojením digitálního a analogového bloku je zařazen komparátor. Zároveň je možné bloky přes systémovou sběrnici připojit k centrálnímu MCU. Pak mohou bloky fungovat jako periferní moduly MCU.
Analogové bloky
Analogové bloky jsou sdružené v poli analogových bloků ( Array of Analog PSoC Blocks). Narozdíl od digitálních bloků, kde blok z uživatelského hlediska vlastně představuje soustavu registrů v kterých se zvolí funkce bloku, jsou analogové bloky v jádru založeny na obvodovém zapojení obsahující jeden operační zesilovač (OZ) obklopený různými, uvnitř integrovanými, součástkami připojovanými k OZ přes programovatelné spínače. Ty jsou již ovládané nastavením bitů registrů bloku přístupné uživateli. Takto lze u každého bloku definovat použité vstupy i zpětné vazby. Typy bloků charakterizuje právě to, co je kolo OZ:
|
Obr. 4. Analogové bloky obvodů PSoC (detail) |
Aby však například pro uživatele neznalý struktury A/D převodníku nebylo složité ho z bloků postavit, existují ve vývojovém prostředí obvodů PSoC předdefinované moduly, tzv. uživatelské moduly (Users modules). Ty již obsahují nastavení vnitřních registrů bloku a uživateli ukazuje jen obrázek zapojení například 12bit. A/D převodníku. Tyto jednoduché pro uživatele.
Obr. 5. Zapojení bloků analogových bloků - Continuous Time Block (vpravo - detail) a Switched Capacitor Block (vlevo - detail)
Integrované obvody PSoC Cypress
V celkové nabídce firmy Cypress je několik desítek verzí obvodů PSoC s různými vlastnostmi, výbavou, pouzdry (viz. obrázek 6.) a počtu digitálních a analogových bloků. Základní a hlavní reprezentanti obvodů jsou v následující tabulce 1.
Tab. 1. Charakteristické typy obvodů PSoC firmy Cypress
Obr. 6. Příklady pouzder integrovaných obvodů PSoC (klikněte na pouzdro pro detail)
Vývojové prostředí & softwarová podpora
K vývoji aplikace, resp. programu, pro součástky PSoC je z programátorského hlediska nejlepší použít k tomu firmou Cypress určený software/vývojové prostředí "PSoC Designer Integrated Development Environment (IDE)".
To umožňuje praktický návrh, použití a propojení vnitřních bloků pomocí předdefinovaných knihoven (uživatelské moduly) a klikacího grafického rozhraní, kde se pracuje s obrázky bloků a jejich propojování čarami a ne s nepřehledným nastavováním bitů konkrétních registrů bloku. Navíc lze z knihovny předdefinovaných zapojení rovnou zvolit například A/D převodník s potřebnými vlastnostmi, LIN (Local Interconnect Network) rozhraní nebo například 300 baud modem bez potřeby znát zapojení a vnitřní funkci daného zařízení. Stejně jednoduše se přiřazují výstupy a vstupy k pinům součástky. Vnitřní konfiguraci grafické rozhraní při překladu udělá za nás. Toto vývojové prostředí je poskytováno plně zdarma a je ho možné si stáhnou na stránkách výrobce. Dále je zde k dispozici prostředí pro vývoj programů pro MCU jádro v asembleru nebo programovacím jazyce C. Debugger pak podporuje komunikaci s in-circuit emulátorem. Pro samotné nahrání programu do obvodu však stačí využít pouze jednoduchý In-System programátor (návod + software) . |
Obr. 7. Prostředky pro návrh aplikace pro PSoC |
Vývojové kity
Přímo firma Cypress nabízí In-Circuit Emulator (ICE) CY3205-DK (viz. obrázek) s kompletní hardwarovou i softwarovou podporou včetně C překladače. Dále existují kity existují pro USB (CY3205USB) nebo paralelní port PC. Pro pouhé nahrání přeloženého programu do desky stačí CY3207ISSP - sériový programátor. Ale na vývoj a prodej kitů a vývojových desek pro PSoC se zaměřuje více firem. Na obrázku 8. je schéma zapojení konektoru PSoC obvodu CY8C26443 pro In-System Programming. Klikací programovací software pro Windows a zapojení konektorů dalších PSoC obvodů lze například stáhnout na adrese www.mikroelektronika.co.yu.
Obr. 8. Zapojení konektoru pro In-System Programming pro obvody PSoC
Závěr
Integrované obvody PSoC jsou velmi zajímavou alternativou ke klasickým a široce využívaným různým mikrokontrolérům (MCU) i známým obvodům typu FPGA, CPLD nebo GAL. Nabízí tedy kombinaci obou odlišných systémů (sériové vs. paralelní) zpracování dat pro systémy vyžadující obě vlastnosti a bez nutnosti použít oba obvody. Tím lze výrazně ušetřit místo na desce plošných spojů (DPS). Další velká výhoda je hlavně velká podpora analogového zpracování signálů bez potřeby téměř žádných externích součástek. Místo oddělené analogové a digitální části zapojení realizovaného zařízení, lze tak vše vměstnat do jednoho chipu a tím ušetřit nejen místo na DPS, ale i omezit vliv okolního prostředí (teploty, tlaku) a rušení. Nevýhodou je snad nezvyklé programování. Nabídka firmy Cypress, v ČR zastoupené firmou MSC, je dostatečně široká pro možnost správné volby velikosti PSoC obvodu.
Antonín Vojáček
vojacek@ hwg.cz
DOWNLOAD & Odkazy
- Domovská stránka českého distributora, firmy MSC GMBH - www.msc-ge.cz
- Mezinárodní domovská stránka distributora, firmy MSC GMBH - www.msc-ge.com
- Domovská stránka výrobce PSoC, firmy Cypress - www.cypress.com
- Aktuální datasheety a pdf příručky k PSoC získáte na www.cypress.com/psoc
- datasheet obvodu CY8C27x43 (45 stran)
- datasheet obvodu CY8C22x13 (36 stran)
- datasheet obvodu CY8C21x23 (33 stran)
- datasheet obvodu CY8C24x23A (50 stran)
- Další články týkající se zpracování signálů na serveru automatizace.HW.cz