Prehľad architektúry PSoC

Z Kiwiki
Verzia z 18:28, 22. jún 2010, ktorú vytvoril Dusan (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání

Mikroprocesory PSoC (Programmable System on Chip – Programovateľný systém na čipe) sa skladajú z konfigurovateľných blokov analógových obvodov a digitálnej logiky, ktoré sú vzájomne programovo prepojené. Uvedená architektúra umožňuje vytvárať zákaznícke konfigurácie mikroprocesora tak, aby boli splnené požiadavky potrebné na realizáciu jednotlivých aplikácií. Bloková schéma na Obr. 1.1 zobrazuje architektúru celej rodiny mikroprocesorov PSoC.

Vnútorná štruktúra PSoC

Spoločnosť Cypress vyvinula niekoľko desiatok typov súčiastok typov PSoC. Líšia sa predovšetkým množstvom a druhom blokov, veľkosťou pamäti programu (FLASH), pamäťou dát (RAM), veľkosťou a druhom puzdier a ďalšími parametrami. V závislosti na type obsahujú 4-16 digitálnych a 3-12 analógových blokov.

Pagac struktura.png
Obr. 1.1 Vnútorná štruktúra PSoC

M8C – procesorové jadro

Na Obr. 2.1 sú zobrazené prvky architektúry jadra PSoC. Procesor je 8-bitový a dokáže spracovať až 4 milióny inštrukcií za sekundu. 8-bitová architektúra podporuje použitie až 64 kilobajtov pamäti Flash, v ktorej je uložená užívateľská aplikácia. Flash pamäť je „in-circuit programmable“, takže PSoC je možné programovať aj potom, ako je zapojený do dosky plošných spojov. Flash je zároveň aj „in-application programmable“, čo znamená, že mikroprocesor je schopný dynamicky meniť svoju vlastnú pamäť. Procesor je pripojený k viacerým digitálnym a analógovým blokom, ktoré poskytujú funkcionalitu a flexibilitu charakteristickú pre celú rodinu PSoC.

Pagac JadroPSoC.png
Obr. 2.1 Jadro PSoC

Registre procesora M8C

M8C je 8-bitový mikroprocesor MIPS harvardskej architektúry s voliteľnou hodinovou frekvenciou od 93.7 kHz do 24 MHz. Má päť vnútorných registrov, ktoré sú využívané pri vykonávaní programu.

Pagac registreprocesora.png
Obr. 2.2 Registre procesora M8C

Štruktúra pamäte M8C

M8C má tri adresné priestory: ROM, RAM a registre. K adresnému priestoru ROM pristupujeme cez jeho vlastné adresy a dátovú zbernicu. ROM zahŕňa SROM a Flash pamäte. V pamäti Flash je uložený firmvér zariadenia a je rozdelená do 64-bajtových blokov. Používateľ nemusí ošetrovať prechod programu na ďalšiu pamäťovú stránku, pretože M8C automaticky zvyšuje 16-bitový register PC pri každej inštrukcii presahujúcej hranice aktuálnej stránky. V pamäti SROM je uložený program využívaný na spúšťanie PSoC, kalibrovanie obvodov a vykonávanie operácií s pamäťou Flash. Funkcie zabezpečované SROM sú volané z programu uloženého v pamäti Flash alebo pomocou programátora. Adresný priestor registrov je využívaný na konfigurovanie programovateľných blokov mikroprocesora. Skladá sa z dvoch 256-bajtových blokov. Na prepínanie medzi blokmi sa nastavuje bit XIO v registri F. Ak je F nastavený, zvolí sa blok1, ak nie je nastavený, zvolí sa blok0.

Pagac adresnypriestor.png
Obr. 2.3 Adresný priestor

Inštrukčné formáty

M8C má spolu sedem inštrukčných formátov, ktoré používajú inštrukcie o dĺžkach jeden, dva a tri bajty. Všetky bajty inštrukcie sú vyvolávané z programovej pamäte Flash, za použitia adries a dátovej zbernice, ktoré sú nezávislé od adries a dátovej zbernice používaných pre registre a prístup do pamäte RAM.

Digitálne a analógové bloky PSoC

Digitálne a analógové bloky sú moduly vytvorené z digitálnych a analógových prvkov, ktoré sú konfigurovateľné pre rôzne druhy operácií pomocou registrov špecifických pre každý blok.

Analógové bloky

Na rozdiel od digitálnych blokov, kde blok z užívateľského hľadiska vlastne predstavuje sústavu registrov v ktorých sa zvolí funkcia bloku, sú analógové bloky v podstate založené na obvodovom zapojení obsahujúce jeden operačný zosilovač (OZ) obklopený rôznymi, vo vnútri integrovanými, súčiastkami pripojovanými k OZ cez programovateľné spínače. Tie sú už ovládané nastavením bitov registrov bloku prístupné užívateľovi. Takto je možné u každého bloku definovať použité vstupy i spätné väzby. Analógové bloky: PGA, komparátory, ADC 6-14 bitov, rôzne konfigurácie, DAC 6-9 bitov, DAC 6-9 bitov.

Digitálne bloky

Digitálne bloky sú združené v poli digitálnych blokov (Array of Digital PSoC Blocks), pričom sú tu rôzne bloky (užívateľské modely) z pohľadu ich funkcie. Obecne však platí, že každý blok je 8bitový, ale združovaním viacerých blokov dohromady je možné vytvoriť viac bitovú funkciu, napr. 16, 24 alebo 32bitovú. Nutný je iba dostatočný počet blokov. Digitálny blok ako taký je z užívateľského hľadiska definovaný ako sada registrov, ktorými sa nastavujú vlastnosti daného bloku. Nie je teda možné, na rozdiel od obvodov FPGA a CPLD, predstavovať si konkrétne zapojenie blokov. Je len možné vymenovať funkcie, ktoré ktoré sa dajú registrami „zapnúť“. Obvykle sa blokmi poskytujú funkcie časovača, čítača, PWM, sériové vysielače a prijímače, UART, SPI, I2C, IrDA...