The polling feature on the XTend allows the user to poll their remotes in a controlled organized fashion. This feature may come in handy for point to multipoint systems where all of the remotes are individually addressed and the user wishes to have the remotes reply in a specific order. Unlike standard point to multipoint mode, polling mode requires that the remote be polled before transmitting its serial data. The polling base can send data to any/all remotes at any time (just like in non-polling mode).
The first step in setting up a polling network is to get the appropriate firmware version for your XTend modem (v2020 or newer, to determine if your firmware needs updating go to:http://knowledge.digi.com/articles/Knowledge_Base_Article/Upgrading-RF-Modem-modules-to-the-latest-firmware-using-X-CTU.
For help in loading new firmware go to:http://knowledge.digi.com/articles/Knowledge_Base_Article/How-to-update-firmware-in-modules/?q=How+to+update+firmware+in+modules&l=en_US&fs=Search&pn=1.
- The first command of interest is the MD command. You must set MD=3 on the polling base and MD=4 on all of the remotes to be polled.
- After setting the MD for the remotes and the base comes setting the MY & DT parameters on both radios. Typically these parameters would be used to set up radios for a point to multipoint network. However setting the modules for point to multipoint protocol using the dip switches (assuming you are using a PKG) isn't an efficient method for setting up the addressing. The best way to address all of your XTends is as follows:
Remotes: DT=MY of base radio, MY=Unique number such that PB is less than DT which is less than PE.
Base: DT=0xFFFF, MY=Unique number (other than 0 or 0xFFFF)
- The next command that you need to set (only on the base radio) is the PB & PE parameters, they define the boundaries for which addresses the base will poll. For instance if you set PB=0x0001 & PE=0x0020 you will poll all address between 1 and 32 (remember that these are hex valued addresses). In order for your network to operate as efficiently as possible you should use this equation to determine the PB & PE values: PE - PB = # of remotes.
- The last command that needs to be set is the PD command, which is going to be set to different values on the base as on the remotes. On the base the PD command determines how often the base runs through each polling cycle, and is measured in milliseconds (ex. PD=3E8 will have the base running through each polling cycle once per second). On the remotes the PD parameter is the amount of time the remote will hang onto each packet of data before disregarding it (the PD timer starts when the remote receives a poll), the PD time is measured in 10's of milliseconds (ex. PD=64 will have the remotes purging data 1 second after each poll).
Polling Mode Setup Example
Below is an example of what to set the parameters to in a point to multipoint polling network with 75 (75d = 0x4C) remotes:
|Parameters||Base:||Remote #1||Remote #X|
|PD||0x1D4C (7.5s)||0x02EE (7.5s)||0x2EE (7.5s)|
Q: What happens if I set PD on the base to less than the time it takes for it to run through one cycle?
A: The radio will simply run through the polling cycle as fast as it can and then immediately begin polling at PB again.
Q: Can I set each remote to a different PD value?
A: Yes, the PD of the remotes will have no effect on how your base goes through the polling cycle. Just keep in mind that the remote may discard data if the PD value is less than the amount of time that it takes for the base to run through one cycle.
Diagram of a Polling Cycle
Below is an Oscilloscope Trace of one polling cycle.
In the picture you will notice that the Remote is in Blue and the Base is in red. Di & Do represent the Din (TXD) and Dout (RXD) serial lines and the Tx lines indicate when the radio is transmitting. For this diagram a loopback adapter was placed on the base radio, and the base is polling radios 0x0001-0x000A where the remote radio that is transmitting is radio address 0x000A.
Each hump on the Polling Base Tx line is the base polling 1 remote, it takes ~8.9ms/remote when the remotes don't respond. If the remotes do respond then the total time is dependent on the number of bytes the remote sends(in this instance it was a 32 byte packet).
Also note that the Remote held onto the packet that it received over the serial port until it was polled, then it sent the packet to the Polling Base.