Страница 1 из 1
Устройство тестирования знаний
Добавлено: Вт янв 20, 2009 19:10:50
vlad555
Доброго времени суток.Задали задание создать тестовую систему на основе микроконтроллера и компа.Суть состоит в том что на компе допустим есть какая то программа,которая связана с базой данных и т.д.Она выводит вопросы и варианты ответов(планируется подключить проэктор),а в аудитории сидят студенты и держат в руках пульты.Пульт состоит из телефонной клавиатуры и дисплея.На дисплее отображается различная информация,допустим время до окончания тестирования,или введеный вариант ответа.Для пульта думаю использовать ATtiny2313, знаковый LCD 2*16.Но проблема состоит не в разработке пульта, а в том как соединить допустим 30 пультов с компьютером.Тоесть прошу помощи в выборе интерефейса и как соеденить это все с компом. I2C к сожалению не подходит- длина максимум 1 метр.Заранее благодарен.
Добавлено: Вт янв 20, 2009 19:30:34
pirotehnick
А почему только 1 м. Если обменниваться данными на низких оборотах, то можно и 10-20 м. К тому же можно собрать что-то вроде коммутатора.
Вот например:
http://cxem.net/comp/comp6.php
Я бы попробовал реализовать тотже принцип, который реализован в протоколе SPI. Т.е. общая линия данных и линии для выбора устройства.
Добавлено: Вт янв 20, 2009 19:30:49
nds
любой токовый интерфейс подойдет например rs485
Добавлено: Вт янв 20, 2009 19:34:29
vlad555
Оригинальная спецификация Philips не дает гарантий о качестве передачи по шине I2C больше чем на 1 метр даже с самой минимальной скоростью.
Добавлено: Вт янв 20, 2009 19:35:44
vlad555
nds писал(а):любой токовый интерфейс подойдет например rs485
Тоже о нем думал,но не знаю как реализовать в мк?И не знаю как прицепить к компу?
Добавлено: Вт янв 20, 2009 19:48:44
pirotehnick
К компу цепляется через УСАПП, а проблема с нехваткой ног решается при помощи дешифраторов или сдвиговоговых регистров.
В винде с СОМ портом достаточно легко работать через винапи.
Добавлено: Вт янв 20, 2009 20:27:23
vlad555
pirotehnick писал(а):К компу цепляется через УСАПП, а проблема с нехваткой ног решается при помощи дешифраторов или сдвиговоговых регистров.
В винде с СОМ портом достаточно легко работать через винапи.
Так у rs485 те же самые выводы что и у rs232?
Добавлено: Вт янв 20, 2009 21:39:52
pirotehnick
нет
http://www.gaw.ru/html.cgi/txt/interfac ... /start.htm
Он очень похож на RS-232 однако характеристики несколько иные.
Для соединения с компом проще использовать RS-232.
Добавлено: Вт янв 20, 2009 22:24:12
vlad555
Спасибо,я это уже читал,RS232 -не получится,мне нужно много устройств подключить.Я не могу даже примерно найти как общаться по этому интерфейсу.Даже примера программмы нет,как принимать,отправлять данные,и как с этими адресами разобраться,если устройств много?
Добавлено: Вт янв 20, 2009 22:53:53
pirotehnick
Ну ни уже ли нельзя придумать чего-нибудь своё... Скажем подключать требуемые тебе пульты тупо через транзисторные ключи. Допустим есть главный комп. Есть общая линия данных. Подключением тербуемого пульта к кому управляет контроллер. Управляющие выходы контроллера поключить к дешифратору.
Дешифратор открывает ключ и подключает общий провод для линии данных к нужному пульту, после чего происходит обмен данными и подключается следующий пульт.
Разумеется потребуется там гальваническая развязка, защита от помех ну и т.п.
Вообщем можно придумать множество способов как реализовать такую штуку.
Добавлено: Ср янв 21, 2009 17:39:50
radteh
Делаешь преобразователь rs232 - rs485, на шину rs385 садишь пульты, каждый пульт имеет уникальный адрес. Программа на компьютере запрашивает поочерёдно пульты, а те сбрасывают свою информацию или наоборот получают. По такому принцыпу работает сигнализация использующий интерфейс rs485
Добавлено: Чт янв 22, 2009 21:08:41
vlad555
radteh писал(а):Делаешь преобразователь rs232 - rs485, на шину rs385 садишь пульты, каждый пульт имеет уникальный адрес. Программа на компьютере запрашивает поочерёдно пульты, а те сбрасывают свою информацию или наоборот получают. По такому принцыпу работает сигнализация использующий интерфейс rs485
А как эти адреса получить,где их записать и как в программе на компе опрашывать(пишу на С)????
Добавлено: Пт янв 23, 2009 21:02:02
vlad555
Подскажите пожалуйста
Добавлено: Пт янв 23, 2009 22:21:55
nds
адреса должны задаваться в самом пульте
если нет необходимости придерживаться какогонибудь стандартного протокола то все очень просто
все пульты слушают линию
комп посылает стартовую комбинацию байт и байт адреса и ждет ответа определенное время, если девайсина с таким адресом есть
то она присылает подтверждение и можно производить обмен остальные девайсины слушаю линию в ожидании пока выберут их
Добавлено: Сб янв 24, 2009 19:38:48
vlad555
Спаибо,уже что то прояснятется.А адреса пультов заносить н а стадии програмирования,в постоянную память?
Добавлено: Сб янв 24, 2009 20:24:29
Аксель
не обязательно, можно и в перезаписываемую, а можно задать и перемычками.