1 Úvod
Komunikace průmyslových zařízení obvykle zahrnuje širokou škálu hardwarových a softwarových produktů, stejně jako protokoly používané k připojení standardních počítačových platforem (osobních počítačů nebo pracovních stanic) k zařízením průmyslové automatizace. V důsledku toho je většina automatizačních zařízení navržena tak, aby spouštěla jednoduché sériové příkazy, které jsou kompatibilní se standardními sériovými porty na osobních počítačích nebo na kartách se sériovým portem. RS-232 je v současnosti nejrozšířenějším sériovým rozhraním v sektoru PC a průmyslových komunikací. RS-232 je definován jako jednotný{10}}standard určený k prodloužení komunikační vzdálenosti při nízkorychlostní sériové komunikaci. Protože RS-232 sdílí společnou signálovou zem mezi vysílačem a přijímačem, nemůže používat rozdílové signály; jinak by se do signálového systému napojil šum v běžném režimu. Standard RS-232 specifikuje maximální vzdálenost pouze 15 m a maximální rychlost přenosu signálu 20 kbit/s.
CAN, zkratka pro „Controller Area Network“, je jednou z nejrozšířenějších sběrnic mezinárodně. Jedna síť složená ze sběrnic CAN je omezena elektrickými charakteristikami síťového hardwaru. Protože jde o multi-hlavní sériovou komunikační sběrnici, základní konstrukční specifikace CAN vyžadují vysokou přenosovou rychlost a silnou odolnost proti elektromagnetickému rušení, stejně jako schopnost detekovat jakékoli chyby vyskytující se na komunikační sběrnici. I když vzdálenost přenosu signálu dosáhne 10 km, CAN může stále poskytovat rychlost přenosu dat až 50 kbit/s. Tabulka 1 ukazuje vztah mezi maximální přenosovou vzdáleností mezi libovolnými dvěma uzly na sběrnici CAN a jejich přenosovými rychlostmi.
Maximální vzdálenost mezi libovolnými dvěma uzly v trojúhelníkové konfiguraci v systému sběrnice CAN
Přenosová rychlost/kb/s 1000 500 250 125 100
Maximální vzdálenost/m 40 130 270 530 620
Přenosová rychlost (kb/s) 50 20 10 5
Maximální vzdálenost (m) 1300 3300 6700 10000
Jak je vidět, sběrnice CAN je lepší než RS-232, pokud jde o výkon v reálném čase, přizpůsobivost, flexibilitu a spolehlivost. Pokud jsou dvě sériová zařízení umístěna daleko od sebe a nelze je připojit přímo přes RS-232, lze RS-232 převést na CAN, aby bylo dosaženo síťového propojení sériových zařízení prostřednictvím sběrnice CAN.
RS-232 a CAN se však výrazně liší, pokud jde o úrovně napětí a formáty snímků. Konkrétně:
Standard RS-232 používá zápornou logiku, která definuje jakoukoli úroveň napětí mezi +3V a +15V jako logickou "0" a jakoukoli úroveň napětí mezi -3V a -15V jako logickou "1". Signály CAN jsou na druhé straně přenášeny pomocí rozdílového napětí. Dvě signální vedení se nazývají "CAN_H" a "CAN_L." Ve statickém stavu jsou oba přibližně 2,5V; tento stav je reprezentován jako logická "1" a je také označován jako "recesivní". Když je CAN_H vyšší než CAN_L, představuje logickou „0“, známou jako „dominantní“. V dominantním stavu jsou typické hodnoty napětí: CAN_H=3.5V, CAN_L=1.5V;
Formát rámce pro sériový port RS-232 je: jeden start bit, osm datových bitů, programovatelný devátý bit (který slouží jako adresový/datový bit pro přenos i příjem) a jeden stop bit. Formát datového rámce CAN se skládá z: záhlaví rámce + ID + data (která lze rozdělit na dva formáty: standardní rámce a rozšířené rámce).
Návrh proto vyžaduje, aby mikrokontrolér prováděl převody, jako je převod úrovně a formátu snímků. Proces převodu je znázorněn na obrázku 1.
2 Návrh hardwaru pro převod RS-232 na CAN
Při návrhu zařízení pro převod RS-232-na-CAN se jako mikroprocesor používá mikrokontrolér AT89C52; SJA1000 se používá jako mikrokontrolér CAN. SJA1000 integruje funkce fyzické vrstvy a vrstvy datového spoje protokolu CAN a může pasivně zpracovávat rámování komunikačních dat; AT82C250 slouží jako rozhraní mezi řadičem CAN a fyzickou sběrnicí, poskytuje možnost diferenciálního přenosu pro sběrnici a schopnost diferenciálního příjmu pro řadič CAN. Pomocí kolíku 3 AT82C250 lze vybrat tři různé provozní režimy (vysoká{16}}rychlost, řízení sklonu a pohotovostní režim). Když je kolík 3 uzemněn, zařízení pracuje ve vysokorychlostním režimu; vysokorychlostní optická izolace je implementována pomocí 6N137, která zabraňuje rušení externími signály; MAX232 se používá k převodu 232úrovňových signálů na úrovně TTL pro čip rozhraní mikrokontroléru. Podrobnosti o konkrétních obvodech hardwarového rozhraní najdete v příslušných zdrojích pro SJA1000; další vysvětlení zde není uvedeno. Je však třeba poznamenat následující body.
(1) Na obou koncích sběrnice CAN je připojen odpor 120Ω, aby odpovídal impedanci sběrnice, čímž se zlepšuje odolnost vůči rušení a spolehlivost datové komunikace. V praxi však stačí zajistit, aby bočník mezi "CAN_H" a "CAN_L" v síti CAN byl 60Ω.
(2) Pin 20 (RX1) SJA1000 může být uzemněn, když se nepoužívá (konkrétní důvod viz návrh softwaru); v kombinaci s nastavovacím bitem CDR.6 to může výrazně zvýšit délku sběrnice.
(3) Způsob připojení pinů TX0 a TX1 určuje úroveň sériového výstupu. Konkrétní podrobnosti naleznete v nastavení v registru řízení výstupu (OCR).
(4) Mezi kolík RS AT82C250 a kostru je připojen náběhový odpor. Hodnotu odporu lze vhodně upravit na základě komunikační rychlosti sběrnice, typicky v rozsahu od 16 kΩ do 140 kΩ.
(5) MAX232 vyžaduje čtyři elektrolytické kondenzátory-C1, C2, C3 a C4-které se také používají pro vnitřní konverzi energie. Všechny mají jmenovité napětí 1 μF/25 V; doporučují se tantalové kondenzátory, které by měly být umístěny co nejblíže čipu. Mezi napájení VCC a kostru musí být zapojen oddělovací kondenzátor 0,1 μF.
3 Návrh softwaru pro převod RS-232 na CAN
Pod mikroprocesorovým řízením může využití příjmu sériového portu a přerušení CAN během výměny dat mezi RS-232 a CAN zlepšit provozní efektivitu. Hlavní vývojový diagram programu je znázorněn na obrázku 2. SJA1000 lze inicializovat pouze v režimu reset; to zahrnuje především nastavení provozního režimu, dělení hodin a registrů akceptačního filtru, konfiguraci parametrů přenosové rychlosti a nastavení registru povolení přerušení.
Zda lze data přenášet přesně, závisí také na přenosové rychlosti a řízení toku, což jsou aspekty, které nelze při návrhu softwaru přehlédnout. Proto se následující části zaměří na konfiguraci přenosové rychlosti CAN, automatickou detekci přenosových rychlostí sériového portu a řízení datového toku sériového portu.

