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

 
 
> Передача данных из SPI в SPI, Подскажите как лучше
prussta
сообщение Mar 31 2015, 06:12
Сообщение #1


Участник
*

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



Всем доброго времени суток! Подскажите, как лучше организовать систему. Система в целом выглядит так: Есть софт процессор NiosII - он выполняет основные задачи: отвечает на запросы пользователя, принимает какие-то данные, обрабатывает их, выдает ответы и прочее. Также есть два SPI: SPI1 - он принимает данные из вне как только вся система запустилась и SPI2 в который мне нужно эти данные (определенное количество) выплюнуть (этот SPI от Ethernet платки). Получается, что мне нужно постоянно гнать данные из SPI1 в SPI2. Причем, иногда мне нужно в этот поток данных добавлять еще байт своих данных. Как это можно организовать с минимальным участием проца? Чтобы он успевал делать свою основную работу и меньше отвлекался на эту передачу? Может есть какая-то переферия для таких задач? Подскажите куда посмотреть? Частота работа Niosa 100MГц, а данные на SPI1 приходят с частотой 24Мгц.
Пока у меня рисуется стандартный вариант: по прерыванию на прием по SPI1 я через DMA записываю поступившие данные в память, как только пришло необходимое кол-во байт, выставляю флаг. И в основном цикле программы по этому флагу отправляю эти данные в SPI2.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prussta
сообщение Apr 5 2015, 08:40
Сообщение #2


Участник
*

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



Да, подобное и нужно)) контроллер этот как реализовать? написать на аппаратном языке?
Go to the top of the page
 
+Quote Post
GAYVER
сообщение Apr 6 2015, 07:49
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 139
Регистрация: 3-04-13
Пользователь №: 76 333



с фифошкой никогда плотно не работал, но на скорую руку набросал логику фунциклирования - как себе это представляю. в принципе осталось только порты прописать и разобраться с фифо и ее подключить.

зы
переменные в капсе - ин/аут порты, строчные - внутренние переменные

ззы
отцы-профессионалы, поправьте меня если что - сам то я начинающий лошарик sm.gif

CODE

process (CLK_SPI)
rgs:std_logic_vector(31 downto 0);
ct:std_logic_vector(4 downto 0);
begin
if CLK_SPI'event and CLK_SPI='1' then

if CS_SPI='1' then rgs(31 downto 0)<=rgs(30 downto 0)&IN_SPI after 100 ps;
else rgs<=rgs after 100 ps;
end if;

if CS_SPI='1' then ct<=ct+1 after 100 ps;
else ct<=ct after 100 ps;
end if;

end if;
end process;

data_ready_spi<= '1' when ct="11111" else
'0';


process (CLK_FIFO)
data_ready_fifo, data_ready_fifo_d:std_logic;
begin
if CLK_FIFO'event and CLK_FIFO='1' then

data_ready_fifo<=data_ready_spi after 100 ps;
data_ready_fifo_d<=data_ready_fifo after 100 ps;

if RESET='1' then WREN_FIFO<='0' after 100 ps;
elsif data_ready_fifo='1' and data_ready_fifo_d='0' then WREN_FIFO<='1' after 100 ps;
else WREN_FIFO<=WREN_FIFO after 100 ps;
end if;

DATA_FIFO<=rgs after 100 ps;
end if;
end process;


тут же первый косячок - надо следить за тем чтобы данные всегда были по 32 бита - иначе собьется насчет в счетчике, из-за того что он привязан к синхре SPI, а она появляется уже после того как выставится CS_SPI. в общем стоит вопрос обнуления счетчика sm.gif

Сообщение отредактировал GAYVER - Apr 6 2015, 07:50
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   ЦитатаУ вас есть допустим 2 FIFO. 1-ая (FIFO1) зап...   Apr 3 2015, 11:10
|- - GAYVER   Цитата(prussta @ Apr 3 2015, 14:10) Dmitr...   Apr 3 2015, 11:45
- - 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


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

 


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


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