Адаптер паралельного обмена

СОДЕРЖАНИЕ

	

	Введение	

	1 Выбор и обозначение основных технических решений	

	1.1 Связь проектируемого устройства с IBM PC	

	1.2 Особенности магистрали ISA	

	1.3 Связь проектируемого устройства  с внешними устройствами	

	1.4 Общая структурная схема	

	1.5 Возможные варианты структурных схем и их сравнительный анализ	

	1.6 Обоснование выбора структурной схемы	

	1.7 Обоснование выбора типа ОМК	

	2 Структурная схема устройства и ее описание	

	2.1 Структурная схема.	

	2.1.1 Назначение отдельных функциональных блоков.	

	2.1.1.1 Селектор адреса	

	2.1.1.2. Буфер данных	

	2.1.1.3 Блок CPU.	

	3 Разработка принципиальной схемы устройства	

	3.1 Блок регистров	

	3.2 Блок приема данных (от ВУ)	

	3.3 Блок прерываний	

	3.4 Блок сопроводительных стробов	

	4 Расчет основных параметров и характеристик	

	4.1 Расчет потребляемых токов	

	4.2 Расчет потребляемой мощности	

	4.3 Расчет надежности	

	5 Разработка и отладка рабочей программы МКУ	

	5.1 Блок – схема алгоритма и его описание	

	5.2 Структура программы	

	5.3 Распределение памяти данных	

	5.4 Текст программы	

						Заключение	

	Список используемой литературы	

	

	
ВВЕДЕНИЕ

	

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

	Они стали сегодня одним из самых распространенных элементов программируемой логики. Более двух третей мирового рынка микропроцессорных средств в настоящее время составляют именно однокристальные микроконтроллеры.

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

	Существует два принципиально разных подхода к проектированию цифровых устройств: использование принципа схемной логики или использование принципа программируемой логики.

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

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

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

	
1 ВЫБОР И ОБОЗНАЧЕНИЕ ОСНОВНЫХ ТЕХНИЧЕСКИХ РЕШЕНИЙ

	

	1.1 Cвязь проектируемого устройства с IBM PC

	

	Обмен информацией между разрабатываемым адаптером и памятью осуществляется посредством системной шины ISA (Industrial Standard Architecture). 

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

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

	Интерфейсная часть устройства содержит в себе селектор адреса и буфер для обмена информацией с магистралью ISA.

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

	

	1.2 Особенности магистрали ISA

	

	Магистраль ISA была разработана специально для персональных компьютеров типа IBM PC AT и является фактическим стандартом для всех изготовителей.

	Магистраль ISA относится к демультеплексированным (то есть имеющим раздельные шины данных и адреса) 16-ти разрядным системным магистралям среднего быстродействия. Обмен осуществляется 8-ми и 16-ти разрядными данными. На магистрали реализован раздельный доступ к памяти компьютера и к устройствам ввода/вывода (для этого имеются специальные сигналы).

	Максимальный объем адресуемой памяти составляет 16Мб (24 адресные линии). Максимальное адресное пространство для устройств ввода/вывода – 64 Кб (16 адресных линий), хотя практически все выпускаемые платы расширения используют только 10 адресных линий (1Кб). Магистраль поддерживает регенерацию динамической памяти, радиальные прерывания и прямой доступ к памяти. Допускается также захват магистрали.

	Разъем магистрали ISA разделен на две части, что позволяет уменьшать размеры 8-ми разрядных плат расширения, а также использовать платы, разработанные для компьютеров IBM PC XT.

	Следует отметить, что в магистрали ISA используется положительная логика на шинах адреса и данных, то есть единице соответствует высокий уровень напряжения, а нулю — низкий. На магистрали присутствуют четыре напряжения питания: +5В, -5В, +12В, -12В, которые могут использоваться платами расширения.

	Стандартом магистрали ISA установлены ограничения на максимальное значение тока, потребляемого каждой платой расширения (они связаны только с возможностями используемого разъема). Значения этих токов приведены в таблице 1.1. 

	

	Максимальные токи потребления платами расширения

	Таблица 1.1

	Напряжение

	8-ми разрядная плата

	16-ти разрядная

	+5В

	3.0 A

	4.5 A

	-5В

	1.5 A

	1.5 A

	+12В

	1.5 A

	1.5 A

	-12В

	1.5 A

	1.5 A

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

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

	Выходные каскады передатчиков магистральных сигналов УС должны выдавать ток низкого уровня не менее 24 мА (это относится ко всем типам выходных каскадов), а ток высокого уровня – не меньше 3 мА (для выходов с тремя состояниями и ТТЛ). Входные каскады приемников магистральных сигналов должны потреблять входной ток низкого уровня не больше 0.8 мА, а входной ток высокого уровня – не больше 0.04 мА.

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

	К некоторым линиям магистрали подключены нагрузочные резисторы, идущие на шину питания +5В. К линиям -IOR, -IOW, -MEMR, -MEMW, -SMEMR, -SMEMW, -I/O CH CK подключены резисторы 4.7 кОм, к линиям -I/O CS 16, -MEM CS 16, -REFRESH, -MASTER, -OWS — 300 Ом, а к линиям I/O CH RDY – 1 кОм. Кроме того, к некоторым линиям магистрали подключены последовательные резисторы: к линиям -IOR, -IOW, -MEMR, -MEMW,-SMEMR, -SMEMW и OSC – резисторы номиналом 22 Ом, а к линии SYSCLK – 27 Ом.

	
