PDA

Просмотр полной версии : PACKET - мелкие вопросы



UA3MQJ
22.10.2008, 12:10
Изучаю пакетную связь - появилась пара мелких вопросов:

1. Какой используется NRZI в пакете? Беглый поиск по интернету показал, что NRZI кодирование в разных источниках описывается по-разному.

В одном случае пишут, что при передаче единицы полярность не меняется, а при передаче нуля - полярность меняется на противоположную.

В то же время в USB NRZI - ноль - смена полярности, единица - полярность не меняется.

как правильно?

2. Как решается вопрос синхронизации в том случае, когда долго не меняется полярность сигнала (в USB меняют полярность каждые 6 бит).

3. Не совсем понятно как передается байт 01111110 (байт флага), если он не в начале или конце сообщения, а просто содержится в данных. Или данные содержат одни единицы!?


2.2.6 Стаффинг бит
В целях того, чтобы последовательность бит флага не появилась в каком-либо месте кадра передающая станция должна просматривать передаваемую последовательность бит на наличие 5 или более единичных бит. Каждый раз, когда встречается группа из 5 единичных бит, после 5-го единичного бита вставляется 0 бит. Во время приема пакета каждый раз, когда встречается 5 последовательно идущих единичных бит, следующий за ними 0 необходимо удалять.

Т. е. если внутри кадра есть подрят идущие единицы, то через каждые 5 бит вставляется 0?

Значит получается, что единица тогда, когда полярность не меняется?

4. Что передает МИКС перед началом пакета?

http://ua3mqj.inattack.ru/032.jpg

Семь бит одна полярность, восьмой - противоположный.

Serg
22.10.2008, 12:46
А с чего такой интерес, неужто родится TNC на современной базе? ;)

UA3MQJ
22.10.2008, 12:57
Просто интересно. Может и родится когда-нибудь

nostromo
22.10.2008, 13:50
Что же тут непонятного? NRZI --- это невозвращение к единице.
Описание, помню, было у Члиянца в одном из номеров "Радио" в конце 80-х.

UA3MQJ
22.10.2008, 14:15
О! Нашел!

http://n1vg.net/packet/index.php

Packet uses NRZI (non-return to zero inverted) encoding, which means that a 0 is encoded as a change in tone, and a 1 is encoded as no change in tone.

То есть, при 1 тон не маняется, при 0 меняется на противоположный.

UA3MQJ
22.10.2008, 14:28
А перед кадром МИКС похоже что передает флаг 01111110

шесть единиц, потом переход (0), потом еще один (0 - следующего байта).

2.2.11 Заполнение времени между кадрами
Если в силу каких-либо причин необходимо держать передатчик DXE включенным, не передавая кадров, то необходимо передавать непрерывно флаги.

Стаффинга (бита заполнения) там нет, т. к. флаги им не заполняются.
хмм...
а бит вставляется после 5-й единицы...

Serg
22.10.2008, 15:26
Понятно, что флаг есть и в начале передачи, слышно даже по характерному жужжанию, а что там конкретно в миксе никогда не интересовало чего-то.

А еще флаги могут быть кроме 01111110 и 01010101, была такая опция в некоторых TNC... Звучал забавно такой флаг и отлично от обычного :)

daemon
22.10.2008, 17:50
Приветствую всех интересующихся пакетом!


А с чего такой интерес, неужто родится TNC на современной базе? ;)
Уже родился. :) Два года назад уж как. На Atmega8 + FRAM 8k. Некогерентное декодирование на согласованных цифровых фильтрах внутри Atmega + ax25 протокол + kiss протокол для связи с компьютером. Использованы:
- Atmega8p - 1шт.
- FM24C64 - 1 шт.
- LM358 - 1 шт.
- MAX232 - 1 шт.
- КТ315 - 1 шт.
ну и, конечно, "обвязка" всего этого.

Связь с компьютером : от 1200 бит/с до 115200 бит/с, скорость по эфиру: 1200 бит/с (AFSK)
Есть фото, схема, плата, прошивка - все в качестве OpenSource.
Уже давно хотел опубликовать это здесь http://daemon.co.ua/ , но никак время (и вдохновение) не найду. Если кому очень надо, обращайтесь. Исходный код на Ассемблере, хорошо комментирован.
Этот TNC работал на моей пакетной станции на 144.850 МГц почти год, пока не пропал интерес.

