Liczniki z zastosowaniem

Podobne dokumenty
Liczniki z zastosowaniem

napięcie-częstotliwość

Układy czasowo-licznikowe w systemach mikroprocesorowych

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Elektroniczny sejf hotelowy

Układy czasowo-licznikowe w systemach mikroprocesorowych

Sterowanie wyświetlacza LCD typu HD44780

Programowany układ czasowy

Technika Mikroprocesorowa

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

(przykład uogólniony)

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 4

Programowanie Mikrokontrolerów

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Szkolenia specjalistyczne

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Programowany układ czasowy APSC

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

2. PRZERZUTNIKI I REJESTRY

Budowa mikrokontrolera UC3C. - 3 rodzaje obudów

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Projektowanie układów FPGA. Żródło*6+.

Instytut Teleinformatyki

Systemy Czasu Rzeczywistego FPGA

Elektronika i techniki mikroprocesorowe

Urządzenia peryferyjne procesora ColdFire

Systemy Czasu Rzeczywistego FPGA

1.2. Architektura rdzenia ARM Cortex-M3...16

Laboratorium Podstaw Techniki Cyfrowej

Ćw. 7: Układy sekwencyjne

LCD (Liquid Crystal Display)

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Architektura mikrokontrolera MCS51

Systemy na Chipie. Robert Czerwiński

Instytut Teleinformatyki

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Automatyzacja i robotyzacja procesów produkcyjnych

Liczniki, rejestry lab. 07 Układy sekwencyjne cz. 1

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Laboratorium Asemblerów, WZEW, AGH WFiIS Tester NMOS ów

Model programowy procesora ColdFire

Architektura mikrokontrolera MCS51

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Ćwiczenie 27C. Techniki mikroprocesorowe Badania laboratoryjne wybranych układów synchronicznych

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Mikroprocesory i Mikrosterowniki

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Charakterystyka mikrokontrolerów

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Proste układy sekwencyjne

Cyfrowe układy scalone c.d. funkcje

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Systemy Czasu Rzeczywistego FPGA

Programowalne układy logiczne kod kursu: ETD Układy sekwencyjne W

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska


Ćwiczenie MMLogic 002 Układy sekwencyjne cz. 2

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Przerzutniki. Układy logiczne sekwencyjne odpowiedź zależy od stanu układu przed pobudzeniem

start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

Ćwiczenie 7 Matryca RGB

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Hardware mikrokontrolera X51

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Systemy Czasu Rzeczywistego FPGA

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

W przypadku spostrzeżenia błędu proszę o przesłanie informacji na adres

Przerzutniki RS i JK-MS lab. 04 Układy sekwencyjne cz. 1

System mikroprocesorowy i peryferia. Dariusz Chaberski

Kierunek Elektronika, III rok Języki Opisu Sprzętu. Platforma sprzętowa. Rajda & Kasperek 2016 Katedra Elektroniki AGH 1

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

Mikroprocesory i Mikrosterowniki

Listing_ $crystal = deklaracja

Opis przedmiotu zamówienia CZĘŚĆ 1

Sterowniki Programowalne (SP)

UKŁADY CYFROWE. Układ kombinacyjny

Parametryzacja przetworników analogowocyfrowych

Programowalne układy logiczne

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Architektura komputerów. Układy wejścia-wyjścia komputera

dwójkę liczącą Licznikiem Podział liczników:

Transkrypt:

Liczniki z zastosowaniem FPGA i µc Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1

Zliczanie impulsów Źródło impulsów Kondycjonowanie Licznik Wyświetlacz Układ czasowy 2

Liczniki Rodzaje implementacji: Układy średniej skali integracji MSI Mikrokontroler Układ FPGA 3

Przerzutnik D Q n+1 = D CLK D Q n Q n+1 0 x 0 kasowanie 1 x 1 ustawianie n+1 oznacza nstępny stan wyjścia Q tzn. po narastającym zboczu zegara 4

Przerzutnik J-K CLK J K Q n Q n+1 0 0 x Q n trzymanie 0 1 x 0 kasowanie 1 0 x 1 ustawianie 1 1 x Q n zamiana x x x Q n JK Q 0 1 00 0 1 01 0 0 11 1 0 10 1 1 Q n+1 = JQ n + K Q n 5

Przerzutnik T T CLK T Q n Q n+1 0 x Q n trzymanie 1 x Q n zamiana x x Q n T Q 0 1 0 0 1 1 1 0 Alternatywa wykluczająca Q n+1 = Q n T + Q n T = Q n T 6

