Co-Simulation/Дневник
Материал из Wiki
< Co-Simulation
Версия от 17:43, 27 ноября 2013; Vidokq (обсуждение | вклад)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
- Техническое задание
- Описание FT2232H
- Описание FT232H
- (TUMPA) TIAO USB Multi Protocol Adapter
- (TUMPA) Litle
- Описание макета
- Примеры кода
Литература
Содержание |
2013-11-02 Анализ текущего состояния проекта
- При запуске моделирования наблюдается следующее
Модельное время модельная частота Шина вх\вых Время моделирования 1 мс 10 МГц 512\16 ~20 сек 1 мс 10 МГц 512\512 ~20 сек 1 мс 10 МГц 1024\1024 ~20 сек
- установка буфера разной величины не влияет
- получаем 1 мс - 10 МГц - 10000 переключений => 20 сек/10000 = 2 мс
- анализ функций из драйвера микросхемы показывает..., что минимальная задержка при чтении буфера и записи в буфер 1 мс
-
так как за цикл работы эмулятора происходит пересылка туда и обратно, то напрашивается вывод, что время работы ограничивается этой задержкой.
-
TO-DO: попробовать установить задержу равную 0 и обрабатывать самому события приема и посылки данных.
2013-11-22 (Revision 31)
Проведена проверка скорости работы в режиме только отправки от ПК в FTDI-мост.....
- С++ проект модифицирован для оправки.
- VHDL-модель была скорректирована только для чтения из FTDI и ширина регистра установлена равной 256 бит (32 байта).
- В результате получена скорость работы следующая: 10000 циклов посылки 64 Кбайт выполняется за 31 с = 20 Мбайт/с - предельная скорость .... так как буфер сделать больше нельзя (64 Кбайт предел), а при уменьшении пуза при обработке пакетов минимальная 120-240 мкс (плавает). Т.е. если посылать 1 байт, то между посылками будет пауза 120 -240 мкс..... при увеличении пачки посылаемых данных длительность паузы нивелируется за счет более быстрой работы во время передачи одного пакета.
- Во время передачи пакета без задержек выполняется передача 512 байт, потом 10 мкс пауза (FTDI наполняет внутренний регистр) и снова 512 байт за ~10 мкс (потом снова пауза 10 мкс) и т.д.
2013-11-26
- Анализ алгоритма работы USB-шины (с чего нужно было начинать) Статья с вики Шина_USB объясняет задержку время 2 мс(по 1 мс на прием и отправку, действия инициируются каждую мс) между посылкой и приемом информации
Вывод неутешительный ..... если наблюдаем не 10000 и более сигналов то usb не дает требуемой скорости.
NEW
Изучаем материал по драйверам для pci (еще нужно глянуть на LAN)
А для системщика под виндой WinDDK вообще как вода для страждущего. Разве только... кубик сухого льда не повредит. Кстати, надеюсь уже все в курсе, что существует конвертер из SOURCE-файлов(для утилиты BUILD) в проекты под VC 5.0/6.0 . Дешево и сердито. Стянул, кажется у NuMega... Библиотеки функций ( и классов ) WinDK(C и C++ отдельно, www.bluewatersystems.com) и Driver::Works(только C++, www.numega.com) я получил на одном и том же диске(С/С++ для Профессионалов , достало словечко). Оба пакета содержат хорошие Wizardы для Visual C++, есть примеры для PCI/USB устройств, поддержка WDM-дров. Использую WinDK, т.к. другой существенно (проверял) более громоздкий и слишком удален от базового набора примитивов в WinDDK. Тогда как в WinDK они используются прямо в рабочих структурах. Можно чередовать сервисные библиотечные и стандартные функции (только если понимаешь, что делаешь -- RTFM), поскольку все прозрачно. IMHO WinDK это на 5, Driver::Works на 4, но более распространен, судя по количеству примеров и ссылок. Ну что поделаешь, NuMega -- авторитет 8)