Elektronický fázově citlivý přijímač s číslicovým zpracováním signálu (Aplikace programovatelných logických polí v bezpečných elektronických obvodech pro železniční zabezpečovací techniku)
Martin Poupa Seminář K aktuálním problémům zabezpečovací techniky v dopravě II 23. května 2007
Katedra aplikované elektroniky a telekomunikací Fakulta elektrotechnická Západočeská univerzita v Plzni www.fel.zcu.cz
Obsah • • • • •
Úvod Algoritmus číslicového zpracování signálu Obvodové řešení Vhodné PLD obvody Návrh PLD obvodu
M. Poupa - Seminář APZTVD 23.5.2007 2
Úvod - kolejový obvod
šunt
φKOL φREF
φKOL 75 Hz φREF
FCP
přijímač předchozího úseku
φREF
zdroj signálu
φKOL
φKOL
FCP
75 Hz zdroj signálu pro následující úsek signalizace
Fázově Citlivý Přijímač
signalizace obsazení / volnosti předchozího úseku
obsazení / volnosti úseku
M = k I1 I2 sin θ M. Poupa - Seminář APZTVD 23.5.2007 3
Algoritmus číslicového zpracování signálu • Model systému v jazyce C (knihovna arith) • Tři režimy:
• • • • • • • •
– vstupní data ze souborů (simulovaná nebo reálná data) – interaktivně generovaná vstupní data – běh v reálném čase s reálnými daty
Vstup dat (soubory, generování, reálné signály) Paměť pro vzorky a koeficienty 1 bodová diskrétní Fourierova transformace Výpočet amplitud a fází (CORDIC) Výpočet sinu rozdílu fází (CORDIC) Výpočet momentu Prahování s hysterezí Nastavitelné zpoždění výstupu (přítah/odpad)
M. Poupa - Seminář APZTVD 23.5.2007 4
Algoritmus DFT i =0
=
N −1
∑ xiWNik ,
k = 0,1,..., N − 1
i =0
clk sum_reset sum_en
∑ xi e
− j ( 2π / N )ik
RAM_DATA
x +
ROM_COS
R E G
sum_re
clk sum_reset sum_en
Xk =
N −1
x ROM_SIN
+
R E G
sum_im
M. Poupa - Seminář APZTVD 23.5.2007 5
Algoritmus CORDIC X[j]
Y[j]
j
posun
σj
± X[j+1]
σj
Z[j]
j
posun
± Y[j+1]
σj
αj tab. αj
j
± Z[j+1]
Výpočet amplitudy a fáze (X=RE, Y=IM, Z=0 => X=1,6468*M, Z=θ) Výpočet funkce sin (X=1, Y=0, Z=θ => X=cos θ, Y=sin θ)
M. Poupa - Seminář APZTVD 23.5.2007 6
Zjednodušené blokové schéma DIPy 7 seg. ledky tlačítka
ovládací panel
sad1
generátor hodin
RAM1
sclk scs
clk
RS-232
řízení ADC RAM2
sad2
stav. aut., registry
cos sin data xin yin zin
moment
ROM cos,sin 1 bodová DFT celočíselný CORDIC
cos sin
re im xout yout zout
prah., nast. zpoždění přítahu / odpadu
výstup EFCP
M. Poupa - Seminář APZTVD 23.5.2007 7
Výsledná implementace • Realizovaný číslicový systém: – – – –
cca 2000 LE, 600 FF, 6 kB RAM hodinová frekvence 7,2 MHz výpočetní výkon systému: 22 MOPS celý systém navržen v jazyce VHDL
• Funkční vlastnosti: – Nastavitelný přítah: 140 ms až 10 s – Pevný odpad: 100 ms – Plnohodnotná náhrada DSŠ (M = k I1 I2 sin θ)
• Výhody oproti DSŠ:
– Diagnostické měření amplitudy a fáze při volném a obsazeném obvodu – Možnost dalších funkčních a diagnostických rozšíření
M. Poupa - Seminář APZTVD 23.5.2007 8
Prototyp a celková koncepce • Funkčnost navrženého algoritmu úspěšně ověřena na vývojovém prototypu – malá EURO karta • Systém se sestává v podstatě pouze z: oscilátoru, jednoho FPGA obvodu a A/D převodníků - SOPC (System On Programmable Chip) • Dvoukanálové řešení s komparací: – Hodnot z A/D převodníků – Vypočítaných amplitud a fází – Komparace výstupů – A několika dalších vnitřních stavů
M. Poupa - Seminář APZTVD 23.5.2007 9
Výrobci PLD (Programmable Logic Device) Největší výrobci PLD obvodů Xilinx www.xilinx.com – (CPLD, FPGA) Altera www.altera.com – (CPLD, FPGA) Lattice www.latticesemi.com – (SPLD, CPLD, FPGA) Actel www.actel.com – (Flash a Antifuse FPGA) Atmel www.atmel.com – (SPLD, CPLD, FPGA) QuickLogic www.quicklogic.com – (FPGA) Cypress www.cypress.com – (SPLD, CPLD)
Ostatní (Actel,Atmel,aj.)
Lattice 14%
14%
Xilinx 38%
Altera 34% Duben 2001, zdroj Paltek Corp. (JPN)
M. Poupa - Seminář APZTVD 23.5.2007 10
Obvody SPLD a CPLD • SPLD (Simple PLD), EPLD – – – – –
obvody řady GAL, ispGAL, aj. nízký počet hradel nízký počet klopných obvodů E2PROM, některé ISP prog. Napájecí napětí 5V; 3,3V; 2,5V; 1,8V
• CPLD (Complex PLD) – – – – – – – –
Altera: MAX3000A, MAX7000AE/B/S Lattice: ispMACH, ispXPLD Xilinx: XC9500/XL, CoolRunner 600 – 12k hradel (Altera, Xilinx) 600 - 300k hradel, 512 kbit SRAM (Lattice) ISP programování: IEEE Std 1149.1 nebo IEEE Std 1532 Napájecí napětí 5V; 3,3V; 2,5V; 1,8V E2PROM, FLASH
M. Poupa - Seminář APZTVD 23.5.2007 11
výstupní propojovací pole
I/O blok výstupní propojovací pole
I/O blok
.. . logický blok
.. .
logický blok
velké centrální propojovací pole
logický blok
.. . I/O blok
I/O blok
výstupní propojovací pole
logický blok
výstupní propojovací pole
GND
VCCIO
TMS
TCK TDI TDO
GND
VCC
GSR GOE
GCLK
GND
VCCIO
Obvody CPLD (Complex Programmable Logic Device)
.. .
M. Poupa - Seminář APZTVD 23.5.2007 12
Obvody CPLD - Lattice Lattice řada ispMACH4000V/B/C (3,3V/2,5V/1,8V) – – – – – – – – – – –
Velikost 32 až 512 makrobuněk Zaručené udržení konfiguračních dat po dobu 20 let Pracovní teplotní rozsah -40°C až +105°C/+130°C Podpora ochrany proti přeprogramování a vyčtení Podpora JTAG-BST (IEEE Std 1149.1) Podpora ISP programovaní (IEEE Std 1149.1 a 1532) Podpora UES (32-bit) I/O piny až 8/-4 mA + řízení rychlosti přeběhu Zpoždění z pinu na pin 2,5 ns 1.000 programovacích cyklů Malé rozměry (QFP, BGA)
M. Poupa - Seminář APZTVD 23.5.2007 13
Obvody CPLD - Xilinx Xilinx řada XC95xxx (5V) a XC95xxxXL (3.3V) – – – – – – – – – – –
Velikost 36 až 288 makrobuněk Zaručené udržení konfiguračních dat po dobu 20 let Pracovní teplotní rozsah -40°C až +85°C Podpora ochrany proti přeprogramování Podpora ochrany proti vyčtení Podpora JTAG-BST (IEEE Std 1149.1) a ISP prog. Podpora UES (32-bit) I/O piny až ±24 mA + řízení rychlosti přeběhu Zpoždění z pinu na pin 5 ns 10.000 programovacích cyklů Malé rozměry (QFP, BGA) M. Poupa - Seminář APZTVD 23.5.2007 14
Obvody FPGA (Field Programmable Gate Array) I/O blok VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O VCCPLL GND CLKIN
VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCCPLL GND CLKIN
logický blok logický prvek lokální propojovací pole horizontální a vertikální propojení
PLL
PLL
VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCC GND VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
TCK TDI TDO TMS TRST
• log. bloky (LUT+FF) • lok. propojení • horiz. a vert. propojení • I/O bloky • bloky RAM • bloky násobiček • bloky PLL
VCC GND VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
VCC GND VCCIO GND I/O I/O I/O I/O I/O I/O I/O I/O
RAM
násobička
RAM
CLKIN GND VCCPLL
I/O I/O I/O I/O I/O I/O I/O I/O GND VCCIO
I/O I/O I/O I/O I/O I/O I/O I/O GND VCCIO
PLL I/O I/O I/O I/O I/O I/O I/O I/O GND VCCIO
CLKIN GND VCCPLL I/O I/O I/O I/O I/O I/O I/O I/O GND VCCIO
PLL
M. Poupa - Seminář APZTVD 23.5.2007 15
Obvody FPGA (Field Programmable Gate Array) Altera: – – Lattice: – Xilinx: – –
Cyclone, II, III (3k – 119k LUT, 13kbit – 3,8Mbit RAM) Stratix, II, III (10k – 338k LUT, 920kbit – 17Mbit RAM) SC, XP, EC, ECP, ECP2/M, ispXPGA (256 – 115k LUT, 2kbit – 1,7Mbit RAM) Spartan,XL,II,IIE,3/E/L/A/AN (1k – 74k LUT, 3kbit – 1.8Mbit RAM) Virtex,E,EM,II,4LX/SX/FX,5LX/LXT/SXT (3k – 331k LUT, 32kbit – 12Mbit RAM)
Vlastnosti: • Technologie SRAM (5V; 3,3V; 2,5V; 1,5V; 1,2V; 1,1V; 0,9V) • ISP programování: IEEE Std 1149.1 nebo IEEE Std 1532 • SRAM => nutnost naprogramovaní po zapnutí napájení • Bloky rychlých vložených pamětí (jedno, dvou bránové, fifo, …) • Podpora pro aritmetické operace (aritmetické přenosy, hw násobičky) • Fázové závěsy, podpora synchr. DRAM, mnoho I/O standardů • Nízká cena za hradlo
M. Poupa - Seminář APZTVD 23.5.2007 16
Obvody FPGA - Altera Altera řada Cyclone/II (1,5V / 1,2V) – – – – – –
– – – –
Velikost C: 3K÷20K / CII: 4k÷68k logických elementů Bloky RAM C: 60÷295Kbit / CII: 120÷1152Kbit Bloky násobiček 18x18bit CII: 13÷150 Fázové závěsy PLL C: 1÷2 / CII: 2÷4 Pracovní teplotní rozsah -40°C až +100°C/+125°C I/O piny nastavitelné proudové omezení 2÷24 mA + řízení rychlosti přeběhu Podpora JTAG-BST (IEEE Std 1149.1) Podpora ISP programovaní (IEEE Std 1149.1 a 1532) Automatická kontrola CRAM pomocí 32-bit CRC Malé rozměry (QFP, BGA)
M. Poupa - Seminář APZTVD 23.5.2007 17
Obvody FPGA - Xilinx Xilinx řada Spartan 3A/3AN (1,2V) – – – – – –
– – – –
Velikost 1,6K÷25K logických elementů Bloky RAM 54÷576Kbit Bloky násobiček 18x18bit 3÷32 Fázové závěsy PLL 2÷8 Pracovní teplotní rozsah -40°C až +100°C I/O piny nastavitelné proudové omezení 2÷24 mA + řízení rychlosti přeběhu Podpora JTAG-BST (IEEE Std 1149.1) Podpora ISP programovaní (IEEE Std 1149.1 a 1532) S3AN – konfigurace int SPI flash (20 let, 100.000 p.c.) Malé rozměry (QFP, BGA)
M. Poupa - Seminář APZTVD 23.5.2007 18
Programovací jazyky pro návrh PLD Hardware Description Language (HDL): • VHDL - IEEE Std 1076 (1987, 1993, 2000, 2002) – 300 str. • Verilog HDL - IEEE Std 1364 (1995, 2001) – 856 str. • Firemní jazyky: AHDL, ABEL, … Vlastnosti HDL jazyků: • Jazyk vysoké úrovně pro popis, simulaci, a syntézu číslicových obvodů a systémů • datové typy, funkce, procedury, práce se soubory, přetížené operátory • Tři druhy popisu: chování, datové toky, strukturální • Signály mohou nabývat více hodnot: • Např. u VHDL-93: 9-úrovňová logika MVL9V (IEEE Std 1164) • Hodnoty: 0, 1, Z, X, U, W, L, H, – • Popis systému pomocí bloků
M. Poupa - Seminář APZTVD 23.5.2007 19
Popis a testování pomocí VHDL Testovací kód (testbench): library ieee; use ieee.std_logic_1164.all; use work.test_pkg.all; entity test is end test;
Syntetizovatelný kód: library ieee; use ieee.std_logic_1164.all; entity decko is port ( d : in std_logic; r : in std_logic; clk : in std_logic; q : out std_logic ); end decko; architecture rtl of decko is begin process (clk, r) begin if r = '1' then q <= '0'; elsif clk'event and clk = '1' then q <= d; end if; end process; end rtl;
architecture behavioural of test is signal d, r, clk, q : std_logic; begin dut : decko port map (d, r, clk, q); process begin d <= '1'; r <= '0'; clk <= '0'; wait for 100 clk <= '1'; wait for 100 r <= '1'; clk <= '0'; wait for 100 clk <= '1'; wait for 100 r <= '0'; clk <= '0'; wait for 100 clk <= '1'; wait for 100 wait; end process; end;
ns; ns;
ns; ns;
ns; ns;
M. Poupa - Seminář APZTVD 23.5.2007 20
Simulace na simulátoru Různé druhy simulace - funkční, po syntéze a časová.
M. Poupa - Seminář APZTVD 23.5.2007 21
Poděkování a kontaktní informace Tato práce vznikla za finančního přispění GA ČR v rámci projektu 102/06/P085.
Ing. Martin Poupa, Ph.D. Katedra aplikované elektroniky a telekomunikací Fakulta elektrotechnická Západočeská univerzita v Plzni Univerzitní 26 306 14 Plzeň . (
[email protected] 377 634 239
M. Poupa - Seminář APZTVD 23.5.2007 22