Licznik asynchroniczny 1 clk T D1 clk D1 D2 00 01 10 11 00 1 T 1 T clk D1 D2 LSB MSB 7

Licznik asynchroniczny T T T T 8

Licznik synchroniczny 1 clk T D1 clk D1 D2 00 01 10 11 00 1 T T clk D1 D2 9

Licznik synchroniczny T T T T 10

Licznik - MSI Polaryzacja diod a Polaryzacja diod a f g b f g b e d c e d c g f e d c b a g f e d c b a 74x47 BCD -> 7seg 74x47 BCD -> 7seg Q A Q B Q C Q D Q A Q B Q C Q D Binary -> BCD Q A Q B Q C Q D 74x163 11

Licznik w µc Podłącz wyjście przetwornika do wejścia wychwytującego CAP2.1 układu czasowego LPC_TIM2 +3.3V U/f 3 P0.5 NXP LPC 1768 (ARM Cortex M3) Wyświetlacz graficzny Land Tiger 12

GPIO Wyświetlacz graficzny Mikrokontroler Mikrokontroler LPC 1768 DAC I2S PWM WDT ADC UART Rdzeń ARM Cortex M3 SPI CAN Ethernet DMA Impulsy wejściowe TIMER USB I2C RTC DAC Digital Analog Converter GPIO ADC Analog Digital Converter DMA UART Universal Asynchronous Receiver-Transmitter PWM CAN Controller Area Network WDT SPI Serial Peripheral Interface USB I2C Inter-Integrated Circuit I2S RTC Real Time Clock Ethernet General-Purpose Input/Output Direct Memory Access Pulse Width Modulation WatchDog Timer Universal Serial Bus Inter-IC Sound 13

Układ czasowy TIMER Cztery identyczne układy czasowe Timer/Counters. Każdy posiada dwa wejścia wychwytujące Capture oraz dwa wyjścia sygnalizacji zgodności Match. Liczniki 32-bitowe z programowalnym 32-bitowym układem wstępnego skalowania (prescaler). Dwa tryby pracy: licznik Counter lub układ czasowy Timer. Dwa kanały wychwytujące na każdy układ czasowy, tak aby możliwe było pobranie bieżącej wartości układ czasowego kiedy na wejściu wychwytującym zachodzi zmiana stanu. Cztery 32-bitowe rejestry porównujące (match registers), które umożliwiają: Ciągłą pracę układ czasowy z generacją przerwania w chwili osiągnięcia zgodności (match) zawartości układu z rejestrem porównującym, Zatrzymanie (Stop) układu czasowego w chwili osiągnięcia zgodności z(bez) generacją(i) przerwania Kasowanie (Reset) układu czasowego w chwili osiągnięcia zgodności z(bez) generacją(i) przerwania Cztery zewnętrzne wyjścia odpowiadające rejestrom porównującym o następujących akcjach gdy licznik główny osiągnie wartość przechowywaną w rejestrze porównawczym: Ustaw nisko Ustaw wysoko TIMER0 Zmień stan na przeciwny Przerwanie Nie zmieniaj stanu. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TIMER1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 Impulsy wejściowe CAP2.1 TIMER2 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 TIMER3 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 14

