Если бы MikaTech была недобросовестной компанией, в Интернете можно было бы найти множество плохих отзывов о её услугах за 28 лет истории
Итак, ответ — ДА! Мы хорошие люди.Почему выбирают Mikatech, нажмите здесь, чтобы узнать
О MikaTech
Время пролетело быстро: с того дня, когда мы выполнили наш первый проект по обратному проектированию МК 8051 в 1998 году, до момента создания нашей лаборатории стоимостью в миллион долларов в 2012 году прошло 14 лет. Теперь мы начинаем новый бизнес по разработке встраиваемых визуальных систем, надеемся прослужить ещё 10 лет.
Peter Lee
Сооснователь и генеральный директор
Что всегда сложнее всего сделать? Вы купили микроконтроллер, изучили все его схемы и регистры, у вас есть отличная идея, как применить все знания на практике. Но самое трудное – это начать...
Начинать работу с **микроконтроллером** (МК) часто кажется непосильной задачей, но путь от пустого чипа до работающего устройства невероятно полезен. Прежде чем написать первую строчку **кода**, стоит подумать о том, как вы будете защищать этот **код** после развёртывания. Многие разработчики забывают о **бите защиты** (lockbit) до тех пор, пока не становится слишком поздно, оставляя свою **прошивку** открытой для несанкционированного **считывания**. В коммерческих продуктах **блокировка** является первым барьером против попыток **обратного проектирования**, направленных на **дамп flash** памяти и **клонирование** всей системы. Даже во время разработки может потребоваться **восстановление** предыдущей версии с заблокированного чипа, если вы потеряли исходные файлы. **EEPROM** на AT89S8253, например, хранит калибровочные данные, которые могут быть критичны для **извлечения прошивки** при судебном анализе. Некоторые злоумышленники используют **декапсуляцию** для обнажения кремния и непосредственного зондирования **перемычек**, управляющих состоянием **разблокировки**. Именно поэтому понимание инструментов программирования и отладки – это не только вопрос удобства, но и осознания безопасности. **Дамп** скомпилированного **hex**-файла является конечным результатом, но процесс его создания включает множество этапов, где могут закрасться ошибки. Хорошая система разработки помогает тестировать каждый вывод I/O, таймер и прерывание, что косвенно укрепляет защиту от атак по побочным каналам. **Бит защиты** следует устанавливать в самом конце цикла программирования, чтобы предотвратить внешнее **считывание**. Однако, если вы случайно **заблокируете** чип без проверки **кода**, возможно, потребуется специальное оборудование для его **разблокировки**. Именно поэтому примеры из предыдущих глав так важны – они дают основы, которые позже становятся строительными блоками надёжных систем. Всегда храните резервную копию вашей **прошивки** и содержимого **EEPROM** на компьютере, чтобы **восстановление** было возможным без прибегания к физическому зондированию. Имея это в виду, давайте теперь рассмотрим практические шаги для запуска вашей первой программы.
Микроконтроллер – это добродушный «джинн в бутылке», и для его использования не требуется никаких дополнительных знаний.
Для создания устройства, управляемого микроконтроллером, необходимо иметь простейший ПК, программу для компиляции и простое устройство для передачи кода с ПК в сам чип.
Хотя весь процесс довольно логичен, часто возникают вопросы, не потому что он сложен, а из-за многочисленных вариантов. Давайте посмотрим.
Для написания программы для микроконтроллера можно использовать специализированную программу в среде Windows. Можно, но не обязательно... При использовании такого ПО доступно множество инструментов, облегчающих работу (в первую очередь симулятор), что является очевидным преимуществом. Но есть и другие способы написания программы. По сути, важен только текст. Для этой цели подойдёт любая программа для обработки текста. Суть в том, чтобы записать все инструкции в том порядке, в котором они должны выполняться микроконтроллером, соблюдать правила языка ассемблера и записывать инструкции точно так, как они определены. Другими словами, вам просто нужно следовать идее программы. И всё!
;RESET VECTOR
CSEG AT 0
JMP XRESET ; Вектор сброса
CSEG
ORG 100H
XRESET: ORL WMCON,#PERIOD ; Задать период сторожевого таймера
ORL WMCON,#WDTEN ; Сторожевой таймер включен
Чтобы компилятор работал успешно, необходимо, чтобы документ, содержащий эту программу, имел расширение .asm в имени, например: Program.asm.
При использовании специализированной программы (mplab) это расширение будет добавлено автоматически. Если используется любая другая программа для обработки текста (Блокнот), то документ следует сохранить и переименовать. Например: Program.txt -> Program.asm. Эту процедуру выполнять не обязательно. Документ можно сохранить в исходном формате, а его текст скопировать в программатор для дальнейшего использования.
Микроконтроллер «не понимает» язык ассемблера как таковой. Поэтому необходимо скомпилировать программу в машинный язык. Это очень просто, если используется специализированная программа (mplab), потому что компилятор является частью ПО. Достаточно одного щелчка по соответствующей иконке, и появляется новый документ с расширением .hex. Это та же самая программа, только скомпилированная в машинный язык, который микроконтроллер отлично понимает. Такой документ обычно называют «hex-кодом» и он представляет собой, на первый взгляд, бессмысленную последовательность чисел в шестнадцатеричной системе счисления.
:03000000020100FA1001000075813F 7590FFB29012010D80F97A1479D40 90110003278589EAF3698E8EB25B A585FEA2569AD96E6D8FED9FAD AF6DD00000001FF255AFED589EA F3698E8EB25BA585FEA2569AD96 DAC59700D00000278E6D8FED9FA DAF6DD00000001FF255AFED8FED 9FADAF6DD000F7590FFB29013278 E6D8FED9FADAF6DD00000001FF2 55AFED589EAF3698E8EB25BA585 FEA2569AD96DAC59D9FADAF6D D00000001FF255AFED8FED9FADA F6DD000F7590FFB29013278E6D82 78E6D8FED9FA589EAF3698E8EB2 5BA585FEA2569AD96DAF6DD000 00001FF2DAF6DD00000001FF255A ADAF6DD00000001FF255AFED8FE D9FA
В случае использования другого ПО для написания программ на ассемблере, необходимо установить и использовать специальное ПО для компиляции программы следующим образом: настроить компилятор, открыть документ с расширением .asm и скомпилировать. Результат тот же – новый документ с расширением .hex. Единственная проблема теперь в том, что он хранится на вашем ПК.
Чтобы передать «hex-код» в микроконтроллер, необходимо иметь кабель для последовательной связи и специальное устройство, называемое программатором, с программным обеспечением. Есть несколько способов это сделать.
В Интернете можно найти большое количество программ и электронных схем для этой цели. Действуйте следующим образом: откройте документ с hex-кодом, установите несколько параметров и нажмите значок компиляции. Через некоторое время последовательность нулей и единиц будет запрограммирована в микроконтроллер через кабель последовательной связи и аппаратный программатор. Остаётся только поместить запрограммированный чип в целевое устройство. Если необходимо внести какие-либо изменения в программу, предыдущую процедуру можно повторять неограниченное количество раз.
В этом разделе кратко описано использование MPLAB и программного обеспечения программатора, разработанного Mikroelektronika. Всё очень просто...
Запустите программу Mikroelektronika Asm51 Console. Появится окно...
...Откройте новый документ: File -> New. Напишите свою программу или скопируйте текст...
...Сохраните и назовите документ: File -> Save As... (Имя документа ограничено 8 символами!)
Наконец, чтобы скомпилировать программу в HEX-код, выберите: Project -> Build или нажмите значок 'play'.
Если всё работает правильно, компьютер ответит кратким отчётом.
Программа написана и успешно скомпилирована. Осталось только загрузить программу в микроконтроллер. Для этого необходимо иметь программное обеспечение, которое принимает написанную и скомпилированную программу и передаёт её микроконтроллеру.
Запустите программу 8051 Flash_setup.exe...
Установка программы выполняется как обычно – просто нажимайте Next, Accept, Next...
...и наконец – Finish!
Программа установлена и готова к использованию. Настройки выполняются легко, так что дополнительные объяснения не требуются (тип микроконтроллера, частота и тактовый генератор и т.п.).
Всё! Микроконтроллер запрограммирован и всё готово к работе. Если вы не удовлетворены, внесите изменения в программу и повторите процедуру. До каких пор? Пока вы не будете удовлетворены...
Устройство, которое на этапе тестирования программы может имитировать любую среду, называется системой разработки. Помимо программатора, блока питания и разъёма для микроконтроллера, система разработки содержит элементы для активации входов и индикации выходов. Простейший вариант имеет каждый вывод, подключённый к одной кнопке и одному светодиоду. Качественная версия имеет светодиодные индикаторы, ЖК-дисплеи, датчики температуры и все другие элементы, которые могут быть установлены в целевом устройстве. Эти периферийные устройства могут подключаться к МК через миниатюрные перемычки. Таким образом, вся программа может быть протестирована на практике на этапе разработки, потому что микроконтроллер не знает и не заботится о том, активируется ли его вход кнопкой или датчиком, встроенным в реальное устройство.
Система разработки Easy8051A – это высококачественная система разработки, используемая для программирования совместимых с 8051 микроконтроллеров, производимых Atmel. Помимо программирования чипов, эта система позволяет тестировать все части программы, так как содержит большинство компонентов, которые обычно встраиваются в реальные устройства.
Система разработки Easy8051A состоит из:
В следующем тексте кратко описаны некоторые схемы в этой системе разработки. Это скорее иллюстрация её возможностей, чем полное руководство. Кроме того, изучая это устройство, можно понять, что микроконтроллеры и их инструменты предназначены для всех, а не только для избранных.
Все микроконтроллеры, выпускаемые Atmel, поставляются в нескольких стандартных DIP-корпусах. Чтобы обеспечить их программирование с помощью одного устройства, соответствующие выводы (с одинаковыми именами) на разъёмах соединены параллельно. В результате, будучи помещённым в соответствующий разъём, каждый микроконтроллер автоматически подключается правильно. Рисунок справа показывает микроконтроллер в 40-выводном корпусе и подключение одного из его выводов I/O (P1.5). Как видно, вывод может быть подключён к внешнему устройству (разъём PORT1), светодиоду (микропереключатель SW2), кнопке или резистору через разъёмы. В последних двух случаях полярность напряжения выбирается с помощью перемычек на плате.
Назначение программатора – передавать HEX-код с ПК на соответствующие выводы и обеспечивать правильные уровни напряжения во время программирования чипа. В этой системе разработки программатор встроен и должен подключаться к ПК через USB-кабель. Когда процесс программирования завершён, выводы, используемые для него, автоматически становятся доступными для других приложений.
На плате разработки есть разъём для подключения внешнего источника питания (AC/DC, 8-16 В). Кроме того, напряжение, необходимое для работы устройства, также может поступать от ПК через USB-кабель. Перемычка J5 используется для выбора источника питания.
Система разработки EASY8051A имеет встроенный генератор, используемый как генератор тактовых сигналов. Частота этого генератора стабилизирована кварцевым резонатором на 8 МГц. Кроме того, во время программирования чипа можно выбрать внутренний RC-генератор.
Каждый вывод порта I/O подключён к одному светодиоду, что позволяет визуально индицировать его логическое состояние. В случае, если наличие прямо смещённых светодиодов и последовательных резисторов недопустимо в некоторых приложениях, DIP-переключатель SW2 позволяет отключить их от порта.
Аналогично светодиодам, каждый вывод порта I/O подключён к одной кнопке на плате разработки. Это позволяет просто активировать входные выводы. Перемычка J6 используется для выбора полярности напряжения (+ или -), подаваемого на выводы при нажатии соответствующей кнопки.
Будучи часто применяемыми в промышленности, четыре высокопроизводительных светодиодных индикатора, настроенных в мультиплексном режиме, входят в систему разработки. Сегменты индикаторов подключены к порту P0 через резисторы. Транзисторные драйверы, используемые для активации отдельных разрядов, подключены к первым четырём выводам порта P1. Это позволяет тестировать программы, использующие семисегментные индикаторы, с минимальным использованием портов I/O. Как и в случае со светодиодами, DIP-переключатель SW2 позволяет отключить транзисторные драйверы от выводов микроконтроллера.
Система разработки EASY8051A обеспечивает подключение как графического, так и буквенно-цифрового ЖК-дисплея. Оба типа дисплеев подключаются путём установки в соответствующий разъём и переключения положения перемычки J8. Если дисплеи не используются, все выводы, задействованные для их работы, доступны для других приложений. Помимо разъёмов, на плате также есть потенциометр для регулировки контрастности.
Чтобы обеспечить тестирование программ, использующих последовательную связь, система разработки имеет встроенный стандартный 9-контактный разъём SUB-D. В качестве регулятора напряжения используется MAX232.
Как и другие встроенные схемы, электроника, поддерживающая последовательную связь, может быть включена или отключена с помощью перемычек J9 и J10.
Измерение температуры – одна из наиболее распространённых задач устройств, работающих в промышленности. По этой причине на системе разработки EASY8051A есть микросхема DS1820, которая измеряет температуру в диапазоне от -55 до +125°C с точностью более 0,5°C. Результаты измерения передаются через последовательную связь на выводы P3.3 или P2.7. Перемычка J7 используется для выбора выводов для приёма данных. Если перемычка не установлена, выводы порта доступны для других приложений.
Встроенный 12-битный АЦП MCP3204 имеет четыре входных канала, подключённых к разъёмам на плате. Данные обмениваются с микроконтроллером через систему последовательной связи SPI с использованием выводов P1.5, P1.6, P1.7 и P3.5. Если АЦП не используется, эти выводы могут быть задействованы для других приложений (DIP-переключатель SW1). Для проверки работы на плате разработки есть потенциометр, используемый как источник переменного напряжения. Он может быть подан на входные выводы преобразователя с помощью одной из четырёх перемычек J12. В качестве дополнительного удобства встроен источник опорного напряжения MCP1541 (4,096 В). Перемычка J11 используется для выбора, будет ли преобразователь использовать это напряжение или 5 В.
Цифро-аналоговое преобразование (ЦАП) – ещё одна операция, часто выполняемая микроконтроллером на практике. По этой причине на плате есть специальная микросхема, которая обменивается данными с микроконтроллером через систему SPI. Она может генерировать аналоговое напряжение с 12-битным разрешением на своём выходном выводе. Когда она не используется, все выводы микроконтроллера доступны для других приложений с помощью DIP-переключателя SW1. Как и в случае с АЦП, перемычка J11 используется для выбора опорного напряжения.
Чтобы обеспечить возможность непосредственного подключения дополнительных компонентов к портам микроконтроллера, каждый из них подключён к одному разъёму на плате. Кроме того, два вывода каждого разъёма подключены к напряжению питания, а каждый вывод может быть подключён к положительной или отрицательной полярности напряжения через резисторы (подтягивающие или подтягивающие к земле резисторы). Наличие и подключение этих резисторов определяются перемычками. На рисунке справа показана перемычка J3, управляющая портом P3.
В этой главе мы увидели, что система разработки – это не просто программатор, а полноценная лаборатория для ваших проектов на **микроконтроллере**. Возможность тестировать каждый вывод, дисплей и периферию перед окончательным изготовлением печатной платы экономит бесчисленные часы отладки. Однако даже с лучшими инструментами безопасность вашего конечного продукта зависит от того, как вы обрабатываете **бит защиты** и **перемычки** на этапе программирования. Многие инженеры забывают установить **блокировку** после окончательного **дампа** **hex**-файла, оставляя **flash**-память открытой для простого **считывания** через программатор. Решительный противник мог бы затем **сдампить** весь **код** и **клонировать** ваше устройство, сводя на нет все ваши усилия. **EEPROM** на AT89S8253 особенно уязвим, потому что его можно прочитать тем же программатором, если **блокировка** не активирована. Именно поэтому Easy8051A, как и многие другие платы разработки, даёт вам полный контроль над напряжением программирования и настройками безопасности. Всегда дважды проверяйте, что вы включили **бит защиты** и, если доступно, **трёхуровневую блокировку памяти**, чтобы предотвратить **извлечение прошивки** через интерфейс SPI. Если вам потребуется выполнить **восстановление** заблокированного чипа, некоторые продвинутые инструменты позволяют выполнить **декапсуляцию** и микрозондирование, но это дорого и разрушительно. Поэтому гораздо лучше хранить надёжную резервную копию вашего **кода** и конфигурационных данных на компьютере. Процесс **разблокировки** редко требуется, если вы придерживаетесь дисциплинированного цикла разработки. Однако понимание методов **обратного проектирования**, которые используют злоумышленники, сделает вас более осознанным разработчиком в области безопасности. Например, массив светодиодов и кнопок на Easy8051A отлично подходит для функционального тестирования, но также напоминает нам, что каждый вывод I/O является потенциальной точкой входа для атак с глитчами. Моделируя реальные условия на плате разработки, вы можете проверить, как ведёт себя ваша **прошивка** в условиях стресса и выдерживают ли механизмы **блокировки**. В конечном счёте, путь от пустого чипа до защищённого готового продукта – это непрерывный процесс обучения, и Easy8051A является отличным спутником на этом пути.
Восстановление кода серии W78Exx: W78E51 W78E51B W78E52 W78E52B W78E54 W78E54B W78E58 W78E58B W78E516 W78E051A W78E62 W78E65 W78E65B W78E516B W78E051B W78E051C W78E052A W78E052B W78E052C W78E054A W78E054B W78E054C W78E058A W78E058B W78E065A W78E365 W78E365A W78E378 W78E378E W78E51 W78E516B W78E51B W78E51C W78E52 W78E52B W78E52C W78E54 W78E54B W78E54C W78E58 W78E58B W78E62 W78E65 W78E858 W78ERD2 W78ERD2A W78E051DDG W78E051DFG W78E051DLG W78E051DPG W78E052DDG W78E052DFG W78E052DLG W78E052DPG W78E054DDG W78E054DFG W78E054DLG W78E054DPG W78E058DDG W78E058DFG W78E058DLG W78E058DPG W78E065 W78E354 W78E374B W78E378P W78E516DDG W78E516DFG W78E516DLG W78E516DPG W78E62B ...
Извлечение кода серии W78IExx: W78IE52 W78IE54 W78IRD2 W78IRD2A W78I051DDG W78I051DFG W78I051DLG W78I051DPG W78I052 W78I052DDG W78I052DFG W78I052DLG W78I052DPG W78I054 W78I054DDG W78I054DFG W78I054DLG W78I054DPG ...
Восстановление кода серии W78Lxx: W78L051A W78L051C W78L052A W78L052C W78L054A W78L054C W78L058A W78L365A W78L516A W78L812A W78L051 W78L052 W78L054 W78L058 W78L365 W78L516 W78L812 ...
Извлечение кода серии W78LExx: W78LE58 W78LE58B W78LE051A W78LE365 W78LE51 W78LE516 W78LE51C W78LE52 W78LE52C W78LE54 W78LE54C W78LE812 ...
Восстановление кода серии W79Exx: W79E201 W79E201A W79E532 W79E532A W79E533A W79E548 W79E548A W79E549 W79E549A W79E558A W79E559A W79E632 W79E632A W79E633A W79E648 W79E648A W79E649 W79E649A W79E658A W79E659A W79E801 W79E802 W79E803 W79E804 W79E821 W79E822 W79E823 W79E824 W79E825 W79E82J W79E832 W79E833 W79E834 W79E83J W79E2051 W79E216AFG W79E217AFG W79E225A W79E226A W79E227A W79E4051 W79E633 W79E83J W79E801A W79E802A W79E803A W79E804A W79E821A W79E822A W79E822B W79E823A W79E823B W79E824A W79E825A W79E831A W79E832A W79E833A W79E834A ...
Извлечение кода серии W79Lxx: W79L532 W79L532A W79L548 W79L548A W79L549 W79L549A W79L558A W79L559A W79L632 W79L632A W79L633A W79L648 W79L648A W79L649 W79L649A W79L658A W79L659A W79L633 ...
Восстановление кода серии W83Lxx: W83L950D W83L950G W83L951D W83L951DG W83L951F W83L951FG W83L951ADG W83L951DF ...
Почему выбирают Mikatech, нажмите здесь, чтобы узнать
У разных производителей микросхем разные номера деталей, но внутреннее ядро микросхемы может быть выполнено по одной и той же технологии, поэтому перечислить все номера деталей, к которым применима наша технология, практически невозможно, например MYSON, STK, FEELING, ANALOG, FUJITSU, NOVATEK, LG/HYNDAI.
Кроме того, с развитием технологий мы ежедневно приобретаем всё больше опыта и разрабатываем новые методы обратного проектирования для различных интегральных схем. Полный список номеров деталей интегральных схем, входящих в нашу компетенцию, постоянно растёт, пожалуйста, свяжитесь с нами, чтобы узнать подробности.
Mikatech Innovative Limited понимает важность конфиденциальности своих клиентов. В момент обращения в Mikatech ваша личная информация будет защищена в соответствии с нашими внутренними регламентами, разработанными за годы практики. Mikatech использует эту информацию для настройки своих услуг под вас и никогда не раскрывает её третьим лицам по какой-либо причине.
По каждому проекту мы удаляем все данные, материалы и коды через 60 дней после передачи файлов — это защищает нас и вашу конфиденциальность.
Да, это полностью законно.
Mikatech предоставляет свои услуги по обратному проектированию только в образовательных целях. Использование вышеуказанных услуг может быть незаконным в некоторых странах или регионах, пожалуйста, ознакомьтесь с местными законами.
Mikatech не несёт ответственности за использование вышеуказанных услуг, которое может быть признано незаконным.