Наверное, я всем уже наскучил. Тем не менее, продолжу монолог для тех, кто может заинтересоваться изучением прошивок принтера.
Итак, Phaser 6000B имеет три основные процессорные платы:
- ESS (с USB портом)
- TOKI (большущий чип на пол-платы)
- MCU (дофига шлейфов)
Далее подробно.
ESSИмеет порт USB, занимается преобразованием данных, взаимодействием с ПК и юзером, обработкой ошибок, и т.д.
Центральный процессор архитектуры ARM, 64 мега ОЗУ, операционная система реального времени, основа системы - ThreadX 5.1.
Имеет две микросхемы памяти, SPI на 1 МБ и I2C на 8 КБ.
Большая микросхема содержит бутлоадер (BOOT), систему (MAIN), предположительно, битстрим для TOKI (DACS) и резервную систему для заливки новой прошивки в случае каких-либо проблем (LDMN)
Предположительно, LDMN запускается, если зажать кнопки на панели в определенной позиции. Позицию пока не выяснял.
Бутлоадер умеет распаковывать прошивку. MAIN версии 1.50 не запакован, версии 1.62 и 1.74 запакованы. LDMN также запакован.
Сжатие двойное, "сверху" - обычный алгоритм Хаффмана, "снизу" - LZ. Поддерживается вариант только LZ, но такого не встречал.
Малая микросхема содержит "словарь" и "журнал ошибок". В том числе здесь хранится история, кто откуда и что печатал.
Операционная система реального времени (RTOS) немаленькая, очень много всяких проверок. Относительно картриджей - здесь происходит проверка региона. Все остальные ошибки, связанные с картриджами, поступают от MCU. Что будет, если проигнорировать ошибки картриджа, которые шлёт MCU - не знаю, в будущем попробую. Возможно, станет печатать, невзирая ни на что. Возможно, заблокируется к черту.
TOKIПо сути, одна большая FPGA. Управляет LED линейкой, собственной памяти (вроде бы) не имеет.
MCUЦентральная хренотень. Управляет всей системой печати. Картриджи, приводы, механика, питание. Дофига чего ещё. Сюда стекаются почти все шлейфы. Центральный проц архитектуры Renesas M16C/60. Внутри имеет флешку на 256 КБ под систему, плюс 8 КБ под логи и данные. Как перезаписать извне - хрен его знает. Занимается всем, что нас интересует - общается с чипами на картриджах, считает краску и проверяет счётчики. Умеет определять температуру и влажность. Все ошибки и статистику шлёт ESS на дальнейший показ пользователю.
Тоже перешивается по USB! Система одинаковая на всех версиях прошивок, в том числе и на 6010. Что делать, если пропатчу систему, а она не заведётся - хз. Пока что это одна из основных проблем "на подумать"
Апдейт прошивкиФайл обновления Phaser 6000 содержит три секции - DACS, MAIN и MCU. Первые две льются в 1 МБ флеш ESS, третья передается MCU и он сам себя как-то шьёт. Файл шифрован для отвода глаз.
P.S. Вся информация предоставляется в ознакомительно-развлекательных целях. Не знаю, что получится в итоге. Скучно.
Прикрепил дампы принтера. Ну и фиг с ним, что видно имена моих компов и последний печатаемый документ.