SAU Fen Bilimleri Enst1tDsü Dergisi 7.Cilt, 2.Sayı (Temmuz 2003)
Kontrol Alan Ağlan (CAN) KullanalarakStep l\1otor Kontrol Uygulamasa A.Karaca, H.Ekiz,
A.T.Özcerit
KONTROL
ALAN A
G
L
A
RI
(CAN) KULLANIL
ARA
K
STEP MOTOR
KONTROL UYGULAMASI
• •• •
Ahmet
KARACA, Hüseyin EKIZ, A. Turan OZCERIT
••Ozet
- Kontrol 21Ian ağ1(Controller AreaNetwork-CAN)., başlangıçta arabalarda bulunan elektronik sistemlerio birbirleri ile haberleşmesini sağlamak anıacıyla geliştirilrrıesine rağmen lusa sürede çok farklı alanlarda kullanlln1aya başlamıştır.
Bu
çalişınada 8051 t-abanh ve üzerinde CAN kontrolör bulunan 89C51CC01 entegresi tanıtılnıaktn ve CAN protokolü kullanılaral< ağ içerisinde haberleşınenin gerçekleştirihnesi anlatılmakta CAN protokolünün kullanımına örnek olnıası aınacıyla, 89CS1CC01 entegresi kullanıhıırak oluştuı .. ulan CAN düğümleri ile ayrı nol{talarda bulunan iki step nıotorun kontrolünü yapan bir sistemin tasarımı ve gerçeldenme si detaylan dırılınaktadır.Anahtar Kelinıeler
- Controller Area Network, �likrodenetleyici, 8951ccoı'
step motor kontrolü.Abstract
- Although CAN (Controller Area Network) initially has been developed in order electronics system in cars to tomminicate each other, it has been used in many di verse applica tions w ith ashort periodof time.
In
this study, 8051 based the 89C51CC01 microcontroller vvhich has an on-chip controller, is introduced and the use ofCAN
protocol for the purpose of conununication in the network is described.As
a case sıudy, the 89C51CC01 chip hasbeen wed to dcmonstrate the CAN protocol applications
in
order to controlİ\VO
step motors located at reosonable distance each other.Key
words
- Controller Area Network,Microcontroller, 8951.CC01, s tep motors control.
I.
CANPROTOKOLÜNÜN
GENEL
ÖZELLİKLERİ
Kontrol AlanAğlan
(ControllerArea
Network-CAN)p
rot
oko
lü, bir araçiçerisinde
bulunan elektronik kontrolbirimleri arasındaki iletişimi sağlaınak üzere bir Alınan fırınası olan Robert Bosch GmbH t
a
ra
f
ından tasarlaıınuş,ilk olarak 1989
y
ıl
ında otomotiv endüstrisinde (Mercedes Firmasında) kullarulmış, dahaA. Karaca, H. Ekiz, A. T.
Özcer1t; SAU
TeknikEğitim Fakültesi
som·ada bir otomotiv stan
d
ardı haline gelmiştir. Aynı
zanıanda
yüksek
hız, düşük maliyet ve yüksek başarım gibiözelliklerinin
sağlad ığı avanta
jla
r nedeniyle, çokkısa
bir süre içerisinde endüstriyel ortamlarda kullanılan sahakontrolü ağl
a
n arasında yerini alnnştır[1 ].
CAN, birde
n
çok aktif düğümün (master) buibirine 'yol' topolojisiile
bağlandığı veçekişıneye
d ay
al
ı (Contention Based) ortam eri
şi
m kontrol mekanizmasınıngerçeklendiği
bir protokoldür.
CAN seri bir iletişim protokolü olmasına karşılık, çoğu serihaberleşme
protokol
ün
e benzeınez. Örnek olar
ak, CANç
erçe
ve
si
,ç
oğuseri iletişin1. protokollerinde
bul
unan hedefve
k aynak a
d
resleri
ile ilgi
li
herhangi bir bilgi içennez.B11na
karşılık
mesajç
erç
evesi
,mesajın
içerdiği bilgi tipini(nıantıksal adres) ve mesajın
önceliğini
gösterenbir
denetim
(
a
rbitratio
n)
alanı
içerir.
Bu a
la
n sadece mesajı tanın
ıl
amak
veö
nceli
ğ
i belirlemek için değil,aym
zamanda ortam erişim kont rolü içind
e kullanılır [ 1]. Şekil
1
'de yapısı verilenstandart veri çerçevesindeki
alanlar aşağıda kısacaaçıklanınakt adır.
Çerçeve Başlangı cı (Start of Frame,
I
bit):M
e
sajın başlangıcını belirtir ve1 'bit
UZUlıluğa sahiptir[2].
Denetim Alanı (Arbitration Field,
12
bit):Denetim
alanı,11
bit uzunluğundaki
t
amtıcı alam ve
1 bit
uzunluğundaki uzak iletim istek(
R
emote
TransmissionRequest, RTR) alam
olmaküzere
ikiayrı alt
alancicu1 oluşur. Tanıtıcıalam
ınes ajınö
nceli
ğive
mantıksal adr
esigibi iki fonksiyonu
içerir [2]. RTR alanı
ise, çerçevenin istek çerçevesi olduğunu gösternıekanıacıyla
kullanılır.Kontrol Alanı:
Altı
bit uzun
lu
ğun
da
ki kontrolalanının
ilk
biti; tanıtıcı
uzaııtı (Identifier Extension,IDE)
bi
tidir
. İlk bitin lo ji
k
'O'
olma
sı, gönderilecek herhangi bir tanıtıcı bi
ti
nolmadığı
anl
amına ge
lir. Kontrol alanınd
akiikinc
i bit, (rO)
ayrılmışbir
bittii ve kullanılmamakt
adır. Arkadan gele
ndört bit
ise, verialanındaki
baytlarınsayısııu gösteren veri uzunluk kodunu (Data Length Code, DLC)
i
çe
ri
r[2].
Veri Alanı: DLC değerine b
a
ğlı olarak sıfır ile sekiz ba
yt
arasında değişen uzunluğa sahiptir
ve çerçeve ile
i
let
i
lınek
istenen bilgiyi/veriyi içerir.SAU ren Bilimleri Enstitüsü Dergısi
7 Ci lt, 2.Sayı
(Temmuz 2003)
Kontrol Alan Ağlan (CAN)
Kullamlarak StepMotor
Kontrol Uygulaması
A.Karaca,
H.Ekiz,A.T.Özcerit
Denetım alanı 12 Bit
Kontrol Alanı
Veıi
Alanı CRC A1anı ACK EOF INT
Hat Boş
1•
•
�
... .... ,.. - --... ... .... �s R I
o ll Bit Tanıtıcı T D r DLC O- 8 Bayt 16 Bit CRC 2 7 Bit 3
f< R E
Şek
i 1 l. StandartCAN vcı i çerçevesi.o
ACK Alanı:
ACK_ alanı, mesa
j
ın alı
nıp
alı
nma
dığı
veherhangi
bir
hatanın sezibpsezilmediği
kon
ul
a
rında
vericinin bilgilcndirilmesine
İnıkan
tanır.
Çerçeve
Sonu
Alanı: Her
b
i
r verive uzak çerçevesi,
m
es
a
jın sonunu bebrten ve bi
rbi
ri ardıııa sıralaunuşy
ed
iadet '1 ' se
v
iy
el
i bit iç
eren birçerçeve
bit diz
is
iile
soniandırılır
[2].II.
CAN
DÜGÜVILERİNİN FİZİKSEL
Y APlLARI
1200
�
PCA82C25l�
T8Ycsı ccoıCAN Mikrodenetle}�ci -trans i ver
...
--�· ! PCA82C2S 1 ...-- T89C5JCC01 CAN M ikrodeııetleyicif•
1Tansiverr.
�
PCA82C251 ---· T89C51CCOI CAN l\1 i krodenetleyici•
trans i ver _. ... l'/\NL CANI-I 120QŞek
i ı 2. CAN düğümümlerinin fiziksel yapı ları.CA�
düğü n1leri arasu1daki kablo bağlantısı CANH veCA "JL
olarak
isiınlendirilen]kj kablodan oluşur. İlk
ve
son
diiğü
ml
er
inüzerinde
soniandırıcıolarak
1200değerinele bir
direnç, CANH
veCANL hatlan
arasınabağlanır.
CANdüğünıleri ü
zer
inde Philips firmasıt
ar
af
ındanüretilen PCi\82C251 CAN transiver ve
Atınelfirması
ta
r
af
ınd
an
üretilen T89C51CC01 n1ikrodenetleyicisi bulurunaktadır. T89C'51 CCO 1 nıikr
o
denet1eyicisi;
i
ç
ind
e
CAN
k ontrolör
bulunan 8051 tabanlıbir nıikrodenetleyicidir.
III.
A'rMEL CAı�
KONTROLÖRİİN
Y APlSI
VE
J\tiESAJ ALMAJMESAJ G
ÖN
D
E
Rl\1E
İŞLEMLERİ
Atmel CAN
ko
ntrolör,BOSCH
GmbH
tarafn1dan tanımlanan CAN s
eri haberleş n1c protokolünü
147
Bit Bit
gerçekleştirmek
iç
in
istenenbütün
özell
ikl
er
i sağlar [3].CAN protoko]ü
için
tanımlanan iki adet ISO st
and
ar
dıbulunmaktadır: ISO 11898 ve 11519 s
t
and
artl
ar
ı.
ISO11898 stan
d
a
rdıl
Mbit/s'ye kadar gerçek
zamankontrolüne izin veren yüksek
hızlı
u
yg
ul
amalard
a
kul1anılırken,
ISO
ı
1519 stan
d
ard
tüst
sınırı
125 Kbit/s
olan
düşü
k
hızlıuygulan1a
l
ard
a kullanılır [ 1).CAN
kon
tr
o
lö
r
CAN
protokolü
taraf
ın
da
n desteklenen bütünçerçeve tiplerini işieyebilir (veri çerçevesi, uzak çerçeve,
hata çerçevesi ve
aşı
rıyük
çe
r
ç
eve
si
)
ve 8MHz kristalfrekansında
1
Mbü/s
bith
ızın
d
abu
işlemigerçekleştirir
[3].
T .t.D·�· .. - ---- -- ... --- -- --- · 1 1 1 1 Bıt Bit ....--1 Sıulfın9 n,.�;tııffing RxDt .. --- TımınqL•.•gıf,. Coun1eı R�rlundaı�y c, .. r.tic Check ,.._�
1 1 1 1 1 1 1 1 1 1 1 t • 1 1
... ._... ---
-
-• • qı? e _ : CPR(hl c:ıılbı:'x + RE'I'.Jıs'i;..rs ı • "< 1;1 g ısı "'' • • 1-- _ .,.. _ ...
1 Prwr��· Enro�ı • 1 1 1 1 ır-- - - --- - - ___.
____
____
_ � 1 1 1 1 • � (: r.•nlrı.•lŞekil 3. Atmel CAN kontrolör blck diyagramı.
1 1
' ı ı
Ş
cki1
3 'te b
l
ok
şeınasıveriten Atınel CAN k
ontro
lö
rde
,birbirinden bağımsız
l 5
mesaj
ne
s
ne
sibulunur.
Bu 15
mesaj n
esnes
inin her
biri n1esaj alma veya gönderırıe
işlenileri
iç
in ayrı ayrı programlanabilir.I-ler
bir mer.o·�
n
es
ne
sinde
gönderilecekmesajın
yaz
ıl
dı
ğ
ı veya alınan
n1esaj
ınbulunduğu 8
baydık bir alan ilebirlikte alınması
i
ste
ne
n veya gönd
eri
l
e
ce
k mesaj
ınt anıtıcı değerinin
y
azı
ld
ı
ğ
ı biralan bulunur. Bu mesaj nesnelerinin
y
ö
neti
mi sayfalama metod
uile
yapılır. CANkontrolöre
er
işimSFR 'ler
(
öze
l fonksiyon kaydedicileri)tarafından
sağlanır.
Başlıca SFR 'ler aşağıda sıralan-nıaktadır:- CANPAGE: Mesaj
nesnelerinin
se
ç
ınu ıçınkullanılır.
- CANM
SG: A
l
ınanveya gönderil ecek
mesajbaytlar
halinde sırayla
buk
ay
de
dici
y
e
y
azıl
ı
r
.- CANID'T1
-4:
�1esaj
tanıtıcı değeri bu
döıtkaydediciye yazılır.
- CAN lE I
-2: Mesaj nesnelerinin kesme
y
etkil
e
ndiı
ı ne
SAU Fen Bilimleri
Enstitüsü
Dergısi 7.Cilt, 2.Sayt(Temınuz 2003)
CANCONCH:
Seçilen n1esajın
göndeıme
veya almaiçin
p
rog
r
amlanmasını sağlar. Mesajın DLC değeride bu kaydedici iç erisine
y
azılarak b
eli
rl
en
i
r.Gönderilen
birmesajı
aJmak iç
in;
öncelikle 'CANPAGE'
kaydedicisinin içine
yazılan
değer ile15
mesa
j
nesnesinden biri seçilir. 'CA
NIE 1'
ve'CANIE2'
kaydedicilerinden seç
i
len
n1esaj nesne
sinin kesmesi aktifedili
r
. Daha sonra 'CANIDT"kaydedicilerine
alınacak.
olan mesajın tanıhcı
değeri
yazılarak alınacak olan n1esaj
belirlenir ve 'CANCONCH' kaydedicisine
'88h'
değ
eriy
azılarak seçilimesaj n
esnesi ıçin alma işl
emi
başlatılır.Mesaj a
l
ın
dığında oluşan kesme i1 e, kesme hizmetprogramında '
C
A
N
MSG
' kaydedicisinden gelen bi
lgiokunarak değerlendirilir.
Mesaj alma
işleminin yenidenbaşlaması için
kesıne
hizmet
programının sonunda'CAN CO
NCH'
kaydedicisine '88h' değ
eritekrar
yüklenir.
Mesaj gönderme işlemi alma
iş
lemin
e
göre daha basittir.Yine 'CANPAGE' kaydedicisinin içine yazılan değer ile
15
mesaj nesnesinden birise
çil
ir. 4CANTE1 � ve'CANIE2' kaydedicilerinden
seçilen
mesaj
nesnesini
nkesmesi aktif edilir. Daha sonra
'CANMSG'
kaydedicis
i
ne gö
nd
erilınek istenen veri, 'CANIDT'kaydedicilerine nıesa
j
tanıtıcı değeri
ve 'CANCONCll'kaydedicisine
'48h'
d
eğeri yazılarak nıesaj gönderilir.IV. STEF•l\tfOTOR UYGULAMASI
Tasarlanan
sistemde, ınerkezi
bi
r
noktadan
ikiayrı
stepmotorun
hız ve start/stop kontrolü ya
p
ılmaktadır.Birinci
düğüm i
k
inci
ve üçü
ncü düğümle-re
gönderdiği bilgiler iledüğümlere bağlı olan step
rootortann
kontrolünügerçekleştirmektedir (Şekil
4
)
. Düğümlere gö
nderi
lecek
bilgiler kontrol butonları ile
ı ..
CANK
Kontrol�
düğümü
(ı )
butonları
�
CAN .. Step n1otort.
Step
düğümü
sürücü 'tJ
�
(2)
J jdevresi , motor
f+-
CAN .. Step motor lStep
düğümü
süri.icüp
�
(3)
,devresi , motor
CANL CANH
Şekil 4.
Step
motor kontroluygu1amast blok diyagramı.148
Kontrol Alan Ağiara (CAN) Kullanılarak
Step
Motor
KontrolUygulamasa A.Karaca, H.Ekiz,A.T.Öuerit
be 1 irlerunektedir. B u
sistemde
bulunanbutonlar
vegörevleri aşağıdaki
ş
eki
ldeö
zetlen
ebil
ir.Yavaş butonu
(Olh):
Seçilen
motorun yavaşhızda
dömnesini sa
ğ
l
ar.Orta butonu ( 02h):
Seçilen motonın ortahızda
dönmesini
sağ
lar.Hızlı butonu (03h): Seçilen motorun
h
ız
lı dönmesinisağlar.
Stop butonu
(OOb):
Seçilen motorun durmasınısa
ğ
lar.Motor scçin1 anahtarı: Yukarıdaki işlemlerin hangi
ınotora uygulanacağını seçer.
- Kapat butonu
(OOh):
fi
e
r
ikimotorunda
d
urmasını
sağlar.
Butonların yanın
d
ayazan
rakamlar
işlemingerçekleştirilmesi
i
çin düğümlere gönderilecek olansay
ı
l
ardı
r. Düğümler mesajıaldıklannda mesa
j
da
g
ö
nderilen sayının değeı·inik
ontro
l ederekmoto
runCı\N kontrolörü başlat CANMSG=OOh Il CANMSG=Olh H CANMSG=02h H
ı
CANMSG=OJhı
• C ANMSG=OOh CANIDT=0200h HMesajı
gönd
er CANMSG=OOh CJ\NIDT-0200h Mesajı gönder E CANIDT=0200h Mesajı gönder CANIDT-0201 h Mesaj1 gönderSAU Fen Bilimleri Enstitüsü Dergisi
7.Cilt, 2
Sayı (Temmuz 2003)
istenilen hızd
a
dönmesini yada dun1ıası işlerrlinigerçekleştirirler.
Tasarlanan s
is
teı
nd
e bulunan ikinci düğüm'0200h'
t
an
ı
t
ıc
ı değere sahip mesajlan üçüncü düğüm'0201h'
tanıtıcı
değere sahip n1esajlan alarak değerlendirir. Tasarlanan sistenunçalışınası için
yüklenmesi gereken progranun akış şeması
Şe
kil5 'tc
veıiiınektedir.Şekil
4
'de blok şen1ası verilen devrede bu lunan birincidüğün1deki nıikrodenetleyici,
butonların
konu
n1unu
sürekli olarak kontrol eder. Basılı bir buton tespit
ettiğinde, butona karşılık gelen, sayıyı
'CANMSG'
kaydedicisine yükler.
Birincj
düğümdeki mikro
denetleyici
ikinci işlemolarak ınotor seçim anahtarının
k
onumu
nu kontrol eder veanahtar kapalı
ise
'0200h'
değerü1i, anahtar açık ise
'020 l h'
değerini 'CANIDT'k
a
y
ded
iciler
ine
yükler ve 'CANMSG' kaydedic
isiiçerisindeki bilgiyi
CA:N yoluna yerleştirir.
İki mot
o
rundadurmasını
s
ağlayan kapat butonu
düğüm] ere'OOh'
değerini göndererek
motorların dunnasını
sağlar (Şekil5 ).
İkinci ve üçüncü düğünllerde, birinci düğün1den ge
I
en
birmesaj alındığında, kesnıe
oluşur
ve kesınehizmet
programı
devreye girer. Kesme hizmet progranniçerjsjnde birinci düğünıden gelen veri
'CAN1v1SG'
kaydedicisinden okunarak
hız
değişkeninin içine yazılır.
Ana
p
rog
ramdahız
değişke
nini
n aldığı değer süreklikontrol edilerek motorun istenilen hızda dönmesi
sağlanır
(Şekil
6).
Başla)
0200h nolu1nesajı
almak için CAN kontrolörü başlat .. H Motoru bir adım döndü!· 50msn bekle. Motoru birad1m döndür.
25msn bekle. Motoru bir adım döndür. lOmsn bekle�ekı
1 6 Motorların bulunduğudüğümlerde
kullan ı la ı; programın akışdi yagı·amı.
149
Kontrol Alan Ağlan (CAN) Kullamlarak Step Motor Kontrol Uygulaması
,
.
A.Karaca, H.Ekiz. A.T.Ozcerit
V.
SONUÇLAR
CAN iletişim protokolü o
t
omobill
er
de
ve endüstride yüksek hız veg
üvenlik
gerekt
iren uygula
malardakullanılmaktadır.
Y
apıla
n çalışmada T89C51 CCO1
n1İkrodenetleyicisi ileCAN
protokolü ile haberleşmegerçekleştirilmiş ve
step ınotor kontrol uygulamasıyap1lınıştır. Başlangıçta
yalnızca ara
balarda
ki elektroniksisten11erinin
kontrolü jçin tasarlanan CAN protokolünün çokf
arklı uygulaına
alanlarında k--ullanımına, step motoriyi
bir
örnekolarak g
örü
lmek tedir.
CAN protokolününözellikle
e
ndüs
triyelsaha
alan ağlarında etkin ve yaygın kullanımasahip olacağı
açık birgerçek
olarak görülmektedir.KAYNAI�AR
[1] TUNCEL,
S
ina
n, "DenetleyiciAlan Ağı
Endustriyelİ
l
et işim Protokolünün Eğitim Amaçb
Benzetimi",Doktora Tezi,