3 Разработка алгоритмов и программ по реализации обмена данными
3.1 Средства языка Бейсик для реализации обмена данными
Для выполнения задания дипломной работы выбран язык высокого уровня Бейсик, так как он больше всего подходит для начинающих и непрофессиональных программистов, (какими являются студенты), но прежде всего, за счет простой технологии работы в среде интерпретатора и наличия большого числа операторов высокого уровня (графика, обработка строковых переменных, работа с аппаратурой и пр.). А также потому, что студенты уже были ознакомлены с основами языка Бейсик при изучении дисциплин "Информатика" и "Программные средства ПЭВМ".
Некоторые операторы, используемые для выполнения задания дипломной работы:
1) INP (порт) - функция ввода-вывода, читающая байт из порта ввода-вывода
2) OUT порт, данные - оператор ввода-вывода, посылающий байт в порт ввода-вывода
3) PRINT [список_выражения] [{,/;}]
4) DO ... LOOP - управляющий оператор, который повторяет блок операторов, пока условие истинно, или до тех пор, когда оно станет ложным
5) IF ... THEN ... ELSE - условный оператор (обычно используется, когда проверяется одно или два условия в программе)
6) SLEEP [секунды]- управляющий оператор, приостанавливающий выполнение программы
3.2 Алгоритм обмена данными средствами программной оболочки Norton Commander
Для организации передачи файлов с помощью Norton Commander необходимо соединить асинхронные последовательные порты (COM1 или COM2) двух компьютеров парой проводов или специальным кабелем. После этого следует:
1) запустить на обоих компьютерах программную оболочку Norton Commander;
2) выдать команду Link (Связь) из меню Left или Right.
3) в открывшемся диалоговом боксе следует:
- указать имя последовательного порта данного ПК, через который будет производиться передача данных;
-
задать режим Master, если этот ПК
будет главным;
задать режим Slave, если этот ПК будет подчиненным;
- задать режим Turbo для высокой скорости обмена данными между компьютерами
- нажать командную кнопку Link (или комбинацию клавиш Ctrl-Enter).
Соединение компьютеров будет установлено после того, как на обоих компьютерах будет инициирован процесс установки связи.
Для завершения сеанса межкомпьютерной связи можно выбрать один из двух способов:
1) выдать на главном компьютере команду Link из того же меню, которое использовалось при подготовке в сеансу связи, после чего в открывшемся боксе подтвердите завершение сеанса;
2) нажать на клавиатуре подчиненного компьютера комбинацию клавиш Ctrl-Break.
3.3 Разработка структурной схемы алгоритма
и программы по реализации обмена
данными по последовательному интерфейсу персонального компьютера
с этим же интерфейсом
В целях получения первоначальных навыков в организации обмена по последовательному интерфейсу целесообразно использовать один персональный компьютер. Обмен будет осуществляться одним последовательным адаптером путем передачи байта из выходного регистра на выход TD и приема этого байта на вход RD во входном регистре этого же адаптера.
Для реализации такого обмена необходимо физически соединить выход TD со вдохом RD. Такое соединение можно реализовать в виде разъема, в котором выполнены электрически соединения, как показано на рис.4.
TD
RD
RTS
CTS
DSR
DCD
DTR
RI
SG
FG
Рис.4
Этот разъем вставляется в выбранный СОМ-порт, обеспечивая таким образом заданное соединение.
В качестве исследования порта целесообразно выбрать адаптер COM2, так как СОМ1, как правило, занят манипулятором "мышь". Его порты имеют адреса 2F8-2FF. Из-за простоты задания достаточно использовать для обмена данными только 3 порта: 2F8, 2F9, 2FB.
Обмен данными выполняется за 3 этапа:
1) инициализация порта СОМ2:
a)
установка требуемого режима для
обмена данными: задание дины передаваемого слова, количество стоповых бит,
контроля четности;
например, установим следующий режим:
- длина слова в битах - 8 (код 11 в 0 и 1 битах порта 2FB);
- количество стоповых бит - 1 (код 1 в 2 бите порта 2FB);
- контроль на четность использовать не будем (код 00 в 3 и 4 битах порта 2FB);
- установим код 1 в 7 бите регистра 2FB, так как на следующем этапе будем загружать новый делитель частоты тактового генератора;
b) в результате получается, что для установки нового режима последовательного адаптера в порт 2FB необходимо записать число 131 (код 10000011);
c)
задание скорости передачи данных
путем занесения через порты 2F8, 2F9 младшего и старшего байтов делителя частоты
тактового генератора;
например, зададим скорость передачи - 115200 бод (делитель равен 1), для этого
в порт 2F8 занесем 0, в порт 2F9 - 1;
d) перед тем как начать обмен данными, следует открыть доступ к портам для приема и передачи, для этого необходимо установить 0 в 7 бите порта 2FB (но в тоже время остальные биты этого порта не должны быть измены);
e) так как прерывания не используются при обмене данными, то их целесообразно запретить, записав 0 в порт 2F9.
2) передача данных:
a) предварительно необходимо ввести с клавиатуры число (0-255), которое будет передаваться;
b) для передачи необходимо записать это число в порт 2F8;
3) прием данных:
a) для приема необходимо прочитать содержимое порта 2F8;
b) для того чтобы убедиться, что обмен произошел успешно, необходимо вывести содержимое порта 2F8 на экран.
На рис.5 приведена структурная схема алгоритма, реализующая данную задачу.
Рис.5
Символ 1. Запись в порт 2FB числа 131. Это новый режим последовательного адаптера и подготовка к следующему шагу, где будет записан новый делитель частоты тактового генератора.
Символ 2. Запись в порт 2F9 числа 0. Это старший байт делителя частоты тактового генератора.
Символ 3. Запись в порт 2F8 числа 1. Это младший байт делителя частоты тактового генератора.
Символ 4. Запись в порт 2FB числа 3. Это для того что можно было осуществлять обмен данных.
Символ 5. Запись в порт 2F9 числа 0. Это означает, что прерывания от последовательного адаптера COM2 не используются.
Символ 6. Была нажата клавиша <ESC>? Если ДА, переход к концу структурной схеме алгоритма. Если НЕТ, переход к символу 7.
Символ 7. Ввод с клавиатуры числа (в диапазоне от 0 до 255) для его передачи.
Символ 8. Запись в порт 2F8 числа, введенного с клавиатуры.
Символ 9. Чтение байта из порта 2F8 и вывод на экран переданного числа.
На рис.6 приведен листинг программы, которая реализует на языке Бейсик структурную схему алгоритма, приведенную на рис.5.
CLS
PRINT "ИНИЦИАЛИЗАЦИЯ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА (СОМ2)"
PRINT "1) Установка нового режима последовательного адаптера"
OUT &H2FB, 131
PRINT "2) Установка скорости передачи данных"
PRINT " Старший байт делителя частоты тактового генератора"
OUT &H2F9, 0
PRINT " Младший байт делителя частоты тактового генератора"
OUT &H2F8, 1
OUT &H2FB, 3
OUT &H2F9, 0
PRINT "Для выхода нажмите <ESC>"
DO
PRINT "ПЕРЕДАЧА ДАННЫХ"
IF INKEY$=CHR(27) THEN EXIT DO
INPUT "Введите число (от 0 до 255):", A
OUT &H2F8, A
PRINT "ПРИЕМ ДАННЫХ"
PRINT "Переданное число:", INP(&H2F8)
LOOP
END
Рис.6
3.4 Разработка структурной схемы алгоритма
и программы по реализации обмена
данными персонального компьютера с последовательного порта СОМ1 на СОМ2
Порты последовательного адаптера СОМ2 имеют адреса 2F8-2FF, порты для СОМ1 – 3F8-3FF.
Для реализации такого обмена необходимо произвести:
1) инициализация порта СОМ1:
a) установка требуемого режима для обмена данными: задание дины передаваемого слова, количество стоповых бит, контроля четности;
b) задание скорости передачи данных;
c) перед тем как начать обмен данными, следует открыть доступ к портам для приема и передачи;
d) так как прерывания не используются при обмене данными, то их целесообразно запретить;
2) инициализация порта СОМ2:
a) установка требуемого режима для обмена данными: задание дины передаваемого слова, количество стоповых бит, контроля четности;
b) задание скорости передачи данных;
c) перед тем как начать обмен данными, следует открыть доступ к портам для приема и передачи;
d) так как прерывания не используются при обмене данными, то их целесообразно запретить;
протоколы у СОМ1 и СОМ2 должны быть одинаковы;
3) передача данных:
a) предварительно необходимо ввести с клавиатуры число (0-255), которое будет передаваться;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.