1 Uvod
Komunikacija industrijske opreme obično uključuje širok izbor hardverskih i softverskih proizvoda, kao i protokole koji se koriste za povezivanje standardnih računalnih platformi (osobnih računala ili radnih stanica) s uređajima industrijske automatizacije. Posljedično, većina uređaja za automatizaciju dizajnirana je za izvršavanje jednostavnih serijskih naredbi koje su kompatibilne sa standardnim serijskim priključcima koji se nalaze na osobnim računalima ili na dodatnim-karticama sa serijskim priključcima. RS-232 trenutno je najčešće korišteno serijsko sučelje u sektoru osobnih računala i industrijskih komunikacija. RS-232 definiran je kao jedno{10}}standard dizajniran za povećanje komunikacijskih udaljenosti u serijskoj komunikaciji male brzine. Budući da RS-232 dijeli zajedničko uzemljenje signala između odašiljača i prijamnika, ne može koristiti diferencijalne signale; inače bi se šum uobičajenog načina spojio u signalni sustav. Standard RS-232 navodi najveću udaljenost od samo 15 m i maksimalnu brzinu prijenosa signala od 20 kbit/s.
CAN, skraćenica za "Controller Area Network", jedna je od najčešće korištenih sabirnica u svijetu. Jedna mreža sastavljena od CAN sabirnica ograničena je električnim karakteristikama mrežnog hardvera. Kao više-glavna serijska komunikacijska sabirnica, CAN-ove osnovne specifikacije dizajna zahtijevaju velike brzine prijenosa i jaku otpornost na elektromagnetske smetnje, kao i sposobnost otkrivanja bilo kakvih grešaka koje se javljaju na komunikacijskoj sabirnici. Čak i kada udaljenost prijenosa signala dosegne 10 km, CAN i dalje može osigurati brzine prijenosa podataka do 50 kbit/s. Tablica 1 prikazuje odnos između maksimalne udaljenosti prijenosa između bilo koja dva čvora na CAN sabirnici i njihovih brzina prijenosa.
Maksimalna udaljenost između bilo koja dva čvora u trokutastoj konfiguraciji u sustavu CAN sabirnice
Brzina prijenosa/kbps 1000 500 250 125 100
Maksimalna udaljenost/m 40 130 270 530 620
Brzina prijenosa (kbps) 50 20 10 5
Najveća udaljenost (m) 1300 3300 6700 10000
Kao što se može vidjeti, CAN sabirnica je superiornija serijska sabirnica od RS-232 u smislu izvedbe u stvarnom vremenu, prilagodljivosti, fleksibilnosti i pouzdanosti. Kada su dva serijska uređaja udaljena jedan od drugog i ne mogu se izravno spojiti putem RS-232, RS-232 se može pretvoriti u CAN kako bi se postiglo mrežno povezivanje serijskih uređaja putem CAN sabirnice.
Međutim, RS-232 i CAN se značajno razlikuju u pogledu naponskih razina i formata okvira. Posebno:
Standard RS-232 koristi negativnu logiku, definirajući bilo koju razinu napona između +3V i +15V kao logičku "0" i bilo koju razinu napona između -3V i -15V kao logičku "1". CAN signali se, s druge strane, prenose pomoću diferencijalnog napona. Dvije signalne linije nazivaju se "CAN_H" i "CAN_L." U statičkom stanju, oba su približno 2,5 V; ovo stanje je predstavljeno kao logička "1" i također se naziva "recesivno". Kada je CAN_H veći od CAN_L, to predstavlja logičku "0", poznatu kao "dominantna". U dominantnom stanju tipične vrijednosti napona su: CAN_H=3.5V, CAN_L=1.5V;
Format okvira za RS-232 serijski port je: jedan početni bit, osam podatkovnih bitova, programibilni deveti bit (koji služi kao adresa/podatkovni bit i za prijenos i za prijem) i jedan stop bit. CAN format podatkovnog okvira sastoji se od: zaglavlja okvira + ID + podataka (koji se mogu podijeliti u dva formata: standardni okviri i prošireni okviri).
Stoga dizajn zahtijeva mikrokontroler za izvođenje pretvorbi kao što su pretvorbe formata razine i okvira. Proces pretvorbe prikazan je na slici 1.
2 Dizajn hardvera za pretvorbu RS-232 u CAN
U projektiranju RS{1}}232-u-CAN uređaja za pretvorbu, mikrokontroler AT89C52 koristi se kao mikroprocesor; SJA1000 se koristi kao CAN mikrokontroler. SJA1000 integrira funkcije fizičkog sloja i sloja podatkovne veze CAN protokola i može pasivno upravljati okvirom komunikacijskih podataka; AT82C250 služi kao sučelje između CAN kontrolera i fizičke sabirnice, pružajući sposobnost diferencijalnog prijenosa za sabirnicu i mogućnost diferencijalnog prijema za CAN kontroler. Tri različita načina rada (velika-brzina, kontrola nagiba i stanje pripravnosti) mogu se odabrati preko pina 3 AT82C250. Kada je pin 3 uzemljen, uređaj radi u načinu rada velike brzine; optička izolacija velike brzine implementirana je pomoću 6N137, koji sprječava smetnje vanjskih signala; MAX232 se koristi za pretvaranje signala od 232 razine u TTL razine za čip sučelja mikrokontrolera. Za specifične pojedinosti sklopa hardverskog sučelja, pogledajte relevantne resurse za SJA1000; daljnje objašnjenje nije navedeno ovdje. Međutim, treba obratiti pozornost na sljedeće točke.
(1) Otpornik od 120Ω spojen je na oba kraja CAN sabirnice kako bi odgovarao impedanciji sabirnice, čime se poboljšava otpornost na smetnje i pouzdanost podatkovne komunikacije. Međutim, u praksi je dovoljno osigurati da shunt otpornik između "CAN_H" i "CAN_L" u CAN mreži bude 60Ω.
(2) Pin 20 (RX1) SJA1000 može se uzemljiti kada se ne koristi (pogledajte dizajn softvera za konkretan razlog); u kombinaciji s postavkom bita CDR.6, to može značajno povećati duljinu sabirnice.
(3) Način spajanja pinova TX0 i TX1 određuje razinu serijskog izlaza. Za određene pojedinosti pogledajte postavke u Registru kontrole izlaza (OCR).
(4) Otpornik nagiba spojen je između RS pina AT82C250 i mase. Vrijednost otpora može se prikladno prilagoditi na temelju brzine komunikacije sabirnice, obično u rasponu od 16 kΩ do 140 kΩ.
(5) MAX232 zahtijeva četiri elektrolitička kondenzatora-C1, C2, C3 i C4-koji se također koriste za internu pretvorbu energije. Svi imaju nazivni napon od 1 μF/25 V; Preporučuju se kondenzatori od tantala, koji bi trebali biti postavljeni što bliže čipu. Kondenzator za odvajanje od 0,1 μF mora biti spojen između VCC napajanja i mase.
3 Dizajn softvera za pretvorbu RS-232 u CAN
Pod kontrolom mikroprocesora, korištenje prijema serijskog porta i CAN prekida tijekom razmjene podataka između RS-232 i CAN može poboljšati radnu učinkovitost. Dijagram toka glavnog programa prikazan je na slici 2. SJA1000 se može inicijalizirati samo u načinu resetiranja; to primarno uključuje postavljanje načina rada, podjele takta i registara filtera prihvaćanja, konfiguriranje parametara brzine prijenosa podataka i postavljanje registra za omogućavanje prekida.
Mogu li se podaci točno prenijeti također ovisi o brzini prijenosa podataka i kontroli protoka, što su aspekti koji se ne mogu zanemariti tijekom dizajna softvera. Stoga će se sljedeći odjeljci usredotočiti na konfiguraciju CAN brzine prijenosa podataka, automatsko otkrivanje brzina prijenosa podataka serijskog priključka i kontrolu protoka podataka serijskog priključka.

