Для синхронизации работы приемника и передатчика микроконтроллер передает три байта со значением FFh. Такое значение посылки уникально и поэтому может использоваться как управляющая команда.
ОПИСАНИЕ РАБОТЫ СХЕМЫ ПРИЕМНИКА
Схема приемника изображена в приложение 4.
После включения питания контроллер переходит в ожидание приема из КС команды начала цикла передачи (FFFFFF). После его получения принимается три байта информации, в которых находится адрес источника, посылает их в декодер кодов Хемминга и включает декодирование. После чего проверяет наличие многократной ошибки, считывая сигнал с декодера Хемминга MFE. При ее наличии микроконтроллер засвечивет светодиодный индикатор VD1, игнорирует все принятые данные и ждет следующей команды (FFFFFF) начала передачи. Так реализована защита от ошибок в адресе источника.
Если же в этих байтах не было обнаружено многократной ошибки, из декодированных данных выделяется адрес источника и соответственно приемника( последние 4 разряда) и посылается на дешифратор DD232. При этом устанавливается номер пары регистров приемника N=1. Работа схемы УР приемника аналогична работе этой схемы в передатчике. Только в передатчике разрешался выход буферных регистров, а в приемнике разрешается запись в них спомощью схемы коньюнкции К1530ЛИ7 .
После приема первой посылки, принимается вторая посылка из 3-х байт и декодируется. Номер пары регистров приемника Nинкрементируется перед проверкой на многократную ошибку. При ее отсутствии декодированные данные записываются в пару шинных формирователей с номером N выбранного приемника. В противном случае принятые данные игнорируются, засвечивается светодиодный индикатор ошибки и ожидается следующее сообщение. Цикл приема посылок заканчивается при N=7. При приемник переходит в ожидание команды начала приема от передатчика. По принятии которой тушится светодиодный индикатор ошибки и цикл повторяется.
Таким образом при наличии ошибки во втором и последующих посылках пропускается только эта посылка, все остальные посылки продолжают приниматься. Так реализована защита от ошибки в данных.
7. Описание программного обеспечения.
Программное обеспечение МП – систем является совокупностью всех средств необходимых для разработки и решения на данной системе определенных задач, а так же для обеспечения эффективного функционирования системы.
Программы представлены в приложении (1-5).
Заключение.
Данный курсовой проект посвящён разработке системы сбора, обработки, передачи и распределения информации.
В ходе выполнения курсового проекта были:
1. Изучены теоретические сведения по представленной теме.
2. Был произведён расчет основных параметров схемы, согласно техническому заданию.
3. Был осуществлён выбор кода для кодирования информации, поступающей от источников сообщения в виде знако–буквенного кода.
4. Согласно выбранному коду, была разработана функциональная схема передающего и приёмного устройства.
5. Была разработана принципиальная схема.
Литература.
1. Тутевич В. Н. Телемеханика – М., 1985, 422с.
2. Ильин В. А. Телеуправление и телеизмерение - М., 1982, 560с.
3. Аналоговые и цифровые интегральные микросхемы. Справочник под редакцией С. В. Якубовского - М., 1985.
4. Цифровая электроника для начинающих. Г. Хокинс - М., 1986с.
5. Методические указания.
Приложение 1
Программа передатчика
Основная программа
MOVIE,#81 ;Запрет прерываний кроме INT0
MOVSCON, #DC;Инициализация переменных и портов
MOVTMOD, #20
Sleep: HALT ;Режим ожидания прерывания
JMPSleep
Подпрограмма обработки прерывания INT0
;Подготовка сдвиговых регистров к работе
MOVP1,#1E ;Сброс сдвиговых регистров выбором Q14 на DD
NOP
NOP
MOVR0,#0E ;Инициализация сдвиговых регистров(0Еh-кол-во источников+1)
MOV B,#30
NEXT_N:MOV P1,B
NOP
INC B
MOV A,R0
XOR A,B
AND A,#0F
JNC NEXT_N
;Начало цикла опроса источников
MOVR0,#0E
MOV B,#10
CHECK: MOV P1,B
MOVA,P2 ;Считывание байта с адресом
AND A,#0F
JZ NEXT
CALL koder&send
NEXT : INC B
MOV A,R0
XOR A,B
AND A,#0F
JNZ CHECK
RETI
Подпрограмма кодирования и передачи данных в КС
koder&send:
;-------Передача в КС 3-х байт FFFFFF
MOVR5,#07 ;Инициализация циклов по парам шинных формирователей
CLK_R: MOVR2,P0 ; считывание младшего байта данных
MOVR3,P2 ; считывание старшего байта данных
CLRBP1.4 ; Запуск кодера на формирование контрольных разрядов
NOP
NOP
NOP
MOVR4,P3 ;Считывание контрольных разрядов
MOVA,R4 ;Выделение из контрольных разрядов разрядов INT и TX
CLRB A.2
SHR A
JNC M1
SETB A.1
M1: SHR A
MOV R4,A
;-------Передача в КС R2,R3,R4
SETBP1.4 ;Устанавливается режим кодера прием информационных бит
MOVA,B
ORA,#0F ;подача низкого уровня на входы сдвиговых регистров
MOVP1,A ;выбором Q15 на дешифраторе
NOP
NOP
MOVP1,B ;Подача переднего фронта на вход N-го сдвигового регистра
DEC R5
JNC CLK_R
RET
Приложение 2
Программа приемника
Основная программа
MOVIE,#00 ;Запрет прерываний
MOVSCON, #DC;Инициализация переменных и портов
MOVTMOD, #20
CLRBP3.7 ; Общее запрещение выдачи на приемники
START: CALLFirst_kadr ; Подпрограмма приема и обработки первого байта данных с адресом источника
CALLDecoder&send
JUMPSTART
;Подпрограмма декодирования и выдачи информации на приемник
Decoder&send:
MOVR5,#06 ;Инициализация циклов по парам шинных формирователей
CLK_R:
CALLInit_R
;Прием из КС следующих данных ( R2-данные(L), R3-данные(H), R4-контрольные )
;Пересылка принятых данных в кодер
SETBP1.6 ;настройка кодера на прием информации
CLRB P1.7
MOV A,R4
SHL A
MOVP3,A ;пересылка в кодер контрольных разрядов
MOVP0,R2 ;пересылка в кодер младшего байта данных
MOVP2,R3 ;пересылка в кодер старшего байта данных
SETBP1.6 ;Блокировка информации в кодере
SETBP1.7
NOP
NOP
CLRBP1,#6 ;Выдача исправленного кода и синдрома ошибки
SETBP1,#7
MOVP1,A ;Проверка на многократную ошибку (MFE=1)
ANDA,#10
JZNotError2
SETBP1.7 ;Индикация многократной ошибки
DECR5 ;Цикл по парам сдвиговых регистров
JNZ M1
RET
M1: JMP Get_adders
NotError2:
CLRBP1.7 ; Выключение индикации многократной ошибки
MOVA,R6
;Выдача данных на приемник
MOVP1,R7 ; Посылка переднего фронта на сдвиговый регистр 1-го источника
NOP
NOP
MOVP1,#8E; Посылка заднего фронта на сдвиговый регистр 1-го источника
SETBP3.7 ; Общее разрешение выдачи на приемники
NOP
NOP
CLRBP3.7 ; Общее запрещение выдачи на приемники
DECR5 ;Цикл по парам сдвиговых регистров
JNZM1
RET
Подпрограмма приема и обработки первого байта данных с адресом источника
First_kadr:
;-------Ожидание приема из КС команды начала передачи данных (FFFFFF)
CALLInit_R;Подготовка сдвиговых регистров к работе
Get_adders:
;-------Прием из КС данных ( R2-данные(L), R3-данные(H), R4-контрольные )
;Пересылка принятых данных в кодер
MOVP1,#40 ;настройка кодера на прием информации
MOVA,R4
SHLA
MOVP3,A ;пересылка в кодер контрольных разрядов
MOVP0,R2 ;пересылка в кодер младшего байта данных
MOVP2,R3 ;пересылка в кодер старшего байта данных
SETBP1,#6 ;Блокировка информации в кодере
SETBP1,#7
NOP
NOP
CLRBP1,#6 ;Выдача исправленного кода и синдрома ошибки
SETBP1,#7
MOVP1,A ;Проверка на многократную ошибку (MFE=1)
AND A,#10
JZ NotError
SETB P1.7 ;Индикациямногократнойошибки
JMP Get_adders
NotError:
CLRBP1.7 ;Выключение индикации многократной ошибки
;Выделение из общих данных адреса источника
MOV A,R3
AND A,#F0
SWAPA
SETBA.7 ;
MOVR7,A ;запоминание адреса в R7
;Выдача данных на приемник
MOVP1,A ; Посылка переднего фронта на сдвиговый регистр 1-го источника
NOP
NOP
MOVP1,#8E; Посылка заднего фронта на сдвиговый регистр 1-го источника
SETBP3.7 ; Общее разрешение выдачи на приемники
NOP
NOP
CLRBP3.7 ; Общее запрещение выдачи на приемники
RET
Подпрограмма подготовка сдвиговых регистров к работе
Init_R:
MOVP1,#4E ;Сброс сдвиговых регистров выбором Q14 на DD
NOP
NOP
MOVR0,#0E ;Инициализация сдвиговых регистров(0Еh-кол-во источников+1)
MOV B,#60
NEXT_Ist:MOV P1,B
NOP
INC B
MOV A,R0
XOR A,B
AND A,#0F
JNC NEXT_Ist
RET
Схема передающей стороны
Схема принимающей стороны