3.5 Kết quả mô phỏng
3.5.3 Tiếp tục trao đối dữ liệu sau khi phát lệnh Stop
Ith ức ronitraller4IFlà5TERjlreset_x lth_iZr_rantraller4IF1A5TERjrll:
Jth i2, rarttrallzrIMia5TERlfs ltb_lzc_coantraller4/a5TERjaũ 4. Íth iớc rortrnllerjllA5STERlrd_x
lìnế vn (x1 )010) 510314), aed Ith_ùzr_rnntrdllsr4IF1a5TER|iack.
cro se Te Race vs) Ith_l2r_rnrtrnleraA5TER|srli
Ith_ i2c_rantraller4Iia5TER|sdai | |
eee ee Gar c3 dJhịc vn "HEINE ORDER NENP: (š-.-: 0E RS a Jth_i2r_contrnller4/hlA5TER|stla .LLTTLULHIITITLIIIL TLHETLLITTLHLILTLTHU
“ở [tb i2c_controler4/MASTER/sdao I | rr) |
W h õ n7 00102. 0a6. es ol | Oe ee |) a |
‡th _c_rontroaler4/F1A5TERj/cpu_ data sn ứ - th_ớc_rontraler3jlla5TERJier_sdan_ari
Nhi di nấy (vi) FR ad
[th_izc_rnntrdller+i*a5TERlYeset_ x kh. i%c -cantreller4/RtA5TER-Ƒclk- Ƒth iZc cantrrllEr+i*1A5TERƒcs_ x jth i#c- cantrnller+/155TERaủ jth ic cantroller4itÄ5TER[rd >
an Birzsiinsixia1s| ee area ad Bc ae fio ee ll
fete an eae oe) le Ta ||
Tth_i2c_cantrnller+jfriA5TERjsrli
Ais wide Peet oe) get ee dn pe od et : |
Ƒh_izr_rnntrnllEr4?*iA5TER[rlatan E1 ễ ele
kh_izc_cantroller+ja5TERjJscln LULL LALLA LAL
IS an a0 c1 Đa Sk = | pa ee ee) 95:18) a
Aine Ml eam eta glace] =e ae a ed gp |
tth_izc_canEreller-+/P0ASTERcpu_ data_zn ao th_Izc_cnntroller+iPl5ọ5TER.[Izc_silan_ ri jth_izc_rantrnller+IrlA5TERLJizr_srln_en ra
4 a +
ca
4.
na '_
ai 4
| + 4 cối a + é
a
ốc. `... s‹é ans
Hình 3.29 Chủ tiếp tục phát địa chỉ + truyền dit ligu va lénh Stop
kb_ic_cantroller45LAWEjreset — >x ftb_i2c_controller4/SLAaVE/clk jtb_lzc cantrollar4‡5LAWEjrsx ftb_i2c_controller4/SLAVE/a0 ftb_i2e_controller4{SLAVEjrd_sx ftb_iZc_controller4/5LAVEfwr _x
jtb_i2c_cantroller45LawEjiack. ——— <
Fico cements Ste NaS oa eter] CDE ee eee 0 ik el a ee POY ae eee! Cr
ltb._ lốc _controller4/SLAEjscl ImnilnnninnnIiifanfnnnj1nnaninnfninmfmninmmimi
ftb_i2c_controller4{SLAVE/sdai |
ftb_iZc_controller4/5LAVEfdatao
ftb_i@c_controller4/SLAYE/CPU_INTERFACE/read data ftb_i2c_controller4/SLAVE/sclo
Fino pe aoe selel gel =e ie Dy oe ts Ts ftb_i2c_controller4/SLAVEsirg ftb_iZc_controller4/5LAVE/cou_data_en_o ftb_i2c_controller4/SLaVvEfize sdaa_en ftb_i2c_controller4/SLAVEsi2c_sclo_en
u + diéu kién Stop + Start
= = = ai to — — S = =
.^› 5 & ale > E ^ .‹œ› 5 DP = > + + & ome >> © = my + = =
.ằ› = a Se = .‹-œ› o>ằ
(je Peco lege (le ee a a td es imc Pee erie ey =) 0 02s.
eee is Na coats lege) ie ase NN od
~ feb j2c_controller4/5LAVEfad Flue XE le) C3] td | {th_izr_ rùrtrnllet en og) oN ed feb _j2c_controller4/SLAVEsiack
|Eh_i2c_contraller4/SLavEjcstai ee Eh aS ae: RRS 2 ee Se ee
jtb,_i2c_contraller 4/SLAVEJscl HLTL TITTTT[TLTLTTITTETLTRIẪắTITiTLL |
{tb i2c_ controller 4/SLAVE/sdai
* ftb_i2c_controller 4/S5LAVE/datao
® itbiec_controller4/SLAVE/CPU INTERFACE /read data Siena eee) Tg) Le] de
feb i2c_controller 4/SLAVEfsdao hele bois logs) Celt ed eh tkb i2c_controller4/SLAVEfcpu data _en_o lth_izr_rontrallet 4lSLaVEJi2r—sdan_an 4. jth izc coartraller4/5LAUEjiZcscln em
Hình 3.31 Tớ nhận tiếp địa chỉ + nhận dữ liệu + điều kiện Sfop
e Hinh 3.28, 3.29: Chu phat lénh Start, byte dia chỉ 8°h2a, khi có xác nhận địa chỉ
trùng khớp từ con tớ thì sẽ tiến hành truyền các byte 8?hb9 và 8'h03 (hình 3.28).
Sau đó con chủ phát lệnh Stop và thực hiện một trao đổi mới bằng cách phát một lệnh Start, byte địa chỉ và truyền byte dữ liệu 8*h5ó6 ( hình 3.29).
e© Hình 3.30 và 3.31 thể hiện việc nhận địa chỉ, xác nhận địa chỉ,nhận dữ liệu ở con tớ tương ứng. Hình 3.30: Con tớ nhận các byte dữ liệu §ˆhb9,8§°*h03. Hình 3.31: Con tớ
nhận byte dữ liệu §*h56. Dữ liệu nhận được đọc khi tín hiệu read_ data=1.
67
Vi hs ni 200 adm | dae (ola eis gies tetas tar ale aa +#-Jth i2r rontrnller4/FlÄ5TEREƒai LH ii nao... 07...
ki (ala awe ts] pies o0...
+ jth izc controllar‡jla5TERjia:k.
Sa 0222... s00).
La is o0. o-.s.|
bà i62...) .7/:.)....-, ee j1L_I1
Se ee ore oe te ts
+ jth izc_cantroller4/tlA5TERƑCPRLI TRHTERFACEjrearl_clata te a CS one EE tae eee eee eae gee ae ee eee IifinnniiniiniRnnininniiiiniinliniifiniiiniiiiififniifiiiiiiiiiiilifiiiiiiiliit0itli MIN py
ftb_i@c_controller4/MASTERsdao pee COMMS oy SEE egy £2 | es ee
4 feb_i@c_controller4/MaSTERfirg_x rT) &|w T 4%
4L Jth_i2c_ cantroller4JIIa5TERJcpu_ data_en_-o .ÔÔÔốỐ " — —=_._ ốp n5
*# Jth_iZr_rantrnller‡/tlA5TERI2- sdan ẽn
4 jth izr rnntrnller‡/PlA5TERji2-srln_en |) TI
Hình 3.32 Chủ phát Start + địa chi + truyén dit ligu + Stop + Start + dia chi +
nhận dữ liệu
4 Ith izc cantrnllar4l5LAWEJlfaset x
D02... /.-2-.
+ lth_jức_cantrallsr4SLAWEjCs_x + Ith_j2r-_rantraller+/5LAVE/an + Jth i2c cantrollsr4/5LAWE#rd_x VN nano. 00.2..0.
+ _/th i2c controllar4j5LAVEJllack Số is sn 07.02.
meen ốc... | [ITILTLLILTHUHUU
+4 _Jth_iZc_cantrallstr4JSLAME/sdai (oe (ice Se Fe et | ei
4ˆ Jtb_i2c_controllsr4J5LAWEjdatao ủủn——|—lffi —|———E——————TfEẪ—————T]YIWf———T—Tm—]
+ _Jth_i2c cantroller4/5LAVEJCPLI TMTEEFACEjread_da+a | i
* tb i2c_controller4/SLAVvE/sclo Boge ii ni. 00/2...
+ /th_izc_cuntrnllsr+/5LAVEJirq_x 4 ftb_i2c_controller4/SLAVE/cpu_data_en_o +4 Jth_ic_rantrnller4Ƒ5LAWEji2r_-sdan_=n:
“ở ith_iec_cantrollEr4/SLAWEjiZc_sclo_en
Hình 3.33 Tớ nhận điều kiện Start + địa chỉ + nhận dữ liệu + điều kiện Stop + điều kién Start + dia chi + truyền dữ liệu
e Hinh 3.32: Chu phat lệnh Start, byte dia chi 8’h68, khi cé xac nhan địa chỉ trùng khớp từ con tớ thì chủ truyền các byte đữ liệu 8°h85 và 8”h09. Sau đó thì con chủ phát lệnh Stop để kết thúc. Để tiếp tục trao đối dữ liệu, con chủ phat lén Start va byte dia chi 8’h69, khi có xác nhận địa chỉ trùng khớp từ con tớ thì chủ nhận byte dữ liệu 8°h22 từ con tớ. Dữ liệu nhận được đọc từ thanh ghi S0d khi tin higu read_data=1.
e Hình 3.33: Con tớ nhận byte địa chỉ, xác nhận địa chỉ nhận các byte dữ liệu 8’h85 va 8’h09, truyén byte dt ligu 8’°h22 tuong ung. D7 li€u nhan dugc doc tt thanh ghi SOd khi tin higu read_data=1.
68
E_CŨ b a a j2c Sì SP c si
"Na... ees | |
jth_lzc_cnnitrnller4J25TEE.ad An
-_Jth_i2r_ rnntrnllar4jMA5TERjrd_x |
“ ítb_jzc controller4/MA5TERjJur_x | ff pt | iy ng == }
ằ tb i2Â_controllerd MASTER siack, Ea mó |
25:20 ss1n s02) 01l0/25312 510051 = | a | S|; [| a 21
Ataf vege) tay ar sad gaa an mat kh.
ƒtb _i2c_controller4/MA5TEF/sdai | i L__l 1 ủịsbÍE—————N
NT... a0... a =n=—=— ——. —=.
-_#tb_i2c, coantraller4jMlA5TERJCPLI THTEEFRCEjread_ data |
& jrb (Z7 controller34jJPla5TERjsrln
ằ feb i2c_controller4 MASTER /sdao
ằ ftb_i2c_controller4 MASTER sing x Fis ee el glade |= tr sa le Cal el =|
gee oom oe) ales) | =a sah dS Pc = ftb_j2c_controller+/MaASTER/i2c_sclo_en
Hinh 3.34 Chi phat Start + dia chi + nhén dir ligu + Stop + Start + dia chi + truyền
dữ liệu
{tb_i@c_controller4/SLAVE/reset_x
{tb_i2c_controller4/SLAVE/clk, Soe Lt oie eeetocs) pte gel =r fh old
{tb_i2c_controller4/SLAVE/a0 pecan a oon) gg) Ce be
Ji: eee gage) =e Be a 88. HE=<:E l |
jtb_izc_ rartrnllar4j5LAVEJiack, |
th. lzc_contrcller4/5LAVE[datai AT. ——=—-:.——ơ.
Jtb_iac_rortrrller4j5LAVEjsrli IiiinnTinnmniiinfnTniininfgininiT0IniiiniMiiiniinnniftIiiifiTiEiiniinntnifTinT meee Poe seer) St aa i BS are mn cna a ACRE 6 ous TE |
}> jth_i2r_cantrnller4j5LAVEJsras |
j‡b_lóc_controller4j5LAVEJdatao a Sc a | mini man nan:
#4 Jth izc_cantrollar4j5LAVEJCPLI TNTERFRCEjraad_ data |
Bes wien ma a ge Q6. 2.n.
Amd Potomac] ge Cos eA eh 51]0y5 Bế 3 {kb_i2e_controller4/SLAVE/cpu_daka_en_o See ne Gee a ee „xi {tb_iZc_controller4/SLAVE/izc_sclo_en
Hình 3.35 Tớ nhận điều kiện Start + dia chi+ truyén dit liéu + diéu kién Stop +
diéu kién Start + dia chi+ nhan dit liéu
e Hình 3.34: Chủ phát lệnh Start,byte địa chỉ 8’h69, khi cé xac nhan dia chi trùng khớp từ con tớ thì chủ nhận các byte dữ liệu 8’h85 va 8’h09. Sau do thi con chu phat lénh Stop để kết thúc. Để tiếp tục trao đối dữ liệu, con chủ phát lén Start và byte dia chi 8’h68, khi có xác nhận địa chỉ trùng khớp từ con tớ thì chủ truyền byte dữ liệu §*h27. Dữ liệu nhận được đọc từ thanh phi S0d khi tín hiệu read_data=1.
e Hình 3.35: Con tớ nhận byte địa chỉ, xác nhận địa chỉ, truyền các byte dữ liệu
§°h85 và 8°h09, nhận byte dữ liệu §*h27 tương ứng. Dữ liệu nhận được đọc từ thanh ghi S0d khi tín hiệu read_ data=l.
69
> ee IF2dfssìx 105) T0.110)5521455418)15
# th i2r _rnntrrller4JRlA5TERjrs_x {
Pee eee eee cater ) I ee eee cos we |
Same tri eee adel =i sr ala ga ee ———— Tp — +? ủ —
4 jth i2c_controller4 MASTER Wr x |
ame tole eased page) la: 8) en tsa Feta |
sola (sega Fg oe Se TINH an HN: ( Te | a | T=
ome rial eee celle Tg eae re ' a Sg Oe ey ee ee ee |
Se ee eee nga |e Gt ieee . LA LUE LH mu
| ith_i2c_controller4/MASTER,/datao en Sn i
<> ith 2c controller4/MASTER/CPU INTERFACE/read data |
4 _ jtbh_l2c_controller4jMaSTERjscln LULL TA Ty
* fth_i2c_controller4/MASTER/sdao Ln ey
See ramen neal ste Se a Bd Se ee | cee ee | (jee =
See eo a Foose] sige | 00.02). 10... 0 j6. nr a TT
# !th izc cantroller4/RIA5TER/JiZc sdaa en ¡mm | | a ae
4 th i2c cantroller4/IXSTER/Ji2c [ot
Hình 3.36 Chủ phát Start + địa chỉ + nhận dữ liệu + Stop +Start + địa chỉ +
nhận dữ liệu
# jtb_i2c_controller4/SLAVE/reset_sx Same eal Fe a) gage Tae ol a oA See 0 Flee a) peda) <1 ch] eo 4 itb_iZc_controller4/SLAVE/ad 4. jth i2c cantrallar4/5LAVEjrd_x Ese so Poles) glee | =a: pol eR =a 06.
4 ith i2c_controller4/SLAVEsiack |
"sẽ TS. ery ane ES
“22... a2. IIITTTTT ĂIITRITITTTITITTTTETTTHTTTITTTTTTTTETTTITTTTTTTTTTTITTETTTTTT, Tn lói ẽ OER int
# tb _i2@c_controller4/SLAVE/sdai ene lai is if Soe | a ie
Cae eee ee ey eee va Peco eo eo eo eo fea
# itb_i2c_controller4/SLAVE/sclo 1 Ss == eS ES
4 jth i2c_controller4/SLAVE/sdao cert ee ee: | [Se ee td i) ees be Cae nao... 4-0. Sa | | a | | | ee
# ito _i2c_controller4/SLAVE/cpu_data_en_o 4 jth i?c rnntrnller‡/5LAVEji2r_slan_zn
# tb_i2c_controller4/SLAVE/i2c_sclo_en
Hình 3.37 Tớ nhận điều kiện Start + byte địa chỉ + truyền dữ liệu + điều kiện Stop + điều kiện Star + địa chỉ + truyền dữ liệu
e Hinh 3.36: Chu phat lệnh Start, byte địa chỉ 8’h69, khi có xác nhận địa chỉ trùng khớp từ con tớ thì chủ nhận các byte dữ liệu §*hdó6 và 8°hbc. Sau đó thì con chủ phát lệnh Stop để kết thúc. Để tiếp tục trao đổi dữ liệu, con chủ phát lén Start va byte dia chi 8’h69, khi có xác nhận địa chỉ trùng khớp từ con tớ thì chủ truyền bytc dữ liệu §*h19 và 8°h09. Dữ liệu nhận được đọc từ thanh ghi S0d khi tín hiệu read_ data=].
e Hình 3.37: Con tớ nhận byte địa chỉ, xác nhận địa chỉ, truyền các byte dữ liệu
8’hd6 và 8°hbc, truyền tiếp các byte dữ liệu 8 h19 và 8h09. Dữ liệu nhận được
đọc từ thanh ghi S0d khi tín hiệu read_ data=1.
70
3.5.3 Restart khi dang trao doi dữ liệu:
jJth_lzc_cantraller+/Ja5TEE.lreeet _ x {tb_i2c_controller¢/MaASTERJ clk SURO Sa TACO ee sat al Adc cee ge) oes) See {tb_i2c_controller¢/MASTER jrd_x l1: 2s ny xi3) S401) 214211), s3êni jth_i2c_cantrallsr+j1a5TER/Jiack.
ftb_i2c_controller4/MASTER/datai jth_izc_cantraller4+/la5TERscli /th_i2c-cantraller4j/E1A5TERjsdai {tb_i2c_controller4/MASTER /datao {tb_i2e_controller4 /MASTERJsclo {tb_i2c_controller¢/MASTER/sdaa +#- ¡th _j2r_rnrtrnller‡/RlA5TERjirq_x
#jth izr rnrtrnller+/Ela5TERjrpnu_ dat3a zn nủ + Jth izc cantroller4jFla5TERiiZc_sdao_en + _Jth_izc_cantrnller4/I55TERjiZc_ sclo_en
Hình 3.38 Chú phát Start + địa chỉ + truyền dữ liệu + Restart + địa chỉ +
truyền dữ liệu
e Hình 3.38: Con chủ phát lệnh Start, byte địa chỉ §°hó8, khi có xác nhận địa chỉ trùng khớp từ con tớ thì tiễn hành truyền byte dữ liệu 8h85. Sau đó con chủ phát lai lénh Start (Restart) va tiếp tục truyền dữ liệu khi có một con tớ xác nhận địa chỉ trùng khớp.
jtb_izc_cantrdller4/P1a5TERjreset_ x jth_i2c_cnntrnllsr4/P1A5TER,rlk.
ftb_i2c_controller4/MaAsTERcs_>
cee Exum dew Te sol a PRT ftb_i2c_controller4/MaAsTERIrd_x Goee eM eet tel aiden eed ka ead e aed lì 3z: eur wasn es soe eM eae age | Te gh ache a aT]
fa epee ele) =P ad or ) Sida Me Eamets aides) ale ka toed a ts [=]
00 060002510533. 0() Saad ate =|]
+4 jth izc controllar4jPJA5TERJCPLI IMTERFRCEjread_ data 4 Jth i2c_cantroller4/lA5TERjscla
> {tb_i2c_controller4/MASTER/sdao Simo ome late) Teka Saal Se
La nao 2o. a0. 0n -
#4 jth_i2c_controller4/FlA5STERjizc_sdaoa_en
% _lth i2c cũntrnllsr4ihjA5TERiiZc srlo zn
Hình 3.39 Chủ phát Restart + nhận dữ liệu
e _ Hình 3.39: Khi đang trao đôi dữ liệu (truyền đữ liệu chẳng hạn) thì con chủ phát
lện Restart, phat byte dia chi 8’h69, nếu có con tớ xác nhận địa chỉ trùng khớp
thì tiến hành nhận dữ liệu.
71
% Ith lóc cantrnller4l5LAVEjfeset_x
Lan c2.
Bg mete eet a eae VN u41 + Jth 2c rantrollEr4j5LAWEjrd_x VN 2a 0-6703 06.
Lan 0.2... mm. es |
Seen Cee re Se ae ee SS ee
NH3... II ù IunniltInn ntlnnnnnl LLU La
4 _jth_i2r_contrdllst4J5LAVEJsdai 1 | eS sik
NT. ee po | {oo | je | | te | tm
ý Jth_ i#c_rantrnller4/5LAWEICPLI TMTERFACEjread_ 4a |
4 _jth_íếc_rantrllsr+}5LAMEjsrln {tb_ize_controller4/SLAYE/sdao Láng 0172/2005 6:
’ {tb_i2c_controller4/SLAVE/cpu data en_o
tee ps cae Eee
Hình 3.40 Tớ nhận diéu kién Start + dia chi+ nhén div ligu + Restart + dia chi+
nhận dữ liệu
e Hình 3.40: Con tớ nhận điều kién Start, dia chi 8’h68, so sénh và xác nhận địa
chỉ trùng khớp. Sau đó khi phát hiện điều kiện Restart nó lại quay lại nhận byte địa chỉ 8°h68, so sánh, nếu địa chỉ trùng khớp thì tiếp tục nhận dữ liệu.
+ /th izc cantrallar4/5LAWEjraset x + jth_l2c_controller4/5LAVE/rlk + _jtb_i2c_cantrallar4/5LAVWEjcs_x 4 tth iZc_controller4/SLAVEfa0 Somme (ool Fos) plete) mig ot a
Loa. =i 2.0.
LG sẽ ca c5.
4 jth i2c_controller4/SLAVE/datai id a NG
4 ith _i2c_controller4/SLAVE/scli
xử ith_i2c_rontrollar4j5LAEjsdai a
a ee oe Te
+ jth i2c_controllers/SLAVE/CPUINTERFACE/read data | LG ftb_iéc_controller4/SLave/sclo
+# jth_i2r_rantrnller4/5LAWEjsdan
i
eee
* jtb_iZc_controller4/SLAVEfirg_x ŸNI 1 TK. BH ee |
+ jth i2c cantrallar4/5LAVElrpu data en a
+ íth izc_cantrallar4/SLAWEji2c_sdan_en =
hố cố. na... |
Hình 3.41 Tớ nhận điều kiện Restart + địa chỉ + truyền dữ liệu
e Hình 3.41: Con tớ khi đang trao đôi đữ liệu (nhận dữ kiệu chăng hạn) thì phát hiện điều kiện Restart thì quay lại nhận byte địa chỉ 8ˆhó9, so sánh địa chỉ, nếu
địa chỉ trùng khớp thì tiễn hành truyền đữ liệu.
72