OpenLCB
SpecificationsThis 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.
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, however, 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, at least for a first pass. Items marked in blue are preliminary and under development. Uncolored links are to informal documents which will eventually form adopted standards and technical notes. The right two columns list the corresponding ISO and TCP/IP layer names, and are not part of OpenLCB.
Introduction (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 |
ISO Model Layer |
TCP/IP Model Layer |
|---|---|---|---|---|
|
Train Control Protocol [dev note] Display Protocol [dev note] Configuration Description Information [dev note] Configuration Protocol [dev note] Remote Button Protocol [dev note] Ident Method [dev note] Event Teaching/Learning Protocol [dev note 1] [dev note 2] [dev note 3] Producer/Consumer Protocol [dev note] Protocol Identification Protocol [prelim Std (.pdf)(.odt)] [prelim TN (.pdf)(.odt)] |
Application |
Application |
||
|
|
|
|
Presentation |
|
|
|
|
|
Session |
|
|
Stream Transport |
OpenLCB-CAN Stream Transport [dev note] |
OpenLCB-TCP/IP Stream Transport |
Transport |
Transport |
|
Datagram Transport |
OpenLCB-CAN Datagram
Transport |
OpenLCB-TCP/IP Datagram Transport |
||
|
Event Transport Event
Identifiers
|
OpenLCB-CAN Event
Transport |
OpenLCB-TCP/IP Event Transport |
||
|
General Message Network
[prelim Std (.pdf)(.odt)]
|
OpenLCB-CAN Message Network
[prelim Std (.pdf)(.odt)]
|
TCP/IP Message Network |
Network |
Internet/Network |
|
Unique Identifiers (Node
IDs) |
OpenLCB-CAN Frame Transport
|
OpenLCB-TCP Segment Transport |
Data Link |
Network Interface/Subnetwork |
|
|
OpenLCB-CAN
Physical Layer |
(none) |
Physical Interface |
|
Introduction (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 “General Information TN” (.pdf) (.odt).
Glossary of OpenLCB terms (.pdf) (.odt)
Various numbers have to be allocated and recorded in OpenLCB. This section documents those.
Numbers can have one of several status values:
Adopted - in use, and will not change
Proposed - in use, but not yet adopted, and may change
Reserved - allocated to a future purpose, but not yet in use
Available - not yet allocated
OpenLCB node IDs are a form of unique identifier which are allocated as described in a [prelim Std (.pdf)(.odt)] and [prelim TN (.pdf)(.odt)]. Specific values are recorded and make available via OpenLCB web pages:
Formatted tables of assigned unique ID ranges
Single table of assigned unique ID ranges
XML listing of assigned unique ID ranges
Request to be assigned a range
OpenLCB Message Type Indicators (MTIs) are allocated as described in a [prelim TN (.pdf) (.odt)]. The specific assigned values are tracked in a [spreadsheet (.pdf)(.ods)].
There's a [working note] on assignment of Event IDs. The specific assigned values are tracked in a [spreadsheet (.pdf)(.ods)].
Protocol ID numbers are defined in the Protocol Identification Protocol specification. [(.pdf) (.ods)]
The specific assigned values are tracked in a spreadsheet [(.pdf)(.ods)].
The specific assigned values are tracked in a spreadsheet [(.pdf)(.ods)].
September 10 2011 – More MTI updates
August 28 2011 – MTI updates
July 19 2011 - New physical layer drafts for discussion
http://www.tcpipguide.com/free/t_TCPIPArchitectureandtheTCPIPModel-2.htm
http://www.davidchappell.com/HTML_email/Opinari_No9_01_04.html
http://www.tcpipguide.com/free/t_OSIReferenceModelLayerSummary.htm
This is SVN $Revision: 1642 $