Network - University of Texas at Austinusers.ece.utexas.edu/~gerstl/ee445m_s16/lectures/Lec… ·...

15
EE445M/EE380L.6, Lecture 10 4/3/2016 J. Valvano, A. Gerstlauer 1 EE445M/EE360L.6 Embedded and Real-Time Systems/ Real-Time Operating Systems Lecture 10: Networking, CAN bus, Ethernet, Embedded Internet, TCP/IP Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6 1 Network Collection of interfaces that share a physical medium and data protocol – Communicate & synchronize tasks across computers – Distributed computing Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6 2 TxD RxD B MSP430 UART UART Gnd Gnd TxD RxD SCI Gnd TxD A TM4C C TMS320 RxD TxD U1Rx U1Tx RxD TxD Figure 9.1. A simple ring network with three nodes, linked using the serial ports. Actuator Remote Processing Network Sensor Remote Processing Sensor Remote Processing Central Processing Remote Processing Actuator Sensor

Transcript of Network - University of Texas at Austinusers.ece.utexas.edu/~gerstl/ee445m_s16/lectures/Lec… ·...

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 1

EE445M/EE360L.6Embedded and Real-Time Systems/

Real-Time Operating Systems

Lecture 10:

Networking, CAN bus, Ethernet, Embedded Internet, TCP/IP

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

1

Network• Collection of interfaces that share a

physical medium and data protocol– Communicate & synchronize tasks

across computers

– Distributed computing

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

2

TxD

RxD

BMSP430UART UART

GndGnd

TxDRxD

SCIGnd

TxD

ATM4C

CTMS320

RxD

TxD U1Rx

U1Tx

RxD TxD

Figure 9.1. A simple ring network with three nodes, linked using the serial ports.

ActuatorRemoteProcessing

Network

SensorRemoteProcessing

SensorRemoteProcessing

CentralProcessing

RemoteProcessing

Actuator

Sensor

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 2

Network Topology

• Ring (previous slide)

• Shared bus

• Star

• Mesh

• …

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

3

Star

Mesh

Cluster treePAN coordinatorFull function deviceReduced function device

Figure 9.2. ZigBee wireless networks communicate by hopping between nodes.

Layered Approach

• Physical layer (frames)

• OS layer (message & packets)

• Application layer (sessions)

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

4

Communication

Physical link

ThreadA

ThreadBMicrocontroller1

RTOS1

CAN

CAN

ThreadC

ThreadD

Microcontroller2

RTOS2

CAN

CAN

Messages

Frames

Figure 9.3. A layered approach to communication systems.

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 3

Framing and Messaging

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

5

Figure 9.19. An Ethernet frame can hold 46 to 1500 bytes.

1. Address information field– Physical address specifying destination/source computer– Logical address specifying destination/source processes

2. Synchronization or handshake field– Physical synchronization, e.g. shared clock, start/stop bits– OS/process synchronization, e.g. request/ack, semaphore

3. Data field– ASCII or binary (raw or compressed)

4. Error detection and correction field– Parity, checksum, error correcting codes (ECC)

Physical Layer

• Shannon channel capacityC = W log2 (1 + SNR) b/s

• Example: Telephone channelW = 3.4kHz and SNR ~ 38 dB => SNR ~ 6310

C = 3.4kHz log2 (6311) = 3.4kHz x 12.62 b/s = 42.9 kb/s

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

6

Transmitter

Data

Encoder

Channel

Energy

Receiver

Data

Decoder

Energy

Attenuation

Distortion

Noise

powernoiseAverage

powersignalAveragelog10SNR(dB)

10

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 4

Controller Area Network (CAN)

• Originally for use in automobiles (car area network)• High-integrity serial communications • Real-time applications• Up to 1 Mbits/second, up to 112 nodes• Half duplex (both directions, but only one at a time)

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

7

LM3SCAN Controller

CANL CANH

Transceiver

SN65HVD1050D

SlopeControl

DriverControl

DominantDetect

Shutdown

POR

PD0/Rx PD1/Tx

LM3SCAN Controller

CANL CANH

Transceiver

SN65HVD1050D

SlopeControl

DriverControl

DominantDetect

Shutdown

POR

PD0/Rx PD1/Tx

LM3SCAN Controller

CANL CANH

Transceiver

SN65HVD1050D

SlopeControl

DriverControl

DominantDetect

Shutdown

POR

PD0/Rx PD1/Tx

120 120

1 2 112

CAN Bus

• Shared bus topology– Broadcast operation

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

8

Source: http://can-cia.org/index.php?id=can

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 5

CAN Interfacing

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

9

