реклама на сайте
подробности

 
 
> Как правильно синхронизировать SGDMA?
smersh
сообщение Mar 8 2016, 14:33
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 19-06-04
Пользователь №: 64



Здравствуйте, коллеги!
Вот такая связка:

АЦП-----ОБРАБОТКА-----FIFO-----SGDMA----NIOSII

Вопрос не по реализации, с ней все нормально, а по алгоритму. Дело в том, что здесь АЦП производит 256 измерений последовательно от 256 разных каналов и т.д. по кругу. Важен порядковый номер каждого байта, принятого в буфер ДМА.

Если по каким-то причинам пропускаетcя байт от АЦП, буфер теряет синхронность, нулевой байт уже не соответствует нулевому каналу и возникает “кольцевой” сдвиг. Причем этот сдвиг остается и при следующем трансфере.

Как с этим бороться? Нужно придумать механизм самосинхронизации.

Дополнительно нумеровать байты очень не хочется (например, можно добавить один бит и выставлять его только для нулевого канала). Сбрасывать фифо не получается, т.к. оно заполняется непрерывно; в прерывании, возникающем по окончании ДМА трансфера этого делать нельзя, потому что фифа уже начала заполняться новыми данными.

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

Спасибо!
NJ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
des00
сообщение Mar 8 2016, 14:41
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Заменить фифо на рам.


--------------------
Go to the top of the page
 
+Quote Post
smersh
сообщение Mar 8 2016, 15:31
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 19-06-04
Пользователь №: 64



QUOTE (des00 @ Mar 8 2016, 18:41) *
Заменить фифо на рам.


Вах!!! Спасибо. (Почему я не догадался sm.gif )
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01342 секунд с 7
ELECTRONIX ©2004-2016