Dizajn aplikacije za RS-232-CAN konverziju koristeći Fieldbus tehnologiju

Jun 27, 2026 Ostavi poruku

1 Uvod


Komunikacija industrijske opreme obično uključuje široku lepezu hardverskih i softverskih proizvoda, kao i protokole koji se koriste za povezivanje standardnih računarskih platformi (personalnih računara ili radnih stanica) sa uređajima za industrijsku automatizaciju. Shodno tome, većina uređaja za automatizaciju je dizajnirana za izvršavanje jednostavnih serijskih naredbi koje su kompatibilne sa standardnim serijskim portovima koji se nalaze na ličnim računarima ili na dodatku-na karticama serijskog porta. RS-232 je trenutno najrašireniji serijski interfejs u PC i industrijskim komunikacijskim sektorima. RS-232 je definisan kao jednostruki-standard dizajniran da produži komunikacijske udaljenosti u serijskoj komunikaciji male brzine. Pošto RS-232 dijeli zajedničku signalnu masu između predajnika i prijemnika, ne može koristiti diferencijalne signale; u suprotnom bi se šum uobičajenog načina povezao sa signalnim sistemom. Standard RS-232 navodi maksimalnu udaljenost od samo 15 m i maksimalnu brzinu prijenosa signala od 20 kbit/s.


CAN, skraćenica od "Controller Area Network", jedna je od najčešće korištenih sabirnica polja na međunarodnom nivou. Jedna mreža sastavljena od CAN sabirnica ograničena je električnim karakteristikama mrežnog hardvera. Kao multi-glavna serijska komunikaciona magistrala, osnovne specifikacije CAN-a zahtijevaju visoke brzine prijenosa i jaku otpornost na elektromagnetne smetnje, kao i mogućnost otkrivanja bilo kakvih grešaka koje se javljaju na komunikacijskoj magistrali. Čak i kada udaljenost prijenosa signala dostigne 10 km, CAN i dalje može osigurati brzine prijenosa podataka do 50 kbit/s. Tabela 1 pokazuje odnos između maksimalne udaljenosti prijenosa između bilo koja dva čvora na CAN magistrali i njihovih bit ratea.

 

Maksimalna udaljenost između bilo koja dva čvora u trouglastoj konfiguraciji u sistemu 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

Maksimalna udaljenost (m) 1300 3300 6700 10000


Kao što se može vidjeti, CAN magistrala je superiorna serijska magistrala RS-232 u smislu performansi u realnom vremenu, prilagodljivosti, fleksibilnosti i pouzdanosti. Kada su dva serijska uređaja udaljena jedan od drugog i ne mogu se povezati direktno preko RS-232, RS-232 se može konvertovati u CAN kako bi se postigla mrežna povezanost serijskih uređaja preko CAN magistrale.


Međutim, RS-232 i CAN se značajno razlikuju u pogledu nivoa napona i formata okvira. konkretno:


RS-232 standard koristi negativnu logiku, definirajući bilo koji nivo napona između +3V i +15V kao logičku "0" i svaki nivo napona između -3V i -15V kao logičku "1". CAN signali se, s druge strane, prenose pomoću diferencijalnog napona. Dvije signalne linije se zovu "CAN_H" i "CAN_L". U statičkom stanju, oba su približno 2,5V; ovo stanje je predstavljeno kao logička "1" i takođe se naziva "recesivno". Kada je CAN_H veći od CAN_L, on 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 bitova podataka, programabilni deveti bit (koji služi kao adresa/bit podataka i za prijenos i za prijem) i jedan stop bit. CAN format okvira podataka sastoji se od: zaglavlja okvira + ID-a + podataka (koji se mogu podijeliti u dva formata: standardni okviri i prošireni okviri).

基于现场总线实现RS-232到CAN转换的应用设计Stoga, dizajn zahtijeva mikrokontroler za izvođenje konverzija kao što su konverzije nivoa i formata okvira. Proces konverzije prikazan je na slici 1.

 

