I2c Ve Spi Haberleşme Protokolü

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

I2C HABERLEME PROTOKOL

Dijital sistemlerde kablolu seri haberleme ile ilgili birok standart vardr. SPI, I 2C
bunlara rnek olarak verilebilir. Bu standartlarn kullandklar u says,
ulaabilecekleri maksimum hzlar birbirinden farkl olmakla beraber I 2C protokol
olduka hzl veri aktarmna olanak tanmaktadr. Bir arada alan, belirli aralklarla
birbiriyle haberleen, yava eitli evresel cihazlarn minimum harici donanm
gereksinimiyle haberlemelerini salar. Basit, dk bant geniliine sahip, ksa-
mesafe protokoldr. Mevcut I2C cihazlarnn ou 400kbps'ye kadar hzlarda
almaktadr. I2C ile birden fazla cihaz haberletirmek kolaydr nk ierisinde
adresleme plan da bulunmaktadr.

I2C protokolnde temel olarak iki hat vardr. Bunlar SCL ve SDA olup, SCL
(SerialCLock) veri senkronizasyonu iin kullanlan clock darbeleri hatt, SDA
(SerialDAta) ise veri hattdr. Ayrca elemanlarn kendine has yazma koruma(WP-
Write Protect), k izin(OE-Output Enable) gibi ular bulunabilir. Ancak bu
kontroller bu protokol iin bir standart olmadndan kullanc bunlar kendisi
dzenlemek zorundadr.

I2C protokolnde veri alverii Start(bala) komutuyla balar ve Stop(bitir)


komutuyla biter. Bu protokolde bilgi veya komut tayan veri alverii saat
darbesinin lojik dk(low) seviyelerinde gerekleir. Cihazlar arasnda
haberlemenin baladn veya tamamlandn belirten Start(bala) ve Stop(bitir)
durum komutlar ise sadece SCL hattnn yani saat sinyalinin lojik yksek(high)
olduu durumlarda gnderilir. SCL hatt lojik yksek iken SDA hattnda lojik1den
lojik0a gei start komutu anlamna gelir ve veri transferinin balayacan bildirir.
Benzer ekilde SCL hatt lojik yksek iken SDA hattnda lojik0dan lojik1e gei
stop(bitir) komutu anlamna gelir ve haberleen iki cihaz arasndaki haberlemenin
tamamlandn bildirir.

I2C protokolnde gnderilen veri ve okunan veri ayn hat zerinden, yani SDA
hattndan transfer edilir. SDA pini srekli olarak bir pull-up direnciyle Vccye (TTL
iin +5V besleme gerilimi) bal olduundan hattaki start ve stop bitlerinin
anlalmas hatta lojik 0 olup olmamasyla anlalr. Ayrca hattn srekli
yksek(high) lojik olarak kurulmas baz elemanlarn yksek empedans
konumlarnda bile hattan lojik 1 okunmasn salar.

I2C protokolnde Master denilen ana bir kontrol birimi cihaz -ki genelde
mikrodenetleyiciler kullanlr- ve Slave denilen cihazlar vardr. Bu protokole gre,
I2C veri yoluna bal her bir slave durumundaki cihazn, en fazla 7 bitten oluan,
kendisine ait bir adresi vardr. Bu cihaz bir LCD, EEPROM, mikrodenetleyici veya
herhangi bir saysal sistem olabilir. Veriyolundaki haberleme iki ynl de olabilir.
SDA hattnda eer bu adres bilgisi master tarafndan gnderilmise, o adrese ait slave
tarafndan SDA hattna ACK yani alnd anlamna gelen bir cevap gnderilir. Bu
aamadan sonra slave birimi kullanlmaya hazrdr.

I2C veriyolu ok master'l (multi-master) veri yoludur. Yani, birden fazla sayda data
transferini balatabilme zelliindeki tmdevre, veriyoluna balanabilir. Bu durumda
data("veri" diyelim ki daha Trke olsun) transferini balatan tmdevre(IC-
Integrated Circuit) Bus-Master(Veriyolu Efendisi) durumunda olacak, veriyolundaki
tm dier IC'ler ise Bus-Slave(Veriyolu Kleleri) durumunda olacaktr. Master
durumundaki eleman genelde bir mikrodenetleyici olduundan, bir I2C
haberlemesinin nasl altn u ekilde zetleyebiliriz:

1. ncelikle mikrodenetleyici SDA hattndan "Start" biti gnderir. Bu durumda tm


slave IC'ler kendilerini alnacak adres bilgisi iin hazrlarlar.

2. Mikrodenetleyici, haberlemek istedii slave IC'nin adresini ve yaplacak ilemin


yazma veya okuma olup olmadn 1 bayt halinde SDA hattndan I2C veriyoluna
aktarr. Slave IC'ler SDA hattndan gelen adres bilgisini alrlar ve bunun kendi
adresleri olup olmadna karar verirler.

3. Mastern gnderdii adrese sahip IC kendisinin veri yolunda olduunu ve


haberlemeye hazr olduunu bildirmek zere SDA yoluna bir ACK sinyali gnderir.
Dier IC'ler mikrodenetleyiciden gelecek "Stop" bitini beklemeye koyulurlar ki , bu
haberleme tamamlanana kadar mdahalede bulunmasnlar ve bir sonraki
haberlemede kendileri arlabilirler.

4. Veri transferi gerekleir. lem yazma ise master'dan slave'e doru, okuma ise
tersi ynde veri transferi gerekleir. Transfer tamamlandktan sonra Master(yani
rneimizde mikrodenetleyici) Stop bitini SDA hattndan aktarr ve haberleme sona
erer.
SPI NEDR? NASIL ALIIR?
SPI, saysal(dijital) tmdevrelerin(entegre devre-IC) seri haberlemeleri iin
gelitirilmi verimli haberleme standartlarndan biridir. Alm "Serial Perihpheral
Interface" olup Trke'si "Seri evresel Arayz"dr. SPI ismi Motorola tarafndan
bulunumutur. SPI standardnn bir dier ad ise Microwire'dr ve bu Natiaonal
Semiconductor firmasnn tescilli ticari markasdr.

SPI, full duplex(e zamanl ift ynl alabilen), senkron(datann saat darbeleriyle
birlikte ezamanl olarak aktarld) bir seri haberleme standarddr ve pek ok
tmdevre tarafndan donanmsal olarak desteklenmektedir. Bu haberlemede
veri(data, bitler) transferi master-slave ilikisi ile gerekleir. Master veri
haberlemesini balatan cihazdr. Master tarafndan veri transferi balatldktan
sonra veri her iki ynde de ezamanl olarak aktarlabilir. Alnan baytn anlaml olup
olmad bilgiyi alan cihaza kalmtr.

SPI, 4 sinyal hatt tanmlar. Bunlar SCK(clock-saat), SDI(SerialDataIn-veri girii),


SDO(SerialDataOut-veri k), CS(Chip Select-tmdevre seimi) sinyallerini tarlar.
SCK hattnda saat sinyalini Master birimi retir ve bu sinyal tm dier slave cihazlara
giri olarak uygulanr. Master cihaz hangi slave'in CS ucunu aktif hale getirirse ilgili
slave cihaz seilmi olur ve Master-Slave haberlemesi gerekleir.

SPI iin tam olarak nasl alt ile ilgili resmi bir kaynak olmad iin, kullanlan
cihazlarn datasheet bilgilerinden faydalanlmaldr. Burada en nemli iki nokta izin
verilen maksimum saat hz ve verinin aktarmnda dikkate alnan faz
geileridir(Ykselen kenar/Den kenar).

Verinin, saat sinyanin hangi geiinde okunmas gerektii ile ilgili de resmi bildiri
bulunmamasna karn, pratikte 4 ayr alma modu tanmlanmtr. Bu modlar:

