Помогите определить неизвестную последовательную шину синхронизации

Кто-нибудь видел такую ​​связь по последовательной шине синхронизации?

Повторяющийся узор:введите описание изображения здесь

Деталь начала:введите описание изображения здесь

Лично я так и не разобрался...

Однако похоже на I2C:

  • Часы работают на частоте 2 МГц (как и должно быть в HS-I2C как минимум)
  • Линия как бы подтянута вниз (I2C обычно подтягивается)
  • Кажется, я не могу установить какие-либо условия START: кажется, что первая часть данных перемещается после 2 тактов...

Тоже похоже на SPI, но:

  • Если линия данных является MOSI, шаблон повторяется после 5 слов по 9 бит каждое (в то время как обычное слово SPI составляет 8 бит). Позже, кажется, повторяется другой шаблон: 4 слова по 6 бит каждое ... Я никогда не видел SPI-коммуникации, в которой длина слова менялась бы для одной и той же пары мастер / устройство. Меньшая длина слова может быть общим знаменателем, но тогда это должно дать мне длину слова в 3 бита...
  • Если я отключу устройство от шины, мастер по-прежнему отправляет точно такие же сигналы, даже если он знает, что устройство отсутствует и нет другой линии данных, поэтому похоже, что эта линия данных двунаправленная (как I2C). ) и где-то происходит своего рода рукопожатие (ACKnowledge).

Я думаю, что это может быть стандартизированная шина/протокол, о котором я просто не слышал и что, возможно, кто-то здесь мог его где-то видеть.

Каков контекст (аудио, видео, Ethernet и т. д.)? Есть ли подтягивания на одной или обеих линиях? Вы уверены, что строк не больше, чем эти две? (Моей первой идеей был бы I2S, но для этого требуется как минимум одна дополнительная линия.)
это то, как принтер управляет картриджем с чернилами. Мастер — это материнская плата принтера. Ведомый — это небольшая печатная плата за чернильным картриджем. Другой сигнал на платном кабеле предназначен для приостановки или другого сенсорного сигнала (аналогового), единственные 2 цифровых сигнала - это эти 2, и это похоже на связь ... Таким образом, цель этой шины должна заключаться в том, чтобы отдавать приказ, например: вытолкнуть немного чернил ,...
До сих пор я думаю, что вы сами ответили на свой вопрос - это последовательная связь между принтером и картриджем. Последовательные каналы связи бывают разных форм и размеров, и некоторые из них легко понять, а некоторые сложны — попробуйте создать канал, который был зашифрован или содержит данные АЦП от быстродействующих аналоговых датчиков. Попробуйте проработать тот, где у вас тоже нет часов. Не удивляйтесь потенциальному разнообразию того, что вы можете найти.
@moquette31 зная производителей принтеров, все является собственностью, коммерческой тайной и запатентовано. Я не удивлюсь, если этот протокол не задокументирован и используется только с этим конкретным производителем.
"Значит, цель этого автобуса должна заключаться в том, чтобы отдавать приказы вроде..." - Может быть. Но это также может быть своего рода протокол аутентификации, выполняемый принтером для проверки подлинности картриджа (TM) и/или для обмена другими параметрами, такими как текущий уровень чернил и т. д.
Как вы определили длину слова?
В отличие от большинства последовательных протоколов, он, по-видимому, передает немного информации о каждом нарастающем и спадающем фронте тактового сигнала. Довольно необычно AFAIK..
Попробуйте преобразовать один и тот же сигнал (или используйте FPGA или CPLD), а затем немного измените сигнал (сделайте ВЫСОКИЙ -> НИЗКИЙ или наоборот) и посмотрите, что произойдет.

Ответы (2)

Эти 2 строки, вероятно, не связаны

Я предполагаю, что эти две линии вообще не являются последовательной шиной «данных», учитывая, что очень маловероятно, что линия данных будет опрашиваться на обоих фронтах тактовых импульсов. По крайней мере, они не являются частью одной и той же коммуникационной схемы.

След, похожий на часы, вероятно, является командой «шаг». Его цель — сообщить материнской плате каретки чернил о том, что шаговый двигатель переместил каретку на следующую позицию на странице.

Какие-то альтернативы?

Трассировка, похожая на данные, возможно, является концевым выключателем или другим датчиком, который указывает исходное положение, начало ряда, конец ряда и т. д.

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

Верхний сигнал выглядит как сигнал UART . Визуально кажется, что в каждом символе передается 11 бит. Вероятно, это соответствует 1 стартовому биту, 9 битам данных и 1 стоповому биту для 1 символа. Возможно, что один из битов данных является битом четности, по-видимому, как XNOR остальных 8 битов данных. Кроме того, похоже, что на предоставленном вами снимке экрана встречаются только два символа (0 1000 0110 и 1 1111 1111). Вполне вероятно, что это общая шина, и то, что вы видите, это (команда от dev1), (подтверждение от dev2), (команда от dev1), (подтверждение от dev2) и т. д. Вероятно, это конфигурация рукопожатия ведущий-ведомый. .

Второй сигнал показывает явный дрейф по сравнению с первым сигналом, даже за то короткое время, когда он был записан. Это означает, что сигнал не только не связан, но и, вероятно, даже не находится в той же тактовой области, что и первый сигнал.

Есть несколько способов проверить это. Отключите устройство, которое вы считаете ведущим, и подделайте его, отправив команду 0 1000 0110. Если вы получите 1 1111 1111 от подчиненного устройства, вы будете знать, что шина является общей.

Если это работает, вы также можете проверить, является ли один из битов битом четности. Просто измените любой бит исходной команды и снова подделайте мастер, управляя шиной с измененным символом. Если в ответ вы получите другой символ, скорее всего, это символ ошибочного рукопожатия.