OpenLCB Specifications

This page provides access to the OpenLCB™ Standards and Technical Note documents.

OpenLCB is not a formal standards-making body, but we are interested in making it clear what's required and not required for interoperation between OpenLCB nodes. Therefore, we are creating a series of "standards" and corresponding explanatory "technical notes" as specific documents. “Standards” are normative, to the extent that anything this bunch of happy campers does can be proscriptive. “Technical Notes” are coupled statements of explanations and additional information that go with each standard. For more information on the conventions used when writing OpenLCB standards and technical notes, please see the separate “conventions” page.

For background information, informal and development documents, etc, please see the “documentation” index page.

These documents describe the 0.5 version of the OpenLCB protocols.

Layered View

OpenLCB has been created as a layered family of protocols. The basic structure is along the lines of the wildly successful architecture of the ARPA TCP/IP family of protocols. For use on e.g. Controller Area Network (CAN), OpenLCB has to deal with lower-level concepts than the TCP/IP stack does, so OpenLCB is structured like a hybrid of the TCP/IP with the lower-level physical-layer and data-link-layer concepts of the ISO model.

In the following, items marked in light green are complete and adopted. Items marked in teal are in their penultimate form, and only awaiting final comments from the OpenLCB egroup. Items marked in blue are solid drafts, with the next step being discussion and adoption. Uncolored links are to informal and preliminary documents which will eventually form drafts, and then adopted standards and technical notes. The right two columns list the corresponding ISO and TCP/IP layer names, and are not part of OpenLCB.

(We need a strong technical, non-normative introduction of some sort. It's not clear where it goes in this view of the table of contents. See the prior “Technical Introduction” development document for an example of possible content.)

Common

CAN

TCP/IP

OSI Model Layer

TCP/IP Model Layer

Time Broadcast Protocol [prelim Std (.pdf) (.odt)] [prelim TN (.pdf) (.odt)] [Older Working Note (.pdf)]

Train Control Protocol [prelim Working Note (.pdf) (.odt)] [dev note]
Traction Proxy Protocol [prelim Working Note (.pdf) (.odt)]
Simple Train Info Protocol [prelim Std (.pdf) (.odt)] [prelim TN(.pdf) (.odt)]

Display Protocol [dev note]

Remote Button Protocol [prelim TN (.pdf)(.odt)]

Ident Method [dev note]

Event Teaching/Learning Protocol [dev note 1] [dev note 2] [dev note 3]


Abbreviated Configuration Description Information [prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)] and related Simple Node Identification Protocol [prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)]

Configuration Description Information [prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)]

Memory Configuration Protocol [prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)]

Producer/Consumer Protocol [dev note] (see Event Transport below)

Protocol Identification Protocol [Standard][Technical Note]
Future versions: [draft Std (.pdf)(.odt)] [draft TN (.pdf)(.odt)]
(This protocol is being make standard by merging it into the message-level protocol. Once that's complete, these documents will be removed.)

Application

Application




Presentation




Session

Stream Transport

OpenLCB-CAN Stream Transport [dev note]

[Very preliminary Working Note (.pdf)(.odt)]

OpenLCB-TCP/IP Stream Transport

Transport

Transport

Datagram Transport
[Standard (.pdf)(.odt)]
[TN (.pdf)(.odt)]

Future versions:
[Prelim Std (.pdf)(.odt)]
[Prelim TN (.pdf)(.odt)]

OpenLCB-CAN Datagram Transport
(See General Spec)

OpenLCB-TCP/IP Datagram Transport

OpenLCB Event Transport
[Standard (.pdf)(.odt)]
[TN (.pdf)(.odt)]

Future versions:
[Prelim Std (.pdf)(.odt)]
[Prelim TN (.pdf)(.odt)]

Event Identifiers
[working note]
[prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)]


OpenLCB-CAN Event Transport
(See General Spec)

OpenLCB-TCP/IP Event Transport

Message Network
[prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)] [Working Note (.pdf)]


[MTI allocations (.pdf) (.ods)]



Network

Internet/Network

Unique Identifiers (Node IDs)
[Standard] [Technical Note]

Future versions:
[Prelim Std (.pdf)(.odt)] [Prelim TN (.pdf)(.odt)]

OpenLCB-CAN Frame Transfer
[Standard (.pdf)(.odt)] [Technical Note (.pdf)(.odt)]

Future versions:
[Prelim Std (.pdf)(.odt)]
[Prelim TN (.pdf)(.odt)]

OpenLCB-TCP Transfer
[prelim Std (.pdf)(.odt)]
[prelim TN (.pdf)(.odt)]

Data Link

Network Interface/Subnetwork


OpenLCB-CAN Physical Layer
[Standard] [Technical Note]

Future versions:
[prelim Std (.pdf)(.odt)]
[prelim TN (.pdf)(.odt)]

(none)

Physical Interface

Common Information TN (.pdf) (.odt)
Future version: (.pdf) (.odt)


Glossary of OpenLCB terms (.pdf) (.odt)
Future version: (.pdf) (.odt)



Background Info

Background Info



Other Documents

General

We need a strong technical, non-normative introduction of some sort. See the prior “Technical Introduction” development document.

Documentation conventions and general background information on data types, etc, can be found in the “Common Information TN” adopted version: (.pdf) (.odt) Future version: (.pdf) (.odt).

Glossary of OpenLCB terms accepted version: (.pdf) (.odt) Future version: (.pdf)(.odt)

Allocation Tables

Various numbers have to be allocated and recorded in OpenLCB. This section documents those.

Unique IDs and Node IDs

OpenLCB node IDs are a form of unique identifier which are allocated as described in an adopted [Standard (.pdf)(.odt)] and [Technical Note (.pdf)(.odt)]. There's also a future version [Standard (.pdf)(.odt)] and [TN (.pdf)(.odt)]. Specific values are recorded and make available via OpenLCB web pages:

Message Type Indicators (MTIs)

OpenLCB Message Type Indicators (MTIs) are allocated as described in the message-level documentation. The specific assigned values are tracked in a [spreadsheet (.pdf)(.ods)].

Event IDs

There's a [working note] on assignment of Event IDs. The specific assigned values are tracked in a [spreadsheet (.pdf)(.ods)].

Protocol ID numbers

Protocol ID bits are defined in the Protocol Identification Protocol specification. [(.pdf) (.ods)]

Datagram protocol IDs

The specific assigned values are tracked in a spreadsheet [(.pdf)(.ods)].

Stream protocol IDs

The specific assigned values are tracked in a spreadsheet [(.pdf)(.ods)].

Memory Spaces

The Memory Configuration Protocol defines memory spaces, some of which are reserved for specific uses. [(.pdf) (.ods)]

References

TCP/IP model

http://www.tcpipguide.com/free/t_TCPIPArchitectureandtheTCPIPModel-2.htm

http://www.davidchappell.com/HTML_email/Opinari_No9_01_04.html

OSI model

http://www.tcpipguide.com/free/t_OSIReferenceModelLayerSummary.htm



Site hosted by

This is SVN $Revision: 3582 $