Duālās CAN duālās sakaru sistēmas dizaina risinājums un pielietojuma analīze

Jun 23, 2025 Atstāj ziņu

Lai gan pašam CAN protokolam ir spēcīga kļūdu noteikšanas un labošanas iespēja, rūpnieciskās vadības vietā spraudsavienojums nav ciets, pārraides vide vai kopnes draiveris utt., iznīcinās uzticamu CAN komunikāciju. Lietojumprogrammu sistēmā, kurai nepieciešama augsta uzticamība, šie defekti, ja tie netiks automātiski atklāti un netiks veikti atbilstoši pasākumi, lai novērstu, liks sistēmai daļēji vai pat pilnībā zaudēt spēju sazināties. Efektīvs veids, kā atrisināt šo problēmu, ir izmantot lieko sakaru kontroli. Tas nodrošina sakaru sistēmas galveno funkciju normālu darbību, tādējādi uzlabojot sistēmas uzticamību.

 

1 Sistēmas aparatūras komponenti

MB90F543 ir 16{12}}bitu mikrokontrolleris ar diviem Fujitsu CAN kontrolleriem. Sistēma izmanto divus kopņu komplektus (CAN0, CAN1), no kuriem katrs satur neatkarīgus kopņu kabeļus, kopnes draiverus un kopnes kontrollerus, kas var realizēt pilnīgu fiziskā datu nesēja, fiziskā slāņa, datu saites slāņa un lietojumprogrammas slāņa dublēšanu. Abi kopņu komplekti darbojas karstā rezerves režīmā: viens CAN kontrolleris kalpo kā noklusējuma CAN pēc sistēmas ieslēgšanas (ko var saukt par galveno CAN); otrs kalpo kā sistēmas gaidstāves CAN (ko sauc par vergu CAN) un kalpo kā galvenā CAN dublēšana. Kad sistēma darbojas normāli, galvenā CAN kopne (CAN0) tiek nodota ekspluatācijā. Ja galvenā CAN kopne neizdodas, tiek aktivizēta pakārtotā CAN kopne (CAN1). Ja ieslēgšana{15}}atklāj kļūmi galvenajā CAN kopnē, pakārtotā CAN kopne tiek automātiski iedarbināta. Tādā veidā, kad viens kopņu komplekts neizdodas, otrs kopņu komplekts automātiski turpinās darbu, lai nodrošinātu normālu visas sistēmas sakaru funkcijas darbību, kas ievērojami uzlabo sistēmas uzticamību un realizē visaptverošo CAN kopnes dublēšanas dizainu. Turklāt atbilstoši programmatūras vajadzībām var iestatīt arī lieko vai ne{17}}lieko režīmu. Neredundantajam režīmam tiek izmantota tikai galvenā CAN kopne.

info-1-1                               Sistēmas arhitektūras blokshēma

 

RT ir kopnes gala atbilstības rezistors, ko izmanto, lai slāpētu signāla emisijas traucējumus, RT=100Ω vai 120 Ω. Tīkls kā saziņas līdzekli izmanto ekranētu vītā pāra kabeli.


CAN kontrolieris integrē CAN protokola fiziskā slāņa un datu posma slāņa funkcijas un var pabeigt datu komunikācijas kadrēšanas procesu, tostarp bitu pildījumu, datu bloku kodēšanu, CRC kontrolsummu un prioritāro diskrimināciju.


CAN kontrollerim ir šādas galvenās funkcijas:

◇ Atbilst CAN2.0A un CAN2.0B protokoliem.

◇ Atbalsta datu kadru un attālo kadru nosūtīšanu un saņemšanu.

◇ 16 sūtīšanas/saņemšanas buferi, kas atbalsta 11-bitu vai 29-bitu identifikatorus un vairāku-līmeņu ziņojumu bufera struktūru; ◇ Atbalsta pilnu-bitu salīdzināšanu, pilna bitu salīdzināšanu un pilna bitu salīdzināšanu.

◇ Atbalsta trīs pieņemšanas identifikācijas atlases metodes: pilnīgas-bitu salīdzināšanas, pilnīgas-bitu maskēšanas un bitu maskēšanas pieņemšanas; ◇ Divi pieņemšanas identifikācijas reģistri.

◇ Divi pieņemšanas identifikācijas reģistri atbalsta standarta kadra vai paplašinātā kadra formātu.

◇ Bodu pārraides ātrums ir programmējams no 10Kbps līdz 1Mbps.


Kopnes vadītājs izmanto PCA82C250 kā saskarni starp CAN kontrolieri un fizisko kopni, lai uzlabotu kopnes diferenciālo pārraidi un uztveršanas spēju.

info-1-1

 

2 Sistēmas programmatūras projektēšana

 

2.1. Duālās CAN redundantās vadības funkcijas realizācija

 

Dubultajā CAN dublēšanas sistēmā, salīdzinot ar aparatūras struktūru, programmatūras dizains ir salīdzinoši sarežģītāks. Vispārējā CAN kopnes sakaru programmā jāiekļauj trīs pamata daļas: CAN inicializācijas programma, CAN pārraides programma un CAN uztveršanas programma. Šajā liekajā sistēmas programmatūras dizainā iepriekš minētās trīs daļas tiek izmantotas kā trīs visvienkāršākie moduļi citu sistēmas programmatūras moduļu izsaukšanai.


MB90F543 var apstrādāt 256 veidu pārtraukumu avotus, un ar CAN kontrolleri ir saistīti četri aparatūras pārtraukumi: CAN0 RX (CAN0 saņem pilnu pārtraukumu), CAN0 TX /NS (CAN0 sūtīt pabeigts/mezgla stāvokļa maiņas pārtraukums), CAN1 RX (CAN1 saņemt pilnu pārtraukumu), CAN1 stāvokļa maiņa sūtīt /NS pabeigta (CAN1 stāvokļa maiņa sūtīt /NS). CAN1 TX /NS (CAN1 pārraide pabeigta/mezgla statusa maiņas pārtraukums). Šajā programmatūras dizainā tiek izmantota vaicājuma sūtīšana un pārtraukšanas saņemšana. Mezgla stāvokļa maiņas pārtraukšanas apakšprogramma tiek izmantota mezgla stāvokļa maiņas apstrādei. Tas ir tāpēc, ka CAN2.0 protokols nosaka, ka mezglam ir viens no šiem trim stāvokļiem: kļūda-aktivizēts stāvoklis, kļūda-ignorēts stāvoklis un izslēgts{20}}kopnes stāvoklis. MB90500 sērijā ir arī papildu brīdinājuma stāvoklis, kas norāda, ka pārraides/saņemšanas kļūdu skaitītāja vērtība ir pārsniegusi 96, un mezgla stāvokļa maiņa izraisīs atbilstošu pārtraukumu.


Tā kā sistēma darbojas ar dubultās CAN dublēšanas karsto gaidīšanas režīmu, abiem CAN kontrolleriem jābūt karstā gaidstāves režīmā. Abi visu sistēmas mezglu CAN kontrolleri ir inicializēti, lai būtu gatavi saņemt ziņojumus jebkurā laikā, bet ziņojumus sūta viens un tikai viens CAN kontrolleris. Citiem vārdiem sakot, vienā brīdī aktīvs ir tikai viens no CAN kanāliem, bet otrs klausās (normālā darbībā) vai ir bojājuma stāvoklī (atteices gadījumā).


Divkāršās CAN redundantās vadības sistēmas programmatūras dizaina sarežģītības atslēga salīdzinājumā ar vienu CAN vadības sistēmu slēpjas CAN sistēmas kļūdu noteikšanā un CAN sistēmas automātiskā pārslēgšanā. Sakarā ar to, ka tiek izmantoti divi pilnīgi neatkarīgi pārraides datu nesēju komplekti, autobusu vadītāji un autobusu kontrolieri, lai tos varētu noteikt neatkarīgi no to kanālu kļūmēm, piemēram, CANH un CANL īssavienojuma, CANH vai CANL atvienošanas, CANH un zemējuma īssavienojuma, CANL un strāvas īssavienojuma-kopnes vadītāja bojājumiem un tā tālāk. Faktiskajā atkļūdošanā tiek konstatēts, ka, ja tiek atvienots CANH, CANL vai kopnē ir tikai viens raidītājs, pārraides/saņemšanas kļūdu skaitītājs palielināsies līdz 128, kas nostāda mezglu ignorētās kļūdas stāvoklī; un īssavienojums starp CANH un CANL, īssavienojums starp CANH un zemi vai īssavienojums starp CANL un barošanas avotu izraisīs pārraides/saņemšanas kļūdu skaitītāja palielināšanos līdz 256, kas nostāda mezglu kopnes stāvoklī Atvienots. Tāpēc, izsaucot CAN dublēšanas moduli mezgla stāvokļa maiņas pārtraukuma apakšprogrammā, mēs varam sasniegt iepriekš minēto mērķi — automātisku kļūdu noteikšanu un CAN sistēmas automātisku pārslēgšanu. CAN0 mezgla stāvokļa maiņas pārtraukuma apakšprogramma ir šāda:

 

