Re[4]: Драйвер для Com-порта
От: kai62  
Дата: 28.12.04 08:03
Оценка:
Здравствуйте, ArtSh, Вы писали:

AS>Здравствуйте, kai62, Вы писали:


AS>Если Вы решили писать все сами, то тогда надо разобраться в програмных тонкостях.

AS>COM порт представляет собой (с програмной точки зрения) 7 смежных адресов ввода-вывода, причем некоторые(в зависимости от установленных бит) играют разную роль. Так смещение 0 — THR/RBR, при DLAB = 0, и DLL при DLAB = 1;
AS>THR — промежуточный регистр передатчика(соответственно при записи),
AS>RBR — буферный регистр принимаемых данных(соответственно при чтении),
AS>DLL — регистр младшего байта делителя частоты.
AS>DLAB — 7 бит регистра со смещением 2(FCR).

AS>Кроме того, необходимо анализировать ошибки, возникающие при передаче/приеме, так если Вы попробуете прочитать из порта, к которому ничего не подключено, или не совпадают частоты передачи данных, то Вы увидите 0xFF, и код ошибки в соответствующем регистре ....

AS>Так что будте очень внимательны, и прочитайте какую нибудь книгу про компьютерное железо, или воспользуйтесь стандартным драйвером, по моему, очень тяжело найти задачу, с COM портом, которую нельзя было бы решить в user-mode

Здравствуйте!
Все тонкости работы с СОМ-портом мне известны.
Под ДОС у меня все работает нормально!
Ведь все дело в том, что под в драйвере под WINDOWS при чтении любого регистра в диапазоне 3f8-3ff я получаю ff, хотя, к примеру, исходное состояние регистра статуса линии 0х60.
Тут по моему все дело в ACPI, оно отключает питание портов, и каким то образом надо его заставить сделать обратное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.