260 likes | 369 Views
Vývojový kit rozhraní CAN Semestrální projekt Ivan Douša 2004 - 2005. Zadání
E N D
Vývojový kit rozhraní CAN Semestrální projekt Ivan Douša 2004 - 2005
Zadání Cílem projektu je navrhnout a realizovat jednoduchý kit pro vývoj přístrojů s rozhraním CAN (obvod SJA1000, TJA 1054, PCA80C250). Kit bude připojitelný k existujícím vývojovým modulům s procesorem 80C517. Funkčnost kitu bude demonstrována implementací jednoduchého inteligentního senzoru dle vlastní volby. Vedoucí projektu: Ing. Jiří Novák
Protokol CAN: • Sériový komunikační protokol vyvinutý firmou Bosch pro nasazení v automobilech. • Umožňuje distribuované řízení v reálném čase. • Protokol typu multi-master • Velká přenosová rychlost, až 1Mbit/s • Vysoká spolehlivost přenosu • Komunikace pomocí zpráv – datová, žádost o data, chybová, o přetížení • Zprávy neobsahují adresu příjemce, ale informaci o svém významu • Používá sběrnici s náhodným přístupem • Řízení přístupu k médiu CDMA/CR
Přenosové médium nedefinováno – požadavek vlastnosti logického součinu • Standard definuje 2 úrovně (dominant, recessive), jejich realizace závisí na konkrétní realizaci fyzické vrstvy • Nejčastěji se používá diferenciální sběrnice dle ISO 11898
Řadič SJA 1000 • Základní vlastnosti: • Vývodově i elektricky kompatibilní s PCA82C200 • Universální rozhraní umožňuje připojení k většině • mikroprocesorů a mikrokontrolerů • Nastavitelné parametry výstupních budičů - možnost připojení k jakékoliv realizaci fyzické vrstvy protokolu CAN • Rozšířená paměť zpráv (64-byte FIFO) - uložení více než 21 • přijatých zpráv • Přenosová rychlost až 1Mbit/s • Taktovací frekvence až 24Mhz - rychlá komunikace s • procesorem a mnoho možností časování. • Podpora specifikace CAN 2.0B • Dva režimy činnosti – BasicCAN a PeliCAN mode • Novinky režimu PeliCAN: • - 11b i 29b identifikátoru zpráv • - 1 či 2 filtry zpráv • - propracovaný systém detekce a diagnostiky chyb • - možnosti testování vlastního řadiče či celého systému
Obvod PCA 80C250 High speed budič sběrnice CAN. Tvoří rozhraní mezi řadičem a přenosovým médiem. Převádí logické úrovně výstupu řadiče na úrovně, které používá fyzická vrstva CAN a umožňuje tak připojí k diferenciální sběrnici. Obvod je navržen pro vysokorychlostní aplikace do 1Mbit/s a je plně kompatibilní s ISO11898. • Základní vlastnosti: • Plně kompatibilní se standardem ISO 11898 • Vysokorychlostní komunikace do 1 Mbit/s • Možnost řízení strmosti hran - slope control • Tepelná ochrana • Zratuvzdorný při zkratu na zem či napájecí napětí • Podpora režimů nízké spotřeby • Možnost připojení dalších až 110 uzlů.
Obvod TJA 1054 Low speed budič sběrnice CAN. Tvoří rozhraní mezi řadičem a přenosovým médiem. Převádí logické úrovně výstupů řadiče na úrovně, které používá fyzická vrstva CAN a umožňuje tak připojení k diferenciální sběrnici dle ISO 11898. • Základní vlastnosti: • Optimalizován pro komunikaci v automobilech do • 125KBit/s • Velmi malé elektromagnetické vyzařování • Dobrá elektromagnetická odolnost - integrované • filtry přijímače • Propracovaný systém diagnostiky a detekce chyb • sběrnice • Podporuje režim vysílání po jednom vodiči sběrnice • Vývody CANL a CANH odolné zkratu k napětí • GND či VCC • Tepelná ochrana • Podpora režimů s nízkou spotřebou
Modul s procesorem SAB 80C537 • 1. Mikroprocesor SAB80C537: • Vysoce výkonný 8b jednočipový procesor technologie CMOS kompatibilní s rodinou procesorů řady 51. Velké množství integrovaných periferních zařízení, vylepšená aritmeticko-logická jednotka. • Základní vlastnosti: • taktovací kmitočet 12 MHz nebo 16 MHz • 256B interní paměti RAM • vylepšená 51 architektura • 4 šestnáctibitové čítače/časovače • 8 ukazatelů pro vnější paměti • 14 vektorů přerušení, 4 priority • 8b A/D převodník s 12 multiplexovanými vstupy a programovatelným • referenčním napětím. • 2 obousměrné sériové kanály • 9 portů,56 vstupně-výstupních linek • vylepšená ALU umožňuje rychlé 32-bit dělení a 16-bit násobení.
Popis zapojení modulu rozhraní CAN: • Základem universální řadič CAN SJA1000 • Volitelný budič fyzické vrstvy CAN TJA1054 nebo PCA80C250 • Volba budičů řešena programovacími propojkami • K modulu s procesorem připojen kabelem na konektory JP1 a JP3 • Napájen ze zdroje modulu s procesorem • Možnost využít prakticky všechny funkce budičů a řadiče CAN. • Vlastní zdroj taktovacího kmitočtu 16MHz • Obvod SJA 1000 mapován v paměti XDATA ( 0xC000h – 0xFFFFh) • Využití zdroje přerušení EX procesoru.
Plošný spoj: • Dvouvrstvý s rozlévanou mědí ve spodní vrstvě • Třída přesnosti 4 – izolační vzdálenosti, šířka spoje min. 12 milů • Součástky velikosti SMD – zmenšení plochy desky plošného spoje a zvýšení mechanické odolnosti. • Řadič SJA1000 výměně usazen v patici- • Možnost umístění do nepájivého pole. • Součástky rozmístěny s ohledem dobrou obvodovou návaznost a co nejkratší délku propojovacích cest. • Ponechán dostatek místa pro snadný přístup při osazování a pájení. • Snadný přistup k programovacím propojkám. • Odděleny jumpery s různou funkcí.
Testovací program • Základní funkce programu je následující: • Po inicializaci sériové linky a rozhraní CAN je po obou vyslána úvodní zpráva • pro ověření jejich funkčnosti. • Dále program čte stavy tlačítek na desce s procesorem a na sedmi- • segmentovém LED displeji zobrazuje hexadecimální číslici odpovídající • stisknutému tlačítku nebo kombinaci tlačítek. • Každá změna tlačítka - sepnutí či rozepnutí - je rozpoznána. Po sběrnici CAN • a sériové lince je okamžitě vyslána zpráva o nové kombinaci stisknutých • tlačítek ve formě ASCI číslice. Zákmity tlačítek jsou ošetřeny. • Každá zpráva přijatá sběrnicí CAN je dekódována a přeposlána na sériovou • linku. V případě, že je prvním bytem zprávy ASCI číslice či znak a...f jsou • zobrazeny na sedmi-segmentovém LED displeji.
Vytvořena skupina funkcí pro komunikaci po CAN, sériové lince a práci s tlačítky a sedmi-segmentovým displejem. • void inicializace_UART(void) • void inicializace_SJA1000(void) • bit csend(const char* text) • bit ssend(const char* text) • char* creceive(char text[]) • unsigned char cti_tlacitka(void) • void zobraz(const unsigned char cislo)
Závěr • Výsledkem práce je modul rozhraní CAN jednoduše připojitelný k současnému přípravku s procesorem SAB80C537 a umožňující testování a vývoj aplikací využívající protokol CAN. • Modul umožňuje využít prakticky veškerých možností použitého řadiče a budičů sběrnice . • Vzhledem k instalaci v nepájivém poli je testování nových aplikací velmi jednoduché a rychlé bez nutnosti tvorby plošného spoje a jeho osazování. • Přípravek je vhodný pro využití v jednoduchých měřících systémech, při konstrukci inteligentních senzorů a díky použití řadiče SJA1000 i k testování a diagnostice systémů s CAN. • Až čas a několikanásobné využití vytvořeného modulu v různých aplikacích ukáže, nakolik byla zvolená koncepce vhodná a kde jsou jeho silné a slabé stránky.