Mój ostatni wpis na blogu na temat zarządzania sieciami zasilającymi przyciągnął dużą liczbę bardzo interesujących i pouczających komentarzy. Dla mnie było to bardzo budujące, widzieć tak wiele osób angażujących się w dyskusję. Wszystkie te wkłady pomogły mi zrozumieć, jak obszerny i skomplikowany może być obszar zarządzania energią.
Mój ostatni wpis na blogu na temat zarządzania sieciami zasilającymi przyciągnął dużą liczbę bardzo interesujących i pouczających komentarzy. Dla mnie było to bardzo budujące, widzieć tak wiele osób angażujących się w dyskusję. Wszystkie te wkłady pomogły mi zrozumieć, jak obszerny i skomplikowany może być obszar zarządzania energią. Jest to również oczywiście obszar wielkiej wagi dla was wszystkich, niezależnie od rodzajów projektów, które realizujecie.
Wiele z tych komentarzy oferuje świetne sugestie i pomysły. Chciałbym spróbować zebrać to wszystko w spójny i zorganizowany sposób, który mam nadzieję wskaże widoczną i użyteczną drogę naprzód.
Chciałbym podejść do tego, zaczynając od lepszego zdefiniowania i klasyfikacji problemów, które muszą być rozwiązane, aby zarządzanie energią było mniej "energochłonne" (przepraszam za grę słów) dla Ciebie. Następnie, dla każdego problemu lub klasy problemów, postaram się zaproponować możliwe podejścia do rozwiązań, starając się oszacować wysiłek rozwojowy potrzebny do ich wdrożenia.
Pierwsze typy problemów są elementarne.
Każda sieć zasilająca (zestaw sieci zaangażowanych w dostarczanie energii do komponentów) powinna ostatecznie być połączona z jakimś zewnętrznym źródłem zasilania. Każde zewnętrzne źródło zasilania również powinno dostarczać energię gdzieś indziej. W danej sieci zasilającej, podstawowe ograniczenia budżetowe powinny być respektowane (wyprodukowana moc powinna być większa lub równa zużywanej mocy, zakresy napięć roboczych urządzeń podłączonych do wspólnej sieci powinny się zgadzać). Ponadto, tam gdzie sieci zasilające wchodzą w interakcje z sygnałami (mam na myśli podciąganie do góry i do dołu), nie powinny być generowane żadne błędne sygnały, które by zaciemniały prawdziwe błędy.
Następnie pojawiają się problemy bardziej złożonej natury.
Każdy budżet sieci zasilającej powinien być precyzyjnie zarządzany, aby zapewnić, że dostarczona moc jest odpowiednio rozdzielana (dla prawidłowego funkcjonowania różnych części) i ostatecznie zbierana, we wszystkich możliwych warunkach pracy. Kwestią zmartwienia jest ilość prądu dostarczanego przy jakim napięciu (dla strony dostawczej) oraz sposób, w jaki jest on zbierany i zwracany.
Ostatecznie są bardziej zaawansowane kwestie.
Ostatecznie PCB musi być zaprojektowany w sposób, który fizycznie zaspokaja wymagania energetyczne użytych części. Aby uniknąć powtarzalnej pracy i błędów, te ograniczenia projektowe powinny być automatycznie obliczane na podstawie informacji ze schematu. Następnie, aby zweryfikować, czy wynik jest odpowiedni, końcowy projekt PCB powinien być symulowany. Dotyczy to obszarów takich jak projektowanie płaszczyzn zasilania i podziału, zarządzanie trasowaniem, zarządzanie ciepłem, stres części itp.
Dla pierwszej grupy podstawowych problemów, myślę, że mając środki do definiowania sieci zasilającej, jej węzłów i ich podstawowych charakterystyk, powinno być stosunkowo łatwo wykonać podstawowe kontrole i skupić uwagę projektanta na potencjalnych problemach.
Podstawowe kontrole, o których myślę, to:
Ważne pytanie brzmi: jak można byłoby to praktycznie zaimplementować?
Na początek, rozważmy sposób „budowania” sieci energetycznej. Sieć energetyczna to po prostu zbiór sieci zaangażowanych w dostarczanie energii do części, które jej potrzebują.
Uważam, że częściowe prześwity są dobrym mechanizmem do osiągnięcia celu definiowania tego.
Rozumiem, że graficzna reprezentacja zaproponowana w poprzednim poście nie jest adekwatna i całkowicie widzę poruszone kwestie - jak wcześniej przedstawiono, mogą być mylące, wprowadzać w błąd i niepotrzebnie zaśmiecać przestrzeń projektową.
Ich kluczowym celem jest komunikowanie, że dla określonego zamiaru (tutaj, definicji sieci energetycznej) dwie sieci powinny być uznane za połączone. W przypadku zarządzania energią działają one po prostu jako przewody i dlatego powinny być umieszczone na częściach, które nie wpływają na napięcie w znaczący sposób.
Powinno to być odzwierciedlone przez ich zachowanie i graficzną reprezentację. Na ekranie powinny być widoczne tylko w sposób wyraźny - na przykład gdy kursor myszy znajduje się nad zaangażowanym pinem, i/lub zgodnie z pewnymi preferencjami lub ustawieniami. Dokładny sposób ich wyglądu (kiedy i czy w ogóle są widoczne), nie został jeszcze określony. Z pewnością powinna istnieć możliwość wykluczenia ich z wydruków i wyników. Będą również umożliwiały relacje jeden-do-wielu. Będzie możliwe umieszczenie ich zarówno w bibliotece, jak i w kontekście projektu.
Spójrzmy zatem, co byłoby wymagane do zdefiniowania podstawowych cech elektrycznych w sieci zasilającej. Rozumiem, że zastąpienie typu pinu „Zasilanie” dwoma typami „Źródło Zasilania” i „Odbiornik Zasilania”, przy jednoczesnym osadzeniu cech elektrycznych w parametrach pinu, jest popularnym pomysłem. Jednak z kilku powodów sprawia mi to dyskomfort.
Po pierwsze, porusza kwestię aktualizacji danych, zarówno w kontekście biblioteki, jak i projektu. Mając do czynienia ze "starym" pinem zasilającym, należałoby dokonać rozsądnej decyzji przy przechodzeniu na nowe oprogramowanie (czy miał być to pin zasilający czy też odbiorczy?). Biorąc pod uwagę dzisiejszą rzeczywistość, wydaje się, że nie ma łatwych odpowiedzi. Ten sam problem dotyczy kompatybilności wstecznej i danych, które są przesyłane między różnymi wersjami oprogramowania.
Po drugie, opinie zdają się różnić w kwestii nazewnictwa i koncepcji leżących u podstaw tych typów (zasilanie/odbiorczość, dostawa prądu/odbiorczość, odniesienie dodatnie/ujemne...). Pewne zamieszanie może również wprowadzać kwestia ujemnych źródeł zasilania.
Istnieje również problem cech części, które różnią się w zależności od sposobu ich użycia w różnych projektach. Począwszy od regulowanych regulatorów po moc dostarczaną przez generyczne złącza. Modyfikacja samych pinów części w projekcie jest zawsze możliwością, ale jest to podejście obarczone niebezpieczeństwem, jeśli chodzi o rygorystyczne zarządzanie danymi (na przykład podczas korzystania z funkcji Aktualizuj z bibliotek lub Menedżera elementów projektu).
Myślę, że to, co jest tutaj potrzebne do postępu, to bardziej elastyczny system, który pozwala na proste deklarowanie charakterystyk pinów łączących.
W tej perspektywie podoba mi się pomysł "Tagowania" przedstawiony przez Iana. "Power Tag" to po prostu opis połączenia. Jest definiowany przez typ (Producent lub Konsument), moc nominalną, zakres napięć i opis w formie wolnego tekstu. Gdy jest umieszczony na pinie, deklaruje elektryczne charakterystyki tego pinu. Może być umieszczony zarówno w kontekście biblioteki, jak i w kontekście projektu.
Wtedy, mając sieć zasilającą, podstawowe kontrole mogą być łatwo wykonane:
Poniższe obrazy ilustrują ogólne podejście opisane powyżej. W tym przykładzie zdefiniowane są dwie sieci zasilające: 5V0 i 3V3.
Gniazdo zasilające dostarcza 5V0 do całej sieci. Bezpośrednio w schemacie (ponieważ ta sytuacja jest specyficzna dla projektu) tag mocy opisuje charakterystykę mocy pinu gniazda zasilającego, który jest połączony z szyną 5V0.
Przełącznik pozwala włączać i wyłączać zasilanie. Ponieważ sieci +B i 5V0 są częścią tej samej sieci zasilającej i w efekcie mają to samo napięcie, dodane zostają dwie przezroczystości, aby połączyć piny 1 i 3 oraz piny 3 i 2. Przełącznik jest zawsze „przezroczysty”, więc te przezroczystości mogły zostać dodane bezpośrednio do symbolu sch w bibliotece schematów.
Następnie regulator obniża napięcie szyny 5V0 do 3V3.
5V0 jest dostarczane do wzmacniacza mocy audio. Tagi mocy umieszczone na pinach opisują ich charakterystyki. Wartość zużywanej mocy opisuje najgorszy przypadek. Można to zrobić zarówno w środowisku biblioteki schematów, jak i bezpośrednio w schemacie.
3V3 jest dostarczane do kontrolera ekranu dotykowego, którego charakterystyki pinów są opisane przez odpowiednie Tagi Mocy.
Następnie można wykonać proste kontrole mocy na 5V0:
Producenci na 5V0
Pin |
Moc produkowana (W) |
J19-1 |
5 |
Suma |
5 |
Konsumenci na 5V0
Pin |
Moc zużywana (W) |
U1-1 |
1 |
U26-2 |
1.3 |
U26-10 |
1.3 |
U26-15 |
1.3 |
Suma |
4.9 |
Również w tej sieci wszystkie zakresy napięć są zgodne (J19-1 dostarcza 5V0, podczas gdy U1-1 wymaga 2V7~6V0, a U26-2, 10 i 15 potrzebują 4V5~5V0).
Na 3V3 można przeprowadzić te same weryfikacje:
Producenci na 3V3
Pin |
Moc wyprodukowana (W) |
U1-5 |
480 x 10-3 |
Suma |
480 x 10-3 |
Konsumenci na 3V3
Pin |
Moc zużyta (W) |
U48-10 |
80 x 10-6 |
U48-1 |
750 x 10-6 |
U48-9 |
10 x 10-9 |
Suma |
830.01 x 10-6 |
Również w sieci 3V3 zakresy napięć roboczych są zgodne (3.2V~3.4V, 1.2V~ 3.4V, 2.7V~3.6V, 2.7V~3.6V)
Na podstawie tej zmienionej metody zaczynam dostrzegać jasną drogę do wdrożenia skutecznego rozwiązania, które rozwiąże te podstawowe problemy w ciągu kilku miesięcy.
Powinno być również możliwe wyróżnienie całych sieci zasilających na żądanie, z pewnym wskazaniem ich poprawności.
Równie dobrze, prosty mechanizm grupowania producentów razem, używając indeksu grupy w Tagu Zasilania, pozwoli nam wskazać, którzy producenci będą aktywni w tym samym czasie (i więc powinni być sumowani), na przykład dla redundantnych systemów zasilania. System może wziąć to pod uwagę podczas przeprowadzania kontroli.
Chciałbym również zająć się bardziej złożonym problemem wspomaganego zarządzania budżetem mocy.
Rozumiem, że bardzo przydatnym narzędziem byłoby takie, które, biorąc pod uwagę pełne charakterystyki elektryczne zaangażowanych komponentów oraz sposób ich połączenia, mogłoby wykonać wszelkie obliczenia i raportować, czy wszystkie zadeklarowane ograniczenia są spełnione, w każdym czasie. Zgadzam się z tym poglądem.
Aby zaimplementować to w jakikolwiek satysfakcjonujący sposób, należałoby wprowadzić silnik symulacji Spice, co jest oczywiście możliwe.
Oprócz ciężaru dodawania odpowiednich modeli symulacyjnych do bibliotek i projektów, nie jestem jeszcze pewien, czy wszystkie możliwe przypadki mogą być wiarygodnie pokryte. Zużycie energii przez wiele urządzeń zależy od sposobu, w jaki faktycznie działają w terenie. Aby to umożliwić, silnik symulacji Spice musiałby być wyposażony w środki umożliwiające uwzględnienie sposobu programowania urządzeń oraz sposobu, w jaki te zaprogramowane urządzenia wchodzą w interakcje ze swoim otoczeniem.
To brzmi jak bardzo ekscytujący projekt, ale taki, który pasuje do perspektywy długoterminowej. Wydaje mi się, że jest to coś, co warto dalej przemyśleć, zbadać i o czym rozmawiać - możliwe w przyszłym poście na blogu!
Wreszcie, zaawansowane tematy generowania automatycznych reguł i symulacji końcowego projektu wydają się równie użyteczne, jeśli mogłyby być skutecznie adresowane. Jednak droga do ich ostatecznej implementacji wydaje się jeszcze bardziej niejasna.
Jeśli chodzi o automatyczne generowanie reguł, w oprogramowaniu musiałoby zostać rozwiązanych wiele problemów architektonicznych, takich jak możliwość definiowania binarnej reguły na poziomie schematu na przykład. Następnie wytyczne dotyczące automatycznego generowania reguł musiałyby być jasno zbadane i zdefiniowane, z możliwością wprowadzenia nowych reguł na poziomie PCB.
Ponadto, w świecie symulacji końcowego rezultatu, konieczne byłoby opracowanie lub nabywanie zupełnie nowych technologii. Musiałoby zostać podjętych kilka strategicznych kroków, aby skutecznie rozwiązać te kwestie.
To był dość długi post, ale myślę, że zainteresowanie wyrażone w tej tematyce wymagało starannej analizy oraz równie szczegółowej i szczerej odpowiedzi. Moim celem jest jasne nakreślenie ścieżki do użytecznego rozwiązania, które można byłoby wdrożyć w ciągu kilku miesięcy.
Nawet dla podstawowego rozwiązania, które przedstawiłem, jakiekolwiek sugestie byłyby bardzo pomocne.
Na przykład, ciągle mówię o "Sieci energetycznej", ale znajduję ten termin co najmniej niejednoznaczny. Tutaj używaliśmy terminu "Linia energetyczna". Jakie są wasze przemyślenia?
Ponadto, graficzna reprezentacja częściowo przezroczystych elementów oraz Etykiet mocy z pewnością wymagałaby bardzo starannego rozważenia. To, co jest narysowane na ilustracji powyżej, to tylko szkic. Wasze sugestie będą więcej niż mile widziane.
Jak zawsze, bardzo chciałbym przeczytać wasze myśli i pomysły tutaj.
Proszę zamieścić je w sekcji komentarzy poniżej.