A transmission line if L > /4, = v/f ≈ v Slew rate = 25V/µs, v = VF*c = 2·108 m/s1V in 40 ns, = 2·108 m/s * 40*10-9s = 8m, /4 = 2m

There must be a 120 resistor on each end of the CAN cable, and no resistor on middle nodes.

Microchip MCP2551

• CAN Transceiver

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

10

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010405http://ww1.microchip.com/downloads/en/DeviceDoc/21667f.pdf

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 6

CAN Signaling

• Wired-AND logic– Similar to wired-OR or open collector logic

– Dominant state is logic low (0)

– Recessive state is logic high (1)

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

11

5V3.5V2.5V1.5V

0V

CANH

CANL

Recessive Dominant Recessive

Time

CAN Protocol

• Data, Remote, Error or Overload frames– Arbitration Field

• 11-bit identifier specifies data type (not address), e.g. Ping, IR, …• RTR=IDE=0 means 11-bit standard format data frame

– Control Field• DLC specifies the number of data bytes (0 to 8)

– Data Field• Contains zero to eight bytes of data

– CRC Field• 15-bit checksum used for error detection

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

12

Bus Idle Bus IdleArbitration field Control Data field CRC field ACK EOF IFS

Message Frame

SOF RTR Delimiter DelimiterSlot

r0IDE/r1

11-bit Identifier DLC Data (0-8 bytes) 15 bits

Figure 9.7. CAN Standard Format Data Frame.

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 7

CAN Arbitration• Bit-wise arbitration

– Priority handled by dominant win over recessive• Lower IDs are higher priority

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

13

Source: http://can-cia.org/index.php?id=can

CAN Bandwidth

• Number of bits in a CAN message frame– ID: 11 or 29 bits

• Standard CAN 2.0A vs. extended CAN 2.0B

– Data: 0, 8, 16, 24, 32, 40, 48, 56, or 64 bits– Remaining components: 36 bits

• SOF (1)• RTR (1)• IDE/r1 (1)• r0 (1)• DLC (4) • CRC (15)• ACK/EOF/intermission (13)

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

14

Bandwidth = number of information bits/frame

total number of bits/frame • baud rate

How many bits in a frame:Standard CAN 2.0A frame with 4 data bytes? Extended CAN 2.0B frame with 8 data bytes?

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 8

CAN Synchronization• Synchronous bit transmission

– Where is the clock? (Answer: in the data)– Needs edges so the receiver can synchronize

• A long sequence of 0’s or a long sequence of 1’s

• Bit stuffing– Insert complementary bit after five equal bits

• CAN 2.0A may add 3+n stuff bits (n is number of bytes)

• CAN 2.0B may add 5+n stuff bits

– Receiver has to un-stuff

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

15

TM4C123 CAN Modules

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

16

• 2 CAN Modules– Message RAM

• 32 Msg. Objects

– Message Objects• Tx Objects

– One-time

– Remote request

• Rx Objects– Receive filters

– Can be concatenatedinto FIFOs

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 9

Simple CAN Network• TivaWare driver

– CANInit

– CANBitRateSet

– CANEnable

– CANIntEnable

– CANMessageSet

– CANIntStatus

– CANStatusGet

– CANMessageGet

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

17

CANbus

CAN0_SendData

LM3S8962

Switch

LEDCANISRCAN0_GetMail

NonBlock

ID=2

ID=4

CAN

CAN0_SendData

LM3S2110

Switch

LEDCANISRCAN0_GetMail

NonBlock

ID=4

ID=2

CAN

CAN_4C123.zip

CANBitRateSet(CAN0_BASE, 80000000, CAN_BITRATE);

Logic Analyzer Traces• Transmit Frame

• Receive Frame

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

18

Why did it take 130s to execute CAN_Transmit?Why does the RxCan have more stuff than the TxCan?

What is the total number of bits in this frame?Why did it take 110s to complete an entire frame?What is that blimp on TxCan?Where is the end of the frame?What is the bandwidth?

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 10

Synchronization Issues

• How to connect transmitter/receiver threads? – How to start, handshake

– Race conditions

• How to prevent streaming data from stalling?– Priority, buffer size

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

19

Ethernet• Bus-based topology

– Hub (repeater) or switch

• Physical layer– Many variants evolved over the years

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

20

A B C D

Ethernet switch

A BEthernet

Pin Color Pair Description1 white/orange 2 TxData +2 orange 2 TxData -3 white/green 3 RecvData +4 blue 1 Unused5 white/blue 1 Unused6 green 3 RecvData -7 white/brown 4 Unused8 brown 4 Unused

Table 9.2. Pin assignments on a 568-B Ethernet connector.

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 11

Ethernet Cabling

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

21

TxData+TxData-RecvData+UnusedUnusedRecvData-UnusedUnused