2 Dizajn hardvera za RS-232-CAN konverziju


U dizajniranju uređaja za konverziju RS-232-u-CAN, mikrokontroler AT89C52 se koristi kao mikroprocesor; SJA1000 se koristi kao CAN mikrokontroler. SJA1000 integriše funkcije fizičkog sloja i sloja veze podataka CAN protokola i može pasivno upravljati kadriranjem komunikacijskih podataka; AT82C250 služi kao interfejs između CAN kontrolera i fizičke magistrale, pružajući mogućnost diferencijalnog prenosa za magistralu i mogućnost diferencijalnog prijema za CAN kontroler. Tri različita režima rada (velika-brzina, kontrola nagiba i stanje pripravnosti) mogu se odabrati preko pina 3 na AT82C250. Kada je pin 3 uzemljen, uređaj radi u režimu velike brzine; optička izolacija velike brzine implementirana je pomoću 6N137, koji sprječava smetnje od vanjskih signala; MAX232 se koristi za pretvaranje signala od 232 nivoa u TTL nivoe za čip interfejsa mikrokontrolera. Za specifične detalje kola hardverskog interfejsa, pogledajte relevantne resurse za SJA1000; dalje objašnjenje ovdje nije dato. Međutim, treba napomenuti sljedeće.


(1) Otpornik od 120Ω spojen je na oba kraja CAN magistrale kako bi odgovarao impedanciji magistrale, čime se poboljšava otpornost na smetnje i pouzdanost komunikacije podataka. U praksi je, međutim, dovoljno osigurati da šant otpornik između "CAN_H" i "CAN_L" u CAN mreži bude 60Ω.


(2) Pin 20 (RX1) na SJA1000 može biti uzemljen kada se ne koristi (pogledajte dizajn softvera za određeni razlog); kada se kombinuje sa podešavanjem bita CDR.6, ovo može značajno povećati dužinu magistrale.


(3) Način povezivanja pinova TX0 i TX1 određuje nivo serijskog izlaza. Pogledajte postavke u registru kontrole izlaza (OCR) za određene detalje.


(4) Nagibni otpornik je povezan između RS pina AT82C250 i mase. Vrijednost otpora se može podesiti na odgovarajući način na osnovu brzine komunikacije magistrale, 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 konverziju energije. Svi imaju ocjenu od 1 μF/25 V; Preporučuju se tantalski kondenzatori i treba ih postaviti što bliže čipu. 0,1 μF kondenzator za razdvajanje mora biti povezan između VCC napajanja i mase.


3 Dizajn softvera za RS-232 u CAN konverziju


Pod kontrolom mikroprocesora, korištenje prijema serijskog porta i CAN prekida tokom razmjene podataka između RS-232 i CAN-a može poboljšati operativnu efikasnost. Glavni dijagram toka programa je prikazan na slici 2. SJA1000 se može inicijalizirati samo u načinu resetiranja; ovo prvenstveno uključuje podešavanje režima rada, podjele sata i registara filtera prihvatljivosti, konfiguriranje parametara brzine prijenosa i postavljanje registra za omogućavanje prekida.

 

Da li se podaci mogu tačno prenositi zavisi i od brzine prenosa i kontrole protoka, što su aspekti koji se ne mogu prevideti tokom dizajna softvera. Stoga će se sljedeći odjeljci fokusirati na konfiguraciju CAN brzine prijenosa, automatsko otkrivanje brzina prijenosa serijskog porta i kontrolu toka podataka serijskog porta.

info-1-1

 

3.1 Podešavanje brzine CAN filtera


Jedan od ključnih elemenata CAN protokola je brzina prijenosa. Korisnici mogu podesiti poziciju tačaka uzorkovanja bita unutar perioda bita i broj uzoraka, omogućavajući im da slobodno optimizuju performanse mreže za svoje aplikacije. Međutim, tokom ovog procesa optimizacije, pažnja se mora obratiti na odnos između tolerancije referentnog oscilatora koji se koristi za parametre vremena bita i kašnjenja širenja različitih signala unutar sistema.


