- •Список сокращений:
- •1. Описание принципов функционирования лвс на технологииfddi
- •Исходные данные для расчётов:
- •2. Описание микропроцессорного комплектаpic16c64
- •2.1 Общее описаниеpic16c6x
- •2.2 Свойстваpic16c64
- •2.3 Свойства периферииpic16c6x
- •2.4 Система команд pic 16cxx
- •2.5 Описание команд
- •2.6 Описание выводовpic16c64
- •4. Описание принципиальной электрической схемы станции
- •5. Определение требуемого объема буферной памяти
- •6. Описание графической схемы заданного режима работы станции – прием
- •7. Описание программы заданного режима работы станции – прием
- •Текст программы
- •8. Оценка эффективности
- •Список литературы
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 |
;обрыв соединения |