__interrupt void NodeStateTransmitInt0 (neesošs)

{

if (CSR0_NT) /* mezgla stāvokļa maiņa */

{

CSR0_NT=0; /*Pārtraukšanas karoga atiestatīšana */

if ( (CSR0_NS==2 ) (CSR0_NS==3 ) ) /* izraisīts pārtraukums vai īssavienojums */

{

NoWaitFlg=1; /* savstarpēji izslēdzošs karogs */

Bus0Error( ); /* Bus0Error( ) aptur CAN0 un sāk lieko CAN1 apakšprogrammu */ { NoWaitFlg=1; /* mutex karogs */

}

}

ICR00 =3; /* mainīt pārtraukuma prioritāti uz Timer0 pārtraukuma prioritāti */ }

ICR03 =2; /* Mainiet pārtraukuma prioritāti, lai piešķirtu prioritāti taimera 0 pārtraukumam */ }

}

 

Turklāt CAN kopnes sakaru procesā, kad ir pabeigta noteikta informācijas bufera datu pārraide, attiecīgais bits pārraides pabeigšanas reģistrā tiks iestatīts uz 1. Pārraides vaicājuma procesā, vērtējot šo reģistru, var zināt, vai pārraide ir pabeigta vai nav. Tomēr, ja nosūtīšana nav veiksmīga, sistēma liks visu laiku gaidīt un izraisīs sistēmas avāriju. Tāpēc programmatūrai šeit ir jāiestata gaidīšanas periods, pēc kura tiks izsaukta CAN dublēšanas sistēma, lai apturētu galveno CAN kanālu un iespējotu slaveno CAN kanālu.


Programmatūras projektēšanā uzmanība jāpievērš arī problēmai, kā atjaunot sākotnējo sakaru uzdevumu pēc rezerves CAN pārslēgšanas. Risinājums ir sagatavot sarakstu ar uzdevumu karodziņiem, gaidīšanas CAN komutācijas, izlasiet tabulu, lai iegūtu sākotnējo sistēmas uzdevumu, lai sasniegtu sākotnējo komunikācijas uzdevumu uzticamu komutāciju.


2.2. Autobusu vadības funkcijas realizācija


Šīs sistēmas programmatūras dizainā papildus reāllaika datu pārraides un saņemšanas programmai{0}}tā ietver arī sakaru pārvaldības programmu katra mezgla pārvaldībai. Visi mezgli ir sadalīti galvenajos mezglos un pakārtotajos mezglos. Atšķirība starp tiem ir tāda, ka galvenajam mezglam ir kopnes pārvaldības funkcija, kas ļauj veikt tiešsaistes mezglu statistiku, atpazīt bezsaistes mezglus un veikt pasākumus, lai ar tiem tiktu galā; kamēr vergu mezglam šīs funkcijas nav. Ir tikai viens galvenais mezgls, savukārt ir atļauti vairāki vergu mezgli. Ik pa laikam tiek izsaukta galvenā mezgla kopnes pārvaldības funkciju programma, lai noteiktu, vai visi mezgli ir tiešsaistē: ja visi mezgli ir tiešsaistē, kopne tiek uzskatīta par normālu; pretējā gadījumā identificējiet bezsaistes mezglus un attiecīgi rīkojieties ar tiem. Dizaina ideja ir tāda, ka sistēmas galvenais mezgls ar regulāriem intervāliem nosūta attālo kadru uz visiem pakārtotajiem mezgliem, un katrs pakārtotais mezgls to saņem, ievieto datu rāmī savu mezgla numuru un nosūta to galvenajam mezglam, un galvenais mezgls nosaka, vai ir mezgla kļūme bezsaistē saskaņā ar saņemto mezgla numuru. Šajā sistēmā mezgla numuru (moduļa adresi) iestata ar moduļa DIP slēdzi.

 

Programmatūras atkļūdošanas procesā, lai gan katra mezgla aparatūras struktūra ir vienāda, shēmas plates elektroinstalācijas un komponentu izkliedes atšķirību dēļ bieži vien ne visi pakārtotie mezgli var saņemt galvenā mezgla nosūtīto informāciju vai arī galvenais mezgls nesaņem visu informāciju, ko sūta pakārtotie mezgli, ti, rodas kadru zuduma problēma. Šī problēma ir atrisināta ar programmatūras aizkavi un saņemšanas pārtraukumu programmas optimizāciju.


3 Izstrādes vidē un aplikācijā uzmanība jāpievērš vairākiem jautājumiem


