Obsah:
- Krok 1: Co je CANBUS
- Krok 2: O komunikaci CAN
- Krok 3: Rámečky
- Krok 4: Rychlost a vzdálenost
- Krok 5: Hardware
- Krok 6: Připojení
- Krok 7: Kód
- Krok 8: Zobrazit
Video: Jednoduchý návod pro CANBUS: 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Studuji CAN tři týdny a nyní jsem dokončil několik aplikací k ověření výsledků učení. V tomto tutoriálu se naučíte, jak pomocí Arduina implementovat komunikaci CANBUS. Pokud máte nějaké návrhy, zanechte zprávu.
Zásoby:
Hardware:
- Maduino Zero CANBUS
- Modul teploty a vlhkosti DHT11
- 1,3 "I2C OLED 128x64- modrá
- Kabel DB9 až DB9 (zásuvka - zásuvka)
- Dupont Line
Software:
Arduino IDE
Krok 1: Co je CANBUS
O CAN
CAN (Controller Area Network) je sériová komunikační síť, která dokáže realizovat distribuované řízení v reálném čase. Je vyvinut pro automobilový průmysl, aby nahradil složitý kabelový svazek dvouvodičovou sběrnicí.
Protokol CAN definuje vrstvu datového spojení a část fyzické vrstvy v modelu OSI.
Protokol CAN je standardizován ISO s ISO11898 a ISO11519. ISO11898 je vysokorychlostní komunikační standard CAN s komunikační rychlostí 125 kb / s-1 Mb / s. ISO11519 je nízkorychlostní komunikační standard CAN s komunikační rychlostí nižší než 125 kb / s.
Zde se zaměřujeme na vysokorychlostní CAN.
ISO-11898 popisuje, jak jsou předávány informace mezi zařízeními v síti a odpovídá modelu propojení otevřených systémů (OSI), který je definován z hlediska vrstev. Vlastní komunikace mezi zařízeními připojenými fyzickým médiem je definována fyzickou vrstvou modelu
- Každou jednotku CAN připojenou ke sběrnici lze nazvat uzlem. Všechny jednotky CAN jsou připojeny ke sběrnici zakončené na každém konci odpory 120 Ω, aby vytvořily síť. Sběrnice se skládá z linek CAN_H a CAN_L. Řadič CAN určuje úroveň sběrnice na základě rozdílu v úrovni výkonu na obou vodičích. Úrovně autobusů jsou rozděleny na dominantní a recesivní úrovně, které musí být jednou z nich. Odesílatel odešle zprávu příjemci provedením změny na úrovni sběrnice. Když je na sběrnici spuštěn logický řádek „a“, dominantní úroveň je „0“a recesivní úroveň je „1“.
- V dominantním stavu je napětí CAN_H asi 3,5 V a napětí CAN_L je asi 1,5 V. V recesivním stavu se napětí obou vedení pohybuje kolem 2,5V.
- Signál je diferenciální, proto CAN odvozuje svou robustní odolnost proti rušení a odolnost proti chybám. Vyvážený diferenciální signál snižuje hlukovou vazbu a umožňuje vysokou rychlost signalizace přes kroucený pár kabelů. Proud v každém signálním vedení je stejný, ale v opačném směru a vede k efektu rušení pole, který je klíčem k nízkým emisím hluku. Použití vyvážených diferenciálních přijímačů a kroucené dvojlinky zlepšuje odmítnutí běžného režimu a vysokou odolnost proti rušení sběrnice CAN.
Transceiver CAN
Transceiver CAN je zodpovědný za převod mezi logickou úrovní a fyzickým signálem. Převeďte logický signál na diferenciální úroveň nebo fyzický signál na logickou úroveň.
Ovladač CAN
CAN Controller je základní komponentou CAN, která realizuje všechny funkce vrstvy datového spojení v protokolu CAN a dokáže automaticky vyřešit protokol CAN.
MCU
MCU je zodpovědný za řízení funkčního obvodu a řadiče CAN. Například parametry řadiče CAN jsou inicializovány při spuštění uzlu, rámec CAN je načten a odeslán prostřednictvím řadiče CAN atd.
Krok 2: O komunikaci CAN
Když je sběrnice nečinná, všechny uzly mohou začít odesílat zprávy (ovládání více masterů). Uzel, který jako první přistupuje ke sběrnici, má právo odeslat (režim CSMA/CA). Když začne odesílat více uzlů současně, uzel, který odesílá zprávu s vysokou prioritou ID, má právo odeslat.
V protokolu CAN jsou všechny zprávy odesílány v pevném formátu. Když je sběrnice nečinná, všechny jednotky připojené ke sběrnici mohou začít odesílat nové zprávy. Když více než dvě buňky začnou odesílat zprávy současně, priorita je určena na základě identifikátoru. ID nepředstavuje cílovou adresu odeslání, ale spíše prioritu zprávy přistupující ke sběrnici. Když více než dvě buňky začnou odesílat zprávy současně, každý bit bezúročného ID je rozhodován jeden po druhém. Jednotka, která vyhraje arbitráž, může pokračovat v odesílání zpráv a jednotka, která arbitráž prohraje, okamžitě zastaví odesílání a přijímá práci.
Sběrnice CAN je přenosový typ sběrnice. To znamená, že všechny uzly mohou „slyšet“všechny přenosy. všechny uzly vždy zachytí veškerý provoz. Hardware CAN poskytuje místní filtrování, takže každý uzel může reagovat pouze na zajímavé zprávy.
Krok 3: Rámečky
Zařízení CAN odesílají data přes síť CAN v paketech nazývaných rámce. CAN má čtyři typy rámců:
- Datový rámec: rámec obsahující data uzlu pro přenos
- Vzdálený rámec: rámec požadující přenos konkrétního identifikátoru
- Chybový rámec: rámec přenášený jakýmkoli uzlem, který detekuje chybu
- Přetížení rámec: rámec pro vložení zpoždění mezi daty nebo vzdáleným rámcem
Datový rámec
Existují dva typy datových rámců, standardní a rozšířené.
Význam bitových polí na obrázku je:
- SOF - Jeden dominantní bit začátku rámce (SOF) označuje začátek zprávy a slouží k synchronizaci uzlů na sběrnici poté, co byl nečinný.
- Identifikátor-Standardní 11bitový identifikátor CAN určuje prioritu zprávy. Čím nižší je binární hodnota, tím vyšší je její priorita.
- RTR - bit RTR (Single Remote Transaction Request)
- IDE - bit s IDE (Dominant Single Identifier Extension) znamená, že se přenáší standardní identifikátor CAN bez rozšíření.
- R0 – Rezervovaný bit (pro případné použití budoucí standardní změnou).
- DLC-4bitový kód délky dat (DLC) obsahuje počet bajtů přenášených dat.
- Data - Lze přenášet až 64 bitů dat aplikace.
- CRC-16bitová (15 bitů plus oddělovač) kontrola cyklické redundance (CRC) obsahuje kontrolní součet (počet přenesených bitů) předchozích aplikací pro detekci chyb.
- ACK – ACK jsou 2 bity, jeden je potvrzovací bit a druhý je oddělovač.
- EOF-Toto 7bitové pole na konci rámce (EOF) označuje konec rámce (zprávy) CAN a deaktivuje bitstuffing, což indikuje chybu výplně, když je dominantní. Když se během normálního provozu postupně vyskytuje 5 bitů stejné logické úrovně, je do dat vložen kousek opačné logické úrovně.
- IFS-Tento 7bitový meziprostorový prostor (IFS) obsahuje čas požadovaný řadičem k přesunutí správně přijatého rámce do správné polohy v oblasti vyrovnávací paměti zpráv.
Arbitráž
V klidovém stavu sběrnice dostane jednotka, která jako první začne odesílat zprávu, odesílací právo. Když začne odesílat více jednotek současně, každá odesílací jednotka začíná na prvním bitu rozhodčího segmentu. Jednotka s největším počtem dominantních úrovní spojitého výstupu může pokračovat v odesílání.
Krok 4: Rychlost a vzdálenost
Sběrnice CAN je sběrnice, která spojuje více jednotek současně. Celkový počet jednotek, které lze připojit, teoreticky není omezen. V praxi je však počet jednotek, které lze připojit, omezen časovým zpožděním na sběrnici a elektrickým zatížením. Snižte rychlost komunikace, zvyšte počet připojitelných jednotek a zvyšte rychlost komunikace, počet připojitelných jednotek se sníží.
Komunikační vzdálenost nepřímo souvisí s komunikační rychlostí a čím dál komunikační vzdálenost, tím menší komunikační rychlost. Delší vzdálenost může být 1 km nebo více, ale rychlost je menší než 40 kps.
Krok 5: Hardware
Modul Maduino Zero CAN-BUS je nástroj vyvinutý společností Makerfabs pro komunikaci CANbus-je založen na Arduinu s řadičem CAN a přijímačem CAN k vytvoření portu CAN-bus připraveného k použití.
- MCP2515 je samostatný řadič CAN, který implementuje specifikaci CAN. Je schopen vysílat a přijímat standardní i rozšířená data a vzdálené rámce.
- Rozhraní MAX3051 mezi řadičem protokolu CAN a fyzickými vodiči sběrnicových linek v síti řídicí oblasti (CAN). MAX3051 poskytuje schopnost diferenciálního přenosu na sběrnici a schopnost diferenciálního příjmu do řadiče CAN.
Krok 6: Připojení
Připojte modul DHT11 k modulu Maduino Zero CAN-BUS pomocí vodičů, které budou použity jako nástroj pro podporu komunikace CAN. Podobně připojte displej k modulu pro příjem dat a jejich zobrazení.
Spojení mezi Maduino Zero CANBUS a DHT11 :
Maduino Zero CANBUS - DHT11
3v3 ------ VCC GND ------ GND D10 ------ DATA
Spojení mezi Maduino Zero CANBUS a OLED :
Maduino Zero CANBUS - OLED
3v3 ------ VCC GND ------ GND SCL ------ SCL SDA ------ SDA
Pomocí kabelu DB9 propojte dva moduly Maduino Zero CANBUS.
Krok 7: Kód
MAX3051 dokončuje převod diferenciálních úrovní na logické signály. MCP2515 doplňuje funkci CAN, jako je kódování a dekódování dat. MCU potřebuje pouze inicializovat ovladač a odesílat a přijímat data.
- Github:
- Po instalaci Arduina neexistuje žádný balíček na podporu desky (Arduino nula), který je třeba nainstalovat.
- Vyberte nástroje -> Board -> Board Manager, vyhledejte „Arduino zero“a nainstalujte „Arduino SAMD Boards“.
- Vyberte Nástroje -> Deska -> Arduino Zero (nativní port USB), vyberte Nástroje -> Port -> com…
- Po získání programu z GitHub se musíte ujistit, že všechny soubory jsou v adresáři projektu, který obsahuje soubory knihoven podporující CANBUS.
- Nainstalujte knihovnu senzorů DHT od společnosti Adafruit, která slouží k pohonu DHT11 k získání teploty a vlhkosti.
- Pomocí různých adres odešlete teplotu a vlhkost samostatně v kódu Test_DHT11.ino.
CAN.sendMsgBuf (0x10, 0, stmp1.length (), stmp_send1);
zpoždění (500); CAN.sendMsgBuf (0x11, 0, stmp2.length (), stmp_send2); zpoždění (500);
„0x10“znamená ID zprávy, „0“je standardní standardní rámec, „stmp1.length ()“je délka zprávy, „stmp_send1“jsou odeslaná data.
- V kódu Test_OLED.ino jsou všechny zprávy na CANBUS přijímány dotazem a požadované informace jsou zobrazeny na OLED.
- Nahrajte program Maduino-CANbus-RS485/Test_DHT11_OLED/Test_DHT11/Test_DHT11.ino do modulu, který je připojen k senzoru, a nahrajte program Maduino-CANbus RS485/Test_DHT11_OLED/Test_OLED/Test_OLED.ino do jiného modulu, který je připojen k OLED.
Krok 8: Zobrazit
Zapnutí obou modulů, teplota a vlhkost se zobrazí na displeji.
Doporučuje:
Vyberte název a klíčová slova pro svůj návod: 6 kroků (s obrázky)
Vyberte si název a klíčová slova pro svůj instruktáž: Výběr správného názvu a klíčových slov může být rozdílem mezi instruktážním přechodem na titulní stránku výsledků vyhledávání Google nebo pádem a vypálením do obávané země bez zobrazení internetu. Zatímco klíčová slova a název nejsou jediné
Vytvořte vesmírnou stanici v TinkerCad Codeblock -- Jednoduchý návod: 7 kroků (s obrázky)
Vytvořte vesmírnou stanici v TinkerCad Codeblock || Snadný návod: I když se myšlenka na život ve vesmíru může zdát jako sci -fi, při jejím čtení Mezinárodní vesmírná stanice krouží kolem Země rychlostí pět mil za sekundu a jednou obíhá kolem Země každých 90 minut. V tomto projektu se naučíte
Jak vytvořit účet Gmail (Raigynův návod pro východ): 8 kroků
Jak vytvořit účet Gmail (Raigyn's Tutorial for East): V tomto tutoriálu vám ukážu, jak si vytvořit účet Gmail
JEDNODUCHÝ KARBOT -- ARDUINO -- OVLÁDÁNÍ BLUETOOTH -- NÁVOD: 10 kroků (s obrázky)
JEDNODUCHÝ KARBOT || ARDUINO || OVLÁDÁNÍ BLUETOOTH || NÁVOD: V TOMTO NÁVODU NABÍZÍM, JAK VYROBIT JEDNODUCHÝ BOT, KTERÝ JE ŘÍZEN VÁŠM SMARTPHONEEM POTŘEBOVANÝCH BLUETOOTHPARTS: ☻ARDUINO☻2 GEAR MOTORS ☻HC-05 BLUETOOTH MODUL ☻LAPTOP NEBO PC POUŽIL jsem POWER BANK
Jednoduchá tapeta používající fotografii a prolínání vrstev - návod pro Photoshop: 5 kroků
Jednoduchá tapeta využívající fotografii a prolínání vrstev - Photoshop Tutorial: Vytvořte vizuálně ohromující tapetu pomocí jednoduché techniky uvnitř photoshopu. Kdokoli může udělat tapetu tak dobrou a je mnohem jednodušší, než byste si mohli myslet! Nejprve tedy přejděte do souboru > Novinka Nastavte šířku a výšku na pixely a nastavte na