Stan Huang Ответов: 2

Это проблема совместимости с RS-232?


I've been working on a VxWorks-based IPC. My mission is now to update S/W for changing touch panel, which is connected to the mother board through RS-232. According to relative data & original codes, what I need to update is from interpretation of touch panel's protocol. The old & new panel's baud rates are both 9600. But unfortunately, IPC can't even get characters from new touch panel correctly. Below are what I did as experimenting on old & new panels:

1. Coonect PC terminal tool to new panel: Panel sends packets to PC correctly.
2. Connect PC terminal tool to old panel: Panel sends packets to PC correctly.
3. Old panel connecting to IPC mother board: working fine.
4. Use scope to measure the pulse of signal from RS-232 of both panels: the voltage are the same.

From the above data, it seems that IPC should be able to receive character string from new panel. But the result is that IPC can't get character from the new panel. Is there anything I still missed to check? What makes IPC can't get characters from new panel?


Что я уже пробовал:

Обсуждал с моими коллегами, гуглил, отправлял в другую группу, но был отклонен и удален.

2 Ответов

Рейтинг:
2

CPallini

Цитата:
Терминал инструмент Coonect компьютера на новый панель: панель посылает пакеты к ПК правильно.

Цитата:
Но в результате IPC не может получить символ из новой панели

Похоже, что исходная программа не в состоянии принимать (правильно отправленные) пакеты. Это может быть проблема протокола. ознакомьтесь с документацией старой и новой сенсорной панели,чтобы уточнить ее.


Stan Huang

На мой взгляд, пока это не протокольный вопрос. Там может быть проблема с протоколом, но она должна возникнуть после получения символьной строки. То есть даже исходные коды не могут правильно интерпретировать протокол новой панели, по крайней мере, она должна уметь принимать символьную строку. Теперь проблема в том, что IPC не может получать символы из новой панели.

CPallini

Ну, у вас есть возможность отлаживать код на очень низком уровне, так что вы действительно можете увидеть, если ничего не поступает из последовательной линии. В таком случае следуйте совету Гриффа и проверьте все настройки последовательного порта.

Рейтинг:
13

OriginalGriff

RS232-это забавный зверь временами - это не только скорость передачи данных, которая настраивается, это также биты на символ, четность, стоп-биты и линии управления.
Начните с проверки с помощью Hyperterminal (или аналогичного), что компьютер получает аналогичные (или лучше идентичные) данные с обеих панелей, Когда вы используете их без изменения каких - либо параметров связи-если вы это делаете, то основные коммуникации в порядке, и ваше программное обеспечение не должно нуждаться в каких-либо изменениях параметров. Затем начните смотреть на управляющие линии (А 232 имеет несколько выходных линий с Вашего компьютера, которые могут быть использованы для предотвращения передачи удаленного устройства, поэтому проверьте RTS/CTS, DTR/DSR/DCD для начала и убедитесь, что они одинаковы, когда вы сравниваете свое программное обеспечение с терминальной программой.
Когда у вас есть передача данных, вы можете начать смотреть на содержимое данных, которое получает ваше программное обеспечение, и имейте в виду, что если панели поставляются от разных производителей, они могут не использовать один и тот же протокол, поэтому пакеты могут сильно отличаться.
Я бы изменил программное обеспечение, чтобы регистрировать необработанные входные данные в файл, и запускал старые и новые панели через один и тот же диапазон тестов, а затем изучал данные с помощью шестнадцатеричного редактора, чтобы выяснить, что они посылают.

Извините , но мы не можем просто сказать вам "сделай это", потому что здесь слишком много переменных! Вам придется провести некоторые исследования и эксперименты, чтобы выяснить, что происходит, прежде чем вы сможете начать кодирование для любых различий.


Stan Huang

Ваши предложения дают очень хорошую ссылку. Теперь выяснилось, что это проблема с подключением H/W. Я потратил много времени, чтобы компенсировать проблему отсутствия поддержки H / W инженера.