ЖУРНАЛ «СТА» №1/2007
94 СТА 1/2007 www.cta.ru Как видно из результата, в системе обнаружено два типа USBконтроллеров: EHCI и UHCI. Причем USBустройство чтения карт CompactFlash и USBмышь подключены к EHCIконтроллеру, а USBклавиатура – к UHCIконтролле- ру. Теперь включаем эти устройства в другие USBпорты и убе- ждаемся, что они тоже работают. Таким образом мы провери- ли совместимость USBконтроллеров с драйверами ОС QNX. Теперь проверим стабильность работы USBпортов. Для этого воспользуемся специально разработанным скриптом usbmasstst , который вы можете найти на странице техниче- ской поддержки ОС QNX. Алгоритм работы этого скрипта аналогичен схеме тестирования работы EIDEконтроллера, с той разницей, что теперь потоки данных файловой системы будут пропускаться через USBконтроллер, а не EIDE, поэто- му повторно рассматривать алгоритм мы не будем. Итак, подключаем USBустройство чтения карт Com- pactFlash вместе с CompactFlash в порт тестируемой платы. На CompatcFlash уже должна быть проинициализирована файло- вая система QNX 4. Запускаем скрипт: # usbmasstst По истечении многочасового тестирования смотрим жур- нал результатов тестирования. Если в нём не содержится оши- бок, то значит, тест на стабильность работы USBпорта при его интенсивной загруженности прошёл успешно. Аналогич- ным образом проверяем все остальные порты. Т ЕСТИРОВАНИЕ COM- ПОРТОВ COMпорт в промышленной автоматизации до сих пор яв- ляется чуть ли не основным интерфейсом для подключения периферийных устройств (датчиков, контроллеров, модемов и т.п.). По этой причине его тестированию следует уделить осо- бое внимание. В зависимости от типа используемого трансивера порт мо- жет функционировать как интерфейс RS232, RS422 или RS485. Во всех случаях используется один и тот же драйвер devcser8250 , совместимый с 8250, 14450 и 16550 UARTкон- троллерами. Метод тестирования меняется только в случае с RS485, поскольку это уже полудуплексный интерфейс. Для него потребуется использование специально разработанных программ диагностики. Интерфейсы RS232 и RS422 явля- ются полнодуплексными, а значит, полностью аналогичны- ми, с программной точки зрения. Начальная проверка работоспособности COM-портов Для начальной проверки работоспособности порта следует сделать «заглушку», которая соединяет приёмник трансивера с передатчиком. Обычно это контакты 2 и 3 разъемов DB9 или IDC10. Таким образом, можно будет проверить связь целиком, принимая все передаваемые в порт данные. Это так называе- мый loopback. Далее нужно запустить драйвер в текстовом ре- жиме (используя опцию e ). Строка запуска драйвера для пла- ты CPC502 (со всеми необходимыми модулями расширения для COM1, COM2 и COM3) выглядит следующим образом: # devcser8250 –t14 –T14 –e –b115200 –u1 3F8,4 –u2 2F8,3 –u3 3E8,4 & На заметку: опции –t 14 и –T 14 включают буферы FIFO приёмника и передатчика с уровнем срабатывания 14 байт (максимально допустимое значение), что значительно сни- жает нагрузку на процессор при работе драйвера. Рекоменду- ется всегда включать буферы FIFO контроллера UART хотя бы уровнем срабатывания 4 байта. В противном случае при значительной нагруженности последовательного интерфей- са на высоких скоростях обмена и при низкой производи- тельности процессора драйвер может полностью загрузить процессор и не успеть обработать принятые или переданные данные. К счастью, на практике такой режим работы малове- роятен. И все же… Следующая строка запускает утилиту qtalk на COM1: # qtalk –m /dev/ser1 Теперь, если на плате нет ошибок и драйвер был запущен с нужными параметрами, всё, что вы наберёте на клавиатуре, сразу отобразится на экране как «эхо». Выньте «заглушку» и убедитесь, что связь пропала. Проделайте тот же тест с осталь- ными портами платы. Таким образом вы проверили работоспособность всего пе- редающего и приёмного тракта COMпортов в ненагружен- ном режиме. Простая проверка связи с другим компьютером Теперь проверим совместимость COMпортов между целе- вой платой и другим компьютером, в данном случае с инстру- ментальным ПК с предустановленным QNX Momentics. Для этого нужно использовать нульмодемный кабель. Достаточ- но использовать трёхпроводной кабель – первые два провода перекрёстно соединяют приёмники и передатчики COMпор- тов, а третий соединяет их земли. Подключаем кабель. На ин- струментальном ПК запускаем драйвер UART, который авто- матически подключает существующие COMпорты из двух стандартных (2f8,3 3f8,4): # devcser8250 –t14 –T14 –e –b115200 & Запускаем qtalk , чтобы использовать ПК в качестве терми- нала связи с целевой платой. Допустим, ПК подключён через COM2: # qtalk –m /dev/ser2 Запускаем на целевой плате devcser8250 и qtalk , как это показано в предыдущем тесте. Набираем в терминале любой текст и видим его вывод на экране другого компьютера. Те- перь меняем компьютеры и проделываем то же самое на дру- гом терминале. Для усложнения теста можно закрыть qtalk и отправить в порт текстовый файл или результат работы любой текстовой утилиты: # hogs –ns1 / > /dev/ser2 Её вывод вы увидите на другом компьютере. Таким образом мы проверили связь с другим компьютером в ненагруженном режиме, исключив основные проблемы в работе COMпортов. Тестирование стабильности связи с другим компьютером Продолжим тестирование – проверим стабильность связи между компьютерами. Для этого используем специально раз- работанную программу тестирования для последовательных портов sertst . Скачать её можно со страницы технической поддержки ОС QNX. Принцип работы утилиты следующий. В режиме передачи (опция T ) утилита постоянно генерирует пакеты и передаёт их драйверу UARTконтроллера. Эти пакеты имеют определён- ный формат и содержание. При этом может меняться их дли- на (опция l ) и скважность передачи (опция d ). В режиме приёма (режим по умолчанию или опция R ) утилита прини- мает все пакеты от драйвера UARTконтроллера, подсчитыва- ет и отображает статистику. Таким образом с помощью этой В З АПИС Н УЮ К НИЖК У ИНЖЕ Н Е РА
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy