Приём сообщений GGA от модуля ГЛОНАСС/GPS


Главная / ЭКВМ / Программы для ЭКВМ / Работа с оборудованием

Описание

Сообщение GGA от модуля GPS

Программа предназначена для приёма и выдачи на экран ЭКВМ данных о текущем времени, координатах местонахождения приёмника, высоте на условным уровнем и служебной информации. Программа принимает сообщение GGA (Clobal Positioing System Fixed Data) протокола NMEA, которое передаётся первым в пакете.

Программа предназначена для иллюстрации способов обработки и вывода данных, принятых от оборудования, поэтому имеет небольшой размер (95 байт) и упрощённый интерфейс.

В верхней строке размещён заголовок сообщения GGA и время UTC. В двух следующих - широта и долгота. Четвёртая строка содержит признак фиксации позиции и количество использованных спутников. Пятая - информацию о точности горизонтального позиционирования и высоте над поверхностью геоида (WGS84). Далее - служебная информация и контрольная сумма.




Файл програмы:

gps1.mkp (КС 11062/180)


Программа gps1

  0 1 2 3 4 5 6 7 8 9
00 Cx PP П 90 72 7 PP П 90 71 8 PP П
10 90 73 1 PP П 90 70 2 PP П 90 10
20 0 PP П 90 85 1 PP П 90 76 PP ИП 90
30 76 F x=0 28 PP ИП 90 75 F x≠0 20 0 PP П
40 90 85 PP ИП 90 86 3 6 - F x=0 20
50 8 П 0 1 PP П 90 07 5 6 B↑ 0
60 PP П 90 00 PP ИП 90 87 PP П 90 20 1
70 3 - F x≠0 92 3 1 - F x=0 63 PP ИП
80 90 87 PP П 90 20 4 4 - F x=0 79
90 F L0 52 K ГРФ БП 20          

Исходный текст для кросс-компилятора

.CHARSET 1251
; Приём сигналов от модуля ГЛОНАСС/GPS по протоколу NMEA
; Cкорость 4800, 8 бит, без контроля чётности

	CX
	PP M 9072	; Установить режим 8 бит
	7 PP M 9071	; Установить скорость 4800
	8 PP M 9073	; Задержка между байтами в ответе 8*1,25=10 мс.
	1 PP M 9070	; Разрешение порта, запись 1 - разрешение использования порта ЭКВМ
	2 PP M 9010	; Инициализация графического экрана
A0:
	0 PP M 9085	; буфер приёма, смещение 0
	1 PP M 9076	; Начать приём данных

A1:	PP RM 9076	; Проверить окончание приёма, считав содержимое регистра приёма
	F X=0 A1	; пока оно не равно 0 - продолжать считывание
			; Приём окончен, количество принятых байт в R9075, 
			; пакет для обработки в буфере приёма (R9086-R9089)

	PP RM 9075	; Проверка количества принятых байт
	F X!=0 A0	; Повтор при нулевом значении

	0 PP M 9085	; Индексный регистр буфера приёма, запись 0 - выбрать первый байт
	PP RM 9086	; Считать первый байт без автодекремента
	36 -		; Вычесть код символа '$'
	F X=0 A0	; Если не '$' - продолжить ожидание

	8 M0		; Количество выводимых строк - 8
A2:
	1 PP M 9007	; Прокрутка одной строки
	56 ENT 0 
	PP M 9000	; Позиция вывода X0=0, Y0=56

A3:	PP RM 9087	; Считать очередной байт из пакета	
	PP M 9020	; Вывод символа
	13 -		; 13 =  - конец пакета
	F X!=0 A5
	31 -		; 13+31=44 ','
	F X=0 A3

A4:	PP RM 9087	; Считать очередной байт из пакета	
	PP M 9020	; Вывод символа
	44 -		; ','
	F X=0 A4

	FL0 A2
A5:
	K GRPH		; Обновить экран
	GOTO A0

.ENDP

НПП "СЕМИКО" (383) 271-01-25 (многоканальный)