Объектно-ориентированное проектирование DSP-систем в телекоммуникациях Подготовил: Сергеев Виктор Николаевич СПбГУ, математико-механический Факультет, кафедра Системного программирования Научный руководитель: к. ф-м. н. Фоминых Н. Ф. Рецензент: Просеков О. В. Цели Создание объектноориентированного языка для визуального описания архитектуры разрабатываемых DSP-систем. Создание генератора ANSI C кода для визуальной модели. Существующие технологии и методологии UML (Unified Modeling Language) ROOM (real time object oriented modeling language) Simulink Blocksets компонента пакета Matlab Внешние команды Общее представление системы Внешние команды Выходные данные Блок ввода вывода данных Обработанные данные Внутренние команды Входные данные Данные на обработку Блок настройки и управления системой Блок обработки данных Общее представление системы Блок ввода/вывода данных предоставляет доступ системы к внешним данным. Блок настройки и управления системой включает в себя планировщик процессов системы и обработчик внешних команд. Блок обработки данных содержит непосредственно алгоритмы цифровой обработки сигналов. Общее представление системы Планировщик процессов работает по алгоритму RMS (Rate Monotonic Scheduling) В системе присутствует два вида процессов: – Синхронные. (Не зависим от внешних событий) – Асинхронные. (Зависимы от внешних событий) Архитектура системы Средство Визуального проектирования Визуальная модель в XMI формате Генератор кода C исходный код Обзор языка визуального моделирования VisDSP Содержит – Классы – Объекты – Интерфейсы – Связи Визуальная модель состоит из: – Диаграмма классов. – Диаграмма объектов. Обзор языка визуального моделирования Блок ввода/вывода данных: – IO_Port – Interruption_Handler Блок настройки и управления системой: – Entry_Point – Func_Module_Dispatcher – Command_Handler Блок обработки данных: – Async_Module – Sync_Module Генератор кода Данные в формате XMI Модуль Чтения XMI Компоненты модели во внутреннем представлении Генератор кода Текстовый выход void Dispatcher_Dispatcher(){ int i = 0; int i1 = 0; int i2 = 0; int i3 = 0; int i4 = 0; while(1) { for(i = 0; i < Dispatcher_NumOfSyncModules;i++) { for(i1 = 0; i1 < Dispatcher_SyncModuleList[i].NumOfObject;i1++) { Dispatcher_SyncModuleList[i].Idle_func(i1); if(Dispatcher_IsInterapt) { Dispatcher_IsInterapt = 0; for(i2 = 0; i2 < Dispatcher_NumOfInterapt; i2++) { if(Dispatcher_EventArr[i2]) { Dispatcher_EventArr[i2] = 0; for(i3 = 0; i3 < Dispatcher_NumOfAsyncModules; i3++) { if(Dispatcher_AsyncModuleList[i3].Interapt_Id == i2) { for(i4 = 0; i4 < Dispatcher_AsyncModuleList[i3].NumOfObject; i4++) { Dispatcher_AsyncModuleList[i3].Idle_func(i4); } } } } } } } } } } void Dispatcher_SetEvent(int Event_Id) { Dispatcher_EventArr[Event_Id] = 1; Dispatcher_IsInterapt = 1; } void EDMA_Handler() { Dispatcher_SetEvent(EDMA_Id); Достигнутые результаты Реализован язык визуального моделирования VisDSP Разработан генератор С кода. В качестве инструмента моделирования используется среда MS Visio. Вопросы