问题
I'm about to implement the LLCP / SNEP protocol based on a PN532 NFC chip from NXP (purely for learning reasons) and i'm currently studying the LLCP specification of the NFC Forum.
I'm pretty familiar with the MAC-layer of NFC as specified in ISO 18092, but i have some problems understanding how the "asynchronous balanced mode (ABM)" of LLCP works.
To my understanding, the ABM enables the Initiator and the Target a possibility to send data at any time (on top of the actual master / slave approach). Especially for the Target, i don't really understand how this should work.
For example, i have my PN532 acting as Initiator which pushes a NDEF-message via SNEP to a NFC-enabled Smartphone. Let's say, the LLCP connection stays enabled and the Target decides to send another NDEF-message back to the Initiator at a later point in time. How can the Target start this transmission when the Intiator sends no request for it ?
I'm not sure, but this is maybe linked to the "Symmetry Procedure" as specificed in chapter 5.8 of LLCP 1.0. My assumption is that in case the Initiator has received the last acknowledge to the previously sent NDEF-message or information block / frame, it continues to send "SYMM"-LLC PDUs just before the LTO occurs. This gives the Target the chance to send a new - for example - information block / frame. This continues until the LLCP link gets deactivated.
Can anybody please tell me if my assumption is correct (if not, how does it actually work..) ?
PS: Sorry for my english - it isn't my native language.
回答1:
Can anybody please tell me if my assumption is correct (if not, how does it actually work..) ?
Yes, your assumption is correct. When idle, the initiator will regulary send SYMM frames to:
- check if the target is still responding (aka, link is still up)
- give the target a chance to send out a pending data-frame
来源:https://stackoverflow.com/questions/37663479/symmetry-procedure-in-nfc-p2p-llcp