УДК 618.19-006-07:616.073.756.8-027.552
Разработка программного обеспечения для многопроцессорной
архитектуры персонального электроимпедансного маммографа ПЭМ
И.
К. Лакеев, А. В. Корженевский, Т. С. Туйкин
ИРЭ
им. В.А. Котельникова РАН, 125009, Москва, ул. Моховая 11, корп.7
Статья
поступила в редакцию 8 декабря 2017 г.
Аннотация.
Предложен способ
решения проблемы синхронизации нескольких микроконтроллеров с помощью состояния
легкого сна и последующего пробуждения в процессе сбора полного набора данных с
помощью многопроцессорной архитектуры измерительной системы персонального
электроимпедансного маммографа, в виду несостоятельности подхода синхронизации
исключительно с помощью прерываний. Показано, что безошибочное использование
одного канала UART со стороны управляющего
микроконтроллера для обслуживания двух каналов зависимых микропроцессоров
возможно в случае конфигурации каналов в режиме только по требованию. Предложен
подход к разработке и отладке программного обеспечения, позволяющий существенно
сократить затрачиваемое время на получение устойчивого решения за счет использования
сред, в основе которых лежит язык программирования python, поддерживающих управление параллельными кластерами,
что позволяет отказаться от линейного подхода к разработке. Это было
продемонстрировано на примере непоследовательного анализа данных, полученных от
измерительной системы, на необходимом уровне абстракции в любой
последовательности.
Ключевые
слова: программно-аппаратный
комплекс, многопроцессорная архитектура, проблемы синхронизации, разработка и
отладка, язык программирования python.
Abstract. Optimized software development for symmetric multiprocessing systems,
especially the low-level ones, has always been hard in terms of achieving
sustainable operational level with reasonable effort and in acceptable time. Through
the process of personal electrical impedance mammograph software development
and debugging it was shown that major drawback of Harvard-type architecture,
implemented in modern AVR microprocessors, may be an issue in terms of precise
interrupt-driven synchronization between several elements of the multiprocessor
architecture because of the different length of commands and therefore often
unpredictable execution timing before finishing the very last command and
entering the particular interruption, that can be successfully mitigated in two
steps: initial configuration of the job that needs to be done with respect to
timing which should be followed by light sleep state and further
synchronization interruption that will be able to wake up the modules and
provide exact timing. It was also shown that during parallel usage of one UART
of the micro controller unit to serve two dependent units one may experience
frame errors unless UART reconfigured on demand. Utilization of any
python-based computational environments that support special kernels with
enhanced introspection and parallel computing clusters management with the help
of asynchronous status callbacks can significantly improve the development
process speeding up the debugging routine. It is shown in the example of
personal electrical impedance mammograph software development and debugging,
especially on the late stages of development when the level of abstraction gets
higher, particularly on the examples of experiment data results assessment on
multiple levels from raw data to reconstructed images.
Keywords: hardware and software system, multiprocessing system, synchronization
problem solving, debugging and development, python.
Ссылка на статью:
И. К. Лакеев, А. В.
Корженевский, Т. С. Туйкин. Разработка программного
обеспечения для многопроцессорной архитектуры персонального электроимпедансного
маммографа ПЭМ. Журнал радиоэлектроники [электронный журнал]. 2017. №12.
Режим доступа: http://jre.cplire.ru/jre/dec17/9/text.pdf