ISO 15765-2

ISO 15765-2 , eller ISO-TP (Transport Layer), är en internationell standard för att skicka datapaket över en CAN-Bus . Protokollet tillåter transport av meddelanden som överskrider den maximala nyttolasten på åtta byte för CAN- ramar . ISO-TP segmenterar längre meddelanden i flera ramar och lägger till metadata som tillåter tolkning av individuella ramar och återmontering till ett komplett meddelandepaket av mottagaren. Den kan bära upp till 2 32 -1 (4294967295) byte nyttolast per meddelandepaket från och med 2016 års version. Tidigare versioner var begränsade till en maximal nyttolaststorlek på 4095 byte.

I OSI-modellen täcker ISO-TP lager 3 (nätverkslager) och 4 (transportlager).

Den vanligaste applikationen för ISO-TP är överföring av diagnostiska meddelanden med OBD-2 utrustade fordon som använder KWP2000 och UDS , men används brett i andra applikationsspecifika CAN-implementeringar.

ISO-TP kan drivas med egen adressering som så kallad Extended Addressing eller utan adress med endast CAN ID (så kallad Normal Addressing ). Utökad adressering använder den första databyten i varje ram som ett extra element i adressen, vilket minskar applikationens nyttolast med en byte. För tydlighetens skull är protokollbeskrivningen nedan baserad på normal adressering med åtta byte CAN-ramar. Totalt tillåts sex typer av adressering enligt ISO 15765-2-protokollet.

ISO-TP lägger till en eller flera metadatabyte till nyttolastdata i CAN-ramen på åtta byte, vilket minskar nyttolasten till sju eller färre byte per ram. Metadata kallas Protocol Control Information, eller PCI. PCI är en, två eller tre byte. Det initiala fältet är fyra bitar som indikerar ramtypen och implicit beskriver PCI-längden.

ISO 15765-2 är en del av ISO 15765 (med rubriken Road vehicles — Diagnostic communication over Controller Area Network (DoCAN) ), som har följande delar:

  • ISO 15765-1 Del 1: Allmän information och definition av användningsfall
  • ISO 15765-2 Del 2: Transportprotokoll och nätverkslagertjänster
  • ISO 15765-3 del 3: Implementering av enhetliga diagnostiska tjänster (UDS på CAN) – ersatt av ISO 14229-3 Vägfordon – enhetliga diagnostiska tjänster
  • ISO 15765-4 Del 4: Krav på utsläppsrelaterade system

Lista över fälttyper för protokollkontrollinformation

ISO-TP definierar fyra ramtyper:

Typ Koda Beskrivning
Enkel ram (SF) 0 Den enda ramen som överförs innehåller den fullständiga nyttolasten på upp till 7 byte (normal adressering) eller 6 byte (utökad adressering)
Första bildrutan (FF) 1 Den första ramen i ett längre meddelandepaket med flera ramar, som används när mer än 6/7 byte av data segmenterad måste kommuniceras. Den första ramen innehåller längden på det fullständiga paketet, tillsammans med initialdata.
Konsekutiv ram (CF) 2 En ram som innehåller efterföljande data för ett multi-frame-paket
Flödeskontrollram (FC) 3 svaret från mottagaren, som kvitterar ett första-bildssegment. Den fastställer parametrarna för överföring av ytterligare på varandra följande ramar.
4..15 Reserverad
CAN-TP Header
Bit offset 7 ... 4 (byte 0) 3 ... 0 (byte 0) 15 ... 8 (byte 1) 23..16 (byte 2) ....
Enda 0 storlek (0..7) Data A Data B Data C
Först 1 storlek (8..4095) Data A Data B
I följd 2 index (0..15) Data A Data B Data C
Flöde 3 FC-flagga (0,1,2) Block storlek ST

Ett meddelande på sju byte eller mindre skickas i en enda ram, där den initiala byten innehåller typen (0) och nyttolastlängden (1-7 byte). Med 0:an i typfältet kan detta även passera som ett enklare protokoll med längddataformat och misstolkas ofta som sådant.

