Skip to content

CLUNET 2.0 is a simple Software Network Protocol driver for Atmel 8-bit MCUs. Based on Clunet by Alexey Avdyuhin (aka Cluster) and principles of CAN protocol, but without sampling and 2-nd wire.

License

Notifications You must be signed in to change notification settings

clunet/CLUNET-2.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLUNET 2.0 (alpha development version)

Простой протокол передачи данных CLUNET 2.0 основан на оригинальном протоколе Алексея Авдюхина aka Cluster.

Bootloader готов к тестированию в папке demo_project/clunet_bootloader. Понимаю, что без инструментария, а именно адаптера ПК->CLUNET, это весьма проблематично, поэтому его изготовлением на базе Sparkfun Pro Micro 16MHz и займусь в ближайшее время.

Видео с фрагментами передаваемых кадров с помощью USB-адаптера (скоро будут исходники)

## Основные отличия Ниже приведены основные отличия от оригинальной версии протокола: 1. **Иной принцип передачи** максимально приближенный к **CAN**, без пауз, используется битстаффинг после 5 одноименных переданных бит, что устраняет рассинхронизацию устройств сети, но в отличие от **CAN** не производит сэмплирований, а работает по внешнему прерыванию. 2. **Скорость передачи выше от 2 до 4 раз** в _зависимости от передаваемых данных_ при том же значении периода передачи (64 мкс); 3. Заголовок кадра и данные передаются **старшим битом вперед**, в оригинальной версии - младшим; 4. **Уровней приоритетов сообщения 8** вместо 4 (3 бита); 5. Нагрузка на центральный процессор снижена за счет более редкого (минимум в **2 раза**) вызова прерываний; 6. Для работы с сетью используется **всего одна нога** микроконтроллера (можно применить и в оригинале, надо бы сделать **Pull Request**). Да, и больше **нет опции `WRITE_TRANSISTOR`**, оба типа подключения работают с одним и тем же вариантом прошивки; 7. Немного **изменен программный интерфейс** (незначительно), так что использование вместо оригинала повлечет _небольшую_ доработку.

Особенности и принцип

  1. Протокол передачи использует доминантно-рецессивный принцип, использованный в CAN. Все устройства расположены на одной шине и имеют одинаковые права, то есть выделенного мастера нет.
  2. Алгоритм использует активную защиту от коллизий, проводя арбитраж и отдавая право передачи данных устройству с более высоким приоритетом. Поле приоритета занимает 3 бита, что позволяет назначать 8 уровней приоритета. При равенстве приоритетов поле арбитража расширяется на все тело кадра.
  3. Алгоритм обеспечивает синхронизацию операций чтения и передачи по переднему фронту доминантного сигнала. Это обеспечивает превосходные результаты при чтении и арбитраже на шине при активном конкурентном использовании несколькими устройствами одновременно.

Схемотехника

Шина CLUNET 2.0 использует для передачи и приема данных всего один провод и одну ногу микроконтроллера (должна поддерживать внешние прерывания). Организовать и подключиться к ней возможно 2 способами не изменяя прошивку устройства:

  1. Используя любой биполярный транзистор PNP-типа (рекомендуется): Рекомендуемая схема подключения
  2. Непосредственное подключение: Простая схема подключения

About

CLUNET 2.0 is a simple Software Network Protocol driver for Atmel 8-bit MCUs. Based on Clunet by Alexey Avdyuhin (aka Cluster) and principles of CAN protocol, but without sampling and 2-nd wire.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published