OpenDiag - STM32 CAN Tool

Page content

Spis treści

  1. Założenia projektu – cele, wymagania, zakres, zgodność.
  2. Architektura sprzętu – STM32, transceivery, OBD, zasilanie, USB, CAN.
  3. Architektura oprogramowania – warstwy, moduły, katalogi, odpowiedzialności.
  4. Konfiguracja platformy – CubeMX, zegary, USB CDC, UART ST-Link, CAN, NVIC.
  5. Interfejsy wewnętrzne – API między modułami, formaty danych, kolejki.
  6. Protokoły – ELM327, STN, OBD-II, ISO-TP, UDS, specyfika Forda.
  7. Strategia testów – testy jednostkowe, terminal, loopback CAN, testy w samochodzie, FORScan.
  8. 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

...