Transcript

25 February 2010

Peter Mendham

The SpaceWire-PnP Protocol: UoD Document Version 2.1

SpaceWire-PnP2

Agenda

Requirements and aimsRMAP usageSpaceWire-PnP services

Device IdentificationNetwork ManagementLink ConfigurationRouter Configuration

Extensibility and capabilitiesApplying SpaceWire-PnPKnown issues and discussion pointsHow to use the UoD document

SpaceWire-PnP3

SpaceWire-PnP Aims

Protocol aimsInteroperability and reuseStandard mechanisms for standard featuresSupport device/network discovery as required by SOIS

Document aimsA complete solutionA starting point for discussion

SpaceWire-PnP4

Perspective

PnP views the network like the SpaceWire standardLinksNodesRouters

No topology restrictionsBoth nodes and routers have links

Nodes have 1 or more linksRouters have 2 or more links

Every device on the network has a port zeroThis is the target for PnP transactions

Devices

SpaceWire-PnP5

Levels of Support

Managed NetworksImportant role for system designerCompetition during discovery process removed by designCompetition for configuration of devices removed by designSimplest case

Open NetworksNetwork handles all competition issuesDeals with networks where design is not known a prioriMore flexible but more complicated

Level 1

Level 2

SpaceWire-PnP6

What is Standardised?

A set of parameters on the targetThis is a standardised RMAP address space

An interface of primitives at the initiatorSatisfying the requirements for SOIS

A description of how the initiator and target will both behave

Initiator Target

SpaceWire

Standardised Interface

Standardised Interface

Standardised Packet Format

Standardised Behaviour

SpaceWire-PnP7

RMAP Utilisation

Semantics required for plug-and-play closely match RMAPUse a well-defined implementation of RMAP

32-bit wide addressing and alignmentBig endianIncrementing addressingAcknowledged, verified writesPre-defined keyRMW implementation (optional) is a conditional write

Use a different protocol IDTo distinguish from generic RMAP trafficE.g. Mass memory device

SpaceWire-PnP8

So is SpaceWire-PnP a Protocol?

Probably not…A specific implementation of RMAPStandardised address spaceStandardised primitivesStandard semantics of useIdentified with a protocol ID

Does that make it a protocol?

SpaceWire-PnP9

Target Parameters

Follow a regular formParameters are made up of 32-bit fieldsOptionally, a parameter may have multiple entries

This is to permit tables, such as routing tablesThe root entry has one set of fieldsEvery other non-root entry has a different but identical set of fields

For example, the link configuration parameterRoot entry has one field giving the number of linksHas a non-root entry for each link, each of which has the same fields

SpaceWire-PnP10

Core Services

Four core services definedDevice Identification

Read-only, constant fieldsA few, mirrored, read-only dynamic fields

Network ManagementLink Configuration

All devicesRouter Configuration

Routers only

Optionally, there is also a time-code source

Basic discovery

Satisfies SOIS

Necessary for

SpaceWire-specific

configuration

SpaceWire-PnP11

Device Identification Service

Permits the gathering of device informationIncluding type of device

Parameters:Device InformationVendor String (Optional)Product String (Optional)Device StatusCapability List

SpaceWire-PnP12

Device Information and Status

Identifies the deviceVendor ID and Product ID (like PCI, USB etc.)Type (node/router)Number of portsOptional static device IDVendor and Product string lengths

Provides current statusActive portsDevice ID (non-static)Return port

Read-Only and Constant (PROM)

Read-Only and Dynamic, Mirrored

SpaceWire-PnP13

Example Parameter Fields

Reserved for future useReserved6-31

Length of the vendor and product strings (can be zero)Operation/String Lengths5

Version and System instance of this device typeVersion/Instance ID4

Low 32 bits of the 64-bit static device ID (if present)Static Device ID Low3

High 32 bits of the 64-bit static device ID (if present)Static Device ID High2

Indicates preferred device region gives port countRegion/Number of Ports1

Contains 16-bit vendor and product IDsVendor ID/ Product ID0

SummaryNameID

Table 5-3: Device Information Parameter Fields

SpaceWire-PnP14

DIDS Primitives

DIDS_READ_INFO.requestDIDS_READ_INFO.indicationDIDS_READ_VENDOR_STRING.requestDIDS_READ_VENDOR_STRING.indicationDIDS_READ_PRODUCT_STRING.requestDIDS_READ_PRODUCT_STRING.indicationDIDS_READ_STATUS.requestDIDS_READ_STATUS.indicationDIDS_READ_CAPABILITY_LIST.requestDIDS_READ_CAPABILITY_LIST.indication

SpaceWire-PnP15

