Есть ли книга где описываются все интерфейсы через которые МК может общаться с периферией?
Да конечно есть, эти книги называются DataSheets для оборудования с которым собираетесь общаться.
Принцип работы самих протоколов легко гуглятся на любом языке.
Ну а сухое офф. изложение 
open-edu.rsu.ru/files/%D1%83%D1%87%D0%B5%D0%B1%D0%...
Точно так же, рекомендую обратиться в начале, к DataSheet'у выбранного контроллера, а затем уже к Википедии (лучше - англоязычной), где описаны интересные Вам интерфейсы.
На самом деле, интерфейсов очень много и литературы, где именно они бы были подробно описаны, я не встречал. Так что, google в помощь, как говорится.
А вообще, только минимальное количество интерфейсов, которые вообще могут быть на микроконтроллерах:
ADC/DAC (фомрально, интерфейс)SPI, I2C (IIC), IIS(I2S) UART (USART будет относительно близок к SPI), i8080 (интерфейсы шины данных), CAN (высоко/низко скоростная шина данных), OneWire (не встречал аппаратного интерфейса в широкораспространённых чипах пока что, все эмулировались), USB, PHY, MII/RMII (уменьшенный интерфейс MII).
Из более редко встречающихся внешних интерфейсов - как правило, это видео-интерфейсы вплоть до RGB-24/компонентное видео/HDMI/MIPI интерфейс, беспроводные интерфейсы в специализированных чипах.
Боюсь, с ходу больше ничего не вспомню.
Так что, опять же, поисковик в руки, руки в плечи, и искать! =)