1
\$\begingroup\$

I am using a RF development board along with a CC1120 RF modulator + CC1190 amplifier on carrier frequency 868MHz, RX filter bandwidth 25KHz, modulation format 2-FSK, 1.2Kbps bit rate, 10dBm output power, with all sync registers set to same on all receivers and transmitters. Despite the specific settings, my general question is below.

If a transmitter transmits on a channel a receiver is not yet tuned into, would the receiver be able to guess the transmission frequency at the time sensing the packet and still fully receive the packet? My problem is, If I do not know on which channel a transmitter transmits, what would be the fastest/easiest to receive a message from such a transmitter? I have about 100 nodes trying to communicate with each other and everyone is not tuned into the same carrier. How do I go about solving this issue?

thank you so much for your responses.

\$\endgroup\$
7
  • 1
    \$\begingroup\$ Can the receiver hunt through all channels looking for a potential transmission? Without being directly "on" the right channel it's unlikely a receiver will know that anything is being transmitted. \$\endgroup\$
    – Andy aka
    Commented Mar 21, 2015 at 11:27
  • \$\begingroup\$ may be "RF SNIFF MODE "sniffs" the selected channel bt not all channels. Problem is I have more than 100 nodes. They all need to talk to each other. If they are programmed to speak in different channels then nodes will need tp be programmed to constantly shift between channels and they might miss a data and waste power while I sniff between channels. If I get everyone to speak on same channel nd If I speak on channel-1 while someone else is speaking then I guess* I run the risk of corupting his and my data. Hw do people in the industry realy handle communication between large number of node \$\endgroup\$
    – Denis
    Commented Mar 21, 2015 at 15:02
  • \$\begingroup\$ I also received this reply as an answer by one of their representatives. "If your transmitters have long enough preamble and transmit on 10 different frequencies, receiver could scans all possible channels during preamble and eventually to get packet on the channel with best signal strength. " \$\endgroup\$
    – Denis
    Commented Mar 21, 2015 at 15:13
  • 1
    \$\begingroup\$ I think more detail is needed of the transmission packet size and how often they might transmit or need to transmit. In other words what does the system need to do. Also, are you in control of when transmitters transmit and do they have a receive channel? \$\endgroup\$
    – Andy aka
    Commented Mar 21, 2015 at 15:37
  • \$\begingroup\$ First data that is exchanged are requests. Upon receiving a response from a proper node a data transfer is initiated. communications are random. They could happen ranging from every hour to every second. Initial requests may be of 10 bytes maximum but data transfers can be of even 1Mb, broken into fragments initiated by such requests. The previous statement made by vendor, if tuning into proper channel is possible during preamble stage, all nodes can effectively listen on all channels closeby. Am I right? In that case my problem would be solved. But I actualy dnt know how reliable it is. \$\endgroup\$
    – Denis
    Commented Mar 21, 2015 at 16:00

1 Answer 1

1
\$\begingroup\$

You need to implement a communications protocol, which might be more or less "simple" or extremely complex. If every node is reachable by other nodes so that all the transmissions are possible by a single-hop, then it is certainly simpler than allowing multi-hop transmissions.

One way of doing such a system would be the following: all the nodes will work by default on a single channel (let's call this channel "control channel"). One of the nodes will be a network coordinator. It will periodically transmit a "beacon", i.e. a broadcast packet that will clock the network, and it might also include messages addressed to one or more of the nodes (every node, including coordinator, will of course have an address).

From the beacon on, the time will be divided in slots, and each node is assigned a slot number in which they can transmit. (Of course it is simple to manually assign to each node a time-slot than assign it automatically by the protocol). At every slot number the given node has an opportunity to sent a small message to any of the other nodes, or to the coordinator.

If it needs to perform a long transmission, it would sent a channel allocation request addressed to the coordinator. The coordinator will then, if resources are available, communicate the channel number to both parties. Then the two nodes will exchange information using this channel. Of course they will need to switch to "comtrol channel" to receive the periodic beacon (when it is close to happen), and then can come back to their "data channel" until the long data transmission ends and they can free this channel (also requesting it to the coordinator).

This way you can have several simultaneous data communications, as long as enough free channels in this band exist.

In the other hand, the protocol will need to be fault-tolerant to some degree. Probably your protocol will need to implement "acknowledgment messages", "message retransmissions", "channel allocation time out", etc.

Finally you might take a look at Zigbee protocol, or to propietary "mesh network" protocols as Telit NE-50 (which is described in its user guide http://www.telit.com/index.php?eID=tx_nawsecuredl&u=0&g=0&t=1427099902&hash=13d9f98e445e87eb5dda66cdd3a1a90c3e280fa5&file=downloadZone/3962.pdf) to get more ideas of what can be done.

Good luck!

\$\endgroup\$
6
  • \$\begingroup\$ First of all, THANK YOU for taking your precious time to answer this question and thanks again. I intend to use 6lowpan for packet transmission. I do not know anything about it as yet and I need to understand. But I believe my network will have mesh like structure. These nodes are fixed to elephants in a large forest to obtain readings. Indeed I was also thinking of operating only in one channel. There could be about 100-200 nodes but its okay for them to wait for a little while to transmit. Besides regulations have forced TI to make a SOC that only transmits when the channel is made free. \$\endgroup\$
    – Denis
    Commented Mar 22, 2015 at 9:07
  • \$\begingroup\$ The SOC first checks if its free prior to transmission. After agreeing for a transfer I was thinking both nodes can decide on a common channel and communicate without waking up other radios as channel-01 is listened by everyone.It is possible to check from the SOC for the availability of a channel. It could be proposed to the potential peer a node expects to communicate to. I cannot have a network coordinator because if that node dies, my network will die. \$\endgroup\$
    – Denis
    Commented Mar 22, 2015 at 9:08
  • \$\begingroup\$ Requests for communication with other peers can be made on one common channel and I believe “traffic” and “delay”generated by that is okay. I cant make it more complicated I might faint while implementing this as this is my very first RF design. Thanks for reminding me about the ACKs and retransmission. 6lowpan doesn't do flow controlling and retransmissions I believe. If you see any wrong ideas please let me know. \$\endgroup\$
    – Denis
    Commented Mar 22, 2015 at 9:08
  • 1
    \$\begingroup\$ Does the nodes have a GPS? If so, then you have an accurate time reference and you should be able to proceed rather easily without coordinator. For example at second 0, node 1 can talk for one second (and receive a ACK), at second 1, node 2 can talk for one second, etc. Of course if you have 200 nodes you'd need a simple algorithm mapping a time (hours:minutes:seconds) to a single node, and every node agrees on that. This way you have again a system where there isn't two nodes wanting to talk at the same time in the common channel. \$\endgroup\$
    – Roger C.
    Commented Mar 22, 2015 at 9:45
  • 1
    \$\begingroup\$ You're welcome! Yes, having RTC and very occasional updating should be fine. In the other hand, for a more reliable system you might also have a pool of common channels. The algorithm will therefore assign each time slot to a node AND also to a given channel in this pool (all the nodes would agree on the algorithm of course). Therefore if one node finds its channel busy (because of external interference), it is very likely that it will be able to send the message in its next time-slot (as the channel is changing from slot to slot). This would be the idea in frequency hoping systems. \$\endgroup\$
    – Roger C.
    Commented Mar 22, 2015 at 10:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.