<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to NodeNumber</title><link>https://sourceforge.net/p/mergcbus/wiki/NodeNumber/</link><description>Recent changes to NodeNumber</description><atom:link href="https://sourceforge.net/p/mergcbus/wiki/NodeNumber/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 22 May 2014 09:52:38 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/mergcbus/wiki/NodeNumber/feed" rel="self" type="application/rss+xml"/><item><title>NodeNumber modified by Mike Johnson</title><link>https://sourceforge.net/p/mergcbus/wiki/NodeNumber/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="node-number-protocol"&gt;Node number protocol&lt;/h1&gt;
&lt;p&gt;Pushing the small button on a module forces the module to obtain a valid CANID which will override any CANID switch setting on the module. The green LED will start flashing. &lt;/p&gt;
&lt;p&gt;It then issues a request a node number packet which may contain it's current node number. A command station or PC may send a new node number in a set node number message, and exits from this mode. Or for small networks, pushing the button again allocates the CANID to the node number, and exits from this mode. &lt;/p&gt;
&lt;p&gt;If the small button is pressed for about 5 seconds, the module releases the node number with a node number release packet. A node without a node number is unable to save and restore its configuration, take part in software download, or transmit any CAN packets. &lt;/p&gt;
&lt;p&gt;All nodes with node numbers should send a node number refresh message. &lt;/p&gt;
&lt;h3 id="canid-alocation"&gt;CANID alocation&lt;/h3&gt;
&lt;p&gt;CBUS utilises a special method whereby CAN nodes are able to allocate themselves a unique ID within a 7 bit range. A joining node sends a zero data length frame with the RTR (Remote Transfer Request) bit set. All other nodes recognise this RTR frame and respond with a zero data length frame containing their own CAN ID. The arbitration process within the CAN nodes usually causes the node with the lowest ID to send first. Consequently, nodes send ID frames with successively increasing ID values until all nodes have transmitted. The joining node monitors these zero data frames and until its timer has expired. It then allocates itself the next available ID number. A 7 bit range was chosen as currently available CAN transceivers do not support more than 110 nodes on a bus segment. Also, the time for the allocation process depends on the number of active nodes on a segment. With all 128 nodes, the time is only 60 milliseconds. The standard CAN header has 11 bits. The remaining 4 bits are used in CBUS for setting message priority. &lt;/p&gt;
&lt;h3 id="0d-request-node-number-rqnn"&gt;0D Request node number (RQNN)&lt;/h3&gt;
&lt;p&gt;Format: &amp;lt;0D&amp;gt;&lt;/p&gt;
&lt;p&gt;Sent by a device joining the bus that is in setup/configuration mode and does not have a node number (NN) assigned by the command station, or by other means. The command station responds with (SNN) which contains the newly assigned node number. &lt;/p&gt;
&lt;p&gt;Probably not needed. See 50 below. &lt;/p&gt;
&lt;h3 id="42-set-node-number-snn"&gt;42 Set Node Number (SNN)&lt;/h3&gt;
&lt;p&gt;Format: &amp;lt;42&amp;gt;&amp;lt;NNHigh&amp;gt;&amp;lt;NNLow&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;Dat1&amp;gt; is high byte of the node number. &amp;lt;Dat2&amp;gt; is low byte of the node number. &lt;/p&gt;
&lt;p&gt;Sent by the command station to assign a node number to a requesting node in response to a node number request message. Only one node on the network should have had the button pressed, so only that node should act on this packet. &lt;/p&gt;
&lt;h3 id="4a-deny-node-number-rejnn"&gt;4A Deny Node Number (REJNN)&lt;/h3&gt;
&lt;p&gt;Probably not needed. Deleted in version 5 spec. &lt;/p&gt;
&lt;h3 id="50-request-node-number-nnrqnn"&gt;50 Request Node Number (NNRQNN)&lt;/h3&gt;
&lt;p&gt;Format: &amp;lt;50&amp;gt;&amp;lt;NNhigh&amp;gt;&amp;lt;NNlow&amp;gt;&lt;/p&gt;
&lt;p&gt;Request/acknowledge NN (NNACK) and the next two bytes are the 16 bit NN. A virgin node will have these bytes set to 00 00 to indicate a lack of NN. Valid NNs start at 1. &lt;/p&gt;
&lt;h3 id="51-release-node-number-nnrel"&gt;51 Release Node Number (NNREL)&lt;/h3&gt;
&lt;p&gt;Format: &amp;lt;51&amp;gt;&amp;lt;NNhigh&amp;gt;&amp;lt;NNlow&amp;gt;&lt;/p&gt;
&lt;p&gt;NN Release, send by a node when it is reset and the NN is set to zero. &lt;/p&gt;
&lt;h3 id="52-node-number-refresh-nnref"&gt;52 Node number refresh (NNREF)&lt;/h3&gt;
&lt;p&gt;Format: &amp;lt;52&amp;gt;&amp;lt;NNhigh&amp;gt;&amp;lt;NNlow&amp;gt;&lt;/p&gt;
&lt;p&gt;Node number refresh is sent as a keep alive message, currently every 5 seconds. To enable a central organizer to maintain a list of active nodes. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mike Johnson</dc:creator><pubDate>Thu, 22 May 2014 09:52:38 -0000</pubDate><guid>https://sourceforge.net3503a44af6bc78224d0cd323207766285e8f2274</guid></item></channel></rss>