Karyawan
Mikroprosesor
Temu 10:
Komunikasi Serial
ASRIL JARIN
MIKROPROSESOR
Points
Dalam modul ini akan di ahas !eori !en!ang komunikasi serial dan cara pengaplikasiann"a.
1. Teori Dasar 2. Komunikasi Serial 8051 3. Setting Mode Komunikasi 8051 4. Setting untuk menentukan Baudrate 5. Mengirim dan Menerima data Baudrate 6. Menghu ungkan T!D dan "!D dengan Konektor #. Menghu ungkan $rosesor 8051 dengan $%
ASRIL JARIN
MIKROPROSESOR
Komunikasi Serial
1. Teori Dasar
Kom !ikasi Seria"# #Komunikasi serial adalah komunikasi "ang mengan!arkan da!a digi!al secara i! per i! secara ergan!ian melalui media in!er$ace serial%, con!oh: modem, mouse dll &engiriman da!a melalui in!er$ace serial dapa! dilakukan secara senilai dengan 1 !rans$er. Ker $ia! Kom !ikasi Para"e" &enggunaan ka el "ang le ih pendek, se a ke!er a!asan proses !rans$er Mem u!uhkan an"ak ka el penghan!ar i! per second, !ergan!ung i! per i! 'se!iap
sa!u s!ep (ak!u 1 i!) a!au *uga dalam sa!uan baud dimana 1 aud !idak mes!i esaran da!a un!uk se!iap kali clock
Ko!sek e!si %er&a'ap Kom !ikasi Seria" Tinggin"a !ingka! keamanan !erhadap gangguan karena !inggin"a a"unan !egangan 'dengan *angkauan ma+. ,0 -ol!) Sehingga dapa! direalisasikan dengan ka el "ang le ih pan*ang. Mem u!uhkan sediki! ka el penghan!ar 'misalkan dg !iga u!as ka el: T+, .+ dan /round) Mem u!uhkan pen"esuaian pro!okol komunikasi da!a !eru!ama un!uk sinkronisasi an!ara pengirim dan penerima. Per(e'aa! 'ia!%ara Kom !ikasi Seria" &er edaan da!a ra!e '*umlah da!a per (ak!u) Jumlah dan *enis penghan!ar 'min. 1 ka el koa+ial) &enggunaan pro!okol komunikasi
ASRIL JARIN
MIKROPROSESOR
Me%o'e Si!kro!isasi &ro lem u!ama komunikasi serial adalah me!ode sinkronisasi, "akni pengendalian clock pengirim dan penerima . Kedua clok seharusnya (ak!un"a. Tu&uan sinkronisasi adalah menghindari keterlam atan dan kesalahan 'engam ilan data sehingga 'erlu dilakukan 'en(esuaian )lok 'enerima dengan )lok 'engirim. Kom !ikasi Si!kro! Di!andai dg: Clok penerima disetting hanya pada awal komunikasi clok pengirim. Terdapa! dua en!uk realisasi: 1. Men"ediakan 0 penghan!ar ' un!uk da!a "ang dikirim, da!a "ang di!erima dan e+!ernal clok). Dengan data). 1. In!er$ace serial !erdiri han"a sa!u penghan!ar a!au pasangan i! an!uan penghan!ar clok, penerima dapa! mengendalikan proses pengam ilan da!a ' sampling erada pada $rekuensi "ang sama, agar penerima dapa! mengam il da!a !epa! pada
penghan!ar, dimana dia(al pake! da!a dikirimkan i! preamble se agai i! sinkronisasi. 2lok penerima akan mengalami se!!ingan selama preamble er*alan. Kom !ikasi As)!*&ro!e +Ti'ak Si!kro!, Di!andai dg: Dimana sinkronisasi clok pengirim dan penerima terjadi pada awal dari setiap simbol data yang dikirim. .ealisasin"a: se elum i!s da!a !erdapa! sa!u a!au dua s%ar%(i%. S!ar i! ini er*alan dalam
menen!ukan kapan penerima mengam il da!a, dan ini se agian dari periode clok.
Komunikasi As"nchrone mengirimkan da!a secara sim ol per sim ol, dimana disini di!andai acknowledge un!uk se!iap pen"elesaian masing3masing sim ol. 4orma! Da!a Komunikasi As"nchrone !idak s!andard, pada:
PUSAT PENGEMBANGAN BAHAN AJAR-UMB ASRIL JARIN
MIKROPROSESOR
er5ariasi !ergan!ung
1. Genap atau ganjilnya 'arit( (parity menandakan genap atau ganjilnya jumlah dari bit 1 ) . !atu atau dua sto' its Kom !ikasi As)!*&ro!e pa'a RS --.- +mis. 1 sim(o" / 1 B)%e,
/am ar dia!as memperliha!kan en!uk gelom ang komunikasi serial dengan $orma! 0N1, "ai!u 8* it data+ tan'a 'arit(+ 1 sto' it. "ada keadaan idle atau menganggur (idle)# jalur $!% & mark state atau 'ogika ,-.,. "engiriman data diawali dengan start bit yang berlogika 0 atau LO1# berikutnya data dikirimkan bit demi bit mulai dari '!( ('east !igni)icant (it) atau bit ke%*. "engiriman setiap byte diakhiri dengan sto' it yang berlogika HIGH. /am ar ini memperliha!kan kondisi LO1 se!elah sto' it, ini adalah start it "ang menandakan da!a eriku!n"a akan dikirimkan. Jika !idak ada lagi da!a "ang ingin dikirim, maka *alur !ransmisi ini akan di iarkan dalam keadaan HIGH. Ada "ang dise u! 6Break Signal7, "ai!u keadaan LO1 "ang laman"a cukup un!uk mengirimkan 83 i! da!a. Jika pengirim men"e a kan *alur komunikasi dalam keadaan seper!i ini, penerima akan menganggap ini adalah 6 reak signal7 a!au sin"al rusak. Da!a "ang dikirimkan dengan cara seper!i pada gam ar dia!as dise u! 'a%a )a!$ %er(i!$kai +%o (e 2rame', oleh start dan sto' it. Jika s!op i! dalam keadaan 9O:, erar!i !elah !er*adi $raming error. ;iasan"a hal ini !er*adi karena per edaan kecepa!an komunikasi an!ara pengirim dengan penerima. ditandai dengan
ASRIL JARIN
MIKROPROSESOR
UART pa'a 0341 UART: +ni,ersal -synchronous $ecei,er .ransmitter. 4ungsi <A.T mem angun komunikasi aliran da!a digi!al secara serial dalam $rame "ang di!e!apkan. 4rame ini !erdiri dari S%ar% Bi%, , s=d > ;i!s Da%a, optional memiliki bit $arit( yang berperan untuk mendeteksi kesalahan trans)er data , dan S%op Bi%. <A.T *uga merupakan salah sa!u sarana "ang disediakan oleh In!el 80,1, "ang mela"ani pengiriman dan penerimaan da!a dengan an!uan regis!er SBU5. Dengan adan"a <A.T, programer han"a u!uh mem aca da!a dari regis!er S;<4 !anpa harus susah pa"ah menga!ur pengiriman da!a i! demi i! dengan audra!e !er!en!u.
Baudrate / besaran kecepatan komunikasi data untuk setiap kali step (clok) pengiriman. !atuannya adalah baud atau symbol0second
Se elum komunikasi erlangsung, harus dilakukan dulu inisialisasi regis!er3regis!er !er!en!u pada S4. "ang !erkai! dengan komunikasi serial !ermasuk penen!uan audra!e. Saa! proses pengiriman maupun penerimaan da!a sedang kosong dan penuhn"a S;<4 akan di eri!akan melalui in!erupsi. erlangsung, i! indika!or TI dan RI.
&eman!auan TI dan RI dapa! dilakukan dengan a!au !anpa meli a!kan sis!em
ASRIL JARIN
MIKROPROSESOR
Se agai !am ahann"a, !a el dia!as dengan keadaan i!3 i! SM0 dan SM1.
Mo'e kom !ikasi seria" (er'asarka! (i% pa'a SM3 'a! SM1
SM0 0 0 1 1 SM1 0 1 0 1 Serial Mode 0 1 1 0 A+plana!ion 83 i! Shi$! .egis!er 83 i! <A.T >3 i! <A.T >3 i! <A.T ;aud .a!e Oscilla!or = 11 Terkai! dengan Timer 1 Oscilla!or = 01 or = CD Terkai! dengan Timer 1
;i! ke3B sampai i! ke3D pada S2O? merupakan i! kon$igurasi. Seper!i !ampak pada Ta el 10.1, se!!ing i! SM0 dan i! SM1 memungkinkan ki!a memilih 1 dari D mode komunikasi. Mode 0 erar!i komunikasi asinkron dengan kecepa!an !rans$er 1=11 kali $rekuensi osila!or. Jika ki!a menggunakan osila!or 11 M@E, komunikasi dilakukan secara asinkron dengan erar!i kecepa!an erdasarkan !rans$ern"a 1 M aud. Mode 1 adalah mode "ang palign sering dipilih. &ada mode ini, audra!e di!en!ukan se!!ing pada Timer 1. Jika mode 1 ini dipilih, Timer 1 harus dise! pada mode 83 i!
ASRIL JARIN
MIKROPROSESOR
au!oreload. &engisian regis!er T@1 dan i! SMOD pada regis!er &2O? menen!ukan audra!e "ang akan erlaku pada komunikasi serial !ipe ini. Mode 1 dan 0 adalah mode komunikasi serial dengan ingkai a!au $rame erukuran >3 i!. Karena 13 "!e da!a han"a !erdiri dari 83 i!, i! kesem ilan diam il dari i! T;8 a!au .;8 pada regis!er S2O?. ;i! T;8 adalah i! "ang di!am ahkan ke!ika dilakukan !ransmi! a!au pengiriman da!a, sedangkan sedanga menerima a!au recei5e da!a. ;i! SM1 han"a digunakan un!uk komunikasi mul!iprosesor. ;iasan"a, *ika prosesor sedang erperan se agai penerima da!a, saa! S;<4 penuh, i! ke3> "ang di!erima, *ika i! .I akan eru ah men*adi @I/@. Te!api *ika SM1 dise! @I/@, maka peru ahan .I men*adi @I/@ ini ergan!ung pada !idak akan i! ke3> ini @I/@, maka .I *uga iku! erguna pada aplikasi !er!en!u ersangku!an men*adi !uli, !idak ukan men*adi @I/@. Meskipun S;<4 !elah penuh, *ika i! ke3> 9O:, maka i! indika!or .I eru ah men*adi @I/@. @al seper!i ini e erapa prosesor un!uk isa mem ua! prosesor "ang meli a!kan erkomunikasi an!ar mereka. Dengan i! .;8 di!am ahkan ke!ika prosesor
menghiraukan da!angn"a da!a pada S;<4 karena memang da!a !erse u! sama.
un!ukn"a !e!api un!uk prosesor lainn"a "ang ada pada *alur komunikasi serial "ang
;i! .A? a!au .ecei5e Ana le dise! *ika ki!a ingin komunikasi erlangsung 1 arah, prosesor *uga dapa! menerima da!a selain dapa! mengirim da!a melalui saluran serial. Jika i! ini dise! 9O:, maka prosesor men*adi !uli, sama sekali !idak dapa! menerima da!a. Ampa! i! 9S; pada regis!er S2O? merupakan i!3 i! operasional. ;i! T;8 dan i! .;8 !erkai! dengan komunikasi serial mode 1 dan 0 seper!i !elah di*elaskan se elumn"a. Sedangkan i! .I dan TI merupakan i! indika!or "ang men"a!akan S;<4 !elah dalam keadaan penuh a!au kosong. Jika prosesor mengirim da!a, da!a !s cukup dile!akkan di regis!er S;<4, pengiriman i! demi i! dilakukan oleh in!ernal <SA.T. Saa! S;<4 kosong karena semua i! !elah dikirimkan ke saluran serial T+D, maka i! indika!or TI '!ransmi! in!errup!) akan eru ah men*adi @I/@. Sedangkan i! indika!or .I eker*a se alikn"a. Ke!ika prosesor sedang menerima da!a i! demi i! dari saluran serial .+D, i! indika!or .I 'recei5e in!errup!) akan eru ah men*adi @I/@ saa! S;<4 !elah dipenuhi 83 i! da!a.
ASRIL JARIN
MIKROPROSESOR
&erlu dica!a! ah(a se enarn"a i! TI dise! @I/@ pada per!engahan pengiriman s!op i!, sedangkan i! .I dise! pada per!engahan penerimaan s!op i!. <n!uk komunikasi dengan s!andard .S3D8, programmer !idak s!op i! se!elah .I a!au TI oleh melakukan disa le saluran komunikasi !erlalu cepa!, ia harus menunggu paling !idak selama se!engah periode eru ah men*adi @I/@, *ika !idak, maka akan !er*adi !ransmission error.
kris!al 11.0,>1 MhF, audra!e un!uk mode 0 adalah >11C00 aud. <n!uk mode 1, disediakan 1 pilihan audra!e, "ai!u
1 1 a!au kali $rekuensi kris!al, 32 64
ergan!ung
pada kondisi i! SMOD pada regis!er &2O?. Jika SMOD dise! @I/@, maka audra!e sama dengan
1 kali $rekuensi kris!al. Jika $rekuensi kris!al 11.0,>1 MhF dan 32
SMOD dise! 9O:, maka audra!e un!uk mode 1 adalah 1B1800 aud. <n!uk mode 1 dan 0, penen!uan audra!e harus meli a!kan Timer 1. Timer 1 harus digunakan dengan mode 83 i! au!oreload dan pengisian T@1 harus disesuaikan dengan audra!e "ang diinginkan. .umus un!uk menen!ukan isi T@1 !erkai! dengan udra!e "ang diinginkan adalah se agai eriku!.
TH 1 = 256 TH 1 = 256 f XTAL , *ika i! SMOD pada regis!er &2O? dise! 9O:. 384.BAUD f XTAL , *ika i! SMOD G @I/@. 192.BAUD
Misaln"a, *ika ki!a menggunakan kris!al 11.0,>1 MhF, un!uk memperoleh audra!e 1>100 aud, T@1 harus diisi dengan angka eriku! ini, TH1 = 256 - ((f / 384) / Baud) TH1 = 256 - ((11059200 / 384) / 19200)
PUSAT PENGEMBANGAN BAHAN AJAR-UMB ASRIL JARIN
MIKROPROSESOR
TH1 = 256 - ((28,799) / 19200) TH1 = 256 - 1.5 = 254.5 Te!api karena T@1 harus diisi dengan ilangan in!eger, maka ki!a harus memilih
pem ula!an dari 1,D., men*adi 1,D a!au 1,,. Jika ki!a pilih T@1 G 1,D, maka audra!e "ang akan ki!a peroleh adalah 1DD00 aud, sedangkan *ika ki!a pilih T@1 G 1,,, maka audra!en"a men*adi 18800 aud. Ten!u sa*a ini men"uli!kan ki!a. <n!uk menga!asin"a, ki!a dapa! meman$aa!kan i! SMOD pada regis!er &2O?. Jika SMOD dise! @I/@, maka perhi!ungan T@1 men*adi seper!i eriku! ini, TH1 = 256 - ((f / 192) / Baud) TH1 = 256 - ((11059200 / 192) / 19200) TH1 = 256 - ((57699) / 19200) TH1 = 256 - 3 = 253 Karena "ang diperoleh adalah ilangan in!eger, "ai!u 1,0, maka audra!e "ang ki!a peroleh akan sama dengan 1>100 aud. Secara ringkas, un!uk memperoleh langkah3langkah eriku! ini, 1. "ilih komunikasi serial mode 1 atau &. . "ilih mode atau 1%bit autoreload untuk .imer 1. audra!e 1>100 aud, ki!a harus melakukan
&. 2si register .31 dengan bilangan 4&. 5. !et bit !67D pada register "C78 menjadi 32G3.
10
DS DS
10 1
'SEG ORG 0H #(M) S* R* ORG 30H S* R*: MO+ S'O,-.01010000B MO+ *MOD-.00100001B MO+ )'O,-.10000000B MO+ *H1-./53 MO+ *#1-./53 SE*B *R1 MO+ R1-.buffer MO+ #$$p-.0 1!an%: '#R *2 MO+ SB13-4R1 (,B *2-$ 2,' R1 D(,6 #$$p-u!an% E,D
Jika ki!a ingin mengam il 83 "!e da!a dari saluran serial .+D kemudian mele!akkann"a di .AM mulai alama! 00@, maka po!ongan programn"a se agai eriku!,
$MOD51 DSEG ORG 30H Buffer: #$$p:
DS DS
10 1
'SEG ORG 0H #(M) S* R* ORG 30H S* R*: MO+ S'O,-.01010000B MO+ *MOD-.00100001B MO+ )'O,-.10000000B MO+ *H1-./53 MO+ *#1-./53 SE*B *R1 MO+ R1-.buffer MO+ #$$p-.0 1!an%: (,B R2-$ MO+ 4R1-SB13
MIKROPROSESOR
ASRIL JARIN
MIKROPROSESOR
12
/am ar ,.1. memperliha!kan con!oh sam ungan prosesor AT8>210,1 dengan konek!or D;>. Karena prosesor !erhu ung *uga dengan dri5er s!epper mo!or, maka dapa! di ua! program un!uk memungkinkan pengendalian s!epper !erse u! melalui saluran serial. In$ormasi dapa! handphone. erasal dari &2 maupun ala! lainn"a seper!i
/am ar ,.1. 2on!oh sam ungan an!ara D;> dengan prosesor AT8>210,1.
ASRIL JARIN
MIKROPROSESOR
13
/am ar C.1. &enen!uan konek!or D;> 'kiri) dan audra!e 'kanan) <n!uk menerima da!a dari &2, prosesor In!el 80,1 harus diisi dengan program penerimaan da!a dari &2 seper!i !ampak pada lis!ing eriku! ini,
ASRIL JARIN
MIKROPROSESOR
14
SER2 #8OM:
'#R E*1 S'O,-.;0H MO+ *MOD-.0010000B MO+ *#1-.03DH MO+ *H1-.03DH MO+ )'O,-.00H SE*B *R1 SE*B ES SE*B E MO+ -.<1< '#R *2 MO+ SB13S(M) $ '#R *2
;5$de
SER2 #8OM:
ASRIL JARIN
MIKROPROSESOR
15
Ins!ruc!io Re$is%er In!erpre! Ins!ruksi ;us &2 2lock ALU In!erna U!i% ;us '&rogram Kon!rol Alama! Loka" Da!a er n Ari!me!ik 2oun!er) Pe!$o Pe!$e In!er$a l ;us Decoder Kon!rol 9ogic perasi !'a"ia ce dan <ni!
Date 3-Jun-08, Semester 6 Progr.Karyawan MO+ SB13'(,E MO+ S(M) 2,' RE*2 E,D
a! !
)#1S: E>2*:
&A?A.IMAA? DA? &A?/I.IMA? DATA. Program i i m!mu g"i "a #ro$!$or % &!' 8051 m! !rima da&a dari P(, "!mudia 'a g$u g m! g!m)a'i"a *a "! P(.
$MOD51 ORG #(M) ORG #(M) S* R*: MO+ 000H S* R* 0/3H SER2 #8OM
SER2 #8OM:
'#R E*1 S'O,-.50H MO+ *MOD-.0010000B MO+ *#1-.03DH MO+ *H1-.03DH MO+ )'O,-.00H SE*B *R1 SE*B ES SE*B E S(M) $ '#R R2 MO+ -SB13 '#R *2 MO+ SB13(,B *2-$ '#R *2 RE*2
E,D
ASRIL JARIN
MIKROPROSESOR
16