Система охранной сигнализации промышленного объекта на базе разнотипных датчиков

Автор работы: Пользователь скрыл имя, 08 Сентября 2011 в 14:35, курсовая работа

Описание работы

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

Содержание работы

Введение 3
1 Система охранной сигнализации на промышленном объекте: структура и спецификация 8
1.1 Алгоритм работы данной системы охранной сигнализации 12
1.2 Индикатор, мультиплексор, датчики: понятия, виды и характеристики 15
1.3 Микроконтроллер: его виды и характеристики 40
2 Монтаж системы сигнализации на охраняемом объекте для наилучшего функционирования 76
2.1 Планирование разводки кабеля и установка разнотипных датчиков 76
3 Разработка программного обеспечения для микроконтроллера 84
3.1 Выбор инструментальных средств (среда Ассемблер) 84
3.2 Подпрограмма для микроконтроллера 94
4 Результаты функционирование системы охранной сигнализации промышленного объекта 95
4.1 Пакет программного обеспечения для функционирования микроконтроллера 95
4.2 Экономическое обоснование 100
Заключение 103
Список используемых источников 104

Файлы: 1 файл

Пояснительная записка Сидоренко.doc

— 1.32 Мб (Скачать файл)

     Типичными командами языка ассемблера являются (большинство примеров даны для Intel-синтаксиса архитектуры x86):

     Команды пересылки данных (mov, lea и др.)

     Арифметические  команды (add, sub, imul и др.)

     Логические  и побитовые операции (or, and, xor, shr и др.)

     Команды управления ходом выполнения программы (jmp, loop, ret и др.)

     Команды вызова прерываний (иногда относят  к командам управления): int, into

     Команды ввода/вывода в порты (in, out)

     Для микроконтроллеров и микрокомпьютеров характерны также команды, выполняющие  проверку и переход по условию, например:

     cbne — перейти, если не равно

     dbnz — декрементировать, и если результат  ненулевой, то перейти

     cfsneq — сравнить, и если не равно,  пропустить следующую команду

     Инструкции.

     Типичный  формат записи команд:

     [метка:] опкод [операнды] [;комментарий]

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

     В качестве операндов могут выступать  константы, адреса регистров, адреса в  оперативной памяти и пр. Различия между синтаксисом Intel и AT&T касаются в основном порядка перечисления операндов и указания различных методов адресации.

     Используемые  мнемоники обычно одинаковы для  всех процессоров одной архитектуры  или семейства архитектур (среди  широко известных — мнемоники процессоров и контроллеров x86, ARM, SPARC, PowerPC, M68k). Они описываются в спецификации процессоров. Возможные исключения:

     если  ассемблер использует кроссплатформенный AT&T-синтаксис (оригинальные мнемоники  приводятся к синтаксису AT&T);

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

     Например, процессор Zilog Z80 наследовал систему  команд Intel i8080, расширил её и поменял  мнемоники (и обозначения регистров) на свой лад. Процессоры Motorola Fireball наследовали систему команд Z80, несколько её урезав. Вместе с тем, Motorola официально вернулась к мнемоникам Intel и в данный момент половина ассемблеров для Fireball работает с мнемониками Intel, а половина — с мнемониками Zilog. 

     Директивы Ассемблера.

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

     -определение данных (констант и переменных),

     -управление организацией программы в памяти и параметрами выходного файла,

     -задание режима работы компилятора,

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

     -макросы.

     Пример  программы

     Примеры программы Hello, world! для разных платформ и разных диалектов:

     Пример  программы для Windows на диалекте MASM  

     .386

     .model flat, stdcall

     option casemap:none

     include \masm32\include\windows.inc

     include \masm32\include\kernel32.inc

     includelib \masm32\lib\kernel32.lib

      .data

     msg db "Hello, world", 13, 10

     len equ $-msg

      .data?

     written dd ?

      .code

     start:

     push -11

     call GetStdHandle

      push 0

     push offset written

     push len

     push offset msg

     push eax

     call WriteFile

      push 0

     call ExitProcess

     end start 

     Пример  программы для Linux/x86 на диалекте NASM.

       SECTION .data

     msg: db “Hello, world”,10

     len: equ $-msg

      SECTION .text

     global _start

     _start: ove ax, len

             ove ax, msg

             mov ebx, 1    ; stdout

             ove ax, 4    ; write(2)

             int 0x80

              mov ebx, 0

             ove ax, 1    ; exit(2)

         

       Пример программы для MS-DOS на диалекте TASM. 

       .MODEL TINY

     CODE SEGMENT

     ASSUME CS:CODE, DS:CODE

     ORG 100h

     START:

             mov ah,9

             mov dx,OFFSET Msg

             int 21h

             int 20h

             Msg DB 'Hello World',13,10,'$'

     CODE ENDS

     END START  int 0x80 

     Происхождение и критика термина  «язык ассемблера».

     Данный тип языков получил своё название от названия транслятора (компилятора) с этих языков — ассемблера (англ. assembler — сборщик). Название обусловлено тем, что программа «автоматически собиралась», а не вводилась вручную покомандно непосредственно в кодах. При этом наблюдается путаница терминов: ассемблером нередко называют не только транслятор, но и соответствующий язык программирования («программа на ассемблере»).

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

     В СССР язык ассемблера ранее называли «автокод».

     Ассе́мблер (от англ. assembler — сборщик) — компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.

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

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

     Архитектура x86.

     Ассемблеры  для DOS.

     Наиболее  известными ассемблерами для операционной системы DOS являлись Borland Turbo Assembler (TASM), Microsoft Macro Assembler (MASM) и Watcom Assembler (WASM). Также  в своё время был популярен  простой ассемблер A86. Интерфейс представлен на рисунке 22. 

     Windows. (рисунок 23)

     При появлении операционной системы Windows появилось расширение TASM, именуемое TASM32, позволившее создавать программы  для выполнения в среде Windows. Последняя  известная версия TASM — 5.3, поддерживающая инструкции MMX, на данный момент включена в Turbo C++ Explorer. Но официально развитие программы полностью остановлено.

     Microsoft поддерживает свой продукт под  названием Microsoft Macro Assembler. Она продолжает  развиваться и по сей день, последние версии включены в наборы DDK. Но версия программы, направленная на создание программ для DOS, не развивается. Кроме того, Стивен Хатчессон создал пакет для программирования на MASM под названием «MASM32». 

     GNU и GNU/Linux.

     В состав операционной системы GNU входит пакет binutils, включающий в себя ассемблер gas (GNU Assembler), использующий AT&T-синтаксис, в отличие от большинства других популярных ассемблеров, которые используют Intel-синтаксис.

     На  рисунке 24 представлен  GNU Assembler. 

     Переносимые ассемблеры.

     Также существует открытый проект ассемблера, версии которого доступны под различные  операционные системы и который  позволяет получать объектные файлы  для этих систем. Называется этот ассемблер NASM (Netwide Assembler).

     Yasm — это переписанная с нуля версия NASM под лицензией BSD (с некоторыми исключениями).

     flat assembler (fasm) — молодой ассемблер  под модифицированной для запрета  перелицензирования (в том числе  под GNU GPL) BSD-лицензией. Есть версии  для KolibriOS, Linux, DOS и Windows; использует Intel-синтаксис и поддерживает инструкции x86-64. 

     Архитектуры RISC.

     MCS-51 (Intel 8051) — классическая архитектура  микроконтроллера. Для неё существует  кросс-ассемблер ASM51, выпущенный  корпорацией MetaLink.

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

     AVR.

     На  данный момент существуют 2 компилятора  производства Atmel (AVRStudio 3 и AVRStudio4). Вторая версия — попытка исправить не очень удачную первую.

     В рамках проекта AVR-GCC (он же WinAVR) существует компилятор avr-as (это портированный под AVR ассемблер GNU as из GCC).

     Также существует свободный минималистический  компилятор avra

     Ассемблирование и компилирование

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

     3.2 Подпрограмма для микроконтроллера 

Информация о работе Система охранной сигнализации промышленного объекта на базе разнотипных датчиков