Разработка блока АЦП

       

Разработка программного обеспечения


Чтобы с модулем АЦП можно было работать в DOS как с логическим устройством, требуется драйвер. Устанавливаемые драйверы устройств  могут быть написаны только на  языке ассемблера.  Они могут обслуживать два типа  устройств: символьные и блочные - в зависимости от того, как устройство  обрабатывает данные. Блочные устройства  обмениваются блоками данных, поэтому они занимаются накоплением данных. Символьные устройства обмениваются данными побайтно,  поэтому  они  лучше  подходят  для управляющих

устройств, таких как данный модуль АЦП. Программа драйвера устройства содержит три части:

1) заголовок драйвера, который именует устройство и содержит  информацию об остальных частях драйвера,

2)       стратегия драйвера, которая  хранит  информацию  об области данных, создаваемой  MS  DOS, которая называется заголовком запроса,

3)       обработчик прерывания устройства, который и содержит код, управляющий устройством (здесь не имеется в виду аппаратное прерывание от устройства).

;режимы:

;1) чтение 1 байта - чтение выборки с ожиданием флага готовности;

;2) чтение 2х байтов - чтение выборки и флага готовности без его ожидания;

;3) чтение более 2х байтов - чтение нескольких выборок с ожиданием флага готовности

;   между чтениями;

;4) запись 1 байта (0/1) - выбор канала.

.286

;заголовок драйвера

CSEG          SEGMENT PUBLIC 'CODE'      ;устанавливаем кодовый сегмент

              ORG    0                    ;эта строка необязательна

              ASSUME CS:CSEG,DS:CSEG,ES:CSEG

ADC_DRV       PROC FAR                   ;драйвер это далекая процедура

              DD     0FFFFFFFFH           ;адрес следующего драйвера

              DW     8000H                ;байт атрибутов

              DW     DEV_STRATEGY         ;адрес процедуры стратегии

              DW     DEV_INTERRUPT        ;адрес процедуры прерывания

              DB     'ADC     '           ;имя устройства (дополненное пробелами)

CHANNEL              DW     0                    ;номер канала



Содержание раздела