CPCI от PCI отличается не глобально, поэтому изложу то, что знаю о разработке устройств на PCI (у меня в планах такое)
В Квартусе под альтеру есть PCI-компилер. Там собирается как бы устройство на ПЛИС, в котором есть входы/выходы интерфейса PCI, и отдельно адресное пространство BAR (их может быть до 6 штук). При запуске компилера можно указать Vendor ID, "модель" устр-ва и некоторые параметры PCI стыка. К Барам можно подключать адресуемую память, регистры микроконтроллера, I2C и проч.... Да хоть ноги с уровнем!
Но самая главная тема - дрова для компа! Чтобы особенно не морочиться с операционкой, ядром и прочими прелестями, советую применить Jungo WinDriver. Вставляешь устройство в слот PCI, и программа показывает все его доступные ресурсы, и - главное! - генерирует inf-файл устройства и костяк драйвера в виде проекта под MSVS или BCB или GCC, для виндовс, линух или мака...
Далее все сводится к элементарным процедурам на С++: - открыть устройство (хэндл) - инициализировать драйвер - инициализировать устр-во - считать/записать из Бара №хх по адресу хх (короче, работать с устр-вом) - закрыть устройство
При втыкании устройства на другой комп, Винда его определит (выдаст название, которое зашивают в ПЛИС при компиляции PCI), и достаточно подсунуть дискетку с полученными "дровами" БЫОС в табличке после определения дисков показывает обнаруженные устр-ва на PCI. Но если ПЛИС не успела грузануться - не страшно, т.к. Plug-n-Play операционка все равно заново сканит шину на предмет новых устройств.
|