1.3 Связь проектируемого устройства с внешними устройствами

	

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

	

	1.4 Общая структурная схема

	

	На основе выше изложенного предлагается следующая общая структурная схема (рис. 1.1). 

	Данные из ОЗУ компьютера по системной шине ISA поступают на устройство сопряжения. Интерфейсная часть осуществляет согласование УС с системной шиной. Данные из интерфейсной части устройство передаются операционной части, с помощью которой эти данные передаются во внешние устройства.

	При передаче данных из внешнего устройства в ОЗУ компьютера осуществляется следующим образом: операционная часть согласует внешние устройства и устройство сопряжения. Данные через ОЧ передаются в ИЧ и посредством системной шины - в ОЗУ компьютера.

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

	


	ЦП – центральный процессор

	ОЗУ – оперативное запоминающее устройство

	УС – устройство сопряжения

	ИЧ – интерфейсная часть

	ОЧ – операционная часть

	КП – контроллер прерываний

	Рис. 1.1 – Общая структурная схема

	

	1.5 Возможные варианты структурных схем и их сравнительный   анализ

	

	Для реализации данного устройство можно предложить два варианта:

			на одном кристалле;

			на двух кристаллах.

	Вариант структурной схемы устройства на одном кристалле приведен на рисунке 1.2.

	

			СА – селектор адреса

			БД – буфер данных

			WR – блок сопроводительных стробов

			БР – блок регистров

			БПД – блок приема данных

			INT – блок обработки прерываний

		

	Рис. 1.2 – Структурная схема устройства на одном кристалле

	

	

	Вариант структурной схемы устройства на двух кристаллах приведен на рисунке 1.3.

	

			СА – селектор адреса

			БД – буфер данных

			БР – блок регистров

			БПД – блок приема данных

			

	Рис. 1.3 – Структурная схема устройства на двух кристаллах

	
Алгоритмы работы микропроцессоров, согласно структурной схемы, 

                                                                                         Начало





                                                                                          Опрос

                                                                                         RESET



                                                                              да                                                         RESET = "1"



                                                                                                 нет 

                                  Выдать  SS= 

                             "1111111"                                        Опрос Ок!



                                                                            нет                                                         Ok! = "1"



       да 



                                                                                         Опрос

                                                                                          IOW



                                                                             нет                                                       IOW = "0"                                    



                                                                                                 да



                                                                                         Читать 

                                                                                      SA0…SA2



                                                                                                             да

                                                                                          ="111"

                                                                                                  нет



                                                                                     Преобразов.                                                 Выдать

                                                                                         2поз.                                                     STRW7



                                                                                           

                                                                                         Выдать                                                   Задержка

                                                                                     STRW0…6





                                                                                         Выдать                                                      Читать

                                                                                        WR0…6                                                  № регистра



                                                                                      

                                                                                       Сбросить                                                Преобразов.

                                                                                        WR0…6                                                     2поз.

                                                                            

                                                                                                                                          

                                                                                                                                                           Выдать

                                                                                                                                                         SS0…SS6









                                                                          да            Питание

                                                                                             вкл?

                                                                                                   нет





                                                                                          Конец

