РАЗРАБОТКА ЭЛЕКТРОНИКИ НА ЗАКАЗ*АСУ ТП*АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ*НЕСТАНДАРТНОЕ ОБОРУДОВАНИЕ*ОБОРУДОВАНИЕ ДЛЯ ФАСОВКИ И УПАКОВКИ*ТЕХНИЧЕСКАЯ КОНСУЛЬТАЦИЯ*ПРИЦЕП-ПАЛАТКА*ИЗГОТОВЛЕНИЕ ДЕТАЛЕЙ НА ЗАКАЗ*ГАЛЬВАНИЧЕСКИЕ ПОКРЫТИЯ*КИЕВ*
Инженерные
решения

   +38 044 227-97-66 

  +38 067 442-08-41

   +38 050 415-00-37 

ПН-ПТ с 9 до 16 обед с 12 до 13

Разработка программного обеспечения Разработка ПО

        От того, как написано программное обеспечение (ПО) зависит, как будет работать само устройство, его быстродействие, загрузка. Скорость отработки микроконтроллером программного обеспечения, написанного программистами разного уровня, может отличаться в разы. Ниже мы рассмотрим разработку ПО, применительно к микроконтроллерам. Но для создания системы способной, что–либо  контролировать, или чем-либо управлять, к микроконтроллеру необходимо подключить датчики, модули памяти, исполнительные устройства, передающие и принимающие устройства, и прочие электронные компоненты. При «увязке» всех компонентов в систему необходима разработка  ПО, которое  создано исключительно для разрабатываемого устройства или системы.  Мы создадим требуемые Вам устройства или системы, и разработаем ПО для их качественной и быстрой работы.  Звоните! И мы решим Вашу задачу! 

    Для ознакомления.

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

         Программа (программное обеспечение) – это последовательность выполняемых микроконтроллером команд. Каждой команде в памяти  соответствует свое число – код. При включении питания микроконтроллер один за другим считывает эти коды, осуществляет их дешифрацию (определяет, что ему нужно сделать), а затем исполняет одну за другой эти дешифрованные команды. Главная особенность памяти, это то, что занесенные в нее коды, сохраняются неизменными, при отсутствии питания микроконтроллера. Именно программное обеспечение определяет поведение всей системы. Все изменения и модификации программного обеспечения вносятся в микроконтроллер с помощью программатора. Один и тот же микроконтроллер, но с программным обеспечением, написанным под определённую задачу, может применяться в различных системах – для управления котлом теплоснабжения или в устройствах автоматизированной телефонной связи.  В процессе создания программного обеспечения, программист пишет текст программы на компьютере так же, как он пишет любой другой текст. Затем он запускает специальную программу – транслятор. Транслятор – это специальная программа, которая переводит текст, написанный программистом, в машинные коды, то есть в форму, понятную для микроконтроллера.   Написанный программистом текст программы называется исходным  кодом. Код, полученный в результате трансляции, называется результирующим или машинным кодом. Именно этот код записывается в программную память микроконтроллера при помощи программатора.

          Все языки программирования делятся на две группы:

- языки низкого уровня (машиноориентированные);

- языки высокого уровня;

        Язык программирования – это специально разработанный язык, служащий посредником между машиной и человеком. Как и обычный человеческий язык, любой язык программирования имеет свой словарь (набор слов) и правила их написания.

         Главная задача языка – описать последовательность действий, которую должен выполнить Ваш микроконтроллер. В то же время язык должен быть удобен и понятен человеку.

          Типичным примером машиноориетированного языка программирования, является язык Ассемблер. Этот язык максимально приближен к системе команд микроконтроллера. Каждый оператор (команда) этого языка,  это, по сути, словесное название какой-либо конкретной команды машинного кода. В процессе трансляции такая команда просто заменяется кодом операции. Специфика языка Ассемблер состоит еще в том, что набор команд для этого языка напрямую зависит от  системы команд конкретного микроконтроллера. В недавнем прошлом язык Ассемблер был единственным языком программирования для микроконтроллеров. Только он позволял эффективно использовать скудные ресурсы самых первых микроконтроллеров. Однако в настоящее время, когда возможности современных микроконтроллеров значительно выросли, для написания программного обеспечения, в основном  используются языки высокого уровня, такие как Бейсик, СИ,      Эти языки в свое время были разработаны для больших компьютеров. Но сейчас их широко используют для программирования микроконтроллеров. Языки высокого уровня отличаются тем, что они гораздо больше ориентированы на человека. Большинство команд языков высокого уровня не связаны с конкретными командами микроконтроллера.

           Транслятор с языка высокого уровня производит более сложные преобразования, чем транслятор с Ассемблера. Но в результате тоже получается программа в машинных кодах. При этом транслятор использует все ресурсы микроконтроллера по своему усмотрению.

           В каких именно регистрах или ячейках памяти будут храниться  значения, программист не решает. Программа – транслятор  выбирает все это сама. Поэтому задача эффективности алгоритма полученной в результате трансляции программы целиком ложиться на программу – транслятор. В целом, программное обеспечение, написанное на языках высокого уровня, занимает в памяти микроконтроллера объем на 30 - 40%  больший, чем аналогичное программное обеспечение, написанные на языке Ассемблер. И это в лучшем случае, бывает и больше. Однако если микроконтроллер имеет достаточно памяти и запас по быстродействию,  то  увеличение программы – не  проблема. Преимуществом языков высокого уровня является существенное ускорение процесса разработки программы. Для  программирования современных контроллеров не нужен программатор. Все программирование можно сделать по интерфейсу USB или RS232, RS-485. Пишется программа, при помощи компилятора переводится в машинные коды и загружается в микроконтроллер. Существует оптимизирующий компилятор, позволяющий повысить скорость исполнения кода (отработки программного обеспечения микроконтроллером) в несколько раз.

           Поводя черту под сказанным, следует отметить, если необходимо произвести замену неисправного модуля в старой системе, под которую обучен персонал, то для этого,  можно приобретать недорогие микроконтроллеры и разрабатывать программное обеспечение на языке Ассемблер. Все устройство может быть выполнено на контроллерах, и связь между модулями может быть выполнена на языке низкого уровня, в этом случае цена в производстве будет относительно низкой, но возрастает цена и сроки разработки программного обеспечения для такого устройства. Это занимает больше времени, и требует более высокой квалификации программиста, так как ему необходимо знать специфику каждого микроконтроллера. Если же требуется выполнить работы как можно быстрее, и стоимость микроконтроллеров не особенно лимитируется,  то в данном случае, в систему встраивается современный модуль, разработка программного обеспечения, для которого осуществляется  на языке СИ. В остальных случаях необходимо ориентироваться на современные микроконтроллеры и средства разработки. Мы пропагандируем изготовление устройств на современной элементной базе. Это позволяет выполнить устройство с современным программным обеспечением, обслуживание которого, у Вас не вызовет затруднений. Стоимость разработки программного обеспечения, зависит от его сложности, объемов, и соответственно сроков выполнения. Здесь должен быть соблюден баланс между многими факторами, такими, как: размеры устройства, скорость  работы, устойчивость работы, стоимость разработки программного обеспечения, стоимость в производстве и многое другое. Для решения этой задачи необходим комплексный подход, и мы всегда готовы подсказать приемлемое решение, исходя из технического задания и уровня финансирования.   

Мы работаем по отработанной технологии взаимодействия с заказчиком.

 

      Вы звоните нам, описываете задачу так, как Вы её видите. Если принципиально мы можем принять задание в работу, Вы через форму обратной связи, в разделе  «Контакты», отправляете технические условия (ТУ), или техническое задание (ТЗ), или в письменном виде передаете то, что Вы говорили по телефону. Мы оцениваем возможные решения и  примерную стоимость. Сообщаем Вам стоимость решения задачи. Если ориентировочная стоимость и срок разработки программного обеспечения, в принципе Вас устраивают, начинаем официальную часть: подписание договора, согласование технического задания, его утверждение, календарный план выполнения работ ит.д. В некоторых случаях,  когда необходимо обрабатывать большое количество информации, связанной с Вашей задачей (техническое задание, техническая документация), мы оставляем за собой право оговорить стоимость работ по изучению предоставленной Вами информации, и подготовки коммерческого предложения по разработке программного обеспечения. В процессе работы над задачей может возникнуть необходимость в выезде на объект для согласования и уточнения вопросов с заказчиком, поиск дополнительной информации, проведение предварительных исследований. В этом случае, мы также оставляем за собой право оговорить стоимость вышеперечисленных работ.  Если Вам удобно, то связаться с нами, и сделать предварительный запрос, можно через обратную связь в разделе  «КОНТАКТЫ».
   Как правило, неразрешимых технических задач нет, вопрос только в стоимости решения и сроке выполнения работ.