3.1 Postavljanje brzine CAN filtra
Jedan od ključnih elemenata CAN protokola je brzina prijenosa podataka. Korisnici mogu postaviti položaj točaka uzorkovanja bita unutar razdoblja bita i broj uzoraka, što im omogućuje da slobodno optimiziraju performanse mreže za svoje aplikacije. Međutim, tijekom ovog procesa optimizacije, pozornost se mora obratiti na odnos između tolerancije referentnog oscilatora koji se koristi za vremenske parametre bita i kašnjenja širenja različitih signala unutar sustava.
Bitna brzina sustava, fBil, predstavlja broj bitova podataka koji se prenose po jedinici vremena, tj. brzinu prijenosa fBit=1/tBit. Nominalni vremenski raspored bita sastoji se od tri segmenta koji se-ne preklapaju: SYNC_SEG, TSEG1 i TSEG2. Ova tri vremenska segmenta označena su kao tSYNC_SEG, tTSEG1 i tTSEG2. Stoga je nominalni bitni period tBit zbroj ova tri vremenska segmenta.
tBit=tSYNC_SEG + tTSEG1 + tTSEG2
Unutar razdoblja bita, ovi segmenti su izraženi kao cijeli brojevi umnošci osnovne vremenske jedinice. Ova vremenska jedinica naziva se vremenska kvota (TQ), a trajanje vremenske kvote je jedan ciklus sata CAN sustava (tSCL), koji je izveden iz perioda sata oscilatora (tCLK). Sat CAN sustava može se podesiti programiranjem faktora predskalera (unaprijed postavljena vrijednost brzine prijenosa podataka, BRP). Posebno:
tSCL=BRP × 2tCLK=2BPR/fCLK
Još jedan vrlo važan vremenski interval za izračun vremena CAN bita je širina skoka sinkronizacije (SJW), koja ima trajanje tSJW. SJW segment nije dio bitnog ciklusa; nego definira maksimalan broj TQ-ova za koje se bitni ciklus produljuje ili skraćuje tijekom događaja resinkronizacije. Osim toga, CAN protokol omogućuje korisnicima određivanje načina uzorkovanja bitova (SAM), koji može biti ili način jednog-uzorka ili način tri-uzorka (odabir jednog rezultata od tri uzorka). U načinu pojedinačnog -uzorka, točka uzorkovanja je na kraju segmenta TSEG1. U tri-načinu uzorkovanja uzimaju se dvije dodatne točke uzorkovanja u usporedbi s jednim-načinom uzorkovanja; oni se nalaze prije kraja segmenta TSEG1, odvojeni jednim TQ.