Sistemska brzina prijenosa, fBil, predstavlja broj bitova podataka koji se prenose u jedinici vremena, tj. brzinu prijenosa fBit=1/tBit. Nominalno vrijeme bita se sastoji od tri segmenta koji se ne-preklapaju: SYNC_SEG, TSEG1 i TSEG2. Ova tri vremenska segmenta su označena kao tSYNC_SEG, tTSEG1 i tTSEG2, respektivno. Stoga je nominalni period bita tBit zbir ova tri vremenska segmenta.


tBit=tSYNC_SEG + tTSEG1 + tTSEG2


Unutar perioda bita, ovi segmenti se izražavaju u terminima cjelobrojnih višekratnika osnovne vremenske jedinice. Ova vremenska jedinica naziva se vremenska kvota (TQ), a trajanje vremenske kvote je jedan ciklus takta CAN sistema (tSCL), koji je izveden iz perioda takta oscilatora (tCLK). CAN sistemski sat se može podesiti programiranjem faktora predskalera (podešena vrijednost brzine prijenosa, BRP). konkretno:


tSCL=BRP × 2tCLK=2BPR/fCLK


Drugi veoma važan vremenski interval za proračune vremena CAN bita je širina sinhronizacionog skoka (SJW), koja ima trajanje od tSJW. SJW segment nije dio ciklusa bitova; već definiše maksimalan broj TQ-ova za koji se ciklus bita produžava ili skraćuje tokom događaja resinhronizacije. Osim toga, CAN protokol omogućava korisnicima da specificiraju način uzorkovanja bitova (SAM), koji može biti ili način jednog-uzorka ili tri-uzorka (odabir jednog rezultata od tri uzorka). U modu jednog-uzorka, tačka uzorkovanja je na kraju TSEG1 segmenta. U načinu rada sa tri-uzorka, uzimaju se dvije dodatne tačke uzorkovanja u poređenju sa načinom jednog-uzorka; oni se nalaze prije kraja TSEG1 segmenta, odvojeni jednim TQ.

 

info-1-1

BPR, SJW, SAM, TESG1 i TESG2 koji su gore navedeni mogu biti definirani od strane korisnika putem internih registara BTR0 i BTR1 CAN kontrolera. Detalji su prikazani na slici 3. Nakon što su BTR0 i BTR1 postavljeni, stvarni raspon brzine prijenosa je:
Maksimalno=1/(tBit - tSJW), minimalno=1/(tBit + tSJW)

 

3.2 Detekcija brzine prenosa serijskog porta


Kada serijski uređaj djeluje kao domaćin, ako trebate otkriti brzinu prijenosa serijskog porta uređaja za konverziju u tom trenutku, prvo možete postaviti brzinu prijenosa prijenosa hosta (na primjer, 9600 baudova) i poslati određeni znak (na primjer, povratni znak) s terminala. Na ovaj način, domaćin može odrediti brzinu prijenosa komunikacije uređaja za konverziju na osnovu primljenih znakovnih informacija. ASCII vrijednost karaktera za povratak nosioca je 0DH; vrijednosti primljene pri različitim brzinama prijenosa navedene su u Tabeli 2.


Bajtovi primljeni pri različitim brzinama prijenosa


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 toka serijskog porta


Termin "tok" koji se ovdje koristi odnosi se na tok podataka. Gubitak podataka se često dešava tokom prenosa između dva serijska porta. Pošto bafer mikrokontrolera ima ograničen kapacitet, ako je bafer pun kada se podaci primaju, svi podaci koji se nastavljaju slati u tom trenutku će biti izgubljeni. Kontrola toka efikasno rješava ovaj problem: kada strana koja prima podatke ne može obraditi podatke na vrijeme, sistem kontrole protoka šalje signal "ne prima", uzrokujući da kraj koji šalje prestane sa odašiljanjem 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 toka su hardverska kontrola toka (uključujući RTS/CTS, DTR/CTS, itd.) i softverska kontrola toka (XON/XOFF-nastavi/zaustavi). Sljedeće objašnjenje se fokusira isključivo na metodu kontrole toka hardvera koristeći RTS/CTS.


