|
Построение упаковщика данных |
|
|
|
May 28 2014, 15:29
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Доброго времени суток! Коротко о насущном. Имеется плата с установленными 8-ю АЦП, формирующие синхронный "срез" группы сигналов. Управление производится ПЛИСиной (минимальный циклон2/3). Предполагается трансляция данных на обработку в DSP. Есть пожелание передавать данные блоками "максимальной длины" (для программиста это значение в десятки кБ, я ограничен ресурсами ПЛИС и максимум смог бы согласиться на 8кБ). В реалии договорились на блок из 256 Б (попробуем, а дальше примем решение - потянем или нет). В протоколе управления, заложена возможность ввода "используемых АЦП". Из беседы (пока краткой) понял что в ПЛИС передается один байт, в котором каждый бит указывает будут ли включаться данные с АЦП в протокол или нет. В качестве исходного проекта решил сделать так: 1) детектор старта; 2) узел запуска АЦП и записи в данных в буферные регистры; 3) мультиплексор для опроса регистров и выдачи данных в двухпортовое ОЗУ. Получается 3 линии выбора номера АЦП; 4) некий блок/узел показывающий записывать данные или нет; 5) счетчик адреса записываемого отсчета АЦП; 6) двухпортовое ОЗУ. Возникли сомнения в реализации "некоего блока" из п 4. Если рассматривать ситуацию, когда выбраны все АЦП, то этот блок как бы и не нужен, достаточно соединить младшие биты счетчика с входом управления мультиплексора и все пишется как надо в ОЗУ. Например, А1/А2/А3/А4/А5/А6/А7/А8/А1/А2/..../А6/А7/А8/ Обратная ситуация, когда не выбран ни один АЦП не имеет смысла - ибо зачем формировать протокол в котором нет никаких данных. Гораздо запутаннее получаются режимы с частью непередаваемых данных. Например исключили АЦП 5, А1/А2/А3/А4/А6/А7/А8/А1/А2/А3/А4/А6/А7/А8/А1/.... Если исходить из того, что пакет должен быть фиксированной длины (256 Б), то напрашивается достаточно хитроумный формирователь адреса для мультиплексора. Количество состояний по моей оценке, чуть меньше 2^16. Делать такой case на 65 килострок - явный путь в психушку. (даже если набирать строку за полминуты уйдет примерно дней 70). Выполнить ПЗУ с 3-хбитным выходом на 65 килострок - тоже долго и нудно. Что еще можно предпринять для того, что бы сформировать этот "хитрый выбор" АЦП? ПыСы. Данные будут чуть длиннее, т.к. предполагается их обрамить признаком начала передачи и проверочным "хвостом"(контрольная сумма или CRC).
|
|
|
|
|
 |
Ответов
|
May 28 2014, 16:51
|
Местный
  
Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094

|
Цитата Если исходить из того, что пакет должен быть фиксированной длины (256 Б), то напрашивается достаточно хитроумный формирователь адреса для мультиплексора. Количество состояний по моей оценке, чуть меньше 2^16. Какая религия мешает Вам производить опрос "буферных регистров" последовательно и записывать в FIFO те из них, в которых есть нужные данные?
|
|
|
|
|
May 28 2014, 22:26
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(o_khavin @ May 29 2014, 01:01)  Какая религия мешает Вам производить опрос "буферных регистров" последовательно и записывать в FIFO те из них, в которых есть нужные данные? Этот хитрый узел, как раз и должен последовательно брать данные из нужных регистров и подавать на вход внутренней памяти. А уж как она представлена в виде двухпортовки или FIFO - мне кажется это не принципиально. В любом случае, необходимо формировать разные последовательности управления мультиплексором. И тут появился вопрос из первого поста - как обойти рутину? Делать влоб - таблица на 65024 состояния, из которых 2^8 это функция от адреса и чуть меньше - функция от регистра "разрешенных" АЦП.
|
|
|
|
Сообщений в этой теме
Александр77 Построение упаковщика данных May 28 2014, 15:29 doom13 Какой интерфейс передачи данных из FPGA в DSP и ск... May 28 2014, 16:34  des00 Цитата(Александр77 @ May 29 2014, 09:36) ... May 28 2014, 23:03 doom13 Цитата(Александр77 @ May 28 2014, 22:39) ... May 28 2014, 17:05 vadimp61 DSP должен всем рулить! а альтера обычный деши... May 28 2014, 22:14 olegras А зачем вообще нужны режимы с частью непередаваемы... May 29 2014, 01:22 Александр77 Цитата(olegras @ May 29 2014, 09:32) Може... May 29 2014, 09:53  o_khavin Цитата(Александр77 @ May 29 2014, 18:03) ... May 29 2014, 10:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|