Дипломная работа на тему "Программное обеспечение управления автоматизированным комплексом многоканальной связи"

ГлавнаяИнформатика → Программное обеспечение управления автоматизированным комплексом многоканальной связи




Не нашли то, что вам нужно?
Посмотрите вашу тему в базе готовых дипломных и курсовых работ:

(Результаты откроются в новом окне)

Текст дипломной работы "Программное обеспечение управления автоматизированным комплексом многоканальной связи":


Введение

Данный дипл омный проект выполнен на актуальную для предприятий-производителей устройств связи тему, тесно связанную с реальными планами исследований и производства, решая практическую задачу по разработке и внедрению программного обеспечения управления автоматизированным комплексом многоканальной связи. По своему характеру проект является опытно-конструкторским. Разработанное обеспечение для изделия ТС16Е1 полностью удовлетворяет техническому заданию. По своему содержанию дипл омный проект соответствует современному уровню науки и техники. В процессе решения задачи создания программного продукта детально были рассмотрены особенности разработки программного обеспечения для микропроцессорных систем, устройство и принципы работы микропроцессоров серии МК51 вообще, интерфейсы в системах связи, основы асинхронной последовательной связи, общие методы ввода / вывода через коммуникационный порт и изучен информационный обмен контроллер-ЭВМ с использованием интерфейса RS‑232. Подробное описание структуры программы, алгоритмов построения и работы всех трех ее частей дает полное представление о ее создании, использовании и принципах работы. В технологической части разработки программных систем и программной документации освещены этапы решения задачи на ЭВМ, принципы тестирования программ и их отладка. Целый раздел посвящен вопросам надежности программного обеспечения. В организационно-экономической части расчета затрат на разработку программного продукта после подробного анализа составляющих затрат приведен расчет конкретно для этого программного продукта.

1. Специальная часть

1.1 Постановка задачи проекта

Целью представленного дипломного проекта является разработка программного обеспечения управления автоматизированным комплексом многоканальной связи, построенного на базе микроконтроллера AT89C51, представляющего собой высокопроизводительный микропроцессор, особенности которого будут рассмотрены ниже. Комплекс представляет собой 16 линейных интерфейсов, обеспечивающих связь через мультиплексор на входе и демультиплексор на выходе общего высокоскоростного канала связи. Каждый интерфейс является коммутатором связи еще нескольких десятков устройств связи. Структурная схема основных частей автоматизированного комплекса многоканальной связи представлена на рисунке 1.1.

Рисунок убран из работы и доступен только в оригинальном файле.

--------------------------------------------------
--------------------------------------------------

Внешняя

ПЭВМ

|
--------------------------------------------------------- --------------------------------------------------   |
--------------------------------------------------------- -------------------------------------------------- --------------------------------------------------
--------------------------------------------------

MUX

DMUX

|
--------------------------------------------------------- --------------------------------------------------   |
--------------------------------------------------------- -------------------------------------------------- --------------------------------------------------
--------------------------------------------------

Блок линейных интерфейсов

LI1 – LI16 |
--------------------------------------------------------- --------------------------------------------------   |
--------------------------------------------------------- --------------------------------------------------

Рисунок убран из работы и доступен только в оригинальном файле.Рисунок убран из работы и доступен только в оригинальном файле.Рисунок убран из работы и доступен только в оригинальном файле.

Рисунок убран из работы и доступен только в оригинальном файле.Е1 Е3, Е4

--------------------------------------------------

---------------------------------------------------------
Рисунок убран из работы и доступен только в оригинальном файле. | Рисунок убран из работы и доступен только в оригинальном файле. | Рисунок убран из работы и доступен только в оригинальном файле. |
---------------------------------------------------------

---------------------------------------------------------
Рисунок убран из работы и доступен только в оригинальном файле. |
---------------------------------------------------------

---------------------------------------------------------
Рисунок убран из работы и доступен только в оригинальном файле. |
---------------------------------------------------------

---------------------------------------------------------
Рисунок убран из работы и доступен только в оригинальном файле. |
--------------------------------------------------------- --------------------------------------------------

Рис. 1.1. Структурная схема основных частей комплекса

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

Блок управления обеспечивает передачу данных регистров линейных интерфейсов на внешнюю ПЭВМ. Основной частью блока управления является микроконтроллер АТ89С51. Связь организуется через последовательный порт процессора Р3 по RS‑232‑му интерфейсу.

Мультиплексор и демультиплексор являются блоками передачи сгруппированного сигнала со скоростью Е3, Е4, работая в режиме дуплекса. На принимающей стороне стоят зеркально такие же демультиплексор и мультиплексор соответственно.

Внешняя ПЭВМ, общаясь через последовательный порт микроконтроллера АТ89С51 с блоком управления, получает необходимую информацию о состоянии работы всех 16‑ти линейных интерфейсов, контролируя таким образом весь комплекс удаленно. Для самой ПЭВМ таких комплексов может быть несколько.

Заказать дипломную - rosdiplomnaya.com

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

Разработанное программное обеспечение позволит контролировать нормальную работу комплекса, взаимодействуя с внешней ПЭВМ по RS‑232‑му интерфейсу. К данному программному продукту предъявляются следующие требования:

1.  Программное обеспечение для процессора АТ89С51 должно быть разработано в соответствии с общим алгоритмом ПО изделия ТС16Е1;

2.  Использовать ОЗУ данных процессора АТ89С51 для хранения карты памяти состояний части битов регистров CR1, CR2, TSR и PSR 16‑ти линейных интерфейсов по заданным адресам в заданном порядке;

3.  Обеспечить своевременное обновление карты памяти состояний части битов регистров CR1, CR2, TSR и PSR всех интерфейсов;

4.  Обеспечить передачу карты памяти состояний оговоренных регистров, взаимодействуя с внешней ПЭВМ, используя интерфейс RS‑232, через последовательный порт Р3.

1.2 Особенности разработки программного обеспечения для микропроцессорных систем

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

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

1.  Анализ задачи и выбора аппаратных средств контроллера;

2.  Разработка прикладного программного обеспечения;

3.  Комплексирование аппаратных средств и программного обеспечения в прототипе контроллера и его отладки.

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

1.  От постановки задачи к исходной программе;

2.  От исходной программы к объектному модулю.

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

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

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

1.3 Использование контроллера АТ89С51

На данный момент широко применяются микроконтроллеры серии МК51. Существует обширная техническая документация и что самое главное широкий выбор отладочных средств от эмулятора ПЗУ и отладочного монитора до внутрисхемного эмулятора. Процессоры данной серии достаточно универсальны для успешного применения в микроэлектронике, что позволяет их использовать как при разработке простых систем, так и при создании сложных модулей электронной аппаратуры.

Рассмотрим микроЭВМ серии МК51 более подробно.

1.3.1 Основные программно-доступные устройства микроконтроллера АТ89С51

Основными программно-доступными устройствами микроконтроллера AT89C51 являются:

1)  8‑разрядный аккумулятор А;

2)  8‑разрядный вспомогательный регистр AВ;

3)  триггеры признаков результата: C, OV, P, отрицательности, нуля;

4)  триггеры выбора банка рабочих регистров RS0 и RS1;

5)  триггер программно-управляемого флага F0;

6)  16‑разрядный счетчик команд PC;

7)  16‑разрядный регистр указателя данных DPTR;

8)  8‑разрядный регистр указателя стека SP;

9)  внутренняя память программ емкостью 4 Kb, расширяемая внешними устройствами до 64 Kb;

10)внутренняя память данных емкостью 128 байт, в которой размещается от одного до четырех банков рабочих регистров R0‑R7, область стека и побитово адресуемая область памяти;

11)внешняя память данных емкостью до 64 Kb;

12)два программируемых 16‑разрядных таймера-счетчика;

13)программируемый двунаправленный последовательный порт ввода-вывода и соответствующие устройства управления;

14)четыре 8‑разрядных двунаправленных параллельных порта ввода-вывода;

15)двухуровневую приоритетную систему прерываний с пятью векторами и двумя уровнями;

16)последовательный интерфейс;

17)тактовый генератор.

1.3.2 Структурная схема микроЭВМ серии МК51

Система команд микроЭВМ серии МК51 содержит 111 базовых команд с форматом 1, 2 или 3 байта. Микроконтроллер имеет:

-   32 РОН;

-   128 определяемых пользователем программно-управляемых флагов;

-   набор регистров специальных функций.

РОН и определяемые пользователем программно-управляемые флаги расположены в адресном пространстве внутреннего ОЗУ данных.

Важнейшей и отличительной чертой архитектуры семейства МК51 является то, что АЛУ может наряду с выполнением операций над 8‑разрядными типами данных манипулировать одноразрядными данными. Отдельные программно-доступные биты могут быть установлены, сброшены или заменены их дополнением, могут пересылаться, проверяться и использоваться в логических вычислениях. Тогда как поддержка простых типов данных может с первого взгляда показаться шагом назад, это качество делает микроЭВМ семейства МК51 особенно удобным для применений, в которых используются контроллеры. Алгоритмы работы последних по своей сути предполагают наличие входных и выходных булевых переменных, которые сложно реализовывать при помощи стандартных микропроцессоров. Все эти свойства в целом называются булевым процессором семейства МК51. Благодаря такому мощному АЛУ набор инструкций микроЭВМ семейства МК51 одинаково хорошо подходит как для применений управления в реальном масштабе времени, так и для алгоритмов с большим объёмом данных.

Рисунок убран из работы и доступен только в оригинальном файле.

Рис. 1.2а. Структурная схема МК51

Рисунок убран из работы и доступен только в оригинальном файле.

Рис. 1.2б. Структурная схема МК51

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

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

Логика ввода-вывода предназначена для приёма и выдачи сигналов, обеспечивающих обмен информацией ОМЭВМ с внешними устройствами через порты ввода-вывода Р0‑Р3.

Регистр команд предназначен для записи и хранения 8‑разрядного кода операции выполняемой команды, который с помощью дешифратора команд преобразовывается в 24‑разрядный код для ПЛМ, с помощью которой вырабатывается набор микроопераций в соответствии с микропрограммой выполнения команды. Регистр команд программно недоступен.

Регистр управления потреблением PCON управляет скоростью передачи последовательного порта SMOD.

Логика управления ЭВМ в зависимости от режима работы МИКРОЭВМ СЕМЕЙСТВА МК51 вырабатывает необходимый набор управляющих сигналов.

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

