Доброго дня, дорогие читатели! В этой статье я начинаю новый цикл публикаций про интерфейс SATA. Цель данного цикла: реализовать на доступной отладочной плате с подходящей микросхемой ПЛИС host-контроллер SATA. Исходных кодов такого контроллера на просторах гитхаба наблюдается несколько, однако, они заточены под очень дорогие отладочные платы и являются только демонстраторами без какой-либо полезной специализации. Плюс к этому, вы не найдете в них простых объяснений, что там и для чего. Только сухие тексты спецификаций.
Итак, как работает SATA? Суть довольно простая — взять параллельный интерфейс из 26 проводов (данные+управление) и утрамбовать всего в 4 экранированных проводника. При этом еще и увеличив скорость передачи данных! Амбициозная заявка… Если такое возможно, то почему еще в прошлом веке так не сделали? Оказывается, не особо хотелось платить патентные отчисления корпорации IBM за кодировку 8b/10b. Патенты тормозят технический прогресс? Нет, не слышали.
Схематически выше сказанная мысль выглядит так:

Упрощенная схема SATA интерфейса
Показана передающая схема. Приемная такая же, только в обратную сторону.
Continue reading →