DIDS Example Initiator Primitive

DIDS_READ_INFO.requestRMAP_Parameters

DIDS_READ_INFO.indicationResultVendor_IDProduct_IDPreferred_RegionRouter_NodeSupport_LevelPort_CountDevice_IDVersionInstance_ID

SpaceWire-PnP16

Network Management Service

Permits the unique identification of devicesEnables network discoveryParameters:

Read-write network ID (just a 32-bit register)Logical address (for nodes only, and optional)

SpaceWire-PnP17

NMS Primitives

NMS_READ_NETWORK_ID.requestNMS_READ_NETWORK_ID.indicationNMS_WRITE_NETWORK_ID.requestNMS_WRITE_NETWORK_ID.indicationNMS_READ_DEVICE_LA.requestNMS_READ_DEVICE_LA.indicationNMS_WRITE_DEVICE_LA.requestNMS_WRITE_DEVICE_LA.indicationNMS_DISCOVER_NETWORK.requestNMS_DISCOVER_NETWORK.indication

Optional

SpaceWire-PnP18

Link Configuration Service

Determine number and status of linksConfigure linksParameters:

Link activity, as a bit fieldReference transmit rateConfiguration for each link

Link type and status/errors (read-only)Transmit rateLink state

SpaceWire-PnP19

Transmit Rate Abstraction

Designed to be simple and flexibleAnd reflect current practice

Control of reference rate for all linksControl of link rates individuallyEach rate can be controlled either as a numeric rate, or as a divider

Reference

Rate Source

Reference

Rate Control

Link Rate

Control

Link Rate

Control

SpaceWire-PnP20

LCS Primitives

LCS_READ_PORT_ACTIVITY.requestLCS_READ_PORT_ACTIVITY.indicationLCS_READ_REFERENCE_RATE.requestLCS_READ_REFERENCE_RATE.indicationLCS_WRITE_REFERENCE_RATE.requestLCS_WRITE_REFERENCE_RATE.indicationLCS_READ_LINK_CONTROL.requestLCS_READ_LINK_CONTROL.indicationLCS_WRITE_LINK_RATE.requestLCS_WRITE_LINK_RATE.indicationLCS_WRITE_LINK_PRIORITY.requestLCS_WRITE_LINK_PRIORITY.indicationLCS_WRITE_LINK_STATE.requestLCS_WRITE_LINK_STATE.indication

SpaceWire-PnP21

Router Configuration Service

Only for routers (obviously)Router configuration and statusParameters

Router configurationWatchdog timeout (optional)Arbitration modeTime-code counter control

Routing tablePort associationMechanism and arbitration controlPartial implementations permissible

SpaceWire-PnP22

RCS Primitives

RCS_READ_WATCHDOG_TIMEOUT.requestRCS_READ_WATCHDOG_TIMEOUT.indicationRCS_WRITE_WATCHDOG_TIMEOUT.requestRCS_WRITE_WATCHDOG_TIMEOUT.indicationRCS_READ_ARBITRATION_MODE.requestRCS_READ_ARBITRATION_MODE.requestRCS_WRITE_ARBITRATION_MODE.requestRCS_WRITE_ARBITRATION_MODE.requestRCS_READ_TIME_COUTER.requestRCS_READ_TIME_COUTER.indicationRCS_RESET_TIME_COUTER.requestRCS_RESET_TIME_COUTER.indicationRCS_ENABLE_TIME_COUNTER.requestRCS_ENABLE_TIME_COUNTER.indicationRCS_READ_LA_COUNT.requestRCS_READ_LA_COUNT.indicationRCS_READ_ROUTING_TABLE_ENTRY.requestRCS_READ_ROUTING_TABLE_ENTRY.indicationRCS_WRITE_ROUTING_TABLE_ENTRY.requestRCS_WRITE_ROUTING_TABLE_ENTRY.indication

SpaceWire-PnP23

Summary So Far

Have presentedPrinciples of SpaceWire-PnPWhich bits are standardised

RMAP usageRMAP address space (parameters)Primitives

Functions logically grouped into servicesDevice Identification ServiceNetwork Management ServiceLink Configuration ServiceRouter Configuration Service

SpaceWire-PnP24

SpaceWire-PnP Extensibility

SpaceWire-PnP is a convenient mechanism for detecting and configuringCan it be used as a “gateway” to more functionality?Devices can define their capabilities

Identifiable feature setSupported by a SpaceWire-PnP service

ParametersPrimitivesPermits identification and configuration of the capability

SpaceWire-PnP25

Capabilities

Device can provide a list of capabilitiesCapabilities based on protocol ID

A protocol which is supportedOptionally “transported” over another protocolSupports nesting of “transports”