Регистр аккумулятора и регистр временного хранения – восьмиразрядные регистры, предназначенные для приёма и хранения операндов на время выполнения операций над ними. Программно недоступны.

ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант.

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

Регистр В-восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.

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

Регистр состояния программы предназначен для хранения информации о состоянии АЛУ при выполнении программы.

Таймеры / Счётчики предназначены для подсчёта внешних событий, для получения программно-управляемых временных задержек и выполнения времязадающих функций ОМЭВМ.

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

Счётчик команд предназначен для формирования текущего 16‑разрядного адреса внешней памяти данных.

Порты Р0, Р1, Р2, Р3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией микроЭВМ семейства МК51 с внешними устройствами.

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

Память программ предназначена для хранения программ и имеет отдельное от памяти данных адресное пространство объёмом до 64 Кбайт.

1.3.3 Адресные пространства АТ89С51

В AT89C51 имеются следующие адресные пространства:

1.  Пространство адресов регистров специальных функций, таких как аккумулятор А, вспомогательный регистр AВ, старший и младший регистры указателя данных DPTR, фиксаторы портов ввода-вывода P0‑P3, регистр слова состояния программы PSW, регистр указателя стека SP и др. Диапазон адресов регистров специальных функций находится в пределах от 128 до 255. При записи данных по адресу регистра несуществующей специальной функции данные теряются, при считывании из регистра несуществующей специальной функции данные не определенны;

2.  Пространство адресов триггеров специальных функций, таких как триггеры признаков переноса C, переполнения OV, четности P, отрицательности N, нуля Z, триггеры выбора банка рабочих регистров RS0 и RS1; триггер программно-управляемого флага F0 и другие. Все триггеры специальных функций физически размещаются в регистрах специальных функций. Наличие триггеров специальных функций определяется типом микроконтроллера. Диапазон адресов триггеров специальных функций находится в пределах от 128 до 255. Части адресов соответствуют несуществующие триггеры. При записи бита по адресу несуществующего триггера этот бит теряется, при считывании бита из несуществующего триггера его значение неопределенно;

3.  Пространство адресов памяти программ. Диапазон адресов этого пространства находится в пределах от 0 до 65535. Память программ с адресами от 0 до 4096 может реализоваться внутренним запоминающим устройством. В пространстве адресов памяти программ размещаются коды команд и, возможно, данные. Часть адресов пространства памяти программ зарезервирована для точек входа в программу начального запуска и программы обслуживания прерываний. Адрес команды, подлежащей выполнению, хранится в счетчике команд PC. Обращение к данным в памяти команд осуществляется по адресу равному сумме содержимого счетчика команд PC и аккумулятора A или регистра указателя данных DPTR и аккумулятора A;

4.  Пространство адресов внешней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 65535. Во внешней памяти данных могут размещаться только данные, обращение к которым осуществляется посредством содержимого рабочего регистра-указателя R0, R1 или регистра указателя данных DPTR;

5.  Пространство прямых адресов внутренней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 127. Обращение к данным в пространстве прямых адресов осуществляется посредством второго байта кода команды. Пространство адресов регистров специальных функций является продолжением данного пространства;

6.  Пространство косвенных адресов внутренней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 127. Пространство косвенных адресов от 0 до 127 физически совпадает с пространством прямых адресов;

7.  Пространство поразрядных прямых адресов внутренней памяти данных. Диапазон адресов этого пространства находится в пределах от 0 до 127. Данное пространство физически совпадает с пространством прямых адресов ячеек от 32 до 47. Пространство адресов триггеров специальных функций является продолжением пространства поразрядных прямых адресов;

8.  Пространство адресов стека. Диапазон адресов этого пространства находится в пределах от 0 до 127. Данное пространство физически совпадает с пространством косвенных адресов. Произвольный адрес верхушки стека можно установить, например, с помощью команды:

MOV SP, #<адрес>;

9.  Пространство рабочих регистров, которое разделено на 4 банка. Каждый из банков содержит восемь 8‑разрядных рабочих регистров R0 – R7. Диапазоны адресов пространства рабочих регистров во внутренней памяти данных следующие:

Для нулевого банка: 0 – 7;

Для первого банка: 8 – 15;

Для второго банка: 16 – 23;

Для третьего банка: 24 – 31.

Выбор текущего банка рабочих регистров определяется содержимым триггеров специальных функций RS0 и RS1:

--------------------------------------------------
Банк |
---------------------------------------------------------
Нулевой | 0 | 0 |
---------------------------------------------------------
Первый | 0 | 1 |
---------------------------------------------------------
Второй | 1 | 0 |
---------------------------------------------------------
Третий | 1 | 1 |
--------------------------------------------------------- --------------------------------------------------

Установить триггеры в требуемое состояние можно, например, посредством команд CLR RS0, CLR RS1, SETB RS0 и SETB RS1. Рабочие регистры R0 и R1 текущего банка могут использоваться при косвенной адресации внутренней и внешней памяти данных.

Адресам памяти текущего банка рабочих регистров R0‑R7 в языке ассемблера присвоены символические имена AR0‑AR7 соответственно. Распределение памяти ОЗУ процессора АТ89С51 представлено на рисунке 1.3.

Рисунок убран из работы и доступен только в оригинальном файле.

Рис. 1.3. Распределение памяти ОЗУ процессора АТ89С51

1.3.4 Характеристики средств языка ассемблера

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

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

В зависимости от устройства памяти и способа адресации данных в этой памяти сегменты исходного модуля делятся на 4 типа:

-   CODE, который используется для определения команд, данных и адресов в пространстве памяти команд;

-   XDATA, который используется для определения адресов в пространстве внешней памяти данных;

-   DATA, который используется для определения прямых адресов в пространстве внутренней памяти данных;

-   IDATA, который используется для определения косвенных адресов в пространстве внутренней памяти данных;

-   BIT, который используется для определения прямых побитовых адресов в пространстве внутренней памяти данных.

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

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

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

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

1.4 Интерфейсы в системах связи

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

1.4.1 Классификация интерфейсов

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

Межкрейтовые интерфейсы. В начале 70‑х годов фирма Hewlett-Packard разработала восьмибитовое параллельное устройство сопряжения – «Hewlett-Packard Interface Bus» – для связи между измерительными приборами и управляющим компьютером на расстояниях до 20 м. И со скоростью до 1Мбит/с. В 1975 г. HP-IB был приведен IEEE к национальному стандарту США IEEE‑488, а в 1987 г. Опубликована его последняя версия: IEEE‑488.2. Международная электротехническая комиссия выпустила аналогичный стандарт в ноябре 1976 г. В России этот тип интерфейса стандартизован ГОСТ 26.003–80 «Система интерфейса для измерительных устройств с байт последовательным, бит параллельным обменом информацией» и известен также под названием «приборный интерфейс» и «канал общего пользования». Стандарт IEEE‑488 получил широкое распространение и поддерживается почти всеми производителями измерительных приборов. Он даёт возможность объединять до 15 различных приборов в локальную измерительную систему, управляемую компьютером.

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

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

В настоящее время существуют несколько широко используемых интерфейсов: RS‑232C/V.28, EIA‑232D/V.28, RS‑423, -422, – 485. Эти стандарты регламентируют обмен данными в последовательном канале на физическом уровне. Они учитывают особенности линии связи, рекомендуют оптимальные схемы соединения, оптимальные характеристики приёмников и передатчиков. Принципиальное различие перечисленных интерфейсов состоит в используемом типе линий связи. В этом отношении интерфейсы можно разделить на однопроводной, несимметричный, дифференциальный и симметричный дифференциальный.

К стандартам, описывающим однопроводной интерфейс, относятся EIA RS‑232C, EIA‑232D, аналогичные европейские спецификации CCITT V.24, V28 и рекомендация ISO 2110, а также российские ГОСТ 18145–81, 23675–79.

Первоначально интерес RS‑232 был разработан для сопряжения терминалов с модемами. Сейчас этим интерфейсом комплектуется большинство популярных компьютеров для связи с внешними устройствами, в том числе и персональные компьютеры IBM PC. Поскольку ядром любой современной измерительной системы служит компьютер, использование штатного машинного интерфейса – наиболее простой и дешёвый способ организации связи в рассредоточенной системе.

1.4.2 Основы асинхронной последовательной связи

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

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

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

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

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

В асинхронной связи изменение условия состояния линии с MARK на SPACE означает начало символа). Это называется стартовым битом. За стартовым битом следует комбинация битов, представляющая символ, и затем бит контроля четности. Наконец, линия переходит в состояние ожидания MARK, которая представляет собой стоповый бит и означает конец текущего символа. Число битов, используемых для представления символа, называется длиной слова и обычно бывает равно семи или восьми. Контрольный бит используется для выполнения элементарной проверки на наличие ошибки.

Рисунок убран из работы и доступен только в оригинальном файле.

Рис. 1.4. Представление в асинхронной последовательной связи формата одиночного символа. A‑длительность 1 бита; B-MARK или 1; C-SPACE или 0

Как передатчик узнают о длительности каждого бита? Действительно, и передатчик, и приемник должны знать его длительность или детектирование битов будет невозможно. Длительность каждого бита определяется генераторами тактовых импульсов приемника и передатчика. Отметим, однако, что генераторы в приемнике и передатчике должны иметь одну и ту же частоту, но не требуется, чтобы они были синхронизированы. Выбор частоты генератора зависит от скорости передачи в бодах, которая означает число изменений состояния линии каждую секунду. Номинально тактовая частота «16‑кратная скорость передачи в бодах» означает, что линия проверяется достаточно часто для надежного распознавания стартового бита.

Существует одно обычное состояние линии, которое иногда используется для привлечения внимания приемника. Нормальным состоянием линии является MARK и начало символа определяется переходом SPACE. Если линия находится в состоянии SPACE в течение периода времени большем, чем время, которое она затратила бы на получение всех битов символа, тогда мы говорим, что наступило состояние BREAK. В кодах ASCII отсутствует представление BREAK – это означает, что линия «умерла» на непродолжительный промежуток времени, который составляет BREAK.

Ранее мы упоминали, что бит контроля четности полезен для обнаружения ошибок. Например, если выбрана проверка на четность, этот бит устанавливается таким образом, что общее число единиц в текущем слове является четным. В приемнике четность вычисляется заново и сравнивается с битом контроля четности. Если они не равны, то приемник сообщает, что имеет место ошибка четности. Главный недостаток обнаружения ошибки посредством проверки на четность заключается в том, что можно только обнаружить ошибки, которые влияют на один единственный бит. Например, битовая комбинация 0100 0001 0, переданная восемью битами с проверкой на четность, может измениться на 0100 01110, однако приемник не обнаружит ошибку, так как проверка на четность выполняется.

В дополнение к квитированию установления связи посредством аппаратных сигналов RTS/CTS, для достижения управления потоком с использованием программного обеспечения применяются специальные управляющие символы ASCII. Управлять потоком необходимо ввиду того, что иногда либо передатчик либо приемник не могут поддерживать скорость передачи и они должны иметь возможность информировать другую сторону о необходимости остановки на время, требуемое для того, чтобы отставшая сторона смогла догнать другую.

Предположим, что приемник имеет буфер для хранения поступающих символов. Как только буфер после заполнения закрывается, приемник может послать символ XOFF передатчику, сигнализируя, что передача должна быть приостановлена. Конечно, передатчик должен понять значение XOFF и прекратить передачу символов. Затем, когда приемник обработает символы и буфер освободится, тогда посылается символ XON, показывающий, что передача может быть продолжена. Эта схема управления потоком широко применяется ввиду ее простоты. Большинство связных программ предоставляют возможность дуплексной связи с управлением потоком, основанном на применении символов XON/XOFF.

1.5 Общие методы ввода / вывода через коммуникационный порт

Существует два общих метода ввода / вывода в любой вычислительной системе: упорядоченный и управляемый прерываниями. Упорядоченность относится к повторяющейся проверке состояния регистра устройства ввода / вывода для инициализации требуемой транзакции. В упорядоченном вводе / выводе программа, запрашивающая символ ввода, многократно считывает состояние регистра в устройстве ввода / вывода до тех пор, пока оно не покажет, что символ доступен для ввода. Когда состояние указывает, что имеется готовый для работы символ, программа считывает его из соответствующего регистра устройства ввода / вывода. Сходная последовательность «ждать, до тех пор пока не готов, затем писать» используется при выведении символов на устройство ввода / вывода. Таким образом, дальнейшее выполнение программы приостанавливается до завершения выполнения операции ввода / вывода.

Большой проблемой для упорядоченного ввода / вывода через коммуникационный порт является то, что при скорости передачи выше 300 бод программе трудно что-либо сделать с получаемым символом кроме как отображать его на экране. Рассмотрим следующий пример. Предположим, что мы читаем символы со скоростью 300 бод и имеем следующие связные параметры: длина слова 7 бит, проверка на четность и один стоповый бит, который вместе со стартовым битом, добавляет до 10 бит на символ. Ожидается получать около 30 символов каждую секунду. После чтения символа программа имеет около 1/30 секунды для выполнения других операций. Чтобы не потерять какие-либо символы в это время следует снова начать упорядочение порта. Что произойдет, когда скорость возрастет до 9600 бод? Временной интервал между символами слишком мал для выведения символа на экран дисплея, не позволяет интерпретировать специальные символы и эмулировать терминал.

В подходе, основанном на управлении прерываниями, программа предоставляет возможность прерываниям устройства ввода / вывода поступать непосредственно на центральный процессор, который продолжает выполнять свою работу, не связываясь с устройством. Когда устройство готово к вводу / выводу, оно сигнализирует об этом центральному процессору посредством аппаратуры. Получив этот сигнал, центральный процессор сохраняет свое текущее состояние и вызывает подпрограмму обслуживания прерываний, адрес которой хранится в таблице векторов прерываний. Эта подпрограмма выполняет операцию ввода / вывода, затем восстанавливает состояние машины и возвращается в прерванную программу. Также стоит учитывать регистр символов, поступающих в коммуникационный порт персонального компьютера. Организовав где-нибудь некоторые ячейки памяти, можно использовать простую подпрограмму обработки прерываний, которая быстро считывает символ из коммуникационного порта и сохраняет его в следующей доступной ячейке памяти в буфере. Символы не будут утеряны в процессе считывания и сохранения символа драйвером прерываний перед поступлением следующего символа. Эта несложная задача достаточно проста для выполнения в короткие временные интервалы между поступающими символами при скорости передачи 9600 бод. Прелесть этого метода заключается в том, что время обработки главной программой символов, хранящихся в буфере, не имеет значения. Конечно, существует риск переполнения буфера, но эта проблема может быть решена простым увеличением его размера. Если этот способ не очень хорош, то для избежания переполнения буфера можно использовать управление потоком с помощью XON/XOFF.

Из этих рассуждений становится очевидно, что управляемая прерываниями буферная связь с использованием управления потоком с помощью XON/XOFF, предпочтительнее упорядоченной связи.

1.5.1 Последовательный порт с точки зрения программиста

Скорость передачи в бодах определяется как 16‑битовый делитель тактовой частоты, используемой для последовательного адаптера. Значение делителя вычисляется по формуле

1,843,200

делитель = –––––––––––––––––––––––––––––––

16 Х скорость передачи в бодах

Чтобы установить скорость передачи в бодах, Вы должны проделать следующее:

1.  Установить в 1 наиболее значимый бит регистра управления линией.

2.  Загрузить младший и старший байты делителя соответственно в приемный буфер и регистр разрешения прерываний.

