ПОЦЕЛУЙ (протокол любительского радио)
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2023 г. ) |
Эта статья написана как руководство или руководство . ( июль 2023 г. ) |
ПОЦЕЛУЙ (будь проще, глупый) [1] ) — протокол для связи с устройством контроллера последовательного терминального узла (TNC), используемым для любительской радиосвязи . Это позволяет TNC объединить больше функций в одном устройстве и стандартизировать связь. KISS был разработан Майком Чепонисом и Филом Карном для обеспечения передачи пакетных радиокадров AX.25, содержащих IP-пакеты, по асинхронному последовательному каналу связи для использования с программой KA9Q NOS . [1]
Описание
[ редактировать ]Протокол KISS разработан таким образом, чтобы его можно было легко реализовать в простых встроенных устройствах , способных осуществлять асинхронную последовательную связь. Хотя он позволяет передавать произвольные данные, он не поддерживает управление потоком или обработку ошибок .
KISS использует кадрирование Интернет-протокола последовательной линии , но определяет свой собственный простой протокол вместо инкапсуляции необработанных IP-пакетов, как это делает SLIP. KISS Сообщения протокола позволяют устанавливать общие переменные управления TNC, а также отправлять произвольные пакеты сообщений для пересылки TNC. Хотя пакеты могут быть произвольными, протоколы, обычно используемые с KISS, включают AX.25 и IPv4 .
Специальные символы
[ редактировать ]Шестнадцатеричное значение | Аббревиатура | Описание |
---|---|---|
0xC0 | ФЕНД | Конец кадра |
0xDB | ДВСК | Выход из кадра |
0xDC | ТФЭНД | Транспонированный конец кадра |
0xDD | ТФЕСК | Транспонированное перемещение кадра |
Подобно SLIP, последовательные коды FEND не следует интерпретировать как пустые кадры. Вместо этого все коды FEND, кроме последнего, должны быть отброшены. Это можно использовать для синхронизации и для того, чтобы дать время для стабилизации АРУ приемника.
Если в передаваемых данных присутствуют коды FEND или FESC, их необходимо экранировать . Затем код FEND отправляется как FESC, TFEND, а код FESC затем отправляется как FESC, TFESC. Два FESC подряд являются нарушением протокола и могут использоваться для обозначения прерванной передачи. Это позволяет получателю (обычно TNC) избежать неправильной интерпретации последующих данных как части допустимого кадра. Любые данные, полученные до следующего FEND, будут должным образом отброшены.
Коды команд
[ редактировать ]Любой из этих кодов может быть отправлен от хоста к TNC, но только код «Кадр данных» должен отправляться от TNC к хосту. «В многопортовых TNC старшие 4 бита байта индикатора типа могут указывать один из шестнадцати портов». [1]
Командные байты | Имя | Длина аргумента | Описание |
---|---|---|---|
0x?0 [...] | Кадр данных: порт X | Варьируется | Следующие байты должны быть переданы TNC. Максимальное количество байтов, а значит и размер инкапсулированного пакета, определяется объемом памяти TNC. |
0x?1, 0x?? | ЗАДЕРЖКА ПЕРЕДАЧИ | 1 | Время ожидания между нажатием на передатчик и началом отправки данных (с шагом 10 мс). |
0x?2, 0x?? | П | 1 | Параметр персистентности. Постоянство=Данные*256-1. Используется для CSMA . |
0x?3, 0x?? | СлотВремя | 1 | Время слота в единицах 10 мс. Используется для CSMA . |
0x?4, 0x?? | TXtail | 1 | Продолжительность времени, в течение которого передатчик остается включенным после отправки данных (с шагом 10 мс). |
0x?5, 0x?? | Полный дуплекс | 1 | 0 означает полудуплекс , все остальное означает полнодуплекс. |
0x?6, [...] | УстановитьОборудование | Варьируется | Зависит от устройства. |
0xFF | Возвращаться | 0 | Выйдите из режима KISS. TNC прекращает обработку протокола KISS и возвращается к своему поведению, зависящему от поставщика. |
Байты команд показаны здесь в шестнадцатеричном формате , но отправляются как байты, а не шестнадцатеричные строки. Во всех случаях, кроме команды возврата, старший полубайт указывает, к какому порту (в многопортовом TNC) применяется команда.
TNC может поддерживать другие нестандартные команды по усмотрению производителя.
Формат пакета
[ редактировать ]Начинать | Команда | Данные0..ДанныеN | Конец |
---|---|---|---|
ФЕНД | Старший полубайт – Индекс порта Низкий полубайт – команда |
Данные | ФЕНД |
Отправьте символы «TEST» из порта 0 TNC.
[ редактировать ]C0 – ОТБИРАТЬСЯ | 00 - РАМКА ДАННЫХ | 54 - "Т" | 45 - "Е" | 53 - "С" | 54-"Т" | C0 – ОТБИРАТЬСЯ |
Отправьте символы «Привет» из порта 5 TNC.
[ редактировать ]C0 – ОТБИРАТЬСЯ | 50 - КАДР ДАННЫХ: порт 5 | 48 - "Н" | 65 - "е" | 6С – «л» | 6С – «л» | 6F – «о» | C0 – ОТБИРАТЬСЯ |
(шестнадцатеричный байт 50 — это двоичный код 0101 0000, который многопортовый TNC интерпретирует как «КАДР ДАННЫХ, ПОРТ 5», потому что 0101 -> 5)
Отправьте байты 0xC0, 0xDB из порта 0 TNC.
[ редактировать ]C0 – ОТБИРАТЬСЯ | 00 - КАДР ДАННЫХ: порт 0 | БД - ДВНЦ | ДК - ТФЕНД | БД - ДВНЦ | ДД - ТФЭСК | C0 – ОТБИРАТЬСЯ |
Оба байта в примере сообщения требуют экранирования, поэтому каждый из них отправляется как двухбайтовая последовательность. TNC удалит их перед передачей.
Выйти из режима ПОЦЕЛУЯ
[ редактировать ]C0 – ОТБИРАТЬСЯ | ФФ – ВОЗВРАТ | C0 – ОТБИРАТЬСЯ |
Поведение ЧПУ после возврата из режима KISS зависит от производителя. Некоторые предоставляют построчно-ориентированный командный клиент «узла» или «почтового ящика».
Обычное использование
[ редактировать ]Альтернативы
[ редактировать ]См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с Майк Чеппонис, K3MC; Фил Карн, KA9Q (1987). KISS TNC: простой протокол связи между хостом и TNC . 6-я конференция ARRL по компьютерным сетям. Редондо-Бич, Калифорния. Архивировано из оригинала 07.06.2022.
{{cite conference}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ «6PACK — протокол ПК «реального времени» для TNC» . Архивировано из оригинала 27 декабря 2022 г. Проверено 8 апреля 2012 г.
- ^ «Протокол 6pack — документация по ядру Linux» . docs.kernel.org .
Внешние ссылки
[ редактировать ]- Интерфейс Device::TNC::KISS Perl для TNC в режиме KISS, автор Р. Бернард Дэвисон на CPAN (2007).
- Исходный код TNC-2 KISS (язык ассемблера Z-80): https://github.com/cheponis/KISS-TNC2