Co-Simulation/Дневник
Материал из Wiki
				
								
				< Co-Simulation
				
				
																
				
				
								
				Версия от 17:46, 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)