Зависает или VISA или USB порт

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
___ bl ___
beginner
beginner
Сообщения: 10
Зарегистрирован: 26 фев 2012, 23:47
Версия LabVIEW: 2010
Контактная информация:

Зависает или VISA или USB порт

Сообщение ___ bl ___ »

Добрый день!
Делаю устройство сбора данных. Цепочка устройств такая:
1. ПК
LabView->VISA COM->USB->
2. Вычислительный модуль
USB->FT232R->STM32F4->CAN
3. Датчик
->CAN->STM32F3
Датчик связан с вычислительным модулем через CAN шину длинной 2м. Вся связка на этапе отладки питается от USB портов компьютера (с внешним источником питания та же проблема).
Скорость передачи данных в COM порту 921кБит/с (снижение скорости проблему не решает).
Данные приходят строками длинной от 100 до 300 символов через 10 мс (100 раз в сек).
Для переходника USB->FT232R думаю что нормальная.
В LabView поступают данные (считывается строка по event -> termination char). Когда я начинаю шевелить датчик или даже прикасаться к нему, то получение данных в LabView ЗАВИСАЕТ. Если открыть COM порт в программе Terminal при шевелении датчика можно наблюдать пропадание одного или нескольких символов. Похоже что в это время зависает VISA в LabView.
Что можно сделать, чтобы LabView не зависала?

Прилагаю файлы проекта:
AS_LVC0001.rar
(417.57 КБ) 233 скачивания
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 674
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2021
Откуда: Israel
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение Oleg B. »

Мой USB->RS232 нормально работает до скорости 460800
на 921600 принимает мусор

Код: Выделить всё

скорость : передача -> приём
460800 : 500000055555550 -> 500000055555550
921600 : 500000055555550 -> ƒ‚ƒ‚ƒ‚ÿÿÿÿÿÿÿƒ
 
veni, vidi, phallomorphi
___ bl ___
beginner
beginner
Сообщения: 10
Зарегистрирован: 26 фев 2012, 23:47
Версия LabVIEW: 2010
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение ___ bl ___ »

Oleg B. писал(а):Мой USB->RS232 нормально работает до скорости 460800
на 921600 принимает мусор
Дело не в мусоре. Вот что я получаю (записано в терминале):

Код: Выделить всё

5212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49,827076 36,507050 0,15 97,90 21,75 113340,100 021112
5213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 /* потеряно часть строки */
/* и строки данных между 5214 и 5541 */
5541 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49,827065 36,507050 0,06 97,50 21,75 113343,500 021112
5542 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49,827065 36,507050 0,06 97,50 21,75 113343,500 021112
Всё это на скорости 921600, даже при снижении скорости до 256000 кБит/с ничего не меняется.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение mzu2006 »

В чем выражается зависание? Не отвисает VISA node или крутится бесконечный цикл, потому что as_IsData теряет синхронизацию?
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 674
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2021
Откуда: Israel
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение Oleg B. »

Датчик связан с вычислительным модулем через CAN шину длинной 2м
А кабель не пробовал укоротить?
Был у нас в лаборатории случай.
Программатор подключается к компьютеру USB кабелем, длина которого около 30 см.
Однажды по какой-то причине вместо этого кабеля использовали другой, 2-х метровый.
На длинном кабеле программатор даже не был опознан - компьютер его не "видит".
veni, vidi, phallomorphi
___ bl ___
beginner
beginner
Сообщения: 10
Зарегистрирован: 26 фев 2012, 23:47
Версия LabVIEW: 2010
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение ___ bl ___ »

mzu2006 писал(а):Не отвисает VISA node или крутится бесконечный цикл, потому что as_IsData теряет синхронизацию?
Не отвисает VISA Wait on Event. И далее не идёт чтение с ком порта.
Error: 0xBFFF0015 . VISA Wait on Event in as_imu_read.vi->as_main.vi

Кабель другой пробовал. Даже гальваническую развязку. не помогло.
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение mzu2006 »

происходит VISA timeout. Я рекомендую вместо events использовать корректную конфигурацию последовательного порта (терминаторы + прерываться по терминатору).
после VISA timeout можно попробовать сделать close/open, если это поможет, значит "отваливается" драйвер USB<->RS232
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение Konstantin Sumenko »

Судя по вот этой фразе у вас проблемы с железом или с одним из МК: "Когда я начинаю шевелить датчик или даже прикасаться к нему, то получение данных в LabView ЗАВИСАЕТ". Первое что нужно сделать, это отвязать FT232R от STM32F4 и замкнуть FT232R на себя (в режиме эхо)- после этого проверить устойчивость связи в цепочке LabView->VISA COM->USB->FT232R. Если с этим проблем нет- проверяйте прошивки в своих МК, вполне возможно что у вас подвисает программа в МК (либо софтовая ошибка, либо аппаратная, например сбой тактирования)
___ bl ___
beginner
beginner
Сообщения: 10
Зарегистрирован: 26 фев 2012, 23:47
Версия LabVIEW: 2010
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение ___ bl ___ »

Konstantin Sumenko писал(а):Первое что нужно сделать, это отвязать FT232R от STM32F4 и замкнуть FT232R на себя (в режиме эхо)...
проверить устойчивость связи в цепочке LabView->VISA COM->USB->FT232R...(либо софтовая ошибка, либо аппаратная, например сбой тактирования)
Спасибо за совет. Я тоже грешу на ошибку тактирования, но FT232R. Пошёл разбираться.
___ bl ___
beginner
beginner
Сообщения: 10
Зарегистрирован: 26 фев 2012, 23:47
Версия LabVIEW: 2010
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение ___ bl ___ »

Проблема оказалась в следующем. Виноват FT232R. Он поддерживает стандарт USB 1.1 Full speed. Следовательно, максимальный размер буфера отправки составляет 128 байт и пакеты по USB передаются через 10 ms. Передача пакета большей длинны приводит к потере конца пакета (чаще всего termination char), поэтому VISA и порождает ошибку Error: 0xBFFF0015 . VISA Wait on Event .

Для устранения проблемы буду пробовать ft2232d в режиме USB 2.0 High speed и свяжу с контроллером через SPI или I2C.
Спасибо за помощь и советы!
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение Konstantin Sumenko »

FT232R по умолчанию работает в режиме 2.0 Full speed, 1.1 можно выставить принудительно при перепрошивке чипа. Далее, действительно при работе с USB-шными мостами подобного рода надо всегда держать в уме особенность реализации USB шины (кол-ва ендпоинтов на вход-выход, длины пакетов, тип передачи и настройки таймингов хоста (100мкс-1мс-10мс в зависимости от версии USB и скорости)), плюс размер буфера в FTDI. Помнится я гонял в одну сторону от FT на комп в непрерывном режиме с делением на пакеты (чтобы оптимально использовать встроенный буфер FTDI и передачу по USB) данные на скорости в 3мбит/с
___ bl ___
beginner
beginner
Сообщения: 10
Зарегистрирован: 26 фев 2012, 23:47
Версия LabVIEW: 2010
Контактная информация:

Re: Зависает или VISA или USB порт

Сообщение ___ bl ___ »

Проанализировал даташиты
FT232RL длинна RX=128, TX=256 байт
FT2232D длинна RX, TX buffer по 128 байт
MCP2200 длинна RX, TX buffer по 128 байт
CP2102 длинна RX = 640, TX=576 байт, т.е. мне нужен адаптер на CP2102 или разбивать на пакеты по 127 байт, что я и собираюсь сделать на данном этапе.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»