ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
14 ноября
1002030 Топик полностью
Evgeny_CD, Архитектор (06.05.2020 02:18, просмотров: 891) ответил Evgeny_CD на [Универсальная проводная шина для задач "распределенный PLC"]. Одна витая пара, дуплекс, до 100 Кбит/сек, гальваническая развязка на оптронах, дешево.
На самом деле я изобрел [последовательную шину данных]. Так сказать, К145ИК чего нибудь там третьего десятилетия 21 века :) 

Это не система связи в терминах коммуникационных протоколов. Это транзакционая шина данных, с элементами коммуникации а ля протоколы.

Считаем времянки для 500 кбит/сек. 2 мкс на бит.

-- маркер начала - 2 бита

-- адрес регистра (11 битов) и CRC-5 - 16 бит, 24 после Hamming (12,8)

-- данные - 16 бит, , 24 после Hamming (12,8)

-- биты квитирования - 2

Транзакция на чтение аналогично.


С точки зрения master имеем 1024 регистра на запись и 1024 регистра на чтение (11 бит, адресация как в I2C). Во время транзакции slavе подтверждает прием адреса окончательно подтверждает прием команды (два бита для ответа - двойное подтверждение, на случай пропуска одиночного бита).


Итого 52 бита на транзакцию. 10к транзакций в секунду. Смотрим на скорости pps Ethernet и понимаем, что в реальных условиях наши 500кбит побьют 10Мбит Ethernet - там не будет такой красивой схемы подтверждения. И да, у нас многоточка на одну витую пару и Hamming (12,8)


https://kb.juniper.net/InfoCenter/index?page=content&id=kb14737


Если говорить о PLC (в терминах http://caxapa.ru/1001410/ ), то для PLC с 32 IO сигналами (будем считать, что каждый IO сигнал описывается 16 битами) мы имеем темп транзакций (опрос или вывод значения) 312 транзакции в секунду, 3.2 мс на транзакцию. Итого теоретически 6.4 мс на реакцию - опросили и тут же выдали команду.


В реальности будет еще служебная инфа - настройка IO и прочее, так что пусть будет 200 транзакций в секунду - стальное зарезервируем.


Я решил изначальную задачу о распределенном PLC с реакцией 10 мс.


Slave получается предельно простой. Нужен аппаратный контроллер протокола (а сложность здесь совсем не такая, как аппаратный IP стек, например) и далее любой интерфейс к MCU.


Заметим, у нас сам собой решается вопрос синхронизации местера и slave с точностью до длительности двух бит. Вообще без усилий программизма.

51 живее всех живых? А у SiLabs и шина параллельная есть :)