Там же shift register, который надо заполнить полезными данными. 1) Вы посылаете команду на чтение, в ответ (дуплексом) получаете "мусор/пустышку". Slave видит, что вы хотите и записывает в свой shift register это полезное.
2) Вы посылаете "пустышку", в ответ получаете "полезные" данные из shift register.