Помимо вышепечеисленого сделал еще: netsh int ip reset (http://support.microsoft.com/kb/299357/ru)
Удалил ключи 25,26 из HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RasMan\PPP\EAP\ не помню где взял эту инфо, но искал по коду ошибки, наткнулся.
Потом подвигал разделы, и сделал проверку диска полную. что то там исправилось.
Возможно был косяк с файловой, и помогло только последнее, т.к. файл был недоступен изза этого. может что то из вышеперечисленого помогло. может все в сумме «сработало». в общем исправлено. Спасибо.
Эта глава посвящена асинхронному последовательному адаптеру. Его называют еще портом RS232-C, или асинхронным адаптером RS232-C. Компьютер IBM PC поддерживает интерфейс RS232-C не в полной мере, скорее разъем, обозначенный на корпусе компьютера как асинхронный последовательный адаптер, содержит некоторые из сигналов, входящих в интерфейс RS232-C и имеющих соответствующие этому стандарту уровни напряжения.
В настоящее время порт последовательной передачи данных используется очень широко. Вот далеко не полный список применений:
· связь двух компьютеров через асинхронные последовательные адаптеры с использованием специального кабеля и таких программ, как FastLinx или Norton Commander;
· подключение модемов для передачи данных по телефонным линиям;
· подключение к сети персональных компьютеров
Практически любой современный компьютер оборудован хотя бы одним асинхронным последовательным адаптером.
Основные понятия и термины
Последовательная передача данных предполагает, что данные передаются с использованием единственной линии. При этом биты байта данных передается по очереди с использованием одного провода.
Для синхронизации группе битов обычно предшествует специальный стартовый бит. После группы битов данных следует бит проверки на четность и один или два стоповых бита. Иногда бит проверки на четность может отсуствовать.
В самом конце передаются один или два стоповых бита STOP, завершающих передачу байта. Затем уровень линии передачи снова устанавливается в 1 до прихода следующего стартового бита.
Использование четности, стартовых и стоповых битов определяют протокол передачи данных. Очевидно, что передатчик и приемник данных должны использовать один и тот же протокол, иначе связь будет невозможной.
Аппаратная реализация
Компьютер может быть оснащен одним или двумя асинхронными последовательными адаптерами. Эти адаптеры расположены либо на системной плате, либо (в старых компьютерах) на отдельной плате, вставляемой в разъемы расширения системной платы.
Бывают также платы расширения, содержащие 4, 8 или большее количество асинхронных последовательных адаптеров. Их часто используют для подключения нескольких модемов к одному компьютеру.
Микросхема UART
В микросхеме 8250 есть регистры передатчика и приемника данных. При передаче выходной байт записывается в буферный регистр передатчика, откуда затем переписывается в сдвиговый регистр передатчика. После этого байт выдвигается из сдвигового регистра по битам.
Аналогично работают сдвиговый и буферный регистры приемника.
Программа имеет доступ только к буферным регистрам, копирование информации в сдвиговые регистры и процесс сдвига выполняется микросхемой UART автоматически.
Разъемы адаптера
Внешние устройства подключаются к порту ввода/вывода через разъем DB25P (имеющий 25 выводов) или DB9P (имеющий 9 выводов). Приведем разводку разъема последовательной передачи данных DB25P:
Передаваемые данные (Transmitted Data)
Принимаемые данные (Received Data)
Запрос для передачи (Request to send, RTS)
Сброс для передачи (Clear to Send, CTS)
Готовность данных (Data Set Ready, DSR)
Сигнальное заземление (Signal Ground)
Детектор принимаемого с линии сигнала (Data Carrier Detect, DCD)
Готовность выходных данных (Data Terminal Ready, DTR)
Индикатор вызова (Ring Indicator, RI)
Наряду с 25-контактным разъемом часто используется 9-контактный разъем:
Детектор принимаемого с линии сигнала (Data Carrier Detect, DCD)
Принимаемые данные (Received Data)
Передаваемые данные (Transmitted Data)
Готовность выходных данных (Data Terminal Ready, DTR)
Сигнальное заземление (Signal Ground)
Готовность данных (Data Set Ready, DSR)
Запрос для передачи (Request to send, RTS)
Сброс для передачи (Clear to Send, CTS)
Индикатор вызова (Ring Indicator, RI)
Уровни напряжения на линиях разъема составляют для логического нуля ‑15 вольт, для логической единицы +15 вольт.
Доступ к отдельным линиям возможен через порты ввода/вывода асинхронного последовательного адаптера, которые мы рассмотрим в следующем разделе. Там же будет описано назначение отдельных линий разъема.
Порты асинхронного адаптера
На этапе инициализации системы BIOS тестирует имеющиеся асинхронные последовательные адаптеры и инициализирует первые два. Их базовые адреса располагаются в области данных BIOS начиная с адреса 0000:0400h.
Первый адаптер COM1 имеет базовый адрес 3F8h и занимает диапазон адресов от 3F8h до 3FFh, второй адаптер COM2 имеет базовый адрес 2F8h и занимает адреса 2F8h. 2FFh.
Асинхронные адаптеры могут вырабатывать прерывания:
Заметим, что в некоторых компьютерах вы можете изменить базовые адреса адаптеров и номера прерываний с помощью программы BIOS Setup.
Порт 3F8h
Порт 3F8h соответствует регистру данных. Для передачи необходимо записать в этот порт передаваемый байт данных. После приема данных от внешнего устройства они могут быть прочитаны порта 3F8h.
В зависимости от состояния старшего бита управляющего слова, записываемого в управляющий регистр с адресом 3FBh, назначение порта 3F8h может изменяться. Если этот бит сброшен, порт используется для записи передаваемых данных. Если же бит установлен, порт используется для вывода значения младшего байта делителя частоты тактового генератора.
Изменяя содержимое делителя, можно изменять скорость передачи данных. Старший байт делителя записывается в порт 3F9h.
Зависимость скорости передачи данных от значения делителя частоты представлена ниже:
Скорость передачи в бодах
Порт 3F9h
Порт 3F9h используется либо как регистр управления прерываниями от асинхронного адаптера либо (после вывода в порт 3F9h байта с установленным старшим битом) для вывода значения старшего байта делителя частоты тактового генератора.
В режиме регистра управления прерываниями порт имеет следующий формат:
Разрешение прерывания при готовности принимаемых данных
Разрешение прерывания после передачи байта, когда выходной буфер передачи пуст
Разрешение прерывания по обнаружению состояния BREAK или при возникновении ошибке
Разрешение прерывания по изменению состояния входных линий на разъеме RS232-C (CTS, DSR, RI, DCD)
Не используются, должны быть равны 0
Порт 3FAh
Порт 3FAh представляет собой регистр идентификации прерывания. Считывая его содержимое, программа может определить причину прерывания.
Должно быть равно 0
Порт 3FBh
Порт 3FBh – это управляющий регистр, доступен по записи и чтению.
Длина слова в битах:
Количество стоповых бит:
Фиксация четности. При установке этого бита бит четности всегда принимает значение 0 (если биты 3-4 равны 11) или 1 (если биты 3-4 равны 01)
Установка перерыва. Вызывает вывод строки нулей в качестве сигнала BREAK для подключенного устройства
Порт 3FCh
Порт 3FCh – это регистр управления модемом. Управляет состоянием выходных линий DTR, RTS, линий, специфических для модемов OUT1 и OUT2, для запуска диагностики.
Линия OUT1 (запасная)
Линия OUT2 (запасная)
Запуск диагностики при входе асинхронного адаптера, замкнутом на его выход
Должно быть равно 0
Порт 3FDh
Порт 3FDh представляет собой регистр состояния линии.
Данные получены и готовы для чтения. Сбрасывается при чтении данных
Ошибка переполнения. Был принят новый байт данных, а предыдущий еще не был считан программой. Предыдущий байт потерян
Ошибка четности. Сбрасывается после чтения состояния линии
Обнаружен запрос на прерывание передачи BREAK: длинная строка нулей
Регистр хранения передатчика пуст, в него можно записывать новый байт для передачи
Регистр сдвига передатчика пуст. Этот регистр получает данные из регистра хранения и преобразует их в последовательный вид для передачи
Истекло время ожидания
Порт 3FEh
Порт 3FEh представляет собой регистр состояния модема.
Линия CTS изменила состояние
Линия DSR изменила состояние
Линия RI изменила состояние
Линия DCD изменила состояние
Состояние линии CTS
Состояние линии DSR
Состояние линии RI
Состояние линии DCD
Функции BIOS для работы с последовательным асинхронным адаптером
В этом разделе мы расскажем о функцях BIOS, облегчающих обслуживание двух асинхронных адаптеров, COM1 и COM2. Эти функции доступны через прерывание INT 14h.
Инииализация портов асинхронного адаптера
Первая функция с кодом 00h предназначена для инициализации портов асинхронного адаптера:
AL = параметры инициализации
Регистры на выходе:
AH = состояние порта асинхронного адаптера;
AL = состояние модема
Параметры инициализации, предаваемые в регистре AL, перечислены ниже:
Количество стоповых бит:
Скорость передачи данных в бодах:
После вызова функции 00h в регистр AH записывается состояние порта асинхронного адаптера.
Истекло время ожидания. Если установлен этот бит, другие биты не имеют значения
Регистр сдвига передатчика пуст
Буферный регистр передатчика пуст
Обнаружено состояние BREAK
Ошибка переполнения входного регистра
Регистр AL содержит байт состояния модема.
Линия CTS изменила состояние
Линия DSR изменила состояние
Линия RI изменила состояние
Линия DCD изменила состояние
Состояние линии CTS
Состояние линии DSR
Состояние линии RI
Состояние линии DCD
Передача байта
Для передачи байта используется функция 01h:
AL = передаваемый байт
Регистры на выходе:
AH = состояние порта асинхронного адаптера. Если бит 7 регистра AH установлен, произошла ошибка
Прием байта
Функция 02h предназначена для приема байта:
Регистры на выходе:
AH = состояние порта асинхронного адаптера. Если бит 7 регистра AH установлен, произошла ошибка
Определение состояния асинхронного адаптера
Состояние порта асинхронного адаптера можно узнать с помощью функции 03h:
Регистры на выходе:
AL = состояние модема;
AH = состояние порта асинхронного адаптера. Если бит 7 регистра AH установлен, произошла ошибка
Программирование асинхронного адаптера
К сожалению, среди функций программного интерфейса MS-DOS нет ни одной, обеспечивающей сколько-нибудь серьезную работу с последовательным асинхронным адаптером. Две функции прерывания INT 21h с номерами 3 и 4 предназначены для чтения и записи байтов через асинхронный адаптер. Обе эти функции имеют дело с адаптером COM1 или AUX. Функция 3 получает в регистре AL символ, принятый из адаптера, функция 4 посылает в адаптер символ, записанный в регистр DL.
Функции BIOS, обслуживающие адаптер, более разнообразны. Однако и им присущи недостатки. Например, вы не сможете установить скорость передачи более 9600 бод или использовать режим фиксации четности. Нет возможности узнать текущий режим асинхронного адаптера, отсутствуют средства для работы с модемами.
Учитывая все это, для программирования асинхронного адаптера мы рекомендуем использовать порты ввода/вывода микросхемы UART.
Инициализация асинхронного адаптера
Выполнив ввод из порта 3FBh, программа может получить текущий режим адаптера. Для установки нового режима измените нужные вам поля и запишите новый байт режима по адресу 3FBh.
Перед началом работы необходимо также проинициализировать регистр управления прерываниями (порт 3F9h), даже если в вашей программе не используются прерывания от асинхронного адаптера. Если прерывания вам не нужны, запишите в этот порт значение 0.
На этом инициализацию можно считать законченной.
Передача данных
Перед записью байта данных в регистр передатчика необходимо убедиться в том, что регистр хранения передатчика свободен, то есть убедиться в том, что передача предыдущего символа завершена.
Признаком того, что регистр передатчика свободен, является установленный бит 5 регистра состояния линии с адресом 3FDh.
Прием данных
Аналогично тому как это делается при передаче данных, перед вводом символа из порта приемника 3F8h необходимо убедиться в том, что бит 0 порта 3FDh установлен. Это означает, что символ принят из линии и находится в буферном регистре приемника.
Программа COMTEST
В листинге 6.1 приведен исходный текст программы COMTEST, использующей описанные выше способы работы с асинхроннымо адаптером.
Программа вводит символы с клавиатуры, передает их в асинхронный адаптер, а затем считывает из входного регистра этого же адаптера. Для правильной работы программы выход асинхронного адаптера должен быть соединен с его входом.
Листинг 6.1. Файл comtest\comtest.с
Использование прерываний
Для разрешения прерываний необходимо установить биты порта управления прерываниями 3F9h, соответствующие тем прерываниям, которые нужно обрабатывать.
Когда происходит прерывание, программа-обработчик прерывания должна проанализировать причину прерывания, прочитав содержимое порта идентификации прерывания с адресом 3FAh.
Не забудьте, что в конце обработчика аппаратного прерывания должна находится последовательность команд:
Может случиться так, что одновременно произойдет несколько прерываний. В этом случае будет установлен бит 0 регистра идентификации прерывания. Если такая ситуация имеет место, перед завершением обработки прерывания вам надо снова прочитать регистр идентификации прерывания и обработать следующее прерывание. Так следует поступать до тех пор, пока бит 0 регистра идентификации прерывания не станет равным нулю.
Более подробное описание способов работы с последовательным асинхронным адаптером с применением прерываний и соответствующие примеры программ вы найдете в 16 томе «Библиотеки системного программиста», который называется «Модемы и факс-модемы».
Практически каждый компьютер оборудован хотя бы одним последовательным асинхронным адаптером. Обычно он представляет собой отдельную плату, вставляемую в слот расширения компьютера или же расположен прямо на материнской (системной) плате.
При передаче данных на большие расстояния без использования специальной аппаратуры из-за помех, наводимых электромагнитными полями, возможно возникновение ошибок. Вследствие этого накладываются ограничения на длину соединительного кабеля между устройствами, соединяемыми с помощью интерфейса RS-232-C.
Ограничение по длине для соединительного кабеля по стандарту RS-232-C составляет 15,24 метра. Однако на практике это расстояние может быть значительно больше. Оно непосредственно зависит от скорости передачи данных. Согласно McNamara (Technical Aspects of Data Communications, Digital Press, 1982) определены следующие значения:
Скорость передачи в бодах
Максимальная длина (экранированный кабель), м
Максимальная длина (не- экранированный кабель), м
110
1524,0
914,4
300
1524,0
914,4
1200
914,4
914,4
2400
304,8
152,4
4800
304,8
76,2
9600
76,2
76,2
Если вы подключаете внешние устройства к разъему интерфейса RS-232-C (а также при соединении двух компьютеров нуль-модемом), предварительно выключите внешнее устройство и компьютер, а также снимите статический заряд (подсоединив заземление). В противном случае можно вывести из строя асинхронный адаптер.
Эти микросхемы UART, изготовленные по новой технологии, позволяют достичь более высокой скорости обмена данными, а также обладают новыми аппаратными возможностями. Перечислим основные характеристики различных микросхем UART, а следовательно и асинхронных последовательных адаптеров, на которых эти микросхемы установлены:
Если в вашем распоряжении находятся два компьютера, оборудованные асинхронными последовательными адаптерами, вы можете соединить их посредством нуль-модемного кобеля. Нуль-модемный кабель подключается к портам последовательных адаптеров соединяемых компьютеров.
С помощью специального программного обеспечения через нуль-модемный кабель можно обеспечить быстрое копирование данных между компьютерами. Если компьютеры не объединены в локальную сеть и вам надо переписать с одного компьютера на другой большой объем информации, использование нуль-модема является лучшим решением.
Нуль-модем представляет собой достаточно простое устройство. Он состоит из двух разъемов и кабеля, соединенных определенным образом. Если у вас под рукой есть два ответных разъема от портов асинхронного адаптера и многожильный кабель, вы легко можете изготовить нуль-модем сами.
На рисунке 7.1 представлены две схемы нуль-модемов, использующих два разъема DB25.
Рис. 7.1. Схемы нуль-модемов
Если вы собрали нуль-модем в соответствии с приведенной выше схемой, а у последовательного адаптера свободен только разъем с 9 выводами, вы можете воспользоваться специальным переходником (см. рис. 7.2).
Если в вашем распоряжении находятся два или более компьютера, то вы можете организовать обмен данными между ними без использования дискет и без установки сетевых адаптеров.
Для этого надо соединить порты асинхронных последовательных адаптеров компьютеров с помощью нуль-модемного кабеля. После этого с помощью специального программного обеспечения вы сможете получить доступ с одного компьютера, называемого рабочим, к дискам другого, называемого сервером. Работать при этом можно только за рабочим компьютером, но зато вы получаете полный доступ к дисковой подсистеме серевера.
В качестве программного обеспечения, используемого для обеспечения связи между компьютерами через порты асинхронного последовательного адаптера, можно воспользоваться программами Norton Commander или FastLynx. Операционная система MS-DOS версии 6.0 имеет в своем составе собственные средства организации связи компьютеров через нуль-модем.
Ниже мы рассмотрим использование программы Norton Commander и средств MS-DOS версии 6.0.
Использование программы Norton Commander
Использование нуль-модема и асинхронных адаптеров может оказаться очень полезным, если вам необходимо скопировать с одного компьютера на другой большой объем информации. В этом случае, если компьютеры не находятся в локальной сети, процесс копирования через дискеты может растянуться на несколько часов. Воспользовавшись нуль-модемом, вы сможете значительно ускорить процесс копирования. Ниже мы приведем краткую инструкцию, как связать два компьютера через асинхронные последовательные адаптеры.
Для каждого компьютера выберите из меню Left или Right элемент linK. При этом на экране появляется диалоговое окно Commander Link (см. рис. 7.3).
Рис. 7.3. Диалоговое окно Commander Link
Переключатель Turbo Mode, расположенный на диалоговом окне Commander Link, устанавливает повышенную скорость обмена данными. Режим Turbo Mode должен быть установлен одновременно на обоих компьютерах.
С помощью программы Norton Commander вы не можете с основного компьютера выполнять такие простейшие действия над дисками сервера, как просмотр дерева каталогов и запуск программ.
Если вас не удовлетворяют возможности программы Norton Commander, используйте средства операционной системы MS-DOS версии 6.0 или объедините ваши компьютеры с помощью локальной сети.
Использование средств MS-DOS
В состав дистрибутива операционной системы MS-DOS версии 6.0 включены программные средства для организации обмена данными между компьютерами через порты асинхронного адаптера или через параллельные порты. К ним относятся драйвер Interlnk и программа Intersvr.
С помощью драйвера Interlnk и программы Intersvr вы можете получить полный доступ с рабочего компьютера к дискам и принтерам, подключенным к серверу. При этом на рабочем компьютере появляются новые устройства, через которые вы можете осуществить обращение к дискам и параллельным портам сервера.
Таким образом, на рабочем компьютере появляются новые диски, а также параллельные порты. По своим свойствам, за исключением быстродействия, они полностью соответствуют локальным дискам и параллельным портам компьютера. Вы можете свободно записывать и считывать с этих дисков файлы, запускать программы. Если к серверу подключен принтер, то вы сможете распечатать на нем документ непосредственно с рабочего компьютера.
Рассмотрим процесс объединения компьютеров через порты асинхронного адаптера.
Для соединения двух компьютеров, вам необходимо соединить их с помощью нуль-модема. Затем подключите в файле CONFIG.SYS рабочего компьютера драйвер Interlnk:
Параметр n определяет количество дисков сервера, которое вы желаете использовать с рабочего компьютера. Если не задавать этот параметр, будет доступно только три диска:
Затем запустите на сервере программу Intersvr:
Теперь логические диски сервера и его принтерные порты становятся доступны с вашего рабочего компьютера.
В нашем случае, на рабочем компьютере появились три новых диска с именами I:, J: и K:, а также новый параллельный (принтерный) порт LPT2.
Через диски I: и J: вы можете получить доступ к дисководам A: и B:, расположенным на сервере, через диск K: к жесткому диску C: сервера, а через параллельный порт LPT2, вы можете обратиться к устройству (принтеру), подключенному к параллельному порту LPT1 на сервере.