modul l 11:: uvod digital signal controller...
TRANSCRIPT
Digital Signal ControllerTMS320F28335
Modul Modul 11: Uvod: Uvod
1 1 -- 11
Texas Instruments Incorporated
1. Šta je mikroprocesor?
mikroprocesor (µP, mp):– Centralno kolo mikroračunarsog sistema– Dve osnovne arhitekture:
– “von Neumann”:» Zajednički memorijski prostor za program i podatke» Zajednička magistrala
1 1 -- 22
» Zajednička magistrala» Primer: Intel x86 Pentium Processor family
– “Harvard”:» Nezavisni memorijski prostor za program i podatke» Dve magistrale
– µP zahteva dodatka kola za svoj rad
Blok šema mikroprocesora
programskamemorija
Centralna
Kontrolna jedinica
pro
ces
pro
ces
1 1 -- 33
Memorija zapodatke
CentralnaProcesorskaJedinica-CPU
ulaznimodul
izlaznimodul
pro
ces
pro
ces
Mikroprocesor
Tok izvršenja instrukcijaProgramski brojač (PC) u kontrolnoj jedinici adresiraprvu (sledeću) instrukciju u programskoj memoriji
Instrukcija se čita (“fetch”) iz programske memorijeu instrukcioni registar (IR) mikroprocesora
Instrukcija se dekodira i vrše neka od aktivnosti:
1 1 -- 44
Instrukcija se dekodira i vrše neka od aktivnosti:
Čita ulaz& izračunava
Čita podatak izmemorije& compute
interna operacija
Ažuriranjeizlaza
Upis u memoriju
inkrement ili modifikacija programskog brojača
CPU mikroprocesora
CPU = Central Processing Unit
• Sastoji se iz:– Nekoliko unutrašnjih memorijskih ćelija (“Register”) za operande– Računska jedinica: “Arithmetic Logic Unit” (ALU) – Instrucioni registar (IR) i instrukcioni decoder – Adresna jedinica
• Adresna jedinica:
1 1 -- 55
• Adresna jedinica: – Čita podatke i instrukcije iz memorije– Upisuje podatke u memoriju
• Instruction decoder:– Analizira tekuću instrukciju i kontroliše sledeće aktivnosti
ostalih modula• Registri:
– Čuvaju podatke za trenutne instrukcije i izračunavanja
Napomena: današnji mikroprocesori imaju veliku složenost a često i određeni broj paralelnih jedinica. Ipak, u osnovni principi su i dalje isti
ALU (Arithmetic Logic Unit)
izračunava aritmetičke i / ili logičke funkcije:Minimalno:
arithmetičke: Sabiranje (ADD)logičke: Negacija (NEG)
Konjukcija (AND)Tipično:
aritmetičke: Oduzimanje (SUB)Množenje (MUL)
logical: Comparacija (CMP)Disjunkcija (OR)Antivalenca (EXOR)
raznovrsne: Pomeranje u levo i desno (ASR,ASL)
1 1 -- 66
raznovrsne: Pomeranje u levo i desno (ASR,ASL)Rotiranje (ROL, ROR)Manipulacija registrima i bitovima (set, clear, toggle, test)
• ALU procesira dve binarne vrednosti jednake dužine (N)è N-Bit ALU şa N = 4,8,16,32 ili 64
• većina ALU radi u formatu fiksnog zareza - Fixed Point Numbers
• ALU kod Digital Signal Procesora i desktop procesora mogu da rade i u pokretnom zarezu - Floating Point Numbers
Primer: jednostavna struktura ALU
A, B, Y: Interni registriF: Kod funkcije
1 1 -- 77
F: Kod funkcijeC: Carry – BitN: Znak – BitZ: Zero - Bit
ALU kao nezavisan čip:SN 74 LS 181
Napomena: većina ALU generiše podatak širine 2*n za registar Y u slučaju operacije množenja Y = A * B
History (1984): Microprocessor Intel 80x86
- Bus Control- Address & Data Bus –
Interface- Instruction Queue
Bus - Unit
- Memory Manager- logical / physical
address
Address – Unit
data
control/status
address
1 1 -- 88
Execution - Unit Instruction – Unit
- CPU- ALU- Register
- Decode Instruction- Operation Queue
2. Desktop – PC ?
2. Mikroračunar– Mikro računar = mikroprocesor (µP) + memorija +
periferije– Primer: Desktop -PC
Programskamemorija
Memorijaza podatke
1 1 -- 99
Mikroprocesor
memorija za podatke
Takt Tajmer/Brojač
Analogniizlaz
Digitalniizlaz
Analogniulaz
Digitalniulaz
Magistrala memorije
Magistrala periferija
mikroračunar - periferije
• Periferije sadrže:
– Digitalne ulazno/izlazne linije– Analogno digitalni konvertor (ADC)– Digitalno analogni konvertor (DAC)– Timer / Brojač jedince– Pulse Width Modulation (PWM) digitalne izlazne linije– Digitalne ulazne linije “hvatanja” - Capture
1 1 -- 1010
– Digitalne ulazne linije “hvatanja” - Capture– Mrežne interfejs blokove:
» Serial Comunication Interface (SCI) - UART» Serial Peripheral Interface (SPI)» Inter Integrated Circuit ( I2C) – Bus » Controller Area Network (CAN)» Local Interconnect Network (LIN)» Universal Serial Bus (USB)» Local / Wide Area Networks (LAN, WAN)
– Graphical Output Devices– …
3. Sistem na čipu
3. Mikrokontroler (µC, MCU)
– Ništa više od mikroračunara na čipu!– Sve što treba za potrebe izračunavanja, ulaza i izlaza
u cilju rada u realnom vremenu nalazi se na čipu– Garantovano efikasno rešenje za primene u
embedded sistemima
1 1 -- 1111
embedded sistemima– Kičma skoro svih modernih proizvoda
– Preko 200 nezavisnih familija µC – Obe µP – arhitekture (“Von Neumann” i “Harvard”)
3. Primer: Microcontroller MSP430
1 1 -- 1212
Texas Instruments MSP430 von-Neumann arhitektura — program, memorija za podatke i periferije dele zajedničku bus strukturu.
4. Digital Signal Processor
Digital Signal Processor (DSP) je:
– Sličan mikroprocesoru (µP), t.j. Jezgro računarskog sistema
– Dodatne hardverske jedince koje ubrzavaju
1 1 -- 1313
– Dodatne hardverske jedince koje ubrzavaju izračunavanje sofisticiranih matematičkih operacija:» Dodatni hardverski množači» Dodatni aritmetički pointeri» Dotatne magistrale za paralelni pristup» Dodatni haardverski pomerači za
scaliranje i množenje/deljenje sa 2n
Šta je tipični DSP algoritam?
Algorithm Equation
Finite Impulse Response Filter ∑=
−=M
kk knxany
0
)()(
Infinite Impulse Response Filter ∑∑ −+−=N
k
M
k knybknxany )()()(
• Jednačina “Sum of Products” (SOP) je ključnielement većine DSP algoritanma:
1 1 -- 1414
Infinite Impulse Response Filter ∑∑==
−+−=k
kk
k knybknxany10
)()()(
Convolution ∑=
−=N
k
knhkxny0
)()()(
Discrete Fourier Transform ∑−
=
−=1
0
])/2(exp[)()(N
n
nkNjnxkX π
Discrete Cosine Transform ( ) ( )∑−
=
+=
1
0
122
cos).().(N
x
xuN
xfucuF π
Izvršavanje SOP sa µP
• Zadatak : koristeći Desktop - PC realizovati kod koji rešava jednačinu C jeziku
• C-kod može imati oblik:
#include <stdio.h>
∑=
=3
0][*][
iicoeffidatay
1 1 -- 1515
#include <stdio.h>int data[4]={1,2,3,4};int coeff[4]={8,6,4,2};int main(void){
int i;int result =0;for (i=0;i<4;i++)
result += data[i]*coeff[i];printf("%i",result);return 0;
}
6 Osnovne operacije SOP
• Šta će Pentium morati da uradi?1. Postavi Pointer1 da ukazuje na data[0]2. Postavi drugi Pointer2 da ukazuje na coeff[0]3. Učita data[i] 4. Učita coeff[i]5. Pomnoži data[i]*coeff[i]
∑=
=3
0][*][
iicoeffidatay
1 1 -- 1616
4. Učita coeff[i]5. Pomnoži data[i]*coeff[i]6. Sabere rezultat sa prethodnim7. Modifikuje Pointer18. Modifikuje Pointer29. Inkrementira i;10. If i<4 , vraća se na korak 3 i nastavlja sa radom
• Koraci 3 do 8 se nazivaju“6 Osnovnih DSP operacija”• DSP izvršava svih 6 koraka u jednommašinskom ciklusu!
SOP mašinski kod µP
Address M-Code Assembly - Instruction 10: for (i=0;i<4;i++)00411960 C7 45 FC 00 00 00 00 mov dword ptr [i],0 00411967 EB 09 jmp main+22h (411972h) 00411969 8B 45 FC mov eax,dword ptr [i] 0041196C 83 C0 01 add eax,1 0041196F 89 45 FC mov dword ptr [i],eax 00411972 83 7D FC 04 cmp dword ptr [i],4 00411976 7D 1F jge main+47h (411997h)
1 1 -- 1717
11: result += data[i]*coeff[i];00411978 8B 45 FC mov eax,dword ptr [i] 0041197B 8B 4D FC mov ecx,dword ptr [i] 0041197E 8B 14 85 40 5B 42 00 mov edx,dword ptr[eax*4+425B40h] 00411985 0F AF 14 8D 50 5B 42 00 imul edx,dword ptr[ecx*4+425B50h] 0041198D 8B 45 F8 mov eax,dword ptr [result] 00411990 03 C2 add eax,edx 00411992 89 45 F8 mov dword ptr [result],eax 00411995 EB D2 jmp main+19h (411969h)
Note: The C-Compiler was used in basic setup mode using optimization level zero.
Izvršavanje SOP sa DSP
• Koristeći DSP-Razvojni sistem kodiraj jednsčinu u DSP C-compiler sistemu, t.j. Texas Instruments Code Composer Studio
• C-kod rešenje je identično:
∑=
=3
0][*][
iicoeffidatay
1 1 -- 1818
int data[4]={1,2,3,4};int coeff[4]={8,6,4,2};int main(void){
int i;int result =0;for (i=0;i<4;i++)
result += data[i]*coeff[i];printf("%i",result);return 0;
}
DSP-Translacija u mašinski kod
Address M-Code Assembly Instruction0x8000 FF69 SPM 00x8001 8D04 0000R MOVL XAR1,#data0x8003 76C0 0000R MOVL XAR7,#coeff0x8005 5633 ZAPA0x8006 F601 RPT #10x8007 564B 8781 || DMAC ACC:P,*XAR1++,*XAR7++
1 1 -- 1919
0x8007 564B 8781 || DMAC ACC:P,*XAR1++,*XAR7++0x8009 10AC ADDL ACC,P<<PM0x800A 8D04 0000R MOVL XAR1,#y0x800B 1E81 MOVL *XAR1,ACC
Example: Texas Instruments TMS320F28335Space : 12 Code Memory ; 9 Data MemoryExecution Cycles : 10 @ 150MHz = 66 ns
5. Digital Signal Controller (DSC)Digital Signal Controller (DSC)
– poznato: Mikrokontroler (MCU) je mikroračujar na čipu sa mikroprocesorom (µP) kao jezgrom.
– Sada: Digital Signal Controller (DSC) je mikroračunar sa Digital Signal Procesorom (DSP) kao jezgrom.
– Kombinovanjem računarske snage DSP sa
1 1 -- 2020
– Kombinovanjem računarske snage DSP sa memorijama i periferijama u jednom kolu dobija se najefektivnije rešenje na jednom čipu za embedded “real time” kontrolne sisteme koji zahtevaju puno matematičkih operacija.
– DSC –Primer: Texas Instruments C2000 DSC -familija.
DSP Market Share in 2006
6%
9%
14%
12%
AgereAnalog Devices
1 1 -- 2121
59%
FreescaleTexas InstrumentsOther
Total Revenue: 7635 Million US-$
Source: www.forwardconcepts.com
DSP Market Areas in 2006
9,1
8
4,63,2 2,8
WirelessConsumerMultipurpose
1 1 -- 2222
72,3
9,1 MultipurposeComputerWirelineAutomotive
Source: www.forwardconcepts.com
Relative
Texas Instruments Portfolio
DSPMicrocontrollers
Ultra-Low Power
Up to 25MHz
16-bitMCU
MSP430
Fixed & Floating Point
Up to 150MHz
32-bitReal-time
C2000™
Industry StdLow Power
Up to 100MHz
Stellaris Cortex™ M3
32-bitARM
Industry-Std Core,High-Perf GPP
Accelerators
ARM+
ARM9Cortex A-8
Industry-Std Core +DSP for Signal Proc.
4800 MMACs/
ARM + DSP
C64x+ plusARM9/Cortex A-8
Leadership DSP Performance
24,000 MMACS
DSP
C647x, C64x+, C55x
Arm-Based
1 1 -- 2323
Up to 25MHz
Flash1KB to 256KB
Analog I/O, ADCLCD, USB, RF
Measurement,Sensing, General
Purpose
$0.49 to $9.00
Up to 150MHz
Flash32KB to 512KB
PWM, ADC, CAN, SPI, I2C
Motor Control, Digital Power,
Lighting
$1.50 to $20.00
Up to 100MHz
Flash8KB to 256KB
USB, ENET, ADC, PWM, HMI
Host Control, general purpose,
motor control
$2.00 to $8.00
Accelerators
MMU
USB, LCD,MMC, EMAC
Linux/WinCE User Apps
$8.00 to $35.00
4800 MMACs/1.07 DMIPS/MHz
MMU, Cache
VPSS, USB, EMAC, MMC
Linux/Win +Video, Imaging,
Multimedia
$12.00 to $65.00
24,000 MMACS
Up to 3MBL2 Cache
1G EMAC, SRIO,DDR2, PCI-66
Comm, WiMAX, Industrial/
Medical Imaging
$4.00 to $99.00+
Texas Instruments TMS320 DSP/DSC
Dedicated families and sub-families to support different market needs
Lowest CostLowest Cost
C2000C2000 C5000C5000
EfficiencyEfficiency
C6000C6000
PerformancePerformance &&
1 1 -- 2424
Lowest CostLowest CostControl SystemsControl Systemsww Motor ControlMotor Controlww StorageStorageww Digital Control SystemsDigital Control Systemsww Power Supply ControlPower Supply Control
EfficiencyEfficiencyBest MIPS perBest MIPS per
Watt / Dollar / SizeWatt / Dollar / Sizeww Wireless phonesWireless phonesww Internet audio playersInternet audio playersww Digital still cameras Digital still cameras ww ModemsModemsww TelephonyTelephonyww VoIPVoIP
ww Multi Channel and Multi Channel and Multi Function App'sMulti Function App's
ww Communication InfrastructureCommunication Infrastructureww Wireless BaseWireless Base--stationsstationsww DSLDSLww ImagingImagingww MultiMulti--media Serversmedia Serversww VideoVideo
PerformancePerformance &&EaseEase--ofof--UseUse
C2000 32-bit Real-Time Controller
Production
Development
Sampling
Future
F281x
C2834x
F2833x
•100-150MHz•128-512kB Flash•52-68kB SRAM
•200-300MHz•196-516kB SRAM
•External ADC•Low Active Power
PER
FOR
MAN
CE
F2823x
Next Gen
•Higher Performance•Connectivity
•Safety Enhancements
1 1 -- 2626
Fixed Point(100-176 Pins)• 60 – 150 MHz
• 32 – 512kB Flash• 3Ph PWM/QEP
• 12-bit, 2 SH ADC (Up to 12.5 MSPS)• CAN, McBSP
• UART, SPI
F2803x
•40-60MHz•16-64kB Flash•Analog Comp
•60MHz•Control Law Accelerator
•32-128kB Flash•CAN, LIN
PER
FOR
MAN
CE
TIME100+ Code Compatible Devices
F280x
Next Gen•Low Power
•Small Package
F2802x
Next Gen•Performance
•Memory•Connectivity
Versatile C2000 Application Areas
Solar Power Inverters
Wind Power Inverters
C2000LED Street Lighting
White Goods Industrial Drives & Motion Control
E-bike
Power Tools
DC/DC Converters
Renewable Energy
Digital Power
Digital Motor Control
Lighting
1 1 -- 2727
C2000
Telecom / Server AC/DC Rectifiers
Uninterruptable Power Supplies
Electric Power Steering
Radar / Collision Avoidance
LED TV Backlighting
Hybrid Electric Vehicles
Auto HID
Power Line Communication
Laser Ranging
RFID Readers
Medical Oxygen Concentrators Optical
Networking
Automotive Precision Sensing & Control
TMS320C28x DSC Block Diagram
TMS320F28335
Interrupt Management
Memory Bus
Code security
12-bit ADC
512 KBFlash
68 KB RAM
6 CAP
18 PWM(6 HRPWM)
DMA
Boot ROM
2 QEP
Peripheral Bus
1 1 -- 2828
Real-TimeJTAG
32-bitTimers (3)
C28xTM 32-bit DSC
32x32-bitMultiplier
R M WAtomic
ALU
Interrupt Management 12-bit ADC
SPI
2 CAN
3 SCI
2 McBSP32-bit
Floating-Point Unit
88 GPIO
I²C
16/32-bitEMIF
Peripheral Bus