1 Úvod
Mikrokontroléry sa čoraz viac používajú v automatizovaných riadiacich zariadeniach, mikroprocesorových-systémoch integrovanej ochrany pre energetické siete a iných oblastiach riadenia priemyselnej automatizácie, pričom zložitosť týchto zariadení neustále rastie. S cieľom riešiť-viac{3}}požiadavky vývojových cieľov na viac úloh v reálnom čase sa model jedného-CPU, jedného{5}}vývojára nahrádza kooperatívnym prístupom, ktorý zahŕňa viacero CPU rôznych typov a viacerých vývojárov. Táto nová vývojová paradigma predstavuje kritickú výzvu: štandardizáciu hardvéru a softvéru na výmenu informácií medzi CPU počas implementácie. Táto štandardizácia je kľúčová pre úspešné prijatie tohto nového modelu. Spomedzi mnohých komunikačných metód je široko používaný sériový komunikačný protokol RS-485 založený na UART- vďaka jednoduchému zapojeniu, vysokej spoľahlivosti a schopnosti podporovať viacero CPU. Čo sa týka softvérových komunikačných protokolov, protokol Modbus ponúka používateľom značné výhody vďaka svojej univerzálnosti a vyspelému softvéru na ladenie. Preto sa počas vývoja nového zariadenia na komplexnú ochranu motora prijala metóda sériovej komunikácie RS-485 a komunikačný protokol Modbus, aby sa dosiahla výmena údajov a informácií o riadiacich príkazoch medzi viacerými CPU. Na zvýšenie efektívnosti a koordinácie sériovej komunikácie autor implementoval množstvo opatrení v hardvérovej a softvérovej architektúre komunikačného mechanizmu, pričom dosiahol vynikajúce výsledky. Počas fázy ladenia systémovej komunikácie sa použila metóda, pri ktorej každý modul CPU najprv komunikoval so štandardným testovacím softvérom Modbus predtým, ako prešiel ladením vzájomného prepojenia, čím sa výrazne zlepšila efektivita spoločného vývoja. Prax ukázala, že táto filozofia dizajnu zjednodušuje štruktúru systému a zároveň výrazne zvyšuje prevádzkovú účinnosť a spoľahlivosť zariadenia.
2 Vlastnosti zariadenia na komplexnú ochranu motora
Okrem komplexných ochranných funkcií integruje zariadenie na ochranu motora meracie, diaľkové a komunikačné funkcie. Jeho veľká-obrazovka LCD s čínskymi znakmi umožňuje používateľsky-priateľské rozhranie. Využitím CAN zbernice komunikácie s monitorovacím hostiteľom tvorí subsystém v rámci hierarchického, distribuovaného automatizačného systému rozvodne. Na optimalizáciu funkčnosti systému pre jeho multi{5}}požiadavky na viacúlohové úlohy bola prijatá architektúra viacerých-CPU. Jeden procesor spracováva periodické vzorkovanie impulzov a prenos; hlavný modul CPU riadi spracovanie údajov, výpočet elektrických parametrov, diagnostiku porúch a spínacie operácie; zatiaľ čo CPU modulu dosky dohliada na interakciu človek{8}}stroj a uľahčuje komunikáciu s hlavným ochranným modulom a monitorovacím hostiteľom. Každý modul CPU má jasne definované úlohy, čo uľahčuje vývoj v spolupráci viacerých inžinierov počas implementácie. Sériová komunikácia spája hlavný CPU a panelový CPU, čo umožňuje interakciu medzi človekom{11}}strojom, a teda zaberá kritickú pozíciu. Vytvorenie racionálneho komunikačného mechanizmu je jadrom sekcie sériovej komunikácie, ktorá určuje komunikačnú koordináciu a efektivitu ladenia v neskorších fázach vývoja systému.
3 Úvod do komunikačných mechanizmov
3.1 Hardvérový návrh komunikačného mechanizmu
Komunikačný mechanizmus navrhnutý pre tento systém má za cieľ vysokú účinnosť a spoľahlivosť. RS-485 využíva polovičnú-duplexnú štruktúru, ktorá je v terénnych aplikáciách často praktickejšia ako plne duplexná. Tu sa používa zjednodušené pripojenie iba pomocou dvoch signálnych vedení. Schéma zapojenia systémového rozhrania je znázornená na obrázku 1. Výstup logických úrovní TTL mikrokontroléra 8051 na hlavnom ochrannom module je opticky izolovaný a potom čipom MAX485 prevedený na úrovne RS-495. Následne ich čip MAX485 na panelovom module prevedie späť na logické úrovne TTL na čítanie mikrokontrolérom 8031. Na strane mikrokontroléra 8051 kolík P2.7 paralelného I/O portu 2 ovláda kolík RE aktivácie vstupu MAX a kolík DE aktivácie výstupu. Ako je znázornené na obrázku 1, keď P2.7 vydáva vysokú úroveň, RE je povolená, čo umožňuje strane mikrokontroléra prijímať dáta. Keď P2.7 vydáva nízku úroveň, DE je povolené, čo umožňuje strane mikrokontroléra prenášať dáta. Tento prístup zabraňuje strate dát v dôsledku prekrývania spôsobeného slepým prenosom, čím sa zabezpečuje vysoká kvalita komunikácie a spoľahlivá prenosová rýchlosť.

