STM32Cube Expansion Pack CAN Stack
|
To handle the Fueltech FTCAN2.0 protocol. More...
Modules | |
FT2.0 Layer Configuration containers | |
Spec-Definitions | |
Database that holds the spec defined informations. | |
Type definitions for FT2.0 Layer Module | |
there are no special public types then the configuration all types defined in the COM stack | |
Function definitions for CAN FT2.0 Layer Module | |
Scheduled Tasks | |
Classes | |
class | CanFT2p0 |
a class to handle the Fueltech CAN FT2.0 protocol More... | |
Macros | |
#define | CANFT2P0_VENDOR_ID TM_VENDOR_ID |
my ID More... | |
#define | CANFT2P0_MODULE_ID (0xF1) |
module id to see where the error is come from | |
#define | CANFT2P0_VERSION (0x01) |
we have only one version at start | |
#define | CANFT2P0_PATCH_VERSION (0x01) |
no patching until now | |
To handle the Fueltech FTCAN2.0 protocol.
Die Beschreibung des Protokolles steht auf der Fueltech Homepage zum Download. Diese Originalbeschreibung ist in englischer Sprache verfasst. Ich werde also hier in deutscher Sprache die wichtigsten Informationen noch einmal zusammenfassen. Bei Unklarheiten ist auf jeden Fall das von Fueltech veröffentlichte Dokument zu Rate zu ziehen.
Meine Informationen basieren auf der Dokumentenversion R020 vom 19.08.2020
Die Protokollbeschreibung ist von Fueltech offen formuliert. Aber die ECUs akzeptieren Nachrichten nur von bekannten Produkten. Damit ist die ProduktID sehr wichtig.
Fueltech sieht ausschließlich CAN2.0B im extended mode auf 1Mbit vor.
Die CAN ID wird dazu benutzt um den Absender sowie die Übertragungsart zu codieren. Dazu wird die 29bit CAN ID wie folgt auf geteilt:
28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x1 | 0xF | 0xF | 0xF | 0xF | 0xF | 0xF | 0xF | |||||||||||||||||||||
ProductID | DataFieldID | MessageID | ||||||||||||||||||||||||||
14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 0x0: Standard | X | < Response bit | |||||||||||
ProductTypeID | Unique Identifier | 0x2: FTCAN2.0 | - |
Damit ergeben sich die wichtigsten CAN IDs.
Product Type | ProductTypeID | ProductID Range | CAN Base ID | Anmerk. | |
---|---|---|---|---|---|
WB O2 Nano | 0x0240 | 0x4800 | 0x481F | 0x14000000 | |
SwitchPanel | 0x0244 | 0x4880 | 0x4887 | 0x12200320 | Die verschiedene Panels werden über die UniqueID unterschieden |
FT500 | 0x0280 | 0x5000 | 0x501F | 0x14000000 | Meine Testumgebung |
FT600 | 0x0281 | 0x5020 | 0x503F | 0x14080000 |
Die Bits 11-13 der CAN ID geben an in welcher Art die Nutzdaten codiert sind.
DatafieldID | Bedeutung |
---|---|
0x0 | Standard CAN |
0x1 | Standard CAN über Gateway/Bridge/Converter |
0x2 | FTCAN 2.0 |
0x3 | FTCAN 2.0 über Gateway/Bridge/Converter |
Ob und wie die Gateway Nutzung freigestellt ist, weiß ich bisher nicht |
Fueltech nutzt immer 2 Bytes, bzw 16bit zur Übertragung eines Messwertes, sowie auch für die MeassureIDs.
Ganz Kurz: so wie von Bosch geplant. 8 Datenbytes werden für Daten genutzt.
Die ECUs nutzen dieses System bei den RTSB (= Real Time Simple Broadcast) Daten.
Das SwitchPanel nutzt auch nur eine Standard CAN Communication.
Das Datenbyte 0 enthält einen Zähler.
Das Protokoll umfasst alle Schichten oberhalb der OSI Schicht 2. Also von der Vermittlung bis zur Anwendungsschicht. Hier bedarf es evtl später einer sauberen Trennung.
Dieses Modul nutzt ausschließlich SingleFrame Nachrichten sowohl für den Status als auch für die Steuerung mit einer festen Codierung. Es wird keine MeassureID genutzt.
Es gibt keine Seriennummer oder sonstige Informationen auf dem CAN Bus
Dieses Modul nutzt das FTCAN2.0 Protokol sehr sauber.
Es wird eine richtig codierte SingleFrame Nachricht für die Messwertausgabe genutzt.
SegmentedFrame (mit abweichender CAN ID) wird für die Übergabe von Serialnummer und Messbereichseinstellung genutzt.
Dieses Modul nutzt wohl den größten Umfang an Möglichkeiten
Die Daten des Real Time Simple Broadcast (RTSB)
CAN ID (FT500) | CAN ID (FT600/550/450) | byte 1 & 2 | byte 3 & 4 | byte 5 & 6 | byte 7 & 8 |
---|---|---|---|---|---|
0x14000600 | 0x14080600 | TPS | MAP | Air temp | Engine Temp |
0x14000601 | 0x14080601 | Oil Pressure | Fuel Pressure | Water Pressure | Gear |
0x14000602 | 0x14080602 | Exhaust O2 | RPM | Oil Temp | Pit Limit |
0x14000603 | 0x14080603 | Wheel Speed FR | Wheel Speed FL | Wheel Speed RR | Wheel Speed RL |
0x14000604 | 0x14080604 | Traction Ctrl | Slip Traction Ctrl | Retard Traction Ctrl | Cut Heading |
0x14000605 | 0x14080605 | Shock sensor FR | Shock sensor FL | Shock sensor RR | Shock sensor RL |
0x14000606 | 0x14080606 | G-forge (accel) | G-force (lateral) | Yaw-rate (frontal) | Yaw-rate (lateral) |
| 0x14000607 | 0x14080607 | Lambda Correction | Fuel Flow Tota | | 0x14000608 | 0x14080608 | Primary Injection time | Secondary Injection time | Oil Temperature | Transmisssion Temperature |
TM_CanFT2p0TL.h
TM_CanFT2p0.h
#define CANFT2P0_VENDOR_ID TM_VENDOR_ID |