3.  Установить DLAB в 0 для обеспечения нормальной работы универсального асинхронного приемопередатчика.

Применяя этот подход, можно установить любое значение скорости передачи в бодах. Максимально возможной скоростью передачи является 1/16 тактовой частоты, или 115,200 бод. Этот предел вытекает из того, что делитель не может быть меньше единицы.

1.6 Информационный обмен контроллер – ЭВМ с использованием интерфейса RS‑232

Для связи МК51 с интерфейсом RS‑232 можно использовать самый подходящий для этого вариант – последовательный порт.

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

Приём и выдача байта данных начинается с младшего разряда и заканчивается старшим разрядом. Для разрешения приёма необходимо установить 1 в разряде REN регистра управления SCON.

Последовательный порт может быть запрограммирован на один из четырёх режимов приёма / передачи путём программирования разрядов SM0 и SM1 регистра SCON. Во всех четырёх режимах передача инициируется любой командой, которая использует SBUF в качестве регистра назначения.

Режим 0. В этом режиме информация и передаётся и принимается через внешний вывод входа приёмника. Принимаются или передаются 8 бит данных. Через внешний вывод выхода передатчика выдаются импульсы сдвига, которые сопровождают каждый бит. Частота передачи бита информации равна 1/12 частоты резонатора.

Режим 1. В этом режиме передаются через TXD или принимаются из RXD 10 бит информации: старт бит, 8 бит данных и стоп-бит. Скорость приёма / передачи – величина переменная и задаётся таймером.

Режим 2. В этом режиме через TXD передаются или из RXD принимаются 11 бит информации: старт бит, 8 бит данных, программируемый девятый бит и стоп-бит. При передаче девятый бит может принимать значение 0 или 1, или, например, для повышения достоверности передачи путём контроля по чётности в него может быть помещено значение признака паритета из слова состояния программы. Частота приёма / передачи выбирается программой и может быть равна либо 1/32, либо 1/64 частоты резонатора в зависимости от управляющего бита SMOD.

Режим 3. Режим 3 совпадает с режимом 2 во всех деталях, за исключением частоты приёма / передачи, которая является величиной переменной и задаётся таймером.

Передача начинается в фазе S1P1 машинного цикла, следующего за ближайшим после ЗАПИСЬ В SBUF переполнением делителя на 16 в цепи сигнала СИНХР Тх. Период сигнала СИНХР Тх определяет время, в течение которого выдаваемый бит присутствует на выходе TxD. Внутренние сигналы микроЭВМ семейства МК51 ПОСЫЛКА, ДАННЫЕ и СДВИГ по функциональному назначению и формированию идентичны во всех режимах. На выход TxD выдается девять бит данных: D0‑D7 и TB8. После первого импульса СДВИГ в освободившийся девятый разряд регистра сдвига передатчика заноситься 1. Всего формируется 9 импульсов СДВИГ, в результате чего все биты регистра сдвига передатчика последовательно выдаются на выход TxD. По окончании выдачи всех бит посылки блок управления передачей устанавливает флаг прерывания передатчика TI и снимает сигналы ПОСЫЛКА и ДАННЫЕ.

Приём начинается при обнаружении перехода сигнала на входе RxD из 1 в 0. Для отслеживания такого перехода вход RxD аппаратно опрашивается с частотой f1. Когда переход обнаружен, немедленно сбрасывается счетчик делитель на 16 в цепи сигнала СИНХР Rx, в результате чего происходит совмещение моментов переполнения этого счётчика делителя с границами смены битов принимаемой посылки на входе RxD. Шестнадцать состояний счётчика-делителя делят время, в течение которого каждый бит принимаемой посылки присутствует на входе RxD, на 16 фаз, с 1 по 16 для каждого бита. В фазах 7, 8 и 9 специальное устройство ОМЭВМ, бит-детектор, считывает с входа RxD 3 значения принимаемого бита, по мажоритарному принципу «2 из 3» выбирает из них одно и подаёт его на вход регистра сдвига приёмника. Блок управления приёмом при этом формирует внутренний импульс МИКРОЭВМ СЕМЕЙСТВА МК51 СДВИГ, в результате чего содержимое регистра сдвига приёмника сдвигается на один разряд и принятый бит заносится в регистр сдвига приёмника. После 10 импульса СДВИГ блок управления приёмом загружает биты D0‑D7 из регистра сдвига приёмника в SBUF, переписывает 9 разряд регистра сдвига приемника в бит RB8 регистра SCON и устанавливает флаг прерывания приёмника RI в регистре SCON. Сигнал загрузки SBUF, RB8 и установки RI вырабатывается блоком управления приёмом тогда и только тогда, когда в момент генерации последнего импульса СДВИГ выполняются следующие условия: RI=0 и либо SM2=0, либо принятый 9 бит данных равен 0.

Если хотя бы одно из этих условий не выполняется, принятая посылка безвозвратно теряется, а флаг RI не устанавливается. Если оба приведённых условия выполнены, принятый 9 бит данных поступает в RB8, биты D0‑D7 записываются в SBUF и устанавливается флаг RI. Независимо от выполнения приведённых выше условий последовательный порт вновь начинает отслеживание перехода сигнала из 1 в 0 на входе RxD. Значение принятого стоп-бита не влияет на SBUF, RB8 или RI.

