BÀI TP LN
MÔN : KIN TRÚC MÁY TÍNH VÀ
MNG TRUYN THÔNG CÔNG NGHIP
Đề tài: Giao tiếp I2C( Master Slave)
Sinh viên: Phm Th Hoa - 12020150
Nguyễn Đức Sơn - 12020327
I. Gii thiu chung v I2C( Master Slave)
Phương pháp Master Slave (ch - t), mt trm ch (master) trách
nhim ch động phân chia quyn truy cp bus cho các trm t (slave ). Các trm
t đóng vai trò bị động ch quyn truy cp bus gi tín hiu đi kh yêu
cu. Trm ch th dùng phương pháp hi tun t theo chu k để kim soát
toàn b h thng. Nh vy các trm t th gi các d liu thu thập được t
quá trình k thut gửi đến trm ch cũng như nhận được các thông tin điu
khin t trm ch. chun giao tiếp I2C mt chun giao tiếp s dng
phương pháp này.
Ngày nay trong các h thng đin t hin đại, rt nhiu IC hay thiết b
ngoi vi cn phi giao tiếp vi các IC hay thiết b khác giao tiếp vi thế gii
bên ngoài. Vi mc tiêu đạt đưc hiu qu cho phn cng tt nht vi mch
đin đơn gin, Phillips đã phát trin mt chun giao tiếp ni tiếp 2 dây
đưc gi I2C. I2C tên viết tt ca cm t Inter Intergrated Circuit Bus
giao tiếp gia các IC vi nhau.
I2C mc đưc phát trin bi Philips, nhưng đã đưc rt nhiu nhà sn
xut IC trên thế gii s dng. I2C tr thành mt chun công nghip cho
các giao tiếp điu khin, th k ra đây mt vài tên tui ngoài Philips như:
Texas Intrument (TI), MaximDallas, analog Device, National Semiconductor
Bus I2C đưc s dng làm bus giao tiếp ngoi vi cho rt nhiu loi IC khác
nhau như các loi. Vi điu khin 8051, PIC , AVR, ARM, chíp nh như RAM
tĩnh (Static Ram), EEPROM, b chuyn đổi tương t s (ADC),
s tương t (DAC), IC điu khin LCD, LED…
1. Đặc đim giao tiếp I2C
Mt giao tiếp I2C gm 2 dây: Serial Data (SDA) Serial Clock (SCL).
SDA đưng truyn d liu 2 ng, còn SCL đưng truyn xung đồng h
ch theo mt ng. Như hình v trên, khi mt thiết b ngoi vi kết ni vào
đưng I2C thì chân SDA ca s ni vi dây SDA ca bus, chân SCL s ni
vi dây SCL.
Mi dây SDA hay SCL đều đưc ni vi đin áp dương ca ngun cp thông
qua mt đin tr kéo lên (pullup resistor). S cn thiết ca các đin tr kéo
kéo này chân giao tiếp I2C ca các thiết b ngoi vi thường dng cc
máng h (opendrain or open - collector). Giá tr ca các đin tr này khác
nhau tùy vào tng thiết b chun giao tiếp thường dao động trong khong
1KΩ đến 4.7KΩ.
Nhìn li hình 1.1, ta thy rt nhiu thiết b (IC) cùng đưc kết ni vào
mt bus I2C, tuy nhiên s không xy ra chuyn nhm ln gia các thiết b, bi
mi thiết b s đưc nhn ra bi mt địa ch duy nht vi mt quan h ch/t
tn ti trong sut thi gian kết ni. Mi thiết b th hot đông như thiết b
nhn d liu hay th va truyn va nhn. Hot động truyn hay nhn còn
tùy thuc vào vic thiết b đó ch ch (master) hay t (slave). Mt thiết b
hay mt IC khi kết ni vi bus I2C, ngoài mt địa ch (duy nht) để phân bit,
còn đưc cu hình thiết b ch (master) hay t (slave). Ti sao li s
phân bit này ? Đó trên mt bus I2C thì quyn điu khin thuc v thiết
b ch (master). Thiết b nm vai trò to xung đồng h cho toàn h thng, khi
gia hai thiết b ch/t giao tiếp thì thiết b ch nhim v to xung đồng h
qun địa ch ca thiết b t trong sut quá trình giao tiếp. Thiết b ch gi
vai trò ch động, còn thiết b t gi vai trò b động trong viêc giao tiếp.
Nhìn hình trên ta thy xung đồng h ch mt ng t ch đến t, còn lung
d liu th đi theo hai ng, t ch đến t hay ngưc li t đến ch. V d
liu truyn trên bus I2C, mt bus I2C chun truyn 8bit d liu ng trên
đưng truyn vi tc độ 100Kbits/ s Chế độ chun (Standard mode). Tc độ
truyn th lên ti 400Kbits/s Chế độ nhanh (Fast mode) cao nht
3,4Mbits/s Chế độ cao tc (Highspeed mode).
Mt bus I2C th hot động nhiu chế độ khác nhau:
- Mt ch mt t (one master one slave)
- Mt ch nhiu t (one master multi slave)
- Nhiu ch nhiu t (Multi master multi slave)
chế độ nào, mt giao tiếp I2C đều da vào quan h ch/t. Gi thiết mt
mt thiết b A mun gi d liu đến thiết b B, quá trình đưc thc hin như sau
Thiết b A (Ch) xác đnh đúng địa ch ca thiết b B (t), cùng vi
vic xác đnh địa ch, thiết b A s quyết định vic đc hay ghi vào thiết b t.
- Thiết b A gi d liu ti thiết b B.
- Thiết b A kết thúc quá trình truyn d liu.
Khi A mun nhn d liu t B, quá trình din ra như trên, ch khác A s nhn
d liu t B. Trong giao tiếp này, A ch còn B vn t. Chi tiết vic
thiết lp giao tiếp vi mt thiết b nào đó trong mng I2C.
2: Bit Start và Stop
START điu kin khi đầu, báo hiu bt đầu ca giao tiếp, còn STOP
báo hiu kết thúc mt giao tiếp. Hình i đây t điu kin START
STOP. Ban đầu khi chưa thc hin quá trình giao tiếp, c hai đưng SDA
SCL đều mc cao (SDA = SCL= HIGH). Lúc này bus I2C đưc coi di
(“bus free”), sn sàng cho mt giao tiếp. Hai điu kin START STOP
không th thiếu trong vic giao tiếp gia các thiết b I2C vi nhau.
Hình 1.4. Điu kin START STOP ca bus I2C
Điu kin START: mt s chuyn đổi trng thái t cao xung thp trên đưng
SDA trong khi đưng SCL đang mc cao (cao = 1; thp = 0) báo hiu mt
điu kin START
Điu kin STOP: Mt s chuyn đổi trng thái t mc thp lên cao trên đưng
SDA trong khi đưng SCL đang mc cao.
C hai điu kin START STOP đều đưc to ra bi thiết b ch. Sau tín hiu
START, bus I2C coi như đang trong trang thái làm vic (busy). Bus I2C s ri,
sn sàng cho mt giao tiếp mi sau tín hiu STOP t phía thiết b ch.
Sau khi mt điu kin START, , trong quá trình giao tiếp, khi mt tín hiu
START đưc lp li thay mt tín hiu STOP thì bus I2C vn tiếp tc trong
trng thái bn. Tín hiu START lp li START đều chc năng ging nhau
khi to mt giao tiếp.
3. Định dng d liu truyn
D liu đưc truyn trên bus I2C theo tng bit, bit d liu đưc truyn đi ti
mi n dương ca xung đồng h trên dây SCL, quá trình thay đổi bit d liu
xy ra khi SCL đang mc thp.