Softune V3 programmatūras darbgalds ir integrēta programmatūras izstrādes vide Fujitsu FFMC-8L, FFMC-16L/LX un FR sērijas mikrokontrolleru programmu izstrādei, ieskaitot izstrādes pārvaldību, emulatora atkļūdošanu, mīksto simulāciju un integrētu izstrādes vidi. Tās izstrādes rīku komplektā ietilpst Softune Workbench, C kompilators, Assembler, Linker, C Checker, C Analyzer. Softune V3 atbalsta gan C, gan montāžas valodas.


Faktiskās MB90F543 lietošanas laikā ir jāņem vērā šādas problēmas.


① Pieņemšanas zīmju atlases reģistra (AMSR) iestatījums. Katrs ziņojumu buferis var izvēlēties vienu pieņemšanas marķēšanas metodi: pilnu bitu salīdzināšanu, pilnas bitu maskas vai bitu maskas pieņemšanu. Pilns-bitu salīdzinājums nozīmē, ka mezgla saņemtās informācijas ID ir jābūt tieši tādam pašam kā informācijas bufera iestatītajam ID, lai informācija tiktu nodota pieņemšanas identifikatoram; pilnīgai-bitu maskēšanai nav jāsalīdzina informācijas ID, ko var interpretēt kā beznosacījumu pieņemšanas identifikatora nodošanu; bit-maskēšanas pieņemšana var norādīt salīdzināmos ID bitus un maskējamos ID bitus, ti, daļēji salīdzinot pieņemšanu. Praksē šī pieņemšanas identifikatora metode tiek izmantota visbiežāk, tāpēc MB90F543 mikroshēmas CAN kontrollerī ir iestatītas divas šādas metodes. AMSR iestatījums nodrošina lielu elastību izstrādātājam, lai apstrādātu bufera informāciju.


② Pieņemšanas marķējuma reģistra (AMR) iestatījums. Kad AMSR ir iestatīta bitu-maskētā pieņemšanas metode, AMR ir jāiestata, lai iestatītu, kuri ID biti ir jāsalīdzina un kuri biti ir maskējami. AMR kopā ir četri baiti, un tas atbalsta 29 bitu ID rakstzīmes. Tomēr ir vērts atzīmēt, ka 29 bitu ID rakstzīmei tiek izmantots AM28 ~ AM0; savukārt 11 bitu ID rakstzīmei tiek izmantots AM28 ~ AM18. tādēļ lietotājam jābūt uzmanīgam, iestatot AMR, pretējā gadījumā radīsies uztveršanas kļūda. Autors šeit ir cietis.


③ Viena no Fujitsu CAN kontrollera funkcijām ir tā, ka tā atbalsta vairāku{0}}līmeņu ziņojumu buferu izmantošanu. Gadījumā, ja saņemšana notiek bieži vai tiek saņemti vairāki dažādi ID informācijas rāmji, iespējams, ka centrālajam procesoram nepietiek laika saņemtās informācijas apstrādei, tāpēc no vairākiem informācijas buferiem var izveidot daudzlīmeņu informācijas buferi, lai nodrošinātu savlaicīgu un efektīvu informācijas apstrādi. Tādā veidā 1 kadrā var nosūtīt informāciju, kas lielāka par 8 baitiem. Vēl viena šī izkārtojuma priekšrocība ir tā, ka centrālais procesors var nolasīt noteikta informācijas bufera informāciju, neuztraucoties par to, ka bufera informācija tiek nekavējoties pārrakstīta un pazaudēta.


4 Secinājums


CAN lietojumprogrammas slāņa protokola izstrādes procesā tiek aizgūti daži DeviceNet specifikācijas mehānismi, piemēram, vairāku datu pārraides formu atbalstīšana (selektīva caurlaide, aptauja, stāvokļa maiņa utt.); tomēr daudzu faktoru, piemēram, izstrādes cikla, ierobežojumu dēļ ir jāuzlabo un jāpaplašina ierīces diagnostikas funkcija, kā arī savietojamība ar līdzīgiem produktiem. Divkāršā CAN dublējošā sakaru sistēma eksperimenta stadijā darbojas stabili, datu pārraide ir uzticama, redundances pārslēgšana ir praktiska un kopnes pārvaldības uzticamība ir laba; to var izmantot lokomotīvju vadības sistēmā vai citās rūpnieciskās vadības vietās, kurām nepieciešama augsta uzticamība.

Nosūtīt pieprasījumu

whatsapp

Telefons

E-pasts

Izmeklēšana