Рис. 1.4 – Схема алгоритма работы CPU1

                                                                                         Начало





                                                                                         Опрос

                                                                                         RESET



                                                                              да                                                          RESET ="1"



                                                                                                 нет 

                                  Выдать  SS= 

                             "1111111"                                        Опрос INT



                                                                               да                                                       INT ="1"



       нет 



                               Выдать                                              Опрос

                                  IRQ                                                   Ок!



                                                                             нет                                                         Ok! = "1"         



                                                                                                 да



                                                                                         Опрос

                                                                                        STRW7



                                                                                                            да

                                   STRW7 ="0"

                                                                                                  нет



                                                                                         Опрос                                                          Читать

                                                                                           IOR                                                           D0…D7



                                                                             нет

                                                                                                                                                          Определить

                                                                                                  да                                                     № регистра

                                                                            

                                                                                         Читать

                                                                                      SA0…SA2

                                                                                                                                                              Выдать

                                                                                                            да                                           № регистра

                                                                                         ="111"

                                                                                                   нет



                                                                                     Преобразов.                     Читать

                                                                                         2поз.                            INT





                                                                                        Выдать                          Выдать

                                                                                      STRR0…6                      D0…D7





             да           Питание                                             Сбросить

                               вкл?                                                STRR0…6

                                     

                                    нет





                            Конец                     Рис. 1.5 – Схема алгоритма работы CPU2

	
