Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Современная электроника 07-2021

Современная электроника 07-2021

Description: 07-2021

Search

Read the Text Version

Реклама

ИНЖЕНЕРНЫЕ РЕШЕНИЯ Бортовые коммуникационные сети автомобиля – Ethernet, SERDES или сразу обе? Это непростой вопрос Алан А. Варгезе (Alan A. Varghese) ных датчиков, задействованных в бес- пилотном вождении. В автомобилях 1960-х годов, таких как \"Хиллман-Хантер\", выпускавшийся фирмой Hillman Motor Car Company из Ковентри, было всего около Многочисленные 50 проводов, общая длина которых в жгутах составляла примерно конкурирующие стандарты 30 метров. Сравните это с современными машинами, имеющими для БКС более 1500 проводов общей длиной около 2400 метров и массой более 45 килограммов. Но это тоже не предел, так как автопроизводители ● Автомобильный Ethernet. Автомо- заявляют, что при внедрении технологий беспилотного вождения масса бильный Ethernet считается заме- проводки подскакивает примерно на 30% по сравнению ной устаревших технологий БКС. с исходной моделью. Итак, нужно сосредоточиться на том, чтобы внутри Большинство автомобилей сегод- автомобиля была только одна коммуникационная сеть, верно? ня оборудовано Ethernet 100BASE-T Ответить на этот вопрос непросто. (100 Мбит/с). Различные производи- тели применяют его в разных целях, Требования к полосе Чтобы лучше понять требования к например, Hyundai – для информа- пропускания будущей БКС пропускной способности, запомните, ционно-развлекательных систем, а что приблизительную скорость переда- Volkswagen – для подключения ADAS. К бортовой коммуникационной сети чи видеопотока можно рассчитать по В 2019 и 2020 гг. стандарт был до- (БКС) предъявляют следующие требо- следующим формулам: полнен более низкими (10 Мбит/с) вания: широкая полоса пропускания, ● Размер кадра = Разрешение × Глуби- и более высокими (гигабитными) малые задержки и высокая надёжность скоростями передачи данных. Разра- при работе в неблагоприятных услови- на цвета ботанная в начале 2020 г. новейшая ях внутри автомобиля. На протяжении ● Скорость передачи данных = Размер версия стандарта с названием 802.3ch многих лет существовало несколько тех- предусматривает скорости передачи нологий, которые использовались в БКС кадра × Частота кадров данных 2,5, 5 и 10 Гбит/с. Кроме то- (рис. 1). К ним относятся аналоговая сеть, Таким образом, для камеры пере- го, в 2020 году новая рабочая группа Controller Area Network (CAN), FlexRay, довой системы помощи водите- IEEE 802.3cy начала разработку физи- Local Interconnect Network (LIN), низ- лю (ADAS), снимающей изображе- ческого уровня автомобильных БКС ковольтная дифференциальная пере- ние 1080p с глубиной цвета 24 бита на 25, 50 и 100 Гбит/с. дача сигналов (LVDS) и система пере- и частотой кадров 30 кадров в секун- дачи мультимедийных данных (MOST). ду, поддерживаемая скорость переда- ● SERDES (ASA). Другой стандарт для чи данных равна: БКС основан на протоколе последо- Но, глядя на приложения следующе- ● Размер кадра = 1920 × 1080 × 24 = вательно-параллельного интерфей- го поколения, мы понимаем, что эти = 49 766 400 бит са (SERDES). Организация Automotive устаревающие технологии не могут ● Скорость передачи данных = SerDes Alliance была основана в поддерживать требования к пропуск- = 49 766 400 × 30 = 1493 Мбит/с 2019 г. компаниями BMW, Broadcom, ной способности. Кроме того, некото- В таблице приведены типичные тре- Continental, Fraunhofer, Marvell и NXP рые из них являются проприетарными бования к пропускной способности с целью стандартизации SERDES. и очень дорогими. канала связи для данных от различ- В настоящее время в неё входят 36 участников. Организация была создана для расширения экосистемы за пределы доступных тогда пропри- етарных решений SERDES, таких как FPD-Link от Texas Instruments, GMSL от Maxim Integrated и Apix от Inova Semiconductor. Новый стандарт обе- спечивает передачу данных со ско- Рис. 1. Бортовые коммуникационные сети в автомобиле Датчик Скорость передачи Видеокамера 500…3500 Мбит/с 50 WWW.SOEL.RU 20…100 Мбит/с Лидар Радар 0,1…15 Мбит/с Ультразвуковой датчик 0,01 Мбит/с СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

Реклама

ИНЖЕНЕРНЫЕ РЕШЕНИЯ ростью от 3,6 до 13 Гбит/с при дли- приложений. Учитывая, что Кирстен сами и генерацией отчётов так же важ- не линии до 15 метров. сыграла ключевую роль в стандарти- но для специалистов по автомобильной ● SERDES (MIPI A-PHY). В ноябре 2020 г. зации автомобильного Ethernet, с её электронике, как и высокие техниче- организация MIPI Alliance выпусти- мнением нельзя не считаться. (Источ- ские характеристики, такие как поло- ла спецификацию A-PHY v1.0 для фи- ник: Automotive SerDes Alliance kick-off, са пропускания, частота выборки и раз- зического уровня автомобильного май 2019, Salt Lake City.) решение сигнала. SERDES. Спецификация разрешает асимметричную передачу данных в Производители автокомплектую- Тестирование передатчика выполня- соединениях типа «точка-точка» или щих, стремящиеся оптимизировать ют в основном с помощью осциллогра- «шлейф» с дополнительной возмож- свои планы совершенствования БКС, фа, чтобы убедиться, что передаваемые ностью подачи питания. Скорость пе- могут принять одну из двух стратегий: сигналы не являются причиной помех, редачи данных равна 16 Гбит/с. Пла- 1. стратегия хеджирования, то есть вне- в то время как тестирование приёмни- нируется увеличение до 48 Гбит/с по ка выполняют для проверки точности нисходящему каналу и до 200 Гбит/с дрение обоих стандартов для БКС до обнаружения входных сигналов. Для по восходящему. Задержка низкая – тех пор, пока требования ADAS для этого используют источники испы- 6 мкс, длина линии достигает 15 м. беспилотного вождения уровней 3–5 тательных сигналов, такие как гене- Основное назначение – соедине- не станут намного яснее. Недостат- раторы сигналов произвольной фор- ние датчиков с процессором сиг- ком такого подхода является то, что мы. Измерения импеданса и обратных налов изображения в электронном для перевода данных между различ- потерь важно выполнять во временно' й блоке управления (ЭБУ) и графиче- ными доменами/зонами могут по- и частотной областях, чтобы обеспечить ского процессора сигналов в ЭБУ с требоваться шлюзы, а это увеличи- надёжную работу системы и диагности- дисплеями. вает как стоимость, так и массу; ку нарушений целостности сигнала. 2. техническая стратегия, т.е. проекти- Сеть на основе Ethernet, рование с учётом потребности в соз- Заключение SERDES или обоих сразу? дании высокоскоростных каналов связи «точка-точка» путём увеличе- Со времён Хиллман Хантер авто- Некоторые автопроизводители ния степени обработки и сжатия дан- мобильная промышленность прошла ных на каждом датчике. Недостатком долгий путь. Переход на беспилотные и поставщики решений с уровнем такого подхода является то, что стои- и «подключённые» автомобили соз- мость комплекта датчиков возрастёт, даёт проблемы, которые необходимо надёжности Tier 1 считают, что пер- а более глубокая обработка потребу- решать с помощью бортовой коммуни- ет отвода тепла. кационной сети. Множество датчиков, вые несколько лет они могут использо- элементов управления и интерфейсов, Тестирование БКС необходимых для ADAS и новых инфор- вать оба стандарта. Однако после этого мационно-развлекательных функций, При тестировании БКС важно про- требуют высокоскоростных соедине- автомобильный Ethernet со скоростью верить производительность передат- ний, и ресурсов традиционных сетей, чика, приёмника и канала. Поскольку таких как CAN, MOST и FlexRay, будет передачи данных до 100 Гбит/с вытес- необходимо проводить сотни тестов, недостаточно. С появлением новых программное обеспечение для автома- стандартов, таких как автомобильный нит все остальные решения. тизированного тестирования на соот- Ethernet и SERDES, появилась возмож- ветствие требованиям спецификаций с ность более быстрой передачи данных и Но Кирстен Матеус (Kirsten Matheus), их интерпретацией, воспроизводимы- удовлетворения потребностей будущих ми результатами, мастерами настройки «подключённых» автомобилей. инженер BMW, имеет несколько иную с удобными графическими интерфей- точку зрения. Она предположила, что SERDES является необходимой и опти- мальной технологией для соединений «точка-точка» датчиков ADAS, которые передают асимметричные данные, в то время как сетевая технология Ethernet подходит для других автомобильных НОВОСТИ МИРА МИШУСТИН ПООБЕЩАЛ и потребителями, которая позволила бы увя- Председатель правительства уточнил, В 2021 ГОДУ НЕ МЕНЬШЕ 10 зать потребности рынка, возможности произво- что на сегодняшний день определено уже «СКВОЗНЫХ КРОСС-ОТРАСЛЕВЫХ дителей и организаций-интеграторов, а также пять проектов, где заказчиками выступа- ПРОЕКТОВ» В ОБЛАСТИ создать правильные инструменты формирова- ют государственные компании. В их числе ния спроса на радиоэлектронную продукцию. «Ростелеком» (магистральное оборудова- ЭЛЕКТРОННОЙ ПРОМЫШЛЕННОСТИ Такая система в России уже отрабатывается. ние сетей связи), а также ВТБ и «Росатом» До конца года в России будет запущено не (аппаратно-программные и вычислительные «На уровне Правительственной комис- комплексы для корпоративных информаци- меньше 10 межотраслевых проектов, направ- сии по цифровому развитию с этого года онных платформ). ленных на развитие электронной промышлен- запущена модель реализации сквозных кросс- ности и внедрение отечественных решений во отраслевых проектов, направленных на разви- «Мы будем масштабировать этот под- всех секторах экономики, сообщил председа- тие производства радиоэлектронной продукции ход, поскольку он позволяет сформиро- тель правительства Михаил Мишустин на сове- в формате полного цикла. По каждому такому вать устойчивый спрос на продукцию на- щании, посвящённом формированию спроса проекту будет якорный потребитель со своим ших микроэлектронных производств», – на российскую радиоэлектронную продукцию. массовым спросом», – отметил Михаил Ми- подчеркнул Михаил Мишустин. шустин. По словам премьер-министра, важно грамот- industry-hunter.com но выстроить цепочку между разработчиками 52 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ОФИЦИАЛЬНЫЙ ДИСТРИБЬЮТОР

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Проектирование схем микроэлектронных устройств в Proteus с использованием внешней памяти. Часть 2 Татьяна Колесникова ([email protected]) ции которого выполнено с помощью CodeVisionAVR. В спроектированном В настоящее время большинство электронных устройств проектируют устройстве карту применяют для рас- с применением микроконтроллеров. Однако зачастую для реализации ширения памяти и создания интер- задуманного устройства памяти микроконтроллера может фейса обмена информацией через не хватить. В таких случаях выполняют её расширение, например, шину SPI, которая присутствует во мно- за счёт карты памяти. Для проверки работоспособности схемы удобно гих микроконтроллерах, в частности, применить программу-эмулятор Proteus, чья библиотека содержит и в микроконтроллерах AVR семейства микроконтроллеры с возможностью их программирования, карту ММС, Mega. Вывод считанной с карты памяти а также другие цифровые компоненты и устройства вывода информации. информации выполним на экран терми- нала, алфавитно-цифрового и графиче- В устройствах на микроконтроллерах ты с файлами и функции графической ского дисплеев. Создание схемы в редак- для хранения больших объёмов инфор- библиотеки CodeVisionAVR. Применим торе ISIS (см. рис. 1а) было рассмотрено мации применяют внешнюю память. их для управления файловой структу- в [1], поэтому подробно остановимся Если требуется хранить единицы мега- рой карты (переименования, созда- только на подключении к микрокон- байт, то подойдут микросхемы после- ния, удаления файлов и папок на кар- троллеру ATmega32 графического дис- довательной Flash-памяти. Для больших те), записи и чтения фиксированного плея (см. рис. 1б), в качестве которого объёмов (десятки и сотни мегабайт) числа байт или всей текстовой или гра- применим микросхему AMPIRE128X64 используют карты памяти. В этой ста- фической информации из размещённо- с разрешением экрана 128×64 пикселя. тье речь пойдёт о подключении внеш- го во внешней памяти файла и их выво- Микросхема работает под управлением ней памяти ММС (карты MultiMedia да на дисплей или терминал в эмуляторе контроллера KS0108, который прини- Card) к микроконтроллеру и её управ- электронных схем Proteus. мает и обрабатывает команды управле- лении программным способом. Сначала ния и выводит соответствующую графи- мы соберём схему на основе микрокон- Проектирование схемы ку на дисплей. Контроллер KS0108 не троллера ATmega32, подключим к нему электрической принципиальной имеет своего знакогенератора. В нашем периферийные устройства (графиче- в Proteus примере его функции (вывод текста и ский и алфавитно-цифровой дисплей, графики), а также управление микро- виртуальный терминал) для вывода счи- Рассмотрим работу с картой памяти схемой выполнит программа микро- танной с карты информации, создадим в Proteus на примере устройства обме- контроллера. интерфейс обмена данными через шину на информацией, работающего под SPI. Затем разберём функции для рабо- управлением микроконтроллера AVR, Выбор компонентов из базы дан- написание программы инициализа- ных для последующего их размеще- аб Рис. 1. Сопряжение в рабочей области редактора ISIS программы Proteus микроконтроллера ATmega32 с картой памяти и устройствами вывода информации: алфавитно-цифровым дисплеем LM044L и терминалом (а), алфавитно-цифровым дисплеем LM044L и графическим дисплеем AMPIRE128×64 (б) 54 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Рис. 2. Раздел Graphical LCDs библиотеки Optoelectronics Рис. 3. Окно свойств графического дисплея AMPIRE128×64 ния в рабочей области редактора ISIS Каких-либо стандартных правил PD0...PD7, выводы E, R/W и RS к выводам выполняют в окне Pick Devices, кото- сопряжения микроконтроллеров с PА2...PА4, а выводы RST, RS 1 и RS 2 к рое открывают командой контекстного дисплеями не существует, и в каждом выводам РА5...РА7 микроконтроллера меню Place/Component/From Libraries конкретном случае сопряжение может ATmega32 так, как показано на рис. 1б. или нажатием кнопки P на панели выполняться по-разному. DEVICES (по умолчанию панель рас- Выводы РА0, РА1 микроконтроллера положена в левой части программы Микросхема AMPIRE128X64 име- не рекомендуется использовать для под- и содержит список имеющихся в про- ет 18 контактов, назначение которых ключения дисплея из-за возникновения екте компонентов). Открывают панель следующее: внутреннего конфликта с картой памя- DEVICES нажатием кнопки Component ● GND – «земля»; ти, о чём в CodeVisionAVR при подключе- Mode на левой панели инструментов ● Vсс – напряжение питания +5 В; нии к проекту дисплея выводится пред- редактора ISIS. ● V0 – напряжение контрастности от упреждающее сообщение. Микросхема графического дис- 0 до +5 В (настройка контрастности Выводы GND и Vcc подключим к «зем- плея AMPIRE128×64 находится в раз- экрана); ле» и напряжению +5 В соответствен- деле Graphical LCDs библиотеки ● RS – установка режима приёма ин- но. На вывод V0 подаётся напряжение Optoelectronics (см. рис. 2). Графиче- формации (RS = 1 – данные, RS = 0 – контрастности (от 0 до +5 В). На прак- ские дисплеи обеспечивают создание на команды); тике этот вывод подключают к пита- своём экране матрицы точек, высвечи- ● R/W – выбор операции чтения (R/W = нию через подстроечный резистор, вающих изображения и тексты, и обла- =1) или записи (R/W = 0); который позволяет плавно регулиро- дают большей гибкостью в отличие от ● E – линия синхронизации; вать контрастность отображения сим- алфавитно-цифровых модулей, жёст- ● DВ0...DВ7 – шина данных/команд; волов на дисплее. Символы «земли» и ко фиксирующих размеры и положе- ● –Vout – выход отрицательного напря- питания добавляют в схему, выбрав на ние символов. Графические модули не жения; панели TERMINALS строки GROUND и накладывают сколь-либо серьёзных ● CS 1 – активация левого сегмента дис- POWER. Панель открывают нажатием ограничений на отображаемую инфор- плея ( CS 1 = 0 – сегмент активный, CS 1 = кнопки Terminals Mode на левой пане- мацию, причём это могут быть не толь- = 1 – сегмент не активный); ли редактора ISIS. ко символы алфавита, но и специальные ● CS 2 – активация правого сегмента символы, графики, диаграммы, элемен- дисплея (CS 2 = 0 – сегмент активный, Выбор линий портов микроконтрол- ты оформления. CS 2 = 1 – сегмент не активный); лера для подключения к указанным ● RST– сигнал сброса контроллера дис- выводам дисплея выполняется произ- Использование графического дисплея плея. вольно. В окне свойств дисплея (окно расширяет область применения устрой- Для подключения микросхемы открывают двойным щелчком левой ства, повышает уровень его информа- AMPIRE128×64 к схеме управления кнопки мыши после его выделения на тивности, предоставляет большие воз- используются параллельная синхрон- схеме) в поле Advanced Properties из можности при отображении данных ная шина данных/команд (DВ0...DВ7), выпадающего списка выбирают пункт относительно применения алфавит- вывод выбора операции чтения/запи- LCD Clock Frequency – тактовая частота но-цифрового дисплея. Информация си (R/W), вывод выбора регистра дан- (см. рис. 3), значение которой должно отображается на экране модуля дис- ных/команд (RS), вывод синхронизации совпадать с частотой работы микрокон- плея поточечно, что позволяет получить (Е), выводы активизации сегментов дис- троллера (в нашем примере – 2 МГц). любое необходимое изображение. На плея (CS 1 и CS 2) и вывод RST, на кото- каждую точку экрана приходится один рый подаётся сигнал сброса контрол- Приём информации микросхемой информационный бит, который управ- лера дисплея. Подсоединим выводы AMPIRE128×64 осуществляется по 8-раз- ляет свечением пикселя. модуля дисплея DВ0...DВ7 к выводам рядной шине данных/команд. Подача управляющих сигналов через подклю- чённые к портам микроконтролле- СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 55

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ аб Рис. 4. Настройка параметров графического дисплея: в окне CodeWizardAVR (а), на вкладке Graphic Display окна Configure Project (б) ра ATmega32 линии выполняется про- код, который впоследствии приходит- ют вкладку Graphic Display (см. рис. 4б) граммно. ся редактировать. и устанавливают в поле Display Type тип контроллера, разрешение дисплея После создания схемы, подключения После создания командой основного и инверсию выводов активации сег- всех приборов и настройки их пара- меню File/New/Project нового проекта в ментов дисплея. Подключение управ- метров переходят к следующему эта- CodeVisionAVR открывается окно гене- ляющих сигналов и сигналов данных/ пу разработки: написанию программ- ратора кода CodeWizardAVR, где задают команд определяют на вкладках Control ного кода управления устройством в параметры микроконтроллера, его вну- и Data. CodeVisionAVR. В результате его компи- тренних ресурсов и используемых в схе- ляции (при условии отсутствия в коде ме периферийных устройств, что уже Прежде чем приступить к написанию ошибок) на диске компьютера будет было рассмотрено в [1], поэтому подроб- программного кода в CodeVisionAVR, получен hex-файл, путь к которому ука- но остановимся на определении свойств подключим поддержку карты памя- зывают в окне свойств микроконтрол- графического дисплея. В окне генерато- ти ММС и увеличим размер сте- лера в Proteus. ра кода (см. рис. 4а) перейдём на вклад- ка, для чего на вкладке Libraries окна ку Graphic Display Settings и укажем тип Configure Project откроем вкладку Завершающим этапом работы в контроллера, разрешение дисплея и MMC/SD/SD HC Card и установим фла- Proteus является запуск процесса моде- инверсию выводов активации сегмен- жок в чекбоксе Enable MMC/SD/SD лирования схемы в редакторе ISIS, тов дисплея (поле Display Type, в нашем HC Card and FAT Support (разрешить который выполняют кнопкой Run the примере – KS0108 128×64 /CS1, /CS2), поддержку карт памяти и файловой simulation, расположенной в левом ниж- применение внешней памяти для хра- системы FAT), см. рис. 5а. На вклад- нем углу окна редактора или командой нения изображения (Use Image Storage ке C Compiler откроем вкладку Code основного меню Debug/Run Simulation. in External Memory, в нашем примере Generation (см. рис. 5б) и в поле Data флажок в чекбоксе снят). На вкладках Stack Size укажем размер стека в байтах – Создание программного кода Data и Control настраивают параметры для компиляции кода в нашем примере в CodeVisionAVR подключения микроконтроллера (порт значения 1920 будет достаточно. и номер вывода) к микросхеме дис- Формирование программного кода плея – в нашем примере биты 2...7 пор- Применение функций в CodeVisionAVR выполняют при та PА микроконтроллера подключены к библиотеки ff.h для записи помощи автоматического генератора выводам E, R/W, RS, RST, CS 1 и CS 2 дис- данных во внешнюю память, CodeWizardAVR или вручную с нуля, плея соответственно, биты 0...7 порта PD их чтения и отображения используя синтаксис языка програм- микроконтроллера подключены к выво- на экране терминала и мирования С и функции стандартных дам DВ0...DВ7 дисплея. алфавитно-цифрового дисплея библиотек программы. Удобство при- менения генератора состоит в быстром Также настройку параметров дисплея Для работы с картами памяти получении кода выполнения функций можно выполнить на базе уже суще- MMC/SD/SD HC, отформатирован- инициализации микроконтроллера ствующего проекта CodeVisionAVR, ными в FAT12, FAT16 или FAT32, в и его портов ввода/вывода, аналого- для чего с помощью команды Project/ CodeVisionAVR предусмотрены библи- вого компаратора, таймеров/счётчи- Configure основного меню открывают отеки функций sdcard.h и ff.h, описание ков, интерфейса UART и SPI, алфавит- окно Configure Project. В этом окне сле- которых было рассмотрено в [1]. Про- но-цифровых и графических дисплеев дует перейти на вкладку C Compiler и демонстрируем на конкретном приме- и др. Однако в процессе работы масте- затем – на вкладку Libraries, где открыва- ре работу с функциями создания фай- ра формируется достаточно объёмный 56 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ аб Рис. 5. Окно Configure Project: вкладка MMC/SD/SD HC Card (а), вкладка Code Generation (б) лов, записи и чтения данных из внешней вим в образ файл с расширением *.txt, за и его имя с расширением в поле Card памяти библиотеки ff.h. Для этого соз- который содержит блок текстовых дан- Image File в окне свойств карты памяти дадим с помощью программы WinImage ных, сохраним образ с расширением (см. рис. 6). На языке С с применением образ карты памяти (создание обра- .ima в папке FAT16 в каталоге с проек- функций библиотеки ff.h CodeVisionAVR за подробно рассмотрено в [1]), доба- том Proteus. Введём путь к файлу обра- напишем программу инициализации СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 57

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Рис. 6. Окно свойств карты памяти Рис. 7. Результат компиляции программного кода в CodeVisionAVR Рис. 8. Окно свойств микроконтроллера ATmega32 Рис. 9. Результат работы программы записи и чтения данных из внешней памяти, образ которой создан с помощью WinImage и сохранен в формате .ima микроконтроллера. Текст программы зы длительностью 50 мс с помо- чтения из него с помощью функции приведён на листинге 1. f_read(&file2, Buff2, 80, &br2) 80 байт щью функции f_open(&file2,»0:/2.txt», данных и их вывода посимвольно в Введём текст программы в окне кода цикле for на экран терминала. Затем CodeVisionAVR и запустим компиля- FA_CREATE_ALWAYS | FA_WRITE ) про- на экран дисплея выполняется посим- цию (см. рис. 7), по окончании кото- вольный вывод в цикле for 13 символов рой будет создан .hex-файл для записи исходит создание на карте памя- из файла 2.txt. в микроконтроллер. Перейдём в Proteus и в окне свойств микросхемы ATmega32 ти ещё одного текстового фай- Обмен информацией между микро- укажем путь к файлу прошивки на дис- контроллером и картой памяти ке компьютера (см. рис. 8). Результат ла 2.txt для записи в него функцией выполняется через линии РВ4...РВ7 симуляции схемы в Proteus представ- микроконтроллера. Для работы с алфа- лен на рис. 9. f_write(&file2, Buff, 80, &bwr) 80 байт витно-цифровым дисплеем задейство- После запуска моделирования выпол- данных, считанных из уже имеюще- няется функция f_mount(0, &fat), кото- рая выделяет область памяти нуж- гося на карте файла 1.txt (см. рис. 10). ного объёма для работы с картой памяти. Функция f_open(&file,«0:/1.txt», После закрытия и паузы функцией FA_OPEN_EXISTING | FA_READ) откры- вает уже размещённый на карте файл f_open(&file2,»0:/2.txt», FA_READ) 1.txt для чтения из него с помощью функции f_read(&file, Buff, 80, &br) файл 2.txt открывается повторно для фрагмента данных размером 80 байт. После закрытия файла 1.txt и пау- Рис. 10. Образ .ima, открытый в программе WinImage после добавления ещё одного файла с расширением *.txt 58 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Листинг 1 #include <mega32.h> // Подключение заголовочных файлов #include <alcd.h> // в которых содержатся #include <stdio.h> // прототипы функций #include <delay.h> #include <ff.h> #define F_CPU 2000000 // Рабочая частота микроконтроллера #define BAUD 9600L // Скорость обмена данными #define UBRRL_value (F_CPU/(BAUD*16))-1 // Согласно заданной скорости // подсчитываем значение для регистра UBRR void init_USART() { // Функция инициализации USART UBRRL = UBRRL_value; // Младшие 8 бит UBRRL_value UBRRH = UBRRL_value >> 8; // Старшие 8 бит UBRRL_value UCSRB = (1<<TXEN); // Бит разрешения передачи UCSRC = (1<< UCSZ0)|(1<< UCSZ1); } // Устанавливаем формат 8 бит данных void send_UART(char value) { while(!( UCSRA & (1 << UDRE))); // Ожидаем, когда очистится буфер передачи UDR = value; } // Помещаем данные в буфер, начинаем передачу interrupt [TIM1_COMPA] void timer1_compa_isr(void) {disk_timerproc();} // Вызов функции синхронизации void main(void) { FATFS fat; // Выделение рабочей области памяти для логического диска FIL file, file2; // Указатели на структуру данных файлов unsigned char Buff[80]; // Переменная для записи считанных из файла 1.txt данных unsigned char Buff2[80]; // Переменная для записи считанных из файла 2.txt данных unsigned int br, br2, bwr; // Число прочитанных или записанных байтов int i; // Инициализация портов микроконтроллера // Port B DDRB=(1<<DDB7) | (0<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port D, Port C DDRD=DDRC=0xff; PORTD=PORTC=0x00; // Инициализация таймера TCCR1A=0x00; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; OCR1AH=0x00; OCR1AL=0x4E; TIMSK=0x10; lcd_init(20); // Инициализация дисплея #asm(\"sei\") delay_ms(200); init_USART(); // Инициализация USART delay_ms(200); f_mount(0, &fat); // Выделение рабочей области памяти для логического раздела f_open(&file,\"0:/1.txt\", FA_OPEN_EXISTING | FA_READ); // Открываем файл 1.txt только для чтения f_read(&file, Buff, 80, &br); // Читаем в переменную Buff 80 символов с начала файла f_close(&file); // Закрываем файл 1.txt delay_ms(50); // Пауза длительностью 50 мс f_open(&file2,\"0:/2.txt\", FA_CREATE_ALWAYS | FA_WRITE ); // Создаем на карте памяти // файл 2.txt для записи f_write(&file2, Buff, 80, &bwr); // Записывем в файл 2.txt данные из файла 1.txt f_close(&file2); // Закрываем файл delay_ms(50); // Пауза длительностью 50 мс f_open(&file2,\"0:/2.txt\", FA_READ); // Открываем файл 2.txt для чтения f_read(&file2, Buff2, 80, &br2); // Читаем в переменную Buff2 80 символов с начала файла f_close(&file2); // Закрываем файл for (i=0;i<br2;i++) {send_UART(Buff2[i]);} // Вывод считанной информации из созданного // на карте памяти файла на экран терминала lcd_gotoxy(4,2); // Установка курсора в четвертую позицию второй строки дисплея for (i=2;i<15;i++) {lcd_putchar(Buff2[i]);}} // Вывод на экран дисплея 13 символов, считанных из файла 2.txt карты памяти ваны линии РС0...РС2 и РС4...РС7, линия менить функцию feof(FIL *fp), которая *fp), реализованной в виде макроса РD1 микроконтроллера используется во время доступа к файлу определяет, #define f_size(fp) ((fp)->fsize), который для последовательного вывода инфор- был ли достигнут его конец, и в этом определяют вместе с заголовочными мации на экран терминала. случае возвращает ненулевое значе- файлами в начале кода программы: ние (1). В противном случае функция #include <mega32.h> В представленном примере было возвращает ноль (0). Параметр функ- #include <alcd.h> выполнено чтение фиксированного ции fp – это указатель на структуру дан- #include <stdio.h> числа байт информации из размещён- ных файла. Размер файла в байтах опре- #include <delay.h> ного на карте памяти текстового фай- деляют с помощью функции f_size(FIL #include <ff.h> ла. Для чтения всего файла удобно при- СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 59

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Рис. 11. Вывод на экран терминала всей записанной в файл 1.txt текстовой информации функции f_lseek(&file, 120) сместить указатель чтения файла на 120 байтов #define f_size(fp) ((fp)->fsize) В результате выполнения программы с начала файла и с помощью функции Ниже представлен фрагмент основ- в Proteus на экран терминала выводит- f_read(&file, Buff, f_size(&file), &br) ся вся записанная в файле 1.txt тексто- выполнить чтение оставшегося фраг- ной функции программы инициализа- вая информация (см. рис. 11). мента файла. После чего происходит ции, в котором даны указания микро- закрытие файла и вывод в цикле for счи- контроллеру смонтировать карту Полезной при чтении/запи- танной из него информации на экран памяти и открыть для чтения разме- си файла может быть функция терминала. Для определения достижения щённый на ней файл 1.txt. Функция f_lseek(FIL* fp, unsigned long ofs), которая конца файла, как и в предыдущем приме- (!feof(&file)) используется для опреде- перемещает указатель чтения/записи ре, используется функция (!feof(&file)). ления достижения конца файла. Если внутри файла, ранее открытого функци- Фрагмент основной функции програм- символ завершения файла прочитан, то ей f_open. Параметр fp функции указы- мы инициализации микроконтроллера: функция возвращает ненулевое значе- вает на структуру данных файла, которая f_mount(0, &fat); // Выделение ние, и цикл while завершается. После должна быть предварительно инициа- чего происходит закрытие файла и лизирована вызовом функции f_open. рабочей области памяти для логиче- вывод в цикле for считанной из него Параметр ofs задает смещение указате- информации на экран терминала. ля чтения/записи файла на число бай- ского раздела тов с начала файла. В режиме записи эта Фрагмент основной функции про- функция может использоваться для рас- f_open(&file,”0:/1.txt”, FA_OPEN_ граммы инициализации микрокон- ширения размера файла путём переме- троллера: щения указателя чтения/записи файла за EXISTING | FA_READ); // Открываем f_mount(0, &fat); // Выделение конец имеющихся данных. При успеш- рабочей области памяти для логиче- ном выполнении значение элемента fptr файл 1.txt ского раздела структуры FIL, на которое указывает fp, f_open(&file,”0:/1.txt”, FA_OPEN_ должно быть проверено, чтобы убедить- // только для чтения EXISTING | FA_READ); // Открываем ся в том, что указатель чтения/записи файл 1.txt продвинулся в правильное положение f_lseek(&file, 120); // Смещение // только для чтения и не произошло переполнение диска. while(!feof(&file)) { // Пока не В режиме чтения попытка продвинуть указателя чтения файла на 120 бай- достигнут конец файла указатель чтения/записи файла за конец f_read(&file, Buff, f_size(&file), имеющихся данных ограничится уста- тов с начала файла &br); // Считываем информацию новкой его в положение конца файла. В // и записываем в переменную Buff этом случае элемент fptr структуры FIL, while(!feof(&file)) { // Пока не } на который указывает fp, будет содер- f_close(&file); // Закрываем файл жать размер файла в байтах. достигнут конец файла 1.txt delay_ms(50); // Пауза длительно- Ниже представлен фрагмент основ- f_read(&file, Buff, f_size(&file), стью 50 мс ной функции программы инициализа- for (i=0;i<br;i++) ции, в котором даны указания микро- &br); // Считываем информацию {send_UART(Buff[i]);} // Вывод контроллеру смонтировать карту считанной информации на экран тер- памяти и открыть для чтения размещён- // и записываем в переменную Buff минала ный на ней файл 1.txt, затем с помощью } f_close(&file); // Закрываем файл 1.txt delay_ms(50); // Пауза длительно- стью 50 мс for (i=0;i<br;i++) {send_UART(Buff[i]);} // Вывод считанной информации на экран тер- минала В результате выполнения програм- мы в Proteus происходит чтение из файла 1.txt карты памяти текстовых данных, начиная со 120 байта с начала файла, и их вывод на экран терминала (см. рис. 12). Применение функций библиотек ff.h и glcd.h для чтения данных из внешней памяти и их отображения на экране графического дисплея Используя микроконтроллер ATmega32, можно организовать одновременный вывод текстовых данных с карты памяти на экран алфавитно-цифрового и графи- ческого дисплеев. Для работы с графиче- ским дисплеем в CodeVisionAVR имеют- ся утилита формирования программного кода изображения – LCD Vision и библи- отека glcd.h, которая содержит функции вывода текстовой и графической инфор- мации на экран дисплея, среди которых: ● glcd_outtext(char *str) – функция вы- вода текстовой строки в текущую 60 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ позицию графического экрана. Па- раметр str – это указатель на пере- менную, в которой хранятся тексто- вые данные; ● glcd_outtextxy(GLCDX_t x, GLCDY_t y, char *str) – функция вывода текстовой строки str, начиная с точки экрана с координатами х, у; ● glcd_putchar(char c) – функция выво- да одиночного символа c в текущую позицию экрана; ● glcd_putcharxy(GLCDX_t x, GLCDY_t y, char c) – функция вывода одиночно- го символа c, начиная с точки экрана с координатами х, у; ● glcd_clear() – функция очистки экра- на и установки курсора в позицию 0, 0; ● glcd_putimage(GLCDX_t left, GLCDY_t top, unsigned char *pimg, GLCDBLOCKMODE_t mode) – функция вывода на экран изображения, верх- Рис. 12. Результат применения функции f_lseek(&file, 120) – чтение из файла 1.txt карты памяти текстовых данных, начиная со 120 байта с начала файла, и их вывод на экран терминала ний левый угол которого будет раз- мещён в точке с координатами left, top, где *pimg – указатель на перемен- отображаемого на экране изобра- имеющимся на экране изображением, жения в прозрачном режиме, когда GLCD_PUTNOT – вывод изображения ную, в которой хранятся графические для отображения используется цвет с инверсией, GLCD_PUTAND – логи- фона, GLCD_PUTXOR – исключаю- ческое И с уже имеющимся на экра- данные, mode – режим отображения щее ИЛИ с уже имеющимся на экра- не изображением; не изображением, GLCD_PUTOR – ● glcd_getimage(GLCDX_t left, GLCDY_t изображения на экране. Значения ар- объединяющее ИЛИ с уже top, GLCDX_t width, GLCDY_t height, гумента mode: GLCD_PUTCOPY – пере- запись отображаемого на экране изо- бражения, GLCD_PUTTP – перезапись ƚƭƳƜƨƲƹ   (PDLOPDUNHW#Y]SSVUX ZZZY]SSVUX ɇɈȼɕȿɋȿɊɂɃɇɕȿɂɁȾȿɅɂə ƐƯƬƭƳưLJƪǃƷƻƹƲƨdžƺƹLJ ƪƸƨƯƳưƿƵǃƽƲƶƸƷƻƹƨƽ ƉǃƹƺƸƶƪƶƹƹƺƨƵƨƪƳưƪƨdžǁưƭƹLJƬưƶƬǃưƬưƶƬƵǃƭƹƩƶƸƲư ƹƭƸưưƌƊ ƺưƷƶƵƶƴưƵƨƳƶƪ Реклама  ¸Ɗ¸ƈ¸Ƶƹ ƖƬƵƶƼƨƯƵǃƭƴƶƹƺǃƹƭƸưưƔƌ  ƺưƷƶƵƶƴưƵƨƳƶƪ  ¸Ɗ¸ƈ¸Ɗ ƌưƶƬǃƠƶƺƺƲưưƬưƶƬƵǃƭƹƩƶƸƲư ƺưƷƶƵƶƴưƵƨƳƨ  ¸Ɗ¸ ù ƈ¸Ɗ ƌƪƻƽƲƨƵƨƳDŽƵǃƭƬƸƨƱƪƭƸǃƹƭƸưư  ƺưƷƶƵƶƴưƵƨƳƶƪ  ¸ƊƈƈƵƹ ƠƐƔƲƶƵƺƸƶƳƳƭƸǃƹƭƸưư ƺưƷƶƵƶƴưƵƨƳƨ  Ɗ“ƈƲƋƾ ƔƒƔƹƭƸưư ƺưƷƶƵƶƴưƵƨƳƨ  ²ƌƪƻƽƷƶƳLJƸƵǃƱưƹƺƶƿƵưƲƺƶƲƨ ²ƗƸƭƶƩƸƨƯƶƪƨƺƭƳDŽƵƨƷƸLJƮƭƵưLJƵƨƬƨƺƿưƲƭƺƶƲƨ ²ƗƸƭƶƩƸƨƯƶƪƨƺƭƳưƪƽƶƬƵǃƽƬưƹƲƸƭƺƵǃƽƹưƫƵƨƳƶƪ ²ƔƒƔƻƷƸƨƪƳƭƵưLJưƹƺƶƿƵưƲƶƴƷưƺƨƵưLJ СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 61

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Рис. 14. Окно New Image утилиты LCD Vision Рис. 13. Рисунок размером 16×16 пикселей и его код в окне Export Рис. 15. Текстовая информация, записанная в размещенном на карте памяти Preview утилиты LCD Vision файле 3.txt unsigned char *pimg) – функция ко- ● glcd_rectround(GLCDX_t left, GLCDY_t рис. 13), которую используют для соз- top, GLCDDX_t width, GLCDDY_t height, дания изображений и экспорта их кода пирования с экрана фрагмента изо- GLCDRAD_t radius) – функция отрисо- в CodeVisionAVR. Изображения могут вывает на экране прямоугольник, где быть импортированы в LCD Vision из бражения шириной width и высотой left, top – координаты его левого верх- популярных графических форматов него угла, right bottom – координаты (таких как BMP, JPG, GIF, PNG, ICO, WMF, height, верхний левый угол которого правого нижнего угла, radius – ради- EMF) для последующей генерации их ус скругления углов прямоугольника; кода или созданы с нуля, для чего при- размещён в точке с координатами left, меняют команду основного меню утили- ● glcd_circle(GLCDX_t x, GLCDY_t y, ты File/New Image. В результате выпол- top, где *pimg – указатель на перемен- GLCDRAD_t radius) – функция отри- нения команды открывается окно New совывает окружность, где х, у – ко- Image (см. рис. 14), в котором в меню ную, в которой будут храниться ско- ординаты её центра, radius – радиус Target LCD Controller из выпадающе- окружности; го списка выбирают целевой контрол- пированные графические данные; лер графического дисплея с нужными ● glcd_putpixel(GLCDX_t x, GLCDY_t y, характеристиками. В нашем примере ● glcd_setlinestyle(unsigned char GLCDCOL_t color) – функция закраши- это: тип контроллера – KS0108, разре- вает на экране пиксель цветом color с шение экрана – 128×64, инверсия вхо- thickness, unsigned char bit_pattern) – координатами х, у. Для монохромных дов активации сегментов дисплея – дисплеев параметр color может при- /CS1, /CS2). В поле Image Size указы- функция устанавливает стиль рисова- нимать одно из двух значений: 0xffff вают размер изображения в пикселях (черный), 0х0000 (цвет фона экрана); (в нашем примере ширина Width и ния линий на экране графического высота Height изображения 16 пиксе- ● glcd_init() – инициализация графи- лей). Затем нажимают на кнопку OK. дисплея, где thickness – толщина ли- ческого дисплея. Для построения изображения на экра- Далее в LCD Vision в поле Image Zoom ний в пикселях, bit_pattern – стиль ли- Factor выбирают масштаб окна рабо- не графического дисплея использует- чего поля (в нашем примере устано- ний. Значения аргумента bit_pattern: ся простая система координат. Отсчёт вим значение 1000% для максимально- начинается от верхнего левого угла экра- го приближения рисунка), в котором с GLCD_LINE_SOLID – сплошная ли- на, который имеет координаты 0,0. Зна- помощью инструментов: Set pixel (уста- чение х увеличивается слева направо, новить пиксель), Erase pixel (стереть ния, GLCD_LINE_DOT_SMALL – точеч- значение y увеличивается сверху вниз. пиксель), Fill area (заполнить область), Draw line (нарисовать линию), Draw ная линия, GLCD_LINE_DOT_LARGE – Для вывода изображения на экран дисплея его необходимо конвертиро- жирная точечная линия; вать в массив данных, для чего удоб- но применить утилиту LCD Vision (см. ● glcd_setlinethick(unsigned char thickness) – функция устанавливает толщину линий thickness в пикселях; ● glcd_line(GLCDX_t x0, GLCDY_t y0, GLCDX_t x1, GLCDY_t y1) – функция отрисовывает на экране линию, где х0, у0 – координаты ее начала, х1, у1 – ко- ординаты конца; ● glcd_rectangle(GLCDX_t left, GLCDY_t top, GLCDX_t right, GLCDY_t bottom) – функция отрисовывает на экране пря- моугольник, где left, top – координаты его левого верхнего угла, right bottom – координаты правого нижнего угла; 62 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2021



ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Рис. 16. Вывод с помощью функций библиотек ff.h и glcd.h текстовой и графической информации lcd_gotoxy(4,2) определяет позицию кур- на экран алфавитно-цифрового и графического дисплея сора на экране алфавитно-цифрового дис- плея, начиная с которой в цикле for выпол- rectangle (нарисовать прямоугольник), на языке С с применением стандартных няется посимвольный вывод данных, Draw ellipse or circle (нарисовать окруж- считанных из файла 3.txt карты памяти. ность) панели Draw создают рисунок. функций CodeVisionAVR (см. листинг 2). Зажав левую клавишу мыши, отрисовы- Далее выполняется смещение указа- вают изображение, генерируют его код Введём текст программы в окне кода теля чтения на 25 байт с начала фай- нажатием пиктограммы Export пане- ла (функция f_lseek(&file, 25)), чте- ли инструментов File. Запуск утилиты CodeVisionAVR и запустим компиля- ние 18 символов в переменную Text LCD Vision выполняют из программы (функция f_read(&file,Text, 18, &br)) CodeVisionAVR нажатием пиктограм- цию. После чего перейдём в Proteus и и вывод считанных символов на мы LCD Vision font and image editor/ экран графического дисплея, начи- converter панели инструментов Tools в окне свойств микросхемы ATmega32 ная с позиции х = 10, y = 37 (функция (панель открывают командой View/ glcd_outtextxy(10,37,Text)). Toolbars/Tools основного меню). укажем путь к файлу прошивки на дис- После закрытия размещённого на кар- Для чтения данных с карты памяти ке компьютера. Запустим симуляцию те памяти текстового файла (функция удобно применить функции библиоте- f_close(&file)) и паузы длительно- ки ff.h, описание которых было рассмо- собранной схемы, результат выполне- стью 50 мс (функция delay_ms(50)) трено в [1]. В качестве примера сформи- с помощью функции glcd_ руем на экране дисплея AMPIRE128×64 ния которой представлен на рис. 16, и putimage(98,10,img,GLCD_PUTCOPY) с помощью функций библиотеки glcd.h выполняется вывод изображения, код графику, а также выведем текстовую проанализируем её работу. которого хранится в переменной img, информацию, хранящуюся в файле, на экран графического дисплея, начи- размещённом на карте памяти. На экран После запуска моделирования про- ная с позиции х = 98, y = 10 (см. рис. 17а). алфавитно-цифрового дисплея выведем фрагмент данных, считанный из это- грамма микроконтроллера выпол- Рассмотрим ещё один пример, в кото- го же файла. С этой целью создадим с ром выполним захват данных с экрана помощью программы WinImage образ няет инициализацию алфавитно- графического дисплея и вывод изобра- карты памяти, добавим в образ файл с жения, код которого записан в тексто- расширением *.txt, который содержит цифрового (функция lcd_init(20)) вом файле, размещённом на карте блок текстовых данных (см. рис. 15), памяти. С этой целью внесем в пред- сохраним образ в папке FAT16 в ката- и графического дисплея (функция ставленный листинг изменения, допол- логе с проектом Proteus c расширени- нив его следующим фрагментом кода: ем .ima и введём вручную путь к файлу glcd_init(&glcd_init_data)) и опре- образа и его имя в поле Card Image File glcd_getimage(98, 10, 16, 16, в окне свойств карты памяти. Для чте- деление шрифта вывода текста img2); // Запись фрагмента графи- ния данных из размещённого во внеш- ческих данных ней памяти файла и их отображения (glcd_init_data.font=font5x7) на экран гра- // с экрана в переменную img2 на экране графического и алфавитно- f_open(&file2,”0:/9.txt”, FA_ цифрового дисплея напишем програм- фического дисплея. После чего выполня- CREATE_ALWAYS | FA_WRITE ); // му инициализации микроконтроллера Создание на карте ется выделение области памяти нужного // памяти файла 9.txt для записи f_write(&file2, img2, объёма для работы с картой памяти (функ- strlen(img2), &bwr); // Запись в файл 9.txt данных ция f_mount(0, &fat)), установка стиля // считанных с экрана графическо- го дисплея рисования линий на графическом дис- f_close(&file2); // Закрываем файл glcd_clear(); // Очищаем экран плее (функция glcd_setlinestyle(6,GLCD_ графического дисплея f_open(&file2,”0:/9.txt”, FA_OPEN_ LINE_DOT_LARGE)) и отрисовка на его EXISTING | FA_READ); // Открываем на карте памяти экране прямоугольной рамки (функция // файл 9.txt только для чтения f_read(&file2, img3, f_ glcd_rectangle(0,0,128,64)). size(&file2), &br2); // Считываем данные в переменную img3 Функция f_open(&file,«0:/3.txt», glcd_putimage(43,30,img3,GLCD_ PUTCOPY); // Вывод изображения, FA_OPEN_EXISTING | FA_READ) откры- код которого записан // в переменной img3, на экран вает уже размещённый на карте памя- графического дисплея с позиции х = 43, y = 30 ти файл 3.txt для чтения из него с помо- щью функции f_read(&file, Text, 13, &br) фрагмента данных размером 13 байт. Вывод считанных символов на экран графического дисплея выполняется с помощью функции glcd_outtextxy(17,17,Text), начи- ная с позиции х = 17, y = 17. Функция 64 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ Листинг 2 #include <mega32.h> // Подключение заголовочных файлов #include <alcd.h> // в которых содержатся #include <stdio.h> // прототипы функций #include <delay.h> #include <ff.h> #include <glcd.h> #include <font5x7rus.h> interrupt [TIM1_COMPA] void timer1_compa_isr(void) {disk_timerproc();} // Вызов функции синхронизации void main(void) // Основная функция программы { FATFS fat; // Выделение рабочей области памяти для логического диска FIL file; // Указатель на структуру данных файла unsigned char Text[58],img[]={ 0x10,0x00, // Размер изображения по горизонтали 16 пикселей 0x10,0x00, // Размер изображения по вертикали 16 пикселей #ifndef _GLCD_DATA_BYTEY_ /* Код изображения, организованный в виде горизонтальных строк байтов */ 0xE0, 0x07, 0x10, 0x08, 0x0C, 0x30, 0x04, 0x20, 0x22, 0x44, 0x31, 0x8C, 0x01, 0x80, 0x81, 0x81, 0x01, 0x80, 0x01, 0x80, 0x11, 0x88, 0xE2, 0x47, 0x84, 0x21, 0x0C, 0x30, 0x10, 0x08, 0xE0, 0x07, #else /* Код изображения, организованный в виде вертикальных строк байтов */ 0xE0, 0x10, 0x0C, 0x04, 0x22, 0x31, 0x01, 0x81, 0x81, 0x01, 0x31, 0x22, 0x04, 0x0C, 0x10, 0xE0, 0x07, 0x08, 0x30, 0x20, 0x44, 0x88, 0x88, 0x98, 0x98, 0x88, 0x88, 0x44, 0x20, 0x30, 0x08, 0x07, #endif }; unsigned int br; // Число прочитанных байтов int i; GLCDINIT_t glcd_init_data; // Переменная для хранения данных контроллера // графического дисплея // Инициализация портов микроконтроллера // Port B DDRB=(1<<DDB7) | (0<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port D, Port C DDRD=DDRC=0xff; PORTD=PORTC=0x00; // Инициализация таймера TCCR1A=0x00; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; OCR1AH=0x00; OCR1AL=0x4E; TIMSK=0x10; lcd_init(20); // Инициализация алфавитно-цифрового дисплея #asm(\"sei\") delay_ms(200); // Пауза длительностью 200 мс glcd_init_data.font=font5x7; // Определение шрифта графического дисплея glcd_init(&glcd_init_data); // Инициализация графического дисплея f_mount(0, &fat); // Выделение рабочей области памяти для логического раздела glcd_setlinestyle(6,GLCD_LINE_DOT_LARGE); // Установка стиля рисования линий на // графическом дисплее glcd_rectangle(0,0,128,64); // Отрисовка прямоугольной рамки f_open(&file,\"0:/3.txt\", FA_OPEN_EXISTING | FA_READ); // Открываем на карте памяти // файл 3.txt только для чтения f_read(&file, Text, 13, &br); // Читаем с карты памяти в переменную Text // 13 символов с начала файла 3.txt glcd_outtextxy(17,17,Text); // Вывод на экран графического дисплея считанных символов lcd_gotoxy(4,2); // Установка курсора в четвёртую позицию // второй строки алфавитно-цифрового дисплея for (i=0;i<13;i++) {lcd_putchar(Text[i]);} // Посимвольный вывод на экран // алфавитно-цифрового дисплея считанных из файла 3.txt карты памяти данных f_lseek(&file, 25); // Смещение указателя чтения файла на 25 байтов с начала файла f_read(&file,Text, 18, &br); // Чтение с карты памяти в переменную Text 18 символов glcd_outtextxy(10,37,Text); // Вывод на экран графического дисплея считанных символов f_close(&file); // Закрываем файл 3.txt delay_ms(50); // Пауза длительностью 50 мс glcd_putimage(98,10,img,GLCD_PUTCOPY); // Вывод изображения, код которого указан // в переменной img, на экран графического дисплея с позиции х = 98, y = 10 delay_ms(50); } аб в Рис. 17. Вид графического дисплея после вывода считанной из внешней памяти: текстовой информации (а), графической информации в режиме GLCD_PUTCOPY (б), графической информации в режиме GLCD_PUTNOT (в) СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 65

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ В результате выполнения програм- зовано с помощью функций strlen(img2) объекта, path_new – указатель на но- мы с экрана графического дисплея и f_size(&file2), для применения кото- вое имя объекта. Функция возвраща- был скопирован фрагмент изобра- рых в начале кода программы добавле- ет следующие значения: жения, размер которого и начальные ны следующие строки: − FR_OK – успешное выполнение координаты отображения на дис- плее определяют параметры функции #include <string.h> функции; glcd_getimage(98, 10, 16, 16, img2), где #define f_size(fp) ((fp)->fsize) − FR_NO_FILE – не удалось найти img2 – переменная для хранения графи- и объявлены переменные: ческой информации. После чего с помо- FIL file2; файл или директорию; щью функции f_open(&file2,»0:/9.txt», unsigned char img2[], img3[]. − FR_NO_PATH – путь к файлу не су- FA_CREATE_ALWAYS | FA_WRITE) Результат работы программы пред- был создан новый файл на кар- ставлен на рис. 17б. На рис. 17в показа- ществует; те памяти, в который функцией но отображение фрагмента рисунка в − FR_INVALID_NAME – неверное имя f_write(&file2, img2, strlen(img2), &bwr) режиме GLCD_PUTNOT на экране гра- выполнена запись данных, скопи- фического дисплея. файла или директории; рованных с экрана графическо- − FR_INVALID_DRIVE – неверный но- го дисплея. После очистки экрана Применение функций библиотеки дисплея (функция glcd_clear()) скопи- ff.h для создания, переименования, мер устройства; рованный фрагмент графики выво- удаления директорий и файлов на − FR_EXIST – создание файла/дирек- дится из размещённого на карте памя- карте памяти ти файла (f_open(&file2,«0:/9.txt», тории невозможно, так как файл/ FA_OPEN_EXISTING | FA_READ); Библиотека ff.h программной сре- директория с таким именем уже су- f_read(&file2, img3, f_size(&file2), &br2)) ды CodeVisionAVR содержит ряд ществует; на экран графического дисплея, начи- функций для управления файловой − FR_DENIED – файл или директория ная с позиции х = 43, y = 30 (glcd_ структурой внешней памяти, среди не могут быть созданы или пере- putimage(43,30,img3,GLCD_PUTCOPY)). которых: мещены по неизвестной причине; ● f_rename(const char* path_old, const − FR_NOT_READY – доступ к карте па- Определение количества байтов для мяти невозможен из-за отсутствия её записи в файл 9.txt и чтения из файла в char* path_new) – функция переиме- подключения или по другой причине; представленном фрагменте кода реали- нования размещённых на карте па- − FR_WRITE_PROTECTED – носитель мяти файлов или директорий, где защищён от записи; path_old – указатель на старое имя − FR_DISK_ERR – ошибка доступа к карте памяти; − FR_INT_ERR – внутренняя ошибка кар- ты памяти или файловой системы FAT; Реклама 66 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ − FR_NOT_ENABLED – логический − FR_WRITE_PROTECTED – созда- − FR_INVALID_NAME – неверное имя диск не был смонтирован с помо- ние директории невозможно, файла или директории; щью функции f_mount; потому что носитель защищён от записи; − FR_INVALID_DRIVE – неверный но- − FR_NO_FILESYSTEM – на физиче- мер устройства; ском носителе отсутствует коррект- − FR_DISK_ERR – ошибка доступа к ный раздел FAT; карте памяти; − FR_DENIED – файл или дирек- тория не могут быть удалены по ● f_mkdir (const char* path) – функция − FR_INT_ERR – внутренняя ошибка одной из следующих причин: создания новой директории на кар- карты памяти или файловой систе- для файла/директории установ- те памяти, где path – номер устрой- мы FAT; лен атрибут «только для чтения», ства и имя директории для создания. директория содержит файлы и Функция возвращает следующие зна- − FR_NOT_ENABLED – логический папки; чения: диск не был смонтирован с помо- − FR_OK – успешное выполнение щью функции f_mount; − FR_NOT_READY – доступ к карте па- функции; мяти невозможен из-за отсутствия − FR_NO_PATH – указанный в пере- − FR_NO_FILESYSTEM – на физиче- её подключения или по другой при- менной path путь для создания ди- ском носителе отсутствует коррект- чине; ректории не найден; ный раздел FAT; − FR_INVALID_NAME – неверное имя − FR_WRITE_PROTECTED – удаление директории; ● f_unlink(const char* path) – функ- директории/файла невозможно, по- − FR_INVALID_DRIVE – неверный но- ция удаления файлов и директорий тому что носитель защищён от за- мер устройства; на карте памяти, где path – номер писи; − FR_EXIST – директория с указанным устройства и имя файла или дирек- именем уже существует; тории. Функция возвращает следую- − FR_DISK_ERR – функция не может − FR_DENIED – отсутствует свободное щие значения: быть выполнена из-за отсутствия место на карте памяти; − FR_OK – успешное выполнение доступа к карте памяти; − FR_NOT_READY – доступ к карте па- функции; мяти невозможен из-за отсутствия её − FR_NO_FILE – указанный для уда- − FR_INT_ERR – внутренняя ошибка подключения или по другой причине; ления файл или директория не су- карты памяти или файловой систе- ществуют; мы FAT; − FR_NO_PATH – указанный путь от- сутствует; − FR_NOT_ENABLED – логический диск не был смонтирован с помо- щью функции f_mount; Тестирование электроники в эпоху миниатюризации Хотите узнать больше о наших технологиях и продукции? Свяжитесь с нами по электронной почте [email protected] или посетите наш сайт www.jtag.com. Более 25 лет в самом Клиенты в более По всему миру продано Более 2500 Поддержка по Как разрабатывать, производить и Реклама сердце электроники клиентов всему миру тестировать высококачественные чем 50 странах более 10 000 систем электронные изделия с меньшими затратами и в короткие сроки? Загрузите нашу брошюру СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 67

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ аб Рис. 18. Образ карты памяти: до (а) и после (б) применения функций создания, переименования и удаления файлов и папок Листинг 3 − FR_NO_FILESYSTEM – на физиче- ском носителе отсутствует коррект- #include <mega32.h> // Подключение заголовочных файлов ный раздел FAT. #include <ff.h> Перед выполнением функций пере- interrupt [TIM1_COMPA] void timer1_compa_isr(void) именования и удаления открытые объ- {disk_timerproc();} // Вызов функции синхронизации екты должны быть закрыты. void main(void) // Основная функция программы Рассмотрим работу с функциями на { конкретном примере. Для этого созда- FATFS fat; // Выделение рабочей области памяти для логического диска дим с помощью программы WinImage образ карты памяти, добавим в образ две // Инициализация порта PB микроконтроллера папки dir и sub1 и текстовые файлы s.txt, DDRB=(1<<DDB7) | (0<<DDB6) | (1<<DDB5) | (1<<DDB4) | (0<<DDB3) | 1.txt, 2.txt, 8.txt (см. рис. 18а). Сохраним (0<<DDB2) | (0<<DDB1) | (0<<DDB0); образ в папке FAT16 в каталоге с проек- PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | том Proteus c расширением .ima и введём (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); вручную путь к файлу образа и его имя в поле Card Image File в окне свойств карты // Инициализация таймера памяти. Используя представленные функ- TCCR1A=0x00; ции, переименуем уже имеющийся на кар- TCCR1B=0x0D; те памяти файл s.txt и папку sub1, создадим TCNT1H=0x00; две новые директории sub2 и dir2 и удалим TCNT1L=0x00; файл 8.txt и папку dir (см. рис. 18б). Текст OCR1AH=0x00; программы представлен на листинге 3. OCR1AL=0x4E; TIMSK=0x10; Введём текст программы в окне кода #asm(\"sei\") CodeVisionAVR и запустим компиля- цию. После чего перейдём в Proteus и f_mount(0, &fat); // Выделение рабочей области памяти для логического в окне свойств микросхемы ATmega32 раздела укажем путь к файлу прошивки на f_rename(\"s.txt\", \"new.txt\"); // Переименование файла диске компьютера. Запустим симуля- f_rename(\"/sub1\", \"/newsub1\"); // Переименование папки цию собранной схемы (см. рис. 19), в f_mkdir(\"0:/sub2\"); // Создание новой папки sub2 результате чего будет выполнено мон- f_mkdir(\"0:/dir2\"); // Создание новой папки dir2 тирование карты памяти, переимено- f_unlink(\"0:/dir\"); // Удаление папки dir вание текстового файла и папки, созда- f_unlink(\"0:/8.txt\"); // Удаление файла ние двух новых директорий, удаление } директории и файла на карте памяти. Рис. 19. Симуляция схемы управления файловой структурой карты памяти с помощью Литература микроконтроллера ATmega32 в редакторе ISIS программы Proteus 1. Колесникова Т. Проектирование схем 68 WWW.SOEL.RU микроэлектронных устройств с исполь- зованием внешней памяти в Proteus. Ч. 1 // Современная электроника. 2021. № 6. 2. ISIS Help, Labcenter Electronics, 2014. 3. CodeVisionAVR Help, HP InfoTech, 2014. 4. HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver). Hitachi, Ltd. 1998. СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ОФИЦИАЛЬНЫЙ ДИСТРИБЬЮТОР

ВОПРОСЫ ТЕОРИИ О декорреляции принимаемых сигналов при классификации объектов по межчастотному корреляционному признаку Владимир Бартенев ([email protected]) С целью преодолеть данный недоста- ток и повысить быстродействие без сни- В статье рассмотрена проблема классификации радиолокационных жения эффективности классификации целей по их продольному размеру с использованием межчастотного объектов по их продольному размеру корреляционного признака. Для повышения быстродействия предлагается способ классификации за классификации за один обзор РЛС предлагается предварительно один обзор, в котором предварительно производить декорреляцию принимаемых сигналов на каждой из до формирования оценки модуля меж- несущих частот. частотного коэффициента корреляции производят на каждой несущей часто- Предлагаемый способ повышения дого элемента дальности, и нормирован- те декорреляцию выборок наблюде- быстродействия классификации относит- ный модуль накопленного произведения ния для уменьшения их межпериодной ся к цифровой обработке радиолокацион- сравнивается с порогом. Полученная таким корреляции. Декорреляцию выборок ных сигналов. Задача классификации кор- образом оценка максимального правдопо- наблюдения можно выполнить с помо- релированных сигналов по дискретным добия модуля межчастотного коэффици- щью обеляющего фильтра с конечной выборкам конечного объёма возникает во ента корреляции сравнивается с порогом импульсной характеристикой (КИХ- многих технических приложениях. Весь- в каждом элементе дальности, на основа- фильтр), использующего в качестве ма актуальна, например, задача распозна- нии чего принимается решение о нали- весовых коэффициентов оценки коэф- вания типов целей [1] или защита РЛС от чии объекта с большим продольным раз- фициентов авторегрессии (AР). Извест- дискретных коррелированных мешающих мером (порог не превышен) или с малым но несколько методов оценки коэф- отражений [2]. В работе [2] показано, что продольным размером (порог превышен). фициентов AР. Далее для этого будет для классификации отражённых сигналов использован метод Берга [4]. обнаруженных объектов по их продоль- Данный способ позволяет осущест- ному размеру можно использовать харак- влять эффективную классификацию Рассмотрим известный и предлагае- тер флюктуаций отражённых сигналов на объектов по межчастотному корреля- мый способы более подробно. разных несущих частотах. В частности, в ционному признаку, однако требует основе этого сигнального признака клас- использования независимых выборок Для того чтобы сформировать меж- сификации лежит взаимосвязь значения наблюдения, что приводит к исполь- частотный коэффициент корреляции, нормированного межчастотного коэффи- зованию выборки принимаемых сиг- используют наиболее эффективный циента корреляции с линейными разме- налов от обзора к обзору, приводя к алгоритм в виде оценки максимального рами объекта. Чем больше размер объекта, большим временны′ м затратам. Если правдоподобия (ОМП) модуля межча- тем меньше межчастотный коэффициент же использовать выборки наблюдений стотного коэффициента корреляции, корреляции. Также известен способ клас- в одном обзоре, производя формиро- которая выполняется в соответствии с сификации объектов по их продольному вание оценки модуля межчастотного формулой (1) [2], где – оценка модуля размеру, при котором выборки значений коэффициента по коррелированным межчастотного коэффициента корре- отражённых от объекта сигналов, получен- выборкам пачки отражённых сигна- ляции, N – число накоплений по неза- ные при двух разнесённых несущих часто- лов, то, как показано в [3], это приве- висимым выборкам (обзорам РЛС). тах РЛС, перемножаются, их произведение дёт к существенному снижению веро- накапливается от обзора к обзору для каж- ятности правильной классификации – комплекс- объектов. ные выборки классифицируемых эхо- сигналов на входе в двух частотных (1) каналах. Квадратурные компоненты классифицируемых флюктуирующих (2) сигналов имеют нормальное распреде- (3) ление, при этом без уменьшения общно- (4) сти подхода, так как данный алгоритм (5) не чувствителен к изменению мощно- сти сигналов мешающих отражений, дисперсия их равнялась 1, и среднее – 0. Решение о том, что классифициру- емый объект – протяжённый, прини- мается, если выполняется условие (2). Проиллюстрируем работу известного способа на конкретном примере, при- бегнув как к аналитическому расчету, так и к моделированию с помощью системы MATLAB [5]. 70 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ВОПРОСЫ ТЕОРИИ 1 1 0,9 0,9 0,8 0,8 0,7 0,7 0,6 0,6 0,5 0,5 0,4 0,4 0,3 0,2 0,3 0,2 0,1 0,1 0 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 0 Порог 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 Порог Рис. 2. Зависимость вероятности правильной классификации протяжённых объектов от порога для N = 16 в классификаторе Рис. 1. Зависимость вероятности правильной классификации с независимыми выборками наблюдений (звёздочки – аналитика, протяжённых объектов от порога для N = 8 в классификаторе квадраты – моделирование) с независимыми выборками наблюдений (звёздочки – аналитика, квадраты – моделирование) 1 0,9 1 0,9 0,9 0,9 0,8 0,8 0,7 0,7 0,6 0,6 0,5 0,5 0,4 0,4 0,3 0,3 0,2 0,2 0,1 0,1 0 0 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 Порог Порог Рис. 3. Зависимость вероятности правильной классификации Рис. 4. Зависимость вероятности правильной классификации протяжённых объектов от порога для N = 8 в классификаторе протяжённых объектов от порога для N = 16 в классификаторе для некоррелированных выборок наблюдений (квадратики), для некоррелированных выборок наблюдений (квадратики), для коррелированных выборок наблюдений с межпериодным для коррелированных выборок наблюдений с межпериодным коэффициентом корреляции 0,9 (кружки) и с использованием коэффициентом корреляции 0,9 (кружки) и с использованием декорреляции (крестики) декорреляции (крестики) Осуществим классификацию протя- распределением Уишарта. В работе [5] как вероятность непревышения поро- жённого объекта, используя две выбор- получено распределение оценки мак- га (см. (5)). ки наблюдений с межчастотным коэф- симального правдоподобия (ОМП) для фициентом корреляции равным R = 0. модуля межчастотного коэффициента Для верификации данной форму- Корреляционный порог в расчётах корреляции из распределения Уишар- лы было проведено моделирование с будем менять от 0,1 до 0,9. Число неза- та, где Г(.) – гамма-функция (3). помощью системы MATLAB [6] клас- висимых накоплений (обзоров) возь- сификатора ОМП с расчётом для раз- мём N = 8 и 16. Для протяжённых объектов R = 0 и ных значений порога Rпор и N = 8 и 16 распределение (3) можно представить (см. рис. 1 и 2, соответственно). Для нахождения вероятности пра- в более простом виде (4). вильной классификации протяжён- Результаты моделирования хорошо ного объекта по непревышению оцен- Используя (4), можно получить фор- совпадают с аналитическими расчётами, кой порога Rпор нужно воспользоваться мулу для вероятности правильной клас- что позволяет и для дальнейших иссле- сификации протяжённых объектов, дований использовать моделирование. СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 WWW.SOEL.RU 71

ВОПРОСЫ ТЕОРИИ Графики на рис. 1 и рис. 2 соответ- рованность выборок наблюдения ре декорреляция позволяет получить ствуют независимым выборкам наблю- заметно снижает эффективность клас- вероятность правильной классифи- дения, т.е. приёму отражённых сигна- сификации. Так, при 16 коррелирован- кации практически такую же, как при лов за несколько обзоров РЛС. Однако ных выборках наблюдений с межпе- использовании независимых выборок для повышения скорости принятия риодным коэффициентом корреляции за 16 обзоров. решения рассмотрим другой случай, 0,9 вероятность правильной классифи- когда для формирования модуля меж- кации для порога 0,4 падает с 0,9 до 0,3. Литература частотного коэффициента корреляции Повысить эффективность классифика- обрабатываются сигналы в виде корре- ции при работе за один обзор можно в 1. Bartenev V. Radar objects classification using лированной пачки импульсов на каж- соответствии с предлагаемым спосо- inter frequency correlation coefficient. дой частоте в одном обзоре. бом с помощью декорреляции выбо- Report on the International conference рок наблюдения на каждой несущей RADAR 2016. China, Oct. 2016. К сожалению, аналитически рас- частоте. Такая декорреляция была считать вероятность правильной выполнена с помощью авторегресси- 2. Бартенев В.Г. Патент «Способ класси- классификации протяжённого объ- онной КИХ-фильтрации по алгорит- фикации и бланкирования дискрет- екта в этом случае не представляет- му Берга. ных помех» № 2710894 // Опубликован: ся возможным, и результаты были 14.01.2020. Бюл. № 2. получены только моделировани- Результаты моделирования c декор- ем в MATLAB. Для этого использова- реляцией для авторегрессии третьего 3. Бартенев В.Г. О некоторых особенностях лась модель отражённых сигналов порядка представлены на рис. 3, 4. формирования межчастотного корреля- на каждой частоте в виде коррелиро- ционного признака // Современная элек- ванной пачки импульсов с нормаль- Результаты исследования полностью троника. 2021. № 3. но распределёнными квадратурны- подтверждают, что применение декор- ми составляющими. Межпериодный реляции выборок наблюдения при 4. Бартенев В.Г. Квазиоптимальные адап- коэффициент корреляции задавался работе в одном обзоре заметно повы- тивные алгоритмы обнаружения сигна- 0,9 для числа импульсов в пачке 8 и шает эффективность классификации лов // Современная электроника. 2011. 16. Результаты моделирования пред- при существенном повышении быстро- № 2. ставлены на рис. 3, 4 . действия этой операции. Так, уже при 16 коррелированных выборках наблю- 5. Бартенев В.Г. О распределении оценки Результаты исследования полно- дения с межпериодным коэффици- модуля коэффициента корреляции// стью подтверждают, что коррели- ентом корреляции 0,9 в одном обзо- Современная электроника. 2020. № 8. 6. Потемкин В.Г. Справочник по MATLAB. Ана- лиз и обработка данных // URL: http://matlab. exponenta.ru/ml/book2/chapter8/. INDUSTRIAL ELECTRONIC ENGENEERS ОФИЦИАЛЬНЫЙ ДИСТРИБЬЮТОР 72 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021

ОТВЕТСТВЕННАЯ ЭЛЕДКТЛРЯОНЖИКЕАСТКИХ УСЛОВИЙ ЭКСПЛУАТАЦИИ 100% РОССИЙСКАЯ КОМПАНИЯ ЗАКАЗНЫЕ РАЗРАБОТКИ КОНТРАКТНОЕ ПРОИЗВОДСТВО Разработка электронного оборудования Контрактная сборка электроники уровней: по ТЗ заказчика в кратчайшие сроки модуль / узел / блок / шкаф / комплекс • Модификация КД существующего изделия • ОКР, технологические консультации и согласования • Разработка спецвычислителя на базе • Макеты, установочные партии, постановка в серию • Полное комплектование производства импортными COM-модуля • Конфигурирование модульного и отечественными компонентами и материалами • Поддержание складов, своевременное анонсирование корпусированного изделия • Сборка магистрально-модульной системы снятия с производства, подбор аналогов • Серийное плановое производство по спецификации заказчика • Тестирование и испытания по методикам и ТУ • Разработка изделия с нуля • Гарантийный и постгарантийный сервис (495) 232-2033 • WWW.DOLOMANT.RU • (495) 739-0775 Реклама

Реклама


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook