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

Выбор алгоритма взаимодействия с ЭВМ.


Шина ISA предусматривает следующие режимы обмена с подключенными к ней внешними устройствами:

1. обмен с устройством ввода/вывода

2.        обмен с памятью

3.        прямой доступ к памяти

Вышеперечисленные режимы могут быть синхронными, когда устройство успевает провести обмен за цикл шины, и асинхронными, когда устройство не успевает и выдает сигнал I/O CH RDY для приостановки обмена. 8- и 16-разрядный обмен производится в зависимости от сигнала -I/O CS 16, выдаваемого устройством.

Легче всего реализуем обмен с устройством ввода/вывода, а другие режимы не имеют перед ним существенных преимуществ в данной ситуации. Синхронный обмен в данном случае невозможен, т.к. время преобразования АЦП (7,5 мкс) больше допустимого времени задержки цикла шины сигналом I/O CH RDY (2,5 мкс). Деваться тут некуда - пусть будет асинхронный.

Асинхронные режимы взаимодействия устройства с программным обеспечением:

1.        опрос флага готовности

2.        прерывания

Прерывания хорошо годятся в случае одиночных выборок, но если чтение будет производиться блоками, обработчик прерываний будет вызываться постоянно, что может существенно замедлить работу системы в целом. Поскольку предпочтительно чтение блоками, выбран опрос флага готовности. Поскольку 8 бит уже заняты данными, выбран 16-разрядный режим обмена, чтобы читать данные и флаг готовности одной операцией чтения.

Итак, алгоритм взаимодействия с ЭВМ:

1.        Свой адрес обнаружен на ША (проверяется на спаде BALE).

2.        Выдать -I/O CS 16 = 0.

3.        Если обнаружен -IOR, выдать данные с АЦП на 0-7 биты и флаг готовности на 15-й бит ШД и снять данные по окончанию -IOR.

4.        Снять -I/O CS 16 по отсутствию своего адреса на ША на спаде BALE.

Алгоритм работы программного обеспечения:

1.        Выбрать канал чтением одной выборки. Ее нужно будет отбросить.

2.        Считать выборку и проверить старший бит. Если там 1, значит преобразование закончено и данные в младшем байте действительны. В противном случае вернуться к п.2.

Данный алгоритм реализован в драйвере блока АЦП. Драйвер с т.з. прикладных программ - устройство, из которого можно считывать данные побайтно тем же способом, что из файлов.

Режимы работы драйвера:

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

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

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

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

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



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