А как насчёт UART, может он в этой ситуации предпочтительнее?
Дело в том, что у меня нет времени на разработку всех модулей последовательных протоколов, вот и метаюсь теперь... Что касается SPI, то как я уже отметил, мне легче кинуть SCK от ПЛИС. Идея заключается в том, чтобы не делать на ПЛИС полный, программируемый модуль SPI, а зашить в неё определённые, заранее договорённые параметры протоколирования: полярность, скорость, фронт восприятия данных и т.д. т.е. задача намного упрощается, т.к. система не привязана к особой гибкости! Если поступить соответствующим образом, то задача сводится к тому, что частота от ПЛИС подключается к микрухе приемопередатчика (у него в прошивке хранятся, теже самые параметры на SPI). Тем самым SPI приёмопередатчика будет работать на той частоте, которую ему диктует ПЛИС (до 5 Мгц). Да, пожалуй ещё одним неприятным моментом в системе является то, что приёмопередатчик будет работать исключительно в полудуплексном (данные передаются через радиоканал одновременно только в одном направлении и со скоростью 250 кбит/с) режиме, тем самым получается, что данные по SPI передаются хоть и в полнодуплексном режиме, но всё же при отправке данных от ПЛИС в приёмопередатчик, регистры SPI обмениваются информацией, которая по сути ПЛИС от приёмопередатчика (в режиме отправки и наоборот только уже от ПЛИС к приемопередатчику, при приёме) не нужна вобще! Т.е. это в моём случае излишняя информация. Это нормально? или лучше разрабатывать свой специальный протокол (совместимый с SPI) с мультиплексированием шины данных MISO/MOSI?
Цитата
в другом случае Slave сообщает Master о наличии данных с помощью прерывания
Вот, наверное, это лучший вариант. С отправкой данных всё понятно, проблем вроде не возникает. Как я правильно понимаю, при приёме данных (не по SPI, а из радио канала!), в приемопередатчике (который slave) устанавливается флаг разрешения прерываний, это как раз может использоваться для оповещения о начале приёма данных от микросхемы приемопередатчика в ПЛИС?
Вот, для облегчения понимания, решил на скорую руку начертить блок схему системы. Скорее всего АЦП и ЦАП будут внутри ПЛИС, поэтому один SPI нужно будет убрать, хотя вот тоже вопрос, мне необходимо внутри ПЛИС работать с параллельными данными, т.е. что-то вроде SPI полюбому придётся ставить, но здесь задача полегче- тактовая частота одинаковая.
Сообщение отредактировал Rundll - Nov 2 2006, 17:39
Эскизы прикрепленных изображений