Ett meddelande längre än 7 byte kräver segmentering av meddelandepaketet över flera ramar. En segmenterad överföring börjar med en första bildruta. PCI är två byte i det här fallet, med det första 4-bitarsfältet typen (typ 1) och de följande 12 bitarna meddelandelängden (exklusive typ- och längdbyte). Mottagaren bekräftar överföringen med en flödeskontrollram. Flödeskontrollramen har tre PCI-byte som anger intervallet mellan efterföljande ramar och hur många på varandra följande ramar som kan skickas ( blockstorlek) .

Flödeskontroll
Bit offset 7 ... 4 (byte 0) 3 ... 0 (byte 0) 15 ... 8 (byte 1) 23..16 (byte2)
Beskrivning typ om överföringen tillåts Block storlek Separationstid (ST), minsta fördröjningstid mellan bildrutor (slutet av en bild och början av den andra)
Enda typ = 3 (0 = Fortsätt att skicka, 1 = Vänta, 2 = Spill över/avbryt) 0 = återstående "ramar" som ska skickas utan flödeskontroll eller fördröjning <= 127, separationstid i millisekunder.
Enda typ = 3 (0 = Fortsätt att skicka, 1 = Vänta, 2 = Spill över/avbryt) > 0 skicka antal "ramar" innan du väntar på nästa flödeskontrollram 0xF1 till 0xF9 UF, 100 till 900 mikrosekunder.

Den initiala byten innehåller typen (typ = 3) i de första fyra bitarna, och en flagga i de nästa fyra bitarna som indikerar om överföringen är tillåten (0 = Fortsätt att skicka, 1 = Vänta, 2 = Brädda/avbryta). Nästa byte är blockstorleken, antalet ramar som kan skickas innan man väntar på nästa flödeskontrollram. Ett värde på noll gör att de återstående ramarna kan skickas utan flödeskontroll eller fördröjning. Den tredje byten är Separationstiden (ST), den minsta fördröjningstiden mellan ramar. ST-värden upp till 127 (0x7F) anger det minsta antalet millisekunder att fördröja mellan bildrutor, medan värden i intervallet 241 (0xF1) till 249 (0xF9) anger fördröjningar som ökar från 100 till 900 mikrosekunder. Observera att separationstiden definieras som den minsta tiden mellan slutet av en bildruta till början av nästa. Robusta implementeringar bör vara förberedda för att acceptera ramar från en avsändare som misstolkar detta som bildupprepningsfrekvensen, dvs från start-av-bildruta till start-av-bildruta. Även försiktiga implementeringar kan misslyckas med att ta hänsyn till den mindre effekten av bitstoppning i det fysiska lagret.

Avsändaren sänder resten av meddelandet med hjälp av konsekutiva ramar. Varje konsekutiv ram har en enbyte PCI, med en fyrbitstyp (typ = 2) följt av ett 4-bitars sekvensnummer. Sekvensnumret börjar på 1 och ökar med varje sänd ram (1, 2,..., 15, 0, 1,...), med vilken förlorade eller kasserade ramar kan upptäckas. Varje på varandra följande ram börjar vid 0, initialt för den första uppsättningen data i den första ramen kommer att betraktas som 0:e data. Så den första uppsättningen CF(konsekutiv bildrutor) börjar från "1". Där efteråt när den når "15", kommer att startas från "0". Det 12-bitars längdfältet (i FF) tillåter upp till 4095 byte med användardata i ett segmenterat meddelande, men i praktiken är den typiska applikationsspecifika gränsen betydligt lägre på grund av mottagningsbuffert eller hårdvarubegränsningar.

Tidsparametrar

Tidsparametrar som P1 och P2 timer måste nämnas. f Timingparametrar som p2 och p1 timing måste nämnas. > öppen < 4140447AD08000 > Stäng (65.535(41423824)) > 100 (327675) Nodata.

Standarder

ISO 15765-2:2016 Vägfordon -- Diagnostisk kommunikation över Controller Area Network (DoCAN) -- Del 2: Transportprotokoll och nätverkslagertjänster