Ufff, no me acuerdo del protocolo, me he limitado a transcribirte el pseudocódigo del código que hice en su día. Pero mira el tutorial que enlacé antes; ahí está explicado el protocolo y seguro que encontrarás tú mismo las respuestas a esas preguntas.
Ese algoritmo que te he descrito es el que usé en el vídeo que te mostré antes, así que funciona bien.
Por cierto, ambos pines, data y clock, son entradas.