Консультация № 184045
17.09.2011, 19:37
61.49 руб.
0 7 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Разработать контроллер, реализующий следующие функции:
Преобразование напряжения в диапазоне (0-5)В, количество каналов-8, количество измерений на один канал-16, погрешность преобразования-0,1%,режим опроса каналов-циклический, частота-50КГц. Ввод данных-программный, по сигналу готовности.
По каждому каналу определить средне-арифметическое и большее значение передать по SPI на скорость 100КГц с указанием номера канала. Начало обмена задает приемник информации, ввод-по прерыванию. Передача возможна, если цикл измерения завершен. Предусмотреть буфер для хранения результата.

И если можно... словесно описать требуемые блоки или компоненты МПУ. На основе требуемых блоков и компонентов выбрать омк.
Буду благодарна любой помощи.. т.к. сама тут мало что понимаю.

Обсуждение

Неизвестный
17.09.2011, 19:42
общий
ОМК с системой команд MCS-51/52 или AVR
давно
Посетитель
7438
7205
18.09.2011, 01:07
общий
Здравствуйте.
Давайте сначала уточним условие:
Имеем некое устройство, которое имеет 8 каналов измерения напряжения (АЦП ?, как считывать?),
каждый канал необходимо опросить 16 раз (получить байт/2 байта ?), найти среднее и максимальное,
(Как учитывать погрешность преобразования? Частота 50КГц - чего? И как учитывать?), передать в последовательный канал с частотой 100КГц.
Допустим, передаем три байта: номер канала, среднее, максимальное.
Ввод данных-по прерыванию (какому?) означает, что цикл опроса начинаем по прерыванию. Так?
Ну и передавать начинаем по готовности всех данных в ответ на прием (чего? Какого-то любого одного байта?)
Вот сколько вопросов и непоняток... Жду разъяснений по каждому.
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
18.09.2011, 14:24
общий
Адресаты:
Имеем некое устройство, которое имеет 8 каналов измерения напряжения (АЦП ?, как считывать?)

АЦП
каждый канал необходимо опросить 16 раз (получить байт/2 байта ?)

Так как погрешность преобразования должна быть не более 0,1% , значит 16-разрядная арифметика(2 байта я так понимаю...)
Частота 50КГц - чего?

частота опроса каналов
Ввод данных-по прерыванию (какому?) означает, что цикл опроса начинаем по прерыванию. Так?

да, цикл опроса начинаем по прерыванию. думаю любому.
Ну и передавать начинаем по готовности всех данных в ответ на прием (чего? Какого-то любого одного байта?)

Тут я Вас немного не понимаю( Передача возможна, если цикл измерения завершен.
давно
Посетитель
7438
7205
18.09.2011, 20:24
общий
Продолжаем уточнять:
1) Как работать с АЦП? Или без разницы, взять произвольный адрес (два адреса для 16 бит) внешней памяти, да читать?...
2) Частота 50 КГц соответствует периоду 20мкс. Что надо сделать за это время? Опросить АЦП одного канала? Или всех?
3) Какое прерывание - вопрос непраздный. Если все равно, то можем остановиться на прерывании таймера 0. Или может нужно использовать внешние прерывания?
4) Вопрос насчет передачи предполагал уточнение, кто является инициатором обмена?
Я предположил, что какое-то внешнее устройство передает любой байт, можно, например, дать номер канала, т.о. инициирует обмен, а контроллер отвечает 5 байтами (с учетом 16-разрядных данных). Или надо, чтобы выдавались все 5*8 байт, но тогда номер канала как бы уже и лишний.

Или контроллер сам выдает в последовательный канал данные по мере готовности?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
20.09.2011, 17:09
общий
Адресаты:
по поводу погрешности преобразования 0,1%=1/1000, т.е. необходимо принимать 10 разрядов=>10 разрядный АЦП. и отсюда вытекает что использовать омк avr(есть встроенный 10ти разрядный ацп).
1) Как работать с АЦП? Или без разницы, взять произвольный адрес (два адреса для 16 бит) внешней памяти, да читать?...

вы имеете ввиду куда записывать результаты? да, без разницы
2) Частота 50 КГц соответствует периоду 20мкс. Что надо сделать за это время? Опросить АЦП одного канала? Или всех?

опросить ацп одного канала

По поводу вывода... опросили канал, посчитали среднее и максимальное, записали в предусмотренный буфер и сформировали флаг что данные готовы и тогда уже ожидаем прерывания от приемника. Ну я так поняла...
давно
Посетитель
7438
7205
21.09.2011, 10:52
общий
Говорите, avr...
Проблема в том, что лично я никогда их не использовал, не знаю, по крайней мере, на даный момент, "с чем их едят". Если я успею пройти "ускоренный курс", то попытаюсь ответить...
Я вначале предполагал, что используется внешний АЦП, "пристегнутый" к обычному 80c51.
Потому и спрашивал, как обращаться к АЦП (а не куда записать результат опроса)
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
22.09.2011, 11:05
общий
Адресаты:
спасибо большое за попытки)
Форма ответа