3.1 Nastavení rychlosti filtru CAN
Jedním z klíčových prvků protokolu CAN je přenosová rychlost. Uživatelé mohou nastavit polohu bodů vzorkování bitů v rámci bitové periody a počet vzorků, což jim umožňuje libovolně optimalizovat výkon sítě pro jejich aplikace. Během tohoto optimalizačního procesu je však třeba věnovat pozornost vztahu mezi tolerancí referenčního oscilátoru použitého pro parametry bitového časování a zpožděním šíření různých signálů v systému.
Bitová rychlost systému, fBil, představuje počet datových bitů přenesených za jednotku času, tj. přenosovou rychlost fBit=1/tBit. Nominální bitové časování se skládá ze tří -nepřekrývajících se segmentů: SYNC_SEG, TSEG1 a TSEG2. Tyto tři časové segmenty jsou označeny jako tSYNC_SEG, tTSEG1, respektive tTSEG2. Nominální bitová perioda tBit je tedy součtem těchto tří časových úseků.
tBit=tSYNC_SEG + tTSEG1 + tTSEG2
V rámci bitové periody jsou tyto segmenty vyjádřeny jako celočíselné násobky základní časové jednotky. Tato časová jednotka se nazývá časová kvóta (TQ) a doba trvání časové kvóty je jeden cyklus systémových hodin CAN (tSCL), který je odvozen od periody hodin oscilátoru (tCLK). Systémové hodiny CAN lze upravit naprogramováním faktoru předděličky (přednastavená hodnota přenosové rychlosti, BRP). Konkrétně:
tSCL=BRP × 2tCLK=2BPR/fCLK
Dalším velmi důležitým časovým intervalem pro výpočty časování bitů CAN je šířka synchronizačního skoku (SJW), která má trvání tSJW. Segment SJW není součástí bitového cyklu; spíše definuje maximální počet TQ, o které je bitový cyklus prodloužen nebo zkrácen během události resynchronizace. Protokol CAN navíc umožňuje uživatelům specifikovat režim bitového vzorkování (SAM), který může být buď jednoduchým-režimem vzorku, nebo režimem tří-vzorků (výběrem jednoho výsledku ze tří vzorků). V režimu jednoho-vzorku je bod vzorkování na konci segmentu TSEG1. V režimu tří-vzorkování jsou v porovnání s režimem jednoho-vzorkování odebrány dva další body vzorkování; ty jsou umístěny před koncem segmentu TSEG1, oddělené jedním TQ.