Теперь по существу:

2. Как решается вопрос синхронизации в том случае, когда долго не меняется полярность сигнала (в USB меняют полярность каждые 6 бит)
Используется bit-stuffing


Не совсем понятно как передается байт 01111110 (байт флага), если он не в начале или конце сообщения, а просто содержится в данных. Или данные содержат одни единицы!?
Также используется bit-stuffing. Как вы правильно заметили, если в данных подряд идут 5 единиц, то сразу после 5-й единицы вставляется ноль, на приемной стороне он извлекается.


Значит получается, что единица тогда, когда полярность не меняется?
именно так. Только принято говорить про канальные символы, а не про полярность. Так в данном случае символы - это mark (1) и space (0). Полярность меняется на физ. линиях (например rs-232), а тут меняется частота (1200/2200 Гц)


Что передает МИКС перед началом пакета
Флаговый байт 7EH. Помню, когда делал свой tnc, то тоже ориентировался на MixW и даже обнаружил там какое-то несоответствие со стандартом (давно было, уже подзабыл подробности). Сообщил разработчикам, Денис UU9JDR потом внес изменения в следующий релиз MixW.

Если есть еще вопросы, обращайтесь. Буду вспоминать как я все это писал в свое время (еще осталась та пачка листов A4 с блок-схемами алгоритмов).

Успехов!
---
dmitry ur4mck

Serg
22.10.2008, 22:12
Да, Дима, я помню мы общались по электронной почте о вашем tnc, я его почти собрал, но микросхему памяти так и не купил еще, в основном образовалась "лень" из-за того, что этот контроллер работает только на одной скорости, а мне хотелось разных, ничего, нужно будет все равно завершить этот проект хотя бы до конца этого года ;)

daemon
23.10.2008, 10:27
Да, Дима, я помню мы общались по электронной почте о вашем tnc, я его почти собрал, но микросхему памяти так и не купил еще...
Да, было дело. Чесно скажу я тоже считаю минусом применение в моем TNC м/с FRAM по причине ее (пока еще) малодоступности. Просто был нужен буфер прием/передача достаточного объема, статических RAM с последовательным интерфейсом не нашлось, вот и применил FRAM. А сейчас, когда доступны более "мощные" микроконтроллеры (да хотя бы той же AVR серии), то, думаю, вполне можной обойтись и без внешней м/с памяти. Уже давно ношу в голове идею мультимодового (хотя бы 300/1200/9600 AFSK) TNC на ARM7 (AT91SAM7S64), уже все есть: и м/с, и отладочная плата, и софт, осталось только отвлечься от других проектов и найти вдохновение. :)

Но это все лирика. Но, возможно, автор темы заинтересуется подробностями реализации чтобы не изобретать велосипед заново. Могу посоветовать также всем, кому интересна тема модуляции/демодуляции + ax25 обратить внимание на исходные тексты soundmodem для Linux от HB9JNX ( http://www.baycom.org/~tom/ham/soundmodem/ ). Мне в разработке это очень помогло понять некоторые аспекты.

Желаю удачи!

---
dmitry, ur4mck

Serg
23.10.2008, 12:49
Насчет доступности, да мог я ее заказать в магазине за 30 гривен через месяц бы привезли, но жаба давила, надеялся что за 20грн привезет товарищ, раз не было, потом он забыл, а потом я не напомнил и т.д. :) Пойду на днях закажу все таки в магазине.

О новой разработке - я двумя руками за!

ew3ds
14.11.2008, 00:39
О новой разработке - я двумя руками за!
И я поднимаю две руки .

rus013
15.11.2008, 15:56
Ждёмс контроллер несложный.Пакет пока не умер просто наверное критические дни :D Но они проходят и всё возрождается в обновлённом виде.Главное чтоб был в доступном и по цене и по сборке виде.Соунд конечно неплохо только вот всё это настраивать иной раз проблемно и глючно а ТНЦ подключил и всё стандартно работает и напрямую без всяких программных обвязок.