ExamplesCPTP over SpaceWire-(R)TA standardised address space “transported”over RMAP

SpaceWire-PnP26

Describing RMAP Address Spaces

SpaceWire-PnP document proposes a method for describing RMAP address spacesCapability services allow the description of:

Memory regions which exist to receive data: data sinks (e.g. actuators)Memory regions which permit access to generated data: data sources (e.g. sensors)

Also permits non-trivial access mechanismsDelayed response reads and writesInitiated reads and writes

SpaceWire-PnP27

Using SpaceWire-PnP (1): SOIS

Supports services necessary for SOISDevice information, network ID and link activity together permit network and device discoveryMinimal implementation requirements:

12 words of read-only constant registers1 read-only dynamic register1 read-write register

Minimal set of primitives5 pairs (request/indication)

SpaceWire-PnP28

Using SpW-PnP (2): Datasheets

Can use data source capability service to describe an RMAP region to read a datasheet from

E.g. direct interface to a PROMData source type identifies format of datasheet

E.g. xTEDSMinimal implementation (in addition to previous)

8 read-only words2 primitive pairs

Uses the same RMAP core as for SpaceWire-PnP

SpaceWire-PnP29

Using SpW-PnP (3): RMAP Spaces

Can use data source/sink capability services to describe an existing RMAP address space

E.g. JAXA standardised memory mapSame resource requirements as datasheet example for read-only

Add 8 read-only words and 4 primitive pairs for read-writeThis adds a data sink

SpaceWire-PnP30

Using SpW-PnP (4): Notification

Ability for routers (or any device) to automatically inform a network manager when status changes

E.g. link connect/disconnectUses a simple data sourceAdditional requirements (from datasheet case):

1 read-write field for a target source12 read-write fields for an initiator source

Features to support multiple, uncoordinated network managers are documented

SpaceWire-PnP31

Using SpW-PnP (5): SpW-(R)T, SpW-D

Capability services could easily be added to support the configuration of mechanisms such as SpaceWire-(R)T and SpaceWire-D

No changes to SpaceWire-PnP necessaryStandard SpaceWire-PnP device configuration easily fits within time slots

Works well with SpaceWire-DCould be transported over SpaceWire-(R)T

Level 2 support needs documenting further

SpaceWire-PnP32

Using SpW-PnP (6): GenFAS

The MARC hardware, built by SEA, has simplified SpW-10X compatible address spaces on each node and routerSpaceWire-PnP defines 10X compatibilitySciSys has implemented the full set of core SpaceWire-PnP primitives in the GenFASsoftware (executing on MARC)

Was a valuable learning experienceFairly trivial (~2k LOC, heavily commented)Works well!

SpaceWire-PnP33

Known Issues/Discussion Points (1)

Possibly confusing terminology: link and port used almost interchangeably

Haven’t got around to fixing thisCouple of minor changes necessary for full SOIS support

Haven’t got around to updating documentDeliberate mirroring of fields to support consolidated reads

Might not want this

SpaceWire-PnP34

Known Issues/Discussion Points (2)

Time-code handling is just one possible wayInterrupts not in current document versionCapabilities support full range of (extended) PIDs

Probably unnecessary: simplifications possible?There may be a better way to identify capabilities than by protocol IDHowever, the concept of capabilities is useful

And more…

SpaceWire-PnP35

How to Use the SpW-PnP Document

This is a discussion document

It is:A complete proposalThe product of experience and researchThe result of inputs from many people

It is not:Expected to become a standard as it is!

SpaceWire-PnP36

A Guide to the Document

The document is long, but don’t be scaredThere is a detailed introductionLevel 2 support is documented

In a self-contained sectionCan safely be ignored unless you are interested

Compatibility with the 10X is documentedDocument is repetitive in structure

Each parameter, entry, field, primitive and parameter is documented in detail

SpaceWire-PnP37

Page Breakdown: Whole Document

Contents etc., 14Introduction etc., 26

Level 1 services, 65Level 2 services,

35

Capability services, 60

RMAP usage, 3

10X compatability, 6

Changelog, 1Total: 210 Pages

SpaceWire-PnP38

Page Breakdown: Level 1 Services

Parameters, 27

Primitives, 35

Discussion, 3

Total: 65 Pages

SpaceWire-PnP39

Summarising SpaceWire-PnP

Protocol utilising RMAPUoD document available: SpaceWire-PnP v2.1Defines

Target parametersInitiator primitives (service interface)Behaviours (algorithms) where necessary

SimpleDoes not require extra feature supportFlexible and extensible

Can use capability services to extend support

SpaceWire-PnP40

Questions?Discussion?


Recommended