|
Как описывать архитектуру девайса |
|
|
|
Jun 13 2018, 16:36
|

Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 13-03-12
Из: Украина
Пользователь №: 70 785

|
Добрый день! Такой вопрос, кто как составляет структуру, алгоритмы высокого уровня для своих девайсов? Я вот долго накатывал какие-то узлы, блоки, из которых можно потом сооружать новые девайсы с минимальными доработками. Но доработки постоянно приходилось вносить внушительные. Оказалось, что я ни разу не анализировал все взаимосвязи ни аппаратных, ни программных частей - просто рисовал в тетрадке и по ходу рисовал схему, писал код. Пока оно все в голове помещалось. Сейчас я уже понимаю, чтобы была уверенность в том, что все будет работать правильно, в голову всего набивать не надо, а надо в цифровом виде. Если конкретно, вот полная структурная схема девайса, нарисованная в визио. Компоненты в синем ящике - периферия проца, пакаджи - софтовые модули. Компоненты на свободном поле - участки схемы, в белых ящичках - коннекторы и соответствующие им входные цепи. Входа компонентов обозначены как интерфейсы (кружками), я старался размещать их слева. Например, модуль OutExt имеет процедуру SetOut, которая вызывается из модулей UserIF и Evt, и выдает наружу сигналы через выводы Ch1 и Ch2 и через периферию SPI. Местами путаница, но это промежуточный вариант, т. к. визио показался мне не самым удобным инструментом для даной задачи. Вот я и хочу спросить, кто в каком редакторе составляет такие диаграммы? Может быть, хотя бы для чисто софтовых проектов? На мой взгляд это должен быть UML, пока что только для структуры. За описание процессов я может потом спрошу
--------------------
нет повести печальнее на свете, чем повесть о запавшем ресете
|
|
|
|
|
 |
Ответов
|
Jun 14 2018, 03:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884