Licznik w µc TIMER0 pracuje w trybie układu czasowego wyznaczającego czas otwarcia bramki TIMER2 pracuje w trybie licznika zliczającego zbocza narastające impulsów przychodzących na wejście CAP2.1 int main (void) { uint32_t TimerInterval; SystemInit(); SystemCoreClockUpdate(); TimerInterval = SystemCoreClock; //1s lcdinit(); init_counter2_ch1(); init_timer(0, TimerInterval); while (1) { } } void TIMER0_IRQHandler (void) { int k; int del = 127; uint32_t val; LPC_TIM0->TCR = 0x0000; //stop timer LPC_TIM2->TCR = 0x0000; //stop counter LPC_TIM0->IR = 1; //clear interrupt flag val = LPC_TIM2->TC; //take current value //clear display for (k=0; k < 7; k++) printf("%c",del); //set white colour and posinion for first digit colour = LCDWhite; posx = 76; //display current value printf("%d", val); LPC_TIM2->TCR = 0x0002; //reset counter LPC_TIM2->TCR = 0x0001; //start counter LPC_TIM0->TCR = 0x0001; //start timer //set black colour and position for first digit posx = 76; colour = LCDBlack; return; } 15

LPC 1768 impulsy GND 16

Licznik - FPGA Podłącz wyjście przetwornika do wejścia licznika BCD z wyświetlaczem LCD przygotowanym na płycie FPGA. +3.3V U/f 3 V14 FPGA LCD Spartan 3AN starter kit Implementacja licznika 17

Matrycowy moduł LCD E RW RS BF Wyświetlacz LCD CG RAM DD RAM DB[7:0] Licznik Adresu Rejestr Danych BF Busy Flag znacznik zajętości magistrali Rejestr Komendy typ HD44780 18

Licznik - FPGA clk rst FPGA E RW RS DB [7:0] Sterowanie LCD 4 4 4 Licznik BCD 4 in Detektor zbocza narastającego Licznik Modulo 10 Licznik Modulo 10 Licznik Modulo 10 Licznik Modulo 10

Blok wejściowowyjściowy (I/O Block IOB) Pionowy kanał łączeniowy (Vertical Routing Channel) Konfigurowalny blok logiczny (Configurable Logic Block CLB) Element kluczujący (Switch Box - SB) Element łączący (Connection Box - CB) Poziomy kanał łączeniowy (Horizontal Routing Channel) Siatkowe FPGA składa się z matrycy konfigurowalnych bloków logiki (Configurable Logic Blocks - CLBs), z których każdy składa się z klastra podstawowych Elektroniczna Aparatura elementów Dozymetryczna, logicznych (Basic Logic Elements -BLEs)., które 20 składają się z pamięci podręcznej (Look-Up Table) iwfiis, przerzutnika AGH (Flip-Flop).

Architektura FPGA Siatkowe FPGA składa się z matrycy konfigurowalnych bloków logiki (Configurable Logic Blocks - CLBs), z których każdy składa się z klastra podstawowych elementów logicznych (Basic Logic Elements -BLEs), które składają się z pamięci podręcznej (Look-Up Table) i przerzutnika (Flip-Flop). Elementy kluczujące (Switch boxes - SB) łączą poziome i pionowe ścieżki sieci połączeniowej. Elementy łączące (Connection Boxes CB) łączą bloki logiczne CLB i bloki wejścia-wyjścia IOB z sąsiadującymi ścieżkami sieci połączeniowej. Sieć połączeniowa FPGA zajmuje 80-90% powierzchni układu. Powierzchnia logiki zajmuje 10-20%. Elastyczność FPGA zależy głównie od jego programowalnej sieci połączeniowej. Dlatego mówi się też o architekturze wyspowej wyspy logiki w morzu zasobów połączeniowych. 21

Switch Box Switch Box Connection Box Switch Box Switch Box Zasoby połączeniowe wokół jednego bloku CLB z segmentami śćieżek długości 1 22

Spartan-3AN System Gates Equivalent Logic Cells CLBs Slices Maksymalna liczba linii I/O XC3S700AN 700k 13248 1472 5888 372 V14 GND Źródło impulsów 23

Liczba CLB: n CLB = 1 472 szt. Jeden CLB składa się z czterech SLICE-ów: Liczba SLICE: n SLICE = n CLB 4 = 5 888 szt. XC3S700AN Jeden SLICE składa się z dwóch komórek logicznych LC: Liczba LC: n LC = n SLICE 2 = 11 776 szt. Równoważna komórka logiczna ELC jest obliczana ze współczynnikiem 1,125: Liczba ELC: n ELC = 1,125 n LC = 13 248 szt. Liczba bramek systemowych wynika ze skomplikowanych przeliczeń poszczególnych elementów układu na dwuwejściowe bramki NAND i ma charakter raczej marketingowy. Spartan-3AN System Gates Equivalent Logic Cells CLBs Slices Maksymalna liczba linii I/O XC3S700AN 700k 13248 1472 5888 372 24

Licznik - FPGA Model licznika modulo 10 napisany w języku Verilog `timescale 1ns / 1ps ///////////// module cnt_modulo10 (input clk, rst, en, output reg [3:0] dig_out); always @(posedge clk, posedge rst) if(rst) dig_out <= 4'b0000; else if(en) if(dig_out == 4'b1001) dig_out <= 4'b0000; else dig_out <= dig_out + 4'b0001; endmodule 25

Model RTL w HDL Synteza logiczna Przebieg konfiguracji Mapowanie technologii Klastrowanie Rozmieszczanie Wyznaczania tras połączeń Generacja strumienia bitowego strumień bitowy 26

Automatyczna synteza licznika BCD Narzędzie: Synplify 27