Когда это необходимо, чтобы совместно использовать модель с третьим лицом, не показывая интеллектуальную собственность, защитите модель. Защита модели скрывает детали реализации исходной модели путем компиляции его в модель, на которую ссылаются. Защищенная модель включает производные файлы, чтобы поддержать дополнительные функциональности, которые вы задаете.
Когда вы защищаете модель, можно позволить пользователю защищенной модели к:
Откройте веб-представление только для чтения модели, включая содержимое модели и параметры блоков.
Симулируйте модель в акселераторе (значение по умолчанию), быстрый акселератор и режимы normal mode.
Сгенерируйте код для модели, которая включает защищенную модель.
Сгенерируйте HDL-код для модели, которая включает защищенную модель.
Сгенерируйте код для защищенной модели через автономный интерфейс, если у вас есть Embedded Coder® и задайте основанный на ERT системный конечный файл для модели.
Вы можете опционально, пароль - защищает каждую опцию. Если вы выбирать-защита-паролем для одной из этих опций, программное обеспечение защищает вспомогательные файлы при помощи шифрования AES-256.
Когда вы создаете защищенную модель:
Simulink® создает и хранит защищенную версию модели в файле, который имеет то же имя как исходная модель с .slxp
расширение.
Исходный файл модели, с .slx
расширение, не изменяется. Если вы защищаете модель через блок Model, который не изменяет блок Model.
Опционально, Simulink создает архив проекта (.mlproj
) это содержит защищенную модель, модель тестовой обвязки для защищенной модели и дополнительные вспомогательные файлы.
В этом примере показано, как создать защищенную модель из модели, на которую ссылаются, для просмотра только для чтения, симуляции или генерации кода.
Сконфигурируйте блоки Model в родительской модели, чтобы обратиться к исходной модели, на которую ссылаются. Этот шаг препятствует тому, чтобы блоки Model стали защищенными ссылками, когда вы создаете защищенную модель.
Откройте родительскую модель, которая ссылается на модель, которую вы хотите защитить. В данном примере откройте модель sldemo_mdlref_basic
.
Чтобы запустить рабочий процесс, создайте локальную копию модели sldemo_mdlref_counter
то, что вы хотите защитить. Можно затем создать локальную копию родительской модели sldemo_mdlref_basic
. Необходимо сохранить родительскую модель в той же папке как модель, на которую ссылаются.
Откройте sldemo_mdlref_basic
модель, что вы сохраненный локально. Убедитесь, что Model блокирует CounterA
, CounterB
, и CounterC
сошлитесь на sldemo_mdlref_counter
модель, что вы сохраненный локально.
Для каждого блока Model откройте диалоговое окно Block Parameters и задайте дополнительный .slx
в поле Model name. Когда и модель и защищенная модель существуют в той же папке, .slxp
более приоритетен по сравнению с .slx
. Если вы не задаете расширение, то исходный блок Model в модели обращается к защищенной модели вместо исходной модели. Нажмите OK.
В sldemo_mdlref_basic
модель, кликните по любому из трех блоков Model. На вкладке Simulink Toolstrip Model Block нажмите Protect.
В диалоговом окне Create Protected Model установите флажки Simulate и Use generated code. Эти опции позволяют защищенному пользователю модели симулировать и генерировать код для модели, которая ссылается на защищенную модель. Если вы хотите к паролю - защищают функциональность защищенной модели, вводят пароль с минимумом четырех символов. Каждая опция может иметь уникальный пароль.
Если вы имеете Embedded Coder и задаете основанный на ERT системный конечный файл (например, ert.tlc
) для модели отображается поле Code interface.
В этом примере, sldemo_mdlref_basic
не задает основанный на ERT системный конечный файл, поэтому опции Code interface не доступны в диалоговом окне Create Protected Model.
От Code interface выпадающий список выберите одну из этих опций:
Model reference
— Задает доступ кода через интерфейс модели - ссылки кода, который позволяет использование защищенной модели в иерархии модели - ссылки. Пользователи защищенной модели могут сгенерировать код от родительской модели, которая содержит защищенную модель. Пользователи могут запустить SIL/PIL симуляции блока Model с защищенной моделью.
Top model
— Задает доступ кода через автономный интерфейс. Пользователи защищенной модели могут запустить SIL/PIL симуляции блока Model с защищенной моделью.
Из списка Content type выберите Obfuscated source code
скрыть цель исходного кода и логику защищенной модели. Для получения дополнительной информации об опциях защиты модели смотрите Тип контента.
В поле Destination folder задайте путь к папке для защищенной модели. Значением по умолчанию является текущая рабочая папка.
Чтобы автоматически собраться, создайте, и вспомогательные файлы пакета с защищенной моделью, установите Contents на Protected Model (.slxp) and dependencies in a project
.
Примечание
Прежде, чем совместно использовать проект, проверяйте, содержит ли проект необходимые вспомогательные файлы. Если вспомогательные файлы отсутствуют, симулирование или генерирование кода для связанной модели тестовой обвязки могут помочь идентифицировать их. Добавьте недостающие зависимости в проект и обновите модель тестовой обвязки по мере необходимости.
Установка Contents к Protected Model (.slxp) and dependencies in a project
устанавливает флажок Create harness model for protected model. Модель тестовой обвязки включена в проект и обеспечивает изолированную среду для блока Model, который ссылается на защищенную модель.
Чтобы далее настроить вашу защищенную модель, вы можете:
Задайте пользовательский obfuscator для запутанности кода. Смотрите Задают Пользовательский Obfuscators для Защищенных Моделей.
Задайте несколько целей генерации кода. Смотрите Создают Защищенные Модели с Несколькими Целями.
Задайте коллбэки для защищенной модели. Смотрите Задают Коллбэки для Защищенных Моделей.
Нажмите Create.
Архив проекта (.mlproj
) это содержит защищенную модель, модель тестовой обвязки, и вспомогательные файлы появляются в заданной папке назначения. Чтобы протестировать защищенную модель, извлеките содержимое архива проекта путем двойного клика по нему в Браузере текущей папки и определения папки назначения. В качестве альтернативы щелкните правой кнопкой по проекту, архивируют и нажимают Extract Here. Проект открывается, и извлеченные файлы находятся в новой папке, названной в честь архива проекта.
Когда вы создаете защищенную модель из Редактора Simulink, защищенный отчет модели сгенерирован и включен как часть защищенной модели. В данном примере, чтобы просмотреть защищенный отчет модели, дважды кликните защищенную модель или щелкните правой кнопкой по значку значка защищенной модели по блоку в модели тестовой обвязки и выберите Display Report.
Отчет содержит:
Summary, включая следующие таблицы:
Environment, обеспечивая версию Simulink и другие версии продукта и платформу раньше создавал защищенную модель.
Supported functionality, сообщая о On
off
, или On with password protection
для каждой возможной функциональности, которую поддерживает защищенная модель. Если вы конфигурируете свою защищенную модель для нескольких целей, эта таблица включает список поддерживаемых целей.
Interface Report, включая информацию об интерфейсе модели, такую как технические требования ввода и вывода, экспортировал функциональную информацию, интерфейсные параметры и хранилища данных.
Отчет не содержит другие разделы, которые появляются в отчете генерации кода для незащищенных моделей, таких как метрический отчет кода и отчет трассируемости, потому что эти отчеты включают в себя больше информации о проекте модели.
Можно протестировать защищенную модель, чтобы сравнить его с исходной моделью. Для получения дополнительной информации смотрите Тест Защищенные Модели.
Чтобы использовать защищенную модель в иерархии модели, сошлитесь на него через блок Model, такой как тот, включенный в модель тестовой обвязки. Simulation mode для блоков Model, которые ссылаются на защищенную модель, установлен в Accelerator
. Вы не можете изменить режим. Для получения дополнительной информации см. Ссылочные Защищенные Модели от Третьих лиц.
Чтобы создать защищенную модель из текущей модели, используйте одну из этих опций:
На вкладке Simulink Toolstrip Simulation кликните по стреле кнопки Save, затем выберите Protected Model.
На вкладке Simulink Toolstrip C Code кликните по стреле кнопки Share, затем выберите Generate Protected Model.
Чтобы программно создать защищенную модель, используйте Simulink.ModelReference.protect
функция.
Когда вы создаете защищенную модель, рассматриваете эти после требований:
У вас должны быть Simulink Coder™ или лицензия HDL Coder™, чтобы создать защищенную модель.
Модель должна быть доступной на MATLAB® path.
Модель не может иметь несохраненных изменений.
Модель использует настройку, которая активна во время защиты. Вы не можете изменить настройку защищенной модели.
Если модель содержит варианты, защищенная модель включает только вариант, который активен во время защиты.
Процесс защиты модели не сохраняет коллбэки. Для получения дополнительной информации о создании коллбэков для использования с защищенной моделью смотрите, Задают Коллбэки для Защищенных Моделей
Не переименовывайте защищенную модель или изменяйте ее суффикс. Если вы делаете так, модель неприменима, пока вы не восстанавливаете ее настоящее имя и суффикс.
Используйте уникальное имя для модели и для моделей, на которые она ссылается. Если защищенные модели - ссылки модель, которая совместно использует имя или с различной защищенной моделью или с различной моделью в иерархии другой защищенной модели, существует ограничения для использования защищенных моделей. Если топ-модель ссылается на две защищенных модели, которые имеют такой конфликт по совпадению имен, вы не можете защитить топ-модель, сгенерировать код для топ-модели или симулировать топ-модель в программном обеспечении в цикле (SIL), процессор в цикле (PIL) или быстрые режимы Accelerator.
Если ваша модель включает невстроенную S-функцию, используйте уникальное имя для.MEX файла. Если существует конфликт по совпадению имен с различным.MEX файлом на пути MATLAB, вы не можете симулировать защищенную модель.
Модель должна также удовлетворить требования, перечисленные в Требованиях Модели - ссылки и Ограничениях.
Чтобы создать защищенную модель, которая поддерживает генерацию кода, ваша модель должна удовлетворить эти требования:
Защищенная модель должна использовать нормальный, акселератор, программное обеспечение в цикле (SIL) или процессор в режимах (PIL) цикла и единой цели.
Защищенная модель не должна включать невстроенные S-функции.
Не устанавливайте флажок Code Generation > Verification > Measure function execution time. Если вам выбрали эту опцию, когда вы защищаете свою модель, программное обеспечение выключает параметр и выводит предупреждение.
Защищенные модели, на которые ссылаются, должны поддержать генерацию кода без защиты паролем.
Защищенная модель должна быть совместима с Content type каждой защищенной модели, на которую ссылаются. Эта таблица предоставляет информацию о совместимости.
Совместимость типа контента генерации кода
Защищенный тип контента родительской модели | Совместимые защищенные типы контента модели, на которые ссылаются, |
---|---|
Binaries |
|
Binaries с 'ObfuscateCode' установите на 'false' |
|
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).