|
COM порт на современных материнках, Есть ли нюансы работы? |
|
|
|
Aug 4 2005, 07:46
|

Частый гость
 
Группа: Свой
Сообщений: 111
Регистрация: 19-11-04
Из: Украина
Пользователь №: 1 176

|
Есть некий чорный ящик который управляется с персоналки по последовательному порту (25 контактов). До этого времени этой персоналкой был 286 Но он успешно умер и мы решили поставить новую машину. Подключили через переходник 9 в 25 к порту. Программа управления написана в ДОСе. Проблема в том что теперь нет связи с этим чорным ящиком. Программа выдает сообщение что идет конект, но на этом все. В чем тут проблема. У меня пока один вариант, что программа привязана к апаратуре, и возможно использует нестандартное управление портом (нештатные режимы) которое на современных материнках не проходит. Может ли такое быть? Есть ли другие варианты и что можно сделать?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 16)
|
Aug 4 2005, 10:24
|
Частый гость
 
Группа: Свой
Сообщений: 129
Регистрация: 15-07-05
Пользователь №: 6 828

|
Цитата(Angel @ Aug 4 2005, 10:46) Подключили через переходник 9 в 25 к порту. На самых первых персоналках хотя и крайне редко, но все ж таки бывали случаи установки COM-порта в полной конфигурации – со всеми предусмотренными сигналами. Да вот только на практике обычно старались ограничиться минимумом – отсюда и появился урезанный вариант с 9-контактным разъемом. Так что если у Вас тот самый редчайший случай использования ВСЕХ сигналов, то переход 9->25 не пройдет. Цитата(Angel @ Aug 4 2005, 10:46) Программа управления написана в ДОСе. Проблема в том что теперь нет связи с этим чорным ящиком. Программа выдает сообщение что идет конект, но на этом все. В чем тут проблема. У меня пока один вариант, что программа привязана к апаратуре, и возможно использует нестандартное управление портом (нештатные режимы) которое на современных материнках не проходит. Под нестандартным управлением портом обычно подразумевается работа с портом напрямую, без использования служб ОС и BIOS. Как правило, при запуске такой программы в многозадачных ОС ее нормальная работа не гарантируется. Попробуйте запустить программу в чистой DOS'е ( не сеанс MS-DOS, а именно загрузка в режиме DOS) Цитата(vvs157 @ Aug 4 2005, 12:14) На старых машинах COM на 25 обычно был COM2. На новых матерях обычно только один ком-порт. Попробуйте на машине с двумя "железными" портами. Для начала можно в настройках имеющийся последовательный порт принудительно назначить как COM2… Удачи! ДобавленоВ те времена бывало, что настройку COM-порта для одной программы надо было предварительно делать либо из другой, либо из командной строки. Попробуте запустить Вашу программу с полным использованием того ПО, которое использовалось на старом оборудовании - в первую очередь посмотрите, что прописано в CONFIG.SYS и AUTOEXEC.BAT
|
|
|
|
|
Aug 4 2005, 10:25
|

Частый гость
 
Группа: Свой
Сообщений: 111
Регистрация: 19-11-04
Из: Украина
Пользователь №: 1 176

|
Цитата(vvs157 @ Aug 4 2005, 12:14) На старых машинах COM на 25 обычно был COM2. На новых матерях обычно только один ком-порт. Попробуйте на машине с двумя "железными" портами. На маме есть COM2 но ек выведен наружу. Я сделал кабель на 25 и подключил на этот порт. Потом сделел заглушку и проверил порт Checkit-ом - все тесты отлично прошли. Но с устройством все равно не работает
|
|
|
|
|
Aug 4 2005, 10:44
|

Частый гость
 
Группа: Свой
Сообщений: 111
Регистрация: 19-11-04
Из: Украина
Пользователь №: 1 176

|
Цитата(TsAN @ Aug 4 2005, 13:24) 1. На самых первых персоналках хотя и крайне редко, но все ж таки бывали случаи установки COM-порта в полной конфигурации – со всеми предусмотренными сигналами. Да и на практике обычно старались ограничиться минимумом – отсюда и появился урезанный вариант с 9-контактным разъемом. Так что если у Вас тот самый редчайший случай использования ВСЕХ сигналов, то переход 9->25 не пройдет. 2. Под нестандартным управлением портом обычно подразумевается работа с портом напрямую, без использования служб ОС и BIOS. Как правило, при запуске такой программы в многозадачных ОС ее нормальная работа не гарантируется. Попробуйте запустить программу в чистой DOS'е ( не сеанс MS-DOS, а именно загрузка в режиме DOS) 3. Для начала можно в настройках имеющийся последовательный порт принудительно назначить как COM2… Удачи! 1. А какие это все предусмотренные сигналы? 2. Я запускаю программу в чистой дос. Потому как на машине винта нет и не нужно - программа грузится с дискетки. 3. Это тоже пробывал - ничего
|
|
|
|
|
Aug 4 2005, 12:41
|
Частый гость
 