Для сравнения этих двух структурных схем приведена таблица 1.2, в которой указаны параметры устройства, реализованного различными вариантами:

			на жесткой логике (см. бакалаврскую работу);

			на одном кристалле;

			на двух кристаллах.

	

	Сравнительная таблица вариантов реализации устройства

	Таблица 1.2

	Вариант

	реализации

	Кол - во

	корпусов

	Скорость выдачи данных

	Потребляемая мощность, Вт

	Стоимость деталей, грн.

	Жесткая логика

	27

	50нс

	2,52 

	13,30

	Один кристалл

	24

	>200нс

	2,33

	23,8

	Два кристалла

	21

	>200нс

	2,25

	36,5

	

	1.6 Обоснование выбора структурной схемы

	

	Для реализации устройства выберем структурную схему на одном кристалле, так как отсутствует взаимосвязь ОМК, что упрощает написание программы; скорость выдачи данных, как у первого варианта, так и у второго >200нс; стоимость деталей меньше.

	

	1.7 Обоснование выбора типа ОМК

	

	Для реализации данного устройства больше всего подходит микроконтроллер типа PIC16C64, так как имеет не высокую стоимость и большое число портов ввода/вывода (33). На этом микроконтроллере и будет разрабатываться устройство.

	

	2 СТРУКТУРНАЯ СХЕМА УСТРОЙСТВА И ЕЕ ОПИСАНИЕ

	

	2.1 Структурная схема.

	

	После обоснования выбора структурной схемы устройства останавливаемся на схеме с одним кристаллом. Структурная схема приведена на рисунке 2.1.

	

	Рис. 2.1 – Выбранная структурная схема устройства

	

	2.1.1 Назначение отдельных функциональных блоков.

	

	2.1.1.1 Селектор адреса

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

	Самое простое решение при построении селектора адреса использование только микросхем логических элементов. Основным достоинством такого подхода является высокое быстродействие (задержка не превышает 30нс). При использовании микросхем с малыми входными токами можно обойтись без буферов. 

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

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

	

	Рис. 2.2 – Селектор адреса с изменяемым адресом

	Другой путь – применение элементов "Исключающее ИЛИ", работающих как управляемые инверторы. На рисунке 2.2  показан селектор адреса, выбирающий в зависимости от кода на шине AS, задаваемого перемычками, адреса 3CFh, 2CFh, 1CFh и так далее (всего 8 различных адресов).

	2.1.1.2. Буфер данных

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

	Электрическая развязка подразумевает обеспечение нужных входных и выходных токов (уровни на ISA - ТТЛ).

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

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

	

	2.1.1.3 Блок CPU.

	Блок содержит однокристальный микроконтроллер, который выполняет функции выработки внутренних управляющих стробов. Применен ОМК типа PIC16C64.

	 

	3 РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ СХЕМЫ УСТРОЙСТВА

	

	3.1 Блок регистров

	

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

	Управляющие сигналы операционной части используются для записи выходных данных (-STRW0...STRW6). 

	Схема блока регистров и блока буферов приведена на рисунке 3.1.

	

	3.2 Блок приема данных (от ВУ)

	

	Для чтения состояний внешних линий используются однонаправленные буфера КР1533АП5, выходы которых объединяются для мультиплексирования читаемых данных.

	Управляющие сигналы операционной части используются для чтения входных данных (-STRR0...-STRR6).

	Схема блока приема данных изображена на рисунке 3.2

	


	Рис. 3.1 – Схема блока регистров

	

	3.3 Блок прерываний

	

	Блок обработки прерываний состоит из регистра прерываний - КР1533ИР37, буферного элемента - КР1533АП5, элемента 7ИЛИ-НЕ собранного на КР1533ЛЕ4 и КР1533ЛН1.

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

	

	Рис. 3.2 – Схема блока приема данных

	

	Так как выходы регистра соединены логическим элементом 7ИЛИ-НЕ, поэтому, если пришло хотя бы одно прерывание на выходе этого элемента появляется низкий уровень, который с помощью элементов НЕ и И-НЕ преобразуется в сигнал IRQ.

	Чтение пришедших прерываний происходит при низком уровне сигнала -STRR7. Сброс прерывания осуществляется установкой в управляющем слове старшего бита в "1".

	Схема блоки обработки прерываний приведена на рисунке 3.3.

	3.4 Блок сопроводительных стробов

	

	Для регистрации данных во внешних устройствах служит блок ФСС. Сигналы с блока БВУС  -STRW0...-STRW6 поступают на блок ФСС. С помощью элементов 2И-НЕ (КР1533ЛА3) эти сигналы инвертируются и задерживаются на 11нс. С элементов 2И-НЕ инвертированные и задержанные сигналы через буферный элемент КР1533АП5 выводятся на внешние устройства. Таким образом положительный фронт полученных сигналов (WR0...WR6) служит для регистрации данных во внешнем устройстве, так как данные будут опережать сигналы WR0...WR6 на величину задержки элементов 2И-НЕ.

	

	

	Рис. 3.3 – Блок обработки прерываний

	

	Схема блока формирования сопровождающих стробов приведена на рисунке 3.4.

	


	

	Рис. 3.4 – Схема блока сопровождающих стробов

	

	4 РАСЧЕТ ОСНОВНЫХ ПАРАМЕТРОВ И ХАРАКТЕРИСТИК

	

	4.1 Расчет потребляемых токов

	

	Расчет потребляемых токов сводится к тому, что необходимо определить суммарное потребление тока всеми микросхемами, то есть:

	                                               (4.1)

	где Iобщ - общий ток, потребляемый устройством,

	Ik - ток, потребляемый k-той микросхемой,

	m - общее число микросхем,

	n - число микросхем данного типа.

	Токи, потребляемые каждой микросхемой, показаны в таблице 5.1.

	

	Потребление токов микросхемами

	Таблица 5.1

	№ 

	п/п

	Тип микросхемы

	Количество

	Ток одной микросхемы, mA

	Общий ток,mA

	1

	КР1533АП5

	9

	27

	243

	2

	КР1533ИР37

	8

	24

	192

	3

	КР1533ЛА2

	1

	5

	5

	4

	КР1533ЛА3

	2

	3

	6

	5

	КР1533ЛЕ4

	1

	4

	4

	6

	КР1533ЛН1

	2

	3.8

	7.6

	7

	КР1533ЛП5

	1

	7

	7

	8

	PIC16C64

	1

	2

	2

	ВСЕГО

	466,6

	

	Получаем общий ток потребления:

	

	Полученные данные удовлетворяют требованиям системной магистрали ISA (п.1.2).

	4.2 Расчет потребляемой мощности

	

	Расчет потребляемой мощности сводится к тому, что необходимо определить мощность потребляемую устройством, то есть:

	                                       (4.2)

	где Робщ - общая потребляемая мощность,

	Uпит - напряжение питания,

	Iобщ - общий ток потребления.

	

	

	4.3 Расчет надежности

	

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

	                                                   (4.3)

	где m - число изделий, отказавших за время t,

	N - число исправно работающих изделий к началу промежутка времени.

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

	                                                (4.4)

	где i - интенсивность отказов элементов i-го типа,

	ni - количество элементов i-го типа входящего в устройство.

	Наработка на отказ равна:

	                                                     (4.5)

	Интенсивность отказов элементов следующая:

	микросхемы – 0.8510-6 (ч-1),

	резисторы – 0.910-6 (ч-1),

	конденсаторы – 1.410-6 (ч-1).

	Тогда,

	 (ч-1)

	 

	

	5 РАЗРАБОТКА И ОТЛАДКА РАБОЧЕЙ ПРОГРАММЫ МКУ

	

	5.1 Блок – схема алгоритма и его описание

                                                                                         Начало





		   Опрос

		  RESET



                                                                              да



                                                                                                 нет 

                                  Выдать  SS= 

                             "1111111"                                        Опрос Ок!



                                                                            нет



       да 



		  Опрос

		IOW, IOR



                           IOR



         IOW



                                                                                         Чтение                                                    Чтение 

                                                                                       SA0…SA2                                             SA0…SA2



                                                                              да 

                                                                                          ="111"                                               Преобразов.

                                                                                                  нет                                                 2поз.



                                        Чтение                                  Преобразов.  

                                       D0…D2                                     2поз.                                                  Выдать

                                                                                                                                                      STRR0…6



                                    Преобразов.                                Выдать

                                        2поз.                                 STRW0…6                                              Сбросить

                                                                                                                                                      STRR0…6



                                        Выдать                                   Сбросить

                                      SS0…SS6                               STRW0…6















                                                                          да            Питание

                                                                                             вкл?

                                                                                                   нет



                                                                                          Конец                  