Gore navedene BPR, SJW, SAM, TESG1 i TESG2 korisnik može definirati putem internih registara BTR0 i BTR1 CAN kontrolera. Pojedinosti su prikazane na slici 3. Nakon postavljanja BTR0 i BTR1, stvarni raspon brzine prijenosa je:
Maksimalno=1/(tBit - tSJW), najmanje=1/(tBit + tSJW)
3.2 Detekcija brzine prijenosa podataka serijskog porta
Kada serijski uređaj djeluje kao domaćin, ako trebate otkriti brzinu prijenosa podataka serijskog porta uređaja za konverziju u to vrijeme, možete prvo postaviti brzinu prijenosa podataka glavnog računala (na primjer 9600 bauda) i poslati određeni znak (na primjer, povratak na početak reda) s terminala. Na ovaj način, glavno računalo može odrediti komunikacijsku brzinu prijenosa podataka uređaja za konverziju na temelju primljenih znakovnih informacija. ASCII vrijednost znaka za povratak na početak reda je 0DH; vrijednosti primljene pri različitim brzinama prijenosa podataka navedene su u tablici 2.
Bajtovi primljeni različitim brzinama prijenosa podataka
Brzina prijenosa (bit/s) Primljeni bajtovi (heksadecimalni) Brzina prijenosa (bit/s) Primljeni bajtovi (heksadecimalni)
1200 80 4800 E6
1800 F0 9600 0D
2400 78 19200 F*
3.3 Kontrola protoka serijskog porta
Izraz "tijek" koji se ovdje koristi odnosi se na protok podataka. Gubitak podataka često se događa tijekom prijenosa između dva serijska porta. Budući da međuspremnik mikrokontrolera ima ograničen kapacitet, ako je međuspremnik pun kada se podaci primaju, svi podaci koji se u to vrijeme nastavljaju slati bit će izgubljeni. Kontrola protoka učinkovito rješava ovaj problem: kada kraj primatelj ne može obraditi podatke na vrijeme, sustav kontrole protoka šalje signal "ne primaj", uzrokujući da kraj pošiljatelj zaustavi odašiljanje dok ne primi signal "nastavi prijenos". Stoga kontrola protoka upravlja procesom prijenosa podataka i sprječava gubitak podataka. Dvije najčešće korištene vrste kontrole protoka su hardverska kontrola protoka (uključujući RTS/CTS, DTR/CTS itd.) i softverska kontrola protoka (XON/XOFF-nastavi/zaustavi). Sljedeće objašnjenje usredotočuje se isključivo na hardversku metodu kontrole protoka pomoću RTS/CTS.
Kada koristite hardver za kontrolu protoka, RTS i CTS pinovi serijskog terminala povezani su s I/O portovima mikrokontrolera, a start/stop signali se primaju i prenose postavljanjem I/O portova na 1 ili 0. Oprema podatkovnog terminala (kao što je računalo) koristi RTS za pokretanje toka podataka koji šalje mikrokontroler, dok mikrokontroler koristi CTS za pokretanje i pauziranje toka podataka iz računalo. Za implementaciju ove hardverske metode rukovanja, zastavica visoke-razine i zastavica niske-razine postavljaju se tijekom programiranja na temelju veličine prijemnog međuspremnika. Kada količina podataka u međuspremniku dosegne prag-visoke razine, CTS linija na prijemnom kraju postavlja se na nisku (logička 0). Kada program na kraju odašiljanja otkrije da je CTS nizak, prestaje slati podatke sve dok količina podataka u međuspremniku za prijem ne padne ispod praga niske-razine i CTS se postavi na visoku. RTS se koristi za označavanje je li prijemni uređaj spreman za primanje podataka.
3.4 CAN prijemni potprogram
PeliCAN format podržava standardne i proširene okvire. CAN način rada može se konfigurirati pomoću CDR.7 u registru razdjelnika sata (0 za BasicCAN, 1 za PeliCAN). Prilikom primanja CAN podataka, bit FF u informacijama o okviru koristi se za određivanje radi li se o standardnom ili proširenom okviru, a bit RTR za razlikovanje udaljenog okvira od okvira podataka. Slijedi potprogram CAN primanja:
;//////////////////////////////////////////////////////////////////
;//CAN prijem podataka/Ujedinjeno u format okvira s 2-bajtnim ID-om//
;///////////////////////////////////////////////////////////////////////
RECAN:
MOV R0, #C_RE; Početna adresa unutarnjeg međuspremnika mikrokontrolera
MOV DPTR, #RXBUF ; Pročitajte i spremite sadržaj prijemnog međuspremnika
MOVX A, @DPTR ; Pročitajte drugi bajt CAN međuspremnika
MOV @R0, A ; Uštedjeti
JB ACC.7, EFF_RE ; FF bit: 0=SFF, 1=EFF
MOV R2, #0
SJMP SFF_RE ; Ovisno o identifikacijskom broju, pozicija na kojoj se bilježi "bajt podataka" varira
EFF_RE: MOV R2, #2
SFF_RE: MOV R2, #2
SFF_RE:
JB ACC.6, EXIT_RECAN ; Provjerite RTR bit; ako je 1 (udaljeni okvir), iskoči
ANL A, #0FH
MOV R3, A; U ovom trenutku srednja 4 bita predstavljaju duljinu podataka
MOV C_NUM, A ; Pohranite duljinu primljenog okvira u R3 i R5
RDATA0:
INC DPTR ; ID od 2 bajta
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; Ako je EFF, preskočite ID od dva-bajta
JZ DRATA1
INC DPTR
INC DPTR
PODACI1: ; Bajtovi podataka
INC DPTR
INC R0
MOVX A, @DPTR
MOV @R0, A
DJNZ R3, RDATA1
EXIT_RECAN:
RET
4 Zaključak
Minijaturizacija računala pružila je potrebne uvjete za inteligentan razvoj mjernih i kontrolnih instrumenata, omogućujući terminalnim uređajima-temeljenim na mikroprocesorima da posjeduju vrhunske mogućnosti digitalne komunikacije. S pojavom sve većeg broja pametnih terminala, postavljaju se veći zahtjevi za mrežnu arhitekturu, protokole,-izvedbu u stvarnom vremenu, kao i primjenjivost, fleksibilnost, pouzdanost, pa čak i cijenu. Shodno tome, fieldbus tehnologija ima veliko obećanje za budući razvoj. Struktura okvira CAN sabirnice uključuje identifikator (ID), koji omogućuje postojanje više mrežnih računala unutar mreže uređaja; to jest, preko ovih mrežnih hostova može se nadzirati radni status cijele mreže uređaja i donositi odgovarajuće upravljačke odluke. Ovaj uređaj je sada u potpunosti razvijen i postigao je izvrsne rezultate u praktičnim primjenama.




