Dvigubos CAN perteklinės komunikacijos sistemos projektinis sprendimas ir pritaikymo analizė

Jun 23, 2025 Palik žinutę

Nors pats CAN protokolas turi stiprią klaidų aptikimo ir taisymo galimybę, pramoninėje valdymo vietoje kištuko jungtis netvirta, perdavimo terpė arba magistralės tvarkyklė ir pan., sunaikins patikimą CAN ryšį. Didelio patikimumo reikalaujančioje taikomųjų programų sistemoje šie gedimai, jei jie nebus automatiškai aptikti ir nebus imtasi atitinkamų priemonių juos pašalinti, iš dalies ar net visiškai praras galimybę bendrauti. Veiksmingas būdas išspręsti šią problemą yra naudoti perteklinį ryšio valdymą. Taip užtikrinama, kad pagrindinės ryšio sistemos funkcijos veiktų normaliai, o tai pagerintų sistemos patikimumą.

 

1 Sistemos aparatinės įrangos komponentai

MB90F543 yra 16 -bitų mikrovaldiklis su dviem „Fujitsu“ CAN valdikliais. Sistema naudoja du magistralių rinkinius (CAN0, CAN1), kurių kiekviename yra nepriklausomi magistralės kabeliai, magistralės tvarkyklės ir magistralės valdikliai, kurie gali realizuoti visą fizinės laikmenos, fizinio sluoksnio, duomenų ryšio sluoksnio ir taikomųjų programų sluoksnio dubliavimą. Du magistralių rinkiniai veikia karštuoju atsarginiu režimu: vienas CAN valdiklis tarnauja kaip numatytasis CAN po sistemos įjungimo (kuris gali būti vadinamas pagrindiniu CAN); kitas tarnauja kaip sistemos budėjimo CAN (vadinamas pagalbiniu CAN) ir tarnauja kaip pagrindinio CAN dubliavimas. Kai sistema veikia normaliai, pradedama veikti pagrindinė CAN magistralė (CAN0). Kai sugenda pagrindinė CAN magistralė, pavaldi CAN magistralė (CAN1) pradeda veikti. Jei maitinimas{15}}aptinka pagrindinės CAN magistralės gedimą, pagalbinė CAN magistralė pradeda veikti automatiškai. Tokiu būdu, sugedus vienam magistralių rinkiniui, kitas magistralių rinkinys automatiškai dirbs toliau, kad užtikrintų normalų visos sistemos ryšio funkcijos veikimą, o tai labai pagerina sistemos patikimumą ir įgyvendina visapusišką CAN magistralės dubliavimo konstrukciją. Be to, atsižvelgiant į programinės įrangos poreikius, taip pat galima nustatyti perteklinį arba ne{17}}perteklinį režimą. Nepertekliniam režimui naudojama tik pagrindinė CAN magistralė.

info-1-1                               Sistemos architektūros blokinė schema

 

RT yra magistralės užbaigimo atitikimo rezistorius, naudojamas slopinti signalo sklidimo trukdžius, RT=100Ω arba 120 Ω. Tinklas kaip ryšio priemonė naudoja ekranuotą vytos poros kabelį.


CAN valdiklis integruoja CAN protokolo fizinio sluoksnio ir duomenų ryšio lygmens funkcijas ir gali užbaigti duomenų perdavimo kadravimo procesą, įskaitant bitų užpildymą, duomenų blokų kodavimą, CRC kontrolinę sumą ir prioritetinę diskriminaciją.


CAN valdiklis turi šias pagrindines funkcijas:

◇ Atitinka CAN2.0A ir CAN2.0B protokolus.

◇Palaiko duomenų ir nuotolinių kadrų siuntimą ir priėmimą.

◇ 16 pranešimų siuntimo / gavimo buferių, palaikančių 11-bit arba 29-bit identifikatorius ir kelių- lygių pranešimų buferio struktūrą; ◇ Palaiko visą-bitų palyginimą, viso bitų palyginimą ir viso bito palyginimą.

◇ Palaiko tris priėmimo identifikavimo pasirinkimo metodus: visišką-bitų palyginimą, visišką-bitų maskavimą ir bitų maskavimo priėmimą; ◇ Du priėmimo identifikavimo registrai.

◇ Du priėmimo identifikavimo registrai palaiko standartinį kadro arba išplėstinio kadro formatą.

◇ Perdavimo sparta programuojama nuo 10Kbps iki 1Mbps.


Magistralės vairuotojas naudoja PCA82C250 kaip sąsają tarp CAN valdiklio ir fizinės magistralės, kad pagerintų magistralės diferencialinį perdavimą ir priėmimą.

info-1-1

 

2 Sistemos programinės įrangos projektavimas

 

2.1 Dvigubo CAN perteklinio valdymo funkcijos realizavimas

 

Dvigubo CAN atleidimo sistemoje, palyginti su aparatinės įrangos struktūra, programinės įrangos dizainas yra palyginti sudėtingesnis. Bendrąją CAN magistralės ryšio programą turi sudaryti trys pagrindinės dalys: CAN inicijavimo programa, CAN perdavimo programa ir CAN priėmimo programa. Šiame pertekliniame sistemos programinės įrangos projekte pirmiau minėtos trys dalys naudojamos kaip trys pagrindiniai moduliai kitiems sistemos programinės įrangos moduliams.


MB90F543 gali apdoroti 256 rūšių pertraukimų šaltinius, o su CAN valdikliu yra susiję keturi aparatinės įrangos pertraukimai: CAN0 RX (CAN0 gauti visišką pertraukimą), CAN0 TX /NS (CAN0 siuntimas baigtas / mazgo būsenos keitimo pertraukimas), CAN1 RX (CAN1 gauti visišką pertraukimą), CAN1 būsenos keitimo pertraukimas / NS baigtas (Can1 būsenos keitimo pertraukimas / NS). CAN1 TX /NS (CAN1 siuntimas baigtas / mazgo būsenos keitimo pertraukimas). Šiame programinės įrangos projekte naudojamas užklausų siuntimas ir gavimo nutraukimas. Mazgo būsenos keitimo pertraukimo paprogramė naudojama mazgo būsenos keitimui apdoroti. Taip yra todėl, kad CAN2.0 protokolas nurodo, kad mazgas yra vienoje iš šių trijų būsenų: klaidos-suaktyvinta būsena, klaida-nepaisoma ir išjungta{20}}bus būsena. MB90500 serijoje taip pat yra papildoma įspėjimo būsena, kuri rodo, kad siuntimo / priėmimo klaidų skaitiklio reikšmė viršijo 96, o mazgo būsenos pasikeitimas sukels atitinkamą pertraukimą.


Kadangi sistema veikia su dvigubo CAN atleidimo karštuoju budėjimo režimu, abu CAN valdikliai turi būti karštojo budėjimo būsenoje. Abu visų sistemos mazgų CAN valdikliai yra inicijuoti, kad būtų pasirengę priimti pranešimus bet kuriuo metu, tačiau vienas ir tik vienas CAN valdiklis siunčia pranešimus. Kitaip tariant, vienu metu vienas ir tik vienas iš CAN kanalų yra aktyvus, o kitas klauso (įprastai veikia) arba yra gedimo būsenoje (gedimo atveju).


Dvigubos CAN perteklinės valdymo sistemos programinės įrangos sudėtingumo raktas, palyginti su viena CAN valdymo sistema, yra CAN sistemos gedimų aptikimas ir automatinis CAN sistemos perjungimas. Dėl dviejų visiškai nepriklausomų perdavimo laikmenų rinkinių, magistralių vairuotojų ir autobusų valdiklių, juos galima aptikti nepriklausomai nuo jų kanalo gedimų, pvz., CANH ir CANL trumpojo jungimo, CANH arba CANL atjungimo, CANH ir įžeminimo Atliekant tikrąjį derinimą, nustatoma, kad jei CANH, CANL yra atjungtas arba magistralėje yra tik vienas siųstuvas, perdavimo / priėmimo klaidų skaitiklis padidės iki 128, todėl mazgas bus ignoruojamas; ir trumpasis jungimas tarp CANH ir CANL, trumpasis Todėl, iškvietę CAN pertekliaus modulį mazgo būsenos keitimo pertraukimo paprogramėje, galime pasiekti aukščiau nurodytą automatinio gedimų aptikimo ir automatinio CAN sistemos perjungimo tikslą. CAN0 mazgo būsenos keitimo pertraukimo paprogramė yra tokia:

 

__interrupt void NodeStateTransmitInt0 (negalioja)

