thiet ke he thong giao tiep i2c giua hai vi dieu khien pic (1)
TRANSCRIPT
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
1/68
B GIO DC V O TAOTRNG.
n
Thit k h thng giao tip I2C giahai vi iu khin PIC
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
2/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 1Lp: T1001
LI M U
Ngy nay, cng vi s pht trin khng ngng ca cuc cch mng khoa
hc v k thut,ngnh k thut in t ang dn khng nh vai tr ngy cng
ln ca mnh a con ngi bc sang k nguyn mi:k nguyn s. Trong s
takhng th khng ni n k thut vi iu khin. K thut vi iu khin
ang c ng dng rng ri v thm nhp vo nhiu lnh vc k thut v i sng
x hi.Hu ht cc thit b k thut t n gin cho n phc tp nh thit b
iu khin t ng, thit b vn phng, cc thit b trong gia nh u dng cc
b vi iu khin.Cng vi n con ngi cng ngy cng hon thin cc chun
giao tip kt ni cc thit b in t vi nhau thc hin vic trao i thng
tin, iu khin cc c cu chp hnh mt cch thun li hn.
Vi nhng kin thc c hc v nhng kin thc cp nhp,
nghin cu cng vi s hng dn ca thy gio hng dn.Em chn ti:
Thit k h thng giao tip I2C gia hai vi iu khin PIC.
n ca em gm 2 phn:
Chngmt :Tng quan v pic v giao tip I2C.
Chnghai :Thit k h thng giao tip I2C gia 2 pic16F877A
Trong qu trnh lm n tt nghip,do hn ch v thi gian,ti liu nn
khng trnh khi nhng thiu st. Em rt mong c s gp ca thy c trong
hi ng v cc bn n tt nghip ca em c hon thin hn.
Em xin gi li cm n chn thnh nnh trng cng thy c trong khoa
in t, c bit l thy on Hu Chc gip em hon thnh n ny.
Hi Phng, ngy 30 thng 10 nm 2010
Sinh vin
Bi Vn Nguyn
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
3/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 2Lp: T1001
CHNG 1. TNG QUAN
1. S lc v vi x l v vi iu khin.
Trong nhng thp nin cui th k XX, t s ra i ca cng ngh bndn, k thut in t c s pht trin vt bc. Cc thit b in t sau
c tch hp vi mt cao v rt cao trong cc din tch nh, nh vy cc
thit b in t nh hn v nhiu chc nng hn. Cc thit b in t ngy cng
nhiu chc nng trong khi gi thnh ngy cng r hn, chnh v vy in t c
mt khp mi ni.
Bc t ph mi trong cng ngh int, cng ty Intel cho ra i b vix l u tin, tc l phn cng ch ng vai tr th yu, phn mm (chng
trnh) ng vai tr ch o i vi cc chc nng cn thc hin. Nh vy vi x
l c s mm do ha trong cc chc nng ca mnh. Ngy nay vi x l c tc
tnh ton rt cao v kh nng x l rt ln.
Vi x l c cc khi chc nng cn thit ly d liu, x l d liu v
xut d liu ra ngoi sau khi x l. V chc nng chnh ca Vi x l chnh lx l d liu, chng hn nh cng, tr, nhn, chia, so snh.v.v....Vi x l khng
c kh nng giao tip trc tip vi cc thit b ngoi vi, n ch c kh nng nhn
v x l d liu m thi.
vi x l hot ng cn c chng trnh km theo, cc chng trnh
ny iu khin cc mch logic v t vi x l x l cc d liu cn thit theo
yu cu.Chng trnh l tp hp cc lnh x l d liu thc hin tng lnhc lu tr trong b nh, cng vic thc hnh lnh bao gm: nhn lnh t b
nh, gii m lnh v thc hin lnh sau khi gii m.
thc hin cc cng vic vi cc thit b cui cng, chng hn iu
khin ng c, hin th k t trn mn hnh .... i hi phi kt hp vi x l vi
cc mch in giao tip vi bn ngoi c gi l cc thit b I/O (nhp/xut)
hay cn gi l cc thitb ngoi vi. Bn thn cc vi x l khi ng mt mnh
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
4/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 3Lp: T1001
khng c nhiu hiu qu s dng, nhng khi l mt phn ca mt my tnh, th
hiu qu ng dng ca Vi x l l rt ln. Vi x l kt hp vi cc thit b khc
c s trong cc h thng ln, phc tp i hi phi x l mt lng ln cc
php tnh phc tp,c tc nhanh.Chng hn nh cc h thng sn xut tng trong cng nghip, cc tng i in thoi, hoc cc robot c kh nng
hot ng phc tp v.v..
B Vi x l c kh nng vt bc so vi cc h thng khc v kh nng
tnh ton, x l, v thay i chng trnh linh hot theo mc ch ngi dng,
c bit hiu qu i vi cc bi ton v h thng ln.Tuy nhin i vi cc
ng dng nh, tm tnh ton khng i hi kh nng tnh ton ln th vic ngdng vi x l cn cn nhc. Bi v h thng d ln hay nh, nu dng vi x l
th cng i hi cc khi mch in giao tip phc tp nh nhau. Cc khi ny
bao gm b nh cha d liu v chng trnh thc hin, cc mch in giao
tip ngoi vi xut nhp v iu khin tr li, cc khi ny cng lin kt vi vi
x l th mi thc hin c cng vic. kt ni cc khi ny i hi ngi
thit k phi hiu bit tinh tng v cc thnh phn vi x l, b nh, cc thit bngoi vi. H thng c tora kh phc tp,chim nhiu khng gian,mch in
phc tp v vn chnh l trnh ngi thit k.Kt qu l gi thnh sn
phm cui cng rt cao, khng ph hp p dng cho cc h thng nh.
V mt s nhc im trn nn cc nh ch to tch hp mt t b nh v
mt s mch giao tip ngoi vi cng vi vi x l vo mt IC duy nht c gi
l Microcontroller-Vi iu khin. Vi iu khin c kh nng tng t nh khnng ca vi x l,nhng cu trc phn cng dnh chongi dng n gin hn
nhiu.Vi iu khin ra i mang li s tin li i vi ngi dng,h khng cn
nm vng mt khi lng kin thc qu ln nh ngi dng vi x l,kt cu
mch in dnh cho ngi dng cng tr nn n gin hn nhiu v c kh
nng giao tip trc tip vi cc thit b bn ngoi.Vi iu khin tuy c xy
dng vi phn cng dnh cho ngi s dng n gin hn,nhng thay vo li
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
5/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 4Lp: T1001
im ny l kh nng x l b gii hn(tc x l chm hn v kh nng tnh
ton t hn,dung lng chng trnh b gii hn).Thay vo ,vi iu khin c
gi thnh r hn nhiu so vi vi x l,vic s dng n gin,do n c ng
dng rng ri vo nhiu ng dng c chc nng n gin, khng i hi tnhton phc tp.
Vi iu khin c ng dng trong cc dy chuyn t ng loi nh, c c
robot c chc nng n gin, trong my git, t v.v...
Nm 1976 Intel gii thiu b vi iu khin (microcontroller) 8748, mt
chip tng t nh cc b vi x l v l chip u tin trong h MCS-48. phc
tp, kch thc v kh nng ca Vi iu khin tng thm mt bc quan trng vonm 1980 khi intel cho ra chip 8051,b Vi iu khin u tin ca h MCS-51
v l chun cng ngh cho nhiu h vi iu khin c sn xut sau ny.Sau
rt nhiu h vi iu khin ca nhiu nh ch to khc nhau ln lt c a ra
th trng vi tnh nng c ci tin ngy cng mnh.
Cc vi iu khin thng dng:
+ H vi iu khin AMCC: do tp on Applied Micro Circuits
Corporation sn xut. Thng 5/2004, h vi iu khin ny c pht trin v
a ra th trng bi IBM, bao gm:
403 PowerPC CPU
PPC 403GCX
405 PowerPC CPUPPC 405EP
PPC 405GP/CR
PPC 405GPr
PPC NPe405H/L
440 PowerPC Book-E CPU
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
6/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 5Lp: T1001
PPC 440GP
PPC 440GX
PPC 440EP/EPx/GRx
PPC 440SP/SPe
+ H vi iu khin Atmel:
Dng Atmel AT91 (Kin trc ARM THUMB)
Dng AT90, Tiny & MegaAVR (Atmel Norway design)
Dng Atmel AT89 (Kin trc Intel 8051/MCS51)
Dng MARC4
+ H vi iu khin Freescale Semiconductor:
Nm 2004, nhng vi iu khin ny c pht trin v tung ra th
trng bi Motorola.
Dng 8-bit
68HC05 (CPU05)68HC08 (CPU08)
68HC11 (CPU11)
Dng 16-bit
68HC12 (CPU12)
68HC16 (CPU16)Freescale DSP56800 (DSPcontroller)
Dng 32-bit
Freescale 683XX (CPU32)
MPC500
MPC 860 (PowerQUICC)
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
7/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 6Lp: T1001
MPC 8240/8250 (PowerQUICC II)
MPC 8540/8555/8560 (PowerQUICC III)
+ H vi iu khin Intel
Dng 8-bit
8XC42
MCS48
MCS51
8061
8xC251
Dng 16-bit
80186/88
MCS96
MXS296
Dng 32-bit
386EX
i960
+ H vi iu khin Microchip
12-bit instruction PIC
14-bit instruction PIC
PIC16F84
16-bit instruction PIC
Trong h vi iu khin Microchip c ng dng ph bin nht, c
bit l PIC16F877A c tch hp thm nhng thnh phn mi nh b chuyn
i A/D 10 bits, v lp trnh phn mm iu khin cng n gin hn.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
8/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 7Lp: T1001
2.Tng quan v vi iu khin PIC
2.1.PI C lg?
PIC l vit tt ca thut ng Programable Interlligent Compurter,c
th tm dch l my tnh thng minh kh trnh do hng Gnenral Intrusment t
tn cho vi iu khin u tin u tin ca h PIC 1650 c thit k dng lm
cc thit b ngoi vi cho vi iu khin CP1600.Vi iu khin ny sau c
nghin cu pht trin thm v t hnh thnh nn dng vi iu khin PIC nh
ngy nay.
2.2c im ca PIC so vi cc loi vi iu khin khc
Hin nay trn th trng c rt nhiu loi vi iu khin khc nhau nh:
8051. Motorola 68HC, AVR, ARMTuy vy PIC vn c s dng ngy cng
c ph bin bi:
- D dng mua c th trng Vit Nam.
- Gi thnh khng qu t.
- C y tnh nng ca 1 vi iu khin khi hot ng c lp.- L s b xung ttv kin thc cng nh v ng dng cho h vi iu
khin mang tnh truyn thng nh 8051.
- C s h tr ca nh sn xut v trnh bin dch, cc cng c lp
trnh,mch np t n gin n mc cao.
- Cc tnh nng a dng ca vi iu khin PIC,ngy cngc m rng,
pht trin.
2.3 Kin trc ca PIC
Kin trc phn cng ca vi iu khin c thit k theo 2 dng kin
trc:kin trc Von Neuman v kin trc Havard
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
9/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 8Lp: T1001
Hnh 1.1. Kin trc Harvard v kin trc Von-Neumann.
T chc phn cng ca PIC c t chc theo kiu kin trc Harvard.
im khc bit gia kin trc Harvard v Von-Neumann l cu trc b nh d
liu v b nh chng trnh.
i vikin trc Von-Neumann,b nh d liu v b nh chng trnh
nm chung trong cng mt b nh.Do ta c tht chc, cn i mt cch
linh hot b nh chng trnh v b nh d liu.Tuy nhin iu ny ch c
ngha khi tc x l ca CPU l rt cao,v vi cu trc trong cng mt thi
im CPU ch c th tng tc vi b nh d liu hoc b nh chng trnh.
Nh vy c th ni cu trc Von-Neumann khng ph hp vi cu trc ca vi
iu khin.
i vi cu trc Harvard,b nh chng trnh v b nh d liu tch
thnh hai b nh ring bit.Do cng mt thi im CPU c th tng tc vi
c hai b nh,nh vy tc x l c ci thin ng k.
Mt im cn ch na l tp lnh trong kin trc Harvard c th c
ti u ty theo yu cu kin trc ca vi iu khin m khng ph thuc vo cu
trc d liu.V d vi vi iu khin dng16F di lun l 14 bt( trong khi d
liu c t chc thnh tng byte). c im ny cminh hatrong hnh 1.1.
2.4. RISC v CISC
Nh trn,kin trc Harvard l khi nim mi hn so vi kin trc Von-
Neumann.Khi nim ny c ci thin nhmci tin tc thc thi ca vi iu
khin.Qua vic tch ri b nh chng trnh v b nh d liu,bus chng trnh
Datamemory CPU
Program
mem
ory
CPU
Programand
datamemory
8 148
Von_NeumannHarvard
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
10/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 9Lp: T1001
v bus d liu.CPU c th cng mt lc truy xut c b nh chng trnh v b
nhd liu,gip tng tc x l d liu nn gp i.ng thi cu trc lnh
khng cn ph thuc vo cu trc d liu na m c th linh ng iu chnh ty
theo kh nng v tc ca tng vi iu khin.V tip tc ci tin tc thcthi lnh,tp lnh ca h vi iu khin PIC c thit k sao cho chiu di m lnh
lun c nh (v d vi h 16Fxxxx chiu di m lnh lun l 14 bit),v cho php
thc thi trong mt chu k xung clock (ngoitr mt s trng hp c bit nh
lnh nhy,lnh gi chng trnh con-cn hai xung ng h).iu ny c ngha l
tp lnh ca vi iu khin thuc cu trc Harvard s t lnh hn,ngn hn,n
gin hn p ng yu cu m ho lnh bng mt s lng bit nht nh.
Vi iu khin c t chc theo kin trc Harvard cn c gi l vi iu
khin RISC (Reducer Instruction Set Computer) hay l vi iu khin c tp lnh
rt gn.Vi iu khin c thit k theo kiu kin trc Von-Neuman cn c
gi l vi iu khin CISC (Complex Instruction Set Computer) hay vi iu khin
c tp lnh phc tp v lnh ca n khng phi l mt s cnh m lun l bi
s ca 8bit (1 byte).2.5. PIPELINING (x l song song)
y chnh l c ch x l lnh ca cc vi iu khin PIC.Mt chu k lnh
ca vi iu khin s bao gm 4 xung clock.V d ta s dng oscillator c tn s
4 MHZ th xung lnh c tns l 1 MHZ (chu ki lnh l 1 ns).Gi s ta c 1
on chng trnh nh sau:
1.MOVLW 55h2.MOVWF PORT B
3.CALL SUB_1
4.BSF PORT A,BIT 3
5. instruction @ address SUB_1
y ta ch bn n quy trnh vi iu khin x l on chng trnh trn
thng qua tng chu k lnh.qu trnh s c thcthi nh sau:
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
11/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 10Lp: T1001
Hnh 1.2. C ch PIPELINING
TCY0: c lnh 1.
TCY1: thcthi lnh 1,c lnh 2.
TCY2: thc thi lnh 2,c lnh 3.
TCY3: thc thi lnh 3,c lnh 4.
TCY4: v lnh 4 khng phi l lnh s c thc thi theo quy trnh thc
thi ca chng trnh (lnh tip theo c thc thi phi l lnh u tin ti labelSUB_1) nn chu trnh thc thi ca lnh ny ch c dng c lnh u tin
ti label SUB_1.Nh vy c th xem lnh 3 cn 2 chu k xung clock thc thi.
TCY5: thc thi lnh u tin ca SUB_1 v c lnh tip theo ca
SUB_1.Qu trnh ny c thc hin tng t cho cc lnh tip theo ca
chng trnh.
Thng thng thc thi mt lnh,ta cn mt chu k lnh gi lnh ,
v mt chu k xung clock na gii m v thc thi lnh. Vi c ch pipelining
c trnhby trn,mi lnh xem nh ch c thc thi trong mt chu k lnh.
i vi cc lnh m qu trnh thc thi lm thay i gi tr thanh PC (Program
Counter) cn hai chu k lnh thc thi v phi thc hin vic gi lnh a ch
thanh PC ch ti.Sau khi xc nh ng v tr lnh trong thanh ghi PC,mi
lnh ch cn mt chu k lnh thc thi xong.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
12/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 11Lp: T1001
2.6. Cc dng PIC v cch la chn vi iu khin PIC
Cc k hiu cavi iu khin PIC:
PIC12xxxx : di lnh 12 bt.
PIC16xxxx: di lnh 14 bit.
PIC18xxxx: di lnh 16 bit.
C : PIC c b nh EPROM.
F : PIC c b nh plash.
LF : PIC c b nh plash hot ng in p thp.
LV : tng t nh LF, y l k hiu c.
Bn cnh c mt s vi iu khin c k hiu l xxFxxx l EEPROM,
nu c thm ch A cui l plash (v d 16F877 l EEEROM, 16F877A l
plash).
Ngoi ra cn c thm mt dng vi iu khin PIC mi l dsPIC.
Vit Nam ph bin nht l cc h vi iu khinPIC do hng Microchipsn xut.
Cch la chn mt vi iu khin PIC cho ph hp:
- Trc ht cn bit s chn ca vi iu khin cn thit cho ng dng.
C nhiu vi iu khin PIC c s lng chn khc nhau,c vi iu khin ch c
8 chn, c loi 28,40, 44 chn.
- Cn chn vi iu khin PIC c b nhplash c th np xo chng
trnh c nhiu ln hn.
- Tip n cn ch n cc khi chc nng c tch hp sn trong vi
iu khin,cc chun giao tip bn trong.
- B nh chng trnh m vi iu khin cho php.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
13/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 12Lp: T1001
2.7. Ngn ng lp trnh cho PIC
Ngn ng lp trnh cho PIC rt a dng.Ngn ng lp trnh cp thp c
MPLAB (c cung cp min ph bi nh sn xut Microchip),cc ngn ng
lp trnh cp cao hn bao gm C,Basic, Pascal,Ngoi ra cn mt s ngn nglp trnh dnh ring cho PIC nh PICBasix, MikroBasix
2.8. Mch np PIC
y cng l mt dng sn phm rt a dng dnh cho vi iu khin PIC.
C th s dng cc mch np c cung cp bi nh sn xut l hng Microchip
nh PICSTARTplus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II.C th s
dng cc sn phm ny np cho vi iu khin khc thng qua chng trnh
MPLAB. Dng sn phm chnh thng ny c u th l np c cho tt c cc
vi iu khin PIC.Tuy nhin gi thnh rt cao v gp rt nhiu kh khn trong
qu trnh mua snphm.
Ngoi ra do tnh nng cho php nhiu ch np khc nhau,cn c rt
nhiu mch np c thit k dnh cho vi iu khin PIC. C th s lc mt s
mch np PIC nh sau:
- JDM Programmer: mch np ny dnh cho chng trnh Icprog cho
php np cc vi iu khin PIC c h tr tnh nng np chng trnh in p
thp ICSP (In Circuit Serial Programming ). Hu ht cc mch np u h tr
tnh nng np chng trinh ny.
- WARP-13A v MCP USB: hai mch np ny ging nh mch np
PICSTART PLUS do nh sn xut Microchip cung cp, tng thch vi trnh
bin dch MPLAB,ngha l ta c th trc tipdng chng trnh MPLAB
np cho vi iu khin PIC m khng cn s dng mt chng trnh np khc,
chng hn nh Icprog.
- Mch np Universal ca Williem, y khng phi mch np chuyn
dng dnh cho PIC nh P16PR040.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
14/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 13Lp: T1001
Cc mch np k trn u c u im rt ln l n gin, r tin,hon ton
c th t lp rp mt cch d dng,mi thng tin v s mch np,thit k thi
cng, kim tra v chng trnh np d dng tm c. Tuy nhin cc mch np
trn vn cn mt s nhc im l hn ch v s vi iu khin c h tr, bncnh mi mch np cn c s dng vi mt chng trnh np thch hp.
Sau khi trnh by tng quan v vi iu khin PIC.Em xin trnh by v
mt loi vi iu khin PIC c s dng rt rng ri hin nay l 16F877A.
3. Tng quan v PIC 16F877A
3.1. S khi v bng m t chc nng cc chn ca PIC16F877A
Hnh 1.3a. PIC 16F877A
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
15/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 14Lp: T1001
Hnh 1.3.b. S khi ca PIC16F877A
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
16/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 15Lp: T1001
Bng m t chc nng cc chn ca PIC16F877A
Pin NameDIP
Pin#
PLCC
Pin#
QFT
Pin#
I/O/P
TypeBuffer Type Description
OSC1/CLKIN 13 14 30 1 ST/CMOS(4)
u vo ca xung dao
ng thch anh/ng voxung clock ngoi
OSC2/CLKOUT 1 2 18 O -
u ra ca xung daong thch anh. Ni vi
thch anh hay cnghng trong ch dao
ng ca thchanh.Trong ch RC,ng ra ca chn OSC2.
MCLR /Vpp 1 2 18 I/P ST
Ng vo ca Master
Clear(Reset) hoc ngvo in th c lptrnh. Chn ny cho
php tn hiu Reset thitb tc ng mc thp.
RA0/AN0 2 3 19 I/O TTL
PORTA l port vo rahai chiu. RA0 c thlm ng vo tung t
th 0.
RA1/AN1 3 4 20 I/O TTL
RA1 c th lm ng vo
tung t th 1
RA2/AN2/VREF
4 521
I/O TTLRA2 c th lm ng votung t 2 hoc in p
chun tng t m.
RA3/AN3/VREF+ 5 6 22 I/O TTL
RA3 c th lm ng votung t 3 hoc in pchun tng t dng.
RA4/T0CKI 6 7 23 I/O ST
RA4 c th lm ng vo
xung clock cho b nhthi Timer0.
RA5/ SS /AN4 7 8 24 I/O TTLRA5 c th lm ng vo
tng t th 4
RB0/INTRB1RB2
333435
363738
89
10
I/OI/OI/O
TTL/ST(1)TTLTTL
PORTB l port haichiu.
RB0 c th lm chnngt ngo
RB3/PGM 36 39 11 I/O TTL
RB3 c th lm ng vo
ca in th c lptrnh mc thp.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
17/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 16Lp: T1001
RB4
RB5RB6/PGC
RB7/PGD
37
3839
40
41
4243
44
14
1516
17
I/O
I/OI/O
I/O
TTL
TTLTTL/ST(2)
TTL/ST(3)
Interrupt-on-change pin.Interrupt-on-change pin.Interrupt-on-change pin
hocIn-Crcuit Debugger pin
.Serial programmingclock.
Interrupt-on-change pinhoc
In-Crcuit Debugger pin.
Serial programmingdata .
RC0/T1OSO/T1CKI 15 16 32 I/O ST
PORTC l port vo ra
hai chiu.RC0 c th l ng voca b dao ng Timer1
hoc ng xung clockcho Timer1
RC1/T1OSI/CCP2 16 18 35 I/O ST
RC1 c th l ng voca b dao ng Timer1
hoc ng voCapture2/ng ra
compare2/ng vo
PWM2.
RC2/CCP1 17 19 36 I/O ST
RC2 c th ng vocapture1/ng ra
compare1/ng voPWM1
RC3/SCK/SCL 18 20 37 I/O STRC3 c th l ng vo
xung
RC4/SDI/SDA 23 25 42 I/O ST
Clock ng b nitip/ng ra trong c hai
ch SPI v I2CRC4 c th l d liubn trong SPI(ch
SPI) hoc d liuI/O(ch I 2 C).
RC5/SDO 24 26 43 I/O STRC5 c th l d liungoi SPI(ch SPI)
RC6/TX/CK 25 27 44 I/O STRC6 c th l chn
truyn khng ng bUSART hoc ng b
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
18/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 17Lp: T1001
vi xung ng h
RC7/RX/DT 26 29 1 I/O ST
RC7 c th l chn nhnkhng ng b USART
hoc ng b vi dliu.
RD0/PSP0RD1/PSP1RD2/PSP2RD3/PSP3RD4/PSP4RD5/PSP5RD6/PSP6RD7/PSP7
1920212227282930
2122232430313233
383940412345
I/OI/OI/OI/OI/OI/OI/OI/O
ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)
PORTD l port vo rahai chiu hoc l
parallel slave port khigiao tip vi bus ca b
vi x l.
RE0/RD /AN5 8 9 25 I/O ST/TTL(3)
PORTE l port vo rahai chiu.
RE0 c th iu khinvic c parrallel slaveport hoc l ngoc vo
tng t th 5.
RE1/WR /AN6 9 10 26 I/O ST/TTL(3)
RE1 c th iu khinvic ghi parallel slaveport hoc l ng vo
tng t th 6.
RE2/CS /AN7 10 11 27 I/O ST/TTL(3)
RE2 c th iu khinvic chn parallel slave
port hoc l ng votng t th 7
VssVDD
12,3111,32
13, 3412, 35
7, 286, 29
PP
Cung cp ngun dngcho cc mc logicv
nhng chn I/O.
NC1,17,28, 40
12,1333, 4
Nhng chn ny khngc ni bn trong v
n c trng
Ghi ch: I = input; O = output; I/O = input/output; P = power- = Not used; TTL = TTL input; ST = Schmitt Trigger input
1. L vng m c ng vo Trigger Schmitt khi c cu hnh nh ngt ngoi.
2. L vng m c ng vo Trigger Schmitt khi c s dng trong ch
9 Serial Programming.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
19/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 18Lp: T1001
3. L vng m c ng vo Trigger Schmitt khi c cu hnh nh ng
vo ra mc ch chung v l ng vo TTL khi s dng trong ch Parallel
Slave Port (cho vic giao tip vi cc bus ca b vi x l).
4. L vng m c ng vo Trigger Schmitt khi c cu hnh trong ch dao ng RC v mt ng vo CMOS khc.
3.2. T chc b nh
C 2 khi b nh trong cc vi iu khin h PIC16F87X, b nh chng
trnh v b nh d liu, vi nhng bus ring bit c th truy cp ng thi.
Hnh 1.4.Ngn xp v bn b nh chng trnh PIC16F877A
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
20/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 19Lp: T1001
3.2.1. T chc ca bnh chng trnh
Cc vi iu khin h PIC16F877A c b m chng trnh 13 bit c kh
nng nh v khng gian b nh chng trnh ln n 8Kb.Cc IC PIC16F877A
c 8Kb b nh chng trnh FLASH, cc IC PIC16F873/874 ch c 4 Kb.Vect
RESET t ti a ch 0000h v vect ngt ti a ch 0004h.
3.2.2. T chc b nh d liu
B nh d liu c chia thnh nhiu dy v cha cc thanh ghi mc ch
chung v cc thanh ghi chc nng c bit. BIT RP1 (STATUS ) v RP0
(STATUS ) l nhng bit dng chn cc dy thanh ghi.
RP1:RP0 Bank
00 0
01 1
10 2
11 3
Chiu di ca mi dy l 7Fh (128 byte). Phn thp ca mi dy dng
cha cc thanh ghi chc nng c bit.Trn cc thanh ghi chc nng c bit l
cc thanh ghi mc ch chung, c chc nng nh RAM tnh. Thng th nhng
thanh ghi c bit c s dng t mt dy v c th c nh x vo nhng dy
khc gim bt on m v kh nng truy cp nhanh hn.
3.2.3. Cc thanh ghi mc ch chung
Cc thanh ghi ny c th truy cp trc tip hoc gin tip thng qua thanh
ghi FSG (File Select Register).
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
21/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 20Lp: T1001
Hnh 1.5. Cc thanh ghi ca PIC16F877A
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
22/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 21Lp: T1001
3.2.4. Cc thanh ghi chc nng c bit
Cc thanh ghi chc nng c bit (Special Function Resgister) c s
dng bi CPU v cc b nh ngoi vi iu khin cc hot ng c yu cu
ca thit b. Nhng thanh ghi ny c chc nng nh RAM tnh. Danh sch nhng
thanh ghi nay c trnh by bng di. Cc thanh ghi chc nng c bit c
th chia thnh hai loi: phn trung tm (CPU) v phn ngoi vi.
3.2.5. Cc thanh ghi trng thi
Hnh 1.6.Thanh ghi trng thi (a ch 03h, 83h, 103h, 183h)
Thanh ghi trng thi cha cc trng thi s hc ca b ALU, trng thi
RESET v nhng bits chn dy thanh ghi cho b nh d liu. Thanh ghi trng
thi c th l ch cho bt k lnh no, ging nh nhng thanh ghi khc. Nu
thanh ghi trang thi l ch cho mt lnh m nh hng n cc c Z, DC hoc
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
23/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 22Lp: T1001
C, v sau nhng bit ny s c v hiu ho. Nhng bit ny c th t hoc
xo tu theo trng thi logic ca thit b. Hn na hai bit TO v PD th khng
cho php ghi, v vy kt qu ca mt tp lnh m thanh ghi trng thi l ch c
th khc hn d nh. V d, CLRF STATUS s so 3 bit cao nht v t bit Z.Lc ny cc bit ca thanh ghi trng thi l 000u u1uu (u = unchanged). Ch c
cc lnh BCF, BSF, SWAPF v MOVWF c s dng thay i thanh ghi
trng thi, bi v nhng lnh ny khng lm nh hng n cc bit Z, DC hoc C
t thanh ghi trng thi. i vi nhng lnh khc th khng nh hng n nhng
bit trng thi ny.
3.3. Cc cng ca PIC 16F877A
3.3.1. PORTA v thanh ghi TRISA
Hnh 1.7.a.S khi ca chn RA3:RA0 v RA5
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
24/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 23Lp: T1001
Hnh 1.7.b. S khi ca chn RA4/T0CKI
3.3.2 PORTB v thanh ghi TRISB
PORTB c rng 8 bit, l port vo ra hai chiu. Ba chn ca PORTB
c a hp vi chc nng lp trnh mc in th thp (Low Voltage
Programming ): RB3/PGM, RB6/PGC v RB7/PGD. Mi chn ca PORTB c
mt in tr ko bn trong. Mt bit iu khin c th m tt c nhng in tr
ko ny ln. iu ny c thc hin bng cch xo bit
RBPU(OPTION_REG). Nhng in tr ny b cm khi c mt Power-on
Reset. Bn chn ca PORTB: RB7 n RB4 c mt ngt thay i c tnh
.Ch nhng chn c cu hnh nh ng vo mi cth gy ra ngt ny. Nhng
chn vo (RB7:RB4) c so snh vi gi tr c cht trc trong ln c
cui cng ca PORTB. Cc kt qu khng ph hp ng ra trn chn RB7:RB4
c OR vi nhau pht ra mt ngt Port thay i RB vi c ngt l RBIF
(INTCON). Ngt ny c th nh thc thit b t trng thi ngh (SLEEP).
Trong th tc phc v ngt ngi s dng c th xo ngt theo cch sau:
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
25/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 24Lp: T1001
a) c hoc ghi bt k ln PORTB. iu ny s kt thc iu kin khng ho hp.
b) Xo bit c RBIF.
Hnh 1.8.a.S khi cc chn RB3:RB0
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
26/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 25Lp: T1001
Hnh 1.8.b.S khi cc chn RB7:RB4
3.3.3 PORT C v thanh ghi TRIS C
PORTC c rng l 8 bit, l port hai chiu. Thanh ghi d liu trc tip
tng ng l TRISC. Cho tt c cc bit ca TRISC l 1 th cc chn tng ng
PORTC l ng vo. Cho tt c cc bit ca TRISC l 0 th cc chn tng ng
PORTC l ng ra. PORTC c a hp vi vi chc nng ngoi vi, nhng chn
ca PORTC c m Trigger Schmitt ng vo. Khi b I2C c cho php, chn
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
27/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 26Lp: T1001
3 v 4 ca PORTC c th cu hnh vi mc I2C bnh thng, hoc vi mc
SMBus bng cch s dng bit CKE (SSPSTAT). Khi nhng chc nng ngoi
vi c cho php, chng ta cn phi quan tm n vic nh ngha cc bit ca
TRIS cho mi chn ca PORTC.Mt vi thit b ngoi vi ghi ln bit TRIS thto nn mt chn ng ra, trong khi nhng thit b ngoi vi khc ghi ln bit
TRIS th s to nn mt chn ng vo. Khi nhng bit TRIS ghi b tc ng
trong khi thit b ngoi vi c cho php, nhng lnh c thay th ghi (BSF, BCF,
XORWF) vi TRISC l ni n cn phi c trnh. Ngi s dng cn phi ch
ra vng ngoi vi tng ng m bo cho vic t TRIS bit l ng.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
28/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 27Lp: T1001
Hnh 1.9.aS khi ca cc chn RC
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
29/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 28Lp: T1001
Hnh 1.9.b S khi ca cc chn RC v RC
3.3.4. PORT D v thanh ghi TRIS D
PORTD l port 8 bit vi m Trigger Schmitt ng vo. Mi chn c th
c cu hnh ring l nh mt ng vo hoc ng ra. PORTD c th c cu
hnh nh port ca b vi x l rng 8 bit (parallel slave port) bng cch t bit
iu khin PSPMIDE (TRISE ). Trong ch ny, m ng vo l TTL.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
30/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 29Lp: T1001
Hnh 1.10.S khi ca PORTD (trong ch l port I/O)
3.3.5 PORT E v thanh ghi TRIS E
PORTE c ba chn (RE0/RD/AN5, RE1/WR/AN6, v RE2/CS/AN7) mi
chn c cu hnh ring l nh nhng ng vo hoc nhng ng ra. Nhng chn
ny c m Trigger Schmitt ng vo. Nhng chn ca PORT E ng vai tr
nh nhng ng vo iu khin vo ra cho Port ca vi x l khi bit PSPMODE
(TRISE ) c t. Trong ch ny, ngi s dng cn phi chc chn
rng nhng bit TRISE c t, v chc rng nhng chn ny c cu
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
31/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 30Lp: T1001
hnh nh nhng ng vo s. Cng bo m rng ADCON1 c cu hnh cho
vo ra s. Trong ch ny, nhng m ng vo l TTL.
Nhng chn ca PORTE c a hp vi nhng ng vo tng t.Khi
c chn cho ng vo tng t, nhng chn ny s c gi tr "0". TRIS E iukhin hng ca nhng chn RE ch khi nhng chn ny c s dng nh
nhng ng vo tng t. Ngi s dng cn phi gi nhng chn c cu hnh
nh nhng ng vo khi s dng chng nh nhng ng vo tng t.
Hnh 1.11. S khi ca PORTE (trong ch I/O port)
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
32/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 31Lp: T1001
3.4 Hot ng canh thi
3.4.1 B nh thi TIMER0
B nh thi/b m Timer0 c cc c tnh sau:
B nh thi / b m 8 bit
Cho php c v ghi
B chia 8 bit lp trnh c bng phn mm
Chn xung clock ni hoc ngoi
Ngt khi c s trn t FFh n 00h
Chn sn cho xung clock ngoi
S khi ca b nh thi Timer0 v b chia dng chung vi WDT c
a ra trong hnh 1.14.
Hnh 1.12. S khi ca b nh thi Timer0 v b chia dng chung vi WDT
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
33/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 32Lp: T1001
Ch nh thi (Timer) c chn bng cch xo bit T0CS
(OPTION_REG). Trong ch nh thi, b nh thi Timer0 s tng dn
sau mi chu k lnh (khng c b chia). Nu thanh ghi TmR0 c ghi th s
tng s b ngn li sau hai chu k lnh.Ch m (Counter) c chn bng cch xo bit T0CS
(OPTION_REG). Trong ch m, Timer0 s tng dn mi cnh ln
xung ca chn RA4/T0CKI. S tng sn c xc nh bi bit Timer0 Source
Edge Select, T0SE (OPTION_RE). B chia ch c dng chung qua li
gia b nh thi Timer0 v b nh thi Watchdog. B chia khng cho php
c hoc ghi.Ngt Timer0
Ngt TMR0 c pht ra khi thanh ghi TMR0 trn t FFh n 00h. S trn
ny s t bit T0IF (INTCON). Ngt ny c th c giu i bng cch xa
bit T0IE (INTCON) . Bit T0IF cn phi c xa trong chng trnh bi th
tc phc v ngt ca b nh thi Timer0 trc khi ngt ny c cho php li.
S dng Timer0 vi xung clock ngoi
Khi b chia khng c s dng, clock ngoi t vo th ging nh b
chia ng ra. S ng b ca chn T0CKI vi clock ngoi c thc hin bng
cch ly mu b chia ng ra trn chn Q2 v Q4. V vy thc s cn thit
chn T0CKI mc cao trong t nht 2 chu k my v mc thp trong t nht 2
chu k my.
B chia
Thit b PIC16F87X ch c mt b chia m c dng chung bi b nh
thi TIMER0 v b nh thi Watchdog. B chia c cc H s chia dng cho
Timer0 hoc b WDT. Cc h s ny khng c kh nng c v kh nng vit.
chn h s chia xung vo Timer0 hoc cho b WDT ta tin hnh xo hoc
t bit PSA ca thanh ghi OPTION_REG.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
34/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 33Lp: T1001
Nhng bit PS2, PS1, PS0 ca thanh ghi OPTION_REG dng xc
lp cc h s chia.
3.4.2. B nh thi TIMER1
B nh thi TIMER1 l mt b nh thi/b m 16 bit gm hai thanh
ghi TMR1H (Byte cao) v TMR1L (byte thp) m c th c hoc ghi. Cp
thanh ghi ny tng s m t 0000h n FFFFh v bo trn s xut hin khi c
s chuyn s m t FFFFh xung 0000h. Ngt, nu c php c th pht ra
khi c s m trn v c t bit c ngt TMR1IF. Ngt c th c php
hoc cm bng cch t hoc xo bit cho php ngt TMR1IE.
B nh thi Timer1 c th c cu hnh hot ng mt trong hai ch sau:
nh thi mt khong thi gian (timer)
m s kin (Counter)
Vic la chn mt trong hai ch c xc nh bng cch t hoc xo
bit iu khin TMR1ON.
---- ---- T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
Bit7
Bit0
Bit 7-6 Khng c nh ngha
Bit 5-4 bit chn b chia clock cho timer1
Bit 3 bit iu khin cho php b dao ng Timer1
Bit 2 bit iu khin clock ngoi Timer
Bit 1 bit chn ngun clock cho Timer1
Bit 0 bit iu khin hot ng ca Timer1
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
35/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 34Lp: T1001
Ch Timer
Ch Timer c chn bng cch xo TMR1CS. Trong ch ny,
Ngun clock t vo Timer l mch dao ng FOSC/4. Bit iu khin ng b
khng b tc ng v clock ngoi lun lun ng b.
Hnh 1.12.a.Cnh tng timer1
Ch counter
Trong ch ny, b nh thi tng s m qua clock ngoi. Vic tng
xy ra sau mi sn ln ca xung clock ngoi. B nh thi phi c mt sn ln
trc khi vic m bt u.
Hnh 1.12.bS khi b nh thi timer1
3.4.3. B nh thi TIMER2
B nh thi TIMER2 l b nh thi 8 bit vi mt b m v mt b
potscaler. N thng dng chung vi b CCP trong ch PWM (s c
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
36/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 35Lp: T1001
cp phn sau). Thanh ghi TMR2 c th c hoc ghi v c xo khi c bt k
tn hiu reset no ca thit b.
B nh thi TIMER2 c mt thanh ghi chu k 8 bit, PR2. B nh thi
tng s m ln t 00h n gi tr c ghi trong thanh ghi TR2 v sau resetli gi tr 00h trong chu k k tip. PR2 l thanh ghi c th c hoc ghi.
Gi tr trng hp trong thanh ghi TMR2 c i qua b postscaler 4 bit
pht ra mt ngt TMR2 (c t bit c ngt TMR2IF). B nh thi TIMER2
c th c tt (khng hot ng) bng cch xo bt iu khin TMR2ON
gimthiu cng sut tiu tn ngun.
Hnh 1.13.aS khi ca TIMER2
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
37/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 36Lp: T1001
Hnh 1.13.b.T2CON: Thanh ghi iu khin Timer2 (a ch 12h)
Mt c im khc ca vi iu khin Pic16F877A l c b dao ng ch
trn chip iu, n s gip trnh c nhng sai s khng cn thit trong vic to
xung dao ng, vi iu khin Pic16F877A c kh nng t Reset bng b WDT,
v c thm 256 byte EEPROM.
4. Giao tip I2C
4.1.Gii thiu chung v I2C
Ngy nay trong cc h thng thng tin in t hin i, rt nhiu
ICs hay thit b ngoi vi cn phi giao tip vi cc ICs hay thit b ngoi vi khc
- giao tip vi th gii bn ngoi.Vi mc tiu t c hiu qu cho phn cng
tt nht vi mch in n gin,Philips pht trin mt chun giao tip ni
hai dy c gi l I2C.I2C l tn vit tt ca cm t Inter Intergrated Circuit-
bus giao tip gia cc IC vi nhau.
I2C mc d c pht trin bi Philips nhng n c rt nhiu nh sn
xut trn th gii s dng.I2C tr thnh mt chun cng nghip cho cc giao
tip iu khin.C th k ra mt vi tn tui ngoi Philips nh Texas Intrusment
(TI), Maxim dallas, Analog device, National Semiconductor Bus I2C c
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
38/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 37Lp: T1001
dng lm bus giao tip ngoi vi cho rt nhiu loi IC khc nhau nh cc loi vi
iu khin 8051, PIC, AVR, ARM, chip nh nh Ram tnh (Static ram),
EEPROM,b chuyn i tng t s(ADC), s tng t (DAC),IC iu khin
LCD, LED
Hnh 1.14 Bus I2C v thit b ngoi vi
4.1.1 c im giao tip I2C
Mt giao tip I2C gm c hai dy: serial data (SDA) v serial clock
(SCL). SDA l ng truyn d liu theo hai hng,cn SCL l ng truyn
xung ng h v ch theo mt hng. Khi mt thit b ngoi vi kt ni vong I2C thchn SDA ca n s cni vi dy SDA ca bus,chn SCL
c ni vi dy SCl.
Hnh 1.15.a Kt ni thit b vo bus I2C ch chun(Standard mode) v ch nhanh (Fast mode)
Mi dy SDA hay SCL u c ni vi in p dng ca ngun cp
thng qua mt in tr ko ln(full-up resistor). S cn thit ca cc in tr ko
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
39/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 38Lp: T1001
ny l v chn giao tip I2C ca cc thit b ngoi vi thng l dng cc mng h
(open-drain or open-collector). Gi tr cc in tr ny khc nhau ty vo tng
thit b v chun giao tip,thng dao ng trong khong t 1k n 4,7k.
Tr li vi hnh 1.15.a ta thy c rt nhiu thit b (ICs) cng ckt ni vo mt bus I2C,tuy nhin s khng xy ra chuyn nhm ln gia cc
thit b,bi mi thit b s c nhn ra bi mt a ch duy nhtc mi quan
h ch/t tn ti trong sut thi gian kt ni. Mi thit b c th hot ng nh
l thit b nhn d liu hay c th va truyn va nhn.Hot ng truyn hay
nhn con ph thuc vo thit b l ch(mater) hay t (slave).
Mt thit b hay mt IC khi kt ni vi bus I2C, ngoi mt a ch (duynht) phn bit,n cn c cu hnh l thit b ch (mater) hay t (slave).C
s phn bit bi trn mt bus I2C th quyn iu khin thuc v thit b ch
(mater). Thit b ch ng vai tr to xung ng h (clock) cho ton h thng.
Khi gia hai thit b ch/t giao tip th thit b ch c vai tr to xung ng h
v qun l a ch ca thit b t trong sut qu trnh giao tip.Thit b ch ng
vai tr ch ng,cn thit b t ng vai tr b ng trong vic giao tip.
Hnh 1.15.b Truyn nhn d liu gia ch/t
Nhn hnh trn ta thy xung ng h ch c mt hng t ch n t cn
lung d liu c th i theo hai hng t ch n t hay ngc li t t n ch.
Vi d liu truyn trn bus I2C,mt bus I2C chun truyn 8 -bt d liu
c hng trn ng truyn vi tc 100 kbit/s - ch chun (standard-
mode). Tc truyn c th ln ti 400 kbit/s - ch nhanh (Fast-mode) v
cao nht 3,4 Mbit/s - ch cao tc (high speed mode).
Mt bus I2C c th hot ng nhiu ch khc nhau:
- Mt ch - mt t (one masterone slave).
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
40/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 39Lp: T1001
- Mt ch - nhiu t (one mastermutil slave).
-Nhiu ch - nhiu t (mutil master mutil slave).
D ch no, mt giao tip I2C u da vo quan h ch/t . Gi thit
1 thit bA mun gi d liu n thit b B,qu trnh cthc hin nh sau:- Thit b A (ch) xc nh ng a ch ca thit b B (t), cng vi
vic xc nh a ch, thit b A s quyt nh vic c hay ghi vo thit b t.
- Thit b A gi d liu ti thit b B.
- Thit b A kt thc qu trnh truyn d liu.
Khi A mun nhn d liu t B,qu trnh din ra nh trn ch khcl A
s nhn d liu t B.Trong giao tipny A l ch cn B vn l t.Chi tit vic
thit lp mt giao tip gia hai thit b s c m t chi tit y trong cc
mc di y.
4.1.1.1 START and STOP condi tions (iu kin)
START and STOP l nhng iu kin bt buc phi c khi mt thit b
ch mun thit lp giao tip vi mt thit b no trong giao tip I2C.START
l iu kin khi ubo hiu bt u giao tip, cn STOP bo hiu kt thc
mt giao tip.Hnh di y m t iu kin START v STOP
Ban u khi cha thc hin qu trnh giao tip,c hai ng SDA v
SCL u mc cao (SDA=SCL=HIGH).Lc ny bus I2C c coi l di (bus
free),sn sng cho mt giao tip.Hai iu kin START,STOP khng th thiu
trong vic giao tip gia cc thit b I2C vi nhau.
Hnh 1.16. iu kin Start v Stop.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
41/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 40Lp: T1001
iu kin START: mt s chuyn i trng thi t cao xung thp trn
ng SDA trong khi ng SCl ang mc cao (cao =1,thp =0) bo
iu kin STOP :mt s chuyn i trng thi t mc thp nn cao trn
ng SDA trong khi ng SCL mc cao.
C hai iu kin START v STOP u c to ra bi thit b ch.Sau
tn hiu START,bus I2C coi nh ang trong trng thi lm vic (busy). Bus
I2C s ri, sn sng cho mt giao tip mi sau tn hiu STOP t thit b ch.
Sau khi c mt iu kin START,trong qu trnh giao tip,khi c mt
tn hiu START c lp li thay v c mt tn hiu STOP th bus I2C vn tip
tc trnh thi bn.Tn hiu START v lp li START u c chc nng ging
nhau l khi to mt giao tip.
4.1.1.2nh dng d liu truyn
D liu c truyn trn bus I2C theo tng bit,bit d liu c truyn i
ti mi sn dng ca xung ng h trn dy SCL,qu trnh thay i bit d
liu xy ra khi SCl ang mc thp.
Hnh 1.17.a. Qu trnh truyn 1 bit d liu
Mi byte d liu c truyn c di l 8 bits. S lng byte c
truyn trong mt ln l khng hn ch.Mi byte c truyn i theo sau l mt
bit ACK bo hiu nhn d liu.Bit c trng s cao nht (MSB) s c
truyn i u tin,cc bit s c truyn i ln lt.Sau 8 xung clock trn dy
SCl, 8 bit d liu c truyn i. Lc ny thit b nhn sau khi nhn 8
bit d liu s ko SDA xung mc thp to mt xung ACK ngvi xung clock
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
42/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 41Lp: T1001
th 9 trn dy SDA bo hiu nhn 8 bit. Thit b truyn khi nhn c
bit ACK s tip tc thc hin qu trnh truyn hoc kt thc.
Hnh 1.18.b. D liu truyn trn bus I2C
Hnh 1.18.c. Bit ACK trn bus I2C
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
43/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 42Lp: T1001
Hnh 1.18.d. Lu thut ton qu trnh truyn nhn d liu
Mt byte truyn i c km theo bit ACK l iu kin bt buc, nhm m
bo qu trnh truyn nhn din ra chnh xc.Khi khng nhn c ng a ch
hay khi mun kt thc qu trnh giao tip, thit b nhn s gi mt xung Not-
ACK (SDA mc cao) bo cho thit b ch bit, thit b ch s to xung
STOP kt thc hay lp li mt xung START bt u qu trnh mi.
4.1.1.3nh dng a ch thit b
Mi thit b ngoi vi tham gia vo bus I2C u c mt a ch duy nht,
nhm phn bit gia cc thit b vi nhau. di a ch l 7 -bit, iu c
ngha l trn mt bus I2C ta c th phn bit c ti a 128 thit b.Khi thit b
ch mun giao tip vi thit b ngoi vi no trn bus I2C, n s gi 7 bit a ch
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
44/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 43Lp: T1001
cathit b ra bus ngay sau xung START.Bye u tin c gi s bao gm
7 bit a ch v mt bit th 8 iu khin hng truyn.
Hnh 1.19. Cu trc byte d liu u tin
Mi thit b ngoi vi s c mt a ch ring do nh sn xut ra n
quy nh. a ch c th l c nh hay thay i. Ring bit iu khin hng
s quy nh chiu truyn d liu.Nu bit ny bng 0 c ngha l byte d liutip theo sau s c truyn t ch n t,cn ngc li nu bng 1 th cc
byte theo sau byte u tin s l d liu t con t gi n con ch.Vic thit lp
gi tr cho bit ny do con ch thi hnh,con t s tu theo gi tr m c s
phn hi tng ng n con ch.
4.1.1.4 Truyn d liu trn bus I2C,ch Master- Slave
Vic truyn d liu din ra gia con ch v con t.D liu truync th theo hai hng t ch n t hay ngc li.Hng truyn c quy nh
bi bit th 8 trong byte u tin c truyn i.
Hnh .1.20.a Qu trnh truyn d liu
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
45/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 44Lp: T1001
+ Truyn d liu t ch n t (ghi d liu) :thit b ch khi mun
ghi d liu n con t,qu trnh thc hin l:
- Thit b chto xung START.
- Thit b ch gi a ch cho thit b t m n cn giao tip
cng vi bit =0 ra bus v i xung ACK phn hi t con t.
- Khi nhn c xungACK bo nhn din ng thit b
t, con ch bt u gi d liu n con t theo tng byte mt.Theo sau mi
byte ny u l mt xung ACK.S lng byte truyn l khng hn ch.
- Kt thc qu trnh truyn,con ch sau khi truyn byte cui
to xung STOP bo hiu kt thc.
Hnh 1.20.b Ghi d liu t ch n t
+ Truyn d liu t t n ch (c d liu):thit b ch mun c
d liu t thit b t,qu trnh c thc hin nh sau:
- Khibus ri,thit b ch to xung START,bo hiu bt u giao tip.
- Thit b ch gi a ch thit b t cn giao tip cng vi bit =1 v
i xung ACK t pha thit b t.
- Sau xung ACK u tin,thit b t s gi tng byte ra bus, thit b ch
s nhn d liu v tr v xung ACK.S lng byte khng hn ch.
- Khi mun kt thc qu trnh giao tip thit b ch gi xung Not-ACK v
to cung STOP kt thc.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
46/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 45Lp: T1001
Hnh 1.20.c c d liu t thit b t
+ Qu trnh kt hp ghi v c d liu:gia hai xung START v
STOP, thit b ch c th thc hin vic c hay ghi nhiu ln vi mt hay nhiu
thit b. thc hin vic ,sau qu trnh ghi hay c,thit b ch lp li mt
xung START v li gi li a ch ca thit b t v bt u mt qu trnh mi.
Hnh 1.20.d Qu trnh phi hp c/ghi d liu
Ch giao tip Master- Slave l ch c bn trong mt bus I2C,ton
b bus c qun l bi mt Master duy nht.Trong ch ny khng xy ra
tnh trng xung t bus hay mt ng b xung clock v ch c mt master duy
nht c th to xung clock.
4.1.1.5 Ch Multi-MasterTrn bus I2C c th c nhiu hn 1 Master iu khin bus.Khi bus
I2C s hot ng ch Multi-Master.
4.2 I2C trong vi iu khin PIC
4.2.1 Tng quan chung
Vit Nam PIC 16Fxxxx c s dng v cp nhiu nht l 16F84,
16F628, 16F88, 16F87x. Trong :
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
47/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 46Lp: T1001
- 16F84, 16F628 khng tch hp chun I2C.
- 16F88 tch hp I2C nhng ch h tr ch Slave khng dng c
ch Master.
- 16F87x tch hp I2C cch Master v Slave.
Do nu mun s dng ch Master vi cc PIC 16F84,16F628,
16F88 chng ta phi gy dng bng phn mm.
4.2.2 Truyn v nhn d liu dng I2C
4.2.2.1 Qu trnh truyn mt byte d liu t Master qua Slave
Nguyn tc truyn mt byte d liu gm cc bc c bn sau:- Gi bit start t Master n Salve . i cho n khi truyn xong.
- Gi a ch ca Slave ln ng truyn chn Slave no hot ng ,
i cho n khi truyn xong.
- Gi a ch cn lu d liu ti. i cho n khi truyn xong.
- Gi d liu cn truyn ti Slave . i cho n khi truyn xong.
- Tip tc gi d liu..
- Khi mun kt thc th gi bit Stop ln ng truyn.
4.2.2.2 Qu trnh nhn d liu t Slave
Qu trnh nhn d liu t Slave din ra theo cc bc sau:
-Gi bit Start t Master v Slave. i cho n khi truyn xong.
-Gi a ch ca Slave (bit0 = 0) ln ng truyn.Dng chn Slave
no hot ng. i cho n khi truyn xong.
-Gi a ch ca d liu cn nhn. i cho n khi truyn xong.
-Gi bit Restart. i cho n khi truyn xong.
-Gi a ch Slave ln ng truyn (bit 0 =1 bo rng hotng sp ti
l c ). i cho ti khi truyn xong.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
48/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 47Lp: T1001
-c d liu t Slave. i cho n khi truyn xong.
-Pht bit ACK bo tip tc nhn d liu . i cho n khi truyn xong.
-.
-c d liu t Slave. i cho n khi c xong.
-Pht bit NACK bo rng qu trnh nhn d liu kt thc . i cho
n khi truyn xong.
Pht bit Stop kt thc
4.2.3 Giao tip I2C trong vi iu khin 16F87x
4.2.3.1 Cch s dng I2C ch Master
Trong PIC 16F87x c 3 thanh ghi iu khin qu trnh truyn v
nhn d liu l SSPSTAT ( 94h bank 1 ), SSPCON1 ( 14h bank 0 ),
SSPCON2 ( 91h bank1) . Trong th:
- SSPSTAT:
SSPSTAT: MSSP STATUS REGISTER (I2C mode ) (ADDRESS 94h )
SMP : Chn Speed chun (=1:100 Khz,1 Mhz, =0 :400Khz )
CKE
R/W : Bo rng qu trnh truyn vn ang din ra
BF : Bo rng SSPBUF vnang y (trong c hai trng hp transmit,
receive).
- SSPCON1:
SSPCON1 : MSSP CONTROL REGISTER 1 (I2C mode) ( ADDRESS 14h)
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
49/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 48Lp: T1001
WCOL : bo rng c s xp chng d liu.
SSPEN : enable ch I2C.
SSPM3 : SSPM10 : chn ch vi ch I2C Master
l: 1000.
-SSPCON2:
SSPCON2: MSSP CONTROL REGISTER 2 (I2C) (ADDRESS 91h
mode ).
- ACKSTAT:bit ACK c nhn t slave ( =0,ch dng trong transmit).
- ACKDT, ACKEN: dng pht bit ACK hay NACK t Master (trong
ch Receive ACKDT = 0 l ACK,=1 l NACK)
- RCEN : tn hiu bo hiu qu trnhnhn (ch dng trong Receive, khi
RCEN = 1, Master nhn tn hiu t slave)
- PEN , RSEN , SEN : bit khi to qu trnh truyn stop,restart, start.
iu khin tc baud ca ch , ngi ta dng thanh ghi SSPADD.
I2C lm vic 3 ch chun (tt nhin ch tng i ) :100Kb, 400 Kb,
1Mb.Nu ta dng thch anh 4Mhz v cn s dng tc 100 Kb th ta phi np
gi tr vo thanh ghi SSPADD l 28H vi tc 400Kb ta cn gi tr 0Ah.
Cn lu v nhn gi liu ngi ta dng thanh ghi SSPBUF.
Nh vy c c thy 5 thanh ghi c dng n SSPSTAT, SSPCON1,
SSPCON2 (chn ch v iu khin ng truyn ) , SSPADD (khi to tc
baud) v SSPBUF dng lu tr d liu trong hai qu trnh Recevie v
Tranmister.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
50/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 49Lp: T1001
4.2.3.2. Hm khi to I2C trong pic 16F87x
Cng tng t nh khi dng USTAR,LCD, PWM u tin ta phi khi
to cc gi tr ban u ca chng. Chng ta nn tch ring hm khi to ny
thnh mt chng trnh con.
Vic khito theo cc bc nh sau:
-Chn ch Master mode bng vic SSPM3:SSPM0 = 1000.
-Enable Master mode : SSpen=1.
-Chn baud chun vi 100 Kb th SMP=1.
- Xt tc baud ca ng truyn:vi 100 Kb th SSPDD=28h.4.2.2.3 Qu trnh truyn nhn trong PIC 16F87x
1.Phng thc truyn v nhn d liu trong PIC 16F87x
a. Nhn d liu
bt u nhn d liu tSlave th Master phi xt bit RCEN = 1, cng
tng t nh cc bit Stop,Start, y cng lmt hot ng ,sau khi bit cui
cng c nhn th RCEN s t ng Clear,do bt u qu trnh Read. Tip
theo th ta s phi tip tc SETRCEN (i vi qu trnh c t nht 2 ln tr ln)
tip tc mt hot ng mi,m bo rng qu trnh transmit kt thc v
sn sng cho hot ng Receive. Khi qu trnh truyn kt thc ta gi bit ACK
ti Slave bo cho Slave bit rng Master sn sng nhn d liu tip theo.
b. Qu trnh truyn d liu
Qu trnh truyn d liu ngay sau khi chng ta ghi d liu cn
truyn ln thanh ghi SSPBUF. Qu trnh Transmit bt u (lc bt u ghi d
liu ln SSPUF) khi cc hot ng ca n ktthc.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
51/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 50Lp: T1001
Hnh 1.21. Dng xung ca qutrnh truyn v nhn PIC 16F877A
2. Hm MaitMSSP v cc bit chc nng trong PIC 16F877A
truyn v nhn trong I2C to thnh khi ngi ta dng cc bit Stop,
Start, Restart, ACK,NACK (ng vi PEN,SEN, RSEN, ACKEN, ACKDT).
Qu trnh hot ng cc bit ny kh ging nhau bt u pht i: ta
phi xt bit tng ng trong thanh ghi .V d mun gi bit STOP ta ch cnPEN = 1, tng t vi cc bit kia v khi truyn xong ri thcc bit s t ng
chuyn v 0 (bng Hardware) .
Qu trnh ny ch c tc dng khi I2C hon thnh xong nhim v trc
.Nh vy ta cn bit lc no chng trnh hon thnh xong nhim v y
chnh l vai tr ca c SSPIF trong thanh ghi PIR1.Cng tng t nh cc c
khc , SSPIF bo cho I2C bit l hot ng kt thc bng cch Set t 0 ln 1
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
52/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 51Lp: T1001
v ta phi xo c ny bng phn mm cho cc hot ng tip theo. Do yu cu
ca I2C l: khi hot ng ny kt thc th mi cho php hot ng kia bt u.
C s khc bit mt cht trong bit ACK bit v NACK bit l: ACKEN gi
bit ACK ni chung i,cn ACKDT dng chn bit gi i l ACK ( =0 ), hayNACK ( =1 ).
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
53/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 52Lp: T1001
CHNG 2:THIT KH THNG GIAO TIP I2C GIA 2 PIC
2.1 S khi h thng
Vi nhng l thuyt trnh by trn ta c th thit lp c giao tip
I2C gia 2 PIC. phn ny em trnh by vic thit k h thng giao tip I2C
gia2 PIC. 2 PIC giao tip I2C vi nhau thng qua 2 ng dy l SDA v
SCL. Trn 2 dy u c ni vi in p dng ca ngun cp thng qua mt
in tr ko ln.Mt PIC em s dng cvai tr l PIC ch (Master)v 1 PIC l
t (Slave) . Trong h thng giao tip I2C gia 2 PIC em s dng thm thit b
ngoi vi v kt qu ca trnh thc hin giao tip c hin th trn mn hnh
LCD. 1 PIC s nhn tn hiu t thit b ngoi vi v thc hin qu trnh x l tn
hiu . Sau s thc hin giao tip I2C. Qu trnh x l, hin th thc hin
trn PIC ch hoc t. phn cng ca em lm, em s dng PIC ch (master)
thc hin vic nhn, x l d liu t ngoi vi. Sau kt qu c truyn qua
PIC t v nhn ngc li thng qua giao tip I2C. V hin th kt qu nn LCD.
2.2 S chi tit
PIC HINTHPIC
NGOIVI
NGUNNUI
I2C
Hnh 2.1. S khi h thng giao tip I2C gia 2 PIC
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
54/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 53Lp: T1001
2.2 S chi tit
Hnh 2.2. S mch chi tit giao tip I2C vi 2 PIC
tng minh vic truyn nhn d liu gia hai vi iu khin PIC y
em s dng mch o nhit dng cm bin nhit LM335. Tn hiu in p li
ra ca cm bin c a vo b bin i tng t s ca vi iu khin PIC. C
th a vo hoc ca vi iu khin ch (Master) hoc ca vi iu khin t
(Slave). Trong thit k em a tn hiu vo chn AN0 ca vi iu khin ch. S
mch o nh hnh 2.3 di y.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
55/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 54Lp: T1001
Hnh 2.3. Mch cm bin o nhit dng ly d liu truyn nhn cho giao tip
I2C.
2.3 Thit k cc khi
2.3.1 Khi ngun nui
a.S khi
b. S nguyn l
Hnh 2.5. S chi tit mch ngun.
Ngun n nh cung cp cho h thng l ngun +5V.
Bin p B npAC
DC
Hnh 2.4. S khi ngun nui
bchnhlu
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
56/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 55Lp: T1001
Mch trn ly ngun mt chiu t mt my bin p vi in p t 6V n
12V a vo ng vo. Sau cho qua IC n p 7805 to ng ra OUT +5V n
nh cp cho ton mch. T in ng vai tr n nh v chng nhiu cho ngun.
2.3.2 PIC 26F877A
y em s dng mPIC ng vai tr l Master, mtPIC l Slave, giao
tip vi nhau thng qua giao tip I2C.
S chn chi tit vi iu khin PIC16F877A c cho di y.
Hnh 2.6. S chn chi tit
vi iu khin hot ng ta cn cp ngun cho n, PIC 16F877A c 4
chn cp ngun trong chn 11, 32 ni ngun +5V, chn 12, 31 ni t. Sau khi
cp ngun ta cn cung cp tip xung clock cho hot ng ca vi iu khin. y
ta s dng thch anh lm ngun xung cp cho PIC qua chn 13,14 ca PIC. Tuy
nhin nh ta bit, cc xung dao ng do thch anh to ra cng khng thc s
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
57/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 56Lp: T1001
n nh mt cch tuyt i, v cch khc phc l gn thm cc t lc vo thch
anh. Thch anh s dng y l 20MHz. Vy ta s mc c s mch
nguyn l ca khi ny nh sau:
Hnh 2.7 S mch 16F877A
Chn s 1 MCLR c u ni thm nh trn ng vai tr reset PIC, lm
vic sn xung (mc 1 v 0). Khi SW1 m in p vo chn s 1 l +5V
(mc 1) PIC khng c reset, khi SW1 ng, mch kn, chn s 1 ni t, in
p vo s l 0V (mc 0) l mc kch hot, hot ng ca PIC c reset li.Do giao tip gia 2 PIC l giao tip I2C nn 2 chn 18(SDA) 23 (SCL)
cu 2 PIC c ni vi nhau. Mi dy SDA hay SCL u c ni vi in p
dng ca ngun cp thng qua mt in tr ko ln (full-up resistor).
2.3.3 Khi hinth
Ngy nay, thit b hin thLCD (Liquid Crystal Display) c s dng
trong rt nhiu cc ng dng ca VK. LCD c rt nhiu u im so vi cc
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
58/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 57Lp: T1001
dng hin thkhc nh n c khnng hin thk ta dng, trc quan (ch, s
v k tha), ddng a vo mch ng dng theo nhiu giao thc giao tip
khc nhau, tn rt t ti nguyn h thng v gi thnh r... y em s dng
HD44780 ca Hitachi, mt loi thit bhin thLCD rt thng dng nc ta,cthl sdng LCD_DM 1602A).
Hnh 2.8 S chi tit LCD 16x2
LCD1602 l loi 2 dng, 16 k t, s dng ngun nui thp (t 2,5 n
5V). C th hot ng hai ch 4 bit hoc 8 bit (trong ti ny em s dng
ch 4 bit). Vi u vo 4 bit c ly t 4 chn D4D7 ca LCD ni t
RB2RB5 ca vi iu khin PIC. Chn RW ng vai tr chn ch c ghi
cho LCD, mc logic 0 LCD hot ng ch ghi, ngc li ch c.
Chn RS ca LCD c ni vi chn RB6ca Vi iu khin. ChnE ca LCD
c ni vi chn RB7ca Vi iu khin. Cc tn hiu iu khin cho php hin
th trn LCD c thc hin thng qua lp trnh.
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
59/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 58Lp: T1001
2.3.4 Khi ngoi vi
Nh trnh by trn.
2.4 Lu thut ton
Vi Master
Start
End
KhitoLCD,ADC,I
2C
cADC
Gihm WriteI2C
Gihm ReadI2C
Gic.trnhcon hinth
LCD
Tiptc
No
Yes
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
60/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 59Lp: T1001
Vi Slave
truynliMaster
NhntMaster
KhitoI2C
Delay
Gihm ngti2c_isr ( )
Start
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
61/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 60Lp: T1001
2.5 Thit kchng trnh
Cho Master
#include
#fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,
NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use Delay (Clock=4000000)
#include
#use i2c (master, sda=PIN_C4, scl=PIN_C3, force_hw)
#use fast_io (b)
#use fast_io (c)
void convert_bcd (unsigned int data)
{
int8 d1, d2, d3;
d1=(int8) data/100;d2=(int8) (data/10)%10;
d3=(int8) data%10;
d1=d1+0x30;
d2=d2+0x30;
d3=d3+0x30;lcd_putcmd (line_2+11);
lcd_putchar (d1);
lcd_putcmd (line_2+12);
lcd_putchar (d2);
lcd_putcmd (line_2+13);
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
62/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 61Lp: T1001
lcd_putchar (d3);
lcd_putcmd (line_2+14);
lcd_putchar (" ");
lcd_putcmd (line_2+15);
lcd_putchar ("C");
}
void write_I2C (int8 value, int8 slave_addr)
{
i2c_start ();
i2c_write (slave_addr);
i2c_write (value);
i2c_stop ();
}
int8 read_I2C (int8 slave_addr)
{
int8 value_re;
i2c_start();
i2c_write (slave_addr + 1);
value_re = i2c_read (0);
i2c_stop ();
return value_re;
}
void main ()
{
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
63/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 62Lp: T1001
int8 value;
const int8 slave_addr = 0x10;
set_tris_b (0x00);
set_tris_c (0x80);
set_tris_a (0xff);
lcd_init ();
lcd_putcmd (line_1);
printf (lcd_putchar,"Giao tiep I2C");
lcd_putcmd (line_2);
printf (lcd_putchar,"Value:");
setup_adc_ports (AN0);
setup_adc (ADC_CLOCK_INTERNAL);
set_ADC_channel (0);
read_adc (adc_start_only);
delay_us (10);
while (1)
{
value=(float) read_adc ();
write_I2C (value, slave_addr); // Gui di
delay_ms (50);
value = read_I2C (slave_addr); // Nhan lai
value = (value - 139.23)/0.513;
convert_bcd (value);
delay_ms (10);
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
64/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 63Lp: T1001
output_d (value);
}
}
Cho Slave
#include
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay (Clock=4000000)
#ues i2c (SLAVE,SDA=PIN_C4,SCL=PIN_C3.address=0x10,force_hw)
int8 value = 0x01;
#INT_SSP
Void i2c_isr ( )
{
Int8 state;
state = i2c_isr_state ();
if (state < 0x80)
value = i2c_read ();
if (state == 0x80) {
i2c_write (value);
}
}
void main ( )
{
Enable_int errupts (GLOBAL);
Enable_int erupts (INT_SSP);
set_tris_b (0x00);
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
65/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 64Lp: T1001
hile (1) {
output_b (value) ;
}
}
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
66/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 65Lp: T1001
KT LUN
Sau thi gian nghin cu v lm n, cng vi s gip tn tnh ca
cc thy c gio v cc bn. c bit l thy on Hu Chc em hon thnhnhim v n ca mnh.
Qua n em thy c ng dng quan trng ca vi iu khin .Giao tip
I2C giao tip trongo lng v iu khin, s dng vi iu khin chng ta thu
thp c cc i lng cn o, x l cc i lng v a ra kt qu mong
mun. Hin nay vi iu khin rt a nng, nh gn, do p dng vi iu khin
vo trong cuc sng l rt cn thit.Mc d rt c gng nhng trong qu trnh lm n tt nghip, do s hn
ch v thi gian, ti liu v trnh c hn nn khng trnh khi c thiu st.
Em rt mong c s gp , ch bo ca cc thy c v cc bn gip em nng
cao kin thc, chuyn mn phc v cho cng vic sau ny.
Em xin chn thnh cm n!
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
67/68
TRNG I HC DN LP HI PHNG
Sinh vin: Bi Vn Nguyn 66Lp: T1001
MC LC
LI M U...................................................................................................... 1
CHNG 1. TNG QUAN................................................................................. 2
1. S lc v vi x l v vi iu khin................................................................. 2
2.Tng quan v vi iu khin PIC..................................................................... 7
2.1.PI C lg? ........................................................................................................ 7
2.2 c im ca PIC so vi cc loi vi iu khin khc.................................. 7
2.3 Kin trc ca PIC.......................................................................................... 7
2.4. RISC v CISC............................................................................................... 8
2.5. PIPELINING (x l song song)................................................................... 9
2.6. Cc dng PIC v cch la chn vi iu khin PIC................................. 11
2.7. Ngn ng lp trnh cho PIC...................................................................... 12
2.8. Mch np PIC............................................................................................. 12
3. Tng quan v PIC 16F877A......................................................................... 13
3.1. S khi v bng m t chc nng cc chn ca PIC16F877A............... 13
3.2. T chc b nh............................................................................................. 183.2.1. T chc ca b nh chng trnh............................................................. 19
3.2.2. T chc b nh d liu............................................................................. 19
3.2.3. Cc thanh ghi mc ch chung.................................................................. 19
3.2.4. Cc thanh ghi chc nng c bit............................................................. 21
3.2.5. Cc thanh ghi trng thi............................................................................ 21
3.3. Cc cng ca PIC 16F877A......................................................................... 223.3.1. PORTA v thanh ghi TRISA ................................................................... 22
3.3.2 PORTB v thanh ghi TRISB ...................................................................... 23
3.3.3 PORT C v thanh ghi TRIS C .................................................................... 25
3.3.4. PORT D v thanh ghi TRIS D .................................................................. 28
3.3.5 PORT E v thanh ghi TRIS E .................................................................... 29
3.4 Hot ng ca nh thi................................................................................ 31
-
7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)
68/68
TRNG I HC DN LP HI PHNG
3.4.1 B nh thi TIMER 0............................................................................... 31
3.4.2. B nh thi TIMER1............................................................................... 33
3.4.3. B nh thi TIMER2............................................................................... 34
4. Giao tip I2C.................................................................................................. 364.1.Gii thiu chung v I2C............................................................................... 36
4.1.1 c im giao tip I2C............................................................................. 37
4.2 I2C trong vi iu khin PIC............................................................... 45
4.2.1 Tng quan chung...................................................................................... 45
4.2.2 Truyn v nhn d liu dng I2C........................................................ 46
4.2.3 Giao tip I2C trong vi iu khin 16F87x.............................................. 47
CHNG 2: ...................................................................................................... 52
THIT K H THNG GIAO TIP I2C GIA 2 PIC............................. 52
2.1 S khi h thng..................................................................................... 52
2.2 S chi tit................................................................................................. 52
2.3 Thit k cc khi.......................................................................................... 54
2.3.1 Khi ngun nui....................................................................................... 54
2.3.2 PIC 26F877A............................................................................................. 55
2.3.3 Khi hin th ............................................................................................. 56
2.3.4 Khi ngoi vi............................................................................................. 58
2.4 Lu thut ton........................................................................................ 58
2.5 Thit k chng trnh................................................................................. 60
KT LUN ......................................................................................................... 65