|
Передача данных из SPI в SPI, Подскажите как лучше |
|
|
|
Mar 31 2015, 06:12
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 1-02-12
Из: Екатеринбург
Пользователь №: 70 003

|
Всем доброго времени суток! Подскажите, как лучше организовать систему. Система в целом выглядит так: Есть софт процессор NiosII - он выполняет основные задачи: отвечает на запросы пользователя, принимает какие-то данные, обрабатывает их, выдает ответы и прочее. Также есть два SPI: SPI1 - он принимает данные из вне как только вся система запустилась и SPI2 в который мне нужно эти данные (определенное количество) выплюнуть (этот SPI от Ethernet платки). Получается, что мне нужно постоянно гнать данные из SPI1 в SPI2. Причем, иногда мне нужно в этот поток данных добавлять еще байт своих данных. Как это можно организовать с минимальным участием проца? Чтобы он успевал делать свою основную работу и меньше отвлекался на эту передачу? Может есть какая-то переферия для таких задач? Подскажите куда посмотреть? Частота работа Niosa 100MГц, а данные на SPI1 приходят с частотой 24Мгц. Пока у меня рисуется стандартный вариант: по прерыванию на прием по SPI1 я через DMA записываю поступившие данные в память, как только пришло необходимое кол-во байт, выставляю флаг. И в основном цикле программы по этому флагу отправляю эти данные в SPI2.
|
|
|
|
|
 |
Ответов
|
Apr 3 2015, 11:10
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 1-02-12
Из: Екатеринбург
Пользователь №: 70 003

|
Цитата У вас есть допустим 2 FIFO. 1-ая (FIFO1) заполняется процессором в режиме DMA, а вторая с порта SPI1 (FIFO2). Dmitriyspb, а как вы предлагаете с порта SPI1 заполнять FIFO2? Есть варианты его заполнения без участия процессора? Даже если использовать DMA, то получается, что надо при приходе данных в регистр SPI1 нужно вызывать ф-ию alt_dma_rxchan_prepare(...), чтобы DMA передал эти данные в FIFO2 . Можно ли как-нибудь это обойти? В идеале хотелось бы так настроить передачу, чтобы данные приходя в SPI1 сразу бы записывались в FIFO2, и проц при этом не беспокоить.
|
|
|
|
|
Apr 3 2015, 11:45
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 3-04-13
Пользователь №: 76 333

|
Цитата(prussta @ Apr 3 2015, 14:10)  Dmitriyspb, а как вы предлагаете с порта SPI1 заполнять FIFO2? Есть варианты его заполнения без участия процессора? Даже если использовать DMA, то получается, что надо при приходе данных в регистр SPI1 нужно вызывать ф-ию alt_dma_rxchan_prepare(...), чтобы DMA передал эти данные в FIFO2 . Можно ли как-нибудь это обойти? В идеале хотелось бы так настроить передачу, чтобы данные приходя в SPI1 сразу бы записывались в FIFO2, и проц при этом не беспокоить. вы настоящий программист  . не проще сделать отдельный контроллер, реализующий запись SPI1->FIFO2, который снимет с процессора эту задачу? SPI протокол известен, скорость записи в фифо гораздо выше скорости SPI. все сведется к сдвиговому регистру, собирающего слова от SPI, и выставляющим строб записи для фифо как только это слово будет собрано
|
|
|
|
Сообщений в этой теме
prussta Передача данных из SPI в SPI Mar 31 2015, 06:12 Dmitriyspb Цитата(prussta @ Mar 31 2015, 09:12) Всем... Mar 31 2015, 06:37 prussta Цитата2) простенький блочек, который соберет в куч... Mar 31 2015, 07:11 Dmitriyspb Цитата(prussta @ Mar 31 2015, 10:11) я пр... Mar 31 2015, 07:19  prussta Цитата(Dmitriyspb @ Mar 31 2015, 13:19) М... Mar 31 2015, 07:26   Dmitriyspb Цитата(prussta @ Mar 31 2015, 10:26) Так ... Mar 31 2015, 07:46    prussta Ах, вот оно что! Спасибо, Дмитрий, за разъясне... Mar 31 2015, 08:54     Dmitriyspb Цитата(prussta @ Mar 31 2015, 11:54) Я пр... Mar 31 2015, 09:02      prussta Цитата(Dmitriyspb @ Mar 31 2015, 15:02) С... Mar 31 2015, 09:40 prussta Да, подобное и нужно)) контроллер этот как реализо... Apr 5 2015, 08:40 GAYVER с фифошкой никогда плотно не работал, но на скорую... Apr 6 2015, 07:49 Dmitriyspb Цитата(prussta @ Apr 5 2015, 11:40) Да, п... Apr 6 2015, 08:24  prussta Цитата(Dmitriyspb @ Apr 6 2015, 14:24) Дл... Apr 6 2015, 11:28   Dmitriyspb Цитата(prussta @ Apr 6 2015, 14:28) Я так... Apr 6 2015, 11:57    GAYVER а ведь действительно, если работать по прерыванию ... Apr 7 2015, 07:17
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|