Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Почему 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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.06 c
2-1329747899
Редиска
2012-02-20 18:24
2013.03.22
Отправка запроса скрытно от пользователя


2-1329473098
harisma
2012-02-17 14:04
2013.03.22
Библиотека типов в Делфи


15-1348299645
Дмитрий Белькевич
2012-09-22 11:40
2013.03.22
Ищу компонент для создания вистовских окон. Картинка в теме.


2-1328179304
cardon
2012-02-02 14:41
2013.03.22
Подсказка в StringGrid


15-1332879004
Дмитрий С
2012-03-28 00:10
2013.03.22
Как скрыть диски для пользователя?