{

if (CSR0_NT) /* mazgo būsenos pasikeitimas */

{

CSR0_NT=0; /*Pertraukimo vėliavėlės nustatymas iš naujo */

if ( (CSR0_NS==2 ) (CSR0_NS==3 ) ) /* sukėlė pertraukimą arba trumpąjį jungimą */

{

NoWaitFlg=1; /* viena kitą paneigianti vėliava */

Bus0Error( ); /* Bus0Error( ) sustabdo CAN0 ir paleidžia perteklinę CAN1 paprogramę */ { NoWaitFlg=1; /* mutex vėliava */

}

}

ICR00 =3; /* pakeisti pertraukimo prioritetą į Timer0 pertraukimo prioritetą */ }

ICR03 =2; /* Pakeiskite pertraukimo prioritetą, kad pirmenybė būtų teikiama laikmačio 0 pertraukimui */ }

}

 

Be to, CAN magistralės komunikacijos procese, kai bus baigtas tam tikro informacijos buferio duomenų perdavimas, atitinkamas bitas perdavimo užbaigimo registre bus nustatytas į 1. Perdavimo užklausos procese, įvertinus šį registrą, galima žinoti, ar perdavimas baigtas, ar ne. Tačiau jei siuntimas nepavyks, sistema privers visą laiką laukti ir sistema sugenda. Todėl programinė įranga čia turi nustatyti laukimo laikotarpį, kuriam pasibaigus CAN dubliavimo sistema bus iškviesta, kad sustabdytų pagrindinį CAN kanalą ir įjungtų pavaldų CAN kanalą.


Kuriant programinę įrangą taip pat reikėtų atkreipti dėmesį į problemą, kaip atkurti pradinę ryšio užduotį po atsarginės CAN perjungimo. Sprendimas yra parengti užduočių vėliavėlių sąrašą, budėjimo CAN perjungimą, perskaityti lentelę, kad gautumėte pradinę sistemos užduotį, kad pasiektumėte pradinę patikimo perjungimo užduotį.


2.2 Autobusų valdymo funkcijos realizavimas


Šios sistemos programinėje įrangoje, be realaus laiko{0}}duomenų perdavimo programos, skirtos duomenims perduoti ir priimti, ji taip pat apima ryšio valdymo programą, skirtą kiekvienam mazgui valdyti. Visi mazgai skirstomi į pagrindinius ir pagalbinius mazgus. Skirtumas tarp jų yra tas, kad pagrindinis mazgas turi magistralės valdymo funkciją, kuri leidžia atlikti online mazgų statistiką, atpažinti neprisijungusius mazgus ir imtis priemonių su jais tvarkyti; o vergas mazgas šios funkcijos neturi. Yra tik vienas pagrindinis mazgas, o leidžiami keli pagalbiniai mazgai. Retkarčiais iškviečiama magistralės valdymo funkcijų programa pagrindiniam mazgui, siekiant nustatyti, ar visi mazgai yra prisijungę: jei visi mazgai yra prisijungę, magistralė laikoma normalia; kitu atveju nustatykite neprisijungus pasiekiamus mazgus ir atitinkamai su jais elkitės. Projektavimo idėja yra tokia, kad sistemos pagrindinis mazgas reguliariais intervalais siunčia nuotolinį kadrą visiems pagalbiniams magistralėje, o kiekvienas pagalbinis mazgas jį gauna, į duomenų rėmelį įdeda savo mazgo numerį ir siunčia jį pagrindiniam mazgui, o pagrindinis mazgas nustato, ar nėra mazgo gedimo neprisijungus pagal gauto mazgo numerį. Šioje sistemoje mazgo numeris (modulio adresas) nustatomas DIP jungikliu ant modulio.

 

Programinės įrangos derinimo procese, nors kiekvieno mazgo aparatinės įrangos struktūra yra vienoda, dėl plokštės laidų ir komponentų sklaidos skirtumų dažnai pasitaiko, kad ne visi pagalbiniai mazgai gali priimti pagrindinio mazgo siunčiamą informaciją arba pagrindinis mazgas negauna visos pagalbinių mazgų siunčiamos informacijos, ty iškyla kadrų praradimo problema. Ši problema buvo išspręsta programinės įrangos uždelsimu ir priėmimo pertraukimo programos optimizavimu.


3 Kūrimo aplinka ir programa turėtų atkreipti dėmesį į keletą klausimų