|
Цитата(Hexel @ Jun 13 2018, 20:36)  Такой вопрос, кто как составляет структуру, алгоритмы высокого уровня для своих девайсов? Я вот долго накатывал какие-то узлы, блоки, из которых можно потом сооружать новые девайсы с минимальными доработками. Но доработки постоянно приходилось вносить внушительные. Оказалось, что я ни разу не анализировал все взаимосвязи ни аппаратных, ни программных частей - просто рисовал в тетрадке и по ходу рисовал схему, писал код. Пока оно все в голове помещалось. Сейчас я уже понимаю, чтобы была уверенность в том, что все будет работать правильно, в голову всего набивать не надо, а надо в цифровом виде. Я для себя стал сводить проекты в Excel-е: делаю табличку: сверху вниз тип узла, по горизонтали девайсы, в табличке количество: Spi 2 Adc 3, и тд. Так описывается семейство устройств. На строчку ниже удобно в похожем виде описать каждое устройство: сверху вниз тип узла (одинаково с 1), по горизонтали функция каждого конкретного канала. Так в таблице получается как сводная информация по семейству устройств, так и расшифровка узлов каждого. Есть проблема с иерархией: вход может быть adc с разными функциями (усилитель, делитель, сух.конт...) но пока у меня это укладывается в плоскую схему: все они подкласс In: InAdcAmp, InDiscrDiv.... При разработке семейства устройств такая схема позволяет хорошо описывать основную функцию каждого отдельного устройства, и продумывать концепцию всей линейки. Родился этот подход из таблицы для всех девайсов, которые стояли в очереди на разработку (их в какой-то момент стало много). Когда все потребности сведены в такую таблицу, она хорошо показывает, где можно малой кровью сделать одну универсальную плату на несколько устройств, а где неизбежно придется делать несколько плат, тк требования по ресурсам несовместимые: меняя столбцы местами, можно скомпоновать таблицу так, что она разобьется на явные подгруппы: рядом будет стоять то что хорошо совпадает, и будет несколько сильно разных подгрупп. Набор узлов, их функции, и алгоритм их работы ИМХО на схеме совмещать бессмысленно: они хоть и связаны, но суть и производные, соотв. складывать их вместе теплое с мягким. Я описал алгоритм для устройств одноранговых, простых. Как правильно заметил AlexandrY в случае сложных устройств требуется иерархия. К сожалению в связи со спецификой ПП, при переходе к трассировке все иерархии складываются в один уровень. Поэтому имхо, для сложных иерархических схем, оптимизацию труда способом описанным выше можно провести только до уровня принципиальных схем. А дальше печатная плата, наложив свои ограничения, скорее всего, заставит каждый раз перетрассировать все заново. Я имею в виду, что нормальные иерархические блоки: схема+плата я не видел ни в альтиуме ни в менторе, а кэденс мы увы не разумеем(
--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
|
|
|
|
|
Jun 14 2018, 06:16
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(a123-flex @ Jun 14 2018, 06:38)  Когда все потребности сведены в такую таблицу, она хорошо показывает, где можно малой кровью сделать одну универсальную плату на несколько устройств, Кстати да, хороший вариант. Сделать универсальный процессорный модуль и сделать в нем базовый программный фреймворк с RTOS, GUI, FS, RF, CAN и проч. Тогда и диаграммы станут очень компактными и софт будет просто небольшой надстройкой над фреймворком А новые платы типа такой можно будет шлепать каждые две недели.
|
|
|
|
Сообщений в этой теме
Hexel Как описывать архитектуру девайса Jun 13 2018, 16:36 AlexandrY Цитата(Hexel @ Jun 13 2018, 19:36) Компон... Jun 13 2018, 20:18  a123-flex Цитата(AlexandrY @ Jun 14 2018, 10:16) Кс... Jun 14 2018, 07:34   AlexandrY Цитата(a123-flex @ Jun 14 2018, 10:3... Jun 14 2018, 07:43    a123-flex Цитата(AlexandrY @ Jun 14 2018, 11:43) Не... Jun 14 2018, 07:58     AlexandrY Цитата(a123-flex @ Jun 14 2018, 10:5... Jun 14 2018, 08:18 Hexel Ексель - хороший вариант, но на данный момент я со... Jun 14 2018, 06:46 a123-flex Цитата(Hexel @ Jun 14 2018, 10:46) Что ка... Jun 14 2018, 06:55 AlexandrY Цитата(Hexel @ Jun 14 2018, 09:46) Что ка... Jun 14 2018, 07:31 one_eight_seven Цитата900 пинов эт когда вы DDR хотите сделать на ... Jun 14 2018, 10:58 AlexandrY Цитата(one_eight_seven @ Jun 14 2018, 13... Jun 14 2018, 11:34 a123-flex Цитата(one_eight_seven @ Jun 14 2018, 14... Jun 14 2018, 12:08 one_eight_seven ЦитатаВ это трудно поверить, но в yed нельзя даже ... Jun 14 2018, 14:37 Hexel one_eight_seven
Нормальная такая штука этот yed. П... Jun 14 2018, 16:18 a123-flex Цитата(Hexel @ Jun 14 2018, 19:18) А что ... Jun 14 2018, 19:04 p_v Давайте начнем с нуля. Для начала, вы должны четко... Jun 18 2018, 07:31 AlexandrY Цитата(p_v @ Jun 18 2018, 10:31) Инструме... Jun 18 2018, 08:22  p_v Давайте не будем пытаться устраивать холивар и тем... Jun 18 2018, 08:53   AlexandrY Цитата(p_v @ Jun 18 2018, 11:53) Давайте ... Jun 18 2018, 10:26    p_v Цитата(Hexel @ Jun 13 2018, 19:36) Вот я ... Jun 18 2018, 10:59 a123-flex Цитата(p_v @ Jun 18 2018, 10:31) На самом... Jun 20 2018, 10:35  p_v Цитата(a123-flex @ Jun 20 2018, 13:3... Jun 20 2018, 11:10   a123-flex Цитата(p_v @ Jun 20 2018, 14:10) Это из м... Jun 20 2018, 11:38    p_v Цитата(a123-flex @ Jun 20 2018, 14:3... Jun 20 2018, 12:17     a123-flex Цитата(p_v @ Jun 20 2018, 15:17) Да сам н... Jun 20 2018, 12:38     AlexandrY Цитата(p_v @ Jun 20 2018, 15:17) Мне врем... Jun 20 2018, 12:41      p_v Цитата(AlexandrY @ Jun 20 2018, 15:41) Но... Jun 20 2018, 13:21       AlexandrY Цитата(p_v @ Jun 20 2018, 16:21) Просто н... Jun 20 2018, 13:48        p_v Хоссподя... ну вот человек только что с треском об... Jun 20 2018, 14:44    AlexandrY Цитата(a123-flex @ Jun 20 2018, 14:3... Jun 20 2018, 12:24  AlexandrY Цитата(a123-flex @ Jun 20 2018, 13:3... Jun 20 2018, 11:28 one_eight_seven ЦитатаСкажем честно
1. Кто вам дал право определя... Jun 18 2018, 10:28 AlexandrY Цитата(one_eight_seven @ Jun 18 2018, 13... Jun 18 2018, 11:04 p_v Давайте допустим такой вариант, что я могу как мин... Jun 18 2018, 11:30 AlexandrY Цитата(p_v @ Jun 18 2018, 14:30) Давайте ... Jun 18 2018, 12:22  p_v Цитата(AlexandrY @ Jun 18 2018, 15:22) Пр... Jun 18 2018, 13:23   AlexandrY Цитата(p_v @ Jun 18 2018, 16:23) Это ваше... Jun 18 2018, 19:32  a123-flex Цитата(AlexandrY @ Jun 18 2018, 15:22) Ре... Jun 19 2018, 20:33 p_v Теперь пройдемся еще раз по диаграммам. А точнее, ... Jun 18 2018, 15:41 p_v Теперь по инструментам. Лично у меня очень экстрем... Jun 18 2018, 18:13 one_eight_seven Цитатаданном проекте речь о проектировании машины ... Jun 18 2018, 19:55 p_v У ВАС на ВАШИХ задачах - свой опыт. У МЕНЯ на МОИХ... Jun 18 2018, 20:00 AlexandrY Цитата(p_v @ Jun 18 2018, 23:00) Я отвеча... Jun 18 2018, 20:18  p_v Цитата(AlexandrY @ Jun 18 2018, 23:18) А ... Jun 18 2018, 21:02 Hexel сейчас я между прочим пытаюсь применить sybase PD1... Jun 20 2018, 07:04 AlexandrY Цитата(Hexel @ Jun 20 2018, 10:04) сейчас... Jun 20 2018, 08:57 Hexel p_v
Пожалуста, не нужно развивать этот спор. Вы по... Jun 20 2018, 15:37 p_v Цитата(Hexel @ Jun 20 2018, 18:37) ...
Ко... Jun 20 2018, 16:31  a123-flex Цитата(p_v @ Jun 20 2018, 20:31) Когда за... Jun 20 2018, 17:54   p_v Цитата(a123-flex @ Jun 20 2018, 20:5... Jun 20 2018, 18:08    a123-flex Цитата(p_v @ Jun 20 2018, 22:08) Железку,... Jun 20 2018, 18:19     p_v Цитата(a123-flex @ Jun 20 2018, 21:1... Jun 20 2018, 19:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|