Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Почему Com-порт может сбоить?   Найти похожие ветки 

 
Artem   (2012-02-22 20:59) [0]

Написал 2 простенькие программы для чтения и записи...
Когда ноутбук читает, а ПК записывает (в основном) все нормально...
Когда ПК читает, а ноутбук записывает (в основном хотя и читает немного) в некоторых случаях иногда сбоит. Сбоит причем конкретно при передачи определенного вида посылки и не всегда-передаются неверные данные... Может ли быть проблема в кабеле??


 
Inovet ©   (2012-02-22 21:06) [1]

> [0] Artem   (22.02.12 20:59)
> Может ли быть проблема в кабеле??

Может. Попробуй уменьшить скорость.


 
Artem   (2012-02-22 21:07) [2]

Inovet ©   (22.02.12 21:06) [1]
Скорость - 9600. Куда меньше?


 
Inovet ©   (2012-02-22 21:08) [3]

> [1] Inovet ©   (22.02.12 21:06)

И COM прорты разные бывают, для RS232 ограничения в 15 м длины кабеля, для других и километр можно.


 
Dimka Maslov ©   (2012-02-22 21:09) [4]

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


 
Inovet ©   (2012-02-22 21:09) [5]

> [2] Artem   (22.02.12 21:07)
> Скорость - 9600. Куда меньше?

Поверь кабель.


 
Artem   (2012-02-22 21:09) [6]

Inovet ©   (22.02.12 21:08) [3]
Кабель не больше 2 метров...


 
Artem   (2012-02-22 21:10) [7]

Inovet ©   (22.02.12 21:09) [5]
А как его проверить?


 
Inovet ©   (2012-02-22 21:13) [8]

> [7] Artem   (22.02.12 21:10)
> А как его проверить?

Другой хотя бы подключить.


 
Inovet ©   (2012-02-22 21:15) [9]

> [8] Inovet ©   (22.02.12 21:13)
> Другой хотя бы подключить.

Этот к другим компьютерам.


 
Германн ©   (2012-02-22 21:18) [10]


> Сбоит причем конкретно при передачи определенного вида посылки

А именно?


 
Artem   (2012-02-22 21:19) [11]

Inovet ©   (22.02.12 21:15) [9]
Я пробовал между ноутбуком и одним компьютером, и ноутбуком и другим компьютером - всё равно возникает ошибка...


 
Artem   (2012-02-22 21:23) [12]

Германн ©   (22.02.12 21:18) [10]

> Сбоит причем конкретно при передачи определенного вида посылки

А именно?


1fh 67h c CRC1 CRC2,
здесь с - символ от A до Z
CRC1, CRC2 - два байты CRC суммы посылки
Самое интересное что когда посылаешь посылку 66h, 68h сбоев не происходит.
Я это посылку посылаю 26 раз для каждого символа... И на одном из них происходит сбой...


 
Artem   (2012-02-22 22:05) [13]

Да и когда пытаешься переслать его снова, снова та же ошибка...


 
Германн ©   (2012-02-22 22:50) [14]

Что портмон показывает на передатчике и на приемнике?


 
Artem   (2012-02-22 23:18) [15]

Германн ©   (22.02.12 22:50) [14]
На ноутбуке 7ка - portmon не идет. А на PC показывает, что пришли искаженные данные...


 
Германн ©   (2012-02-22 23:32) [16]

Каким образом они искажены?


 
Artem   (2012-02-22 23:42) [17]

Германн ©   (22.02.12 23:32) [16]
00h ffh 00h 6fh c7h
вместо вышеупомянутой посылки...


 
Германн ©   (2012-02-23 00:00) [18]

Компьютеры соединены стандартным кросс кабелем?


 
Artem   (2012-02-23 00:05) [19]

Германн ©   (23.02.12 00:00) [18]
Для ноутбука использую USB-to-RS232 cable. К нему подсоединяю COM-кабель , не самодельный... Что значит кросс - не знаю...


 
tesseract ©   (2012-02-23 00:24) [20]


