Interfejsy CAN i OBD
Dziś ponownie będziemy zajmować się przygotowaniem niezbędnego sprzętu. Tym razem jednak będzie to już część stanowiska testowego, a pierwszy fragment urządzenia. Zapewnienie komunikacji przez magistralę CAN oraz złącze diagnostyczne OBD jest jedną z najistotniejszych kwestii – dlatego tak wcześnie podejmujemy ten temat. Magistrala CAN Wybrany mikrokontroler STM32F407 posiada wbudowany kontroler magistrali CAN. Brakuje więc nam […]
Karta SD
Jedną z funkcjonalności uwzględnionych w założeniach projektu była obsługa kart SD/microSD. Najczęściej w systemach wbudowanych stosuje się montowane na stałe pamięci Flash, w postaci osobnego układu scalonego. To rozwiązanie ma jednak wiele wad, zwłaszcza w przypadku kiedy tworzymy prototyp. Zmiana czegokolwiek w kości pamięci Flash wymagałaby użycia programatora. Kartę SD można natomiast bardzo szybko wyciągnąć […]
Świat w kolorze – LCD cz 1.
Dziś nareszcie zajmiemy się najistotniejszym elementem układanki – kolorowym wyświetlaczem LCD 🙂 Na początek przyjrzyjmy się możliwościom naszego STM32F407 w zakresie sterowania taką matrycą. Metody sterowania wyświetlaczem Istnieje cała gama przeróżnych, dedykowanych interfejsów dla wyświetlaczy LCD. Najogólniej można je podzielić na dwie grupy: szeregowe oraz równoległe. Pierwsze z nich do przesyłu obrazu wykorzystują zaledwie kilka […]
Świat w kolorze – LCD cz.2
Biblioteka graficzna Istotnym elementem systemu posiadającego GUI jest biblioteka graficzna. Nie sposób bowiem wymagać od każdej aplikacji, każdego komponentu aby samodzielnie “sięgał” do wyświetlacza i mozolnie rysował na nim piksel po pikselu. Absolutnie podstawową funkcjonalność stanowią tzw. prymitywy graficzne – punkty, linie czy okręgi. Kolejnym krokiem są figury składające się z linii: prostokąty, trójkąty – […]
Świat w kolorze – LCD cz.3
Dzisiejszy wpis będzie nieco inny niż dotychczasowe. Zamiast rozważań, przedstawię po prostu krótką relację z tego, co udało mi się dziś zrobić. Tego typu wpisy będą pojawiać się na naszym blogu coraz częściej, w miarę postępów projektu. Co u mnie? Kontynuowałem przede wszystkim pracę nad biblioteką graficzną – skupiając się zwłaszcza nad rysowaniem grafiki z […]
Diagnostyka OBD – cz.1
Zdecydowana większość samochodów, które interesują nas w ramach projektu, posiada interfejs diagnostyczny w standardzie OBD. Umożliwia on połączenie z każdym istotnym sterownikiem wchodzącym w skład instalacji elektrycznej, odczyt podstawowych wartości pomiarowych, zarejestrowanych kodów usterek, itp. Komunikacja odbywa się za pomocą protokołu KWP1281 lub KWP2000. Są one charakterystyczne dla pojazdów grupy VAG. Nie będę w tym […]
Diagnostyka OBD – cz.2
Rozważania na temat zastosowania gotowej obsługi protokołu diagnostycznego sięgają początków projektu HypeFIS. W Sieci dostępnych jest co najmniej kilkanaście różnych implementacji protokołu KWP1281/2000 – mniej lub bardziej zaawansowanych. Na wstępie odrzuciłem wszystkie związane z platformą Arduino, które ze względu na specyficzną strukturę API tego środowiska są zupełnie nieprzydatne w przyjętym przez nas sposobie strukturyzacji kodu. […]
Diagnostyka OBD – cz.3
Dziś udało się uruchomić połączenie diagnostyczne z zestawem wskaźników. Oczywiście wszystko zostało podłączone do przygotowanego wcześniej stanowiska testowego, z wykorzystaniem odpowiedniego interfejsu. Aby móc śledzić stan połączenia “na żywo”, przygotowałem proste okno debugowe – korzysta ono oczywiście naszej z biblioteki graficznej. Osoby zaznajomione z wcześniejszym projektem HypeFIS zapewne zauważą pewne podobieństwa 🙂 Połączenie zostało nawiązane […]
Interfejs CAN – cz. 1
Zgodnie z zapowiedziami, dziś zajmiemy się uruchomieniem interfejsu CAN. Oczywiście na początek musimy połączyć magistralę sterownika silnika z zestawem wskaźników za pomocą skrętki. Wykorzystamy jedno ze złącz DB-9 zainstalowanych w naszym stanowisku testowym. W kontroler magistrali CAN w naszym procesorze STM32F407 został skonfigurowany w trybie “listen only” – może on jedynie odbierać wiadomości nadawane przez […]
Rysować czy być rysowanym? Czyli kilka słów o widgetach.
Każdy, kto miał styczność z tworzeniem oprogramowania zna zapewne zasadę DRY (ang. Don’t Repeat Yourself). W zabawny sposób opisuję ona pewną regułę, mówiącą, iż powtarzające się fragmenty kodu, należy wyodrębniać jako funkcje. Innymi słowy – pożądane jest tworzenie aplikacji z pewnych elementarnych “klocków”. Tak jak biblioteka graficzna stanowi odzwierciedlenie tej reguły w świecie grafiki, tak […]