A hálózat és a verem CANopen
Egyszer szembe a feladatot a fejlődő beágyazott rendszer, amelyben az adatok átvihetők a csomópontok közötti c maximális megbízhatóságot. Aztán amikor először hallottam a CAN.
Ebben a cikkben szeretném elmondani röviden meséljen, mit lehet és a tapasztalataikról vele. Talán az emberek, akik részt vesznek a beágyazott rendszerek fejlesztése, miután elolvasta a cikket, érdekelt ez a szabvány, ha az nem került be a látóteret. Különösen azért, mert a CAN vezérlők jelenleg jelen van sok mikrokontroller.
CAN (Controller Area Network) - a standard által létrehozott Bosch cég hálózatokat az automatizálás és az ipar. A szabvány széles körben használják az ipari gyártás, a technológia, az „intelligens otthon”, valamint az autóiparban. Nagyon alkalmas ragasztásához a különböző érzékelők és vezérlőeszközök egyetlen hálózatban.
Jellemzően a CAN-hálózat egy olyan hálózat, a „busz”, amelyben minden csomópont képes adatok küldésére és fogadására.
Ez egy kis sebességgel, de nagy megbízhatóság.
Következő, szeretnék leírni a standard felszíni és beszélni, hogyan kell használni a hálózatot a gyakorlatban.
A szabvány leírja a link réteg, és az alapvető követelményeket a fizikai réteg.
A legfontosabb dolog a fizikai szinten - ez a követelmény képes küldeni a bitek „domináns” és „recesszív”. A domináns jel tekinthető egy egység, és a recesszív - nulla. A fő követelmény - az átviteli domináns és recesszív jel ugyanakkor, minden csomópont el kell érnie egy domináns jel. Ez ezen az elven alapuló választottbírósági mechanizmus. Ebből az következik, hogy az átvitel különböző média, de a gyakorlatban gyakran használják differenciál pár.
hálózati átvitel előfordul kereteket. A szokásos két kocka típusok: alap és haladó.
Az alapvető keret tartalmaz 11 bites azonosító, és a fejlett - 29 bit. A keret magában foglalja a biteket átcsoportosítási kérelmet, információkat a hossza a továbbított adatok és az adatok is. Ők is eltarthat 0-8 byte a keretben. Csak keret tartalmaz néhány védett információkat, de a programozók nem lényeges, hiszen végre hardver hozzá a hálózati vezérlőt.
Kezdetben az azonosítók nem kötődnek semmilyen csomópont és jellemzi az üzenetet, és nem a küldő és a címzett. Azonosítókat is jelzik az üzenet prioritását. Prioritás határozza meghatározó bitek az azonosító. Tehát 10000000000 magasabb prioritást 01000000000.
A fő előnye a CAN megbízhatóságát. Ez használ egy mechanizmus a konfliktusok megoldásának (ellentétben Ütközésellenőrzés mechanizmus Ethernet), amely lehetővé teszi, hogy mentse a sávszélesség miatt ütközések.
Ennek lényege abban rejlik, hogy minden csomópont figyel a hálózatra, és ez ingyenes, lehet kezdeni az adást. Ugyanakkor, ő továbbra is hallgatni a hálózathoz. Ha küld egy recesszív bit érkezik domináns, akkor ezzel egyidejűleg egység kezdte továbbítására egy másik csomópont a magasabb prioritású. Ebben az esetben az átvitel leáll.
Ettől eltekintve hiba észlelése mechanizmust használnak, mint például a sebességváltó vezérlő, amely kiegészíti a biteket, a használata az ellenőrző és ellenőrzése terén értékeket. A fejlesztők becslése a valószínűsége nem észlel átviteli hiba, mint egy 4,7 × 10-11.
Ez a szabvány nem terjed ki a felső réteg protokollok, így jött létre néhány megvalósítások, mind a kereskedelmi és nyílt.
A legismertebb ezek közül:
- CANopen
- DeviceNet
- CAN-Britannia
Ez és még több információt a szabványos könnyű megtalálni az interneten, úgyhogy végül eljutottak a CANopen specifikáció.
Mint írtam, egy napon elvitt egy megbízható hálózat létrehozása mikrokontroller. Miután megvizsgálták a lehetőségeket, úgy döntöttek, hogy hagyja abba a CAN hálózat. Mivel a felső réteg protokoll CANopen választották, és annak végrehajtására - CANopenNode, mert ez egy nyílt és egyszerű számhordozás számomra megfelelő eszköz. CANopenNode LGPL engedélyei szerint.
Kiemeli a CANopen protokoll:
- protokoll működik szabványos azonosítók. A hálózat tartalmazhat legfeljebb 127 csomópontok.
- minden egyes csomópont egyedi számot kap a hálózatban.
- a protokoll nem igényel jelenlétében hálózat varázsló (azonban vannak lehetőségek állnak rendelkezésre, hogy csak egy csomópont a hálózat, amely lehet nevezni egy master)
- OD (objektum szótár) - a tárgy szótárban. Ez tartalmaz egy rendezett változók listáját, ahová a belépés lehet hozzáférni hálózaton keresztül SDO.
- SDO (Service Data Objects) - a mechanizmus az objektum elérését szótárban. SDO nevezett szerver kell kezdeni a hálózati hozzáférési csomópont objektumok azon a csomóponton. A hálózat csak egy kliens SDO feltételesen nevezett mester, hogy adatokat tud fogadni egyik szerverrel.
- OEM (Process Data Objects) - létesítmények gyors kommunikációs csomópontok között. Tartalmazhat akár 8 adat byte, és továbbítjuk egy keretben. identitását (egy bizonyos sávban vétel) jut az egyes OEM. OEM vannak osztva a bejövő (RPDO) és kimenő (TPDO). Kezdetben azt feltételezzük, hogy minden csomópont lesz a 4 és 4 RPDO TPDO, de át lehet csoportosítani a csomópontok között olyan mértékben, hogy egy csomópont képes lesz továbbítani és fogadni akár 512 OEM. Azonban ebben az esetben a másik azonosítók csomópontok nem elég.
PDO lehet küldeni az időzítőt, bekövetkezése esetén bizonyos események vagy közvetlen kérelmet küldött az ellenőrzési program.
- NMT (Network Management) - a hálózat vezetője. Ilyen típusú üzenetet tudja fordítani oldalak különböző államokban (inicializálás, üzlet, predrabochee, megállt), valamint ezek segítségével ellenőrző hálózat - a mechanizmus szívverés.
- Heartbeat - fordította a szívverés. A mechanizmus az, hogy minden csomópont a hálózatban továbbítja egy adott üzenetet, egyedi az egyes csomópontokhoz (ID hozzáadásával kapott a csomópontszám a hálózatban, hogy egy bizonyos számú). Bármely csomópont, amely azt akarja, hogy tudom, hogy ő még mindig rendelkezésre áll, hogy bizonyos csomópontok id egyszerűen megkapja és feldolgozza ezeket az üzeneteket. Üzenete érdektelen számára csomópontok lehet figyelmen kívül hagyni.
- Sürgősségi üzenet - a protokoll előírja küldött vészhelyzeti üzenetet.
- EDS (Electronic Data Sheets) - speciális szöveges fájlokat, személyre szabhatja a tárgy szótárban. Vannak olyan programok, hogy segítsen a generációs ilyen fájlokat.
CANopenNode
CANopenNode - nyílt forráskódú megvalósítása a CANopen protokollal, írott tiszta C felhasználásra mikrokontroller.
A következtetés
A végén, arra a következtetésre jutottam, hogy ez a protokoll nem egészen jól illeszkedik az én problémám, és amit meg kell írni a végrehajtás. Azonban az időt töltöttem, miközben foglalkozik ezzel a protokollal, én sokkal jobban megértsük, hogyan működik a CAN hálózat. Ha kell, hogy gyorsan, hogy egy működő alkalmazás, amely minden előnyét megbízható szállítás, ha azt szeretnénk, az alkalmazás kompatibilis a sok meglévő rendszerek esetén meg kell főzni a hibakeresés CAN-hálózat, CANopen - ez egy nagyon jó választás.