> Для ноутбука использую USB-to-RS232 cable.


Очень редко видел нормальные конвертеры usb-rs232. Они работают через драйвер-фильтр и задержки там сильно увеличиваются. Да и постоянно фонят - необходимо чистить буфер порта.


 
Германн ©   (2012-02-23 00:33) [21]


> К нему подсоединяю COM-кабель , не самодельный...

Я почему спрашиваю. По "посылкам" для меня очевидно, что конечной целью вашей задачи является работа с нестандартным внешним железом. Если ошибаюсь, поправьте. А там не всегда используются стандартные кабели. Так что вышеприведенная цитата не дает полной ясности.


 
Германн ©   (2012-02-23 00:36) [22]


> tesseract ©   (23.02.12 00:24) [20]

Задержки тут очевидно не при чем (по крайней мере напрямую). Автор должен получить на приемнике 5 байт. Портмон подтверждает, что принято 5 байт, но значения этих байт не такие.


 
Artem   (2012-02-23 00:48) [23]

Германн ©   (23.02.12 00:33) [21]
Внешнее железо, пока ещё один ноутбук с установленной DOS и программой (читалкой) на нём... Я для теста написал программку которая как бы частично заменяют ту... Ошибка все равно вылезает. Хотя я тестировал без коннектора USB-COM.


 
Германн ©   (2012-02-23 01:19) [24]


> Artem   (23.02.12 00:48) [23]
>
> Германн ©   (23.02.12 00:33) [21]
> Внешнее железо, пока ещё один ноутбук с установленной DOS
> и программой (читалкой) на нём... Я для теста написал программку
> которая как бы частично заменяют ту... Ошибка все равно
> вылезает. Хотя я тестировал без коннектора USB-COM.
>

Можете (если хотите) выслать мне на почту в анкете техзадание и описание железки. Посмотрю.


 
Германн ©   (2012-02-23 01:25) [25]

P.S.
Меня смущает "а ноутбук записывает (в основном хотя и читает немного)".


 
Artem   (2012-02-23 14:19) [26]

Германн ©   (23.02.12 01:19) [24]
Зачем ТЗ? Когда не работает даже простейший пример программки... Я просто посылаю туда вышеприведенные байты, а оттуда читаю, без пересылки - и происходит эта ошибка...

P.S.
Суть задание простое: нужно написать файловый менеджер для работы с документами на устройстве...


 
Лукошко   (2012-02-24 12:26) [27]


> Artem   (22.02.12 23:18) [15]

Портмон нормально работает на семёрке, по крайней мере - на 32битной. Сам юзаю постоянно


 
VICTOR_   (2012-02-24 13:59) [28]

Попробуй изменить настройки для COM - порта в Windows.
Нажми кнопку - установить по умолчанию - затем ОК (если Тебе настройки по умолчанию подходят).
Еще проверь буферы Fifo. В большинстве случаев рекомендуется - ставить галочку и бегуноки - в крайне правое положение.


 
VICTOR_   (2012-02-24 14:02) [29]

>>>Портмон нормально работает на семёрке
Уже несколько раз стыкался, что Portmon - ничего не показывает. В отличие от Hyperterminal, который на том же компьютере все показывает


 
Loginov Dmitry ©   (2012-02-24 21:51) [30]


> Почему Com-порт может сбоить?


Существует масса вариантов, например:
- на устройствах выставлены разные скорости СОМ-портов
- заданы специфические настройки СОМ-порта (там можно много чего понастраивать)
- изредка попадаются хреновые юарты, не выдерживающие заданной частоты
- Hyperterminal (если он используется) после "автоопределения" скорости начинает корежить байты. За это сильно его не люблю
- хреновый преобразователь USB<->RS232
- глючат драйвера виртуального СОМ-порта
- переломан кабель
- плохо пропаян разъем DB9
- слишком сильные помехи
- слишком слабый ноутбук, не справляющийся с "чудовищной" скоростью 1000 байт/с :)
- отключен FIFO, что приводит к десятикратному увеличению кол-ва прерываний процессора (правда врядли оно имеется в USB, не знаю)
- самое банальное - криво написанный автором софт :)