Výše uvedené BPR, SJW, SAM, TESG1 a TESG2 mohou být všechny definovány uživatelem prostřednictvím interních registrů BTR0 a BTR1 řadiče CAN. Podrobnosti jsou uvedeny na obrázku 3. Po nastavení BTR0 a BTR1 je skutečný rozsah přenosové rychlosti:
Maximum=1/(tBit - tSJW), Minimum=1/(tBit + tSJW)
3.2 Detekce přenosové rychlosti sériového portu
Když sériové zařízení funguje jako hostitel a potřebujete zjistit přenosovou rychlost sériového portu konverzního zařízení v daném okamžiku, můžete nejprve nastavit přenosovou rychlost hostitele (například 9600 baudů) a odeslat specifický znak (například návrat vozíku) z terminálu. Tímto způsobem může hostitel určit komunikační přenosovou rychlost převodního zařízení na základě přijatých znakových informací. Hodnota ASCII znaku pro návrat vozíku je 0DH; hodnoty přijaté při různých přenosových rychlostech jsou uvedeny v tabulce 2.
Bajty přijaté různými přenosovými rychlostmi
Přenosová rychlost (bit/s) Přijaté bajty (hexadecimálně) Přenosová rychlost (bit/s) Přijaté bajty (hexadecimální)
1200 80 4800 E6
1800 F0 9600 0D
2400 78 19200 F*
3.3 Řízení toku sériového portu
Termín "tok" zde použitý se vztahuje k datovému toku. Ke ztrátě dat často dochází při přenosu mezi dvěma sériovými porty. Vzhledem k tomu, že vyrovnávací paměť mikrokontroléru má omezenou kapacitu, pokud je vyrovnávací paměť při příjmu dat plná, všechna data, která jsou v tomto okamžiku nadále odesílána, budou ztracena. Řízení toku efektivně řeší tento problém: když přijímající konec nemůže zpracovat data včas, systém řízení toku vyšle signál „nepřijmout“, což způsobí, že vysílající konec zastaví vysílání, dokud nepřijme signál „obnovení vysílání“. Řízení toku tedy řídí proces přenosu dat a zabraňuje ztrátě dat. Dva běžně používané typy řízení toku jsou hardwarové řízení toku (včetně RTS/CTS, DTR/CTS atd.) a softwarové řízení toku (XON/XOFF-pokračovat/zastavit). Následující vysvětlení se zaměřuje výhradně na metodu hardwarového řízení toku pomocí RTS/CTS.
Při použití hardwaru pro řízení toku jsou piny RTS a CTS sériového terminálu připojeny k I/O portům mikrokontroléru a signály start/stop jsou přijímány a vysílány nastavením I/O portů na 1 nebo 0. Zařízení datového terminálu (jako je počítač) používá RTS k zahájení datového toku odeslaného mikrokontrolérem, zatímco mikrokontrolér používá CTS ke spuštění a pozastavení datového toku z počítače. Pro implementaci této hardwarové metody handshakingu se během programování nastaví příznak vysoké-úrovně a příznak nízké{4}}úrovně na základě velikosti přijímací vyrovnávací paměti. Když množství dat ve vyrovnávací paměti dosáhne prahové-úrovně, linka CTS na přijímací straně je nastavena na nízkou hodnotu (logická 0). Když program na vysílací straně zjistí, že CTS je nízký, přestane vysílat data, dokud množství dat v přijímací vyrovnávací paměti neklesne pod práh nízké-úrovně a CTS nebude nastaveno vysoko. RTS se používá k označení, zda je přijímací zařízení připraveno přijímat data.
3.4 Podprogram CAN Receive
Formát PeliCAN podporuje standardní i rozšířené snímky. Režim CAN lze konfigurovat pomocí CDR.7 v registru děliče hodin (0 pro BasicCAN, 1 pro PeliCAN). Při příjmu dat CAN se bit FF v informacích o rámci používá k určení, zda se jedná o standardní nebo rozšířený rámec, a bit RTR se používá k rozlišení mezi vzdáleným rámcem a datovým rámcem. Toto je podprogram CAN přijímat:
;//////////////////////////////////////////////////////////////////
;//Příjem dat CAN/Sjednocený do formátu rámce s 2bajtovým ID//
;///////////////////////////////////////////////////////////////////////
RECAN:
MOV R0, #C_RE ; Počáteční adresa vnitřní vyrovnávací paměti mikrokontroléru
MOV DPTR, #RXBUF ; Přečtěte si a uložte obsah přijímací vyrovnávací paměti
MOVX A, @DPTR; Přečtěte si druhý bajt vyrovnávací paměti CAN
MOV @RO, A; Uložit
JB ACC.7, EFF_RE ; Bit FF: 0=SFF, 1=EFF
MOV R2, #0
SJMP SFF_RE ; V závislosti na identifikačním čísle se liší pozice, kde je zachycen „datový bajt“.
EFF_RE: MOV R2, #2
SFF_RE: MOV R2, #2
SFF_RE:
JB ACC.6, EXIT_RECAN ; Zkontrolujte bit RTR; pokud 1 (vzdálený rámeček), vyskočte
ANL A, #0FH
MOV R3, A ; V tomto okamžiku představují prostřední 4 bity délku dat
MOV C_NUM, A ; Uložte délku přijatého rámce do R3 a R5
RDATA0:
INC DPTR; 2bajtové ID
INC R0
MOVX A, @DPTR
MOV @R0, A
INC DPTR
MOVX A, @R0, A
INC DPTR
MOVX A, @DPTR
MOV @R0, A
MOV A, R2; Pokud EFF, přeskočte dvou-bajtové ID
JZ DRATA1
INC DPTR
INC DPTR
DATA1: ; Datové bajty
INC DPTR
INC R0
MOVX A, @DPTR
MOV @R0, A
DJNZ R3, RDATA1
EXIT_RECAN:
RET
4 Závěr
Miniaturizace počítačů poskytla nezbytné podmínky pro inteligentní vývoj měřicích a řídicích přístrojů a umožnila tak koncovým zařízením na bázi mikroprocesorů-vykazovat vynikající možnosti digitální komunikace. Se vzrůstajícím počtem chytrých terminálů jsou kladeny vyšší požadavky na síťovou architekturu, protokoly,-výkon v reálném čase, stejně jako použitelnost, flexibilitu, spolehlivost a dokonce i cenu. V důsledku toho je technologie fieldbus velkým příslibem pro budoucí vývoj. Rámcová struktura sběrnice CAN obsahuje identifikátor (ID), který umožňuje mít v síti zařízení více síťových hostitelů; to znamená, že prostřednictvím těchto síťových hostitelů lze monitorovat provozní stav celé sítě zařízení a přijímat odpovídající řídicí rozhodnutí. Toto zařízení je nyní plně vyvinuto a dosáhlo vynikajících výsledků v praktických aplikacích.




