0000 000 | 1 | Start — начало активного обмена |
0000 001 | X | Адрес устройства шины CBUS (для совместимости) |
0000 010 | X | Адрес для устройств иных шин |
0000 011 | X | ,Зарезервировано |
0000 1XX | X | Зарезервировано |
0101 000 | X | Хост шины ACCESS.bus |
0110 111 | X | «Дежурный» адрес ACCESS.bus |
1111 0XX | Х | Признак 10-битной адресации |
1111 1XX | X | Зарезервировано |
0001 000 | X | Хост шины SMBus |
0001 100 | X | Адрес ответа на сигнальные сообщения SMBus |
1100 001 | X | «Дежурный» адрес SMBus |
1001 0XX | Х | Адрес устройств-прототипов |
Типичное устройство SMBus поддерживает определенный набор команд, с помощью которых выполняется обмен данными.
В версии 1.1 спецификации SMBus введена возможность контроля ошибок пакета PEC (Packet error checking). Механизм PEC основан на добавлении в конец каждого передаваемого пакета байта CRC-кода, вычисляемого по всем предыдущим байтам пакета, начиная с адресного. Почти все протоколы могут иметь два варианта — без PEC и с PEC; на одной шине могут присутствовать устройства и с поддержкой PEC, и без. На байт PEC приемник отвечает подтверждением, но трактовка ответа неоднозначна. Если передатчик в ответ на PEC получил ответ NACK
, это означает, что приемник не подтвердил корректный прием пакета. Однако ответ ACK
не является подтверждением достоверности приема: приемник может «не понимать» PEC и отвечать на него как на обычный байт данных; приемник может и не выполнять контроль в реальном времени приема потока данных. Более «достоверный контроль достоверности» могут обеспечить лишь протоколы высших уровней. Так, например, для контроля достоверности записи в устройство можно использовать последующее чтение тех же данных с PEC, и по анализу всего принятого пакета ведущее устройство сделает вывод об успешности или ошибке операции записи.
♦ RW
адресного байта.
♦ RW
=0) одного байта данных. В варианте с PEC передаются два байта, последний — PEC.
♦ RW
=1) одного байта данных. В варианте с PEC принимаются два байта, последний — PEC.
♦ RW
=0) одного байта команды, за которым следует 1 или 2 байта (младший, а затем старший) данных. В варианте с PEC в конец добавляется контрольный байт.
♦ RW
=0), за которым передается код