160 likes | 311 Views
Differences Between RMAP & GAP. Daniel Gilley Lockheed Martin 2006 MAPLD International Conference Washington, D.C. September 25, 2006. Problems Associated with SpaceWire Network Implementations. Standard SpaceWire packets provide:
E N D
Differences Between RMAP & GAP Daniel Gilley Lockheed Martin 2006 MAPLD International Conference Washington, D.C. September 25, 2006
Problems Associated with SpaceWire Network Implementations • Standard SpaceWire packets provide: • No information about the nature of the data / desired operation • No way for the destination to reply with status to the source • No way to verify the data was transmitted correctly • No way to perform asynchronous read operations • … and more
The Solution • A protocol that lives inside a standard SpaceWire packet (‘upper layer protocol’) offers solutions to these problems, providing a basis for reliable transport within a network
GAP Overview • GAP (“General Access Protocol”) includes 3 transaction types • Write Request / Response • Read Request Untargeted / Response • Read Request Targeted / Response • Each transaction includes a header with a command id, return address, options fields, a checksum, and command-specific information
GAP Write / Response • ‘A’ sends a write request to ‘B’ • ‘A’ sends a write request to ‘C’ • ‘B’ replies with a success response to ‘A’ • ‘C’ replies with an error response to ‘A’
GAP Targeted Read / Response • ‘A’ sends a read request to ‘D’ • ‘D’ replies with data for ‘A’ – the node in ‘A’ automatically puts the read data into memory and interrupts software when it is completed
RMAP Overview • RMAP, created by ESA, has 3 transactions: • Write Request / Response • Read Request / Response • Read-modify-write Request / Response • Each transaction includes a header with packet type, source address, transaction ID, and transaction-specific information.
RMAP Write / Response • ‘A’ sends an acknowledged write request to ‘B’ • ‘A’ sends a verified write request to ‘D’ • ‘B’ replies with a success response to ‘A’ • ‘D’ replies with an error response to ‘A’
RMAP Read / Response • ‘A’ sends a read request to ‘D’ • ‘D’ replies with data for ‘A’ • The software in ‘A’ reads the reply and takes appropriate action
RMAP Read-modify-write / Response • ‘A’ writes masked data to a register in ‘C’ • ‘C’ sends a success reply to ‘A’
GAP vs RMAP, Similarities • GAP and RMAP are similar: • Both have read and write transactions • Both have the protocol ID byte • Both have similar fields in their headers • Both provide means for destinations to send replies to sources • Both provide an additional layer of data validation
GAP vs RMAP, Differences • GAP provides: • Automatic copying of read reply data into the memory of the requesting device • RMAP provides: • Verification of write data before it is written to destination memory • One transaction for read-modify-write operation
GAP vs RMAP Summary • GAP is most useful in situations where there are a lot of packets that software has to process • Example: Flight software receiving regular telemetry data from various spacecraft subsystems • RMAP is most useful in situations where small amounts of data need to be verified before being written • Example: A controller device with bitmapped values for control registers
Supporting GAP and RMAP • Best solution would be a device which supports both GAP and RMAP • Decoding method for each protocol could be determined by value of protocol byte or configuration register