This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
, вывод: P :=, где Р выбирается из ряда Р0, Р1, Р2, например: Ассемблер
IN
A,P1
Машинный код код операции
операнд
00001001
-
Комментарий
А :=
15.2.2.2 Команды логических операций И, ИЛИ с содержимым портов Эта группа команд осуществляет операции вида: Pi :=
ANL BUS,#5D
Машинный код код операции
операнд
10011000
01011101
Комментарий
P0 :=
15.2.3 КОМАНДЫ ПЕРЕХОДОВ 15.2.3.1 Команды безусловных переходов Эта группа команд имеет два формата: а) переход по адресу (11-и разрядному), указанному в команде, например: Ассемблер
JMP
61C
Машинный код
Комментарий
код операции
операнд
СК :=61Сh,
11000100
00011100
(Старший бит СК (А11)– номер банка ПЗУ)
адрес перехода б) переход по адресу внутри страницы (размер страницы – 256 байт), указанному в регистре А. Например, пусть <А>=1Е: Текущий адрес
5C0
Ассемблер
JMPР @A
(Номер страницы)
Машинный код код операции
операнд
10110011
-
Комментарий
СК :=51Еh
15.2.3.2 Команды условных переходов Данная двухбайтовая команда осуществляет переход внутри страницы, если выполняется условие, указанное в команде (таблица 15.1). В противном случае команда выполняется как пустая (NOP). В качестве признаков условий перехода используются: - флаг С; - флаг F0; - флаг F1; - вход INT; - вход Т0; - вход Т1; - нулевой/ненулевой результат операций в регистре А; - состояние указанного бита регистра А. Например, пусть <С>=0: Текущий адрес
3Е1
Ассемблер
JNC F9
(Номер страницы)
Машинный код код операции
операнд
10110011
11111001
В другом случае – при <С>=1:
Комментарий
СК :=3F9h
Текущий адрес
3Е1
Ассемблер
JNC F9
(Номер страницы)
Машинный код
Комментарий
код операции
операнд
СК :=3E3h
10110011
11111001
( Адрес следующей команды)
15.2.3.3 Команда-счетчик циклов Это одна из наиболее часто используемых команд и предназначена для организации счетчиков числа различных циклов. Действие команды: R :=
21С
Ассемблер
Машинный код
DJNZ R3,11
(Номер страницы)
Комментарий
код операции
операнд
11101111
00010001
СК :=211h
15.2.4 КОМАНДЫ ПЕРЕХОДА К ПОДПРОГРАММАМ И ВОЗВРАТА 15.2.4 Команда перехода к подпрограммам (вызова подпрограмм) Команда CALL выполняется аналогично команде безусловного перехода (п. 15.2.3.1,а), за одним исключением: адрес команды, следующей за командой CALL, предварительно записывается в стековую память (стек) – для сохранения адреса возврата. Пример выполнения команды CALL: Текущий адрес
1С6
Ассемблер
СALL
51C
Машинный код код операции
операнд
10110100
00011100
Комментарий
1)Стек:=1С8h 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 :=
MOV A,R4
Машинный код код операции
операнд
11111100
-
Комментарий
A :=
б) команды пересылки между ОЗУ и регистром А вида: A := <M
Ассемблер
Машинный код
MOV A,@R1
код операции
операнд
11110001
-
Комментарий
A := <M
15.2.4.2 Команды загрузки данных Эта группа команд имеет 2 формата: а) команды загрузки в регистр данных вида: R := data, где в качестве регистра R может использоваться регистр из ряда R0…R7, а также регистр А, при этом data – данные размером в один байт, например: Ассемблер
MOV A,#0F
Машинный код
Комментарий
код операции
операнд
00100011
00001111
A := 0Fh
б) команды загрузки в ОЗУ вида: M
MOV @R0,#1E
Машинный код код операции
операнд
10110000
00011110
Комментарий
M
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 ADD MOV MOV ADDC MOV
A,#5F A,#D1 R7,A A,#16 A,#7C R6,A
;С учетом переполнения от предыдущей операции
16.1.2 СЛОЖЕНИЕ ДВУХ ДВУХБАЙТОВЫХ ЧИСЕЛ X И Y С ИСПОЛЬЗОВАНИЕМ косвенной адресации X находится в R3,R2; Y находится в памяти по адресу, который хранится в R0. Сумму отправить на место Y. Составляем программу:
DAD: MOV ADD ХСН INC MOV ADDC ХСН
A,R2 A,@RO A,@RO RO A,R3 A,@RO A,@RO
; Получение младшего байта ; и сложение его с другим младшим байтом; ; перемещение суммы в память ; Подготовка получения старшего байта и ; и другого старшего байта, и ; их сложение ; Перемещение старшей части суммы в память
16.1.3 ВЫЧИТАНИЕ ОДНОБАЙТОВОГО ЧИСЛА ИЗ ОДНОБАЙТОВОГО ЧИСЛА Выполнить операцию вычитания однобайтового числа 5Eh из однобайтового числа D0h с использованием операции сложения; разность загрузить в регистр R7. Составляем программу:
SUB8: MOV
A,#5E
CPL
A
INC
A
ADD
A D0
16.1.4 ВЫЧИТАНИЕ ДВУХБАЙТОВОГО ЧИСЛА ИЗ ДВУХБАЙТОВОГО ЧИСЛА Найти разность двух 16-и разрядных чисел 3CD5 и 1FE2 и поместить ее в регистр R3 (старший байт) и в регистр R4 (младший байт). Составляем программу:
SUB16: MOV CPL ADD MOV MOV CPL ADDC MOV MOV ADD MOV MOV ADDC MOV
A, #E2 A A,#1 R4.A A,#1F A A,#0 R3,A A,R4 A, # D5 R4, A A,R3 A,#3C R3,A
;Преобразование ; ; вычитаемого ; ;в ; дополнительный ; ; код ; ; ; ; ; ;
16.1.5 ЗАГРУЗКА ДВУХБАЙТОВОГО ЧИСЛА ИЗ ОЗУ В РЕГИСТРЫ R2, R3 Адрес ОЗУ в R0. Составляем программу:
DLD: MOV XCH INC MOV XCH
A,@RO A,R2 RO A,@RO A,R3
16.1.6 ПРЕОБРАЗОВАНИЕ ОДНОБАЙТОВОГО ЧИСЛА СО ЗНАКОМ ИЗ ПРЯМОГО КОДА В ДОПОЛНИТЕЛЬНЫЙ (ИЛИ НАОБОРОТ) В ВИДЕ ПОДПРОГРАММЫ Число находится в ячейке памяти с адресом в R1 Составляем программу: COD: MOV RLC JNC CPL RRC ADD MOV RET
A,@R1 A RETURN A A A,#1 @R1,A
; ;Знаковый бит в С. ;Если знак положительный, то прекратить ;Инверсия, ;число на место ;и плюс 1 ; ;
16.1.7 ДВОЙНОЙ ЛОГИЧЕСКИЙ СДВИГ ВЛЕВО Исходное слово в R7 (старший байт) и R6 (младший байт) Составляем программу:
LLSH:
ХСН RLC ХСН ХСН RLC ХСН
А,R6 А А,R6 А,R7 А А,R7
;Младший байт в А, ; сдвиг влево содержимого А, ; и его обмен с содержимым R6 ; Старший байт в А, ; сдвиг влево содержимого А, ; и его обмен с содержимым R7
16.1.8 ДВОЙНОЙ ЛОГИЧЕСКИЙ СДВИГ ВПРАВО ИСХОДНОЕ СЛОВО В R7 (СТАРШИЙ БАЙТ) И R6 (МЛАДШИЙ БАЙТ) Составляем программу:
LLSH:
ХСН RRC ХСН ХСН RRC ХСН
А,R7 А А,R7 А,R6 А А,R6
; Старший байт в А, ; сдвиг вправо содержимого А, ; и его обмен с содержимым R7 ; Младший байт в А, ; сдвиг вправо содержимого А, ; и его обмен с содержимым R6
16.1.9 УМНОЖЕНИЕ ДВУХ ОДНОБАЙТОВЫХ ЧИСЕЛ Результат имеет длину два байта. Регистры распределяются следующим образом: Rl, R2 − сомножители, R3 − счетчик цикла. Произведение будет находиться в А (старший байт) и Rl (младший байт). Составляем программу: BMPY:
BMP1:
MOV CLR CLR RRC XCH RRC XCH JNC
ВМРЗ:
ADD DJNZ RRC XCH RRC XCH
R3,#08 ; Организация счетчика с цик; лом, равным 8, в регистре ; R3 ; Очистка А A ; Очистка С С ; Сдвиг двойного слова A ; (содержимого А A,R1 ; с обменом его ; с содержимым A ; R1 A,R1 ; Переход к ВМРЗ в случае, ВМРЗ ; если триггер признака перено; са установлен в состояние 1. ; Сложение множимого и А A,R2 R3,BMP ;Уменьшение счетчика на еди; ницу и переход на адрес BMP1, ес; ли R3≠0 ; Сдвиг А А ; Обмен содержимого А и R1 A,R1 ; А ; A,R1
16.2 Программирование ввода и вывода
16.2.1 ВВОД И ВЫВОД ДАННЫХ (ПОДПРОГРАММА) Если 3-й разряд порта Р1 находится в 0, то 1-й разряд порта Р2 установить в состояние 1; и наоборот: если 3-й разряд порта Р1 находится в 1, то 1-й разряд порта Р2 установить в состояние 0. Составляем программу: IOD: IN ANL JNZ ORL RET M1: ANL RET
A,P1 #04 M1 P2,#02
; Ввод байта с порта Р1
; и выделение 3-го бита (остальные в 0). ; Если результат не ноль (D3 равен 1), то перейти на М1. ;Установить бит 1 порта Р2 в 1 (остальные ; биты без изменения) и выйти из подпрограммы. P2,#FD ;Установить бит 1 порта Р2 в 0 (остальные биты ; без изменения) и выйти из подпрограммы.
16.2.2 ОРГАНИЗАЦИЯ ЗАДЕРЖКИ ПРИ ВВОДЕ И ВЫВОДЕ ДАННЫХ В ВИДЕ ПОДПРОГРАММЫ Очень часто приходится с помощью программных средств – особенно при операциях ввода/вывода – осуществлять формирование задержек. Например, необходимо сформировать интервал времени ТИ = 1/F, где F=4800 бит/с – скорость передачи/приема в последовательной линии связи. Пусть тактовая частота ОЭВМ FCLK = 2016000 Гц. Для организации подпрограммы задержки используем команды: MOV R,#data; DJNZ R,address; RET. Каждая команда занимает 2 машинных цикла (таблица 15.1), каждый машинный цикл занимает 5 тактов (раздел 14). Следовательно, каждая команда будет занимать время ТК=2×5×1/ FCLK. При этом
число
повторения
команд
должно
равняться
N
(1/4800)/(10/2016000) = 42. Разобьем их следующим образом: R,#data – 1 повтор, DJNZ R, address – 40 (28h) повторов, RET – 1 повтор.
=
ТИ/ТК =
Составляем подпрограмму задержки: TIM1: MOV R1,#28 ; Загрузка в R1 числа 4010 ; < R1>-1; Если результат не ноль, то перейти на М1. M1: DJNZ R1,M1 RET
; Выйти из подпрограммы.
Если нужно сформировать задержку вполовину меньше, то это можно сделать так: TIM05: MOV R1,#14 ; Загрузка в R1 числа 2010 ; < R1>-1; Если результат не ноль, то перейти на М1. M1: DJNZ R1,M1 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 – Размещение в ОЗУ значений входных сигналов ui
u0
u1
u2
u3
u4
u5
u6
u7
Адрес
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
Рисунок 17.2 – Распределение ОЗУ Составим
алгоритм
подпрограммы
ввода
данных
по
одному
из
параметров, допустим, по параметру u3 (рисунок 17.3).
input u3 Загрузить в R0 адрес буфера u3 (R0:=1B)
Выставить адрес 03 в MS
u3 поместить в буфер
Запустить АЦП (S=1)
(M〈R0〉 :=〈A〉) Снять сигнал пуска S (S=0)
Признаки ввода → А (A:= 〈R7〉)
АЦП END=? 1 0
Установить: D3:=1 (F3=1)
Ввести u3 (A:=〈P1〉)
Вернуть признаки (R7:= 〈A〉) Возврат
Рисунок 17.3 – Блок-схема алгоритма ввода u3 Используя
таблицу
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
0
20h
S1
S2
S3
S4
S5
S6
S7
S8
21h
S9
S10
S11
S12
S13
S14
S15
S16
Прежде чем приступить к анализу алгоритма подпрограммы вывода, необходимо отметить следующее. Вызываемая подпрограмма вывода релейной информации, как правило, является унифицированной, в связи с чем она предусматривает настройки на конкретный вид операции. Элементы ОЭВМ для настройки подпрограммы вывода: а) регистр 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
Адрес состояний Si в R0
A:= 〈R6〉 (новое состояние {Si} в А)
Состояния Si в А
〈A〉 → порт Р1
Регистр A: D7=1, D6=0
A:= 〈R5〉 (управляющее слово в А)
Вернуть состояния Si
Поменять тетрады в А
〈A〉 → порт Р2
R6:=〈A〉
(выбор канала MS, установка строба записи в выбранный )
R5:=xx00 10012 (1-й канал MS)
P2:= 〈P2〉∧xx0000112
(запись в выбранные триггеры по заднему фронту предварительно установленного строба
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:
M2:
DIS I
;Запретить прерывание по входу INT.
MOV R2,#08
;Инициализация счетчика R2 на 8 циклов.
CALL TIM05
;Вызов задержки на 0,5 интервала.
CALL TIM1;Вызов задержки на 1 интервал.
M1:
CLR C
;Флаг С в ноль; если на входе INT ноль,
JNI
;то перейти на М1; в противном случае
M1
CPL C
;флаг С проинвертировать (то есть С=1).
RLC A
;Сдвиг в А влево (D0:= 〈C〉).
DJNZ R2,M2
;Уменьшить 〈R2〉; если не 0, то на М2.
CLR F1
;Установить флаг
CPL F1
; F1 (F1=1) – признак принятого байта.
EN
;Разрешить прерывание.
I
RETR
;Возврат из аппаратного прерывания.
В результате работы подпрограммы принятый байт находится в аккумуляторе, а сам факт приема байта от ЭВМ (для супервизора) зафиксирован флагом F1 (F1=1). Подпрограмма вывода очень похожа на подпрограмму ввода. Стартовый
бит, равный нулю, располагается во флаге С, выводимый байт – в аккумуляторе. Пример подпрограммы вывода OUT_RS232 приведен ниже. OUT_RS232: M2:
M1:
MOV R2,#09
;Число сдвигов – в регистр R2.
RRC A
;Сдвиг вправо в A: D7:= 〈C〉.
OUT P1,A
;Вывести в порт Р1 (разряд D7).
DJNZ R2,M1
;〈R2〉 – 1; если не 0, то на М1.
RET
;Выйти из подпрограммы.
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ВЕ35 подпрограммах ввода-вывода? 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,1⋅2000 =200 Гц. 2) Ширина спектра частотно-модулированных колебаний в соответствии с формулой (18.6) ∆fЧМ =2(fД + FМ) =2(200+5) =410 Гц. Канал связи должен иметь полосу частот ∆fЧМ =410 Гц и пропускать от нижней частоты 2000—∆fЧМ /2 = 2000—205 Гц до высшей частоты 2000+205 Гц. 18.2.2 СИСТЕМЫ С КОДОИМПУЛЬСНОЙ МОДУЛЯЦИЕЙ Кодоимпульсными называются устройства телеизмерения, в которых измеряемая величина выражается цифрой, т. е. используются дискретные (кодовые) методы передачи. К ним относятся кодоимпульсные устройства и устройства телеизмерения с передачей по каналу связи измеряемой величины в аналоговой форме и с цифровым воспроизведением на приемной стороне. Необходимо отметить следующую тенденцию: почти все устройства телеизмерений, разработанные за последние 30—35 лет, относятся к
цифровым устройствам, что объясняется в первую очередь удобством цифрового
отсчета,
наличием
микропроцессорной
техники
и
удобством
последующей обработки цифровой информации без накопления ошибок. В устройствах цифровых телеизмерений, реализованных, как правило, на основе микроконтроллеров, преобразователь аналоговой величины в код
включается на передающей стороне. Возможны два различных метода преобразования непрерывной величины в код. Первый метод – метод прямого включения преобразования «аналогкод» в измерительное преобразование. В этом случае преобразователь «аналог-код»
является
неотъемлемой
частью
измерительного
преобразователя. Широко известна классификация по принципам действия, согласно которой существуют следующие методы преобразования аналогкод: время-импульсный (метод дискретного счета); частотно-импульсный (например, цифровой тахометр), метод пространственного кодирования (например, угловые преобразования). Второй метод основан на преобразовании «аналог-код» с использованием стандартного АЦП, функционирующего в составе узла ИВС по управлением микроконтроллера,
организации
которого
были
посвящены
ранее
рассмотренные разделы. Таким образом, остается вопрос относительно передачи и приема цифровой информации через канал связи. Как оказывается, этот вопрос не так уж и просто решается. Во-первых, цифровой код для передачи в линию связи необходимо преобразовать в последовательный. Такая задача решается достаточно просто посредством сдвиговых операций. Во-вторых, каждый бит в линии должен быть представлен аналоговыми средствами (на передающей стороне – источниками тока) в виде импульсов. Как уже отмечалось
выше,
линия
связи
должна
работать
без
постоянной
составляющей. Следовательно, данные, поступающие от узла ИУВС в линию связи, должны быть представленными в биполярном коде без возврата к нулю — NRZ (NonReturn to Zero). Но при передаче данных на большие расстояния в коде NRZ возникают следующие проблемы.
1) При неравенстве в среднем числа единиц и нулей с течением времени в линии нарастает постоянный ток, блокируемый некоторыми электрическими устройствами
цифрового
тракта,
например,
трансформаторами
или
компараторами, что приводит к искажению передаваемых импульсных последовательностей (то есть, кодов чисел). А передача длинных серий нулей или единиц вообще приводит к нарушению правильной работы устройств синхронизации, необходимых для преобразования из последовательного кода в параллельный на приемной стороне. 2) Отсутствует возможность контроля возникающих ошибок на уровне физического канала. Перечисленные проблемы решаются при помощи линейного кодирования. Параметры получаемого линейного сигнала должны быть согласованы с характеристикой
используемой
линии
и
отвечать
ряду
следующих
требований. 1) Энергетический спектр линейного сигнала должен быть как можно уже. В нем должна отсутствовать постоянная составляющая, что позволяет повысить верность либо дальность передачи. 2) Структура линейного сигнала должна обеспечивать возможность выделения
тактовой
частоты
на
приемной
стороне
(для
устройств
синхронизации). 3) Необходимо обеспечить возможность постоянного контроля за ошибками на уровне физической линии. 4) Линейный код должен иметь достаточно простую техническую реализацию. Формирование осуществлено
требуемого
энергетического
соответствующим
изменением
спектра структуры
может
быть
импульсной
последовательности и выбором нужной формы импульсов. Например, даже сокращение длительности импульсов в два раза (биимпульсный код с возвратом к нулю, RZ) вдвое уменьшает уровень постоянной составляющей и увеличивает уровень тактовой составляющей в спектре такого сигнала. Различают неалфавитные (1В1Т) и алфавитные (mBnT) коды (В —
двоичное, Т — троичное основание кода). При m>n скорость передачи снижается. Предельной помехоустойчивостью обладают сигналы, элементы которых равны, но противоположны по полярности. Примеры наиболее популярных линейных кодов приведены на рисунке 18.4.
Рисунок 18.4 - Примеры кодирования линейными кодами Квазитроичный сигнал с чередованием полярности импульсов AMI
(Alter-nete
Mark
Inversion)
получают
из
двоичного
в
результате
преобразования, при котором нули исходного двоичного кода передаются импульсами нулевой амплитуды, а единицы — импульсами чередующейся полярности и вдвое меньшей длительности. Сигналы с кодом AMI требуют, раздельной регенерации положительных и отрицательных импульсов (рисунок 18.5) при их восстановлении в приемниках.
Рисунок 18.5 - Приемник линейного сигнала в коде AMI Информация о синхронизирующем сигнале, как правило, выделяется после выпрямления квазитроичного сигнала в резонансном устройстве синхронизации. Недостатком кода AMI является то, что при появлении в информационной последовательности серий "нулей" резко снижается уровень синхронизирующей составляющей сигнала, что приводит к срыву синхронизации. Наиболее широкое распространение получили двухуровневые линейные коды с удвоением скорости передачи класса 1В2В (преобразование группы
из одного двухуровневого символа в группу из двух двухуровневых символов),
обладающие
высокой
помехозащищенностью,
простотой
преобразования и выделения тактовой частоты. Однако частота следования импульсов таких кодов, а следовательно, и требуемая полоса частот передачи вдвое
превышает
частоту
следования
исходной
двоичной
последовательности. К таким кодам относятся коды Манчестер, DMI, CMI, NEW, код Миллера (М), М2 , код отечественного стыка С1-И (С1-ФЛ-БИ) и ряд других менее популярных. Код
Манчестер
характеризуется
однозначным
соответствием
последовательности чередования импульсов внутри тактового интервала. А
именно, "1" исходного цифрового сигнала передается нулевым импульс в первом полутактовом интервале и единичным — во втором. Для символа "О" принимается обратный порядок чередования импульсов (биимпульс 10). Аналогичный код, в котором символ "1" передается двоичной парой 10, а символ "0" — парой 01, называется кодом Манчестер-2. На
стыке
С1-И
символу
"1"
входной
информационной
последовательности соответствует биимпульс 10 или 01, совпадающий с предыдущим, а символу "О" — биимпульс 10 или 01, инверсный по отношению к предыдущему биимпульсу. Другими словами, данный код является
относительным,
подобно
тому,
который
используется
при
модуляции методом ОФМ. Относительное кодирование позволяет решить проблему неопределенности фазы биимпульса на приемной стороне. В результате этого стык С1-И не боится ошибок типа "зеркальный прием", или "обратная работа" (инверсия знаков) и переполюсовки контактов физической линии или используемых разъемов. Энергетические спектры ряда линейных кодов приведены на рисунке 18.6, где fТ —тактовая частота следования исходных двоичных символов. Эти спектры позволяют судить о частотной эффективности и свойствах синхронизации наиболее популярных линейных кодов.
Рисунок 18.6 - Нормированные энергетические спектры линейных сигналов
18.3 Примеры расчета ЧМ модулятора и синтеза КИМ сигналов
18.3.1 РАСЧЕТ ПАРАМЕТРОВ ЧМ МОДУЛЯТОРА Условие задачи №1 Требуется: 1) составить функциональную схему ЧИМ модулятора на основе интегратора и двухуровневого компаратора, управляющего направлением интегрирования; 2) определить максимальную частоту ЧИМ сигнала; 3) определить ширину главного лепестка спектра ЧИМ сигнала; 4) определить предельную погрешность ЧИМ модулятора. Исходные данные для реализации контроля:
- напряжение с датчиков UВХmax, В = 3 В; - дрейф нуля интегратора и компараторов VОУ =VК1 =VК2 = 2 мкВ/град; - диапазон температуры эксплуатации ∆t°= 100 °; - граничная частота сигнала с датчика fГР = 2 Гц.
- конец диапазона ЧИМ сигнала (при UВХ = 0 В) – 1 кГц; - источник эталонного напряжения UЭ = 9,00 В;
- конец диапазона ЧИМ сигнала (при UВХ = 0 В) – 2 кГц; - источник эталонного напряжения UЭ = 9,00 В; Решение задачи №1
1) Составляем функциональную схему ЧИМ модулятора на основе схемы, рассмотренной на лекции №7 (рисунок 3.1). 2) Определяем величину минимального значения частоты ЧИМ сигнала. Для этого воспользуемся формулой:
UВХ + ЕЭ = ЕЭТ/(4RC),
(18.7)
откуда Т =1/f= (UВХ /ЕЭ+1)4RC,
(18.8)
f= 1/[(UВХ /ЕЭ+1)4RC]. Определим величину постоянной интегрирования RC по концу диапазона (UВХ=0 В): RC=1/[4fmax (UВХmin /ЕЭ+1)]= 1/[4fmax ]=1/(4⋅103)=0,25мс. При UВХ = 3 В период повторения импульсов определяем по (18.8): Тmax = (UВХmax /ЕЭ+1)4RC = (3/9+1)⋅4⋅0,25⋅10-3= 4/3⋅10-3, откуда fmin=750 Гц. 3) Определяем ширину ∆ωЧ.М главного лепестка спектра. Поскольку fГР<< fmin , то можно воспользоваться упрощенной формулой (18.6), где Ω − частота модуляции, ωД – девиация ЧМ, m=ωД/Ω − индекс модуляции. Для определения ширины спектра при частотной модуляции и несинусоидальной форме модулирующего сигнала в (18.6) подставляют высшую частоту в спектре: Ω = Ωmax. Отсюда: ∆ωЧ.М = 2[2π(fmax- fmin)+2π fГР] = 2[6,28 (1000-750)+6,28⋅2] = 3165 c-1. 4) Определяем максимально возможную погрешность ЧИМ модулятора. С этой целью определяем влияние дрейфов нуля операционного усилителя и компараторов. Для начала вычислим величины смещений, приведенных к их входам, в заданном температурном диапазоне: UCM ОУ = VОУ ⋅∆t°= 2⋅10-6⋅100 = 0,2⋅10-3 ; UCM К1 = VК1 ⋅∆t°= 2⋅10-6⋅100 = 0,2⋅10-3 ; UCM К2 = VК2 ⋅∆t°= 2⋅10-6⋅100 = 0,2⋅10-3 . То есть, UCM ОУ = UCM К1 = UCM К2 = UCM = 0,2 мВ. Учитывая, что они приведены ко входу указанных элементов, их влияние будет сказываться на коррекции входных напряжений как слагаемых (рисунок 18.3). Воспользуемся снова выражением (18.7), только с учетом этих слагаемых:
(UВХ ± UCM К2 )+(ЕЭ ± UCM К1) = (ЕЭ/2± UCM ОУ )Т/(2RC) = = (UВХ ± UCM )+(ЕЭ ± UCM) = (ЕЭ/2± UCM )Т/(2RC), откуда, учитывая, что UCM<
Составить временные диаграммы кодоимпульсной модуляции в коде Манчестер и коде СТЫК-1И битовой информации (байт данных с контрольной суммой СR): 101011001012. Примечание – Для самостоятельного решения в задании указано двухбайтовое слово. Решение задачи №2
Для составления диаграмм соблюдаем алгоритмы формирования: 1) для Манчестер-кода – все информационные изменения должны по центру бита: для «0» - в сторону «+», для «1» – в сторону «-»; 2) для кода СТЫК-1И – все информационные изменения должны происходить по центру бита, при этом должны выполняться два правила: а) для «1» и «0» переключения должны быть противоположны; б)
при
каждом
вновь
обнаруженном
бите
«0»
направление
переключения для «0» меняется на противоположный; 3) все превентивные переключения должны происходить между битами.
С учетом этих правил составляем диаграмму кодоимпульсной модуляции (рисунок 18.7). Примечание – После построения диаграммы необходимо проверить, чтобы длительности положительных и отрицательных «полочек» КИМ сигнала
были
одинаковы;
это
гарантирует
отсутствие
постоянной
составляющей в кодовой посылке.
Рисунок 18.7 – Кодоимпульсная модуляция
18.3 Вопросы для самопроверки
18.3.1 Чем отличаются локальные и дистанционные системы измерений? 18.3.2 Что такое – телеизмерение? 18.3.3 Назовите основные группы телеизмерений. 18.3.4 Как определяется погрешность канала СДИ? 18.3.5 В чем различие аналоговых и цифровых систем телеизмерений? 18.3.6
Как
классифицируются
системы
телеизмерений
по
видам
модуляции? 18.3.7 По каким видам параметров оценивается структура СДИ? 18.3.8 Охарактеризуйте требования к модуляторам, линии связи и демодуляторам. 18.3.9 Что из себя представляет модулятор «напряжение-частота»? 18.3.10 Как определяется эффективная полоса пропускания кала с ЧМ? 18.3.11 Что является основной элементной базой цифровых систем телеизмерений?
18.3.12 Перечислите и дайте характеристику основным видам кодоимпульсной модуляции. 18.3.13 Какие основные требования предъявляются к параметрам КИМ? 18.3.14 Сформулируйте алгоритм формирования «Манчестер-кода». 18.3.15 Сформулируйте алгоритм формирования кода «С1-И».
19 Локальная вычислительная сеть как элемент системы
дистанционных измерений и управления Приступая к знакомству с локальными вычислительными сетями (ЛВС) и использования их в системах автоматизированного измерения, контроля и управления, необходимо сразу уяснить невозможность в пределах одного раздела даже просто изложить − с целью ознакомления с целостной картиной в области существующих ЛВС – основные положения в этой динамично развивающейся области связи. Поэтому попробуем уяснить некоторые структуры и характеристики ЛВС, наиболее выпукло представляющие эту область техники. При этом подразумевая, что, с точки зрения ИУВС, ЛВС – это всего лишь многоканальная система связи для приема-передачи дискретной кодированной информации. В предыдущей лекции отмечалось, что в современных телеметрических системах ИУВС в подавляющем случае используется в качестве носителя измерительной информации – дискретная информация. Именно с этой точки зрения и представляет интерес ЛВС – как инструмент связи. 19.1 Аппаратные средства и организация ЛВС Локальные вычислительные сети ЛВС (LAN — Local Area Network)
позволяют
объединять
компьютеры,
расположенные
в
ограниченном
пространстве. Для локальных сетей прокладывается специализированная кабельная система, и положение возможных точек подключения абонентов ограничено этой кабельной системой (в противоположность локальным
сетям, модемы, например, позволяют осуществлять связь абонентов, расположенных в относительно произвольных точках). Локальные сети можно объединять в более крупномасштабные образования — CAN (Campus Area
Network
—
кампусная
сеть,
объединяющая
группу
близко
расположенных зданий), MAN (Metropolitan Area Network — сеть городского масштаба), WAN (Wide Area Network — широкомасштабная сеть), CAN (Global Area Network — глобальная сеть). «Сетью сетей» в наше время называют глобальную сеть Internet. Не вдаваясь в подробности организации сетей, которые достойны отдельных книг, рассмотрим часть вопросов, имеющих непосредственное отношение к ИУВС. Оборудование
локальных
сетей
подразделяется
на
активное
—
интерфейсные карты компьютеров, повторители, концентраторы и тому подобное и пассивное — кабели, соединительные разъемы, коммутационные панели. 9.1.1. ПАССИВНОЕ ОБОРУДОВАНИЕ Пассивное оборудование в основном определяется средой передачи данных в локальных сетях. В качестве среды передачи различают медь (Copper) и оптоволокно (Fiber). Медный кабель издавна используется в качестве среды передачи сигналов в различных диапазонах частот. Основными электрическими параметрами медного кабеля является волновое сопротивление (импеданс), полоса пропускания (максимальная частота сигнала, на которой затухание сигнала еще приемлемо), удельное затухание сигнала. Немаловажными характеристиками являются и чувствительность к электромагнитным помехам, а также собственное излучение сигнала. В средствах коммуникаций применяют несколько видов медного кабеля. Коаксиальный
кабель
(Coaxial)
представляет
собой
центральную
сигнальную жилу, окруженную изоляцией и одним или несколькими слоями экрана.
Отрезки
кабеля
соединяются
коаксиальными
разъемами.
Коаксиальный кабель в коммуникациях чаще всего применяется как разделяемая
среда
передачи
—
к
одному
сегменту
(совокупности
электрически непосредственно соединенных отрезков) непосредственно
подключается множество абонентов. Такой способ соединения называется шинным (Bus) и используется, например, в сетях Ethernet. На коаксиальном кабеле строят сети и со звездообразной топологией (Star), в которой каждый сегмент соединяет только два устройства. Этот вариант используется, например, в сетях ARCnet. Для нормального прохождения сигнала волновое сопротивление кабеля и разъемов должно совпадать и быть согласованным с импедансом всех соединяемых им устройств. В локальных сетях применяют кабели с волновым сопротивлением 50 Ом (RG-11, RG-58) и 93 Ом (RG-62); кабели с волновым сопротивлением 75 Ом, применяемые в телевизионной
технике, в сетях Ethernet применять нельзя. Максимально допустимая длина сегмента зависит от применяемой сетевой технологии и используемой аппаратуры. Главный недостаток коаксиального кабеля — ограниченная пропускная способность, которая для коммуникационных систем не превышает 10 Мбит/с. Витая пара (Twisted Pair) представляет собой пару скрученных
проводников, образующих одну сигнальную линию. Благодаря скрутке уменьшается паразитная емкость кабеля, его внешнее излучение и чувствительность к электромагнитным помехам. Скрученные пары могут быть как неэкранированными — UTP (Unshielded Twisted Pair), так и экранированными — STP (Shielded Twisted Pair). Экран пар может быть выполнен как в виде металлической оплетки, так и ленты из фольги. В экран может быть заключен и весь кабель, содержащий две, четыре или более пар. По частотным свойствам, определяемым шагом скрутки, различают несколько категорий витой пары, из которых наибольший практический интерес в настоящий момент представляют две. Кабель 3-й категории (Category 3) может использоваться для передачи данных с полосой частот до 10 МГц, 5-й категории (Category 5) — до 100 МГц. Недавно появился кабель 6-й категории с полосой до 200 МГц и 7-й — с полосой до 600 МГц. Отметим, что значение скорости передачи данных, измеряемого в Мбит/с, не совпадает с требуемой полосой частот, измеряемой в МГц (аналогично bps и
baud).
Как и всякий высокочастотный кабель, витая пара имеет нормированное волновое сопротивление (импеданс), которое должно быть согласовано с оконечным активным оборудованием. Обратим внимание на то, что импеданс неэкранированной витой пары 5-й категории составляет 100 Ом, в то время как у экранированной витой пары той же категории импеданс 150 Ом. Существуют и модификации экранированной витой пары с импедансом 100 Ом, но они пока не очень широко распространены. Оконечное оборудование выпускается в модификациях как для экранированной (STP), так и неэкранированной (UTP) витой пары. С кабелем STP используются экранированные разъемы, но существеннее то, что импеданс активного оборудования для STP (150 Ом) заметно отличается от импеданса широко распространенного оборудования для UTP. Для согласования импедансов кабеля и оборудования в случае их несовпадения используются согласующие трансформаторы (Balun). И сам кабель STP, и аппаратура для него несколько дороже аналогичной продукции для UTP. Независимо от типа кабеля, максимальная длина сегмента витой пары не должна превышать 100 метров. Оптоволоконный кабель (Fiber Optic Cable) содержит одну или несколько
ниток оптоволокна, каждая из которых заключена в несколько оболочек, обеспечивающих
механическую
прочность
кабеля.
Луч
света
распространяется по кабелю, отражаясь от стенок центрального волокна (Core). Существуют многомодовые (Multi mode) и одномодовые (Single Mode) кабели, различающиеся траекториями прохождения световых лучей. В одномодовом кабеле практически все лучи проходят один и тот же путь, в результате чего все лучи одного импульса передатчика достигнут приемника практически одновременно, и форма импульса почти не исказится. В многомодовом кабеле траектории лучей имеют существенно больший разброс, в результате чего импульс, проходя через длинный кабель, «размажется». Вполне очевидно, что одномодовом кабеле будет иметь существенно более высокую пропускную способность (она пока что ограничивается возможностями излучателей и приемников) и допускает большие
длины сегментов, чем многомодовый. Многомодовый кабель значительно дешевле, чем и объясняется их сосуществование. Кроме высокой пропускной способности, исчисляемой гигабитами в секунду, и большой допустимой длины
сегментов
оборудования),
(участков
исчисляемой
кабеля
без
промежуточного
километрами,
оптоволокно
активного
обеспечивает
гальваническую развязку соединяемых узлов с любым необходимым напряжением изоляции, нечувствительно к электромагнитным помехам и само не является источником помех, обеспечивает высокую защищенность информации от несанкционированного прослушивания. Однако оно более чувствительно, чем медь, к таким воздействиям внешней среды, как перепады температур (от которых волокно может трескаться), и высокий уровень радиации, от которого волокно может мутнеть, в результате чего возрастет затухание сигнала в кабеле. По этой причине для специальных условий эксплуатации требуется адекватный выбор типа кабеля. С медным кабелем аналогичные проблемы возникают реже, поскольку в телекоммуникациях его обычно используют внутри помещений, где условия более мягкие. За высокие параметры оптоволокна приходится платить пока что довольно высокую цену, поскольку дорого все — и кабель, и активное оборудование, и разъемы, и инструмент, и работы по оконцовке кабеля. В отличие от оконцовки медного кабеля, где установка разъема может занимать меньше минуты, после разделки оптоволоконного кабеля требуется еще и полировка среза на конце соединительного разъема. Качество полировки контролируют с. помощью микроскопа, а при неудачном срезе (сколе) вполне вероятна необходимость повторного проведения всей операции с самого начала. Есть соединители, не требующие полировки, — в них скол волокна погружается в гель, коэффициент преломления которого точно совладает с тем же параметром волокна. Сварка оптоволокна, применяемая для сращивания отрезков кабеля, требует кроме высокой квалификации специалиста, еще и применения дорогостоящего оборудования Современный подход к созданию коммуникационной инфраструктуры зданий,
насыщенных
компьютерной
техникой,
основан
на
концепции
структурированных кабельных систем СКС (SCS — Structured Cabling System). Согласно этой концепции, от каждой потенциальной точки подключения рабочего места (Workarea), оборудованной универсальной розеткой (Outlet), прокладываются кабели (витая пара или оптоволокно) к коммуникационным
центрам (Telecommunication Closet). Эти центры
стараются располагать на каждом этаже здания, в связи с чем данные кабели называют горизонтальными (Horisontal Cabling), хотя фактически они могут иметь
и
вертикальные
участки
(и
даже
межэтажные
переходы).
Горизонтальные кабели не должны по длине превышать 90 м, остальные 10 м оставляются для кабелей (Patch cords), используемых для подключения компьютеров и коммуникационного оборудования, а также кроссировки в коммуникационных центрах. Коммуникационные
центры
высокопроизводительными
связываются
между
собой
линиями (Backbone cables). Коммуникации
выполняются по принципу открытой кабельной системы, что предполагает возможность
выбора
той
или
иной
сетевой
технологии
и,
при
необходимости, ее смены без дорогостоящей «кабельной революции». В структурированную кабельную систему входят и кабели, используемые для телефонии, пожарной и охранной сигнализации, телевизионного вещания и прочие. 19.1.2. СЕТЬ ETHERNET Самая популярная сетевая технология — Ethernet - представляет архитектуру сетей с разделяемой средой и широковещательной передачей. Это означает, что все узлы сегмента сети получают пакет одновременно. В классическом варианте архитектуры с шинной топологией используется метод множественного доступа с прослушиванием несущей и обнаружением коллизий — CSMA/CD (Carrier Sense Multiple Access/Collision Detect). Суть этого метода заключается в том, что любой абонент может пытаться получить доступ к среде (начать передачу пакета) в любой момент времени, но будет делать это осмотрительно. Если в процессе передачи передающий узел обнаруживает коллизию (столкновение с работой другого передатчика),
то он прекратит передачу и будет выжидать случайный интервал времени до возобновления попытки передачи. Такой метод доступа относится к классу недетерминированных с децентрализованным управлением (все узлы равноправны). Недостатком этого метода является возрастание числа коллизий при увеличении числа активных узлов в сегменте, в результате чего реальная пропускная способность с повышением числа активных узлов начинает резко падать. При большом количестве узлов (ориентировочно — более 30) для повышения пропускной способности применяют сегментирование сети. При этом отдельные сегменты сети соединяют между собой мостами, в задачу которых входит фильтрация кадров (фреймов) по физическим (MAC) адресам назначения. Если адрес назначения кадра относится к узлу данного сегмента, мост не выпускает его в другой сегмент, а если получателя кадра нет в данном сегменте, то для этого кадра мост будет прозрачным. Фильтрацией
пакетов
на
более
высоком
уровне
занимаются
и
маршрутизаторы. В реализации Ethernet на витой паре применяется звездообразная физическая топология, в центре которой располагается устройство ХАБ (Hub). При использовании простейших хабов-повторителей все узлы логически оказываются объединенными в шину и ситуация с коллизиями выглядит так же, как и на коаксиальном кабеле. Развитием технологии Ethernet стало применение коммутации пакетов (Switched Ethernet), реализуемое при звездообразной физической топологий. Здесь управление доступом к среде практически переносится с узлов в центральное коммутирующее устройство — Switched Hub, обеспечивающее установление временных (на время передачи одного пакета) виртуальных выделенных каналов между парами портов — источниками и получателями пакетов. От узлов-передатчиков коммутирующий хаб почти всегда готов принять пакет либо в свой буфер, либо практически без задержки передать его в порт назначения (коммутация «на лету» — On-the-fly Switching).
Коммутирующие хабы существенно дороже, но возможно сочетание обычных хабов-повторителей с коммутирующими, что позволяет увязать требования производительности с ценой в каждом конкретном случае построения сети. В качестве среды передачи в Ethernet возмбжно и применение оптоволокна. Технология Ethernet позволяет использовать скорости передачи данных 10 и 100 Мбит/с, высокая скорость доступна только для витой пары и оптоволокна. Появилась версия и со скоростью 1 Гбит/с (Gigabit Ethernet). 19.1.3 Адаптеры Ethernet
Сетевые адаптеры (Network Interface Card, NIC) для PC выпускаются для различных системных шин. Основные свойства адаптеров: 1) разъемы подключения к среде передачи: один разъем — BNC или RJ-45 (UTP или STP) или их комбинация; 2) скорость передачи — 10 или 100 Мбит/с, многие 100-мегабитные адаптеры имеют режим и 10 Мбйт/с; 3) системная шина и способ обмена данными; 4) возможность полного дуплекса для сред с раздельными линиями приемника и передатчика (витая пара или оптоволокно) — в многозадачных системах позволяет теоретически удвоить пропускную способность (при поддержке этого режима на другой стороне); 5) размер установленной буферной памяти — чем больше, тем лучше; минимальный объем должен позволять хранить, по крайней мере, пару пакетов с максимальной длиной пакета 1514 байт (сейчас есть платы и с объемом буферной памяти, исчисляемой мегабайтами); 6) наличие гнезда для микросхемы BootROM, обеспечивающей возможность удаленной загрузки операционной системы (Remote Boot или Remote Reset) по сети с файл-сервера. 19.1.4 ПОВТОРИТЕЛИ И ХАБЫ ETHERNET Классический шинный вариант Ethernet на коаксиале при небольшом числе станций, территориально вписывающихся в допустимую длину
сегмента, не требует какого-либо активного оборудования, кроме самих адаптеров узлов. Однако когда сеть состоит из нескольких сегментов, а также во всех случаях применения звездообразной физической топологии, возникает необходимость применения повторителей и хабов. Repeater (повторитель) в сетях Ethernet на коаксиале используется как
средство преодоления ограничений длины кабеля и количества подключенных узлов (по электрическим характеристикам). Классический повторитель с внутренними терминаторами включается между концами соседних сегментов. Повторитель с внешними терминаторами может подключаться к Т-коннекторам (или трансиверам) в произвольных местах сегментов. Hub
(хаб)
является
обязательным
(кроме
двухточечной
сети)
соединительным элементом сети на витой паре и средством расширения топологических, функциональных и скоростных возможностей для любых сред передачи. Простейшие хабы являются многопортовыми повторителями. Некоторые порты хабов могут иметь набор разъемов BNC, KJ-45, AUI, обеспечивая выбор среды передачи. К порту хаба можно подключать как отдельный узел, так и другой хаб или сегмент коаксиала. Хабы с набором разнотипных портов позволяют объединять сегменты сетей с различными кабельными системами. Intelligent Hub (интеллектуальный хаб) имеет более сложную архитектуру
со встроенным микроконтроллером, позволяющим управлять сетью (обычно на основе средств SNMP). В хабе находятся: - аппаратно-программный SNMP-агент, ведущий базу данных о состоянии управляемых ресурсов; - менеджер, управляющий хабом, взаимодействует с агентами по сети. Управляемость хаба обеспечивает возможность централизованного управления и диагностики состояния узлов сети, защиту от несанкционированного доступа, сегментирование сети для разделения графика.
19.2 Программная поддержка ЛВС
Как уже отмечалось в начале, локальная сеть в ИУВС – это средство связи между объектами контроля и центрами управления, организованными на основе мощных ЭВМ. Поскольку компьютеры решают комплексные задачи ИУВС на основе стандартных (достаточно универсальных) операционных систем (ОС), то в среду этих систем, как правило,
предусматривается
адаптация (привязка) множества программ средств связи различных производителей. Наилучшим образом программное обеспечение средств связи можно продемонстрировать на основе популярного связного пакета программ IP/TCP, например, в среде в среде MicrosoftWindows. 19.2.1 ЛОКАЛЬНАЯ СЕТЬ MICROSOFTWINDOWS Встроенные сетевые возможности Windows позволяют использовать ее как в качестве операционной системы однорангового сервера, так и клиента для различных сетевых платформ. Клиент Windows поддерживает работу с сетями: - Banyan VINES 5.52 и выше; - DEC PATHWORKS 4.1 и выше (установленной, как протокол); - Microsoft LAN Manager, Windows for Workgroups, Windows 98, Windows NT; - Novell NetWare 3.11 и выше; - SunSoft PC-NFS 5.0 и выше. Подчеркнем также следующие важные сетевые черты Windows: -
подавляющее
большинство
существующих
сетевых
адаптеров
распознается и конфигурируется автоматически; - при обнаружении сетевого адаптера по умолчанию устанавливаются практически универсальные параметры рабочей станции; - с одного компьютера можно одновременно подключиться к нескольким сетям; - однотипные клиентские операции, такие как вход в сеть, прохождение
сценариев подключения и получение доступа к сетевым ресурсам, унифицированы при работе с различными серверами; - в число стандартных средств Windows входит инструментарий для удаленного доступа к сети. Сетевая архитектура Windows 95, как и других сетевых операционных систем Microsoft, соответствует семиуровневой коммуникационной модели OSI
(Open
System
Interconnection),
предложенной
Международной
Организацией по стандартам (International Organization of Standardization — ISO). Данные от каждого уровня OSI-модели могут поступать напрямую только в соседние для него уровни. Например, данные, отправленные пользователем с одного компьютера на другой, проходят сверху вниз все уровни исходного компьютера и снизу вверх — все уровни, включая уровень приложений, целевого компьютера. На каждом уровне, соответственно, добавляется или отсекается информация об адресах и контрольная информация. Отметим, что опираясь в целом на OSI, сетевая архитектура Windows соответствует модели, предложенной Институтом инженеров по электронике и электротехнике (Institute of Electrical and Electronics Engineers — IEEE). Модель IEEE отличается тем, что разбивает канальный уровень OSI-модели на два подуровня — уровень контроля доступа к среде передачи (Medium Access Control — MAC), который описывает способ доступа сетевого устройства к среде передачи данных, и уровень контроля логического канала (Logical Link Control, LLC), описывающий способ установления и завершения соединения и передачи данных. Именно такая структура является благодарной средой для связного пакета программ TCP/IP. О TCP/IP и всем, что с ним связано, написаны целью книги. Важно помнить, что TCP/IP не является чем-то единым. Это комплект протоколов, каждый из которых выполняет определенную функцию. Аббревиатура TCP/IP расшифровывается так: Transmission Control Protocol/Internet Protocol (Протокол
управления
передачей/Протокол
Internet);
эти
протоколы
составляют основу комплекта TCP/IP, но они — всего лишь два протокола из
всего семейства. То, что делает TCP/IP столь важным, заключается не в каком-либо отдельно взятом протоколе, а в том, как они совместно действуют для того, чтобы выполнить задание. Другим важным фактом, касающимся TCP/IP, является то, что им никто не владеет: нет контролирующей его компании. Протоколы IPX/SPX и NetBEUI являются частными протоколами, которые разработаны и контролируются исключительно отдельными производителями. С другой стороны, TCP/IP является открытым стандартом, контролируемым организацией Internet Engineering Task Force (IETF) и самими пользователями Internet посредством документов RFC (Requests for Comments). Любой человек может отправить документ RFC на рассмотрение с целью внесения дополнений в описания протоколов и политики Internet и TCP/IP. В наше время фактически все типы компьютеров и операционных систем имеют и поддерживают в качестве сетевого протокола TCP/IP. Они могут использовать кроме TCP/IP и другие протоколы, но когда приходит время объединить
несколько
различных
компьютеров,
работающих
под
управлением различных операционных систем, для этого есть лишь одно средство: TCP/IP. Рассмотрим кратко эти протоколы. 19.2.2 СЕТЕВОЙ IP ПРОТОКОЛ Протокол Internet (Internet Protocol — IP) является базовым в комплекте протоколов TCP/IP. Протокол IP разработан для использования в системах, связанных между собой компьютерными коммуникационными сетями с коммутацией пакетов. Он не предназначен для выполнения
каких-либо дополнительных функций, кроме основной, то есть доставки пакета битов («датаграммы») из точки А в точку Б по любым сетевым «проводам», встреченным на этом пути. Протокол IP ничего не знает об информации, содержащейся в датаграмме, которую он переносит, и не обеспечивает никакой гарантии, за исключением обычной контрольной суммы, что данные не нарушены или что они достигли места назначения. Реализация этих функций оставлена на долю остальных протоколов комплекта TCP/IP.
19.2.3 СЕТЕВОЙ TCP ПРОТОКОЛ Протокол управления передачей (Transmission Control Protocol — TCP) разработан как надежный протокол, ориентированный на установление двустороннего соединения, разработанный для того, чтобы вписаться в иерархию
протоколов,
поддерживающих
межсетевые
приложения.
Посмотрим, что же это значит относительно некоторых связных показателей: - Установка соединения. Протокол TCP обеспечивает обмен пакетами
между двумя пунктами и связывает их вместе, пересылая датаграммы от одного компьютера или устройства другому компьютеру или устройству; - Двусторонняя связь. В пакетах TCP указываются определенные
конечные пункты назначения, и, передвигаясь по проводу, эти пакеты игнорируются всеми другими пунктами, за исключением того, для которого предназначен этот пакет, и тех устройств, которые нужны, чтобы направлять пакет; - Надежная связь. Это ключевое свойство протокола TCP. Когда любая
программа использует протокол TCP, комплект протоколов TCP/IP сам отвечает за надежность связи. Он обеспечивает связь между процессами, гарантируя, что отправленные пакеты не просто достигнут места назначения, но будут получены там в том же порядке, в котором они были отправлены. Если пакет потерялся, протокол передаст отправившему его устройству запрос на повторную передачу этого пакета. Так как TCP должен устанавливать надежное соединение между двумя устройствами или процессами, в каждом пакете, отправленном этим протоколом, содержится гораздо больше избыточной информации, чем в пакетах, отправляемых другими, менее надежными протоколами комплекта. 19.2.4 Адреса IP
Для Internet или других компьютеров локальной сети адрес IP во многой аналогичен домашнему адресу, по которому вам доставляют почту. Он идентифицирует ваш компьютер, используя простую 32-разрядную схему (232 адресов). Эта схема использует 4 октета (байта), разделенных точками в виде w.x.y.z, и описывает сочетание адреса сети и локального адреса
компьютера в этой сети. Сети подразделяются на три класса: А, В и С. Эти классы делят сети (иногда их еще называют лицензиями) по размеру и сложности. Лицензиями на использование диапазона адресов IP распоряжается Информационный центр сети Internet (Internet Network Information Center — InterNIC), которым управляет независимая коммерческая организация. Сеть класса А содержит адреса, начинающиеся с числа в диапазоне от 0 до 127, представляющего w-частъ адреса IP и описывающего саму сеть; остальная часть адреса идентифицирует конкретное устройство в сети. Однако сеть класса А с номером 127 зарезервирована для особых целей и не может быть использована наряду с остальными. Это означает, что в мире может быть 127 сетей класса А, каждая из которых может содержать свыше 16 миллионов уникальных адресов сетевых устройств — очевидно, что это весьма крупные сети. Таких сетей немного. Все адреса класса А уже давно назначены таким объектам, как Стенфордский университет (Stanford University), компания Hewlett-Packard и так далее. Адрес сети класса В начинается с номера в диапазоне 128-191, представляющего собой первую часть адреса w и описывающего саму сеть. Остальная часть адреса указывает на конкретное устройство в сети. Сетей класса В около 16 тысяч, в каждой из которых может быть 64 тысячи уникальных адресов. Это все еще достаточно большая сеть. Большинство адресов класса В уже давно роздано крупным организациям и компаниям, таким как Rutgers University или Toyota Motor Corporation. Адрес сети класса С начинается с числа в диапазоне 192-223, представляющего собой первую часть адреса w и описывающего саму сеть. Остальная часть представляет адрес конкретного устройства в сети. Сетей класса С около 2 миллионов, в каждой из которых может быть не более 254 сетевых устройств, чего достаточно для небольшого предприятия или подразделения, но вряд ли хватит для крупной корпоративной сети. Адреса, начинающиеся с номеров 224-239 в части w адреса, известны как адреса класса D. Они используются в качестве групповых адресов. Адреса,
начинающиеся с номеров 240-247 в части адреса w, называют адресами класса Е, они зарезервированы на будущее.
19.2.5 ПОДСЕТИ, ШЛЮЗЫ И МАРШРУТИЗАТОРЫ Если бы в сети Internet каждый компьютер видел все передаваемые пакеты, это вызвало бы невообразимую нагрузку: компьютеры очень быстро оказались бы заваленными ими, а вся сеть Internet со скрипом прекратила бы работу еще годы назад. Очевидно, что требовался способ фильтрации и маршрутизации пакетов. Необходимо, чтобы можно было печатать на своем
сетевом принтере, не мешая другим сетям, и при этом иметь возможность добраться в сети Internet до любого адреса IP. Причем хотелось бы получать доступ к адресу IP, не вникая в какие-либо технические подробности. Вот тут-то и приходят на помощь подсети, шлюзы и маршрутизаторы. Подсеть (subnet) — часть сети, которая действует как отдельная сеть. Ей
нет необходимости вникать в то, что происходит за ее пределами, или беспокоиться о том, что события, происходящие в ней, помешают работе остальной части сети. Обычно подсеть представляет собой отдельный физический «провод», у которого есть только одна точка связи с другими областями сети — через маршрутизатор (router) или мост (bridge). Чтобы разрешить компьютеру в одной части сети видеть другие компьютеры в той же части сети и напрямую связываться с ними (но не с компьютерами в других частях сети), используется маска подсети. Это опять-таки адрес в виде w.x.y.z, маскирующий или блокирующий внешнюю часть сети. Важно знать, что мы можем видеть только ту часть адреса, которая соответствует нулям в маске подсети, но не сможем увидеть часть адреса, для которой в
маске стоит 255. Нужно помнить, что все выполняется на уровне двоичных чисел. Если мы понимаем, как обращаться с двоичными числами, то можем определить, какая маска подсети нам нужна или что делает та маска, которую мы уже используем. Примером маски подсети класса С может быть 255.255.255.0. Например, если наш адрес IP 192.168.222.17, то адрес 192.168.223.25 будет будет от нас скрыт. Мы сможем отправить ему пакет, только направив его сначала на шлюз или маршрутизатор, которому
известно, где находимся мы, а также где находится другая сеть. Если, с другой стороны, мы хотим отправить пакет на принтер по адресу 192.168.222.129, то нет проблем — мы сможем увидеть этот адрес, и пакет направится прямо на принтер. Все маски в одной подсети должны быть одинаковыми. Шлюз (gateway) в сети можно рассматривать в нескольких аспектах, но
сейчас мы сделаем это только в контексте подсетей и маршрутизации. Вспомним, что, если у нас маска подсети 255.255.255.0, а часть у адреса IP равна 222, то мы не сможем видеть адреса IP, у которых часть у адреса равна 223. Как отправить пакет на такой «неизвестный» адрес? Его необходимо пересылать через шлюз. Шлюз — это физическое устройство, обычно маршрутизатор, но иногда и просто компьютер, на котором установлено несколько сетевых адаптеров, физически соединенных с обеими частями сети. Он берет пакет из подсети 222 и пересылает его в подсеть 223. Таким образом, это устройство выполняет роль «привратника» между отдельными частями сети, разделяя их трафик и позволяя пакетам из сети 222 проходить в сеть 223 только тогда, когда шлюз распознает, что пакет предназначен именно туда. Маршрутизатор (router) — это физическое устройство, соединяющее
несколько сегментов сети и пересылающее между ними пакеты по мере необходимости. Если маршрутизатор не знает, куда направляется пакет, он знает,
где
запросить
маршрутизатора.
Он
указание все
на
время
адрес
доставки
—
у
другого
обновляет
таблицы
маршрутизации,
используя сведения от других маршрутизаторов. Если ваша сеть входит в состав Internet, то маршрутизатор должен иметь возможность обрабатывать огромное число маршрутов и немедленно решать, какой путь будет для пакета наилучшим. В заключение раздела необходимо отметить, изложенный материал является
достаточным,
чтобы
иметь
представление
о
свойствах
возможностях ЛВС, используемых в ИУВС, и не только в ИУВС.
и
19.3 Вопросы для самопроверки
19.3.1 Что попадает под определение – ЛВС? 19.3.2 Опишите классификацию ЛВС. 19.3.3 Что входит в пассивное оборудование ЛВС? 19.3.4 Укажите типы кабелей ЛВС и дайте им характеристику. 19.3.5 Укажите способы соединения пользователей в сеть. 19.3.6 Дайте характеристику сетевой технологии Ethernet. 19.3.7 Что такое – хаб? 19.3.8 Опишите основные характеристики сетевых адаптеров. 19.3.9 Назовите основные пакеты программ сетевой поддержки операционных систем. 19.3.10 В чем преимущество протоколов IP/TCP перед другими? 19.3.11 Дайте характеристику протоколу ТСР. 19.3.12 Опишите свойства протокола IP. 19.3.13 Что такое – адрес IP и как он расшифровывается? 19.3.14 Что такое – шлюз? 19.3.15 Что такое – маршрутизатор?
20 Основы синтеза и программирования микропроцессорной системы узла ИУВС
Типовой узел ИУВС, являющийся в общем виде устройством сопряжения с объектом (УСО) на основе микроконтроллера, составляется, как правило, из
традиционного
набора:
ЦАП
и
АЦП,
мультиплексоров
и
демультиплексоров, регистров и схем выборки-хранения, масштабирующих усилителей и усилителей мощности, измерительных преобразователей, модуляторов
и
демодуляторов
микроконтроллера,
(в
составленного
случае на
удаленного основе
объекта)
и
однокристальной
микроЭВМ или микропроцессорной системы. Основы синтеза УСО были
изложены в материалах предыдущих разделов. При этом в качестве микроконтроллера выбиралась простейшая 8-и разрядная однокристальная
микроЭВМ. Вместе с тем, очевидно, что существует зависимость информационной производительности УСО от типа микроконтроллера.
Очевидно, что эта зависимость не единственная из тех, которые определяют не только тип микроконтроллера и его конфигурацию, но и всего узла ИУВС в целом. Ниже представленный материал как раз и предназначен для заполнения указанного пробела в вопросах синтеза микропроцессорной системы узла ИУВС. 20.1 Методика синтеза структуры микропроцессорной системы узла (модуля) ИУВС. Обоснование выбора микропроцессора (МП)
20.1.1 ОБОСНОВАНИЕ ТРЕБОВАНИЙ, ПРЕДЪЯВЛЯЕМЫХ К МП УСО Техническое задание (ТЗ) на синтез УСО является стандартным для изделий приборостроения и РЭА и должно включать в себя: - цель разработки и назначение УСО; - технические требования; - требования к стандартизации и унификации; - технико-экономические показатели; - эргономические требования; - порядок разработки и испытаний УСО. Основными техническими параметрами при разработке УСО, как
правило, служат: - разрядность и форма представления информации (фиксированная или (и) плавающая точка); - разрядность и форматы команд; - состав и число команд (либо требование унификации системы команд); - время выполнения отдельных команд или производительность на смеси команд; - информационный объем ЗУ (ОЗУ, ПЗУ, ППЗУ в отдельности); - возможности по наращиванию информационной емкости ЗУ; - номенклатура датчиков входной информации и параметры входных сигналов;
- требования к устройствам вывода и индикации информации; - архитектура (структура аппаратурных средств, формат и система команд); - число уровней прерывания, система прерываний; - особенности системного программного обеспечения; - требования к встроенному контролю; - уровень реконфигурации аппаратурных средств; - организация интерфейсов (магистральная, радиальная, древовидная, радиально-магистральная)
и
физические
длины
линии
связи
между
устройствами ИУВС; - скорость передачи информации и протоколы обмена информацией по внешним интерфейсам; - схемотехнические особенности интерфейсов (типы линий связи, логические
уровни
передаваемых
сигналов,
входные
и
выходные
сопротивления, гальваническая развязка и тому подобное); - параметры первичных источников питания (номиналы напряжений, допуски на изменения, допуски на уровень помех). Технические
требования
должны
включать
в
себя
также
конструктивные, технологические, надежностные и эксплуатационные требования, которые в рамках данного пособия не рассматриваются.
Кроме того, технические требования могут включать в себя специальные требования, например к патентной чистоте, к контролю УСО (ручной, автоматизированный), КиП и средствам обслуживания, к эксплуатации в аварийных ситуациях, к математическому обеспечению. На практике при разработке УСО разработчик зачастую сталкивается с проблемой формулировки ТЗ в выше описанном виде по исходным данным микропроцессорной системы, представленным в неявной форме. Рассмотрим следующие инженерные методики, устраняющие этот недостаток: 1)
оценки разрядности и формата команд, выбора адресности;
2)
оценки информационного объема памяти;
3)
определения длины разрядной сетки;
4)
выбора системы команд;
5)
оценки характеристик системы прерывания.
20.1.1.1 Оценка разрядности и формата команд, выбор адресности Основным фактором, определяющим форматы и адресность, является принятая к реализации в микроЭВМ УСО система команд. При этом возможно: 1) использование регламентированной, не изменяемой в процессе проектирования ИУВС системы команд; 2) разработка специальной системы команд для конкретного применения ИУВС (специализированные модули ИУВС). В первом случае система команд может быть директивной, определенной требованиями ТЗ или обусловленной выбором типа микропроцессора. В
настоящее
время
к
разрабатываемым
микроЭВМ
УСО
часто
предъявляют требование использовать систему команд машин серии PDP-11. Это требование позволяет сохранить преемственность УСО и использовать для отладки программного обеспечения средства, серийно выпускаемые промышленностью. Один из основных форматов команды показан на рисунке 20.1, а. Десять разрядов служат для указания кода операции, три — для кодирования номера регистра и три — для указания способа адресации. В данной системе команд широко применяются прямая, косвенная и относительная адресации, а также более эффективная форма последней — индексная адресация.
В некоторых типах микропроцессоров, используемых для построения микроЭВМ УСО, существует единственный способ программирования — на языке команд микропроцессоров. Например, в МП серии К1821 или К1816,
где принята байтовая структура, которая в зависимости от типа команд требует от 1 до 3 байт. На рисунке 20.1, б представлена запись команды MVI загрузки второго байта в аккумулятор А для микропроцессора К1821ВМ85. В обоснованных случаях процесс проектирования микроЭВМ ИУВС включает в себя разработку специальной системы команд.
Рисунок 20.1 – Пример формата команды (а) и запись команды MVI микропроцессора К1821ВМ85 (б). При этом предполагается, что в качестве аппаратурных средств микроЭВМ
используются
микропроцессоры
с
микропрограммным
управлением, позволяющие создать требуемый набор команд (микропроцессоры серий К589, К1802, К1804). В формате команды число разрядов, отводимых для представления кода операции, определяется в основном типом микропроцессора, а число адресов и их разрядность — емкостью памяти для хранения программ и временем их решения. Существующие методики позволяют выбрать адресность по двум критериям: минимума объема памяти для хранения программ; минимума времени решения задачи. Выбор адресности по критерию минимума объема памяти показывает, что программы для одноадресных машин в большинстве случаев экономичнее, чем для двух- и трехадресных. Выбор адресности по критерию минимума времени решения задачи базируется на оценке выигрыша (проигрыша) времени решения конкретной задачи на машинах с различной адресностью. Оценка типовых алгоритмов показывает, что: 1) в случае последовательного алгоритма, когда результат предыдущей операции непосредственно используется в последующей, одноадресная ЭВМ обладает преимуществом; 2) в случае параллельного алгоритма, когда результат предыдущей операции не используется в следующей, а отсылается в оперативную память, трехадресная ЭВМ предпочтительнее, так как при этом для одноадресной ЭВМ на каждую арифметическую операцию приходится две вспомогательных (вызов из памяти в АЛУ и засылка в память);
Разрядность адреса определяется количеством ячеек системы памяти,
количеством источников и приемников информации, а также способами адресации. В специализированных микроЭВМ система памяти, как правило, включает в себя: - ОЗУ для хранения вводимой информации и промежуточных результатов вычислений; - ППЗУ (РПЗУ) — перепрограммируемое (чаще всего электрически) постоянное запоминающее устройство; - ПЗУ — постоянное запоминающее устройство для хранения рабочих программ, тестов и так далее. При использовании в микроЭВМ прямой адресации разрядность может быть определена как Ra =]log2(Noзy+ NППЗУ +NПЗУ + Nи + Nn) [,
где Noзy, NПЗУ, NППЗУ — число ячеек оперативной, постоянной и перепрограммируемой памяти соответственно; - Nи и Nn — число источников и приемников информации; ] [ — знак, обозначающий округление до ближайшего большего целого числа. При относительной адресации обеспечивается сокращение адресной части команды, так как она является смещением относительно определенного регистра процессора. Чаще всего в качестве регистра используется счетчик команд. При Ra = 8 можно охватить до 256 адресов относительно программного счетчика. При индексной адресации адресная часть команды рассматривается как смещение относительно индексных регистров процессора. Этим также достигается
уменьшение
разрядности
адресной
части
команды.
Исполнительный адрес формируется как сумма содержимого индексного регистра и Ra. В микроЭВМ УСО широко распространена также непосредственная адресация, когда в разрядах адресной части команды содержится операнд. Непосредственная адресация удобна для занесения постоянных величин в
регистр или их использования в операциях АЛУ. Основное требование при выборе способа адресации — обеспечение удобства программирования на микроЭВМ.
20.1.1.2 Оценка информационного объема памяти Вычислительные возможности микроЭВМ УСО определяются не только типом
используемых
микропроцессоров
и
системой
команд,
но
в
значительной степени зависят и от характеристик системы памяти. В состав системы памяти, как правило, входят ОЗУ, ПЗУ и ППЗУ. Исходными данными для оценки числа слов ОЗУ являются: - число входных а и выходных b величин, применяемых в алгоритмах; - число одновременно хранимых на каждом i-м этапе вычислений промежуточных величин qik для каждого k-го алгоритма; - число уровней прерывания п. Так как каждый входной параметр заносится в одну ячейку ОЗУ и после обработки вводится в другую, то объем памяти, необходимый для хранения входных и выходных величин, Nаb= 2а+ b. Объем ОЗУ для хранения промежуточных величин
где qn — количество ячеек памяти для хранения рабочих регистров микропроцессора, необходимых для запоминания по прерванной программе. С учетом средств программной защиты от помех и программ предварительной обработки информации объем ОЗУ
Кроме того, необходимо учесть количество рабочих ячеек, отводимых под тестовые NT и стандартные NСП программы. Тогда
Объем ПЗУ складывается в основном из объемов: - рабочих программ NРПi для реализации всех k алгоритмов управления; - управляющей программы-диспетчера NД;
- программ прерываний NП ; - тестовых программ NТ; - стандартных подпрограмм NСT; - ячеек для хранения констант NC. Таким образом,
Значение NПЗУ может быть окончательно определено после составления и отладки программ с учетом выбранной системы команд. С большой степенью достоверности необходимые объемы ОЗУ и ПЗУ можно оценить с помощью отладки программ на аппаратурно-программных комплексах проектирования,
прототипных
микропроцессорных
комплектах
и
универсальных ЭВМ с использованием кросс-средств. Объем NППЗУ определяется системными требованиями, предъявляемыми к УСО. В частности, пропадание питающих напряжений в микроЭВМ приводит к потере набранной и хранимой в ОЗУ информации, если не приняты специальные меры. В специализированных УСО алгоритмы построены так, что при восстановлении в момент времени ti питания происходит опрос датчиков входной информации и набор потерянной информации. Однако существуют входные
величины,
восстановление
которых
в
момент
времени
ti
принципиально невозможно (например, время наработки УСО, параметры, введенные оператором в момент включения системы, координаты о положении объекта управления в моменты времени ti-1, ti-2, …., ti-k и так далее). Количество таких величин может быть определено достаточно точно непосредственно из анализа алгоритмов. В зависимости от технических возможностей устранение потери информации может быть реализовано: 1) перезаписью в момент времени ti невосстанавливаемых величин в ППЗУ; 2) постоянным хранением всех невосстанавливаемых величин в ППЗУ. Требуемый объем ППЗУ:
- в первом случае NППЗУ =max{NНВi }+ NНВO; - во втором случае NППЗУ = NНВ1 + NНВ2 +…+ NНВO, где NНВi — число невосстанавливаемых величин, которые используются только в i-м алгоритме; NНВO — число невосстанавливаемых величин, которые являются общими для нескольких алгоритмов. 20.1.1.3 Определение длины разрядной сетки Основными требованиями, предъявляемыми к УСО, являются выработка управляющих воздействий yi на объект управления с точностью не хуже заданной σi доп и выработка yi с временем запаздывания не более допустимого
∆tiдоп . Таким образом, при реализации алгоритмов управления имеют место ограничения
σi ≤ σi доп; ∆ti ≤ ∆tiдоп , где σi и ∆ti — ошибка и время запаздывания выработки i-го воздействия. Ошибка выработки i-го воздействия может быть представлена в виде суммы среднеквадратичных значений методической, трансформируемой и инструментальной ошибок.
Причиной возникновения методических ошибок является в ряде случаев замена требуемой функции управления более простой в реализации аппроксимирующей функцией yiАП, Второй тип ошибки обусловлен трансформацией входных ошибок аргументов хi. В свою очередь входные ошибки складываются из инструментальных и методических ошибок измерения датчиков входной информации и ошибок преобразования в УСО аналоговых величин в код. Третья составляющая вызвана ограниченностью длины разрядной сетки, используемой для представления величин в микроЭВМ. Распределение ошибок по этим составляющим зависит в основном от технических возможностей построения датчиков входной информации, УСО, выбора численных методов и длины разрядной сетки микроЭВМ. При разработке микроЭВМ УСО наиболее часто ставится задача определения длины разрядной сетки с учетом предварительно выбранных
численных методов и известных ошибок. Выбором длины разрядной сетки требуется обеспечить выполнение ошибки вычислений, меньшей и равной допустимой при наименьшем количестве разрядов. Для более точной оценки ошибок выработки управляющих воздействий yi, целесообразно использование методов статистического моделирования путем многократного решения задач при различных наборах входных переменных.
Для
реализации
статистического
моделирования
при
проектировании ЭВМ на основе микропроцессоров широко применяют аппаратурно-программные средства, к которым относятся оценочные модули, аппаратурно-программные отладочные комплексы. Оценочные модули представляют собой одноплатные микроЭВМ с минимальным набором технических средств и программой-монитором, размещенной в ПЗУ. С учетом небольшого объема памяти (256 байт — 2кбайт)
они
позволяют
оценить
ошибки
вычисления
по
наиболее
критическому параметру УСО. Для более полной оценки (а практически точного расчета по согласованным с потребителями тестам) ошибок выработки параметров и окончательного выбора разрядности микроЭВМ нужны аппаратурно-программные отладочные комплексы, которые имеют внутрисхемную эмуляцию отлаживаемых программ, компиляторы с языков высокого уровня и большой набор устройств ввода-вывода. Основное достоинство применения отладочных средств — высокая достоверность результатов, снижение трудоемкости, одновременная отладка технических средств и программного обеспечения микроЭВМ. Кроме того, использование
секционированных
микропроцессорных
комплектов
допускает оценку длины разрядной сетки микроЭВМ с точностью до п, где п —
разрядность
одной
секции.
Для
большинства
секционных
микропроцессорных комплектов n=2, 4, 8, 16 (серии К589, К584, К588). Микропроцессоры с фиксированной разрядностью, не наращиваемые аппаратурно (например, микропроцессоры серий К1821), требуют оценки кратности разрядности обрабатываемых слов («удвоенная», «утроенная», nкратная). При этом наиболее критичными становятся вопросы временных
затрат ∆ti , так как время выполнения отдельных операций увеличивается примерно в (1,1—1,3) п раз. 20.1.2 ВЫБОР СИСТЕМЫ КОМАНД И СИСТЕМЫ ПРЕРЫВАНИЙ 20.1.2.1 Выбор системы команд Одним из ответственных этапов при проектировании МП УСО является выбор системы и форматов команд. При выборе системы команд следует учитывать два важных момента. Во-первых, с учетом тенденций совершенствования архитектуры МП УСО в направлении сближения последней с архитектурой универсальных ЭВМ необходимо во всех допустимых случаях в качестве системы команд ИУВС выбирать систему команд (в целом или ее подмножество) универсальных вычислительных машин с сохранением форматов команд. Этим достигается программная совместимость микроЭВМ УСО с универсальной ЭВМ, что в свою
очередь
позволяет
использовать
универсальную
ЭВМ
как
технологическую, на которой может быть выполнено программирование рабочих программ УСО с использованием системного программного обеспечения универсальной ЭВМ и полное или частичное моделирование алгоритмов работы УСО. Применение в УСО системы команд универсальной ЭВМ: - в несколько раз уменьшает затраты на создание математического обеспечения ИУВС, которые могут составлять большую часть всех затрат на разработку ИУВС; - сокращает сроки разработки; - позволяет параллельно вести разработку аппаратурных средств и рабочих программ. Во-вторых, в ряде случаев, когда при построении ИУВС определяющим моментом является построение ее на базе конкретного микропроцессорного комплекта, система и формат команд полностью определяются свойствами этого микропроцессорного набора, как, например, для микропроцессорных наборов с постоянной системой команд: К1821, КР1816, К1801.
В общем случае, когда системы команд универсальных ЭВМ не могут быть применены в первую очередь из-за недостаточного быстродействия, для разрабатываемого УСО выбирается специализированная система команд, оптимизирующая архитектуру УСО на выполнение конкретных задач. При этом следует помнить, что выбор специализированной системы команд приводит в общем случае к разработке вновь в полном объеме системного программного
обеспечения
(микроассемблера,
кроссассемблера,
эмулирующих средств, операционных систем, прикладного программного обеспечения),
что
представляет
собой
огромнейшую
по
объему
и
трудоемкости техническую задачу. Поэтому переход к специализированной системе команд должен быть всесторонне и тщательным образом обоснован. При принятых допущениях задача выбора оптимальной системы команд заключается
в
выборе
множества
таких
команд,
реализуемых
арифметическим устройством, чтобы суммарные аппаратурные затраты были минимальными при выполнении временных ограничений на реализацию алгоритма То, то есть
Отметим, что для УСО, как правило, характерно расширение списка стандартных команд универсальных ЭВМ (арифметических с фиксированной и
плавающей
точкой,
логических,
управления,
пересылок,
сдвигов,
сравнения, преобразования, обращения к памяти, условных и безусловных переходов)
специализированными
командами,
например
командами
вычисления квадратного корня, sin, cos, tg, arcsin, arccos, arctg, lg, ln, exp и других. 20.1.2.2 Оценка характеристик системы прерываний Система прерывания — совокупность аппаратурных и программных средств, которые при наличии запросов обеспечивают прекращение выполнения текущей программы, работу по вызванной программе и возврат
к прерванной. Система предназначена для обеспечения эффективной мультипрограммной
работы
и
организации
взаимодействия
в
многопроцессорных УСО. Источниками прерываний в УСО могут быть сигналы счетчика реального времени, аварийные сигналы от схем контроля, инициативные запросы датчиков входной информации, запросы от других процессоров и так далее. Основными параметрами системы прерываний являются: - время реакции tр — время между появлением запроса на прерывание и началом выполнения первой полезной команды вызываемой программы; - время запоминания tз; - время восстановления tв ; -
структура
прерываний
—
средства,
позволяющие
микроЭВМ
обслуживать запросы в соответствии с присвоенными им приоритетами. Наиболее часто в УСО, работающих в реальном масштабе времени, используются относительные, абсолютные и абсолютно-относительные системы организации приоритетов, причем в системах с относительными приоритетами
начатое
обслуживание
заявки
любого
приоритета
продолжается до полного завершения, а в системах с абсолютными приоритетами
исполнение
заявки
j-го
приоритета
прерывается
при
поступлении заявки приоритета i >j. При организации вычислительных процессов в микроЭВМ УСО возникает задача рационального назначения приоритетов. Для решения поставленной задачи необходимо знание характеристик потоков заявок: - количество потоков заявок различных типов п; - интенсивность потоков заявок каждого типа λi ; - взаимная относительная важность отдельных типов заявок αi ; - распределение интервалов времени между последовательными заявками каждого типа Ai(t). В зависимости от характера решаемых задач и природы возникновения заявок используются различные оценки эффективности организации системы
приоритетов.
Для
заявок,
ценность
которых
снижается
пропорционально времени, критерием служит функционал
где Wi — среднее время ожидания в очереди заявок i-го потока. Правильное назначение приоритетов заявкам обеспечивает минимизацию функционала С. Для систем с относительной организацией приоритетов назначение осуществляется в порядке убывания отношений:
где Tk — время обслуживания заявки k-гo потока. Последнее соотношение, полученное для произвольного количества пуассоновских потоков заявок и широкого класса функций распределения времени
обслуживания,
приоритетов
в
случае
справедливо
при
экспоненциального
назначении
абсолютных
распределения
времени
обслуживания заявок. Для достижения наибольшей эффективности микроЭВМ с учетом экономии аппаратурных средств в системах реального счета времени часто используют смешанные системы организации приоритетов, например в случае, когда п заявок разбивается на k групп с абсолютными приоритетами между группами и относительными — внутри каждой группы. Приведенные выше соотношения позволяют оценить основные характеристики
систем
и
правильно
построить
организацию
функционирования микропроцессорного узла ИУВС. 20.2 Программирование микропроцессорной системы узла ИУВС
Программирование микропроцессорной системы узла ИУВС – это достаточно сложный многофункциональный процесс. Он содержит два уровня. Первый уровень – первоначальное программирование, которое производится, как правило, на ассемблере – «родном» языке выбранного или спроектированного микропроцессора.
В
начале
в
виде
алгоритма
проектируется
резидентная
часть
(микрооперационная система), которая осуществляет: - первоначальную инициализацию микропроцессорного узла ИУВС; - управление процессами по опросу; Затем разрабатываются алгоритмы: - подпрограмм ввода-вывода; - программ функционального назначения; - подпрограмм связи через локальную сеть или через удаленный доступ; - подпрограмм аварийного завершения работы. По составленным алгоритмам программы и подпрограммы пишутся на ассемблере и транслируются (компиляция) в машинные коды. Этот процесс требует достаточно высокого уровня профессионализма, так как требует глубоких знаний и навыков: - в предметной области ИУВС; - в области обработки и управления информационных потоков; - в области программирования на ассемблере. Второй уровень программирования предназначен для технологического вмешательства (изменение параметров и режима системы), не требующего
от оператора глубоких знаний и навыков в области программирования, но требующего хорошего знания объекта программирования – его составных частей и взаимодействия между ними. Для этих технологических нужд предусматриваются простые языки, встроенные в систему, − так называемые интерпретаторы (командной строки), аналогичные языку BASIC. В рамках изучаемого курса именно такие языки представляют наибольший практический интерес с точки зрения синтеза языков пользовательского программирования. В качестве примера ниже приведены перечень видов данных (аргументов) и команд (операторов) интерпретатора, разработанного для составления программ управления учебно-отладочным стендом УСО УМК-48 (раздел 13).
Таблица 20.1 - Список аргументов интерпретатора
№ 1
Аргумент S0 S1 S2 S3 S4 S5 S6 S7
Комментарий Входные переменные, на которые отображаются значения дискретных величин (состояние тумблеров) 1 – включен, 0 – выключен
2
ACP1 ACP2 ACP3 ACP4
Входные переменные, на которые отображаются значения аналоговых величин АЦП, значение принадлежит [0...15]
3
D0 D1 D2 D3 D4 D5 D6 D7
Выходные переменные дискретного типа значениями которых управляет пользователь (состояние индикаторов) 1 – включен, 0 – выключен 2 – мигание
5
D_ALL
Выходная переменная дискретного типа значением которой управляет пользователь (состояние индикаторов) значение принадлежит [0...255]
4
CAP1 CAP2
Выходные переменные аналогового типа (АЦП),значениями которых управляет пользователь, значение принадлежит [0...15]
6
D_BLINK
Маска мигания выходной переменной дискретного типа значением которой управляет пользователь (состояние индикаторов) значение принадлежит [0...255]
7
Целое число
8
YES
Значение 1
9
NO
Значение 0
10
M_RES
Внутренняя переменная значение, которой устанавливается после выполнения оператора MESSAGE, если пользователь выбрал кнопку «Да», то она принимает значение 1 или YES, если пользователь выбрал кнопку «Нет», то она принимает значение 0 или NO
11
M_DEFAULT
Внутренняя переменная, значение которой нужно устанавливать пользователю до выполнения оператора MESSAGE, она может принимать значение 1 – YES, или 0 = NO и означает выбор пользователя по умолчанию, если он не произвел выбор
12
M_TIME
Внутренняя переменная, значение которой нужно устанавливать пользователю до выполнения оператора MESSAGE, она может принимать значение [0..3600] и означает время ожидания выбора пользователя в секундах
13
BEEP
Код микроконтроллера BEEP
14
CLICK
Код микроконтроллера CLICK
15
INIT
Код микроконтроллера RESET
Таблица 20.2 - Список операторов интерпретатора № 1
Оператор
А1
А2
А3
А4
Операция
Синтаксиc. Примеры
IF А1 = А2 THEN А3
S0 S1 S2 S3 S4
Цело
Цело
Цело
Условный оператор,
IF S0 = 1 THEN 12 ELSE 3
ELSE А4
S5 S6 S7
е
е
е
если условие
IF S0 = 0 THEN 12
числ
числ
числ
выполняется то
IF ACP1 = 1 2 THEN 12
о
о
о
IF А1 = А2 THEN А3
ACP1 ACP2 ACP3 ACP4 M_RES
происходит переход на
ELSE 3
оператор указанный
IF ACP1 = 0 2 THEN 12
после лексемы then,
IF M_RES = YES THEN 12
если условие не
ELSE 3
выполняется, то после
IF M_RES = NO THEN 12
лексемы else; если else нет и условие не выполняется, то происходит переход на следующий оператор 2
SET А1 = А2
Оператор установки
SET D0 = 1
е
выходных и
SET D7 = 0
числ
внутренних
SET D3 = 2
о
переменных
SET D_ALL = 255
D0 D1 D2 D3 D4
Цело
D5 D6 D7 CAP1 CAP2 D_ALL
-
-
D_BLINK
SET D_BLINL = 255
M_DEFAULT
SET M_DEFAULT = YES
M_TIME
SET M_DEFAULT = 1 SET M_TIME = 60
3
GOTO А1
Целое число
-
-
-
Оператор безусловного
GOTO 0
перехода
GOTO 10
Оператор остановки на
WAIT 1
определенной время в
WAIT 3
секундах
WAIT 60
Оператор посылки
SEND INIT
CLICK
команды
SEND BEEP
INIT
микроконтроллеру
SEND CLICK
[0..1000] 4
WAIT А1
Целое число
-
-
-
[0...3600]
5
SEND А1
BEEP
-
-
-
SEND 255
[0...255]
SEND 33 6
MESSAGE А1 А2
Строка1
Строк
-
-
а2
Оператор сообщения
MESSAGE Внимание!!!
пользователю
Фаза №1 не выполнена
информации с
Запустить устройство №2
фиксированием результата выбора (нажатие кнопок «Да», «Нет») в переменной M_RES; Строка1 – заголовок окна, Строка2 – Сообщение 7
STOP
-
-
-
-
Останов
Примечания 1. Не допустимо использование лексем в качестве сообщений
пользователю. 2. В качестве терминального символа используется пробел.
3. При неправильном переходе генерируется исключение ВМ “General protection fault at operator #”. 4. Операторы могут записываться как в верхнем регистре так в нижнем, например SET или set; недопустимо использование переменного регистра, например Set. 5. При возникновении исключения “Runtime error at operator #” следует рассматривать это как внутреннюю ошибку программы и сообщить разработчику программы. 6. Следует использовать команды WAIT xx, с достаточным временем остановки для синхронизации между состоянием микроконтроллера и выходных переменных. Временные значения задаются в секундах. Пример составления программы на интерпретаторе wait 1 if s0 = 1 then 10 else 26 if s0 = 1 then 12 else 28 if s0 = 1 then 14 else 30 if s0 = 1 then 16 else 32 if s0 = 1 then 18 else 34 if s0 = 1 then 20 else 36 if s0 = 1 then 22 else 38 if s0 = 1 then 24 else 40 goto 1 set d0 = 1 goto 2 set d1 = 1 goto 3 set d2 = 1 goto 4 set d3 = 1 goto 5
set d4 = 1 goto 6 set d5 = 1 goto 7 set d6 = 1 goto 8 set d7 = 1 goto 1 set d0 = 0 goto 2 set d1 = 0 goto 3 set d2 = 0 goto 4 set d3 = 0 goto 5 set d4 = 0 goto 6 set d5 = 0 goto 7 set d6 = 0 goto 8 set d7 = 0 goto 1
Некоторое неудобство связано с тем, что при программировании нужно считать строки, так как интерпретатор не предусматривает их нумерацию (в отличие от BASIC). Но таких «неудобств» у интерпретаторов достаточно, это обратная сторона простоты подобных языков программирования.
20.3 Вопросы для самопроверки
20.3.1
Перечислите
составляющие
технического
задания
на
проектирование узла ИУВС. 20.3.2 Что относится к основным техническим параметрам задания на проектирование микропроцессорного узла ИУВС? 20.3.3 Как производится оценка разрядности и формата команд, выбор адресности ? 20.3.4 Как производится оценка информационного объема памяти? 20.3.5 Как производится определение длины разрядной сетки? 20.3.6 Как производится выбор системы команд? 20.3.7 Как производится оценка характеристик системы прерываний? 20.3.8 Как программируется микропроцессорная система узла ИУВС? 20.3.9 Охарактеризуйте первый уровень программирования. 20.3.10 Что такое – интерпретатор, и зачем он нужен в составе программного обеспечения микропроцессорного узла ИУВС?
Заключение
Настоящее учебное пособие содержит основной лекционный материал по курсу ИУВС (основы синтеза и проектирования). В нем систематизированы сведения по состоянию на 90-е годы о разновидностях ИУВС, их структурах и алгоритмах действия, системных технических средствах, а также приводятся наиболее существенные указания по системотехническому проектированию узлов ИУВС. По техническим системным средствам приводятся описания, рассматриваются вопросы их использования в ИУВС. При этом учитывается, что большинство этих средств изучаются в других курсах. Таким образом, сведения о технических и системных средствах даны только для того и в таких объемах, чтобы можно было сознательно обосновать их выбор и применение в конкретных системах. Предполагается, что детальное изучение системного оборудования (например, СОД, УСО, стандартных интерфейсов, микро-ЭВМ) должна происходить на лабораторных и практических занятиях, а также в процессе самостоятельной работы, с использованием дополнительных источников. Желательно для закрепления знаний и приобретения навыков синтеза и проектирования системных узлов выполнить учебные системотехнические работы. В процессе проектирования должны быть обязательно предусмотрены разработки соответствующих программ. При этом, в основу построения программ должны быть положены содержательные логические схемы алгоритмов функционирования данной системы. По сути, эти алгоритмы являются входным языком для последующего программирования. Структуры и алгоритмы действия ИУВС, изложенные в учебном пособии, не являются самодостаточными и требуют дополнительной иллюстрации на примерах структур и алгоритмов других вариантов современных систем. И было бы полезным анализировать такие системы, используя методические приемы, изложенные в данном пособии.
Необходимо иметь в виду, что бурное развитие информационноизмерительной техники ведет к изменению характеристик и возможностей системного оборудования, что может привести к существенному изменению структурных
принципов
построения
систем
и
алгоритмического
функционирования. Поэтому необходимо при изучении данного здесь материала дополнять его новыми данными, как на лекциях, так и при самостоятельном изучении.
Список использованных источников
1 Гук М. Аппаратные средства IBM PC. Энциклопедия. – СПб.: Питер, 2000. – 816 с.: илл. 2 Гутников В.С. Интегральная электроника в измерительных устройствах. – 2-е изд., перераб. и доп. – Л.: Энергоатомиздат, 1988. – 304 с.: ил. 3 Микропроцессоры: В 3-х кн. /В.Д.Вернер, Н.В.Воробьев, А.В.Горячев и др.; Под ред. Л.Н.Преснухина. – Минск.: Выш. шк., 1987. – Кн.2: Средства сопряжения. Контролирующие и информационно-управляющие системы. – 303 с.: ил. 4 Новоселов О.Н., Фомин А.Ф. Основы теории и расчета информационноизмерительных систем. – М.: Машиностроение, 1980. – 280 с.: ил. 5 Однокристальные
микроЭВМ
/
А.В.Бобрыкин,
Г.П.Липовецкий,
Г.В.Литвинский и др. – М.: МИКАП, 1994. – 400 с.: илл. 6 Орнатский П.П. Теоретические основы информационно-измерительной техники. – 2-е изд., перераб. и доп. – Киев: Вища школа, 1983. – 455 с. 7 Устройства и элементы систем автоматического регулирования и управления. Техническая кибернетика. Кн. 1. Измерительные устройства, преобразующие элементы и устройства /Л.Е.Андреева, Е.В.Арменский, А.А.Ахметжанов и др.; Под ред. В.В.Солодовникова_ - М.: Машиностроение, 1973. – 671 с.: илл. 8 Цапенко М.П. Измерительные информационные системы: Структуры и алгоритмы, схемотехническое проектирование.: Учеб. пособие для вузов. – 2-е изд., перераб. и доп. – М.: Энергоатомиздат, 1985.