Защитите модели, чтобы скрыть содержимое

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

Когда вы защищаете модель, можно позволить пользователю защищенной модели:

  • Откройте веб-представление модели только для чтения, включая содержимое модели и параметры блоков.

  • Симулируйте модель в Accelerator (по умолчанию), Rapid Accelerator и режимы normal mode.

  • Сгенерируйте код для модели, которая включает в себя защищенную модель.

  • Сгенерируйте HDL-код для модели, которая включает в себя защищенную модель. Чтобы узнать о создании защищенных моделей с поддержкой генерации HDL-кода, смотрите Создание Защищенных Моделей Для Сокрытия Содержимого и Генерация HDL-Кода (HDL Coder).

  • Сгенерируйте код для защищенной модели через автономный интерфейс, если у вас есть Embedded Coder® и укажите основанный на ERT системный целевой файл для модели.

Вы можете опционально защитить паролем каждую опцию. Если вы выбираете защиту паролем для одного из следующих опций, программное обеспечение защищает вспомогательные файлы с помощью AES-256 шифрования.

Когда вы создаете защищенную модель:

  • Simulink® создает и сохраняет защищенную версию модели в файле с таким же именем, как и исходная модель, с .slxp расширение.

  • Исходный файл модели с .slx расширение, не меняется. Если вы защищаете модель через Model блок, этот Model блок не меняется.

  • Кроме того, Simulink создает архив проекта (.mlproj), который содержит защищенную модель, модель тестовой обвязки для защищенной модели и дополнительные вспомогательные файлы.

Чтобы создать защищенную модель из модели-ссылки, выберите Model блок, который ссылается на модель, затем используйте одну из следующих опций:

  • На вкладке Model Block Simulink Toolstrip нажмите кнопку Protect.

  • На вкладке Панели инструментов C Code Simulink нажмите кнопку Share стрелы, а затем выберите Generate Protected Model From Selected Model Block.

Чтобы создать защищенную модель из текущей модели, используйте одну из следующих опций:

  • На вкладке Панели инструментов Simulation Simulink нажмите кнопку Save стрелы, а затем выберите Protected Model.

  • На вкладке Панели инструментов C Code Simulink нажмите кнопку Share стрелы, а затем выберите Generate Protected Model.

Чтобы программно создать защищенную модель, используйте Simulink.ModelReference.protect функция.

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

В этом примере показано, как создать защищенную модель из модели-ссылки для просмотра, симуляции или генерации кода только для чтения.

Подготовка родительской модели

Сконфигурируйте блоки Model в родительской модели, чтобы ссылаться на исходную модель-ссылку. Этот шаг препятствует тому, чтобы блоки Model становились защищенными ссылками при создании защищенной модели.

  1. Откройте родительскую модель, которая ссылается на модель, которую вы хотите защитить. В данном примере откройте модель sldemo_mdlref_basic.

  2. Чтобы запустить рабочий процесс, создайте локальную копию модели sldemo_mdlref_counter что вы хотите защитить. Затем можно создать локальную копию родительской модели sldemo_mdlref_basic. Необходимо сохранить родительскую модель в той же папке, что и ссылочную модель.

  3. Откройте sldemo_mdlref_basic модель, которую вы сохраняли локально. Убедитесь, что Model заблокирован CounterA, CounterB, и CounterC ссылка на sldemo_mdlref_counter модель, которую вы сохраняли локально.

  4. Для каждого блока Model откройте диалоговое окно Параметров блоков и задайте расширение .slx в поле Model name. Когда и модель, и защищенная модель существуют в одной папке, .slxp имеет приоритет над .slx. Если вы не задаете расширение, то исходный Model блок в модели ссылается на защищенную модель вместо исходной модели. Нажмите OK.

Защита ссылочных Моделей

  1. Щелкните любой из трех блоков Model. На вкладке Model Block Simulink Toolstrip нажмите Protect.

  2. В диалоговом окне Создать защищенную модель (Create Protected Model) установите флажки Simulate и Use generated code. Эти опции позволяют защищенному пользователю модели моделировать и генерировать код для модели, которая ссылается на защищенную модель. Если вы хотите защитить паролем функциональность защищенной модели, введите пароль не менее чем с четырьмя символами. Каждая опция может иметь уникальный пароль.

  3. Если у вас есть Embedded Coder и вы задаете системный целевой файл на основе ERT (для примера, ert.tlc) для модели Code interface поле отображается.

    В этом примере sldemo_mdlref_basic не задает системный целевой файл на основе ERT, поэтому опции Code interface недоступны в диалоговом окне Создать защищенную модель (Create Protected Model).

    В раскрывающемся списке Code interface выберите одну из следующих опций:

    • Model reference - Задает доступ к коду через интерфейс ссылочного кода модели, который позволяет использовать защищенную модель в иерархии моделей-ссылок. Пользователи защищенной модели могут сгенерировать код из родительской модели, которая содержит защищенную модель. Пользователи могут запустить Model заблокировать SIL/PIL симуляции с защищенной моделью.

    • Top model - Задает доступ к коду через автономный интерфейс. Пользователи защищенной модели могут запускать Model блокировать SIL/PIL симуляции с защищенной моделью.

  4. Из списка Content type выберите Obfuscated source code скрыть назначение и логику исходного кода защищенной модели. Дополнительные сведения об опциях защиты модели см. в разделе Тип содержимого.

  5. Если у вас есть HDL Coder™, можно установить флажок Use generated HDL code, чтобы сгенерировать HDL-код для модели, которая ссылается на защищенную модель. Если вы хотите защитить паролем эту функциональность защищенной модели, необходимо задать минимум восемь символов. Вы не можете запутать исходный код HDL для защищенной модели.

    В этом примере ссылка на модель sldemo_mdlref_counter использует double типы данных. На вкладке HDL Code Generation > Floating Point установите Library Native Floating Point и Latency Strategy к ZERO. Смотрите также Создание Защищенных Моделей Для Сокрытия Содержимого и Генерации HDL-Кода (HDL Coder).

  6. В Destination folder окне укажите путь к папке для защищенной модели. Значением по умолчанию является текущая рабочая папка.

  7. Чтобы автоматически собирать, создавать и упаковать вспомогательные файлы с помощью защищенной модели, установите Contents равным Protected Model (.slxp) and dependencies in a project.

    Примечание

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

  8. Установка значения Contents Protected Model (.slxp) and dependencies in a project устанавливает флажок Create harness model for protected model. Модель тестовой обвязки включена в проект и обеспечивает изолированное окружение для блока Model, который ссылается на защищенную модель.

  9. Чтобы дополнительно настроить вашу защищенную модель, вы можете:

  10. Нажмите Create.

    Архив проекта (.mlproj), который содержит защищенную модель, модель тестовой обвязки и вспомогательные файлы, появляется в указанной целевой папке. Чтобы протестировать защищенную модель, извлеките содержимое архива проекта, дважды щелкнув его в браузере Текущей папки и указав целевую папку. Также щелкните правой кнопкой мыши архив проекта и выберите Extract Here. Проект открывается, и извлеченные файлы находятся в новой папке, названной в честь архива проекта.

  11. Когда вы создаете защищенную модель из Редактор, отчет защищенной модели генерируется и включается как часть защищенной модели. В данном примере, чтобы просмотреть отчет о защищенной модели, дважды кликните защищенную модель или щелкните правой кнопкой значок защищенной модели на блоке в модели тестовой обвязки и выберите Display Report.

    Отчет содержит:

    • A Summary, включая следующие таблицы:

      • Environment, обеспечивая версию Simulink и другие версии продукта и платформу, используемую для создания защищенной модели.

      • Supported functionality, создание отчетов On, Off, или On with password protection для каждой возможной функциональности, которую поддерживает защищенная модель. Если вы конфигурируете свою защищенную модель для нескольких целевых объектов, эта таблица включает список поддерживаемых целевых объектов.

    • Interface Report, включая информацию интерфейса модели, такую как входные и выходные спецификации, экспортированная информация о функции, параметры интерфейса и хранилища данных.

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

  12. Можно протестировать защищенную модель, чтобы сравнить ее с исходной моделью. Для получения дополнительной информации см. «Тестирование защищенных моделей».

  13. Чтобы использовать защищенную модель в иерархии модели, ссылайтесь на нее через Model блок, такой как включенный в модель тестовой обвязки. Значение Simulation mode для блоков Model, которые ссылаются на защищенную модель Accelerator. Вы не можете изменить режим. Для получения дополнительной информации смотрите Ссылки Защищенные Модели от Третьих Сторон.

Защищенные требования и ограничения модели

Когда вы создаете защищенную модель, примите во внимание следующие требования:

  • Для создания защищенной модели необходимо иметь лицензию Simulink Coder™ или HDL Coder.

  • Модель должна быть доступна в MATLAB® путь.

  • Модель не может иметь несохраненных изменений.

  • Модель не может использовать неинстрированную S-функцию прямо или косвенно.

  • Модель использует строение, которая активна во время защиты. Вы не можете изменить строение защищенной модели.

  • Если модель содержит варианты, защищенная модель включает только вариант, который активен во время защиты.

  • Процесс защиты модели не сохраняет коллбэки. Для получения дополнительной информации о создании коллбэков для использования с защищенной моделью, смотрите Задать коллбэки для защищенных моделей

  • Не переименовывайте защищенную модель или измените ее суффикс. Если вы делаете это, модель является непригодной, пока вы не восстановите ее исходное имя и суффикс.

  • Используйте уникальное имя для модели и для моделей, на которые она ссылается. Если защищенная модель ссылается на модель, которая разделяет имя с другой защищенной моделью или с другой моделью в иерархии другой защищенной модели, существуют ограничения для использования защищенных моделей. Если в верхней части моделей-ссылок две защищенные модели, которые имеют такой конфликт по совпадению имен, вы не можете защитить модель верхней части, сгенерировать код для модели верхней части или симулировать модель верхней части в цикле (SIL), процессоре в цикле (PIL) или быстрых режимах Accelerator.

Модель должна также соответствовать требованиям, перечисленным в Модель-ссылку Requirements and Limitations.

Требования и ограничения генерации кода

Чтобы создать защищенную модель, которая поддерживает генерацию кода, ваша модель должна соответствовать следующим требованиям:

  • Защищенная модель должна использовать режимы normal, accelerator, software-in-the-loop (SIL) или processor-in-the-loop (PIL) и один целевой объект.

  • Не устанавливайте флажок Code Generation > Verification > Measure function execution time. Если при защите модели выбрана эта опция, программа отключает параметр и отображает предупреждение.

  • Защищенные ссылочные модели должны поддерживать генерацию кода без защиты паролем.

  • Защищенная модель должна быть совместима с Content type каждой защищенной модели-ссылки. В этой таблице приведены сведения о совместимости.

    Совместимость типов содержимого генерации кода

    Защищенный тип содержимого родительской моделиСовместимые защищенные типы Модели содержимого
    Binaries
    • Binaries

    • Obfuscated source code

    Binaries с 'ObfuscateCode' установлено на 'false'
    • Binaries

    • Binaries с 'ObfuscateCode' установлено на 'false'

    • Obfuscated source code

    • Readable source code

    Obfuscated source code
    • Obfuscated source code

    Readable source code
    • Obfuscated source code

    • Readable source code

    Когда Content type защищенной родительской модели и защищенных ссылочных моделей не совпадают, генерация кода применяет Content type, который обеспечивает более высокий уровень защиты. Для примера защищенный родительской моделью набор для Binaries генерирует Binaries для защищенных ссылочных моделей, для которых задано значение Obfuscated source code. Защищённая родительская модель для Readable source code генерирует Obfuscated source code для защищенных ссылочных моделей, для которых задано значение Obfuscated source code.

Чтобы избежать ошибки во время генерации кода модели, которая включает защищенную модель:

  • Имя защищенной модели должно быть уникальным из других имен модели в той же иерархии моделей-ссылок.

  • Интерфейсы должны совпадать.

  • Параметры должны быть совместимыми.

Вложенные требования и ограничения защищенной модели

Если на вашу защищенную модель ссылается другая модель, которая защищена, ваша модель должна:

  • Поддержка режима Accelerator. Необходимо выбрать Simulate в диалоговом окне Create Protected Model или задать 'Mode' на 'Accelerator' или 'CodeGeneration' при помощи Simulink.ModelReference.protect функция.

  • Используйте 'CodeInterface' по умолчанию настройка: 'Model reference'.

  • Не используйте защиту паролем для симуляции.

  • Нет коллбэков.

  • Поддержка операций, поддерживаемых защищенной родительской моделью без парольной защиты.

  • Используйте Content type, которая совместима с Content type защищенной родительской модели, если защищенная родительская модель будет поддерживать генерацию кода. Список совместимых опций Content type см. в таблице в предыдущем разделе.

  • Не ссылаться на модель, которая разделяет имя с другой защищенной моделью или с другой моделью в иерархии другой защищенной модели.

Если модель, которую вы хотите защитить, ссылается на защищенную модель, защищенная модель-ссылка должна соответствовать предыдущим требованиям.

Примечание

Защищенная модель, которую вы создаете с выбранной опцией Use generated HDL code, позволяет шифровать и поддержка симуляцию и генерацию HDL-кода из модели, которая ссылается на защищенную модель. Вы не можете запутать исходный код HDL, иметь коллбэки или использовать вложенные защищенные модели с этой опцией. Для получения дополнительной информации об ограничениях генерации HDL-кода смотрите Защищенные ограничения модели для генерации HDL-кода (HDL Coder).

Похожие темы