Можно ли однозначно идентифицировать отдельный MCU (для целей лицензирования) (MAC-адрес недоступен)
Меня просят улучшить программу установки прошивки для MCU (в частности, Freescale MC9S12E64 - хотя я не знаю, имеет ли это значение).
Целью расширенной установки является ограничение количества раз, когда можно установить прошивку. Похоже, что лучший способ сделать это - однозначно определить конкретный MCU, используемый при установке прошивки, чтобы отслеживать центральную базу данных.
Если бы MCU имел MAC-адрес, это казалось бы возможным. К сожалению, эти MCU не имеют сетевого интерфейса и, следовательно, не имеют MAC-адреса. Просматривая руководство для MCU, отмеченное выше, я не могу найти указание уникального идентификатора для MCU.
Мой вопрос: имеют ли MCU, как правило, связанные с ними уникальные идентификаторы - аналог MAC-адреса - которые могут быть получены программным обеспечением, когда микропрограмма записывается на эти устройства?
3 ответа
Некоторые делают, некоторые нет, это не дано для всех устройств от всех производителей.
Одним из решений является программирование вашего собственного уникального идентификатора в любое энергонезависимое хранилище, доступное на производстве. Другим методом может быть включение устройства, такого как последовательная память Ramtron F-RAM, которая обеспечивает уникальный серийный номер, а также энергонезависимую память. Многие (возможно, более дешевые) последовательные EEPROM-устройства также содержат уникальный идентификатор или MAC-адрес ( пример)
Не многие это делают, так как производитель испытывает такую боль - хотя, как отмечалось в комментариях, он становится все более популярным среди новых деталей на базе Cortex- боль должна стоить того!
Вы можете добавить внешнее устройство, такое как чип серийного номера Dallas/Maxim Onewire. Конечно, ничто не мешает вашим пользователям изменять доску, чтобы они все сообщали один и тот же идентификатор, чтобы они могли установить его несколько раз...
Или запрограммируйте свой собственный идентификатор во флэш-память при изготовлении устройств и заблокируйте устройство, чтобы его нельзя было (легко) изменить через интерфейс отладки.
HCS12 не имеет такой встроенной функции. Однако обратите внимание, что у него есть один регистр PARTID для "какого производного S12 я, какой силиконовой маски?"
Вам нужно будет либо написать свой собственный алгоритм программирования флэш-памяти, который отслеживает количество операций записи внутри системы, хотя в этом случае вы должны изменить программу. К сожалению, вы используете E64, который не только не имеет подходящей встроенной EEPROM, но также имеет только 1 флэш-банк. Это означает, что код, записывающий этот "внутренний серийный номер", должен будет выполняться из ОЗУ. Для этого на сайте Freescale есть примечание к приложению.