Обмен между контроллером и ЭВМ производится в режиме полудуплекса, т. е. ЭВМ посылает байт, а контроллер отвечает. С ЭВМ по каналу RS‑232 приходит байт с установленным девятым битом, это означает что необходимо начать преобразование входного сигнала. Второй и последующий байты посылаемые ЭВМ приводят к выталкиванию двух оцифрованных значений побайтно, старшими байтами вперёд, т. е. если первое слово обозначить H0L0, а второе H1L1 то они будут переданы так: H0, L0, H1, L1. Затем контроллер передаёт контрольную сумму, которая подсчитывается по формуле: CRC = S + H0 + L0 + H1 + L1. Она служит для контроля за правильностью передачи данных. После передачи контрольной суммы контроллер переходит в исходное состояние в котором он может принимать только байты с девятым битом равным единице.

1.7 Создание программы управления автоматизированным комплексом многоканальной связи

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

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

1.  Надежность;

2.  Простота реализации;

3.  Точность;

4.  Скорость работы.

1.7.1 Структуры данных

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

1.7.2 Составляющие программы

Программа управления автоматизированным комплексом многоканальной связи состоит из трех частей: основная программа, подпрограмма перезаписи карты памяти части битов внутренних регистров CR1, CR2, TSR и PSR линейных интерфейсов, которая выполняется с приходом прерывания от любого линейного интерфейса и подпрограмма связи с внешней ПЭВМ через последовательный порт, которая выполняется, когда приходит прерывание от последовательного порта.

Система прерываний для микроконтроллера АТ89С51 организована следующим образом. При приходе прерывания от последовательного порта, выполняется специальная подпрограмма обработки этого прерывания. Как она работает. Вначале производится проверка, и если приходит прерывание от передатчика, то сбросить его и выйти. Если нет, то производится проверка полученного байта, если пришёл байт с установленным 9 битом то выполняется инициализация процедуры чтения данных из памяти, затем подсчёт контрольной суммы, передача блока данных на ЭВМ и завершение подпрограммы. Если пришел байт без установленного 9 бита, то если переданы все байты – передаётся контрольная сумма, а если нет – передаётся байт и подсчитывается контрольная сумма.

В начале основной программы происходит назначение векторов прерываний от линейных интерфейсов и последовательного порта. Далее идут два блока инициализации: области памяти ОЗУ данных с 40Н по 7FН и самих линейных интерфейсов. Команды инициализации последних CR2.RESET формируются в соответствии с таблицей адресов линейных интерфейсов и таблицей адресов внутренних регистров линейных интерфейсов.

--------------------------------------------------
Регистр | Bit |
---------------------------------------------------------
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------
LI1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 00Н |
---------------------------------------------------------
LI2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 10H |
---------------------------------------------------------
LI3 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 20Н |
---------------------------------------------------------
LI4 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 30H |
---------------------------------------------------------
LI5 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 40Н |
---------------------------------------------------------
LI6 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 50H |
---------------------------------------------------------
LI7 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 60H |
---------------------------------------------------------
LI8 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 70H |
---------------------------------------------------------
LI9 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 80H |
---------------------------------------------------------
LI10 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 90H |
---------------------------------------------------------
LI11 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | A0H |
---------------------------------------------------------
LI12 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | В0Н |
---------------------------------------------------------
LI13 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | C0H |
---------------------------------------------------------
LI14 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | D0Н |
---------------------------------------------------------
LI15 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | E0H |
---------------------------------------------------------
LI16 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | F0H |
--------------------------------------------------------- -------------------------------------------------- --------------------------------------------------
Регистр |

Bit

|
---------------------------------------------------------
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------
CR1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 00H |
---------------------------------------------------------
CR2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 02H |
---------------------------------------------------------
CR3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 04H |
---------------------------------------------------------
CR4 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0EH |
---------------------------------------------------------
ICR | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 06H |
---------------------------------------------------------
TSR | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 08H |
---------------------------------------------------------
PSR | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0AH |
---------------------------------------------------------
ESR | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0CH |
--------------------------------------------------------- --------------------------------------------------

Рис. 1.10. Адреса внутренних регистров линейных интерфейсов.

Затем производится запись в ОЗУ данных состояний части битов внутренних регистров линейных интерфейсов. Данные располагаются в заранее оговоренной техническим заданием области памяти 40Н – 7FН в заданном порядке. Распределение памяти ОЗУ данных процессора показано на рисунке 1.11. Нужные биты выбираются из внутренних регистров линейных интерфейсов, таблица которых приведены на рисунке 1.12. Например, для занесения бита AIS в 1‑й бит ячейки памяти 40Н, его нужно считать из 2‑го бита регистра PSR LI1. Порядок сохраняется для всей карты по возрастанию следующий: PSR, TSR, CR2, CR1.

