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