Модели Для Proteus
Наверное многие слышали или даже использовали программу Proteus. Для тех кто не знает, это пакет программ для автоматизированного проектирования (САПР) электронных схем.
Разработан компанией Labcenter Electronics (Великобритания). (САПР) Он состоит из двух составных частей: ISIS — программы синтеза и моделирования электронных схем (симулятор) и ARES — программы разработки печатных плат. О первой (ISIS) далее пойдет речь. Эта программа позволяет 'нарисовав схему' проверить ее работу без сборки устройства. Каждый электронный компонент в симуляторе является моделью.
Я где-то когда-то скачал библиотеку дополнительных моделей 3d для Proteus'а. В один большой ZIP. Никак не могу считать значение потенциометра в Proteus, каша какаято с портами получается. Модели Proteus VSM. Ограничения модели для Mega 8/16/32; Ограничения модели для Mega 64/128.
Но не всегда можно найти требуемую модель или ее аналог. В основном это касается не очень распространенных электронных компонентов или компонентов нашего (времен СССР) производства. В этом случае, можно создать модель самому. Как создать модель для Proteus и что она из себя представляет?
О создании моделей (компонентов) для протеуса в интернете можно найти несколько статей. Разработку модели условно можно разделить на два этапа - рисование ее графической части, отображаемой на экране и создание программного кода. Но сначала определимся модель с каким функционалом будем создавать. Для примера, создадим цифровую модель (существуют и аналоговые), являющуюся гибридом инвертирующего элемента (логическое состояние выхода противоположно входному) и генератора с периодом - 1 секунда и скажностью 2. Разработка графической части модели для протеуса. Здесь будут кратко показаны этапы создания 'внешнего вида' модели Proteus.
Более подробно все рассмотрено Создаем новый проект в протеусе (обычно автоматически создается при запуске). Потом на панели инструментов в левой части окна, нажимаем на кнопку с изображением зеленного квадратика.
После чего переведя указатель мышки на рабочее поле и нажав на левую кнопку, рисуем квадрат или прямоугольник, который будет основой изображения нашей модели. Затем добавим 'украшательства' (не влияют на поведение модели и могут отсутствовать). Добавим линию (необязательно). И букву G, обозначив что это генератор (необязательно).
Теперь добавим выводы к модели, с помощью которых она будет 'общаться' с остальной схемой. Вывод с обозначением инвертирования (маленький кружочек между у вывода) только для обозначения данного факта. Будет сигнал проинвертирован или нет, зависит от программного кода модели. На скрине можно увидеть что выводы пронумерованы и им присвоены имена, но при их добавлении этого нет.
Чтобы добавить эту информацию, нужно дважды кликнуть лавой кнопкой мышки по выводу и в окне задать данные (имя, номер и направление вывода, вход или выход). Учите что имя используется для идентификации вывода в коде модели и если задать имена отличающиеся от тех что на скриншоте, понадобится вносить изменения в код модели. Выводы слева необходимо настроить как входы, а справа, как выходы. Теперь добавим описание модели. Create model for Proteus Код скрипта. Разработка программной части модели для протеуса. Для создания программного кода библиотеки и компиляции в DLL, настоятельно рекомендуют использовать MS VS (Microsoft Visual Studio) C 5.0 и выше.
Судя по информации в интернете, даже другой популярный у нас компилятор Borland C Builder не подходит для этих целей, т. Не совместим по ряду параметров, например, таких как структура объектов. Но если использовать VS C, то этот материал принципиально не будет отличаться от уже имеющегося в интернете. Моей задачей является не только разработка примера модели, но и поиск альтернативного инструмента (компилятора) совместимого с VS C.
Причем возьмем язык программирования и близко не похожий на C - бейсик. Возможно многие подумали про VisualBasic, который создан фирмой Microsoft и по идее должен быть совместим (фирма же одна и та же). Но на деле, все немного не так. VB6 и подобные ему, вообще не умеют создавать стандартные DLL, а только ActiveX DLL, что не одно и тоже. VB.NET так же не создает стандартные DLL. По этой причине был выбран бейсик фирмы - PureBasic.
Да, в нем тоже есть некоторая несовместимость с классами VS C, но ее не сложно преодолеть. Основная проблема в том, что при вызове методов класса, используется соглашение stdcall, а не thiscall как в VS C, но это довольно просто преодолеть. Воспользоваться возможностями ассемблера FASM (который использован в процессе компиляции исходного текста), применив 'хитрый', макрос который во время компиляции (из ассемблера в объектный файл) изменяет одну ассемблерную инструкцию (PUSH EAX заменяет на MOV ECX, EAX) в вызове метода объекта и в итоге, все вызовы методов станут не stdcall, а thiscall. Причем подмена настолько изящная, что IDA Pro заявляет что вызов thiscall. Даже при визуальном анализе дизассемблированного кода, виден вызов thiscall, а от stdcall и следа не остается.
ProcedureCDLL createdsimmodel(device.s,.ils.ILICENCESERVER) Protected.Result=0 If.ils Authorize($80808081).Result=ModelNEW EndIf ProcedureReturn.Result EndProcedure ProcedureCDLL deletedsimmodel(.model.IDSIMMODEL) If.model FreeMemory(.model) EndIf EndProcedure Строка ProcedureCDLL означает что процедура экспортируется из DLL и используется соглашение вызова cdecl. Первая процедура вызывается при создании модели, а вторая - при ее удалении. В процедуру createdsimmodel через аргументы передается название устройства которое нужно создать и указатель на объект сервера лицензирования. Далее вызывается один из методов этого объекта. Почему ему передается именно шестнадцатеричное число 80808081, я не знаю. Нашел этот код в интернете и он работает.
Если лицензирование прошло успешно, то вызывается процедура ModelNEW, создающая новый объект устройства, типа IDSIMMODEL, указатель на который передается протеусу. Функция deletedsimmodel вызывается при удалении объекта, типа IDSIMMODEL. Она должна очистить память и освободить ресурсы (если это требуется) занимаемые объектом, что собственно и делает (освобождает память) функция FreeMemory. Теперь рассмотрим создание объекта, с учетом того, что PureBasic по сути объектно ориентированное программирование официально не поддерживает.
Необходимо создать объект типа IDSIMMODEL, который в формате PureBasic, в виде интерфейса (абстрактного класса) выглядит таким образом.
Proteus- это качественная система схемотехнического создания моделей. В основу положены виртуальные модели электронных элементов.
Основная особенность данной системы- возможность запрограммировать работу различных программных устройств, например, микропроцессоров и контроллеров, и тому подобные устройства. Дополнительно в пакет заложена возможность спроектировать и смоделировать печатные платы. Продукт Proteus может симулировать деятельность следующих контроллеров: ARM7, 8051, PIC, AVR, Motorola, Basic Stamp. Библиотека компонентов содержит разнообразные данные справочного характера. Она поддерживает большое количество наиболее популярных процессоров таких как, 8051, PIC, HC11, AVR, ARM7/LPC2000. А также, как дополнительный бонус, программа имеет шестьсот цифровых и аналоговых моделей всевозможных устройств.
Программный продукт PROTEUS отлично сочетается со многими компиляторами и ассемблерами. PROTEUS VSM позволяет строить достаточно качественные модели, и отслеживать весьма непростые устройства, которые могут включать в себя несколько 'МК' от разных семейств в одном аппарате. Инструкция к фотоаппаратом сокол 2.
Но стоит помнить, что каким бы качественным не было моделирование схемы, полученная модель не сможет полностью точно дублировать работу настоящего устройства. При этом, для общего отслеживания алгоритмов устройства, полученной модели, хватает вполне достаточно. PROTEUS обладает обширной библиотекой компонентов, но если отсутствует нужная модель, то её можно воссоздать самостоятельно. А если какой либо компонент нельзя запрограммировать, то можно скачать его SPICE модель на сайте производителя, и добавить в нужный корпус.
Программа PROTEUS включает две основные части: 1. ISIS- графический редактор электронных схем. Предназначен для ввода проектов с последующей имитацией и разработкой разнообразных печатных плат в ARES. После того, как общее устройство пройдёт процесс отладки, можно развести плату в ARES, обладающей поддержкой автоматического размещения и трассировки, по представленной схеме. ARES- графический редактор плат, включающий автотрассировщик ELECTRA, автоматический расстановщик составляющих печатной платы, и качественным управлением библиотек. Возможности программы: COMPIM.
Модели Для Proteus 7
Данный компонент отвечает за коммутацию вашего виртуального устройства с реальным COM- портом вашего персонального компьютера. USBCONN- инструмент для подключения к реальному USB- порту.
Модели Proteus Скачать
Фактически вы можете подключить реальное устройство через USB, и отладить устройство.