Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

Декодер Манчестерского кода на ПЛИС

Пн янв 18, 2016 17:14:15

Добрый день,
Необходимо сделать декодер Манчестерского кода.
Частота кода Манчестера на порядок ниже частоты генератора. У плис нет примочек, вроде фапч (и все должно быть реализовано на логике внутри плис).
Трудность заключается с синхронизацией.
Изображение
Сверху сам код, снизу clock.
Если передний фронт clk'a будет попадать на фронт кодирующего сигнала, то данные будут выбраны неверно.
Как в таком случае избежать ошибок? Спасибо!

Re: Декодер Манчестерского кода на ПЛИС

Вт янв 19, 2016 08:42:01

Синхронизация по срабатыванию таймера1 больше 3/4 периода на паузе между 1 и 0 или между 0 и 1 и следующим перепадом сигнала. В любом символе посредине есть перепад - это синхронизация таймера чтения. Таймер2 на четверть периода после перепада - чтение данных. Перепады между символами игнорируем таймером1.
Подсмотрите аппаратный декодер Манчестера.

Re: Декодер Манчестерского кода на ПЛИС

Вт янв 19, 2016 12:10:59

Сигнал может прийти с любой задержкой, а из-за девиации частоты могут быть неверные выборки данных

Вопрос в том как выловить фронт сигнала

Re: Декодер Манчестерского кода на ПЛИС

Вт янв 19, 2016 12:49:15

Killation, может полезно будет (хотя, может Вы уже видели это):
Manchester манчестер кодер-декодер на CPLD Xilinx. Влазит в цплд 64 макроячейки. Требует тактовую 16 Х битовая частота.
XAPP339
manchester_vhdl.zip

Re: Декодер Манчестерского кода на ПЛИС

Вт янв 19, 2016 17:53:15

Killation писал(а):Вопрос в том как выловить фронт сигнала

Обычный XOR на двухбитовый последовательный регистр входных данных.

Re: Декодер Манчестерского кода на ПЛИС

Вт янв 19, 2016 19:30:20

А что если
Изображение

Re: Декодер Манчестерского кода на ПЛИС

Вт янв 19, 2016 20:51:46

Вы неправильно понимаете смысл приёмника. Посмотрите на эту картинку:
Изображение
И вот: всё разжёвано:
http://www.signalpro.biz/mandec.pdf

Re: Декодер Манчестерского кода на ПЛИС

Ср янв 20, 2016 19:53:17

Задача решена.
Поставил несколько d-триггеров для ликвидации аномальных состояний перед приемником.
Они тактируются высокой частотой.


Всем спасибо!
Ответить