Beruflich Dokumente
Kultur Dokumente
Blackfin
Presentation
ADI programmable processor Architecture
2.5G/3G Infrastructure
Medical Imaging
Industrial Imaging
Multiprocessing
TigerSHARC
High Performance
Performance
Wired Voice
Wireless Voice
VOIP/VON Blackfin
Industrial Control ADSP-BF53x
Media enabled SHARC
ADSP-21xx Fixed Point Low Cost
Power efficient Floating Point
Image compression
Fixed Point 3G Terminals
Digital Still/Video Camera Audio
MMOIP Infotainment
Telematics Industrial
Biometrics
What does Enable?
Human Interface Wireless Connectivity
Speech Recognition Bluetooth
Text To Speech GSM
Digital
Handwriting 3rd Generation
Signal
Audio
Processing
Digital Imaging
Wired Connectivity CODECs
USB MPEG
TCP/IP JPEG
MOST Network H.263
H.323/MEGACO H.264
Micro- Image
Processing Processing
Designed for
Operating High Level
Systems / Language
RTOS System Control / Applications Software
Blackfin Processors Perform
Signal Processing and Micro-controller Functions
Signal
Proc
Signal
Proc
ASIC Traditional
MCU model
Signal
Control
Proc
Networking Interfaces to sensors
RTC Broad peripheral mix
Watchdog Memory
RTOS
MMU
Byte addressable New model
Video Compression
z Up to four 8-bit math operations in a single cycle
z ~300 cycle execution for an 8*8 DCT (the foundation of MPEG motion estimation)
z IEEE 1180 Rounding maximizes efficiency
z Motion Estimation Executes four partial Sum Absolute Differences in a single
cycle
z Huffman Coding Field Deposit / Extract instruction
Audio
z Voice Codecs: On-The-Fly Saturation for 2G, 3G
z Extended precision for Dolby decoding
Other
z Instruction Set Support for Complex Math, Bit Interleaving, Population Count,
Viterbi Dual Add-Compare-Select, and CRC
Blackfin – Dynamic Power Management lowers
power consumption
Frequency Only
Power (mW)
Variable Frequency
Clock dividers (1x to 63x) enable low latency changes in system performance
Variable Voltage
On-Chip Voltage Regulator generates accurate voltage from 2.25 – 3.6V input
Core voltage programmable from 0.8V to 1.2V (50 mV increments)
Blackfin – MMU Protects You
Protected System
Environment
Power Down
Supervisor Emulation
States
Networking Stacks
RTOS Kadak Kwik-Net – Now
Architecture
Core
L1
Core
Instruction
Timer 64 Memory
SD32
Core D0 bus
DMA Mastered 32 32 Core DA0 bus 32 Core D1 bus 32 Core DA1 bus 64 Core I bus
32
bus Core Clock (CCLK) Domain
System Bus Interface Unit System Clock (SCLK) Domain
PORTS
BF536/7 Only
Blackfin DSP : MSA Architecture
31 16 0
31 0 31 0 31 0 31 0 31 0
I0 L0 B0 M0 P0
I1 L1 B1 M1 P1
I2 L2 B2 M2 P2
I3 L3 B3 M3 P3
P4
• Four sets of 32-bit Index, Base, Length Registers for
DSP Circular buffers. P5
• Four Modify Registers used with any of the Index
Registers access 16-bit and 32-bit aligned data FP
•Separate stack pointer for user and supervisor modes SP
aliased to SP
USP
Addressing modes : Indirect, auto-
increment/decrement, post modify with • Six 32-bit Pointer
non-unity stride, indexed with immediate Registers for general use to
access 8, 16 and 32-bit data
offset, Circular buffer and Bit reverse
Addressing modes
Blackfin : Addressing Modes
Maintains
z Loops
z Subroutines
z Jumps
z Idle
z Interrupts and Exceptions
1 2 3 4 5 6 7 8 9 10 11 12 13
IF1 I1 Br I2 I3 I4 I5 BT
IF2 I1 Br I2 I3 I4 I5 BT
IF3 I1 Br I2 I3 I4 I5 BT
DC I1 Br NOP NOP NOP NOP BT
AC I1 Br NOP NOP NOP NOP BT
EX1 I1 Br NOP NOP NOP NOP BT
EX2 I1 Br NOP NOP NOP NOP BT
EX3 I1 Br NOP NOP NOP NOP
EX4 I1 Br NOP NOP NOP
WB I1 Br NOP NOP
I1: Instruction Before the Branch Br: Branch Instruction BT: Instruction at the Branch Target
Conditional Branches (Jumps)
Emulation
Reset
Non-Maskable Interrupt (NMI)
Exception
Interrupts
z Hardware Error
z Core Timer
z 9 General-Purpose Interrupts for servicing peripherals
Blackfin : Interrupt Management
Lowest
Blackfin : Configurable Memory System
Supports a Cache Memory Model and an SRAM Memory Model
Sustained Dual Data Accesses for DSP Applications
Supports accesses of 8,16, 32 bit data
Separate Multi-ported L1 Instruction and Data Memories
Cache Memory for Microcontrollers & SRAM for DSP Applications
Memory management for Cache Protection
L1 Instruction L2
SRAM & Cache Instruction
& Data
Processor SRAM
Core L1 Data
SRAM & Cache
Scratchpad
SRAM
DMA
Blackfin : Memory Architecture
4KB 4KB
mini-bank mini-bank
Fill by L2
DMA
Code to Core
4KB 4KB
mini-bank mini-bank
Fill A
16KB
4KB
super-bank A
SRAM DMA A
Data 0 Fill B
16KB
super-bank B
Data 1 DMA B
4KB 4KB
mini-bank mini-bank
Four 4KB single-ported L2
mini-banks Fill
DMA
Data 0
Data 1
L1
Data memory can be L1Instruction memory
configured in SRAM or Cache cannot be accessed directly
Modes through DAGs
z 32K SRAM z Use L2 memory for such
z 16K SRAM & 16K Cache accesses.
z 32K Cache
Core and DMA can access
Additional 4K Byte of Scratch L1 memory banks
pad SRAM
simultaneously.
z Stacks and heaps can be stored
in scratch pad SRAM DMA controller has higher
L1 memories operate at Core priority over core accesses.
Clock frequency
Write through and Write back
modes are supported
Blackfin : MMU
Modification
on the fly
Modification requires
PLL Sequencing 1
÷ 1, 2, 4, 8 CCLK
CLKIN 10 PLL
1x - 63x 5
÷ 1 : 15 SCLK
Reset values
On-chip Voltage Regulation
1M Byte Asynchronous
1M Byte Asynchronous
External Memory
1M Byte Asynchronous
16 Data
Start
address SDRAM is
0x0000 0000.
Blackfin DMA capabilities
DMA Setup
Two Types of DMA transfers available
Register-based
z Program the DMA control registers directly
z Upon DMA completion, control registers are automatically updated
with their original setup values in Autobuffer Mode (multiple
transfers)
z The DMA Channel can also be configured to gracefully shut off
with Stop Mode (single transfer).
Descriptor-based
z Requires a set of parameters stored within memory to initiate a
DMA sequence.
z Supports chaining of multiple DMA transfers.
Descriptor Blocks
Descriptor Array Mode Descriptor List (Small Model) Mode Next_Desc_Ptr[15:0]
Next_Desc_Ptr[15:0] Start_Addr[15:0]
0x0 Start_Addr[15:0] Next_Desc_Ptr[15:0] Start_Addr[31:16]
Start_Addr[15:0]
0x2 Start_Addr[31:16] Start_Addr[15:0] DMA_Config
Start_Addr[31:16]
0x4 DMA_Config DMA_Config Start_Addr[31:16] X_Count
X_Count DMA_Config X_Modify
0x6 X_Count Descriptor
Block 1 X_Modify X_Count Y_Count
0x8 X_Modify
Y_Count X_Modify Y_Modify
0xA Y_Count Y_Count
Y_Modify
0xC Y_Modify Y_Modify
Start_Addr[15:0]
Descriptor List (Large Model) Mode
0xE
0x10 Start_Addr[31:16]
Next_Desc_Ptr[31:16]
0x12 DMA_Config Next_Desc_Ptr[31:16]
Next_Desc_Ptr[15:0] Next_Desc_Ptr[31:16]
0x14 X_Count Descriptor
Next_Desc_Ptr[15:0]
Block 2 Start_Addr[15:0] Next_Desc_Ptr[15:0]
0x16 X_Modify Start_Addr[15:0]
Start_Addr[31:16] Start_Addr[15:0]
0x18 Y_Count Start_Addr[31:16]
DMA_Config Start_Addr[31:16]
Y_Modify DMA_Config
0x1A X_Count DMA_Config
X_Count
0x1C Start_Addr[15:0] X_Modify X_Count
X_Modify
Start_Addr[31:16] Y_Count X_Modify
0x1E
Descriptor Y_Count
Y_Modify Y_Count
0x20 DMA_Config Block 3 Y_Modify
Y_Modify
……….…………
………………….
2-D Direct Memory Access
Data Capture & Storage
to Linear L2 Memory
Programmable
Programmable
XX&Y&YCount
Count&&
Stride
StrideValues
Values
A
A B C D E F G H B
K L M N O C
I J P D
E 2-D DMA to
F
G L1 Memory A, B, I, J
H
I
J
K
L
.
.
.
.
2-D DMA significantly decreases S/W overhead in video applications!
Blackfin Peripheral Interfaces
Parallel Peripheral Interface
External Clock
Up to 66MHz
PPICLK
SYNC
Appliances
Up To
16-bit
Parallel
Data
HSYNC
GP - Mode VSYNC PPI_FS1
Video Source FIELD PPI_FS2
PPI_FS3
PPI
8-16 bits data PPIx
CLK
PPI_CLK
SPORTs
MISO
Universal Asynchronous Receiver/Transmitter
UART options
z 5-8 data bits ADSP-BF53x
z 1, 1½ or 2 stop bits
z None, even or odd parity
z Baud rate = SCLK/(16*DIVISOR)
z Supports half-duplex IrDA (9.6/115.2
Kbps rate)
z Autobaud detection support through the
use of the Timers
z Separate TX and RX DMA support
z Data is ALWAYS Transmitted/Received
LSB First
Eleven timers:
int
B
RTC clock
One Core Timer RTC
One Watchdog Timer
One Real-time Clock (RTC) Watchdog int
reset
Eight general purpose timers Timer NMI
z PWM Mode
z Pulse Capture Mode Core int
z External Clock Mode Timer
int int int
GP GP GP
Timer Timer Timer
Core Timer
TPERIOD
32 bit
• Features:
− The processor supports up to 48 bi-directional GPIO (General
purpose Input/Output modules)
− To simplify the programming model, the 48 GPIOs are managed by
three different modules, each one associated PORTF, PORTG, and
PORTH
− Each module independently controls 16 GPIOs.
− Each GPIO can be configured as either an input or output by using
the GPIO Direction registers.
− For GPIO Input:
− Level or edge sensitive trigger of input source
− Rising or falling edge trigger of input source
− Single edge or both edges trigger of input source
General Purpose I/O Pins
48 bi-directional GPIO pins available
Each can be configured as an output, input, or an interrupt pin
Two Interrupt
Requests (FLAGA/FLAGB)
The World Leader in High Performance Signal Processing Solutions
ADSP- -BF537
ADSP BF537 ADSP- -BF536
ADSP BF536 ADSP- -BF534
ADSP BF534
500,600
500, 600MHz,
MHz, 500,600
500, 600MHz,
MHz, 400,600
400, 600MHz,
MHz,
Performance 1000,1200
1200MMACs
MMACs 1000,
1000,1200
1200MMACs
MMACs 1000,
1000,1200
1200MMACs
MMACs
1000,
100 Kb/s (normal mode) and 400Kb/s (fast mode) data rates
All
CAN nodes are able to transmit data and several CAN
nodes can request the bus simultaneously
Developed by Bosch
Up to 1 Mbps
CAN – Low Layer Specification Only
3-Wire Half-duplex Field Bus
Node 1 Node 2 Node N
RX
RX
TX
TX
TX
Transceiver Transceiver Transceiver
CAN_H
CAN_H
CAN_H
CAN_L
CAN_L
GND
GND
CAN_L
GND
Multi-master capabilities
120 Ohm resistors are used between CAN_H and CAN_L
Transceiver must be as close as possible to transmission line
Bit rate is limited by cable length and number of nodes
CAN Bit Rate vs Bus Length
40 1M
100 500k
200 250k
500 125k
6 km 10k
Full CAN vs Basic CAN Controllers
Basic CAN
z CAN controller features 1 receive buffer and 1 transmit buffer
z Software overhead
Full CAN
z CAN controller features dedicated buffers for individual messages
z Acceptance filtering done by hardware
BF537 BOOTING
SUPPORTED BOOT MODES
BMODE DESCRIPTION Pin Muxing
these pins are used by the respective
peripheral during booting
000 Bypass boot ROM -
(execute from external memory
0x2000 0000)
001 8/16-bit Parallel Flash on -
/AMS0
010 Reserved -
011 SPI Master PF11,PF12, PF13
(8/16/24-bit SPI devices)
100 SPI Slave PF11,PF12, PF13,PF14
101 TWI Master -
110 TWI Slave -
111 UART Slave PF0,PF1
Boot From 8/16-bit Prom/Flash
Physical connections:
Blackfin Blackfin
16-Bit Flash/PROM
8-Bit Flash/PROM
_______ ____
_______ ____
AMS(0) AMS
AMS(0) AMS ____
____ ___ ___
AOE OE
AOE OE
____ __ ___ ____ __ ___
AWE R/W or WR AWE R/W or WR
The Blackfin will boot from Asynchronous Bank 0 upon RESET which maps to
location 0x2000 0000 (DSP address).
SPI Master booting
ADSP-BF537 VDDEXT
(Master SPI Device) SPI Memory
(Slave SPI Device)
10KΩ
SPICLK SPICLK
__
PF10 CS
MOSI MOSI
MISO MISO
Boot From A Host via SPI Slave Mode
(BMODE = 100)
HWAIT is used to hold off host when the Blackfin processor
is not able to consume any more data
z During the processing of Init or Zero fill blocks
z It can be any GPIO except PF11-14 Blackfin
(Slave SPI Device)
Host
(Master SPI Device)
SPICLK SPICLK
_____ _____
S_SEL SPISS
MOSI MOSI
MISO MISO
FLAG/Interrupt HWAIT
TWI Master boot (BMODE = 101)
Boot from a device whose slave address is 1010000x
z 1010: I2C
EEPROM device identifier
z 000: device “chip” select (A2, A1, A0)
z Memory device needs to be 16-bit addressable
z x: direction of transfer
VSS
UART BOOTING (BMODE 111)
UART booting only possible thru UART0
HWAIT is used to hold off host when the Blackfin processor
is not able to consume any more data
z During the processing of Init or Zero fill blocks
z It can be any GPIO except PF0 or PF1
ADSP-BF537
UART HOST UART SLAVE
TX UART0_RX
RX UART0_TX
CTS/Interrupt HWAIT
The World Leader in High Performance Signal Processing Solutions
Ethernet
ADSP-BF537 EMAC
OSI model - TCP/IP
Web Server,
Layers 5, 6 and 7
Application
(Session, Presentation
and Application)
Application Protocol HTTP, FTP, Telnet etc.
Layers 3 and 4
(Network, Transport)
TCP/IP Stack lwIP, uIP, 3rd Party
Layer 2
EMAC Device Driver Driver for the ADSP-
(Data Link)
BF536/7 EMAC peripheral
provided by ADI
BF536/7 EMAC Peripheral
Layer 1
(Physical) SMSC LAN83C185,
PHY Transceiver Realtek RTL8201, etc.
TCP/IP Stack Header Structure
Application runs
DATA application layer on top of the
TCP/IP Stack
--------------------------------------------------------------------------------------------------------------------
TCP-Header DATA
--------------------------------------------------------------------------------------------------------------------
MAC Header IP Header TCP/UDP-Header
ADSP-BF536/7
DATA Trailer
data link layer Ethernet MAC
peripheral supports the
data link layer
header structure
Layer 1 - Physical
MII
encoding
Blackfin Ethernet System Overview
ETxCLK
ETxD[3:0] TPO+
TPO-
ETxEN
MDI TPI+
Magnetics RJ45
COL
TPI-
CRS
ERxCLK
MII
ERxD[3:0]
ERxDV
ERxER
MDIO
25MHz
MDC
YINT
ADSP-BF537 PHY
Layer 2 – Data Link
This
layer enables the functional and procedural aspects of
network data transfer as well as physical layer error checking
BLACKFIN CORE
uIP
allows the processor to run a single networked
application pointed to by UIP_APPCALL()
TCP/IP STACK
BF561 BF53x
500–600 MHz
2xPPI, 32-bit EBIU PPI, 3xSerial Ports, USB2.0
4xSerial Ports
msp500 msp5xx
BF535
SoftFone SoftFone
PCI, USB
4xTimers, Watchdog Timer GSM/GPRS/EDGE; Multimode, multimedia
16xGPIO, RTC Full 4-slot receive; Low standy power wireless handsets;
Low standy power
PRESENT FUTURE
The World Leader in High Performance Signal Processing Solutions
Introduction to VisualDSP++
VisualDSP++ 4.0
Building
z Breakpoints, Watchpoints
Generate
Assembly Assembler
Source .DOJ
(.ASM)
Linker
and / or .DXE
System
Generate
C/C++ C/C++ Compiler
Verification
Source .S
(.C/CPP)
.DXE
Hardware Evaluation
.DXE EZ-Kit Lite
VisualDSP++
Software Simulator
NO YES
Working
Code? .DXE ROM Production
LOADER
.LDR
PROM
Burner
Invoking the Software Tools
• Software tools may be configured and called by the IDDE
− Software tools are configured via property pages
− The IDDE calls the software tools it needs to complete the build
− GUI front end to a command line ‘make’ utility
• Software tools can be invoked from a Command line
− C Compiler: ccblkfn sourcefile -switch [-switch...]
− Assembler: easmblkfn sourcefile -switch [-switch...]
− Linker: linker object [object…] -switch [-switch…]
− Loader: elfloader executable -switch [-switches...]
• For the complete list of switches see the appropriate tools manual
Integrated Development and Debugger
Environment (IDDE) Features
• IDDE allows one to manage the project build
• The user configures the project and the development tools via
property pages
• Project Property pages configure the project
– Project Property Page
– General Property Page
– Pre Build Property Page
– Post Build Property Page
• Development Tools Property Pages are used to configure the
development tools
– Assembler Property Page
– Compiler Property Page
– Linker Property Page
– Loader Property Page
Project Development
• Create a project
– All development in
VisualDSP++ occurs
within a project.
– The project file (.DPJ)
stores your program’s
build information:
source files list and
development tools
option settings
– A project group file
(.DPG) contains a list
of projects that make
up an application (eg
ADSP-BF561 dual core
application)
Project Property Page
• Configure project
options
– Define the target
processor and set up
your project options (or
accept default settings)
before adding files to
the project.
– The Project Options
dialog box provides
access to project
options, which enable
the corresponding build
tools to process the
project’s files correctly
Enable building for a specific revision of silicon
- No need to specify ‘-si-revision’ switch
- Automatic will attempt to determine revision of the attached target
- or specify a specific rev level (eg 0.3)
Property Pages
C/C++ Compiler Property Page
Excellent supplement to the manual for things that are better represented
visually such as what various plot windows should look like.