Softune V3 programinės įrangos darbastalis yra integruota programinės įrangos kūrimo aplinka, skirta Fujitsu FFMC-8L, FFMC-16L/LX ir FR serijų mikrovaldiklių programoms kurti, įskaitant kūrimo valdymą, emuliatoriaus derinimą, minkštą modeliavimą ir integruotą kūrimo aplinką. Jo kūrimo įrankių rinkinį sudaro Softune Workbench, C kompiliatorius, Assembler, Linker, C Checker, C Analyzer. Softune V3 palaiko ir C, ir asamblėjos kalbas.


Faktiškai naudojant MB90F543, reikėtų atkreipti dėmesį į šias problemas.


① Priėmimo žymų pasirinkimo registro (AMSR) nustatymas. Kiekvienas pranešimų buferis gali pasirinkti vieną priėmimo žymėjimo būdą: pilno bitų palyginimą, pilną bitų kaukę arba bitų kaukės priėmimą. Visiškas-bitų palyginimas reiškia, kad mazgo gautos informacijos ID turi būti tiksliai toks pat kaip informacijos buferio nustatytas ID, kad informacija galėtų perduoti priėmimo identifikatorių; visiškam-bitų maskavimui nereikia lyginti informacijos ID, kuris gali būti interpretuojamas kaip besąlyginis priėmimo identifikatoriaus perdavimas; bit-masking acceptance gali nurodyti lyginamuosius ID bitus ir maskuojamus ID bitus, ty iš dalies lyginant priėmimą. Praktikoje šis priėmimo identifikatoriaus metodas naudojamas dažniausiai, todėl MB90F543 lusto CAN valdiklyje nustatyti du tokie metodai. AMSR nustatymas suteikia kūrėjui didelį lankstumą apdoroti buferio informaciją.


② Priėmimo žymėjimo registro (AMR) nustatymas. Kai AMSR nustatomas bitų-užmaskuotas priėmimo metodas, AMR turi būti nustatytas taip, kad būtų nustatyti, kurie ID bitai turi būti lyginami ir kurie bitai turi būti maskuojami. AMR iš viso turi keturis baitus ir palaiko 29 bitų ID simbolius. Tačiau verta paminėti, kad 29 bitų ID simboliui naudojamas AM28 ~ AM0; o 11 bitų ID simboliui naudojamas AM28 ~ AM18. todėl vartotojas turi būti atsargus nustatydamas AMR, nes kitaip gali atsirasti priėmimo klaida. Autorius čia nukentėjo.


③ Viena iš „Fujitsu“ CAN valdiklio ypatybių yra ta, kad jis palaiko kelių{0}}lygių pranešimų buferių naudojimą. Tuo atveju, kai priėmimas vyksta dažnai arba gaunami keli skirtingi ID informacijos rėmeliai, gali būti, kad CPU neužtenka laiko apdoroti gautai informacijai, todėl keli informacijos buferiai gali būti suformuoti į kelių-pakopų informacijos buferį, kad informacija būtų apdorota laiku ir efektyviai. Tokiu būdu 1 kadre gali būti siunčiama didesnė nei 8 baitų informacija. Kitas šio susitarimo privalumas yra tas, kad centrinis procesorius gali nuskaityti tam tikro informacijos buferio informaciją, nesijaudindamas, kad buferio informacija bus perrašoma ir iš karto pamesta.


4 Išvada


CAN taikomojo lygmens protokolo kūrimo procese yra pasiskolinti kai kurie DeviceNet specifikacijos mechanizmai, pvz., kelių duomenų perdavimo formų palaikymas (atrankinis leidimas, apklausa, būsenos keitimas ir kt.); tačiau dėl daugelio veiksnių, pvz., kūrimo ciklo, apribojimų reikia tobulinti ir išplėsti prietaiso diagnostinę funkciją, taip pat sąveiką su panašiais gaminiais. Dviguba CAN perteklinio ryšio sistema veikia stabiliai eksperimentiniame etape, duomenų perdavimas yra patikimas, perteklinis perjungimas yra praktiškas, o magistralės valdymo patikimumas yra geras; jis gali būti taikomas lokomotyvų valdymo sistemai ar kitoms pramoninio valdymo aikštelėms, kurioms reikalingas didelis patikimumas.

Siųsti užklausą

whatsapp

Telefono

El. paštas

Tyrimo