Рис. 5.1 – Схема алгоритма работы микроконтроллера

	
5.2 Структура программы

	

	Микроконтроллер выполняет следующие функции:

			прием управляющих сигналов с системной магистрали ISA;

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

			формирование управляющих стробов.

	Программа содержит следующие участки программы:

	RESET – производит перевод всех портов устройства в исходное состояние на ввод данных;

	OKEY – осуществляет передачу управления подпрограммам IOW или IOR, в зависимости от состояний опрашиваемых битов;

	IOW – формирование и выдача сигналов STRW0…6 и SS0…6;

	IOR – формирование и выдача сигналов STRR0…6 и STRR7;

	PR2INPOS – преобразование двоичного кода в позиционный.

	

	5.3 Распределение памяти данных

	

					Прием управляющих сигналов с ISA	PORTА – 05H     

						РORTЕ – 09H

					Выдача стробов STRW0…6	PORTC – 07H

					Выдача стробов SS0…6	PORTD – 08H

					Выдача стробов STRR0…7	PORTB – 06H

					Программирование                                           	TRISA – 85H 

				                                                                                  	TRISB – 86H

				                                                                                  	TRISC – 87H 

				                                                                                    	TRISD – 88H

				                                                                                     	TRISE – 89H

					Запрет прерываний портов                                 	INTCON-0BH

					Регистр для хранения SA0…2	ADR – 26H

					Регистр для хранения D0…2	DATA – 27H

					Вспомогательный регистр 	RADR – 28H

			

			5.4 Текст программы

			

			LIST P=PIC16C64

			;Секция заголовка

			;Описание специальных регистров

						PORTA	EQU	05H	;Регистр порта A

						PORTB	EQU	06H	;Регистр порта B

						PORTC	EQU	07H	;Регистр порта C

						PORTD	EQU	08H	;Регистр порта D

						PORTE	EQU	09H	;Регистр порта E

						

						TRISA	EQU	85H	;Регистр конфигурации порта A

						TRISB	EQU	86H	;Регистр конфигурации порта B

						TRISC	EQU	87H	;Регистр конфигурации порта C

						TRISD	EQU	88H	;Регистр конфигурации порта D

						TRISE	EQU	89H	;Регистр конфигурации порта E

						

						INTCON	EQU	0BH	;Регистр управлениями

									;прерываниями

						PCL	EQU	02H	;Регистр программного счетчика

						

						;Описание регистров памяти переменных

						ADR	EQU	26H	;Регистр для хранение сигналов 

									;SA0…2

						RADR	EQU	27H	;Вспомогательный регистр

						DATA	EQU	28H	;Регистр для хранения D0…2  

						

						;Рабочая секция

						;Начало исполняемого кода

							ORG	0

							GOTO	BEGIN

							ORG	100

						BEGIN	MOVLW	B'00000000'	;Конфигурация портов

							MOVWF	TRISB

							MOVWF	TRISC

							MOVWF	TRISD

							MOVLW	FFH

							MOVWF	TRISA

							MOVWF	TRISE

							MOVLW	B'01110000'

							MOVWF	DATA

						START	BTFSC	PORTA, 1	;Проверка 1-го бита порта А

							GOTO 	RESET	;Переход на метку RESET

							BTFSS	PORTA, 0	; Проверка 0-го бита порта А

							GOTO	OKEY	;Переход на метку OKEY

							GOTO	START	;Переход на метку START

						

						RESET	MOVLW	B'11111111'	;Запись в регистр W константы

							MOVWF	PORTD	;Установка портов устройства в

									;исходное состояние

							GOTO	BEGIN	;Переход на метку BEGIN

						

						OKEY	BTFSS	PORTA, 2	;Проверка 2-го бита порта А

							GOTO	IOW	;Переход на метку IOW

							BTFSS	PORTA, 3	;Проверка 3-го бита порта А

							GOTO	IOR	;Переход на метку IOR

							GOTO	START	;Переход на метку START

						IOW	MOVF	PORTE	;Запись в регистр W данных 

									;из порта Е

							MOVWF	ADR	;Запись в регистр ADR данных 

									;из W

							MOVF	PORTA	;Запись в регистр W данных 

									;из порта A

							ANDWF	DATA, 1	;Выделение сигналов D0…2

									;и сохранение в регистре DATA

							RLF	DATA, 1	;Сдвиг регистра влево

							RLF	DATA, 1	;Сдвиг регистра влево

							RLF	DATA, 1	;Сдвиг регистра влево

							RLF	DATA, 1	;Сдвиг регистра влево

							MOVF	ADR	;Запись в регистр W данных 

									;из регистра ADR

							MOVWF	RADR	;Запись в регистр RADR данных 			;из W

							INCF	RADR, 1	;Инкремент регистра RADR

									;с сохранением данных в RADR

							BTFSS	RADR, 3	;Проверка 3-го бита регистра RADR

							GOTO	STRW	;Переход на метку STRW

							MOVF	DATA	;Запись в регистр W данных 

									;из регистра DATA

							CALL	PR2INPOS	;Вызов процедуры

							MOVWF	PORTD	;Запись в регистр PORTD данных

									;из регистра W

							GOTO	START	;Переход на метку START

						

						IOR	MOVF	PORTE	;Запись данных из регистра Е

									; в W

							CALL	PR2INPOS	;Вызов процедуры

							MOVWF	PORTB	;Запись в регистр PORTB данных

									;из регистра W

							MOVLW	FFH	;Запись константы в W

							MOVWF	PORTB	;Запись в регистр PORTB данных

									;из регистра W

							GOTO	START	;Переход на метку START

						

						STRW	MOVF	ADR	;Запись данных из регистра ADR

									; в W

							CALL	PR2INPOS	;Вызов процедуры

							MOVWF	PORTC	;Запись в регистр PORTC данных

									;из регистра W

							MOVLW	FFH	;Запись константы в W

							MOVWF	PORTB	;Запись в регистр PORTC данных

									;из регистра W

							GOTO	START	;Переход на метку START

						

						PR2INPOS	ADDWF, 1	PCL	;Сложение W и PCL

							RETLW	FEH	;Возврат и загрузка W

							RETLW	FDH	;Возврат и загрузка W

							RETLW	FBH	;Возврат и загрузка W

							RETLW	F7H	;Возврат и загрузка W

							RETLW	EFH	;Возврат и загрузка W

							RETLW	DFH	;Возврат и загрузка W

							RETLW	BFH	;Возврат и загрузка W

							RETLW	7FH	;Возврат и загрузка W

						END			;Конец программы

						

						

	ЗАКЛЮЧЕНИЕ

	

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

		Устройство реализовано на однокристальном микроконтроллере типа PIC16C64.

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

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

		
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

		

		Ю.В.Новиков, О.А.Калашников "Разработка устройств сопряжения". Издательство "ЭКОМ", Москва, 1998г.

		В.В.Скороделов "Проектирование устройств на однокристальных микроконтроллерах с RISC-архитектурой". Ч1,Ч2, Учебное пособие.

						





1