Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Marheine Expires February 3, 2011 [Page 2]
- Internet-Draft TI-SDIP August 2010
- 1. Introduction
- While the existing link protocol for TI graphing calculators is
- suitable for general usage, it is needlessly complex for most
- purposes as well as being implemented in an incredubly arcane manner.
- For the sanity of developers targeting such platforms, this document
- specifies a data interchange protocol suitable for use on all TI
- calculating devices and associated peripherals.
- 1.1. Requirements Language
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
- "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
- document are to be interpreted as described in RFC 2119 [RFC2119].
- 1.2. Objectives
- The designer has sought to meet certain objectives in the design of
- the protocol, as outlined in this section.
- Ease of implementation
- The protocol seeks to replace a proprietary and difficult-to-
- implement protocol, so ease of implementation is very much
- desirable.
- Robustness
- Linking between devices is usually done across noisy links and
- in the presence of potentially careless users, so the protocol
- should be able to handle data errors and unexpected loss of
- connection.
- Speed
- Data transfers are typically done in the presence of users and
- in an interactive manner, so a reasonably high effective data
- rate is desired in order to impose less upon the user's time.
- As this document makes no claims about the link layer in use,
- the specification should seek only to minimize protocol
- overhead.
- 2. Data formatting
- The TI-SDIP is byte-oriented, and expects to receive data from the
- link layer in 8-bit bytes. This section outlines the terminology
- used to refer to bytes and subdivisions thereof.
- Marheine Expires February 3, 2011 [Page 3]
- Internet-Draft TI-SDIP August 2010
- 2.1. Figures
- In illustrations, a '+' is used to delimit individual bits of a
- field, while '|' delimits fields, and '++' denotes a byte boundary.
- 2.2. Byte and bit ordering
- Byte values are represented in this specification as groupings of 8
- bits, numbered right to left from 0 to 7. When bit groupings are
- used to represent integers, bit 0 is the least significant bit, with
- significance increasing in order with bit number.
- Byte 1 Byte 2
- +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
- |7 6 5 4 3 2 1 0++7 6 5 4 3 2 1 0|
- ----------------++----------------
- Figure 1: Bit numbering within bytes
- When multi-byte integers are used, the value is transmitted LSB-
- first, followed by additional bytes in order of increasing
- significance.
- Multi-byte integer transmission
- Time -->
- +----+----+----+----+
- | 78 | 56 | 34 | 12 |
- ---------------------
- Figure 2: Sending 0x12345678
- 3. Protocol description
- The protocol is based on the concept of a 'conversation', with only
- one device transmitting at once. Each conversation consists of a
- packet transferred from the sender followed by a response from the
- receiver, repeating until an implicit end to the conversation.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement