Текущий архив: 2002.07.04;
Скачать: CL | DM;
Вниз
ComPort Найти похожие ветки
← →
Egor111 (2002-04-07 02:45) [0]Ребят, может кто подскажет?
Короче есть прога которая работает через ComPort
с опрделенным устройством. Работает везде кроме
как на RoverBook(причем проверял коды возврата-
на ноутбуке такое ощущение что они смещены или читаются
не так!).Самое интересное, что по ходу дела это уже 2 ноутбук
не желающий работать так как надо через Com.(а все остальные
компы работают нормально)
← →
Anatoly Podgoretsky © (2002-04-07 09:12) [1]На ноутбуках часто используются порты не соответствующие спецификации
← →
gurin © (2002-04-08 03:22) [2]У меня был комп, на котором моя прога отказывалась работать с 1м com-ом. Говорила что занят. Оказался и вправду занят модемом, причем модем был USB, но при установке почему-то заменил COM1 на свой. Поставил другой COM в программе - все заработало.
← →
Viktor Aleksejev (2002-04-08 11:07) [3]Посмотри, что я написал на:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1017809448&n=2
← →
Viktor Aleksejev (2002-04-08 16:04) [4]>Egor111
Ответ на твоё письмо решил послать в режиме BROADCADT.
С COM-портами ситуация, вообще то говоря, довольно сложная. Намного сложнее, чем это себе можно представить. Большим специалистом в этом деле себя не считаю, хотя в течении многих лет пытаюсь организовать надежную связь PC через этот COM-порт с большой распределенной системой контроллеров, разработанных мною. Написал огромное количество вариантов драйверов для работы через COM-порт и под DOS и под WINDOWS. Правда в большинстве случаев контроллеры у меня работают с интерфесом
RS485 в симплексном режиме (приём и передача осуществляется по одним и тем же проводам). Симплексный режим на несколько порядков усложняет задачу т.к. в WINDOWS нет возможности ВОВРЕМЯ получить информацию, что СТОП-бит последнего передаваемого байта выдвинулся из сдвигового регистра на шину, которая необходима для быстрого переключения с передачи на приём. В режиме чистого DOS получить такую информацию в режиме постоянного опроса (но не по прерываниям) регистра UART можно.
Каждый раз мне кажется, что наконец то я добился надежной связи на всех скоростях и при разных ОС на РС. Но потом выходит новая версия ОС или появляются более быстрые РС и всё начинается сначала - снова подключается цифровой запоминающий осциллограф и начинается изучение разброса задержек в передаче сигналов. Года два тому назад думал, что написал окончательную версию драйверов, но вышла WINDOWS XP и опять DOS-овские программы не работают. Для сведения сообщаю, что при выполнении DOS-овской команды delay(1) ОС WINDOWS XP вместо задержки на 1 миллисекунду организует задержку со случайным распределением в диапазоне от 1 до 150 мс (это я наблюдал по цифровому запоминающему осциллографу). В интернете полно жалоб и стонов о том, что программы в течении многих лет успешно работающие под W95/98/МЕ перестали работать при переходе на NT и, особенно, XP.
Например, команда Link в NortonCommander под WINDOWS XP не работает. Даже драйверы известной фирмы "Willies" Computer Software Co", специализирующейся ТОЛЬКО на разработке драйверов COM-порта, перестали работать под WINDOWS 2000.
Это вступление приведено только для того, чтобы показать сложность проблемы и невозможность дачи точного ответа. Необходимо знать какие ОС на РС и ноутбуке, программа DOSовская WINDOWSкая, если WINDOWSкая, то 16- или 32-разрядная. Боюсь, что заочно диагноз поставить не удастся.
Продолжение следует. (Не берет письма более 5000 сиволов).
← →
Viktor Aleksejev (2002-04-08 16:06) [5]>Egor111 Продолжение:
Из конкретных рекомендаций могу только предложить следующее:
1. На ноутбуке пойди на Control Panel\System\Device Manager\Ports (COM & LPT)\Communications Port (COM1/2)Properties.
На вкладке General посмотри, не установлена ли птичка в Device usage. Если установлена, то убери. Если не установлена, то поставь т.к. если программа использует свой драйвер, то возможен конфликт системного драйвера и драйвера программы. Такой конфликт возникает, например, при установке вышеупомянутого драйвера фирмы Willies.
На вкладке Resources убедись, что нет конфликта за адреса регистров и прерывания и их значения в допустимых диапазонах.
На вкладке Port Settings\Advanced можно поиграть с настройками FIFO (First Input First Output) - это такой аппратурный буфер UART, который позволяет накапливать принятые и передаваемые байты и т.о. значительно разгружает ОС - без этого буфера ОС при медленных процессорах и большой скорости передачи может просто не успевать принимать байты - поэтому если есть FIFO, то для Receive Buffer лучше поставить Hight. Для Transmit Buffer лучше поставить Low - промежуток между передаваемыми байтами будет длиннее, что облегчит приём на противоположной стороне.
Вообще эти настройки, КРОМЕ адресов портов и IRQ, нужно установить точно такими же как и на РС с которым данное устройсво связывается.
2. Как я уже упоминал на
http://delphi.mastak.ru/cgi-bin/forum.pl?ook=1&id=1017809448&n=2
производители многих портативных компьютеров не сооблюдают стандарты на физические параметры канала RS232. Если приёмная сторона (по стандарту) требует, чтобы логический "0" передавался напряжением не менее +3В, а передатчик шинного драйвера (шинный драйвер - это микросхема) выдаёт только 2.5В, то тут никакими настройками компьютера помочь никак невозможно. В этом случае возможно решение проблемы только аппаратурными средствами - установка усилителей сигналов шины.
В письме лично тебе, прилагаю простейшую программу, которую я иногда использую для наладки последовательного канала. Запусти её на ноутбуке командой, например,
TEST485.exe COM1 9600
(Если запустишь её без параметров (т.е TEST485.exe), то она распечатает на экране возможные значения параметров).
После этого подашь команду "4" - Transmitt byte. По этой команде программа будет передавать в бесконечном цикле байт 0х55 (можно изменить по команде 9-Options). После этого амплитуду и форму сигналов на шине можно очень хорошо рассмотреть с помощью простейшего осциллографа и электронщика.
Если уровни этих сигналов менее 3В или однополярные, то без хорошего электронщика не обойтись.
Если каким то образом удастся рещить эту проблему, то, пожалуйста, напиши здесь об этом. Я думаю многим будет интересно узнать об этом.
Страницы: 1 вся ветка
Текущий архив: 2002.07.04;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.013 c