SLAA202B February   2005  – December 2018 MSP430F149 , MSP430F149 , MSP430F2252-Q1 , MSP430F2252-Q1 , MSP430F2272-Q1 , MSP430F2272-Q1 , MSP430F2274 , MSP430F2274 , MSP430FG4619 , MSP430FG4619

 

  1.   Implementing IrDA With MSP430™ MCUs
    1.     Trademarks
    2. 1 Introduction
    3. 2 Hardware Description
      1. 2.1 Hardware Overview
      2. 2.2 Circuit Description
    4. 3 Software Description
      1. 3.1 Implementing IrPHY Layer Using Timer_A
        1. 3.1.1 Transmission
        2. 3.1.2 Reception
      2. 3.2 Implementing IrPHY Layer using USCI_A0
      3. 3.3 Implementing IrLAP
        1. 3.3.1 Discovery Services
        2. 3.3.2 Connect Services
        3. 3.3.3 Data Services
        4. 3.3.4 Disconnect Services
      4. 3.4 Implementing IrLMP
        1. 3.4.1 Discovery Services
        2. 3.4.2 Link Connect and Connect Services
        3. 3.4.3 Data Services
        4. 3.4.4 Disconnect Services
      5. 3.5 IAS Implementation
      6. 3.6 TTP Implementation
      7. 3.7 IrCOMM Implementation
      8. 3.8 Application Layer
    5. 4 PC Demonstration Application
    6. 5 IrDA Protocol Basics
      1. 5.1 Physical (IrPHY) Layer
      2. 5.2 Link Access Protocol (IrLAP) Layer
      3. 5.3 Link Management Protocol (IrLMP) Layer
      4. 5.4 Information Access Services (IAS)
      5. 5.5 Tiny Transfer Protocol (TTP)
      6. 5.6 IrCOMM
    7. 6 IrDA Communication Diagram
    8. 7 Frame Exchange Log
    9. 8 References
  2.   Revision History

IAS Implementation

The IAS services store information about other devices. It also provides information about the services supported by the implementation. As specified by the IrDA Lite documentation, the only service primitive required is GetValueByClass. Figure 14 shows the IAP IrLMP data frame format.

iap-frame-format.gifFigure 14. IAP Frame Format

The GetValueByClass call issued by the primary carries the class and attribute names which are supported by its IrDA implementation and that are relevant to the service to be used for the connection. As soon as this frame is identified by GetValueByClass opcode 084h which is in byte 3 of the IrLMP data frame, the first thing that must be done is to confirm that the class and attributes advertised are supported by the implementation. The routine CHECK_CLASS_ATTRIB verifies that the class and attributes are both supported by the implementation by checking those received in the frame against the values stored in a memory table.

First, the class is checked. If the class name is unknown, then the GetValueByClass return frame is assembled with the return code corresponding to: "No such class: no other results". If the class check passes, then the attributes are checked. If the attributes are not known, then the return code used corresponds to: "No such attribute: no other results". If the check for both class and attributes is successful, then the frame contains not only the return code for success but also the results. Results include a list length encoded as a 16-bit unsigned integer for which this implementation has a value of 1, followed by the object identifier encoded also as a 16-bit unsigned integer with a value of 3, and finally an attribute value of type integer with a fixed length of 4 octets equal to 003h. This is the extent of the implementation of the IAS capabilities according to the IrDA Lite documentation.