Hi,
Thanks for the clarification ! The architecture and tradeoffs are now
clear to me. I now know that RadioCCA is not mandatory in a first step
and can go further with my implementation.
Best regards,
Romain
On Fri, Jun 17, 2011 at 10:14 AM, Miklos Maroti
<[email protected]> wrote:
> Hi Romain,
>
> On Fri, Jun 17, 2011 at 9:15 AM, Romain Bornet <[email protected]> wrote:
>> Hi,
>>
>> I'm currently porting TinyOS to a new architecture and I am now
>> working on the radio stack/driver and base my my implementation on the
>> existing rfxlink stack and drivers.
>>
>> II noticed that the RadioCCA interface is implemented in all rfxlink
>> radio drivers (RF230, RF212 from TinyOS trunk and ATM128RFA1 from szte
>> svn repository) but is wired in none of the radio stacks xxxRadioC.nc.
>> The only place where CCA is used is in the CSMA Layer but this layer
>> is "bypassed" in all stacks and a DummyLayerC is wired instead of
>> CsmaLayerC/P.
>>
>> components new DummyLayerC() as CsmaLayerC;
>>
>> - Am I correct or did I miss something ?
>
> You are completely right in your analysis.
>
>> - How/where is CCA performed in current rfxlink radio implementations ?
>
> Practically, for most radios it is much cheaper to perform the CCA
> check just before the transmission, and in fact this is sometimes
> automatically performed. For te RF212 and RF230 chips the radio go
> into RX state if a valid preamble is found, so that essentially
> performs a very rudimentary CCA check. It also checks the RSSI just
> before transmission, and that seems to work.
>
>> - Should I simply wire a "real" CsmaLayerC instead of the DummyLayerC
>> to have CCA performed ?
>
> You can write it and it might do some real good. It takes time to
> perform the check (140 us for RF230), so it is always possible that
> you detect nothing, but by the time you try to send the packet then it
> will be busy. Anyhow, you can interpret it and it should eliminate
> some collisions at the cost of throughput. If the CCA check fails,
> then the transmit should return EFAIL.
>
>> components new CsmaLayerC();
>> instead of
>> components new DummyLayerC() as CsmaLayerC;
>>
>>
>> Thanks in advance for your help and hints,
>> Romain
>
> Best,
> Miklos
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help