12345678

568-B

RecvData+RecvData-TxData+UnusedUnusedTxData-UnusedUnused

12345678

568-A

LM3S8962 Switch

Pair 2

Pair 3

Pair 1

Pair 4

TxData+TxData-RecvData+UnusedUnusedRecvData-UnusedUnused

12345678

568-B

12345678

568-B

LM3S8962 LM3S8962

TxData+TxData-RecvData+UnusedUnusedRecvData-UnusedUnused

Four twisted pairs

Figure 9.15. Ethernet cable between a microcontroller and a switch.

Figure 9.16. Ethernet cross-over cable between two microcontrollers.

Ethernet Protocol

• Ethernet Frame– Synchronization preamble (alternating 0/1)

– Start frame delimiter (SFD)

– Source & destination MAC addresses

– Type/length field

– Data

– CRC frame check sequence (FCS)

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

22

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 12

Media Access Control (MAC)

• Distributed arbitration protocol– Obsolete if centralized switches are used

• Carrier Sense Multiple Access with Collision Detection (CSMA/CD)– Sense free carrier before sending– Sense while transmitting to detect collision

• If collision, send jam signal

– Binary exponential backoff• Increment collision counter c• Wait random period in range 0…2c-1

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

23

Embedded Internet• Internet of Things (IoT)

• Internet standardization: TCP/IP Protocol

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

24

FTP

TCP

IP

Ethernet Router

Internet Router

FTP

TCP

IP

Ethernet

Hop Hop

Microcontroller

Smart object

Internet

CentralServer

Actuator

Sensor

SensorMicrocontroller

Smart object

ActuatorMicrocontroller

Smart object

SensorMicrocontroller

Smart object

Reference: W. Richard Stevens TCP/IP Illustrated, Volume 1: The Protocols

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 13

ISO/OSI 7-Layer Model

• Abstraction– International

Standards Organization (ISO)

– Open Systems Interconnection (OSI)

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

25

User

Application layer

Presentation layer

Session layer

Transport layer

Network layer

Data link layer

Physical layer

User

Physical link

TCP/IP 4-Layer Realization

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

26

Application

Presentation

Session

Transport

Network

Data link

Physical

OSI

Application

Transport

Internet

Media AccessControl/Physical

Layers

TCP/IP

HTTP, Telnet,SMTP,FTP

TCP

TCP, UDP

IP, ICMP, IGMP

Ethernet, wifi

Examples

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 14

Message Protocols

• Transmission Control Protocol (TCP)• User Datagram Protocol (UDP)• Internet Protocol (IP)

– Domain Name System (DNS) – 32-bit IPv4 address

• 128-bit in IPv6

• Ethernet– Error checking – Padding– Payload

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

27

User Data

Applheader

User Data

TCPheader

Application Data

TCPheader

IPheader

Application Data

TCPheader

IPheader

Application DataEthernetheader

Ethernettrailer

Application

TCP

IP

Ethernet

TCP segment

IP datagram

Ethernetframe

22 20 20 4 bytes

46 to 1500 bytes

UDP and TCP• UDP single datagram (connectionless)

– 8-byte header

• TCP session stream (error & flow control)– 20-byte header

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

28

Source port: 16-bit number of the process that sent the packet, could be zeroDestination port: 16-bit number of the process to receive the packet.Length: 16-bit number specifying the size in bytes of the data to followChecksum: 16-bit modulo addition of all data, UDP header, and IP header

Source port: 16-bit number of the process that sent the packet, could be zeroDestination port: 16-bit number of the process to receive the packet.Sequence number: 32-bit number defining the position of this dataAcknowledgement: 32-bit number of the next data expected to be receivedHlen: 4-bit field of the header size (including options) divided by 4Flags: 6-bit field with FIN, SYN, RST, PSH, ACK, and URGWindow: 16-bit number specifying the number of bytes the receiver can acceptChecksum: 16-bit modulo addition of all data, TCP header, and IP headerUrgent pointer: 16-bit field pointing to a place in the stream urgently needed

EE445M/EE380L.6, Lecture 10 4/3/2016

J. Valvano, A. Gerstlauer 15

Application Protocols

• Client/server models– HTTP (web), FTP, Telnet, SSH, …

• Providing (device) services over the web– XML-based protocol: SOAP, WSDL

– Simpler REST-ful API styles• Request encoded in URL

• Return data using XML, JSON, … formats

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

29

Networking Summary

• Standardization is key– Communication standards

– Across levels/layers• Physical, OS, application

• IoT is an open playing field– Internet as well-established foundation

– Application-level standardization?• Embedded device-to-device interactions

Lecture 10 J. Valvano, A. Gerstlauer EE445M/EE380L.6

30