AUTOSAR(4) – ComStack CAN

În acest articol vom discuta despre serviciile de comunicare în AUTOSAR w.r.t. Protocolul CAN. În acest articol mă voi limita la module CAN Interface (CanIf) și CAN Driver (CanDrv). Alte module ale ComStack referitoare la protocolul CAN vor fi explicate în articolele următoare.

Stivă de comunicare w.r.t. la protocolul CAN în AUTOSAR constau din module cum ar fi AUTOSAR COM (Layer de servicii), Router PDUR (strat de servicii), CAN Status Manager CANSM (Layer servicii), CAN Network Manager CANNM (Layer de servicii), CAN Transport Protocol  CANTP(Strat de abstractizare ECU), Driver extern CAN (strat de abstractizare ECU) și driver CAN (strat MCAL). Unele module legate de diagnosticare CANTP, multiplexarea PDU și CAN-Transceiver  CANTrcv sunt, de asemenea, parte din stivă.

Interfața CAN (CanIf) este un modul din stratul de abstractizare ECU, care este responsabil pentru servicii cum ar fi solicitarea de transmisie, confirmarea transmisiei, indicația recepției, controlul modului controlerului și controlul modului PDU.

Termenii de bază utilizați în CAN

Manevrabilitatea obiectelor hardware:

Mijloacele pentru obiectele hardware (HOH) pentru transmisie (HTH) precum și pentru recepție (HRH) reprezintă o referință abstractă la o structură de obiecte hardware CAN care conține parametri CAN, cum ar fi CanId, DLC și date. În timpul transmisiei, aceste handles sunt cunoscute sub numele de handle transmițătoare hardware (HTH) și în timpul recepției Hardware Receive Handles (HRH). CanIf apelează interfețele CAN driver folosind aceste referințe abstracte și niciodată nu utilizează hardware-ul real CanId, prin urmare CanIf rămâne independent de hardware.

BasicCAN și FullCAN:

CanIf distinge între manipularea BasicCAN și FullCAN pentru activarea filtrării de acceptare a software-ului.

Un obiect hardware CAN pentru operarea FullCAN permite doar transmisia sau recepția unor canale simple.

Un obiect hardware CAN pentru operarea BasicCAN a unui singur obiect hardware permite transmiterea sau recepționarea unei game de CanIds.

Obiectele BasicCAN și FullCAN pot coexista într-o singură configurare a configurației.

CanIf abstractizează obiectul hardware CAN, adică structura cadru CAN de la driverul MCAL CAN, folosind obiecte abstracte numite Hardware Object Handles (HOH).  PDU-ul este directionat către diferite controlere CAN și transceivere. CanIf controlează cererea de tranziții de stare a controlerului CAN de la CANSM și comunică modificările de stare către stratul superior.

În cazul transmisiei unui PDU, CanIf este responsabil pentru cartografierea handlerul transmisiei hardware cu obiectele hardware CAN, determinând driverul CAN pe care trebuie să fie transmis PDU, declanșând un apel către Can_Write api. Odată ce Can_Write este terminat, notificând partea superioară despre starea transmisiei PDU.

În cazul recepției unui PDU, CanIf este responsabil pentru filtrarea PDU-ului primit, verificarea DLC, tamponarea PDU-ului primit și indicarea stratului superior despre recepția PDU. Cele mai multe dintre aceste caracteristici furnizate de CanIf sunt configurabile.

Modulul CAN Driver (CanDrv) face parte din stratul MCAL și oferă acces hardware la serviciile superioare ale stratului și o interfață independentă de hardware pentru straturile superioare. CanIf este singurul modul care poate accesa driver-ul CAN.

CAN Driver CanDrv controlează transmisia cadrelor CAN pe hardware și notifică nivelul superior al recepției apelând funcțiile callback. De asemenea, furnizează interfețele pentru a controla starea  CAN-ului.

Mai jos am reprezentat interfetele folosite pentru activarea sau dezactivarea comunicatiei CAN:

Și la nivel de apeluri a le funcțiilor API starile CAN-ului :

Weekend plăcut !

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *