|
интерфейс, между ПЛИС и МК |
|
|
|
Oct 3 2010, 10:45
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757

|
Всем привет.
Нужно организовать последовательный двунаправленный интерфейс между ПЛИС и МК (АВР). Частота у ПЛИС = 100 МГц, у МК = 1 МГц.
Может быть лучше клок для МК с ПЛИС генерить?
Как посоветуете его реализовывать? Может быть примерчики есть?
Спасибо.
Сообщение отредактировал essev - Oct 3 2010, 10:58
|
|
|
|
|
Oct 3 2010, 13:14
|
Профессионал
    
Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942

|
Цитата(essev @ Oct 3 2010, 14:45)  Может быть лучше клок для МК с ПЛИС генерить? Без всякого сомнения. Примерчик на вирилог. Много лишнего, но зато пример законченный и рабочий.
fpga_mc_bidir.v ( 3.98 килобайт )
Кол-во скачиваний: 531
Сообщение отредактировал x736C - Oct 3 2010, 13:20
|
|
|
|
|
Oct 3 2010, 18:57
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 16-05-07
Пользователь №: 27 757

|
вопрос топика возник из защиты прошивки ПЛИС от слямзивания http://electronix.ru/forum/index.php?showt...0&start=150по 32 бита шифрованного потока писать в ПЛИС и обратно возвращать 32 бита шифрованного потока. уарт не хочется по причине более сложной реализации и отладки, как мне кажется т.е., наверное, самым простым и надежным будет передача по SPI с частотой 1 МГц и тактированием МК от ПЛИС? нужно ли будет задавать какие-либо особенности интерфейсных пинов ПЛИС аля делать сигналы LVTTL или кмоп? МК авр вроде кмоп
|
|
|
|
|
Oct 4 2010, 11:32
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(essev @ Oct 3 2010, 13:45)  Всем привет.
Нужно организовать последовательный двунаправленный интерфейс между ПЛИС и МК (АВР). Частота у ПЛИС = 100 МГц, у МК = 1 МГц.
Может быть лучше клок для МК с ПЛИС генерить?
Как посоветуете его реализовывать? Может быть примерчики есть?
Спасибо. Еще один вариант (правда параллельный): В ПЛИС организовывается двухпортовая память - МК видит ее как внешнюю память (ОЗУ). Таким образом, к памяти может обращаться как ПЛИС так и МК. PS Но тоже простой...
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Oct 4 2010, 12:14
|

я только учусь...
     
Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839

|
Цитата(rezident @ Oct 4 2010, 15:07)  Что за чушь?  UART требует двух источников синхронизации, один у передатчика, второй у приемника. Причем отклонение частот этих двух источников тактирования не должно превышать пары процентов. В самом крайнем (худшем) случае до 5%. SPI как синхронный интерфейс не требует второго источника тактирования на стороне приемника (slave), да и более прост для реализации в ПЛИС. глупый вопрос: Почему UART называется асинхронным? Простое описание протокола: Цитата Принцип работы
По структуре это обычный асинхронный последовательный протокол, то есть передающая сторона по очереди выдает в линию 0 и 1, а принимающая отслеживает их и запоминает.
Данные передаются пакетами по одному байту (8 бит).
Вначале передаётся стартовый бит, противоположной полярности состоянию незанятой (idle) линии, после чего передаётся непосредственно кадр полезной информации, от 5 до 8-ми бит.
Увидев стартовый бит, приемник выжидает интервал T1 и считывает первый бит, потом через интервалы T2 считывает остальные информационные биты. Последний бит — стоповый бит (состояние незанятой линии), говорящий о том, что передача завершена. Возможно 1, 1.5, 2 стоповых бита.
В конце байта, перед стоп битом, может передаваться бит четности (parity bit) для контроля качества передачи. Он позволяет выявить ошибку в нечетное число бит (используется, так как наиболее вероятна ошибка в 1 бит). Поясните свой ответ, плиз PS не понял Вашего ответа...
--------------------
If it doesn't work in simulation, it won't work on the board.
"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
|
|
|
|
|
Oct 4 2010, 12:59
|
Профессионал
    
Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942

|
Цитата(rezident @ Oct 4 2010, 16:07)  UART требует двух источников синхронизации, один у передатчика, второй у приемника. Причем отклонение частот этих двух источников тактирования не должно превышать пары процентов. В самом крайнем (худшем) случае до 5%. SPI как синхронный интерфейс не требует второго источника тактирования на стороне приемника (slave), да и более прост для реализации в ПЛИС. Вам уже чуть ниже ответили про асинхронность UART протокола. Я писал (перечитайте) о синхронизации информационного потока.Побитовую синхронизацию при приеме байта данных берет на себя аппаратная часть микроконтроллера при соблюдении, естественно, условий, о которых вы написали. В этом контексте реализацию протокола со стороны ПЛИС по понятной причине не рассматриваю. Повторюсь. Согласен, что SPI тут более предпочтителен с точки зрения удобства реализации и использования. Особенно, если ведущим выступает контроллер. P. S. Цитата(rezident @ Oct 4 2010, 16:07)  Что за чушь?  Давайте воздерживаться от резкостей, пожалуйста. Не о политике рассуждаем rv3dll(lex), данные можно гонять стандартным протоколом, а усилия по изготовления хитрых приблуд направить на реализацию хорошего шифрования. Не согласитесь?
Сообщение отредактировал x736C - Oct 4 2010, 13:00
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|