Группа: Свой
Сообщений: 129
Регистрация: 15-07-05
Пользователь №: 6 828

|
Цитата(Angel @ Aug 4 2005, 13:44) 1. А какие это все предусмотренные сигналы? К сожалению, по памяти не скажу - надо в букварь смотреть. В придачу к двум цепям передачи данных там было еще поболе десятка проводов. Наверное, можно просто посмотреть количество задействованных контактов: если окажется 9 или менее, то налицо частный случай последовательного интерфейса, известного как COM-порт, и причина неработоспособности явно не в этом. Цитата(Angel @ Aug 4 2005, 13:44) 2. Я запускаю программу в чистой дос. А конфиги те же? Если нет, попробуйте все же запустить с теми же конфигами, что и на рабочей системе. Маловероятно, но вдруг. У советского аналога нумерация контактов не соответствует оригинальному DB-25, хотя по размерам сочленяются. Возможен и такой вариант: программная реализация необходимых для нормальной работы временнЫх задержек (иногда даже с игнорированием сигналов квитирования). При этом задержка на более быстрой машине отсчитывается раньше, чем управляемое устройство перейдет в нужное состояние. Конечно, нормальные программы это применять не должны, но уж очень просто и с минимальными затратами все реализуется - потому и встречается довольно регулярно, особенно когда оборудование в единичных экземплярах. Удачи!
|
|
|
|
|
Aug 4 2005, 14:09
|

Частый гость
 
Группа: Свой
Сообщений: 111
Регистрация: 19-11-04
Из: Украина
Пользователь №: 1 176

|
Цитата(vvs157 @ Aug 4 2005, 16:16) Если прога писана на Борландовском Паскале - то 100% работать не будет из-за неправильной калибровке программных задержек - слишком быстрая машина Пробовал на 286 и 486 все рабоает. Думаю не в задержках дело.
|
|
|
|
|
Aug 4 2005, 15:21
|

Частый гость
 
Группа: Свой
Сообщений: 111
Регистрация: 19-11-04
Из: Украина
Пользователь №: 1 176

|
Цитата(vvs157 @ Aug 4 2005, 17:17) Полный ком-порт действительно использует почти все из 25 контактов. Там помимо основного канала предусмотрен еще и резервный. Ни разу в живую реализкции не встречался. У очень старых принтеров (середина 80-х) с RS видел использование нестандартной распиновки, использующую часть линий из резервного канала. Где можна найти раскладку полного порта (25 контактов)?
|
|
|
|
|
Aug 4 2005, 15:28
|

Частый гость
 
Группа: Свой
Сообщений: 111
Регистрация: 19-11-04
Из: Украина
Пользователь №: 1 176

|
Цитата(Angel @ Aug 4 2005, 18:21) Цитата(vvs157 @ Aug 4 2005, 17:17) Полный ком-порт действительно использует почти все из 25 контактов. Там помимо основного канала предусмотрен еще и резервный. Ни разу в живую реализкции не встречался. У очень старых принтеров (середина 80-х) с RS видел использование нестандартной распиновки, использующую часть линий из резервного канала. Где можна найти раскладку полного порта (25 контактов)? Есть такое http://www.bnoack.com/index.html?http&&&ww...32-port-25.html. Думаю что это то про что Вы говорите.
|
|
|
|
|
Aug 4 2005, 18:20
|
Частый гость
 
Группа: Свой
Сообщений: 129
Регистрация: 15-07-05
Пользователь №: 6 828

|
Цитата(Angel @ Aug 4 2005, 17:09) Пробовал на 286 и 486 все рабоает. Думаю не в задержках дело. На 486 COM-порт расположен на маме? Если да - оборудование использует 9-ти проводной RS-232 разъем. Если на карте (плате расширения) - как подключен разъем DB-25. Если ленточным кабелем на 9 или 10 проводников - тоже. Если COM-порт расположен на мультикарте - то же, на них полный RS-232C уже не монтировался. Относительно задержек. Реально задержка должна быть с некоторым запасом, иногда весьма значительным. В то время как, несмотря на значительную разницу в быстродействии ЦП, реальные скорости опроса портов в системах на основе 286 и 486 - если в последнем порт не поключен к VLB - практически одинаковы: в обеих случаях порт сидит на одной и той же 8 МГц или около того ISA-шине, так что опросить его состояние, скажем, 1000 раз по времени будет практически одно и то же. Попутно замечание. Чисто программная задержка на разных машинах будет разная независимо от языка программирования, ибо в основе ее - время исполнения некоторой последовательности команд. Хотя вполне возможно, что для различных языков отношение задержек может быть и различным. И еще. Мысль, высказанная ув. moonrock: Цитата(moonrock @ Aug 4 2005, 15:45) 2. Может ЧЯ не нравятся уровни сигналов. Или выходное сопртивление. так же один из основных претендентов на причину неработоспособности. Особенно это относится к COM-портам, смонтированным на маме. Во всяком случае, для сравнения уровней сигналов на работающем и неработающем оборудовании причина эта весьма веская... Удачи!
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|