Введение

DCB (Digital Control Bus, Digital Connection Bus или Digital Communication Bus в некоторых источниках) — это проприетарный интерфейс обмена данными, разработанный компанией Roland Corporation в 1981 году. Единственными инструментами, оснащенными DCB, были Roland Jupiter 8 и JUNO 60; довольно большой черный блок, способный преобразовывать сигналы MIDI в DCB и обратно. Хотя это позволяет передавать команды включения/выключения нот на JUNO 60 через MIDI, это решение значительно уступает полной реализации MIDI в преемнике JUNO 60 — Roland Juno 106. Несколько других компаний предлагают аналогичные преобразователи для подключения инструментов с DCB к стандартным MIDI-системам, чтобы поддерживать винтажные синтезаторы в современных средах звукопроизводства; одним из наиболее функциональных устройств является Kenton PRO DCB Mk3, который обеспечивает ограниченный двунаправленный контроль над некоторыми параметрами.

Реализация

Следующая информация взята из "Service Notes" Roland JUNO-60, первое издание, страницы 17–19.

Физическая связь

DCB использует специальное 14-проводное соединение. Первые 7 состоят из 3 проводов в каждом направлении плюс общий провод заземления. Сигналы стандартные TTL 0-5В, за исключением выхода Rx Busy, который является открытым коллектором с подтяжкой к земле. 1. Rx Busy (Rx Занят)
2. Rx Data (Rx Данные)
3. Rx Clock (Rx Тактовый сигнал)
4. Ground (Земля)
5. Tx Busy (Tx Занят)
6. Tx Data (Tx Данные)
7. Tx Clock (Tx Тактовый сигнал)

Оставшиеся 7 проводов могут быть использованы для специальных целей. 8. Unreg (Не зарегистрирован)
9. VCA Lower (Нижний ВУА)
10. VCA Upper (Верхний ВУА)
11. VCF Lower (Нижний ВФЧ)
12. VCF Upper (Верхний ВФЧ)
13. VCO 2 (Генератор 2)
14. VCO 1 (Генератор 1)

Они не используются в JUNO 60.

Серийные данные

DCB — стандартный асинхронный последовательный поток (реализованный на микросхеме 8251A в JUNO 60), младший бит первым, 8 бит данных, 2 стоповых бита, нечетная четность и скорость передачи 31,25 кГц.

Структура сообщения (блока)

Данные DCB передаются в виде коротких блоков сообщений, состоящих из идентификатора, одного или нескольких кодов данных и конечного маркера. Блоки могут передаваться прерывисто (JP 8, OP 8) или непрерывно (JUNO 60), в последнем случае конечные маркеры не используются. Идентификатор/начало Данные Конец F1 FE 0 F0 0 F0 FF Идентификатор занимает 1 байт и имеет значение от F1 до FE, выполняя роль как маркера начала, так и типа сообщения. Последующие данные не должны использовать эти байты в качестве данных. На практике обычно используются только FD (код патча) и FE (код ключа). Коды данных представляют собой один или несколько разделов или каналов, каждый из которых занимает 1 байт. Количество байтов или каналов зависит от конфигурации передатчика, но не изменяется после установления связи. Все значения данных должны быть в диапазоне от 00 до F0. Конечный маркер – символ FF. Он опускается, если сообщение имеет заранее заданную длину или следующее сообщение начинается сразу после данных.

FD: Блок кода патча

Это сообщение идентифицирует патч одним байтом. JUNO 60 игнорирует его. Оно отправляется один раз после изменения патча, вместе с первым кодом нажатия клавиши OP 8 и JP 8. У него нет завершающего маркера.

FE: Код ключа

Это сообщение идентифицирует ключевое событие. Оно содержит один байт для каждого канала нот, поддерживаемого передатчиком, поэтому его длина составляет 8 байтов для JP-8 и OP-8, или 6 байтов для JUNO-60. Каждый байт канала определяет номер ноты (биты 0–6) и состояние клавиши: нажата (1) или отпущена (бит 7). Ноты идентифицируются числами от 0 до 96, где 0 соответствует C0 (16,4 Гц), а 96 – C8 (4205 Гц). Каналы назначаются в порядке, определенном режимом назначения нот передатчика. Для OP-8 это Ch1–Ch8. Для JP-8 в режиме разделения – сначала верхние 4 ноты, затем нижние 4. В двойном режиме JP-8 данные для первых 4 каналов дублируются для вторых 4. Если JUNO-60 получает больше каналов, чем у него физически есть голосов, дополнительные каналы помещаются в очередь и воспроизводятся позже, когда это возможно. В то время как JP-8 принимает только 8 каналов.