Upload
balazs-nagy
View
226
Download
0
Embed Size (px)
Citation preview
7/25/2019 Digital Communication Protocols
1/47
1ni.com
7/25/2019 Digital Communication Protocols
2/47
ni.com
Digital Communication Protocol
Minghui Zhang, Senior R&D Hardware EngineerKalyanramu Vemishetty, Senior Embedded Systems En
7/25/2019 Digital Communication Protocols
3/47
3ni.com
Agenda
RIO Overview
Design with Timing Software Architecture
Q&A
7/25/2019 Digital Communication Protocols
4/47
4ni.com
RIO Hardware
Expansion I/O
MXI-Express RIO Ethernet RIO EtherCAT RIO Wireless
CompactRIO and NI Single-Board RIO
Value
PXI, PC RIO (R Series, NI
FlexRIO)
High PerformanceValue Performance
7/25/2019 Digital Communication Protocols
5/47
5ni.com
RIO Hardware
I/O Frequency
I/O
7/25/2019 Digital Communication Protocols
6/47
6ni.com
RIO Hardware
7/25/2019 Digital Communication Protocols
7/47
7/25/2019 Digital Communication Protocols
8/47
8ni.com
SPI Example
CPOL = 0SCK Idle as
CPHA = 0
Send MOS
@ SCK Falling
Sample MIS
@ SCK Rising
0 0
Master SPI
- Select SPI configuration Based on ADC
7/25/2019 Digital Communication Protocols
9/47
9ni.com
SPI Example
- Synchronous Design
SPIMaster
ControlInterface
Ba
ckplane
Interface
SPI Interface
SPI Clock Base Clock
7/25/2019 Digital Communication Protocols
10/47
10ni.com
SPI Example
Synchronous deGenerate S
@ TopClk R
Sample MIS
@ TopClk R
Design with Tim
SCTLOutput Sign
Input Signa
- SPI Protocol Design
7/25/2019 Digital Communication Protocols
11/47
11ni.com
SPI Example
Single Cycle Tim
- SPI Protocol Timing
7/25/2019 Digital Communication Protocols
12/47
12ni.com
SPI Example
Output SignalsArbitrate
- SPI Protocol Output Signals
7/25/2019 Digital Communication Protocols
13/47
13ni.com
SPI Example
- SPI Protocol Output Signals
7/25/2019 Digital Communication Protocols
14/47
14ni.com
SPI Example
Output SignalsSync Regis
- SPI Protocol Output Signals
7/25/2019 Digital Communication Protocols
15/47
15ni.com
SPI Example
Input SignalsSync Regis
Setup time Hold time
- SPI Protocol Input Signals
7/25/2019 Digital Communication Protocols
16/47
7/25/2019 Digital Communication Protocols
17/47
18ni.com
Designing FPGA Digital Communication Protoco
Communication
Protocol Core
Communication
Protocol API
Communication
Protocol Abstraction
7/25/2019 Digital Communication Protocols
18/47
19ni.com
Case Study
Acquire Data from ADC using SPI Communication Protocol
ADCSPI
FPGA
7/25/2019 Digital Communication Protocols
19/47
20ni.com
Communication Protocol Core
Use State Machine
DIO 0Arbitratio
n Logic
True
False
C i i P l C
7/25/2019 Digital Communication Protocols
20/47
21ni.com
Communication Protocol Core
Decouple I/O from State
C i i P l C
7/25/2019 Digital Communication Protocols
21/47
22ni.com
Communication Protocol Core
Get I/O ValuesSet I/O V
SPI Core
(State Machine)
Initialize DIO Lines
D L k C d
7/25/2019 Digital Communication Protocols
22/47
23ni.com
Deep Look at Code
Read SPI Digital Lines
D L k t C d
7/25/2019 Digital Communication Protocols
23/47
24ni.com
Deep Look at Code
Write SPI Digital Lines
C i ti P t l C
7/25/2019 Digital Communication Protocols
24/47
25ni.com
Communication Protocol Core
Desktop Execution Node Simulated SPI Core Waveform
D i i FPGA Di it l C i ti P t
7/25/2019 Digital Communication Protocols
25/47
26ni.com
Designing FPGA Digital Communication Protoco
Communication
Protocol Core
Communication
Protocol API
Communication
Protocol Abstraction
Case Study
7/25/2019 Digital Communication Protocols
26/47
27ni.com
Case Study
Acquire Data from simil r ADC using SPI Communication
ADCSPI
FPGA
Why create API?
7/25/2019 Digital Communication Protocols
27/47
28ni.com
Why create API?
Abstraction from Hardware Layer
Reusable
Easy-To-Use
Good Practices when creating API
7/25/2019 Digital Communication Protocols
28/47
29ni.com
Good Practices when creating API
Consistency
Easy To Use
Decoupling
Error Handling
Communication Protocol Messaging API
7/25/2019 Digital Communication Protocols
29/47
30ni.com
Communication Protocol Messaging API
C
P
(
CLo
(1
SPI Transaction Commands
Communication Protocol Messaging API
7/25/2019 Digital Communication Protocols
30/47
31
ni.com
Communication Protocol Messaging API
Data tr
FPGA
Deep Look at Code
7/25/2019 Digital Communication Protocols
31/47
32
ni.com
Deep Look at Code
Initialize SPI References.vi
Deep Look at Code
7/25/2019 Digital Communication Protocols
32/47
33
ni.com
Deep Look at Code
Write Data for SPI Transaction.vi
Deep Look at Code
7/25/2019 Digital Communication Protocols
33/47
34ni.com
Deep Look at Code
Start SPI Transaction.vi
Deep Look at Code
7/25/2019 Digital Communication Protocols
34/47
35ni.com
Deep Look at Code
Read Device Response.vi
Deep Look at Code
7/25/2019 Digital Communication Protocols
35/47
36ni.com
Deep Look at Code
SPI Engine.vi
Designing FPGA Digital Communication Protoco
7/25/2019 Digital Communication Protocols
36/47
37ni.com
Designing FPGA Digital Communication Protoco
Communication
Protocol Core
Communication
Protocol API
Communication
Protocol Abstraction
Case Study
7/25/2019 Digital Communication Protocols
37/47
38ni.com
Case Study
Acquire Data from ADC using SPI/I2C Communication Proto
ADCSPI
FPGA
I2C
Communication Protocol Abstraction
7/25/2019 Digital Communication Protocols
38/47
39ni.com
Communication Protocol Abstraction
SPI Engine
Sequence of SPI
Commands
(Driver)
NodeGet Data Acquired Data
I/O Node
Communication Protocol Abstraction
7/25/2019 Digital Communication Protocols
39/47
40ni.com
SPI Driver
Data Nodes
SPI Engine
Communication Protocol Abstraction
I2C E
I2C
Integration into an Existing System Architecture
7/25/2019 Digital Communication Protocols
40/47
41ni.com
Integration into an Existing System Architecture
7/25/2019 Digital Communication Protocols
41/47
42ni.com
SPI Abstraction
Integration into an Existing System Architecture
7/25/2019 Digital Communication Protocols
42/47
43ni.com
I2C Abstraction
Integration into an Existing System Architecture
7/25/2019 Digital Communication Protocols
43/47
44ni.com
Summary
7/25/2019 Digital Communication Protocols
44/47
45ni.com
Summary
Design with Timing
- Synchronous Design
- I/O property selection
Software Architecture
- State Machine for Core IP
- Command Based API- Custom I/O Node for abstracting different protocols
7/25/2019 Digital Communication Protocols
45/47
46ni.com
Questions?
Related Links
7/25/2019 Digital Communication Protocols
46/47
47ni.com
Related Links
Serial Peripheral Interface Bus
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus
SPI API VI Package Manager)
https://github.com/NISystemsEngineering/SPIAPI
Implementing SPI Communication Protocol in LabVIEW FPGA
http://www.ni.com/example/9117/en/#toc2
Timing Analysis on Digital I/O
http://www.ni.com/white-paper/13489/en/
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bushttps://github.com/NISystemsEngineering/SPIAPIhttp://www.ni.com/example/9117/en/http://www.ni.com/white-paper/13489/en/http://www.ni.com/white-paper/13489/en/http://www.ni.com/white-paper/13489/en/http://www.ni.com/white-paper/13489/en/http://www.ni.com/example/9117/en/https://github.com/NISystemsEngineering/SPIAPIhttp://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus7/25/2019 Digital Communication Protocols
47/47
48ni.com