Mode 0: Haberleme balamadan nce ve haberleme yok iken saat sinyali "low"
seviyededir. Data, saat darbesinin den kenarnda "deitirilir(yazlr)" ve ykselen
kenarnda "okunur".

Mode 1: Haberleme balamadan nce ve haberleme yok iken saat sinyali "low"
seviyededir. Data, saat darbesinin ykselen kenarnda "deitirilir(yazlr)" ve den
kenarnda "okunur".

Mode 2: Haberleme balamadan nce ve haberleme yok iken saat sinyali "high"
seviyededir. Data, saat darbesinin ykselen kenarnda "deitirilir(yazlr)" ve den
kenarnda "okunur".

Mode 3: Haberleme balamadan nce ve haberleme yok iken saat sinyali "high"
seviyededir. Data, saat darbesinin den kenarnda "deitirilir(yazlr)" ve ykselen
kenarnda "okunur".

Mode ClkPolarite ClkFaz


0 0 0
1 0 1
2 1 0
3 1 1
SPI Ezamanl bir haberleme protokoldr. Yani;
-saat frekans RS232den farkl olarak deiebilir.
-data, saat bilgisiyle birlikte ayr hatlar kullanlarak gnderilir.
-datann ne zaman deimesi ve okunmas gerektii, saat sinyalinin durumuna gre
belirlenir.

SPI Master-Slave tabanl bir haberleme protokoldr. Yani;


-Master cihaz saat sinyalini retir ve kontrol eder.
-saat sinyali yoksa data haberlemesi de yoktur.
-data haberlemesi iki ynldr.
-hangi slave cihazla haberleilecei CS hatt ile bildirilir.
-CS(Chip Select) veya SS(Slave Select) diye adlandrlan bu hat genelde aktif 0dr.
Yani 0a ekildiinde bal bulunduu slave seilidir.

rnek bir SPI haberleme zamanlamas:

SCK: Saat sinyali


SDO: Data k sinyali
SDI: Data giri sinyali

Saat sinyalinin den kenarnda SDO hattnda sinyal deiimi gerekleiyor.

Saat sinyalinin ykselen kenarnda gnderen tarafn SDO hattna bal olan alc
tarafn SDI hattnda data okunuyor ve kaydediliyor. (Mod (1,1))

SPI DATA ALIVER


SPI haberlemesi data alverii iin 4 hat kullanr:
SDO: Data k hatt
SDI: Data giri hatt
SCK: Saat sinyali hatt
CS(SS): Slave seme hatt

Ek Bilgi: Ykselen kenar-Den kenar nedir?


Lojik devreler ve sistemlerde senkron bir alma sz konusu olduunda saat sinyali
senkronizasyonu salamak iin gereklidir. Ancak sistemin giriteki deiikliklere tam
olarak ne zaman yant vereceini bilmek nemlidir. Bu zamanlama saat sinyalinin
durumuna gre belirtilir ve bu durumlar genel olarak tetikleme adn alr. Bu
durumlar saat sinyalinin:

* Lojik1'den lojik0'a geii: Den kenar tetiklemeli


* Lojik0'dan lojik1'e geii: Ykselen kenar tetiklemeli
* Lojik0'da ve deimiyorken: Lojik0 yzey tetiklemeli
* Lojik1'de ve deimiyorken: Lojik1 yzey tetiklemeli durumlardr.

rnein "den kenar tetiklemeli" bir ilemde, rnein okuma ilemi, saat sinyali
lojik1'den lojik0'a gei anndaki data deeri (lojik0 veya lojik1) okunan deerdir.
Bunun iin nce okunmas istenen deer yazlr. Ardndan cihazn bu deeri okumas
iin saat sinyali 1'den 0' drlr. Benzer durum "ykselen kenar tetiklemeli"
ilemlerde de geerlidir.

You might also like