Kada se koristi hardver za kontrolu protoka, RTS i CTS pinovi serijskog terminala su povezani na I/O portove mikrokontrolera, a signali start/stop se primaju i prenose postavljanjem I/O portova na 1 ili 0. Oprema terminala podataka (kao što je računar) koristi RTS da pokrene tok podataka koji šalje mikrokontroler, a mikrokontroler koristi tok podataka i koristi se od mikrokontrolera do CTS-a. kompjuter. Za implementaciju ove metode hardverskog rukovanja, zastavica visokog{3}}nivoa i zastavica niskog-nivoa se postavljaju tokom programiranja na osnovu veličine bafera za prijem. Kada količina podataka u baferu dostigne prag visokog{6}}nivoa, CTS linija na kraju prijema je postavljena na nisko (logička 0). Kada program na kraju odašiljanja otkrije da je CTS nizak, on zaustavlja prijenos podataka sve dok količina podataka u baferu za prijem ne padne ispod praga niskog-nivoa i CTS se ne postavi na visoko. RTS se koristi za označavanje da li je prijemni uređaj spreman za prijem podataka.


3.4 Potprogram CAN Receive


PeliCAN format podržava standardne i proširene okvire. CAN mod se može konfigurirati korištenjem CDR.7 u registru razdjelnika sata (0 za BasicCAN, 1 za PeliCAN). Prilikom primanja CAN podataka, FF bit u informaciji o okviru se koristi za određivanje da li je to standardni ili prošireni okvir, a RTR bit se koristi za razlikovanje udaljenog okvira i okvira podataka. Slijedeće je CAN potprogram za primanje:

 

;//////////////////////////////////////////////////////////////////

;//CAN Prijem podataka/Ujedinjeno u format okvira sa 2-bajtnim ID-om//

;///////////////////////////////////////////////////////////////////////

 

RECAN:

MOV R0, #C_RE ; Početna adresa internog bafera mikrokontrolera

MOV DPTR, #RXBUF ; Pročitajte i sačuvajte sadržaj bafera za primanje

MOVX A, @DPTR ; Pročitajte drugi bajt CAN bafera

MOV @R0, A ; Sačuvaj

JB ACC.7, EFF_RE ; FF bit: 0=SFF, 1=EFF

MOV R2, #0

SJMP SFF_RE ; U zavisnosti od ID broja, pozicija na kojoj se hvata "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 dužinu podataka

MOV C_NUM, A ; Pohranite dužinu primljenog okvira u R3 i R5

RDATA0:

INC DPTR ; 2-bajtni 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 ; 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čunara je obezbijedila neophodne uslove za inteligentni razvoj mjernih i kontrolnih instrumenata, omogućavajući mikroprocesorski{0}}baziranim terminalnim uređajima da posjeduju superiorne digitalne komunikacijske mogućnosti. Sa pojavom sve većeg broja pametnih terminala, postavljaju se veći zahtjevi za mrežnu arhitekturu, protokole, performanse-u realnom vremenu, kao i primjenjivost, fleksibilnost, pouzdanost, pa čak i cijenu. Shodno tome, tehnologija sabirnice polja ima velika obećanja za budući razvoj. Struktura okvira CAN magistrale uključuje identifikator (ID), koji omogućava postojanje više mrežnih hostova unutar mreže uređaja; odnosno preko ovih mrežnih hostova može se pratiti radni status cijele mreže uređaja i mogu se donijeti odgovarajuće kontrolne odluke. Ovaj uređaj je sada u potpunosti razvijen i postigao je odlične rezultate u praktičnim primjenama.

Pošaljite upit

whatsapp

Telefon

E-pošte

Upit