OpenDiag - STM32 CAN Tool
Page content
Spis treści
- Założenia projektu – cele, wymagania, zakres, zgodność.
- Architektura sprzętu – STM32, transceivery, OBD, zasilanie, USB, CAN.
- Architektura oprogramowania – warstwy, moduły, katalogi, odpowiedzialności.
- Konfiguracja platformy – CubeMX, zegary, USB CDC, UART ST-Link, CAN, NVIC.
- Interfejsy wewnętrzne – API między modułami, formaty danych, kolejki.
- Protokoły – ELM327, STN, OBD-II, ISO-TP, UDS, specyfika Forda.
- Strategia testów – testy jednostkowe, terminal, loopback CAN, testy w samochodzie, FORScan.
- Roadmap implementacji – kolejne etapy kodowania i kryteria zakończenia każdego z nich.
Ja dodałbym jeszcze Rozdział 9 – Dokumentacja i standardy, gdzie ustalimy styl kodu, nazewnictwo, sposób wersjonowania Git oraz zasady dokumentowania modułów. Dzięki temu od początku będziemy mieli jeden uporządkowany dokument, do którego zawsze można wrócić, zamiast mieszać analizę, projekt i implementację.
Specyfikacja projektu
Rozdizł 1. Założenia projektu
To odpowiada na pytanie:
co budujemy
- cel projektu
- funkcje
- ograniczenia
- wymagania
- urządzenia docelowe
- zgodność z ELM/STN
- własny protokół
- aplikacja PC
Po zakończeniu tego rozdziału nie interesuje nas jeszcze STM32.
Rozdizł 2. Architektura sprzetu
Odpowiada na pytanie:
Na czym to działa?
Tutaj:
- STM32
- dlaczego F767
- dlaczego później H723
- transceivery
- zasilanie
- USB
- ST-Link
- CAN
- złącze OBD
- LED
- SD
- Ethernet (future)
Powstanie blokowy schemat sprzętu.
Rozdział 3. Architektura oprogramowania
Odpowiada na pytanie:
Jak będzie zbudowany firmware?
Tutaj:
USB
↓
CLI
↓
Parser
↓
ELM
↓
STN
↓
ISO-TP
↓
CAN API
↓
CAN Driver
oraz katalogi projektu.
Rozdział 4. Konfiguracja STM32
To już bardzo praktyczny rozdział.
Co konfigurujemy w CubeMX.
Na przykład:
Clock
USB Device CDC
CAN1
CAN2
CAN3
UART3 (ST-Link)
GPIO
NVIC
DMA
Nic więcej.
Rozdział 5. Interfejsy
Jak komunikują się moduły.
Np.
ELM
↓
CAN API
↓
Driver
Tutaj powstaną wszystkie pliki *.h.
Rozdział 6. Protokoły
Opis:
- ELM327
- STN
- OBD-II
- ISO-TP
- UDS
- Ford
Jeszcze bez kodu.
Rozdział 7. Testy
Jak będziemy testować.
Najpierw:
Terminal
Potem:
Loopback CAN
Potem:
Samochód
Potem:
FORScan
Rozdział 8. Roadmap
I dopiero tutaj pojawiają się etapy implementacji.
Na przykład:
Etap 1
Projekt CubeMX
Etap 2
USB CDC
Etap 3
CLI
Etap 4
Parser
Etap 5
ELM
Etap 6
CAN
...