ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
13947 Топик полностью
Max_QNX (27.08.2004 10:15, просмотров: 1) ответил Bill на Если рассуждать чисто логически, то я бы сделал в виде отдельного драйвера.
согласен с Bill у меня сейчас например многопроцессорная система (но суть где-то та же). процессор 1 (главный) имеет в подчинении 5-6 ведомых. к каждому ведомому подключено 10-20 периферийный устройств. Главный процессор имполняет программу имеющую доступ к любой перифериии. программа вталкивает запрос в очередь (можно не детализированный - просто - с какой скоростью вращается двигатель? а уж на ответной стороне пошлётся кодовая посылка получится ответ, этот ответ обработается и вернётся только результат). менеджер очереди складывает всё, работает с приоритетами, и вталкивает в последовательный канал. пусть информация адресована контроллеру 2 (ведомому). но контроллеру 2 может быть адресовано множество запросов (по несколько на каждое из 10-20 устройств к нему подключенных - кстати имеенно менеджер очереди знает в какой именно последовательный порт надо выбросить данные чтобы они ушли на нужный контроллер-ведомый - соединение - точка-точка), на ответной стороне менеджер очереди разбирает пришедшие данные и разбрасывает их по исполнительный мехенизмам, собирает от них информацию и возвращает обратно - таким же способом. Факстически при этом менеджеру очереди пофигу что через него летит. разбор информации производит вопрошающая задача, а уж чтобы данные были понятны - заботится - ведомый. (типа какой бы тип привода не был подключен - какую бы систему команд он ен имел - поменятеся только кусочек драйвера на ведомом контроллере - далее данные преобразуются к некоему стандартному виду - и вернутся ведущему. тот даже не заметит подвоха ;-) )