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

 
 
 
Reply to this topicStart new topic
> Подсчет времени на NIOS II, нужен совет
taurus
сообщение Dec 1 2008, 13:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-03-08
Из: Украина, Чернигов
Пользователь №: 35 743



Есть маленькая задачка для простейшего ядра Nios II. Есть датчик температуры с импульсным выходом типа ШИМ TMP05 от AD. Необходимо измерять длительность как высокго состояния (1) так и низкого (0). Потом из этих двух чисел делать пересчет типа
Temperature (°C) = 421 − (751 × (TH/TL))
Думал сделать чтобы считало по прерыванию на базе корки таймера (от фронта и среза), но не уверен в нормальной точности измерения, так как не знаю на сколько одинаково по времени в зависимости от условий будет происходить вход в прерывание.
То есть один раз войдет допустим через одно число циклов, а другой раз через другое, не равное первому.

Сообщение отредактировал taurus - Dec 1 2008, 13:19


--------------------
Думать - мое хобби :)
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 1 2008, 13:23
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



А почему аппаратно не измерять скважность? Зачем такой ерундой проц грузить? Тем более что у Ниоса вход в прерывание программно делается я не знаю за сколько тактов. Учесть это будет сложно наверно. И вообще, можно весь подсчёт влажности по формуле сделать аппаратно. А Ниос будет читать уже вычисленное готовое значение из регистра.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
taurus
сообщение Dec 1 2008, 13:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-03-08
Из: Украина, Чернигов
Пользователь №: 35 743



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


--------------------
Думать - мое хобби :)
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 1 2008, 14:25
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Я работал с таким датчиком по прерываниям, но из обычного проца. Из ниоса бы не стал. И вообще, софтпроцессор внутри FPGA тоже можно рассматривать как экстенсивный метод. Но, как говорится - "хозяин барин". Можно делать как хочешь. Процессор то чем нибудь нужным ещё занят?
Вообще с программным вариантом особых проблем не видно. С датчика идёт шим с периодом десятки миллисекунд, проц работает на частотах десятки мегагерц, точность датчика - не лучше процента, так что запас есть большой.


А таймер для подсчёта длительности импульсов за дополнительное железо не считается?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 1 2008, 14:58
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(taurus @ Dec 1 2008, 19:29) *
Мне почему кажется, что если ниос может это сделать программно, то зачем добавлять дополнительное железо, ведь это же экстенсивный метод.

чтобы сделать это программно, все равно в SOPC-е придется добавить таймер => ресурсы. можно сделать свой компонент(измеритель скважности) для SOPC, по ресурсам то на то и выйдет (примерно).
Go to the top of the page
 
+Quote Post
taurus
сообщение Dec 1 2008, 15:55
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-03-08
Из: Украина, Чернигов
Пользователь №: 35 743



Спасибо, подумаю насчет интеграции на шину Avalon варианта предложенного vadimuzzz.
slog, тут вы конечно правы, как то не сообразил...

Тогда вопрос вдогонку: кто что может сказать относительно времени реакции на прерывание для Nios II. Ведь уже стало просто интересно smile.gif

Сообщение отредактировал taurus - Dec 1 2008, 15:58


--------------------
Думать - мое хобби :)
Go to the top of the page
 
+Quote Post
zorromen
сообщение Dec 1 2008, 17:35
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Здесь найдешь.
Go to the top of the page
 
+Quote Post
taurus
сообщение Dec 2 2008, 00:15
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-03-08
Из: Украина, Чернигов
Пользователь №: 35 743



Честно говоря может я неправильно искал, но так и не нашел вразумительного ответа по поводу расчета времени реакции на прерывание.


--------------------
Думать - мое хобби :)
Go to the top of the page
 
+Quote Post
slog
сообщение Dec 2 2008, 05:43
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Где-то там.
Nios II Software Developer’s Handbook
Section III. Advanced Programming Topics
7. Exception Handling
ISR Performance Data

Table 7–1. Interrupt Performance Data (1)
Core Latency Response Time Recovery Time
Nios II/f 10 105 62
Nios II/s 10 128 130
Nios II/e 15 485 222


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
zorromen
сообщение Dec 2 2008, 06:28
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Цитата(taurus @ Dec 2 2008, 04:15) *
Честно говоря может я неправильно искал, но так и не нашел вразумительного ответа по поводу расчета времени реакции на прерывание.

Та это блин прицепил файл, а он отвалился.)))
Уже ответили. Как видишь использование Nios II/e как процессор обработки на прерывание ваще не подходит.
Go to the top of the page
 
+Quote Post
taurus
сообщение Dec 2 2008, 17:02
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 8-03-08
Из: Украина, Чернигов
Пользователь №: 35 743



slog, спасибо. Как я вижу - времена фиксированные, а значит беды нету, можно их просто вычесть. Притом что на отладочной плате тактовая 50 МГц, то относительно времени измерения это вообще детская погрешность.
А насчет аппаратного измерения: тогда нам понадобится блок PIO, который тоже потянет за сомой схему дешифрации на шине авалон (не знаю правильно ли назвал схему), а на подсчет внешний тамеры все равно создавать, наверно все же проще будет попробовать подсчет времени на корке таймера, так сказать из философских убеждений. как один из возможных вариантов. smile.gif

Сообщение отредактировал taurus - Dec 2 2008, 17:03


--------------------
Думать - мое хобби :)
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Dec 3 2008, 00:03
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(taurus @ Dec 2 2008, 23:02) *
А насчет аппаратного измерения: тогда нам понадобится блок PIO, который тоже потянет за сомой схему дешифрации на шине авалон (не знаю правильно ли назвал схему), а на подсчет внешний тамеры все равно создавать, наверно все же проще будет попробовать подсчет времени на корке таймера, так сказать из философских убеждений. как один из возможных вариантов. smile.gif

там ничего сложного нет, главное чтоб сигналы правильно назывались smile.gif как я писал, по ресурсам это будет примерно как таймер +/- пол-лаптя (в таймере ведь тоже есть Avalon-slave). Просто при работе с таймером вы будете вынуждены работать с прерываниями, а в варианте со своим блоком прерывания опциональны. Лучше сделать оба варианта, если есть время. Для повышения ЧСВ smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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