Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Савенко.doc
Скачиваний:
24
Добавлен:
02.04.2015
Размер:
765.44 Кб
Скачать

6. Описание графической схемы заданного режима работы станции – прием

Режим работы станции в режиме передачи начинается с установки счетчика номера попытки передачи серии кадров в 1. Затем происходит обнуление счетчиков приема и передачи. Далее счетчик переданных кадров увеличивается на 1, т.к. считается, что первый кадр передан. Затем осуществляетя прием кадра с номером равным номеру передаваемого кадра и на 1 большим номера принятого кадра. После чего инициализирующая станция запускает таймер Т1, а счетчик переданных кадров снова увеличивает на1.

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

Прием серии кадров продолжается до тех пор, пока таймер не примет конечного значения. После того, как Т1=Т1max номер попытки передачи увеличивается на 1 и сравнивается с максимальным числом возможных попыток передачи. Если число попыток превышает максимальное, то происходит переход к начальным условиям, иначе повторяется прием всей серии кадров.

Графическая схема режима работы станции – прием приведена на рисунке 6.1.

7. Описание программы заданного режима работы станции – прием

В данном разделе приведен текст программы для реализации режима - прием.

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

Title «ПРИЕМ»

List p=16C64

ErrorLevel 0

;вывод всех ошибок при компиляции

N2 equ H` A`

;число попыток разъединения

N equ H` FF`

;начальное значение счётчика

Tmax equ H` FF`

;max значение таймера

vs equ H`00`

;количество посланных кадров

vr equ H`00``

;количество принятых кадров

k equ H`10``

;количество кадров, принимаемых без запроса

kadr equ H'00'

;кадр данных

Org 0

;вектор сброса

Clrf IntCon

;очистка регистра IntCon

Clrf PCLath

;очистка регистра хранение старших бит для PCLath

Clrf Status

;очистка регистра состояния

Call InitPort

;инициализация портов

GoTo Begin

Init Port:

Bsf Status, RP0

;выбор банка 1

Clrf PortC

;инициализация порта С

MovLW 0xFF

;значение , используемое для инициализации напр.обм. д

MovWF TrisC

;установка RC<7:0> как входов

Clrf PortD

;инициализация порта С

MovLW 0x00

;значение , используемое для инициализации

MovWF TrisD

;установка RD<7:0> как выходов

Bsf Status,RP0

;выбор банка 0

Return

;возврат из подпрограммы

;установка регистров в начальное значение

Preset:

Movf vr, 0

;количество посланных кадров

Movf vs, 0

;количество принятых кадров

Return

;возврат из подпрограммы

Perehod:

Clrf TMR0

;сброс таймера

MovLW B`00000101`

;выбор TMP0, новой величины предделителя , источника синхронизации

MovWF Option

GoTo Begin

Perehod2:

Movf vr,0

;запись vr в w

Movwf vs

;запись vr в vs

MovLW B`00000101`

;выбор TMP0, новой величины предделителя , источника синхронизации

MovWF Option

GoTo Point3

Begin:

Bsf Status,RP0

;выбор банка 1

Movf N,1

;N=1

Point1:

Call Preset

;установка начальных значений регистров

Point2:

Incf vs,1

;vs=vs+1

Point3:

Movf kadr,0

Movwf PortD

;Запись кадра в порт D

Incf vr,1

;vr=vr+1

Clrf TMR0

;сброс таймера

MovLW B`00000101`

;выбор TMP0, новой величины предделителя , источника синхронизации

MovWF Option

Bsf Status,RP0

;выбор банка 0

Call P_RNR

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

Sublw H, 0

;вычитание из 0

Btfss STATUS, 2

;сравнение результата

Call End_connect

;остановка передачи

Call P_RR

;процедура передачи сигнала приемник готов

Movf vr,0

;если vr<k

SubLW k

;переход к метке4

Btfsc Status,2

Goto Point4

Call P_RR

;процедура передачи сигнала приемник готов

Movf vr,0

;если vr=k

SubLW k

;переход к пп

Btfsc Status,2

Call Perehod

Call P_REJ

;процедура передачи сигнала отказ от кадров

SubLW H` `,0

;сравнение значения

Btfss Status ,2

;проверка результата

Call Perehod2

;переход к пп2

Point4:

Movf TMR0,0

; проверяем таймер

SubLW Tmax,0

;сравниваем с max

Btfss Status,2

;проверка результата

GoTo Point2

;если время не истекло то опять получаем кадр

Incf N ,1

;иначе N:=N+1

Movf N ,0

;N в аккумулятор

SubLW N2 ,0

;W:=W-N2

Btfss Status, 2

;сравниваем N и N2

GoTo Point1

;если N<N2 идём на метку1

Call Preset

; установка начальных значений регистров

end:Call End_connect

;обрыв соединения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]