В такие случаях Portmon - поистине незаменимое средство.


 
Германн ©   (2012-02-25 02:02) [31]


> Artem   (23.02.12 14:19) [26]
>
> Германн ©   (23.02.12 01:19) [24]
> Зачем ТЗ? Когда не работает даже простейший пример программки.
> .. Я просто посылаю туда вышеприведенные байты, а оттуда
> читаю, без пересылки - и происходит эта ошибка...
>

Простейший пример - это когда нет речи о нестандартных железяках!
Просто хотел помочь. Но если вы не хотите раскрывать подробности даже в личном общении, тогда я пас.


 
Забаненный   (2012-02-25 14:50) [32]


> Германн ©   (25.02.12 02:02) [31]

ну, это же Секретный-Очень-Модуль!


 
Artem   (2012-02-25 20:37) [33]

Loginov Dmitry ©   (24.02.12 21:51) [30]
Спасибо
И вообще всем спасибо за поддержку...
Приобрел карточку PCI с тремя выходами: 2 RS232 и LPT - пока сбоев вроде бы нет... Видно дырявый USB-конвертер...


 
Artem   (2012-02-26 13:52) [34]

Хотя нет читает иногда неправильно...


 
Лукошко   (2012-02-27 11:52) [35]


> VICTOR_   (24.02.12 14:02) [29]
> Уже несколько раз стыкался, что Portmon - ничего не показывает. В отличие
> от Hyperterminal, который на том же компьютере все показывает


Есть небольшой глюк с "Capture events" - иногда включение приёма не срабатывает, это да. Ну дык и не пользуйтесь этой фичей :o)
Всё остальное работает дюже надёжно, уже года 4 Портмоном пользуюсь.


 
VICTOR_   (2012-02-27 11:59) [36]


> Есть небольшой глюк с "Capture events" - иногда включение
> приёма не срабатывает, это да. Ну дык и не пользуйтесь этой
> фичей :o)
>Всё остальное работает дюже надёжно, уже года 4 Портмоном пользуюсь.

А что значит - не пользуйтесь? Толку от PortMon - если он ничего не показывает. Или может есть другой метод?


 
Лукошко   (2012-02-27 14:53) [37]

Дык я про что: у меня PortMon всё показывает, под win7x32
У вас я не знаю, попробуйте WireShark какой-нибудь...
DTR/RTS установлены правильно? Натыкался на преобразователи, которые криво работали с DTR (Китай гольный, неполное соответствие спецификациям)


 
VICTOR_   (2012-02-27 16:40) [38]

Я же написал Hyperterminal - все показывает.
Моя программа - тоже все видит и ловит сигнал.
PortMon - на том же компьютере с теми же настройками ничего не показывает. В самом PortMon - никаких настроек нет - указываешь номер порта и все.
Сейчас к сожалению не имею девайса под рукой, чтобы детально исследовать что и чему.


 
tesseract ©   (2012-02-27 21:47) [39]


> PortMon - на том же компьютере с теми же настройками ничего
> не показывает. В самом PortMon - никаких настроек нет -
> указываешь номер порта и все.


Бывают комфликты с другими драйвер-фильтрами. Но как правило просто неправильно настроен фильтр событий в портмон-е.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.074 c
2-1337694534
toropoff
2012-05-22 17:48
2013.03.22
ADO


15-1335682929
Валера
2012-04-29 11:02
2013.03.22
Почему не работает TTrackBar.OnExit?


15-1343987497
AV
2012-08-03 13:51
2013.03.22
Quip 2012. Как раз и навсегда изменить порт с 433 на 5190?


15-1341592927
alexdn
2012-07-06 20:42
2013.03.22
Вот такая реклама


2-1334968397
bobby
2012-04-21 04:33
2013.03.22
Помогите с TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский