Start!

Tak, dziś zaczynamy! Zapewne część z Was oczekuje, że już dziś zobaczymy jakieś kolorowe napisy, animacje i inne cuda-niewidy. Niestety, muszę trochę ostudzić ten entuzjazm.

Dlaczego? Jak to? Nie będzie kolorków?

Będą, ale nie dziś 🙂 Tak jak napisałem w pierwszym poście pt. Idea bloga moim celem jest pokazanie całego procesu, od samego początku – a nie jedynie efektu końcowego. A jak wiadomo, w tej branży praktycznie każdy projekt zaczyna się od… dumania nad kartką papieru. Ośmielę się nawet stwierdzić, iż owego myślenia będzie na naszym blogu więcej niż czegokolwiek innego. A więc do dzieła!

Część pierwsza: pytania

Pierwszym krokiem przed rozpoczęciem jakichkolwiek prac czy projektowania jest zdefiniowanie sobie pewnego zarysu założeń, czy jakby powiedział architekt: wymagań. Na początkowym etapie nie powinny być one bardzo szczegółowe – muszą jedynie nakreślić ramy projektu. Ponieważ mamy do czynienia z systemem wbudowanym, pamiętajmy, że dotyczyć one będą zarówno sprzętu jak i oprogramowania. Przy ich ustalaniu pomocne mogą okazać się następujące pytania:

  • Jakie kluczowe funkcjonalności musimy zapewnić?
  • Jakie nienaruszalne ograniczenia nakłada na nas otoczenie, w którym system będzie działał?
  • Czy nasze urządzenie będzie komunikowało się z innymi urządzeniami/systemami? Jeśli tak, to w jaki sposób?
  • Czy nasz system będzie prowadził interakcję z użytkownikiem/operatorem? Jeśli tak, to w jaki sposób?
  • Jak wysoki poziom niezawodności jest wymagany? Jakie są konsekwencje awarii lub błędnego działania?
  • Czy i jak bardzo cały system ma być podatny na rozbudowę w przyszłości?
  • W jakich warunkach środowiskowych będzie pracowało nasze urządzenie?

Oczywiście powyższa lista absolutnie nie wyczerpuje tematu. Ma jedynie pokazać potencjalne kierunki poszukiwania nowych pytań i zachęcić do ich postawienia.

Nawet tak krótka i enigmatyczna lista uświadamia, jak szeroko należy spojrzeć na projektowanie jakiegokolwiek poważniejszego kawałka elektroniki z duszą 🙂

Dlaczego zwracam na to uwagę?

W rozumieniu wielu osób stworzenie czegokolwiek w tej dziedzinie zamyka się w poskładania kilku gotowych klocków i napisania kawałka kodu. Gotowe, działa! W rzeczywistości jest to jedynie wierzchołek pokaźnej góry lodowej. Pod “powierzchnią wody”, niewidoczne dla oczu postronnych obserwatorów, kryją się istotne kwestie: bezpieczeństwa, ergonomii, estetyki, niezawodności czy testowania.
Dobrym wyznacznikiem stosunku nakładu pracy może tu być zasada Pareta – jedynie 20% czasu potrzeba aby poskładać “na kolanie” coś co działa. Pozostałe 80% pochłonie dopracowanie detali, przetestowanie, zapewnienie niezawodnego działania…

Część druga: odpowiedzi

Co chcemy stworzyć? Tak jak wspomniałem, ma być to następca starego dobrego HypeFIS’a. Dla osób nie zaznajomionych z tematem wyjaśniam – jest to urządzenie rozszerzające funkcjonalność fabrycznego wyświetlacza FIS montowanego w latach 1998-2006 w samochodach grupy VAG. Nieco więcej na temat dostępnych funkcji można przeczytać tu. Tak prezentuje się on na żywo:

Nowa wersja ma zachowywać pełną funkcjonalność swojego poprzednika, jednak zamiast monochromatycznego wyświetlacza ma używać kolorowej matrycy o większej rozdzielczości. Będzie ona umieszczona w wycięciu pośrodku zestawu wskaźników, w miejscu fabrycznego FISa. Cała niezbędna elektronika musi zmieścić się w wnętrzu obudowy wskaźników.

Docelową grupą pojazdów mają być samochody oparte o platformy PL45 i PQ34 grupy VAG. Są to już dość leciwe maszyny, jednak wciąż cieszące się ogromną popularnością. Ich zaletą, z punktu widzenia projektu, jest prosta i dobrze udokumentowana elektronika pokładowa.
Bazując na tych informacjach spróbujmy określić kilka elementarnych założeń:

Wyświetlacz:
  • Matryca IPS, przekątna pomiędzy 3.2 a 3.5 cala, format 4:3, rozdzielczość co najmniej 320×240, 16-bitowa głębia koloru.
    Przekątna i format matrycy są podyktowane wprost wymiarami okienka znajdującego się w centralnej części zestawu wskaźników.
  • Interfejs sterownika: SPI lub równoległy
    Matryca wyposażona w konfigurowalny sterownik pozwala wybrać najwygodniejszy i najbardziej efektywny sposób przesyłania obrazu.

 

Interfejsy do samochodu:
  • interfejs diagnostyczny KWP1281 / KWP2000,
    Praktycznie każdy pojazd grupy VAG z lat 1998-2005 wyposażono w interfejs diagnostyczny zgodny ze standardem KWP. Od strony sprzętowej jest to prosta jednoprzewodowa magistrala szeregowa, pracująca w trybie half-duplex.
  • dwa interfejsy CAN o prędkości do 500kbps,
    CAN (Controller Area Network) jest szeroko rozpowszechnionym interfejsem szeregowym do przesyłania danych pomiędzy urządzeniami elektronicznymi w samochodzie. Warstwa fizyczna oparta jest o transmisję różnicową po dwuprzewodowej skrętce. Warstwa transportu to 8-bajtowe paczki, opatrzone indywidualnym identyfikatorem. W interesujących nas pojazdach najczęściej występują dwie, odrębne magistrale CAN: silnika oraz komfortu. Pierwsza łączy ECU, sterownik ABS, poduszek powietrznych oraz zestaw wskaźników. Druga zaś centralny moduł komfortu, zestaw wskaźników oraz moduły sterujące w drzwiach.
  • interfejs dla manetki MFA (trzy przyciski)
    Do sterowania fabrycznym wskaźnikiem FIS lub MFA wykorzystywana jest manetka, wyposażona w trzy przyciski: góra, dół oraz reset.

 

Łączność ze światem zewnętrznym:
  • głośniczek/brzęczyk,
    Ponieważ kierowca nie skupia ciągle uwagi na wskazaniach urządzenia, sygnalizacja dźwiękowa stanowi niezbędne uzupełnienie systemu.
  • złącze karty pamięci SD/microSD,
    Karta pamięci stanowi najwygodniejszą formę przechowywania wszelkich danych, zapewniając przy tym ogromną (jak na systemy wbudowane) pojemność oraz rozsądną trwałość.
  • złącze USB
    Użycie standardowego gniazda, które można spotkać każdym niemalże urządzeniu, znacząco upraszcza przesyłanie danych, aktualizację oprogramowania czy też debugowanie potencjalnych problemów.

 

Wymagania ogólne:
  • zakres temperatury pracy od -25st C do +60 st C
    Jest to standardowy zakres temperatury pracy wszystkich urządzeń elektronicznych stosowanych w branży automotive.
  • napięcie zasilania +12V (+/-20%, chwilowo do -60%)
    Przyjmuje się, iż napięcie w sprawnej instalacji samochodowej wynosi około 12.6V przy wyłączonym silniku oraz do 14.4V przy pracującym. Urządzenie musi jednak przeżyć chwilowy, gwałtowny spadek napięcia poniżej 6V, w czasie pracy rozrusznika.
  • odporność na zakłócenia EMC,
    Środowisko, w którym pracuje elektronika samochodowa pełne jest źródeł silnych zakłóceń elektromagnetycznych, takich jak układ zapłonowy, cewki zaworów wtryskowych, kilka lub kilkanaście komutatorowych silników elektrycznych o różnej mocy, itd. Urządzenia, zwłaszcza oparte o niskonapięciową logikę cyfrową, muszą zostać starannie zaprojektowane, aby być odpornymi na wszelkie zewnętrzne zakłócenia – zarówno te indukowane elektromagnetycznie jak i te propagowane bezpośrednio przez linie zasilające.
  • pobór prądu w stanie uśpienia <10mA
    W czasie kiedy nie pracuje silnik samochodu, cała energia elektryczna czerpana jest wyłącznie z akumulatora. Zazwyczaj sumaryczny długotrwały pobór prąd na poziomie 50mA przyjmuje się za bezpieczny. Dlatego też każde urządzenie elektryczne musi zostać tak zaprojektowane, aby nie doprowadzić do głębokiego rozładowania akumulatora. Wymaga to zazwyczaj wprowadzenia pewnej formy stanu uśpienia, w którym pobór prądu jest znacząco ograniczony, w porównaniu do normalnej pracy.

 

Jak widać, lista założeń nie są specjalnie szczegółowa. Nie jest również całkowicie zamknięta. Ma być jedynie punktem wyjścia dla następnego kroku, którym będzie próba znalezienia najbardziej optymalnego środowiska programistycznego oraz platformy sprzętowej. Ale o tym porozmawiamy jutro 🙂 Zapraszam.

Posted in Sto dni w kolorze.