Скачиваний:
15
Добавлен:
01.05.2014
Размер:
339.46 Кб
Скачать

3 Программная модель устройства

Устройство имеет два 16-разрядных программно-доступных регистра, которым присвоены следующие условные названия и адреса:

CSR (BASE)....................................регистр команд и состояния

DR (BASE+2)................................ регистр данных

Базовый адрес устройства задается девятью перемычками.

3.1 Регистр csr(base)

Этот регистр доступен как для чтения, так и для записи.

Формат регистра CSR при записи

Содержимое данного регистра определяет команду, передаваемую устройству, при этом регистр имеет следующий формат:

программный старт

разрешение старта от внутреннего таймера

разрешение внешнего старта

выбор канала

Режим работы коммутатора каналов

выбор дапазона напряжений

разрешение программного прерывания по признаку "ГОТОВНОСТЬ ДАННЫХ"

не используется

разрешение программного прерывания по признакам "ПЕРЕПОЛНЕНИЕ СС ПДП"

или "ПЕРЕПОЛНЕНИЕ FIFO"

разрешение ПДП

сброс FIFO

сброс признаков “ОШИБКА ЗАПУСКА” и “ПЕРЕПОЛНЕНИЕ ПДП”

Ниже приводится подробное описание назначения разрядов регистра CSR при записи в него информации.

CSR(0) (программный старт). Запись 1 в этот разряд вызывает программный запуск устройства на измерение входного напряжения в канале, код которого определяется содержимым CSR(3..5). Регистр CSR не содержит триггера в 0 разряде, поэтому записанное в CSR(0)значение не запоминается. Если запись 1 в CSR(0) происходила во время выполнения предыдущего преобразования, то результат преобразования будет неверным. При этом в устройстве будет установлен признак “ОШИБКА ЗАПУСКА” (CSR(12) при чтении).

CSR(1) (разрешение старта от внутреннего таймера). Запись 1 в этот разряд разрешает, а запись 0 запрещает выдачу выходного сигнала встроенным в устройство таймером. Для правильной работы устройства необходимо, чтобы таймер был предварительно запрограммирован на работу с требуемой частотой. Записанное в данный разряд значение сохраняется в устройстве до следующей записи в регистр CSR. При включении питания этот разряд устанавливается в 0.

Если запуск устройства происходит до окончания предыдущего преобразования (например, при слишком высокой частоте выходного сигнала таймера), в устройстве устанавливается признак “ОШИБКА ЗАПУСКА” (CSR(12) при чтении).

CSR(2) (разрешение внешнего старта). Запись 1 в этот разряд разрешает, а запись 0 запрещает запуск устройства на измерение входного напряжения от внешнего TTL сигнала. Записанное в данный разряд значение сохраняется до следующей записи в регистр CSR. При включении питания этот разряд устанавливается в 0.

CSR(3..5) (выбор канала). Записываемый в эти разряды код определяет номер канала, сигнал которого подключается для измерения. Этот код сохраняется до следующей записи в регистр CSR. Программисту следует иметь в виду, что после изменения номера канала напряжение на выходе коммутатора каналов устанавливается через 10 мкс. Запуск устройства на измерение входного напряжения до истечения этого времени приводит к неверному результату. При включении питания эти разряды устанавливаются в 0.

CSR(6) (режим работы коммутатора каналов). При записи в этот разряд 0 коммутатор каналов работает в обычном режиме, когда записанный в разряды CSR(3..5) код определяет номер подключаемого канала (CSR(7) - игнорируется). Этот режим устанавливается по умолчанию при включении устройства.

При записи 1 в CSR(6) и установленном режиме ПДП коммутатор каналов работает в автоинкрементном режиме. В этом режиме номер активного канала меняется от нуля до значения хранящегося в разрядах CSR(3..5). После каждого сигнала запуска устройства на преобразование входного сигнала происходит увеличение номера подключаемого к АЦП канала на 1. Значение последнего измеряемого канала определяется содержимым разрядов CSR(3..5). После измерения сигнала на последнем канале подключается канал 0 и процесс измерения продолжается.

Работа коммутатора каналов в автоинкрементном режиме возможна только при условии установленного режима ПДП и CSR(6)=1, в противном случае номер активного канала определяется значением, записанным в разряды CSR(3..5).

Установка начального нулевого канала выполняется записью единицы в SCR(7).

CSR(7) (Сброс счётчика каналов)

Запись 1 в этот разряд сбрасывает счётчик номера канала в 0 при CSR(6)=1.

Следует иметь в виду, что значение разряда CSR(7) в процессе работы устройства не сохраняется.

CSR(8) (Разрешение программного прерывания по признаку "ГОТОВНОСТЬ ДАННЫХ"). Запись 1 в этот разряд разрешает, а запись 0 запрещает выработку сигнала прерывания программы при установке в 1 признака "ГОТОВНОСТЬ ДАННЫХ". Записанное в данный разряд значение сохраняется в устройстве до следующей записи в регистр CSR. При включении питания этот разряд устанавливается в 0.

CSR(9)(Разрешение прерывания по признакам "ПЕРЕПОЛНЕНИЕ СС ПДП" или "ПЕРЕПОЛНЕНИЕ FIFO"). Запись 1 в этот разряд разрешает, а запись 0 запрещает выработку сигнала прерывания программы при установке в 1 признаков "ПЕРЕПОЛНЕНИЕ СС ПДП" или "ПЕРЕПОЛНЕНИЕ FIFO". Записанное в данный разряд значение сохраняется в устройстве до следующей записи в регистр CSR. При включении питания этот разряд устанавливается в 0.

CSR(10, 11) (код диапазона входного сигнала (коэффициента усиления)).

CSR(12) (не используется). Записываемый в этот разряд код не влияет на работу устройства.

CSR(13) (разрешение ПДП). Запись 1 в этот разряд разрешает, а запись 0 запрещает выдачу устройством запроса прямого доступа в память при установленном в 1 признаке "ГОТОВНОСТЬ ДАННЫХ". Записанное в данный разряд значение сохраняется в устройстве до следующей записи в регистр CSR. При включении питания этот разряд устанавливается в 0.

CSR(14) (сброс FIFO). Запись 1 в этот разряд приводит к сбросу указателей записи и чтения в буферном ОЗУ типа FIFO. При этом происходит сброс в нулевое состояние признака "ГОТОВНОСТЬ ДАННЫХ" (CSR(0)). Данный разряд не содержит триггера, поэтому записанное в него значение не сохраняется. Сброс FIFO является обязательным после того, как в устройстве установился признак "ПЕРЕПОЛНЕНИЕ FIFO" (CSR(14)).

CSR(15) (сброс признаков "ПЕРЕПОЛНЕНИЕ СС ПДП" и “ОШИБКА ЗАПУСКА”). Запись 1 в этот разряд вызывает сброс в 0 флагов "ПЕРЕПОЛНЕНИЕ СС ПДП" и “ОШИБКА ЗАПУСКА”. Регистр CSR не содержит триггера в этом разряде, поэтому записанное в него значение не запоминается.

**********************

Соседние файлы в папке Курсовая работа
  • #
    01.05.20142.99 Mб14PCI21.PDF
  • #
    01.05.20141.97 Кб11PORTLAB.LXT
  • #
    01.05.201421.31 Кб11PRINTER.LXT
  • #
    01.05.201428.72 Кб11PRINTLAB.LXT
  • #
    01.05.2014843 б11SODKURS.LXT
  • #
    01.05.2014339.46 Кб15черновик.doc