Welcome Guest,Register Now
Log In

ANT Forum

Welcome guest, please Login or Register

   

How does ANT deal with channel opening search and avoiding channel collision

Avatar
Rank

Total Posts: 13

Joined 2013-01-09

PM

As I have read from ANT documentation, there is a "nice" mechanism built in to open a channel is a "safe" space knowing there is no other channel near myself. And it is aware there is another channel "approaching" me and the master will shift itself a little to stay away from other channels.

All very nice.

In recent test, I have identified a bug which is channel collision related.
This is the case:

I have a bunch of nodes, each one has one master channel broadcasting data.
But some nodes received broadcast message in their channel, the message is from other node's forward broadcasting. This is not what I expected. but makes sense because if two channels a very close to each other, then one broadcast transmission could fall into the other channel's receiving time opening.

It is easy to verify with ANTWARE II with two ANT USB sticks.
Leave everything in default, set the frequency to 200Hz and open both channel, they will see a lot of message received on each channel.

From technically point view, it should be able to filter out the message is from a master or slave at stack level.

Also I want to understand better how much work ANT is actually doing to avoid channel collision, which will be very helpful when I am dealing with error happening at the application level. Also it is important not to do unnecessary redundant work stack has taken care of and save the battery life.

Thanks

Paul
     

Signature

BLE and ANT Developer using Nordicsemi nRF51422, ON, Canada

Avatar
RankRankRankRank

Total Posts: 745

Joined 2012-09-14

PM

Hi Paul,

You are correct, the on-air limit is up to ~300 Hz where ANT channels will begin to come close/collide with greater frequency, so with 2x200 Hz channels running you'll see ANT channel timeslots drift close to each other frequently which is why this behavior is straightforward to replicate.

However, this is the expected behavior of broadcast messages sent on master channels which share identical transmission parameters (network key, RF channel, device ID (device number/device type/transmission type)). For simplicity and efficiency, ANT only uses the transmission parameters to determine if a master channel's broadcast message is being replied to by a slave channel. The broadcast message sent by a channel is identical in the forward and reverse directions.

We always strongly recommend that multiple master channels inside the same network and RF channel should have different device ID's to prevent this type of crosstalk for broadcast messages.

However, acknowledged and burst messages do have additional features to which ensure they are received/transmitted by channels which intended to do so.

Best regards,
Harrison      
Avatar
Rank

Total Posts: 13

Joined 2013-01-09

PM

Thanks Harrison

It is always good to better understand these backgrounds. Which will happen the design at the application level.

I need to point out here is:
I only use 200Hz to verify that the broadcast message sent by a channel is identical in the forward and reverse directions, which you have confirmed.
In my application, I am using 0.5Hz. With two nodes. These two master channel still bumping into each other.
When it happens, crosstalk will stay for about 8 to 11 messages in a raw, then it will stop for a while (10 minutes to a couple hours), then it will happen again (crosstalking for 8 to 11 messages).
2 seconds should be enough space for ANT to relocate the channel timing. But my test is showing that "auto adjustment" is not so efficient to avoid the collision before it happens.
     

Signature

BLE and ANT Developer using Nordicsemi nRF51422, ON, Canada

Avatar
RankRankRankRank

Total Posts: 745

Joined 2012-09-14

PM

Hi Paul,

All master channel's may have their timeslots drift close to one another due to natural component variance, clock drift, etc, so it is not unexpected you see this occur even with 0.5Hz channels after ANT has performed adjustments. ANT RX timeslots are kept small to reduce power consumption and are only intended for backchannel communication and to prevent channel timeslots from overlapping, not necessarily for keeping ANT master channels as far from each other as possible in the time domain.

As I had mentioned before, multiple masters on the same network key & RF channel should not share the same device ID. If you do require multiple masters which must interpret back channeled messages from other devices, these masters could use a randomized device number which slave channels can find by wildcarding the device number.

It may be useful to read this patent on ANT isochronous adaptive coexistence which provides some additional detail and diagrams for additional clarification.

Best regards,
Harrison      
Avatar
Rank

Total Posts: 13

Joined 2013-01-09

PM

Hi Harrison

Very good link to this patent. Thanks for sharing it.

As the patent has indicated, the guard window 36 may be positioned in proximity to transmission window 38 to facilitate the detection of interfering signals. I guess this is what we are talking about?

Again, correct me if I am wrong here:

In my test case, two masters sharing the same device ID has defeated the purpose of guard window 36 to detect the interference because they think the "intruder" is legal by checking the device ID. So that the timing adjustment didn't happen?
If the two masters have different device IDs, the guard window 36 will be able to make the decision to shift the timing by detecting other channel (different device ID) has stepped into its RF safety guard band.

I also checked ANT master channel current profile on nRF51422. I attached a screen shot.
Is stage (K) also does the "guarding"?

Also by calculating the time, from stage (A) to stage (M), there is about 5ms. How does 300hZ channel work, which only has 3.3ms to do the whole RF profile.

Thanks a lot

Paul      

Image Attachments

a.JPG

Click thumbnail to see full-size image

Signature

BLE and ANT Developer using Nordicsemi nRF51422, ON, Canada

Avatar
RankRankRankRank

Total Posts: 745

Joined 2012-09-14

PM

Hi Paul,

Up to around 300Hz of messaging can coexist peacefully over the air on the same RF channel/area, but not on the device itself. 200 Hz should be the approximate maximum on a single device itself, except if tx/rx only channels are used which disable coexistence.

Cheers