I would like to make use of the frame-filtering functionality that is supported in the MC1323x Transceiver (IEEE 802.15.4).
More specifically, I would like to include the destination address in the transmitted packets, so that the received packets can be filtered (in or out) according to this address.
At present, we filter every received packet at the application layer, i.e., we embed a 16-bit destination address within the transmitted packet payload, and check it upon reception.
This is not very efficient of course, as the application is "interrupted for nothing".
The MC1323x data-sheet is rather obscure on how to implement the frame-filtering functionality.
I see several registers which should be configured on the receiver side:
- MACSHORTADDRS (mapped to memory address 0x1853)
- RX_FRAME_FILTER (mapped to memory address 0x1856)
If I understand correctly, then this is how I should embed the destination address within the transmitted packet:
Where the Frame Control field should be built as follows:
However, the data-sheet is rather obscure with regards to attributes of the Frame Control Field (FCF).
In particularly, to what values should I set the 'Source Addressing Mode' and 'Destination Addressing Mode' attributes in the FCF of the transmitted frame, so that the 'Source Address' and 'Destination Address' fields in that frame will be considered as 2-byte long, and the received frame will be filtered according to them (and according to the value of the MACSHORTADDRS register on the receiver side)?
In addition to that, the data-sheet is somewhat ambiguous with regards to the 'Sequence Number' field.
The MAC Frame illustration shows that it is 1 byte in length, while the description says:
"Sequence Number field - 1 byte in length and specifies the sequence identifier for the frame (either a beacon sequence number (BSN) or a data sequence number (DSN). Optional field as required by frame type."
Now, there are 5 frame types (Beacon frame, Data frame, Acknowledgement frame, Command frame, Other frame), so I would just like to assert that this field can be 0 bytes for certain frame types.