![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Tommy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 19.7.2002 Репутация: нет Всего: нет |
Эй может я чё не догоняю, но может скажете как набрать номер.
Может это и ельзя но может скажите |
|||
|
||||
suborg |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 29.4.2002 Где: Москва Репутация: нет Всего: нет |
Я так понимаю, пишешь под досом. Муторный вариант - работа с портом через inp, outp, эффективнее и проще работать через фоссил драйвер, например bnu или x00. Тогда все операции производятся через функции, предоставляемые драйвером через прерывание. Почитай Ralph's Brown Interrupt list, там найдешь номер прерывания фоссил драйвера и описание функций, обеспечивающих вывод данных в модем и обратно.
Для набора номера нужно просто послать в модем строчку вида atdp1234567 |
|||
|
||||
Tommy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 19.7.2002 Репутация: нет Всего: нет |
Наконец хоть один человек нашелся кто смог ответить на вопрос! Все фукции ввода вывода в модем я знаю, но вот что мне это если я набрать номер не могую. Спасибо!
![]() |
|||
|
||||
Tommy |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 19.7.2002 Репутация: нет Всего: нет |
Где это найти можно? |
||||
|
|||||
suborg |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 29.4.2002 Где: Москва Репутация: нет Всего: нет |
Interrupt List:
http://www-2.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html Если слёту не получится, могу прислать исходник аона для Russian Courier'а, там реализуется работа с фоссилом и соответственно посылка комант в модем. В общем если что, пиши мне на мыло. |
|||
|
||||
Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Если еще надо...
- 112 - E11.Последовательный интерфейс RS-232F E11.1. Общие сведенияF В сотав IBM PC могут входить до четырех последовательных интерфейсов, работающих в стандарте RS-232 (отечественный аналог - стык С2) и именуемых СОМ1 - СОМ4. Им выделены следующие адреса в области портов ввода-вывода: СОМ1: 3F8h-3FFh COM3: 338h-33Fh COM2: 278h-2FFh COM4: 238h-23Fh (интерфейсы СОМ3 и СОМ4 поддерживаются только в моделях PS/2). Каждый интерфейс связан с определенным уровнем контроллера прерываний: СОМ1 вызывает прерывание IRQ4 (Int 0Ch) COM2 вызывает прерывание IRQ3 (Int 0Bh) СОМ3 и СОМ4 не имеют стандартных векторов прерываний. Каждое из устройств RS-232 представляет собой контроллер 8250, оснащенный 25- или 9- штырьковым разъемом на задней стенке корпуса ПЭВМ. Этот разъем может использоваться для подключения мыши, графопостроителя или организации связи между ПЭВМ. Контакты стыка RS-232 имеют следующие наименования ---------T---------T--------------T-------------------T--------╛ ╕Название╕ Имя цепи╕Номер контакта╕ Назначение ╕Направ- ╕ ╕сигнала +---T-----+-----T--------+ ╕ление ╕ ╕ ╕EIA╕CCITT╕9-шт.╕ 25-шт. ╕ ╕ ╕ +--------+---+-----+-----+--------+-------------------+--------+ ╕ DCD ╕CF ╕ 109 ╕ 1 ╕ 8 ╕Связь модемов ╕В ПЭВМ ╕ ╕ ╕ ╕ ╕ ╕ ╕установлена ╕ ╕ ╕ RX ╕BB ╕ 104 ╕ 2 ╕ 3 ╕Принимаемые данные ╕В ПЭВМ ╕ ╕ TX ╕BA ╕ 103 ╕ 3 ╕ 2 ╕Передаваемые данные╕Из ПЭВМ ╕ ╕ DTR ╕CD ╕108/2╕ 4 ╕ 20 ╕Готовность ПЭВМ к ╕Из ПЭВМ ╕ ╕ ╕ ╕ ╕ ╕ ╕работе ╕ ╕ ╕ SG ╕AB ╕ 102 ╕ 5 ╕ 7 ╕Сигнальная земля ╕ ---- ╕ ╕ DSR ╕CC ╕ 107 ╕ 6 ╕ 6 ╕Готовность модема к╕В ПЭВМ ╕ ╕ ╕ ╕ ╕ ╕ ╕работе ╕ ╕ ╕ RTS ╕CA ╕ 105 ╕ 7 ╕ 4 ╕Запрос на передачу ╕Из ПЭВМ ╕ ╕ CTS ╕CB ╕ 106 ╕ 8 ╕ 5 ╕Готовность модема к╕В ПЭВМ ╕ ╕ ╕ ╕ ╕ ╕ ╕ к передачи ╕ ╕ ╕ RI ╕CE ╕ 125 ╕ 9 ╕ 22 ╕Индикатор вызова ╕В ПЭВМ ╕ ╕ FG ╕AA ╕ 101 ╕ -- ╕ 1 ╕Защитная земля ╕ ---- ╕ L--------+---+-----+-----+--------+-------------------+--------- Контроллер стыка RS-232 является полностью программируемым устройством; вы можете задать следующие параметры обмена: количество битов данных и стоп-битов, вид четности и скорость обмена в бодах (бит/с). - 113 - E11.2. Описание портовF Ниже описаны порты ввода-вывода для СОМ1, имеющего базовый адрес 3F8h. Обратите внимание, что порты 3F8h и 3F9h имеют разное назначение в зависимости от бита 7 порта 3F8h (т. н. бит DLAB - Divisor Latch Access Bit). Порт Операция Описание ---------------------------------------------------------------- 3F8h Запись Регистр передатчика - сюда засылается байт для передачи Чтение Регистр приемника - отсюда извлекается принятый байт Запись Если DLAB=1, то сюда засылается младший байт скорости обмена (см. порт 3F9h) 3F9h Запись Если DLAB=1, то сюда засылается старший байт скорости обмена. Скорость задается значением делителя, равным 115200/V, где V - скорость в бодах. Например, для скорости 9600 бод делитель равен 115200/9600=12=0Ch, поэтому нужно вывести 0Ch в порт 3F8h и 0 в порт 3F9h. Запись Регистр управления прерываниями (1 = разрешить прерывание): 7 6 5 4 3 2 1 0 ---T--T--T--T--T--T--T--╛ ╕0 ╕0 ╕0 ╕ 0╕ ╕ ╕ ╕ ╕ Бит: L--+--+--+--+T-+T-+T-+T-- ---- ╕ ╕ ╕ L-> 0: прерывание по приему символа ╕ ╕ L----> 1: прерывание по завершению передачи ╕ ╕ символа ╕ L-------> 2: прерывание по обрыву линии или ╕ или ошибке в линии L----------> 3: прерывание по изменению состояния модема (любой из линий CTS, DSR, RI и DCD) 3FAh Чтение Регистр идентификации прерывания. Когда произошло прерывание, здесь содержится причина, вызвавшая его: 7 6 5 4 3 2 1 0 ---T--T--T--T--T--T--T--╛ ╕0 ╕0 ╕0 ╕ 0╕ 0╕ ╕ ╕ Бит: L--+--+--+--+--+--+--+T-- ---- ╕ ╕ ╕ L--> 0: 0=есть отложенные прерывания L------> 1-2: причина прерывания: 11=ошибка или обрыв линии; сбрасывается чтением регистра состояния линии (порт 3FDh) 10=принят символ; сбрасывается чтением приемника (порт 3F8h) 01=передан символ; сбрасывается - 114 - записью символа в регистр передатчика (порт 3F8h) 00=изменение состояния модема (линий CTS, DSR, RI или DCD); сбрасывается чтением регистра состояния модема (порт 3FEh) 3FBh Чтение/ Регистр управления линией: Запись 7 6 5 4 3 2 1 0 ---T--T--T--T--T--T--T--╛ ╕ ╕ ╕ ╕ ╕ ╕ ╕ Биты: LT-+T-+T-+--+--+T-+--+--- ----- ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ L---> 0-1: число битов данных: ╕ ╕ ╕ ╕ ╕ 00=5, 01=6, 10=6, 11=8 ╕ ╕ ╕ ╕ L--------> 2: число стоп-битов: ╕ ╕ ╕ ╕ 0=1, 1=1.5 при 5 битах данных ╕ ╕ ╕ ╕ и 2 в противном случае ╕ ╕ ╕ L------------> 3-4: тип четности: ╕ ╕ ╕ X0=нет, ╕ ╕ ╕ 01=нечетная, ╕ ╕ ╕ 11=четная ╕ ╕ L-----------------> 5: постоянная четность ╕ ╕ 0=отмена постоянной четности ╕ ╕ 1=постоянный бит четности, ╕ ╕ зависит от битов 3-4: ╕ ╕ биты 3-4=01 - бит четности ╕ ╕ всегда 1 ╕ ╕ биты 3-4=11 - бит четности ╕ ╕ всегда 0 ╕ ╕ биты 3-4=X0 - без бита четности ╕ L--------------------> 6: 1=имитировать обрыв линии ╕ (посылка нулей) L-----------------------> 7: бит DLAB: 1=порты 3F8h и 3F9h для загрузки скорости обмена; 0=порты 3F8h и 3F9h в обычном режиме 3FCh Запись Регистр управления модемом 7 6 5 4 3 2 1 0 ---T--T--T--T--T--T--T--╛ ╕ 0╕ 0╕ 0╕ ╕ ╕ ╕ ╕ ╕ Бит: L--+--+--+T-+T-+T-+T-+T-- --- ╕ ╕ ╕ ╕ L-> 0: 1=установить выход DTR ╕ ╕ ╕ L----> 1: 1=установить выход RTS ╕ ╕ L-------> 2: 1=установить OUT1 (не используется) ╕ L----------> 3: 1=установить OUT2 (разрешить преры- ╕ вания от RS-232) L-------------> 4: 1=диагностический режим (посылать выход на вход стыка). - 115 - 3FDh Чтение Регистр состояния линии. Биты 1-4 вызывают прерывания по ошибке, если оно разрешено: 7 6 5 4 3 2 1 0 ---T--T--T--T--T--T--T--╛ ╕ 0╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ Бит: L--+T-+T-+T-+T-+T-+T-+T-- --- ╕ ╕ ╕ ╕ ╕ ╕ L-> 0:1=данные приняты. Сбрасывается ╕ ╕ ╕ ╕ ╕ ╕ чтением приемника ╕ ╕ ╕ ╕ ╕ L----> 1:1=потеря предыдущего символа ╕ ╕ ╕ ╕ L-------> 2:1=ошибка четности ╕ ╕ ╕ L----------> 3:1=неверный стоп-бит ╕ ╕ L-------------> 4:1=обнаружен обрыв линии ╕ L----------------> 5:1=сдвиговый регистр передатчика пуст. ╕ Можно передавать след. символ L-------------------> 6:1=регистр передатчика пуст. Нет обрабатываемых данных. 3FEh Чтение Регистр состояния модема. Биты 0-3 вызывают прерываниe по изменению состояния модема, если оно разрешено: 7 6 5 4 3 2 1 0 ---T--T--T--T--T--T--T--╛ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ Бит: LT-+T-+T-+T-+T-+T-+T-+T-- --- ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ L--> 0:1=изменилось состояние линии CTS ╕ ╕ ╕ ╕ ╕ ╕ L-----> 1:1=изменилось состояние линии DSR ╕ ╕ ╕ ╕ ╕ L--------> 2:1=изменилось состояние линии RI ╕ ╕ ╕ ╕ L-----------> 3:1=изменилось состояние линии DCD ╕ ╕ ╕ L--------------> 4: состояние линии CTS ╕ ╕ L-----------------> 5: состояние линии DSR ╕ L--------------------> 6: состояние линии RI L-----------------------> 7: состояние линии DCD Примечание: "Изменилось состояние линии..." означает, что данная линия стыка RS-232 изменила свое состояние по сравнению с последним чтением этого регистра. - 116 - E11.3. Порядок инициализации 8250F Для подготовки контроллера 8250 к работе необходимо выполнить следующие шаги. 1. Установить бит DLAB порта 3FBh и заслать делитель, задающий скорость обмена, в порты 3F8h и 3F9h. 2. Инициализировать регистр управления линией (порт 3FBh); при этом сбросить бит DLAB. 3. Инициализировать регистр управления модемом (порт 3FCh). 4. Инициализировать регистр управления прерываниями (порт 3F9h) и, если прерывания разрешены, установить адрес программы обработки прерываний от стыка RS-232. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |