авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 2 | 3 || 5 |

«Министерство образования Российской Федерации Государственное образовательное учреждение высшего профессионального образования – ...»

-- [ Страница 4 ] --

Не имеющие внутреннего ПЗУ К1816ВЕ35 и К1816ВЕ39 позволяют пользователю подбирать память для хранения программы в точном соот ветствии с его требованиями, используя широкий набор внешних ИС ПЗУ (573РФ2 и другие).

Рисунок 14.1 – ОЭВМ серии К Таблица 14.1 – Назначение выводов ОЭВМ серии К Номер Обознач Функциональное назначение 1 ТО Вход, проверяемый то командам условного перехода JTO и JNTO. Может использоваться в качестве выходного сигнала синхронизации, выдаваемого по команде 2 CR1 Входы подключения внешних элементов (кварцевого резонатора, LC - и RC -цепи).

3 SR C 4 Общий сброс. Во время программирования используется для фиксации адреса.

5 +1 Управление пошаговым режимом. Используется вместе с сигналом ЕА.

6 INT Запрос прерывания. Вход проверяется также по команде условного перехода JNI.

7 COROM Управление считыванием из внешнего ПЗУ.

8 RD Строб считывания с шины данных (в том числе, из внешнего ОЗУ).

9 EROM Строб считывания из внешнего ПЗУ.

10 WR Строб записи на шину данных (в том числе, во внешнее ОЗУ).

11 ЕА Строб адреса. Действует один раз во время каждого машинного цикла.

12-19 DO - D7 Двунаправленный 8-разрядный порт ввода-вывода данных, управляемый стробами RD и WR. При обращении к внешнему ПЗУ выводит восемь младших разрядов счетчика команд (адреса команд) и принимает код команды под 20 OV Общий 21-24, Р20 - Р27 Квазидвунаправленный 8-разрядный порт ввода-вывода.

35-38 При обращении к внешнему ПЗУ через Р20 — Р23 выводятся четыре старших разряда счетчика команд (адреса команд). Р20-Р23 могут служить в качестве 4-разрядной шины расширения ввода-вывода.

25 EXIO Выходной строб расширения ввода-вывода.

26 +25 V Напряжение питания +25 вольт во время программирования К1816ВЕ48 и +5 вольт во б ПЗУ ППЗУ 27-34 Р10 - Р17 Квазидвунаправленный 8-разрядный порт ввода-вывода.

39 Т1 Вход, проверяемый по командам условного перехода JT1 и JNT1. Может Основное напряжение питания. +5 В во время й ( работы и программирования К1816ВЕ ) 40 +5 V 14.2 Структурная организация ОЭВМ Структурная схема ОЭВМ серии К1816, отражающая состав функцио нальных блоков ОЭВМ и логические связи между ними, приведена на рисунке 14.2. К основным функциональным блокам ОЭВМ относятся: про цессор, память программ, память данных, схема прерывания, таймер-счетчик, устройство ввода-вывода, схема управления и синхронизации.

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

Код команды считывается из ПЗУ по адресу, хранящемуся в счетчике команд, и запоминается в регистре команд.

Если команда двухбайтовая, то первый байт, считанный из ПЗУ, запоминается в регистре команд, а следующий — в регистре промежуточного хранения. Затем после дешифрации кода команды процессор переходит к ее выполнению.

Рисунок 14.2 Структурная схема ОЭВМ серии К 14.2.1 СЧЕТЧИК КОМАНД Программа в ПЗУ записывается последовательно, начиная с начального адреса, в порядке его возрастания. 12-разрядный счетчик команд (СК) содержит адрес следующей (за выполняемой) команды программы. Его 0…10-й разряды реализованы как двоичный счетчик, а 11-й разряд — как независимый от двоичного счетчика триггер. При выполнении команды содержимое 0…10-го разрядов СК увеличивается на число байтов, занимаемых этой командой. В случае переноса из 10-го разряда разряды 0…10 устанавливаются в состояние 0. Старший разряд СК изменяется только программно.

По командам перехода CALL или JMP 11-й разряд СК устанавливается в состояние «0» или «1» в зависимости от состояния триггера выбора банка ПЗУ.

При использовании внешнего ПЗУ 0…7-й разряды СК поступают через порт Р0 (D0 - D7), а 8…11-й разряды - через порт Р2 (Р20 -Р23).

По сигналу общего сброса SR счетчик команд обнуляется, то есть, в него записывается адрес 0 (в шестнадцатеричном коде – 00h).

Содержимое СК может изменяться при выполнении команд условных, безусловных переходов и при прерываниях. По внешнему прерыванию в СК записывается значение ОЗН, по внутреннему прерыванию — 07h. При реализации прерываний или вызовах подпрограмм содержимое СК запоминается в одной из восьми пар регистров стека, расположенного в ОЗУ по адресам 08 – 17h.

14.2.2 АРИФМЕТИЧЕСКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО 8-и разрядное арифметическо-логическое устройство (АЛУ) выполняет предусмотренные системой команд (раздел 15) операции над одним или двумя операндами, представленными в двоичном, а также в двоично десятичном кодах. Основные операции, выполняемые АЛУ:

- арифметическое сложение, логическое сложение, логическое умножение, сложение по модулю 2, инвертирование;

- инкремент и декремент на единицу, сдвиг;

- перестановка полубайтов;

- десятичная коррекция.

Операнды, используемые в процессе выполнения указанной в коде команды операции, делятся на операнды-источники и операнды-приемники.

Операнд-источник участвует в процессе выполнения операции, причем его значение при этом не изменяется.

Местом хранения операнда-источника может быть аккумулятор (регистр А), рабочий регистр Ri (i=0…7), ячейка ОЗУ, порт ввода-вывода данных Pj (j=1,2), регистр слова состояния программы (ССП), таймер-счетчик, код команды и ячейка ПЗУ. Операнд-приемник (dst) участвует в процессе выполнения операции, причем его значение заменяется результатом вы полненной операции.

Местом назначения операнда-приемника (src) может быть аккумулятор, рабочий регистр, ячейка ОЗУ, порт ввода-вывода данных, регистр ССП и таймер-счетчик.

8-и разрядный регистр А (аккумулятор) является для большинства операций местом хранения операнда источника или местом назначения операнда-приемника, а значит, и результата выполнения операции.

Содержимое регистра А может быть использовано для косвенной адресации команд и данных.

14.2.3 РЕГИСТР СЛОВА СОСТОЯНИЯ ПРОГРАММЫ 8-и разрядный регистр слова состояния программы представляет собой набор триггеров ОЭВМ, содержимое которых может быть считано или записано целиком и поразрядно. Назначение разрядов РССП:

0…2-й разряды являются указателем стека (текущий адрес стековой памяти);

4-й разряд указывает на номер выбранного банка регистров общего назначения (РОН), - 5-й разряд — флаг F0;

6-й разряд — флаг тетрадного переноса АС;

7-й разряд - флаг переноса (переполнения) С.

При прерываниях по сигналу INT и по флагу таймера-счетчика ТТ содержимое четырех старших разрядов заносится в стек, а при возврате из программы прерывания по команде RETR содержимое этих разрядов восстанавливается. Команда возврата RET не изменяет состояния РССП.

Триггер флага переноса С служит для запоминания значения переноса при выполнении операции арифметического сложения. Он устанавливается в состояние «1» при переносе из старшего (7-го) разряда АЛУ. Триггер флага переноса АС устанавливается в состояние «1» при переносе из 3-го разряда АЛУ. Состояние триггера учитывается при выполнении операции десятичной коррекции содержимого А.

Два триггера битов условий (флаги), обозначаемые F0 и F1, могут быть установлены программным путем в состояние «0» и «1». Состояние триггеров F0 и F1 используется в командах условного перехода при организации ветвлений в программе. Переход осуществляется также по содержимому А («0» или не «0») и состоянию одного из его разрядов, по состоянию триггера флага таймера-счетчика ТТ и триггера переноса С, по состоянию входов Т0, Т1 и INT. Условия перехода определяются соответ ствующими командами (таблица 15.1). Значения признаков С, F0, F1, ТТ устанавливаются программно, признаков Т0, Т1, INT аппаратно.

14.2.4 ПРОГРАММНАЯ ПАМЯТЬ Память программ (ПЗУ) состоит из внутренней или внешней части, или обоих частей (в зависимости от типа ОЭВМ), обращением к которым управляет счетчик команд. Все поле адресов 0000h — 0FFFh разбито на два банка — банк 0 с адресами 0000h — 07FFh и банк 1 с адресами 0800h — 0FFFh. Переключение банков осуществляется программным путем с помощью команд управления SEL МВ0 И SEL MB1.

Поле распределения памяти программ ОЭВМ серии К1816 показано на рисунке 14.3. Внутреннее ПЗУ (или внешнее) содержит ячейки, которые связаны с выполнением определенных функций.

Входной сигнал общего сброса SR обеспечивает выбор первой команды по адресу 0000h.

Входной сигнал запроса прерывания INT вызывает при наличии разрешения переход к подпрограмме обработки внешнего прерывания по ад ресу 000Зh.

По адресу 0007h хранится вектор подпрограммы обработки прерывания по переполнению таймера-счетчика.

14.2.5 ОПЕРАТИВНАЯ ПАМЯТЬ Память данных (ОЗУ) состоит из внутренней и внешней частей.

Внутреннее (резидентное) ОЗУ емкостью 64 байта (К1816ВЕ35, К1816ВЕ48) или 128 байт (К1816ВЕ39, К1816ВЕ49) имеет два банка рабочих регистров общего назначения (РОН) с адресами 00 — 07h (банк РОН 0) и 18 — 1Fh (банк РОН 1). Переключение банков осуществляется программным путем с помощью команд управления SEL RB0 И SEL RB1.

Банк РОН1 можно использовать для расширения банка РОН0 или за резервировать для использования во время подпрограммы обработки прерываний, что позволяет путем переключения банков запоминать со держимое регистров банка РОН0, используемых в основной программе. Если банк РОН1 не используется, его ячейки остаются адресуемыми как ячейки ОЗУ Рисунок 14.3 Поле распределения ПЗУ общего назначения.

В ОЭВМ предусмотрена возможность расширения памяти данных путем подключения дополнительных БИС ОЗУ емкостью до 256 байт. Общая емкость ОЗУ может достигать таким образом 320 байт (К1816ВЕ35, К1816ВЕ48) или 384 байт (К1816ВЕ39, К1816ВЕ49). Обращение к внешнему ОЗУ осуществляется с помощью команд MOVX. Стробируется информация внешнего ОЗУ сигналами RD и WR. Поле распределения памяти данных ОЭВМ серии К1816 показано на рисунке 14.4.

Для записи и выборки данных из ОЗУ используются два вида адресации — прямая и косвенная (регистровая).

При прямой адресации в коде команды три младших бита определяют адрес одного из регистров R0 — R7 выбранного банка РОН0 или РОН (таблица 15.1).

При косвенной адресации место расположения адреса указывается в команде. Адрес ячейки ОЗУ может храниться либо в аккумуляторе, либо в регистрах R0, R1 выбранного банка РОНО или РОН1. С помощью косвенной адресации можно обращаться к любой ячейке ОЗУ.

14.2.6 СТЕКОВАЯ ПАМЯТЬ (СТЕК) Ячейки ОЗУ с адресами 08h — 17h могут быть использованы в качестве регистров 8-и уровневого стека программы типа LIFO, что позволяет обслужить до восьми вложенных подпрограмм. За одно обращение к стеку осуществляется доступ к двум последовательным регистрам. Адрес пары используемых регистров определяется 3-х разрядным указателем стека, который является частью (0…2-й разря- ды) слова состояния программы.

Когда указатель стека устанавлива- ется в нуль по сигналу SR, он указывает на пару регистров с адресом 08 – 09h. Первый переход к подпрограмме или прерывание приводит к тому, что содержимое СК и 4…7 го разрядов ССП передается по адресу 08h — 09h. После этого содер- жимое указателя стека увеличивается на единицу и Рисунок 14.4 – Поле распределения ОЗУ указывает на пару регистров с адресом 0Аh — 0Вh. Каждый последующий переход к новой подпрограмме вызывает увеличение на единицу содержимого указателя стека. Уровень вложения подпрограмм может быть равен восьми без переполнения стека. При его переполнении будет заменен новой записью и утерян первый из запоминаемых адресов, так как указатель стека переходит из состояния «1112» в состояние «0002». Завершение подпрограммы по командам возврата RET или RETR вызывает уменьшение содержимого указателя стека на единицу, а содержимое указываемой регистровой пары передается в СК.

14.2.7 ПОРТЫ В устройстве ввода-вывода ОЭВМ серии К1816 три 8-и разрядных порта Р0, Р1, Р2.

Порт Р0 — это 8-и разрядный (D0 — D7) двунаправленный порт с тремя состояниями. Порт Р0 осуществляет режимы: при выводе данных – в качестве статически фиксированного выходного порта (регистра с третьим состоянием);

при вводе данных – нефиксированного входного порта (шинного формирователя). Порт Р0 используется как основной порт ввода вывода данных ОЭВМ в однопроцессорных системах, а в многопроцессорных — для мультиплексной адресации и ввода-вывода данных. Данные, выводимые портом Р0 с помощью команд OUTL BUS,A и MOVX @R,А (таблица 15.1) сопровождаются стробом записи на шину данных WR. При вводе данных в порт Р0 с помощью команд INS A,BUS и MOVX A,@R (таблица 15.1) вырабатывается строб считывания с шины данных RD. Когда не происходит записи или считывания, линии порта Р находятся в состоянии высокого импеданса.

Порты Р1, Р2 — квазидвунаправленные и имеют идентичные характе ристики. Данные, записанные на них, статически фиксируются и не изме няются до перезаписи. Как входы эти порты входные данные не фиксируют, то есть входные данные должны присутствовать до считывания по команде приема данных. Слово «квази» связано с тем, что для использования портов Р1, Р2 в качестве входных сначала необходимо зафиксировать состояние «1»

в этих портах (по команде выдачи данных FFh или подачей сигнала сброса SR). Структура квазидвунаправленных портов P1, P2 в сочетании с логическими командами ANL и ORL (таблица 15.1) обеспечивает возмож ность ввода и вывода бита данных через одну и ту же линию, выполнение логических операций, а также позволяет смешивать входные и выходные линии внутри одного порта.

14.2.8 ПРЕРЫВАНИЯ Три линии Т0, T1, INT служат входами, проверяемыми командами переходов. Линию Т0 можно использовать для выдачи тактовых сигналов, линию T1 — как вход счетчика внешних событий для таймера-счетчика, а линию INT —для внешнего аппаратурного прерывания.

Система прерываний ОЭВМ является одноуровневой. Запрос на пре рывание игнорируется в процессе обслуживания текущего прерывания.

Прерывания ОЭВМ делятся на внешнее и внутреннее, внешнее прерывание имеет старший приоритет.

Запрос на внешнее прерывание представляет собой сигнал на входе INT.

Обработка запроса зависит от состояния программно управляемого триггера разрешения внешнего прерывания. Бели он установлен в «1», то запрос на внешнее прерывание будет воспринят ОЭВМ после завершения выполнения текущей команды. По сигналу общего сброса триггер устанавливается в «0», то есть внешнее прерывание запрещается. Запрос на внешнее прерывание должен быть снят раньше выполнения команды RETR. Внешнее прерывание может быть разрешено или запрещено соответственно по командам EN I или DIS I.

Запрос на внутреннее прерывание представляет собой сигнал перепол нения, поступающий от таймера-счетчика. Запрос снимается после его обслуживания или по сигналу общего сброса, а также после выполнения команды DIS TCNTI. Обработка запроса зависит от состояния программно управляемого триггера разрешения внутреннего прерывания от таймера счетчика. Если он установлен в состоянии «1», то запрос на внутреннее прерывание будет воспринят ОЭВМ после завершения выполнения текущей команды. По сигналу общего сброса триггер устанавливается в «0», то есть внутреннее прерывание запрещается. Прерывание по переполнению таймера счетчика может быть разрешено или запрещено командами EN TCNTI или DIS TCNTI – независимо от внешнего прерывания.

Если запросы на прерывание от таймера-счетчика и внешнего источника придут одновременно, произойдет переход к подпрограмме по адресу 03h.

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

14.2.9 ТАЙМЕР 8-и разрядный таймер-счетчик может работать независимо от процессора в режиме счета внешних сигналов (в этом случае он называется счетчиком внешних событий) и в режиме счета внутренних сигналов (в этом случае он называется внутренним, или резидентным, таймером). Установка таймера счетчика в исходное состояние происходит по команде MOVT,А, а считывание его текущего значения — по команде MOVA,Т. При поступлении сигнала на вход таймера-счетчика его содержимое увеличивается на единицу. При переносе из старшего разряда таймера счетчика его содержимое устанавливается в состояние «0», триггер пере полнения устанавливается в состояние «1» (данный триггер может быть установлен в «0» по сигналу общего сброса или по команде JTF) и генери руется прерывание (если триггер разрешения прерывания от таймера счетчика установлен в «1»). По команде STOP TCNT таймер-счетчик оста навливается, его содержимое не изменяется.

По команде STRT CNT таймер-счетчик устанавливается в режим счета внешних сигналов, при этом вход Т1 ОЭВМ соединяется со счетным входом таймера-счетчика. Изменения входного сигнала на Т1 из состояния «1» в «0»

будут вызывать приращение счетчика. Минимальный период следования сигналов на Т1 равен трем машинным циклам, максимальный период не ограничивается.

По команде STRT Т таймер-счетчик устанавливается в режим счета внутренних сигналов, при этом вход таймера-счетчика соединяется с де лителем частоты 1:32 генератора тактовых сигналов ОЭВМ. Период сле дования сигналов на выходе делителя фиксирован и равен 32 машинным циклам. Делитель сбрасывается по команде STRT Т.

14.2.10 СХЕМА УПРАВЛЕНИЯ Схема управления и синхронизация ОЭВМ состоит из генератора, фор мирователей внутренних тактовых сигналов, сигналов состояний и режимов работы. Встроенный генератор — это последовательная резонансная схема работающая в диапазоне от 1 до 6 МГц для К816ВЕ48 и от 1 до 11 МГц для других ОЭВМ. Выводы CR1 и CR2 используются для подключения внешнего кварцевого резонатора.

Формирователь внутренних тактовых сигналов делит частоту встроенного генератора на три и вырабатывает внутренние тактовые сигналы CLK, которые определяют временные соотношения в ОЭВМ. Сигналы CLK могут быть выданы на вывод ТО по команде ENTO CLK (их вывод блокируется по сигналу общего сброса). Сигналы CLK поступают на вход делителя на пять для получения сигналов (в том числе ЕА), определяющих машинный цикл, состоящий из пяти тактов (состояний) ОЭВМ. В первом такте осуществляется выборка кода команды, во втором — его дешифрация и увеличение содержимого СК. С третьего по пятый такт происходит выполнение текущей команды и формирование адреса следующей. Для выполнения команд ввода-вывода, переходов и др. требуется два машинных цикла.

Функционирование ОЭВМ К1816 может осуществляться в режимах:

- программирования — проверки памяти программ (для К1816ВЕ48);

- пошагового выполнения программы (отладочный режим);

- работы с внутренней и внешней памятью (рабочий режим).

Особенно трудно переоценить преимущества пошагового режима, который позволяет производить комплексную отладку программно аппаратной части в составе оригинала, а не его модели. При этом требуются совсем незначительные доработки средств обеспечения этого режима в виде управляемого дешифратора адреса и триггера – для обеспечения останова в нужном месте программы при непрерывном режиме.

14.3 Вопросы для самопроверки 14.3.1 Дайте характеристику семейству ОЭВМ 1816.

14.3.2 Назовите основные элементы ОЭВМ 1816.

14.3.3 Назначение и функции счетчика команд?

14.3.4 Состав и основные группы команд АЛУ?

14.3.5 Назначение регистра ССП и его разрядов?

14.3.6 Назначение, организация программной памяти и расположение в ней стартовых команд программ обслуживания прерываний?

14.3.7 Назначение, организация оперативной памяти, ее использование?

14.3.8 Как организована стековая память в ОЭВМ?

14.3.9 Назовите типы портов и их особенности.

14.3.10 Назначение и реализация прерываний в ОЭВМ?

14.3.11 Как организован и как используется таймер в составе ОЭВМ?

14.3.12 Дайте описание схеме управления.

14.3.13 Для чего в ОЭВМ реализован пошаговый режим?

15 Система команд микроконтроллера 15.1 Состав команд ОЭВМ Ввод-вывод и обработка данных микроконтроллером производится с помощью команд, приведенных в таблице 15.1.

Система команд ОЭВМ серии К1816 включает в свой состав 96 команд, из которых однобайтовые. В двухбайтовых командах первый байт содержит информацию о коде команды, второй байт — непосредственные данные или младшие разряды адреса следующей команды;

53 команды выполняются за один машинный цикл, 43 команды, в том числе 15 однобайтовых, выполняются за два машинных цикла. Выполнение двухбайтовых команд за два цикла связано с дополнительным обращением к памяти программ.

Команды делятся на следующие функциональные группы:

- арифметическо-логические команды, команды сдвига и приращений;

- команды ввода-вывода;

- команды переходов;

- команды перехода к подпрограммам и возврата;

- команды флагов;

- команды пересылки и загрузки;

- команды таймера;

- команды управления прерываниями и банками памяти.

15.2 Алгоритмы выполнения команд Рассмотрим только ту часть команд, которые наиболее часто бывают в употреблении, и на их примере познакомимся с возможностями системы команд ОЭВМ в целом. Это позволит далее изучить их самостоятельно.

15.2.1 АРИФМЕТИЧЕСКО-ЛОГИЧЕСКИЕ КОМАНДЫ 15.2.1.1 Арифметические и логические команды (команды АЛУ) Эта группа команд имеет три формата:

а) регистровые команды вида:

A := A операция АЛУ R, где в качестве регистра R может использоваться регистр из ряда R0…R7, например:

Ассемблер Машинный код Комментарий операнд код операции ADD A,R4 A := A + R 01101100 б) команды с косвенной адресацией вида:

A := A операция АЛУ MR, где адрес ячейки памяти М должен храниться в регистре R из ряда R0, R1, например:

Таблица 15.1 - Система команд ОЭВМ серии К Обозначение Код Выполняемая функция Количество 76543210 байт циклов Арифметическо-логические команды, команды сдвига и приращений 01101RRR Сложение регистра R (R=R0…R7) и А ADD A,R 1 0110000R Сложение памяти данных (c адресом в R, где R= R0, R1) и А ADD A,@R 1 03h ADD A,#DATA Сложение непосредственных данных (2-го байта команды) и А 2 01111RRR Сложение регистра R (R=R0…R7), А и переноса С ADDC A,R 1 0111000R Сложение памяти (c адресом в R, где R= R0, R1), А и переноса С ADDC A,@R 1 13h ADDC A,#DATA Сложение непосредственных данных, А и переноса С 2 01011RRR Логическое И регистра R (R=R0…R7) и А ANL A,R 1 0101000R Логическое И памяти (c адресом в R, где R= R0, R1) и А ANL A,@R 1 53h ANL A,#DATA Логическое И непосредственных данных и А 2 01000RRR Логическое ИЛИ регистра R (R=R0…R7) и А ORL A,R 1 0100000R Логическое ИЛИ памяти (c адресом в R, где R= R0, R1) и А ORL A,@R 1 43h ORL A,#DATA Логическое ИЛИ непосредственных данных и А 2 11011RRR Исключающее ИЛИ (по модулю 2) регистра R (R=R0…R7) и А XRL A,R 1 1101000R Исключающее ИЛИ памяти (c адресом в R, где R= R0, R1) и А XRL A,@R 1 D3h XRL A,#DATA Исключающее ИЛИ непосредственных данных и А 2 17h INC A Инкремент А (увеличение на 1) 1 07h DEC A Декремент А (уменьшение на 1) 1 27h CLR A Обнуление А 1 37h CPL A Инвертирование А 1 57h DA A Преобразование А в двоично-десятичный код (десят. коррекция) 1 47h SWAP A Обмен местами полубайтов А 1 Е7h RL A Циклический сдвиг А влево 1 F7h RLC A Циклический сдвиг А влево через разряд переноса С 1 77h RR A Циклический сдвиг А вправо 1 67h RRC A Циклический сдвиг А вправо через разряд переноса С 1 00011RRR INC R Инкремент регистра R (R=R0…R7) 1 0001000R INC @R Инкремент памяти(c адресом в R, где R= R0, R1) 1 11001RRR DEC R Декремент регистра R (R=R0…R7) 1 Команды ввода-вывода 000010РР Ввод из порта P (P=P1,P2) в А IN A,P 1 001110РР Вывод из А в порт P (P=P1,P2) OUTL P,A 1 100110РР Логическое И непосредственных данных и порта P (P=P1,P2) ANL P,#DATA 2 100010РР Логическое ИЛИ непосредственных данных и порта P (P=P1,P2) ORL P,#DATA 2 08h INS A,BUS Ввод с шины данных (Р0) в А 1 02h OUTL BUS,A Вывод из А на шину данных (Р0) 1 98h ANL BUS,#DATA Логическое И непосредственных данных и шины данных (Р0) 2 88h ORL BUS,#DATA Логическое ИЛИ непосредственных данных и шины данных (Р0) 2 000011РР Пересылка из порта-расширителя в младший полубайт А MOVD А,Р 1 001111РР Пересылка младшего полубайта А в порт- расширитель MOVD Р,А 1 100111РР Логическое И младшего полубайта А и порта-расширителя ANLD P,A 1 100011РР Логическое ИЛИ младшего полубайта А и порта-расширителя ORLD P,A 1 Команды переходов ААА00100 Безусловный переход на страницу ААА2 с адресом ADDR JMP ADDR 2 ВЗh JMPP @A Безусловный переход в текущей странице по адресу в А 1 DJNZ R,ADDR 11101RRR Декремент регистра и переход, если не “0” 2 F6h JC ADDR Переход, если рязряд переноса в “1” 2 Е6h JNC ADDR Переход,,если разряд переноса в “0” 2 06h JZ ADDR Переход, если А равен “0” 2 96h JNZ ADDR Переход, если А не равен “0” 2 36h JTO ADDR Переход, если “1” на выводе Т0 2 26h JNTO ADDR Переход, если “0” на выводе ТО 2 56h JT1 ADDR Переход, если “1” на выводе Т1 2 46h JNT1 ADDR Переход, если “0” на выводе Т1 2 В6h JFO ADDR Переход, если флаг F0 в “1” 2 76h JF1 ADDR Переход, если флаг Fl в “1” 2 16h JTF ADDR Переход, если флаг таймера в “1” 2 86h JNI ADDR Переход если “0” на входе INT 2 ВВВ10010 Переход, если указанный разряд А в “1” JBB ADDR 2 Продолжение таблицы 15. Обозначение Код Выполняемая функция Количество опрерации байт циклов Команды перехода к подпрограммам и возврата ААА10100 Вызов подпрограммы по указанному адресу CALL ADDR 2 83h RET Возврат из подпрограммы 1 93h RETR Возврат из подпрограммы и восстановление состояния процессора 1 Команды флагов 97h CLR С Обнуление разряда переноса C 1 А7h CPL С Инвертирование разряда переноса C 1 85h CLR F0 Обнуление F0 1 95h CPL F0 Инвертирование F0 1 А5h CLR Fl Обнуление Fl 1 В5h CPL Fl Инвертирование Fl 1 Команды пересылки и загрузки 11111RRR MOV A,R Пересылка из регистра в А 1 1111000R MOV A,@R Пересылка из памяти в А 1 23h MOV A,#DATA Пересылка непосредственных данных в А 2 10101RRR MOV R,A Пересылка из А в регистр 1 1010000R MOV @R,A Пересылка из А в память 1 10111RRR MOV R,#DATA Пересылка непосредственных данных в регистр 2 1011000R MOV @R,#DATA Пересылка непосредственных данных в память 2 С7h MOV A,PSW Пересылка из регистра ССП в А 1 D7h MOV PSW,A Пересылка из А в регистр ССП 1 XCH A,R Обмен между регистром и А 1 XCH A @R Обмен между памятью и А 1 XCHD A,@R Обмен младшими полубайтами между памятью и А 1 MOVX A,@R Пересылка из внешней памяти в А • 1 MOVX @R, A Пересылка из А во внешнюю память 1 A3h MOVP A @A Пересылка из текущей страницы в А 1 E3h MOVP3 A,@A Пересылка из страницы 3 в А 1 Команды таймера 42h MOV A,T Пересылка из регистра таймера-счетчика в А 1 62h MOV T,A Пересылка из А в регистр таймера-счетчика 1 55h STRT T Пуск таймера 1 STRT CNT Пуск счетчика 1 65h STOP TCNT Останов таймера-счетчика 1 25h EN TCNTI Разрешение прерываний от таймера-счетчика 1 35h DIS TCNTI Запрещение прерываний от таймера-счетчика 1 Команды управления прерываниями и банками памяти 05h EN I Разрешение внешних прерываний 1 15h DIS I Запрещение внешних прерываний 1 С5h SEL RBO Выбор нулевого банка памяти данных 1 D5h SEL RB1 Выбор первого банка памяти данных 1 Е5h SEL MBO Выбор нулевого банка памяти программ 1 F5h SEL MB1 Выбор первого банка памяти программ 1 75h ENTO CLK Разрешение выдачи импульсов синхронизации на вывод ТО 1 00h NOP Нет операции 1 Ассемблер Машинный код Комментарий A := A MR операнд код операции ANL A,@R 01010001 - (логическое И) в) команды с непосредственными данными вида:

A := A операция АЛУ data, где data – данные размером в один байт, например:

Ассемблер Машинный код Комментарий A := A 1Fh (логич. ИЛИ) операнд код операции ORL A,#1F 01000011 15.2.1.2 Команды сдвига и приращений Эта группа команд, за исключением одной, имеет два формата:

а) команды, реализуемые в А, например:

Ассемблер Машинный код Комментарий операнд код операции А Сдвиг на 1 разряд 11100111 RL A б) команды, реализуемые в R, где в качестве регистра R может использоваться регистр из ряда R0…R7, например:

Ассемблер Машинный код Комментарий операнд код операции DEC R6 R6 := R6 -1 (если R6=0, 11001110 - то после DEC: R6=FFh ) 15.2.2 КОМАНДЫ ВВОДА-ВЫВОДА 15.2.2.1 Команды ввода-вывода Эта группа команд осуществляет ввод: А:=P, вывод: P :=A, где Р выбирается из ряда Р0, Р1, Р2, например:

Ассемблер Машинный код Комментарий операнд код операции IN A,P1 А := P 00001001 15.2.2.2 Команды логических операций И, ИЛИ с содержимым портов Эта группа команд осуществляет операции вида: Pi :=Piоперация data, где i=0,1,2, например:

Ассемблер Машинный код Комментарий операнд код операции ANL BUS,#5D P0 :=P0 5Dh 10011000 15.2.3 КОМАНДЫ ПЕРЕХОДОВ 15.2.3.1 Команды безусловных переходов Эта группа команд имеет два формата:

а) переход по адресу (11-и разрядному), указанному в команде, например:

Ассемблер Машинный код Комментарий операнд код операции JMP 61C СК :=61Сh, 11000100 00011100 (Старший бит СК (А11)– номер банка ПЗУ) адрес перехода б) переход по адресу внутри страницы (размер страницы – 256 байт), указанному в регистре А. Например, пусть А=1Е:

Текущий адрес Ассемблер Машинный код Комментарий операнд код операции 5C0 JMPР @A СК :=51Еh 10110011 (Номер страницы) 15.2.3.2 Команды условных переходов Данная двухбайтовая команда осуществляет переход внутри страницы, если выполняется условие, указанное в команде (таблица 15.1). В противном случае команда выполняется как пустая (NOP). В качестве признаков условий перехода используются:

- флаг С;

- флаг F0;

- флаг F1;

- вход INT;

- вход Т0;

- вход Т1;

- нулевой/ненулевой результат операций в регистре А;

- состояние указанного бита регистра А.

Например, пусть С=0:

Текущий адрес Ассемблер Машинный код Комментарий операнд код операции 3Е1 JNC F9 СК :=3F9h 10110011 (Номер страницы) В другом случае – при С=1:

Текущий адрес Ассемблер Машинный код Комментарий операнд код операции 3Е1 JNC F9 СК :=3E3h 10110011 (Номер страницы) ( Адрес следующей команды) 15.2.3.3 Команда-счетчик циклов Это одна из наиболее часто используемых команд и предназначена для организации счетчиков числа различных циклов. Действие команды:

R := R 1;

если R 0, то перейти внутри страницы по адресу, указанному в команде (это, обычно, начало циклической программы). В противном случае команда выполняется как пустая (NOP).

В качестве регистра R может использоваться регистр из ряда R0…R7.

Например, пусть на момент выполнения команды R3 = 03h:

Текущий адрес Ассемблер Машинный код Комментарий операнд код операции 21С DJNZ R3,11 R3-1= 11101111 (Номер страницы) СК :=211h 15.2.4 КОМАНДЫ ПЕРЕХОДА К ПОДПРОГРАММАМ И ВОЗВРАТА 15.2.4 Команда перехода к подпрограммам (вызова подпрограмм) Команда CALL выполняется аналогично команде безусловного перехода (п. 15.2.3.1,а), за одним исключением: адрес команды, следующей за командой CALL, предварительно записывается в стековую память (стек) – для сохранения адреса возврата.

Пример выполнения команды CALL:

Текущий адрес Ассемблер Машинный код Комментарий операнд код операции 1С6 СALL 51C 1)Стек:=1С8h 10110100 00011100 2)СК :=51Сh адрес перехода 15.2.4 Команды возврата Реализуются две команды возврата:

а) RET с кодом операции 83h (100000112), которая выполняет следующее действие:

СК:=Стек.

Используется в паре с командой CALL.

б) RETR с кодом операции 93h (100100112), которая выполняет следующие действия:

1) СК := Стек;

2) РССП (биты D7...D4):= Стек;

Эта команда должна завершать подпрограмму, вызываемую аппаратными прерываниями по соответствующим входам или от таймера (раздел 14). Дело в том, что любое разрешенное аппаратное прерывание (по входу INT или от таймера) осуществляет такое же действие, как команда CALL, по сохранению в стеке адреса команды прерванной программы, но, в отличие от CALL, прежде в стек отправляется содержимое 4-х старших разрядов РССП, хранящих состояние флагов C, AC, F0 и BS (банк регистров в ОЗУ), которые могут быть использованы в прерванной программе.

15.2.4 Команды пересылки и загрузки 15.2.4.1 Команды пересылки Эта группа команд имеет 2 формата:

а) регистровые команды пересылки вида:

A := R или R := A, где в качестве регистра R может использоваться регистр из ряда R0…R7, например:

Ассемблер Машинный код Комментарий операнд код операции MOV A,R4 A := R 11111100 б) команды пересылки между ОЗУ и регистром А вида:

A := MR или MR := A, где адрес ячейки памяти М должен храниться в регистре R из ряда R0, R1, например:

Ассемблер Машинный код Комментарий операнд код операции MOV A,@R1 A := MR 11110001 15.2.4.2 Команды загрузки данных Эта группа команд имеет 2 формата:

а) команды загрузки в регистр данных вида:

R := data, где в качестве регистра R может использоваться регистр из ряда R0…R7, а также регистр А, при этом data – данные размером в один байт, например:

Ассемблер Машинный код Комментарий операнд код операции MOV A,#0F A := 0Fh 00100011 б) команды загрузки в ОЗУ вида:

MR := data, где адрес ячейки памяти М должен храниться в регистре R из ряда R0, R1, data – данные размером в один байт, например:

Ассемблер Машинный код Комментарий операнд код операции MOV @R0,#1E MR0 := 1Eh 10110000 15.2.5 ПУСТАЯ КОМАНДА Команда NOP с кодом операции 00h ничего не делает и лишь только отнимает время у ОЭВМ в пределах времени одного цикла (5 периодов сигнала CLK). Именно это свойство часто используется для формирования программным путем сопряжения по времени объектами контроля и управления ИУВС.

15.2.6 ХАРАКТЕРИСТИКА НЕРАССМОТРЕННЫХ КОМАНД Остальные команды, приведенные в таблице 15.1, достаточно просты и однозначны и могут быть изучены самостоятельно по представленной выше технологии. Единственно, о чем нужно помнить, что после подачи питания или сигнала сброса, или очередного аппаратного прерывания соответствующий вход запроса на прерывание автоматически блокируется, и для снятия этой блокировки требуется выполнение команды:

для запроса по входу INT – команды EN I, для запроса по переполнению таймера – команды EN TCNTI.

15.3. Вопросы для самопроверки 15.3.1 Назовите основные группы команд МС 1816ВЕ35.

15.3.2 Как выполняются команды пересылки и загрузки МС 1816ВЕ35?

15.3.3 Назовите команды АЛУ МС 1816ВЕ35.

15.3.4 Характеристики командам сдвига и приращений МС 1816ВЕ35?

15.3.5 Дайте характеристику командам ввода-вывода МС 1816ВЕ35.

15.3.6 Дайте характеристику командам переходов и ветвлений МС 1816ВЕ35.

15.3.7 Как управляется таймер МС 1816ВЕ35?

16 Основы программирования однокристального микроконтроллера Программное обеспечение узла ИУВС представляет собой резидентную часть (управляющее ядро), которая имеет индивидуальный характер и определяется конфигурацией и задачами узла ИУВС, и пакет прикладных программ, имеющих универсальный характер. Они обеспечивают, как правило, типовые операции по обработке данных и операции по вводу и выводу. Чтобы понять сущность приемов программирования этих операций, рассмотрим на частных примерах их простейшие аналоги на ассемблере – (таблица 15.1) без трансляции самих программ (то есть, без машинных кодов и привязки программ к адресам программной памяти.

16.1 Программирование типовых операций 16.1.1 СЛОЖЕНИЕ ДВУХ ДВУХБАЙТОВЫХ ЧИСЕЛ Сложить два 16-разрядных числа 165Fh и 7CD1h, результат сложения поместить в регистр R6 (старший байт) и регистр R7 (младший байт).

ADD: MOV A,#5F ADD A,#D MOV R7,A MOV A,# ;

С учетом переполнения от предыдущей операции ADDC A,#7C MOV R6,A 16.1.2 СЛОЖЕНИЕ ДВУХ ДВУХБАЙТОВЫХ ЧИСЕЛ X И Y С ИСПОЛЬЗОВАНИЕМ косвенной адресации X находится в R3,R2;

Y находится в памяти по адресу, который хранится в R0.

Сумму отправить на место Y.

Составляем программу:

;

Получение младшего байта DAD: MOV A,R ;

и сложение его с другим младшим байтом;

ADD A,@RO ;

перемещение суммы в память ХСН A,@RO ;

Подготовка получения старшего байта и INC RO ;

и другого старшего байта, и MOV A,R ;

их сложение ADDC A,@RO ;

Перемещение старшей части суммы в память ХСН A,@RO 16.1.3 ВЫЧИТАНИЕ ОДНОБАЙТОВОГО ЧИСЛА ИЗ ОДНОБАЙТОВОГО ЧИСЛА Выполнить операцию вычитания однобайтового числа 5Eh из однобайтового числа D0h с использованием операции сложения;

разность загрузить в регистр R7.

Составляем программу:

SUB8: MOV A,#5E CPL A INC A ADD A D 16.1.4 ВЫЧИТАНИЕ ДВУХБАЙТОВОГО ЧИСЛА ИЗ ДВУХБАЙТОВОГО ЧИСЛА Найти разность двух 16-и разрядных чисел 3CD5 и 1FE2 и поместить ее в регистр R3 (старший байт) и в регистр R4 (младший байт).

Составляем программу:

;

Преобразование SUB16: MOV A, #E ;

CPL A ;

вычитаемого ADD A,# ;

MOV R4.A ;

в MOV A,#1F ;

дополнительный CPL A ;

ADDC A,# ;

код MOV R3,A ;

MOV A,R ;

ADD A, # D ;

MOV R4, A ;

MOV A,R ;

ADDC A,#3C ;

MOV R3,A 16.1.5 ЗАГРУЗКА ДВУХБАЙТОВОГО ЧИСЛА ИЗ ОЗУ В РЕГИСТРЫ R2, R Адрес ОЗУ в R0.

Составляем программу:

DLD: MOV A,@RO XCH A,R INC RO MOV A,@RO XCH A,R 16.1.6 ПРЕОБРАЗОВАНИЕ ОДНОБАЙТОВОГО ЧИСЛА СО ЗНАКОМ ИЗ ПРЯМОГО КОДА В ДОПОЛНИТЕЛЬНЫЙ (ИЛИ НАОБОРОТ) В ВИДЕ ПОДПРОГРАММЫ Число находится в ячейке памяти с адресом в R Составляем программу:

;

COD: MOV A,@R ;

Знаковый бит в С.

RLC A ;

Если знак положительный, то прекратить JNC RETURN ;

Инверсия, CPL A ;

число на место RRC A ;

и плюс ADD A,# ;

MOV @R1,A ;

RET 16.1.7 ДВОЙНОЙ ЛОГИЧЕСКИЙ СДВИГ ВЛЕВО Исходное слово в R7 (старший байт) и R6 (младший байт) Составляем программу:

;

Младший байт в А, LLSH: ХСН А,R ;

сдвиг влево содержимого А, RLC А ;

и его обмен с содержимым R ХСН А,R ;

Старший байт в А, ХСН А,R ;

сдвиг влево содержимого А, RLC А ;

и его обмен с содержимым R ХСН А,R 16.1.8 ДВОЙНОЙ ЛОГИЧЕСКИЙ СДВИГ ВПРАВО ИСХОДНОЕ СЛОВО В R7 (СТАРШИЙ БАЙТ) И R6 (МЛАДШИЙ БАЙТ) Составляем программу:

;

Старший байт в А, LLSH: ХСН А,R ;

сдвиг вправо содержимого А, RRC А ;

и его обмен с содержимым R ХСН А,R ;

Младший байт в А, ХСН А,R ;

сдвиг вправо содержимого А, RRC А ;

и его обмен с содержимым R ХСН А,R 16.1.9 УМНОЖЕНИЕ ДВУХ ОДНОБАЙТОВЫХ ЧИСЕЛ Результат имеет длину два байта. Регистры распределяются следующим образом: Rl, R2 сомножители, R3 счетчик цикла. Произведение будет находиться в А (старший байт) и Rl (младший байт).

Составляем программу:

R3,#08 ;

Организация счетчика с цик BMPY: MOV ;

лом, равным 8, в регистре ;

R ;

Очистка А CLR A ;

Очистка С CLR С ;

Сдвиг двойного слова BMP1: RRC A ;

(содержимого А XCH A,R ;

с обменом его ;

с содержимым RRC A ;

R XCH A,R ;

Переход к ВМРЗ в случае, JNC ВМРЗ ;

если триггер признака перено ;

са установлен в состояние 1.

;

Сложение множимого и А ADD A,R R3,BMP ;

Уменьшение счетчика на еди ВМРЗ: DJNZ ;

ницу и переход на адрес BMP1, ес ;

ли R ;

Сдвиг А RRC А ;

Обмен содержимого А и R XCH A,R ;

RRC А ;

XCH A,R 16.2 Программирование ввода и вывода 16.2.1 ВВОД И ВЫВОД ДАННЫХ (ПОДПРОГРАММА) Если 3-й разряд порта Р1 находится в 0, то 1-й разряд порта Р2 установить в состояние 1;

и наоборот: если 3-й разряд порта Р1 находится в 1, то 1-й разряд порта Р2 установить в состояние 0.

Составляем программу:

;

Ввод байта с порта Р IOD: IN A,P ;

и выделение 3-го бита (остальные в 0).

ANL # ;

Если результат не ноль (D3 равен 1), то перейти на М1.

JNZ M ;

Установить бит 1 порта Р2 в 1 (остальные ORL P2,# ;

биты без изменения) и выйти из подпрограммы.

RET P2,#FD ;

Установить бит 1 порта Р2 в 0 (остальные биты M1: ANL ;

без изменения) и выйти из подпрограммы.

RET 16.2.2 ОРГАНИЗАЦИЯ ЗАДЕРЖКИ ПРИ ВВОДЕ И ВЫВОДЕ ДАННЫХ В ВИДЕ ПОДПРОГРАММЫ Очень часто приходится с помощью программных средств – особенно при операциях ввода/вывода – осуществлять формирование задержек. Например, необходимо сформировать интервал времени ТИ = 1/F, где F=4800 бит/с – скорость передачи/приема в последовательной линии связи. Пусть тактовая частота ОЭВМ FCLK = 2016000 Гц.

Для организации подпрограммы задержки используем команды: MOV R,#data;

DJNZ R,address;

RET. Каждая команда занимает 2 машинных цикла (таблица 15.1), каждый машинный цикл занимает 5 тактов (раздел 14).

Следовательно, каждая команда будет занимать время ТК=251/ FCLK. При этом число повторения команд должно равняться N = ТИ/ТК = (1/4800)/(10/2016000) = 42. Разобьем их следующим образом:

R,#data – 1 повтор, DJNZ R, address – 40 (28h) повторов, RET – 1 повтор.

Составляем подпрограмму задержки:

TIM1: MOV R1,#28 ;

Загрузка в R1 числа ;

R1-1;

Если результат не ноль, то перейти на М1.

M1: DJNZ R1,M ;

Выйти из подпрограммы.

RET Если нужно сформировать задержку вполовину меньше, то это можно сделать так:

TIM05: MOV R1,#14 ;

Загрузка в R1 числа ;

R1-1;

Если результат не ноль, то перейти на М1.

M1: DJNZ R1,M ;

Выйти из подпрограммы.

RET Естественно, что приведенные решения по реализации тех или иных типовых операций не являются единственными. Многообразие команд однокристального микроконтроллера позволяет одну и ту же процедуру запрограммировать различными способами. Вопрос лишь заключается в том, чтобы решение было эффективным. Приведенные решения, естественно, не претендуют на эффективность, так как здесь была поставлена другая задача – в наиболее очевидной и понятной форме привязать условия выполнения типовых процедур к их реализации на ассемблере.

16.3 ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ 16.3.1 Каков алгоритм сложения многобайтовых чисел без знака?

16.3.2 Каким должен быть алгоритм сложения вычитания в ОЭВМ 1816?

16.3.3 Каков алгоритм преобразования чисел со знаком из прямого кода в дополнительный?

16.3.4 Каков алгоритм сдвига многобайтовых чисел влево?

16.3.5 Каков алгоритм сдвига многобайтовых чисел вправо?

16.3.6 Как выглядит программа на ассемблере сложения 3-х байтовых чисел?

16.3.7 Как выглядит программа сдвига 3-х байтовых чисел вправо/влево?

16.3.8 Охарактеризуйте ввод/вывод с совместным анализом данных портов?

16.3.9 Как программным путем можно осуществить задержку на заданную величину?

17 Взаимодействие микроконтроллера с объектом управления и управляющей ЭВМ 17.1 Организация ввода и вывода данных через УСО Возросшие требования к скорости, точности обработки информации и значительно увеличившийся ее объем привели к необходимости широкого применения средств вычислительной техники. Стало практически невозможно качественно и в короткий срок проверить вручную техническое состояние сложного объекта, аппаратуры. Решению этой задачи способствует активное внедрение микроэлектронной техники в системы контроля.

Попытки использования для этих целей больших ЭВМ и мини-ЭВМ, работающих в режиме разделения времени, встретили такие трудности, как недостаточно высокий уровень надежности связи с удаленными объектами, неэффективность использования ЭВМ по стоимости, трудно контролируемое время ответа ЭВМ. Успехи микроэлектроники и особенно появление досту пных, надежных и сравнительно недорогих микроЭВМ привели к возможности реализации идеи децентрализованного контроля.

Децентрализованный контроль позволяет разместить микроЭВМ рядом с проверяемым объектом, а зачастую и встраивать прямо в объект.

Программные средства, предназначенные для обеспечения режима разделения времени между многими объектами, требуют больших накладных расходов в добавление к значительным затратам на аппаратурные средства.

Такого рода затраты полностью отсутствуют в децентрализованной системе.

Следует также отметить еще одно важное достоинство децентрализованных систем — их высокую надежность, так как выход из строя одной из систем не оказывает никакого влияния на другие системы.

Рассмотрим функции микроЭВМ в системе контроля и управления.

Собственно говоря, они сводятся к следующим независимым операциям:

- ввод численных значений аналоговых сигналов;

- ввод дискретных значений релейных сигналов;

- предварительная обработка введенных значений сигналов;

- вывод численных значений аналоговых сигналов;

- вывод дискретных значений релейных сигналов.

Эти функции реализуются с помощью технических средств УСО и соответствующих подпрограмм. Последние, как правило, составляются (или пишутся) на ассемблере. Следует особенно отметить, что подпрограммы, связанные с вводом и выводом, по объему невелики, поэтому их эффективнее писать на ассемблере, так как в этом случае они получаются компактными, без излишних процедур и «прозрачными», что позволяет их модернизировать даже в оттранслированном виде. Эти подпрограммы вызываются двумя способами:

- программно, с помощью резидентной программы-диспетчера (supervisor);

- по прерыванию (interrupt) - при поступлении соответствующего параметра на вход (как правило, прерывание вызывается изменением параметра).

Введенный параметр помещается в определенную область памяти, называемой буфером обмена. При этом устанавливается бит признака Fi ввода i-х данных. Указанные признаки регулярно проверяются супервизором.

И в случае обнаружения установленного признака по одному из входных параметров супервизором вызывается соответствующая подпрограмма предварительной обработки введенного i-го параметра (линеаризация, интерполяция, масштабирование и тому подобное), при этом флаг Fi признака введенного параметра сбрасывается в ноль.

Для изучения ввода и вывода информации через УСО, основанном на микроЭВМ, рассмотрим конкретные функциональные элементы УСО и на их основе программирование ввода и вывода информации.

На рисунке 17.1 представлена функциональная схема фрагмента УСО, Рисунок 17.1 – Фрагмент УСО ввода аналоговых сигналов осуществляющая ввод аналоговой информации размером в один байт. АЦП – с фиксатором входного напряжения по сигналу S=1.

Допустим, что в качестве микроЭВМ используется ОЭВМ из серии 1816. В таком случае порт IOP будет составной частью ОЭВМ. Будем считать, что под буфер обмена отведены ячейки внутренней ОЗУ (рисунок 17.2) в соответствии с таблицей 17.1. Под признаки поступления информации отведен регистр R7 (или то же самое – ячейка внутренней ОЗУ с адресом 07), причем номер бита соответствует номеру входного напряжения (рисунок 17.1).

Таблица 17.1 – Размещение в ОЗУ значений входных сигналов u0 u1 u2 u3 u4 u5 u6 u ui Адрес 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh Рисунок 17.2 – Распределение ОЗУ Составим алгоритм подпрограммы ввода данных по одному из параметров, допустим, по параметру u3 (рисунок 17.3).

input u Загрузить в R0 адрес буфера u3 (R0:=1B) Выставить адрес 03 в MS Запустить АЦП (S=1) u3 поместить в буфер (MR0 :=A) Снять сигнал пуска S (S=0) Признаки ввода А (A:= R7) АЦП END=?

1 Установить: D3:=1 (F3=1) Ввести u3 (A:=P1) 0 Вернуть признаки (R7:= A) Возврат Рисунок 17.3 – Блок-схема алгоритма ввода u Используя таблицу 15.1 команд ОЭВМ, реализуем алгоритм, представленный на рисунке 17.3:

INPUT3: MOV A,#F3 ;

Загрузить адрес канала №3 MS в А и OUT P2,A ;

переслать его в порт Р2 (бит D4=1!!!).

ORL P2,#08 ;

Запустить преобразование АЦП по фик ANL P2,#F7 ;

сированному значению u3 и снять пуск.

END_AD: IN A,P2 ;

Ввод содержимого порта 2 в аккумулятор CPL A ;

и инверсия;

JB4 END_AD ;

если бит 4=1(END=0), то снова ввод Р2.

IN A,P1 ;

Ввод из порта Р1 значения u3, MOV R0,#1B ;

загрузка адреса буфера u3 в R0 и MOV @RO,A ;

пересылка значения u3 в буфер обмена.

MOV A,R7 ;

Пересылка признаков ввода в регистр A, ORL A,#08 ;

установка флага F3=1 и MOV R7,A ;

возврат признаков ввода.

RET ;

Выход из подпрограммы ввода.

Аналогично решается ввод дискретной информации (релейных сигналов).

Для изучения вывода информации через УСО рассмотрим другой фрагмент УСО, представленный на рисунке 17.4.

Рисунок 17.4 – Фрагмент УСО вывода релейных сигналов Этот фрагмент реализует вывод релейной информации. Рассмотрим на примере этого фрагмента программирование релейными управления сигналами. Будем считать, что в системе текущие значения выходных релейных сигналов Si хранятся в ячейках ОЗУ согласно таблице 17.2.

Таблица 17.2 – Размещение состояния выходов Si в ОЗУ Адрес ОЗУ 7 6 5 4 3 2 1 20h S1 S2 S3 S4 S5 S6 S7 S 21h S9 S10 S11 S12 S13 S14 S15 S Прежде чем приступить к анализу алгоритма подпрограммы вывода, необходимо отметить следующее. Вызываемая подпрограмма вывода релейной информации, как правило, является унифицированной, в связи с чем она предусматривает настройки на конкретный вид операции.

Элементы ОЭВМ для настройки подпрограммы вывода:

а) регистр R6 (младшая тетрада D3…D0) – содержит выводимое состояние четырех релейных сигналов (S1…S4 или S5…S8, или S9…S12, или S13…S16);

б) регистр R5 (D5…D0) – содержит управляющее слово для адреса демультиплексора и стробы записи в триггеры выходных релейных сигналов – в соответствии с функциональной схемой (рисунок 17.4) Итак, пусть необходимо установить S9 (S9:=1) и сбросить S10 (S10:=0).


Блок-схема алгоритма основной части программы OUT_S9 и подпрограммы LOUT_S вывода релейных сигналов представлены соответственно на рисунках 17.5 и 17.6.

LOUT_S Начало A:= R Адрес состояний Si в R (новое состояние {Si} в А) Состояния Si в А A порт Р Регистр A: D7=1, D6= A:= R Вернуть состояния Si (управляющее слово в А) Поменять тетрады в А A порт Р R6:=A (выбор канала MS, установка строба записи в выбранный R5:=xx00 ) (1-й канал MS) P2:= P2xx (запись в выбранные триггеры по LOUT_S заднему фронту предварительно установленного строба Конец Возврат Рисунок 17.5 – Программа установки: S9=1, S10=0 Рисунок 17.6 – Подпрограмма вывода Используя таблицу 15.1 команд ОЭВМ, реализуем алгоритмы, представленные на рисунках 17.5 и 17.6:

OUT_S9: MOV R0,#21 ;

Адрес слова состояния S9…S16 в R0 и MOV A,@R0 ;

слово состояния из ОЗУ в аккумулятор А.

ORL A,#80 ;

Установить D7=1 (соответствует S9) и ANL A,#BF ;

D6=0 (соответствует S10).

MOV @R0,A ;

Вернуть слово состояния S9…S16 в ОЗУ.

SWAP A ;

Переставить тетрады местами (согласно MOV R6,A ;

рисунку 17.4) и переслать в R6.

MOV R5,#09 ;

Управляющее слово в R5.

CALL LOUT_S ;

Вызвать подпрограмму вывода релейных ………………… ;

сигналов {Si} LOUT_S: MOV A,R6 ;

Слово состояния релейных сигналов в А OUT P1,A ;

и вывод их оттуда в порт Р1.

MOV A,R5 ;

Управляющее слово в А и вывод его OUT P2,A ;

оттуда в порт Р2.

ANL P2,#03 ;

Запись S9…S12 в выбранные триггеры.

RET ;

Возврат.

17.2 Обмен данными между микроконтроллером и управляющей ЭВМ При обмене данными между контроллером и управляющей ЭВМ взаимодействуют два интеллектуальных объекта, при этом управляющая ЭВМ является ведущим объектом, а микроконтроллер – ведомым. Это значит, что микроконтроллер должен понимать (то есть, реализовывать) определенный набор команд от управляющей ЭВМ. Этот набор обычно составляет от одного до нескольких десятков одно- и двухбайтовых команд.

Независимо от того, кто является ведущим, а кто ведомым, прием осуществляется всегда по аппаратному прерыванию, а передача – по программному.

Каналом связи, как правило, является последовательный интерфейс с одним из установленных стандартом протоколов (например, RS-232, или С 2).

17.2.1 КРАТКАЯ ХАРАКТЕРИСТИКА ФУНКЦИЙ УПРАВЛЯЮЩЕЙ ЭВМ Управляющая ЭВМ должна помогать оператору проводить установку и настройку аппаратуры контроля, задавать системе контроля исходные параметры, выдавать информацию о ходе контроля в реальном масштабе времени, фиксировать сбойные ситуации и ошибки, выдавать в виде печатного документа протокол контроля объекта. Кроме того, должна иметься возможность оперативно вносить исправления и добавления в программу контроля как в процессе отладки, так и в процессе ее прохождения на управляющую ЭВМ. Для этой цели разрабатываются и используются диалоговые языки программирования.

Среди диалоговых языков в последнее время, большое распространение получил язык С (си): Visual-C, Turbo-C и тому подобное, входящий в программное обеспечение ряда микроЭВМ. Этот язык обладает всеми свойствами, которые присущи диалоговым языкам такого рода:

- сравнительной доступностью для изучения;

- возможностью использования обозначений, подобных обычным математическим;

- способностью работы как в диалоговом, так и в программном режимах;

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

- диагностикой ошибок.

Для внесения предусмотренных технологией управления поправок в ход выполнения программ в состав программного обеспечения встраиваются интерпретаторы (раздел 20) с минимально необходимым набором операторов, которые не требуют от оператора глубоких профессиональных знаний в области программирования.

17.2.2 ОРГАНИЗАЦИЯ ВВОДА-ВЫВОДА В МИКРОКОНТРОЛЛЕРЕ ПРИ ОБМЕНЕ ДАННЫМИ С УПРАВЛЯЮЩЕЙ ЭВМ Чтобы ознакомиться с этим вопросом более предметно, рассмотрим фрагмент схемы, представленной на рисунке17.7, который является типовым представителем технического решения последовательного канала связи управляющей ЭВМ и микроконтроллера на основе ОЭВМ Рисунок 17.7 – Фрагмент схемы микроконтроллера, обеспечивающий связь с управляющей ЭВМ Здесь - инвертирующие элементы: слева – приемник сигналов из линии с протоколом RS-232;

справа – передатчик в линию с протоколом RS-232.

Из рисунка 17.7 следует, что здесь отсутствует контроллер последовательного интерфейса (например, совместимый 580ВВ51), а последовательный интерфейс в данном случае может быть реализован только программными средствами. Это еще одна особенность использования ОЭВМ.

Тактирование входных битов последовательного кода при преобразовании его в параллельный код (и наоборот) осуществляется с помощью внутреннего таймера, программно настроенного на длительность интервала между двумя соседними битами. К сожалению рамки темы не позволяют более подробно рассмотреть алгоритмы и подпрограммы ввода и вывода данных в канале связи с управляющей ЭВМ, поэтому отметим основные особенности этих подпрограмм.

Подпрограмма ввода вызывается по прерыванию - при появлении на входе INT логического нуля, что соответствует началу стартового бита последовательной посылки. Затем вход INT маскируется, и с него через фиксированные интервалы времени, определяемые задержкой (TIM), «вводятся» биты (как правило, 8 бит), из которых командами логического сдвига формируется байт. Перед началом ввода осуществляется задержка в половину заданного интервала для обеспечения считывания бита по их центру. После чего вход INT демаскируется, и ОЭВМ снова готова принять по прерыванию из канала связи следующую посылку. Ниже приведен пример подпрограммы IN_INT ввода байта по прерыванию. Подпрограммы TIM1 и TIМ05 приведены в разделе 16.

IN_INT: DIS I ;

Запретить прерывание по входу INT.

MOV R2,#08 ;

Инициализация счетчика R2 на 8 циклов.

CALL TIM05 ;

Вызов задержки на 0,5 интервала.

M2: CALL TIM1;

Вызов задержки на 1 интервал.

CLR C ;

Флаг С в ноль;

если на входе INT ноль, JNI M1 ;

то перейти на М1;

в противном случае CPL C ;

флаг С проинвертировать (то есть С=1).

;

Сдвиг в А влево (D0:= C).

M1: RLC A ;

Уменьшить R2;

если не 0, то на М2.

DJNZ R2,M CLR F1 ;

Установить флаг CPL F1 ;

F1 (F1=1) – признак принятого байта.

EN I ;

Разрешить прерывание.

RETR ;

Возврат из аппаратного прерывания.

В результате работы подпрограммы принятый байт находится в аккумуляторе, а сам факт приема байта от ЭВМ (для супервизора) зафиксирован флагом F1 (F1=1).

Подпрограмма вывода очень похожа на подпрограмму ввода. Стартовый бит, равный нулю, располагается во флаге С, выводимый байт – в аккумуляторе. Пример подпрограммы вывода OUT_RS232 приведен ниже.

OUT_RS232: MOV R2,#09 ;

Число сдвигов – в регистр R2.

;

Сдвиг вправо в A: D7:= C.

M2: RRC A OUT P1,A ;

Вывести в порт Р1 (разряд D7).

DJNZ R2,M1 ;

R2 – 1;

если не 0, то на М1.

RET ;

Выйти из подпрограммы.

M1: CALL TIM1;

Вызов задержки на 1 интервал.

JMP M2 ;

Переход на М2 (следующий сдвиг).

17.3 Вопросы для самопроверки 17.3.1 Как используется ОЗУ МС 1816ВЕ35 в подпрограммах ввода данных УСО?

17.3.2 Как используется аппаратное прерывание в системе обмена данными между микроконтроллером и управляющей ЭВМ?

17.3.3 Как используется таймерные программы в системе обмена данными между микроконтроллером и управляющей ЭВМ?

17.3.4 По какому интерфейсу обмен данными между микроконтроллером и управляющей ЭВМ?

17.3.5 Как происходит преобразование из последовательного кода в параллельный?

17.3.6 Как происходит преобразование из параллельного кода в последовательный?

17.3.7 Для чего нужны буферы обмена данными?

17.3.8 Как используются команды сдвига и ветвлений МС 1816ВЕ подпрограммах ввода-вывода?

17.3.9 Какие флаги МС 1816ВЕ35 и как используются в подпрограммах ввода-вывода?

17.3.10 Перечислите задачи, решаемые управляющей ЭВМ.

17.3.11 Дайте характеристику программному обеспечению управляющей ЭВМ.

18 Элементы дистанционного измерения Автоматизированные системы измерения, контроля и управления – по отношению к источникам информации – могут быть локальными и Разделителем здесь является способ доставки дистанционными.

информации от датчика (с измерительным преобразователем) к устройству сопряжения на микроЭВМ. Выбор этого способа обусловлен сохранением достоверности (по крайней мере, незначительным ухудшением) полученной с помощью датчика и измерительного преобразователя информации. При измерении под достоверностью подразумевают погрешность, с которой получена количественная информация.

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

При некотором критическом удалении источника информации от места его обработки на качестве информации начинают сказываться параметры линии связи, ухудшающие достоверность информации: частотная и динамическая характеристики и уровень помех. Таким образом, в системе автоматизированного контроля линию связи (канал связи) приходиться выделять отдельным структурным элементом, а решение проблемы качества передачи информации через нее осуществлять с помощью специальных методов модуляции и демодуляции (кодирования-декодирования). Область техники, к которой относится решение указанной проблемы, называется телеизмерением, устройства – телеизмерительными, а системы – системами дистанционного измерения (СДИ).

Телеизмерительные устройства — это автоматические измерительные приборы, предназначенные для измерения на расстоянии путем ряда автоматических преобразований и передачи сигналов через канал связи.


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

В телеизмерении применяются методы и технические средства телепередачи через канал связи с учетом специфики измерительной техники:

1) Методы и технические средства уменьшения влияния канала связи с изменяющимся затуханием и сравнительно высоким уровнем помех на погрешность телеизмерений. С этой целью на передающей стороне в большинстве случаев производится кодирование или преобразование выходного параметра первичного преобразователя (датчика) в параметр, мало подверженный влиянию затухания и помех в канале связи;

соответственно на приемной стороне часто применяются обратные преобразования.

2) Из экономических соображений, вызванных тем, что стоимость канала связи значительно превышает стоимость устройств телеизмерений, один канал связи в большинстве случаев используется для передачи многих телеизмерений.

18.1 Характеристика СДИ показателей объектов Устройства телеизмерений принято разделять по методу формирования сигналов для передачи через канал связи, т. е. по способу модуляции и кодирования. Если при модуляции синусоидального колебания, передаваемого через канал связи, e(t) =A sin (t+) измеряемая величина модулирует амплитуду А, частоту или фазу, то устройства соответственно называются устройствами телеизмерений с амплитудной, частотной или фазовой модуляцией, или просто амплитудными, частотными или фазовыми устройствами.

В выборе способа модуляции измеряемым параметром больше возможностей при использовании импульсного тока как переносчика информации. Так, применяются устройства с амплитудно-импульсной, фазоимпульсной, времяимпульсной, широтно-импульсной и кодоимпульсной модуляцией.

На выбор способа модуляции в системе телеизмерения существенно влияют изменения параметров канала связи.

В системах дистанционных измерений широко применяются три группы устройств телеизмерений:

1) с частотной и частотно-импульсной модуляцией;

2) с широтно-импульсной и время-импульсной модуляцией;

3) с кодоимпульсной модуляцией.

На рисунке 18.1 приведена обобщенная структурная схема одноканального устройства телеизмерения.

Рисунок 18.1 – Одноканальная система телеизмерений Здесь измеряемая физическая величина хi (давление, уровень, скорость и тому подобное) преобразуется с помощью первичного преобразователя ПП в промежуточный, обычно унифицированный параметр z, которым может быть величина тока, напряжения, сопротивления и другие. Величина z образуется в передатчике телеизмерений Прд в величину модулируемого параметра сигнала y1, более приспособленного для передачи по каналу связи ЛС. На приемной стороне сигнал у2 поступает на вход приемника Пр и преобразуется (демодулируется) а величину I, которой может быть, например, величина электрического тока, измеряемая выходным прибором ВП. Этот прибор вос производит измеряемую величину x2.

Простейшее телеизмерительное устройство представляет собой цепочку последовательно включенных преобразователей с коэффициентами преобразования:

Выходной сигнал связан с входным соотношением где x2 —величина, воспроизводимая выходным прибором.

В общем виде число преобразователей может быть равно п, тогда (18.1) При изменении коэффициентов преобразования ki в небольших пределах изменение (18.2) Из (18.1) и (18.2) следует, что независимое изменение коэффициента передачи любого из преобразователей на вызывает такую же относительную погрешность телеизмерений. Все это обусловливает высокие требования к стабильности коэффициента передачи каждого преобразователя в отдельности ( 1%).

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

Все устройства и системы телеизмерений разделяются на аналоговые и цифровые.

Система телеизмерений называется дискретной (или цифровой), если значения телеизмеряемой величины из возможного множества оценивают числами.

В тех случаях, когда эти значения составляют бесконечное множество величин, сплошь заполняющих некоторый интервал, то такую случайную телеизмеряемую величину параметра называют непрерывной, а систему — аналоговой.

В большинстве случаев зависимость между величиной телеизмеряемого параметра х1 и индексом (глубиной) модуляции m в канале связи, с помощью которого передается этот параметр, линейная, то есть, где k — постоянный коэффициент.

Во всех аналоговых системах квантование по уровню отсутствует, но может быть квантование по времени, например, во время-импульсных, широтно-импульсных и некоторых других устройствах телеизмерений (ТИ).

На рисунке 18.2 приведена основная классификация систем ТИ по виду модуляции, которой передается измеряемый параметр.

Рисунок 18.2 - Классификация систем ТИ по виду модуляции Все устройства используют дискретные, т. е.

кодоимпульсные квантованные по уровню и по времени сигналы. В таких устройствах параметр всегда передается в виде комбинации двоичного или другого цифрового кода N:

где m — основание цифрового кода (для простых кодов это целое число: 1, 2, 3 и другие);

k—коэффициент.

Одной из характерных особенностей развития современных устройств телеизмерений является все более широкое внедрение цифровых методов передачи, воспроизведения и записи телеизмерительной информации. Такие тенденции вызваны преимуществами цифровых (микропроцессорных) систем, а также преимуществами цифрового воспроизведения и цифровой записи. Кроме того, информация, представленная в цифровом виде, имеет ряд других положительных свойств. Повышение достоверности и помехоустойчивости ее передачи достигается введением корректирующих кодов, а предварительная обработка и суммирование, сбор и передача осуществляются сравнительно простыми устройствами, по существу без накопления ошибок.

Если для первых этапов развития систем телеизмерения было характерно большое разнообразие принципов построения аналоговых методов телеизмерения, то в настоящее время характерен все больший переход к цифровым методам. Аналоговые устройства телеизмерений сохраняются в тех случаях, когда число телеизмерений, передаваемых с одного пункта, невелико и необходимо иметь весьма простую аппаратуру.

Широкому применению цифровых систем телеизмерения способствуют также все большее внедрение унифицированных элементов, агрегатизация устройств и необходимость построения систем, работающих по типовым каналам связи.

18.2 Основы синтеза структуры и элементов СДИ Выбор и обоснование структуры СДИ является сложнейшим технологическим процессом, связанным с множеством исходных данных:

- видами и параметрами измеряемых физических величин;

- погрешностью измерений (которая, как правило, бывает дифференцированной);

- техническими условиями эксплуатации;

- объемом контролируемой информации;

- размером локальных объединений источников информации;

- удаленностью источников от центра обработки и управления;

- наличием и параметрами каналов связи;

- требуемой интенсивности измерений по отдельным источникам или группам источников информации;

- и так далее и тому подобное.

Естественно, в рамках этого раздела невозможно даже приблизится к технологии синтеза структуры СДИ для видов ТИ, представленных на рисунке 18.2. Поэтому, для понимания вопроса остановимся на двух частных случаях, являющихся наиболее распространенными представителями своих классов телеметрии.

18.2.1 СИСТЕМЫ С ЧАСТОТНО-ИМПУЛЬСНОЙ МОДУЛЯЦИЕЙ 18.2.1.1 Каналом связи служит проводная линия (телефонный, контрольный или коаксиальный кабели) со стандартными параметрами (волновым сопротивлением и коэффициентом затухания или погонными индуктивностью, емкостью, сопротивлением потерь и проводимостью).

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

обязательным, так как в этом случае сигнал в линии не содержит постоянной составляющей. Выполнение этого условия черезвычайно важно для входных цепей на приемной стороне. Это связано с тем, что на выходе длинной линии связи, представляющей собой в общем случае фильтр нижних частот с коэффициентом передачи намного меньше единицы, колебания представляют собой по форме экспоненциальные (или почти треугольные) импульсы с небольшой амплитудой. Тем не менее, в связи с линейностью характеристик линии связи, этот сигнал не содержит постоянной составляющей, что позволяет восстанавливать из него посредством компаратора по точкам пересечения через ноль исходную последовательность прямоугольных импульсов.

18.2.1.3 Измерение частоты f повторения (демодуляция) восстановленной на приемной стороне последовательности импульсов прямоугольной формы производится, как правило, методом дискретного счета с использованием источника эталонной частоты fэт, при этом измеряемый параметр х2=N= fэт/ f= fэтТ.

18.2.1.4 Для ослабления влияния в линии связи э.д.с., наводимой внешними электромагнитными полями, контур с линией должен содержать на передающей стороне в качестве передатчика – источник тока.

18.2.1.5 Уровень аддитивных помех, приведенных к выходу линии связи, по амплитуде не должен превышать амплитудное значение полезного сигнала на выходе линии связи.

18.2.1.6 Диапазон D частоты изменения от fmin до fmax выбирается исходя из следующих условий:

fmin fгр, (18.3) fmax 10-2 fэт (Д 1%) (18.4) где fгр –граничная частота спектра измеряемого параметра. Обычно в подавляющем числе случаев требованиям (18.3) и (18.4) удовлетворяет стандартный диапазон в телеизмерениях, используемых проводные каналы связи, равный:

D = (1,0…2,0) кГц.

18.2.1.7 Частотные модуляторы Частотные модуляторы, используемые на передающей стороне бывают двух типов:

- встроенные в измерительный преобразователи и являющиеся их неотъемлемой частью (потенциометр-частота, давление-частота, влажность частота и тому подобное);

- универсальные, рассчитанные на стандартный вторичный сигнал измерительного преобразователя в виде постоянного напряжения с нулевым нижним пределом и верхним пределом, равным одному из множества следующих значений: 20 мВ;

50 мВ;

100 мВ;

200 мВ;

500 мВ;

1 В;

2 В;

5 В;

10 В.

Последний тип модуляторов синтезируется на основе коммутаторов, интеграторов, выполненных на прецизионных операционных усилителях, компараторов и источников эталонного напряжения. Принцип, заложенный в способ модуляции, заключается в смене знака интегрирования при достижении выходного напряжения с интегратора или уровня входного напряжения, или уровня эталонного напряжения ЕЭ. Если уровень эталонного напряжения выше входного, то с увеличением входного напряжения частота переключений знака интегрирования (она же – частота выходного сигнала) увеличивается. Если уровень эталонного напряжения ниже входного, то с увеличением входного напряжения частота переключений знака интегрирования уменьшается.

На рисунке 18.3 представлен частотно-импульсный модулятор (ЧИМ), выполненный по второму варианту (период Т пропорционален входному напряжению).

Рисунок 18.3 – Модулятор «напряжение-частота»

Несложный анализ схемы позволяет установить следующее соотношение:

UВХ + ЕЭ = ЕЭТ/(4RC), откуда Т =1/f= (UВХ /ЕЭ+1)4RC. (18.5) При UВХ=0 период повторения импульсов (сигнал UВЫХ) Т = Тmin = 4RC ;

при UВХ = ЕЭ период повторения импульсов Т = Тmax = 8RC. Зависимость (18.5) – линейная.

Погрешность преобразования частотных модуляторов такого типа, как правило, не превышает 0,1 %.

Спектр частот при ЧИМ бесконечно убывающий. Однако на приемной стороне достаточно ограничиться только первым лепестком спектра, в котором сосредоточена основная часть энергии, и который при синтезе временной функции представляет сигнал с ЧМ, с шириной спектра около несущей 0 (первой гармоники), (18.6) где - частота модуляции, Д – девиация ЧМ, m=Д/ - индекс модуляции.

Для определения ширины спектра при частотной модуляции и несинусоидальной форме модулирующего сигнала в (18.6) подставляют высшую частоту в спектре: = max.

В телемеизмерениях применяется частотная модуляция с различными глубиной модуляции и формой модулирующего сигнала.

Определим в виде примера минимальную полосу частот канала связи, необходимую для одноканальной системы телеизмерения с частотной модуляцией, при следующих данных: несущая частота f0 =2000 Гц, пределы изменения частоты ±10%, высшая частота сигнала телеизмерения, поступающая от датчика на вход частотного модулятора, FМ =5 Гц.

1) Девиация частоты fД равна максимальному отклонению частоты в одну сторону. В нашем случае отклонение равно 10% от f0, т. е. fД = 0,12000 = Гц.

2) Ширина спектра частотно-модулированных колебаний в соответствии с формулой (18.6) fЧМ =2(fД + FМ) =2(200+5) =410 Гц.

Канал связи должен иметь полосу частот fЧМ =410 Гц и пропускать от нижней частоты 2000—fЧМ /2 = 2000—205 Гц до высшей частоты 2000+ Гц.

18.2.2 СИСТЕМЫ С КОДОИМПУЛЬСНОЙ МОДУЛЯЦИЕЙ Кодоимпульсными называются устройства телеизмерения, в которых измеряемая величина выражается цифрой, т. е. используются дискретные (кодовые) методы передачи. К ним относятся кодоимпульсные устройства и устройства телеизмерения с передачей по каналу связи измеряемой величины в аналоговой форме и с цифровым воспроизведением на приемной стороне.

Необходимо отметить следующую тенденцию: почти все устройства телеизмерений, разработанные за последние 30—35 лет, относятся к цифровым устройствам, что объясняется в первую очередь удобством цифро вого отсчета, наличием микропроцессорной техники и удобством последующей обработки цифровой информации без накопления ошибок.

В устройствах цифровых телеизмерений, реализованных, как правило, на основе микроконтроллеров, преобразователь аналоговой величины в код включается на передающей стороне.

Возможны два различных метода преобразования непрерывной величины в код. Первый метод – метод прямого включения преобразования «аналог код» в измерительное преобразование. В этом случае преобразователь «аналог-код» является неотъемлемой частью измерительного преобразователя. Широко известна классификация по принципам действия, согласно которой существуют следующие методы преобразования аналог код: время-импульсный (метод дискретного счета);

частотно-импульсный (например, цифровой тахометр), метод пространственного кодирования (например, угловые преобразования).

Второй метод основан на преобразовании «аналог-код» с использованием стандартного АЦП, функционирующего в составе узла ИВС по управлением микроконтроллера, организации которого были посвящены ранее рассмотренные разделы.

Таким образом, остается вопрос относительно передачи и приема цифровой информации через канал связи. Как оказывается, этот вопрос не так уж и просто решается. Во-первых, цифровой код для передачи в линию связи необходимо преобразовать в последовательный. Такая задача решается достаточно просто посредством сдвиговых операций. Во-вторых, каждый бит в линии должен быть представлен аналоговыми средствами (на передающей стороне – источниками тока) в виде импульсов. Как уже отмечалось выше, линия связи должна работать без постоянной составляющей. Следовательно, данные, поступающие от узла ИУВС в линию связи, должны быть представленными в биполярном коде без возврата к нулю — NRZ (NonReturn to Zero). Но при передаче данных на большие расстояния в коде NRZ возникают следующие проблемы.

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

2) Отсутствует возможность контроля возникающих ошибок на уровне физического канала.

Перечисленные проблемы решаются при помощи линейного кодирования.

Параметры получаемого линейного сигнала должны быть согласованы с характеристикой используемой линии и отвечать ряду следующих требований.

1) Энергетический спектр линейного сигнала должен быть как можно уже.

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

2) Структура линейного сигнала должна обеспечивать возможность выде ления тактовой частоты на приемной стороне (для устройств синхронизации).

3) Необходимо обеспечить возможность постоянного контроля за ошибка ми на уровне физической линии.

4) Линейный код должен иметь достаточно простую техническую реа лизацию.

Формирование требуемого энергетического спектра может быть осуществлено соответствующим изменением структуры импульсной последовательности и выбором нужной формы импульсов. Например, даже сокращение длительности импульсов в два раза (биимпульсный код с возвратом к нулю, RZ) вдвое уменьшает уровень постоянной составляющей и увеличивает уровень тактовой составляющей в спектре такого сигнала.

Различают неалфавитные (1В1Т) и алфавитные (mBnT) коды (В — двоичное, Т — троичное основание кода). При mn скорость передачи снижается. Предельной помехоустойчивостью обладают сигналы, элементы которых равны, но противоположны по полярности. Примеры наиболее популярных линейных кодов приведены на рисунке 18.4.

Рисунок 18.4 - Примеры кодирования линейными кодами Квазитроичный сигнал с чередованием полярности импульсов AMI (Alter-nete Mark Inversion) получают из двоичного в результате преобразования, при котором нули исходного двоичного кода передаются импульсами нулевой амплитуды, а единицы — импульсами чередующейся полярности и вдвое меньшей длительности. Сигналы с кодом AMI требуют, раздельной регенерации положительных и отрицательных импульсов (рисунок 18.5) при их восстановлении в приемниках.

Рисунок 18.5 - Приемник линейного сигнала в коде AMI Информация о синхронизирующем сигнале, как правило, выделяется после выпрямления квазитроичного сигнала в резонансном устройстве синхронизации. Недостатком кода AMI является то, что при появлении в информационной последовательности серий "нулей" резко снижается уровень синхронизирующей составляющей сигнала, что приводит к срыву синхронизации.

Наиболее широкое распространение получили двухуровневые линейные коды с удвоением скорости передачи класса 1В2В (преобразование группы из одного двухуровневого символа в группу из двух двухуровневых символов), обладающие высокой помехозащищенностью, простотой преобразования и выделения тактовой частоты. Однако частота следования импульсов таких кодов, а следовательно, и требуемая полоса частот передачи вдвое превышает частоту следования исходной двоичной последовательности. К таким кодам относятся коды Манчестер, DMI, CMI, NEW, код Миллера (М), М2, код отечественного стыка С1-И (С1-ФЛ-БИ) и ряд других менее популярных.



Pages:     | 1 |   ...   | 2 | 3 || 5 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.