--------------------------------------------------
Линейный интерфейс | Адрес регистра в ОЗУ | Bit |
---------------------------------------------------------
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------
L1 1 | 40 Н | DFMO | AIS | LOS |
---------------------------------------------------------
41 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
42 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
43 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 2 | 44 H | DFMO | AIS | LOS |
---------------------------------------------------------
45 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
46 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
47 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 3 | 48 Н | DFMO | AIS | LOS |
---------------------------------------------------------
49 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
4A Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
4B Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 4 | 4C Н | DFMO | AIS | LOS |
---------------------------------------------------------
4D Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
4E Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
4F Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 5 | 50 Н | DFMO | AIS | LOS |
---------------------------------------------------------
51 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
52 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
53 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 6 | 54 Н | DFMO | AIS | LOS |
---------------------------------------------------------
55 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
56 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
57 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 7 | 58 Н | DFMO | AIS | LOS |
---------------------------------------------------------
59 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
5A Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
5B Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 8 | 5C Н | DFMO | AIS | LOS |
---------------------------------------------------------
5D Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
5E Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
5F Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 9 | 60 Н | DFMO | AIS | LOS |
---------------------------------------------------------
61 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
62 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
63 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 10 | 64 Н | DFMO | AIS | LOS |
---------------------------------------------------------
65 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
66 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
67 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 11 | 68 Н | DFMO | AIS | LOS |
---------------------------------------------------------
69 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
6A Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
6B Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 12 | 6C Н | DFMO | AIS | LOS |
---------------------------------------------------------
6D Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
6E Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
6F Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 13 | 70 Н | DFMO | AIS | LOS |
---------------------------------------------------------
71 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
72 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
73 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 14 | 74 Н | DFMO | AIS | LOS |
---------------------------------------------------------
75 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
76 Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
77 Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 15 | 78 Н | DFMO | AIS | LOS |
---------------------------------------------------------
79 Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
7A Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
7B Н | ES4 | ES3 | ES2 | ES1 |
---------------------------------------------------------
L1 16 | 7C Н | DFMO | AIS | LOS |
---------------------------------------------------------
7D Н | FL | TQRSS | ESOVR | ESUNF | TDFMO | TAIS | TLOS |
---------------------------------------------------------
7E Н | ЕРАТ1 | EPAT0 | ETAOS | EQZMON | ERLOOP | ELLOOP | EALOOP |
---------------------------------------------------------
7F Н | ES4 | ES3 | ES2 | ES1 |
--------------------------------------------------------- --------------------------------------------------

Рис. 1.11. Распределение памяти ОЗУ данных процессора.

Потом инициализируется последовательный порт Р3 на прием. Инициализируется таймер, выбор 1‑го таймера, перевод его в третий режим работы, загрузка константы скорости в таймер для 9600 Бод, разрешение работы таймера. Инициализация последовательного порта проходит следующим образом: порт устанавливается в режим 9‑бит с программируемой скоростью, устанавливается адрес для записи принятых значений, выбирается номера канала, идет разрешение приёма сообщений с взведённым 9‑м битом, разрешение работы приёмопередатчика, разрешение прерываний от приёмопередатчика, общее разрешение прерываний, сброс бита разрешения приёма. После этого выполняется основной цикл программы: ожидание прерывания либо от любого из линейных интерфейсов с переходом на подпрограмму перезаписи карты памяти части битов внутренних регистров линейных интерфейсов, либо от последовательного порта с переходом на подпрограмму связи с внешней ПЭВМ через последовательный порт.

Подпрограмма перезаписи карты памяти части битов внутренних регистров линейных интерфейсов состоит из четырех последовательных вызовов подпрограмм RDPSR, RDTSR, DRCR2 и RDCR1 с предварительным занесением в регистр R1 соответствующих адресов регистров, используя таблицу, приведенную на рисунке 1.10. Выполнение подпрограммы происходит в режиме маскирования прерываний. После перезаписи карты памяти снимаются все флаги прерываний линейных интерфейсов и происходит выход из подпрограммы.

Подпрограмма связи с внешней ПЭВМ через последовательный порт вызывается при появлении прерывания от последовательного порта. Она также с запрещения всех прерываний. Инициализируется прием и прослушивается порт на приход старт байта. В случае его получения происходит инициализация чтения данных из памяти. Считается контрольная сумма для передачи бита четности и происходит поблочная передача данных. Для передачи всех 64 байт требуется 64 сеанса связи. Такая организация работы выбрана не случайно. В разделе, где упоминалось об основах асинхронной последовательной связи, приводились причины, по которым данный способ взаимодействия внешней ПЭВМ с последовательным портом является оптимальным. При втором сеансе связи приема старт байта не происходит. Это говорит о продолжении уже начатой передачи данных. Смотрится, является ли этот байт признаком передачи последнего кусочка данных. В этом случае считается контрольная сумма и выполнение

Здесь опубликована для ознакомления часть дипломной работы "Программное обеспечение управления автоматизированным комплексом многоканальной связи". Эта работа найдена в открытых источниках Интернет. А это значит, что если попытаться её защитить, то она 100% не пройдёт проверку российских ВУЗов на плагиат и её не примет ваш руководитель дипломной работы!
Если у вас нет возможности самостоятельно написать дипломную - закажите её написание опытному автору»


Просмотров: 905

Другие дипломные работы по специальности "Информатика":

Web-сайт для учителей информатики: анализ существующих и разработка нового приложения

Смотреть работу >>

Поиск фотооборудования

Смотреть работу >>

Автоматизированная система складского учета в ЗАО "Белгородский бройлер"

Смотреть работу >>

Автоматизированная система учета договоров страхования предпринимательских рисков

Смотреть работу >>

Создание информационно-справочной системы "Методический кабинет"

Смотреть работу >>