3.2 Komunikačný protokol
Na zabezpečenie presného prenosu údajov medzi dvoma modulmi v rámci ochranného zariadenia je nevyhnutný súbor špecifikácií upravujúcich prenos informácií-vrátane režimov prenosu, formátov údajov a obsahu-. Toto predstavuje protokol alebo komunikačný protokol. Bez ľahko dostupného vyspelého ladiaceho softvéru funguje hlavný modul CPU v podstate ako čierna skrinka, čo vedie k mnohým a ťažko{4}}{5}}prekonateľným výzvam počas testovania systémovej integrácie. Preto bol vybratý a zjednodušený komunikačný protokol Modbus, ktorý vyhovuje špecifickým požiadavkám zariadenia a umožňuje úspešnú medzi-modulovú komunikáciu s preukázanou účinnosťou. Modbus využíva hlavný-podriadený komunikačný model. Master najprv odošle príkaz požiadavky na komunikáciu podriadenému. Podriadený potom odpovedá masteru údajmi na základe kódu funkcie v rámci príkazu požiadavky. Každý otrok má jedinečnú adresu. Požiadavkové rámce odoslané nadriadeným zariadením aj rámce odpovedí odoslané podriadeným zariadením začínajú adresou podriadeného zariadenia. Podriadené jednotky iba čítajú príkazy adresované sebe samým a ignorujú správy začínajúce inými podriadenými adresami. Táto funkcia je implementovaná pomocou režimu 2 alebo režimu 3 sériového portu 8051. Tento komunikačný model -a{20}}výrazne zvyšuje presnosť komunikácie. V tomto zariadení je použitý režim prenosu RTU Modbus.
4 Opatrenia na zvýšenie spoľahlivosti komunikácie
Posledné dva bajty správy Modbus slúžia ako bajty kontrolného súčtu. Komunikácia RTU využíva cyklickú kontrolu redundancie CRC-16 na detekciu chýb. Jeho mechanizmus kódovania/dekódovania je relatívne jednoduchý s nízkou chybovosťou, ktorú je možné dosiahnuť pomocou výpočtových alebo programovacích metód. Nižšie je uvedených niekoľko prístupov:
4.1 Základný algoritmus (ručný výpočet)
Ako príklad použijeme CRC16-CCITT: kontrolný súčet CRC je 16 bitov a generujúci polynóm je 17 bitov. Predpokladajme, že dátový tok má 4 bajty: BYTE, BYTE, BYTE, BYTE[0];
Posuňte dátový tok doľava o 16 bitov, čím sa efektívne rozšíri o faktor 256 × 256. Potom vykonajte delenie pomocou generátorového polynómu 0x11021 pomocou -vypožičiavacieho delenia (ekvivalent bitového XOR). Výsledný zvyšok je kontrolný súčet CRC. Prenášaný dátový tok pozostáva zo 6 bajtov: BYTE, BYTE, BYTE, BYTE[0], CRC, CRC[0].
4.2 Počítačový algoritmus 1 (algoritmus bitového-typu)
1) Umiestnite horných 16 bitov (BYTE, BYTE) rozšíreného dátového toku (6 bajtov) do 16-bitového registra;
2) Ak je najvýznamnejší bit registra 1, posuňte register doľava o jeden bit (získajte najmenej významný bit z nasledujúceho bajtu), potom vykonajte operáciu XOR so zjednodušenou formou polynómu generátora; v opačnom prípade jednoducho posuňte register doľava o jeden bit (získajte najmenej významný bit z nasledujúceho bajtu);
3) Opakujte krok 2, kým sa celý dátový tok (6 bajtov) nepresunie do registra;
4) Hodnota v registri je kontrolný súčet CRC CRC, CRC[0].
4.3 Počítačový algoritmus 2 (Algoritmus bajtového -typu) (256^n označuje 256 umocnené na n)
Predstavte dátový tok-zoradený po bajtoch ako matematický polynóm. Nech je dátový tok BYTE[n] BYTE[n-1] BYTE[n-2] ... BYTE[0] je reprezentovaný ako matematický výraz
BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0], kde „+“ označuje operáciu XOR. Nech je polynóm generátora G17 (17-bit), potom kód CRC je CRC16.
CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2 / G17
To zahŕňa posunutie dátového toku doľava o 16 bitov a následné delenie polynómom generátora G17.
Odvodenie ukazuje, že kontrolný kód CRC pre BYTE[n-1] sa rovná výsledku XOR horných 8 bitov kontrolného kódu CRC predchádzajúceho bajtu Y[n] (YH8[n]) a aktuálneho bajtu BYTE[n-1].
Algoritmus typu bajt{0} je nasledujúci:
1) Inicializujte skupinu registrov CRC na všetky "0" (0x0000).
2) Posuňte skupinu registrov CRC o 8 bitov doľava a uložte ju do skupiny registrov CRC.
3) Vykonajte operáciu XOR medzi vysokými 8 bitmi pôvodnej skupiny registrov CRC (posunuté o 8 bitov doprava) a dátovým bytom, aby ste získali index ukazujúci na tabuľku hodnôt.
4) Vykonajte operáciu XOR medzi hodnotou tabuľky, na ktorú ukazuje index, a skupinou registrov CRC.
5) Zvýšte ukazovateľ údajov. Ak spracovanie údajov nie je dokončené, zopakujte krok 2).
6) Získajte CRC.
5 opatrení na zlepšenie efektívnosti komunikácie
5.1 Samostatné úlohy prijímania a prenosu komunikácie
Mikrokontrolér 8051 dokáže prenášať a prijímať dáta cez sériový port pomocou prerušení. Radič sériového portu SCON podporuje inicializáciu a bitové adresovanie. Keď sa vyskytne požiadavka na prerušenie sériového portu, spodné dva bity SCON zablokujú prerušenie vysielania a prijímania. Keď CPU zapíše dáta alebo znak do vyrovnávacej pamäte prenosu SUBF sériového portu (inštrukcia: MOV SUBF, A), vysielač začne odosielať. Po dokončení jedného dátového rámca hardvér nastaví príznak TI na "1", čo znamená, že sériový port požaduje prerušenie od CPU na odoslanie ďalšieho dátového rámca. Podobne, ak je prijímač sériového portu povolený na príjem, po prijatí rámca dát sa príznak RI nastaví na 1, čo naznačuje, že sériový port požaduje prerušenie od CPU na čítanie dát z vyrovnávacej pamäte prijímaných dát.
5.2 Skrátenie trvania prerušenia
Keďže pri návrhu architektúry softvéru sa používa viacero prerušení, aby sa zabezpečila spoľahlivá prevádzka programu a minimalizovala sa pravdepodobnosť konfliktov medzi rôznymi úlohami, implementácia softvéru by sa mala snažiť zefektívniť úlohy rôznych prerušení a skrátiť čas ich vykonávania. V rámci podprogramu prerušenia komunikácie vykonajte pri vstupe do prerušenia zásadné úlohy, ako sú: vymazanie zodpovedajúcich stavových bitov v riadiacom registri sériového portu, čítanie prijatých znakov alebo zápis znakov, ktoré sa majú preniesť z/do vyrovnávacej pamäte, zvýšenie počtu prijatých alebo odoslaných znakov a pod.. Potom prerušenie okamžite ukončite. Ostatné úlohy, ako je validácia rámcov, reagovanie na prijaté rámcové príkazy (telemetria/telecommand) a príprava prenosových rámcov, by sa mali vykonávať v rámci hlavného programu.
5.3 Efektívna detekcia ukončenia rámca na zabránenie stagnácii komunikácie
Využitie vyhradeného softvérového časovača na detekciu konca prijatého rámca zabraňuje zdržaniu komunikačných úloh, ak je rámec prijatý neúplne, čím sa zabezpečí včasný príjem nasledujúcich rámcov. Keďže časový interval medzi bajtami v rámci je oveľa kratší ako interval medzi jednotlivými snímkami-do{2}}, softvérový časovač sa spustí pri každom prijatí nového bajtu. Časovač je nastavený na minimálny interval medzi snímkami-do{5}}. Tento interval sa mení s rôznymi prenosovými rýchlosťami. Ak je ďalší bajt prijatý pred uplynutím prednastaveného času, znamená to, že rámec je neúplný a časovač sa reštartuje. Ak časovač úspešne odpočíta do prednastaveného času, spustí zodpovedajúce číslo prerušenia. V rámci podprogramu prerušenia časovača sa nastaví bajt príznaku konca rámca, čo znamená, že príjem rámca je dokončený. Potom, čo hlavný program deteguje dokončenie príjmu rámca, overí integritu rámca overením adresy podriadeného zariadenia a bajtu kontroly cyklickej redundancie (CRC). Ak sa potvrdí ako platný rámec určený pre master, spracuje príkaz rámca na základe svojho funkčného kódu a pripraví sa na odoslanie rámca. Keď slave dostane nesprávnu správu, pošle späť chybový rámec. Ak prijatá správa obsahuje nesprávne CRC, podriadený server sa môže rozhodnúť neodpovedať. Ak master nedostane odpoveď od slave v určenom čase, odošle správu s požiadavkou znova. Ak viacero opakovaných prenosov neprijme odpoveď od podriadeného zariadenia, je hlásené zlyhanie komunikácie.
5.4 Určenie rýchlosti komunikácie
Keďže všetky zariadenia sú umiestnené v rovnakom šasi, vzdialenosť medzi modulmi je minimálna. Modbus funguje na RS485 pre komunikáciu na veľké vzdialenosti-, čím sa eliminuje potreba zvažovať vplyv vzdialenosti na prenosovú rýchlosť. Okrem toho, hlavný-podriadený komunikačný režim zabraňuje preťaženiu linky. Z hľadiska efektívnosti komunikácie teda platí, že pokiaľ nastavená prenosová rýchlosť neprekročí maximálnu hranicu prenosovej rýchlosti čipu použitého v module, vyššia prenosová rýchlosť má za následok rýchlejšiu výmenu informácií a vyššiu efektivitu komunikácie. Nastavenie úplne rovnakej prenosovej rýchlosti pre obe komunikačné strany zaisťuje, že prijímajúci koniec vzorkuje každý dátový bit v strede bitového cyklu, čím sa dosiahne spoľahlivá komunikácia.
5.5 Primerané metódy ladenia
Počas ladenia najskôr otestujte komunikáciu medzi každým modulom CPU a mikropočítačom cez modul prevodu dát RS485/RS232. Po úspešnom individuálnom testovaní prejdite na ladenie medzi-modulmi, čím sa výrazne zlepší celková efektivita ladenia. Počas ladenia komunikácie medzi modulmi-k-počítaču používa počítač ladiaci softvér Modbus na simuláciu komunikačného procesu nadriadeného zariadenia, pričom aktívne požaduje informácie od podriadeného zariadenia. To robí celý proces príjmu a prenosu transparentným a jasným, čo umožňuje včasné riešenie problémov modulu. Počas spoločného ladenia softvér na monitorovanie zbernice sleduje údaje z oboch strán, aby rýchlo identifikoval a vyriešil problémy.
6 inovačných bodov tohto dokumentu
Po prvé, tento dokument používa Modbus, univerzálny priemyselný štandard, v ochrannom zariadení. Požadovaný softvérový nástroj možno získať priamo z príslušných webových stránok bez toho, aby vznikali náklady na duševné vlastníctvo. Po druhé, ochranné zariadenie implementuje multitasking a využíva protokol Modbus na vytvorenie primeraného mechanizmu spoločného ladenia medzi modulmi CPU, čo výrazne zlepšuje efektivitu vývoja spoločného systému.




