Benutzer:Siro/i2cprotokoll

Aus LaborWiki
< Benutzer:Siro
Version vom 28. Januar 2010, 22:18 Uhr von Siro (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<b>I2C Protokoll</b> DEF:<br> layer0 Hardwareebene (i2c)<br> layer1 Packetebene<br> endpoint externe Hardware (nicht näher definiert) Vorderungen: <li> Alle …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

I2C Protokoll

DEF:
layer0 Hardwareebene (i2c)
layer1 Packetebene
endpoint externe Hardware (nicht näher definiert)

Vorderungen:

  • Alle Devices sollen die max. Busgeschwindigkeit verwenden
  • Alle Daten werden in Packeten übertragen
  • Alle Daten werden vom Master "gepollt"
  • Alle Devices können bis zu 254 Endpoints haben
    Packet:
    HeaderData
    1 Byte1-8 Byte

    Header:

    Bit 7Bit 6Bit 5Bit 4Bit 3 - 0
    reservedreservedCommand/!DataParityPacketsize

    Note: Parity can be EVEN, ODD, XOR, NONE, Parity does include packetsize-Bits and all DATA
    Note: Command/!DATA marks this packet as COMMAND packet or as DATA packet

    COMMAND PACKET
    COMMAND PACKET: size >= 1
    1. byte: COMMAND
    2. - 8. byte:DATA (optional)
    handled by layer1

    DATA PACKET
    handled by userprogram

    COMMANDS
    0x00
    NOP
    0x01
    GET DEVICE INFO
    0x02
    GET ENDPOINT INFO
    2.byte: endpoint
    0x03
    SET ENDPOINT
    2.byte: endpoint
    0x04
    GET CURRENT ENDPOINT
    0x05
    SEND DATA
    0x05
    GET DATA