Chapter II 2

download Chapter II 2

If you can't read please download the document

description

education

Transcript of Chapter II 2

BAB IIDASAR TEORI2.1 Mikrokontroler ATMEGA16Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih (chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa bandar masukan maupun keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi.Salah satu mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnyaSeperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit(ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta komponen kendali lainnya. Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam serpih yang sama dengen prosesornya (in chip).5Universitas Sumatera Utara62.1.1. Arsitektur ATMEGA16Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent).Secara garis besar mikrokontroler ATMega16 terdiri dari :Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D. CPU yang terdiri dari 32 buah register. User interupsi internal dan eksternal Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial Fitur Peripheral Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture Real time counter dengan osilator tersendiri Empat kanal PWM dan Antarmuka komparator analog 8 kanal, 10 bit ADC Byte-oriented Two-wire Serial Interface Watchdog timer dengan osilator internal Universitas Sumatera Utara7Gambar 2.1 Blok diagram ATMega162.1.2. KONFIGURASI PENA (PIN) ATMEGA16Konfigurasi pena (pin) mikrokontroler Atmega16 dengan kemasan 40-pena dapat dilihat pada Gambar 2.2. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 pena untuk masing-masing bandar A (Port A), bandar B (Port B), bandar C (Port C), dan bandar D (Port D).Universitas Sumatera Utara8Gambar 2.2 Pena-Pena Atmega162.1.3. DESKRIPSI MIKROKONTROLER ATMEGA16VCC (Power Supply) dan GND(Ground) Bandar A (PA7..PA0) Bandar A berfungsi sebagai input analog pada konverter A/D. Bandar A juga sebagai suatu bandar I/O 8-bit dua arah, jika A/D konverter tidak digunakan. Pena - pena Bandar dapat menyediakan resistor internal pull-up (yang dipilih untuk masing-masing bit). Bandar A output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika pena PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah, penapena akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan. Pena Bandar A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.Universitas Sumatera Utara9Bandar B (PB7..PB0) Bandar B adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Bandar B output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pena Bandar B yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pena Bandar B adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.Bandar C (PC7..PC0) Bandar C adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Bandar C output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pena bandar C yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pena bandar C adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.Bandar D (PD7..PD0) Bandar D adalah suatu bandar I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Bandar D output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pena bandar D yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pena Bandar D adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.RESET (Reset input) XTAL1 (Input Oscillator) Universitas Sumatera Utara10XTAL2 (Output Oscillator) AVCC adalah pena penyedia tegangan untuk bandar A dan Konverter A/D. AREF adalah pena referensi analog untuk konverter A/D. 2.1.4. Peta Memori ATMega162.1.4.1. Memori ProgramArsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian program boot dan aplikasi seperti terlihat pada Gambar 2.3. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.Gambar 2.3 Peta Memori ATMega16Universitas Sumatera Utara112.1.4.2. Memori Data (SRAM)Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal.Register FileData Address SpaceR0$0000R1$0001R2$0002......R29$000DR30$000ER31$000FI/O Registers$00$00$01...$3D$3E$3F $0020$0021$0022...$005D$005E$005FInternal SRAM$0060Universitas Sumatera Utara12$0061...$045E$045FGambar 2.4 Peta Memori Data ATMega162.1.4.3. Memori Data EEPROMATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile. Alamat EEPROM mulai dari $000 sampai $1FF.2.1.5. Analog To Digital ConverterAVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan resolusi 10 bit. Dalam mode operasinya, ADC dapat dikonfigurasi, baik single ended input maupun differential input. Selain itu, ADC ATMega16 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau (noise) yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dari ADC itu sendiri. ADC pada ATMega16 memiliki fitur-fitur antara lain :Resolusi mencapai 10-bit Akurasi mencapai 2 LSB Waktu konversi 13-260s Universitas Sumatera Utara138 saluran ADC dapat digunakan secara bergantian Jangkauan tegangan input ADC bernilai dari 0 hingga VCC Disediakan 2,56V tegangan referensi internal ADC Mode konversi kontinyu atau mode konversi tunggal Interupsi ADC complete Sleep Mode Noise canceler Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, formal data keluaran, dan modus pembacaan. Register-register yang perlu diatur adalah sebagai berikut:ADC Control and Status Register A ADCSRA Gambar 2.5 ADC Control and Status Register A ADCSRAADEN: 1 = adc enable, 0 = adc disableADCS: 1 = mulai konversi, 0 = konversi belum terjadiADATE: 1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih(set pada trigger SFIOR bit ADTS). ADC akan start konversi padaedge positif sinyal trigger.ADIF: diset ke 1, jika konversi ADC selesai dan data register ter-update.Namun ADC Conversion Complete Interrupt dieksekusi jika bitADIE dan bit-I dalam register SREG diset.ADIE: diset 1, jika bit-I dalam register SREG di-set.Universitas Sumatera Utara14 ADPS[0..2] : Bit pengatur clock ADC, faktor pembagi 0 7 = 2, 4, 8, 16, 32,64, 128.Tabel 2.1 Konfigurasi Clock ADCADC Multiplexer-ADMUX Gambar 2.6 ADC MultiplexerREFS 0, 1: Pemilihan tegangan referensi ADC00: Vref = Aref01: vref = AVCC dengan eksternal capasitor pada AREF10: vref = internal 2.56 volt dengan eksternal kapasitor pada AREFADLAR: Untuk setting format data hasil konversi ADC, default = 0Special Function IO Register-SFIOR SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal, susunannya seperti yang terlihatUniversitas Sumatera Utara15pada Gambar 2.7 berikut :Gambar 2.7 Register SFIORADTS[0...2] : Pemilihan trigger (pengatur picu) untuk konversi ADC, bit-bit ini akan berfungsi jika bit ADATE pada register ADCSRA bernilai 1. Konfigurasi bit ADTS[0...2] dapat dilihat pada Tabel 2.2.Tabel 2.2 Pemilihan sumber picu ADCADHSM: 1. ADC high speed mode enabled. Untuk operasi ADC, bitACME, PUD, PSR2 dan PSR10 tidak diaktifkan.Layanan Pesan Singkat (Short Message Service) Pengenalan Layanan Pesan Singkat SMS atau short messaging services merupakan salah satu media yang paling banyak digunakan sekarang ini dikarenakan murah dan prosesnya cepat.Universitas Sumatera Utara16 SMS merupakan fitur dari GSM(Global System for Mobile Communications), yang dikembangkan dan distandarisasi oleh ETSI(European Telecommunications Standards Institute). SMS pada awal diciptakan adalah bagian dari layanan pada sistem GSM yang dikembangkan dan distandarisasi oleh ETSI. SMS semula hanyalah merupakan layanan yang bersifat komplementer terhadap dua layanan utama sistem GSM (atau sistem 2G pada umumnya) yaitu layanan voice dan switced data. Namun karena keberhasilan SMS yang tidak terduga, dengan ledakan pelanggan yang mempergunakannya, menjadikan SMS sebagai bagian yang sangat penting dari layanan sistem.SMS adalah layanan untuk mengirim dan menerima pesan tertulis (teks) dari maupun kepada perangkat bergerak (mobile device). Pesan teks yang dimaksud tersusun dari huruf, angka, atau karakter alfanumerik. Pesan teks dikemas dalam satu paket/ frame yang berkapasitas maksimal 160 byte yang dapat direpresentasikan berupa160 karakter huruf latin atau 70 karakter alfabet non-latin seperti alfabet Arab atau Cina.Pengiriman pesan SMS secara store and forward berarti pengirim pesan SMS menuliskan pesan dan nomor telepon tujuan dan kemudian mengirimkannya (store) ke server SMS (SMS-Center) yang kemudian bertanggung jawab untuk mengirimkan pesan tersebut (forward) ke nomor telepon tujuan. Hal ini mirip dengan mekanisme store and forward pada protokol SMTP yang digunakan dalam pengiriman e-mail internet. Keuntungan mekanisme store and forward pada SMS adalah penerima tidak perlu dalam status online ketika ada pengirim yang bermaksud mengirimkan pesan kepadanya, karena pesan akan dikirim olehUniversitas Sumatera Utara17 pengirim ke SMSC (SMS-Center) yang kemudian dapat menunggu untuk meneruskan pesan tersebut ke penerima ketika ia siap dan dalam status online di lain waktu. Ketika pesan SMS telah terkirim dan diterima oleh SMSC, pengirim akan menerima pesan singkat (konfirmasi) bahwa pesan telah terkirim (message sent). Hal-hal inilah yang menjadi kelebihan SMS dan populer sebagai layanan praktis dari sistem telekomunikasi bergerak.2.2.2. Mengirim dan Menerima SMSDalam pengiriman dan penerimaan SMS ada dua mode yakni mode teks dan mode PDU (Protocol Data Unit).a. Mode TeksMode ini adalah cara termudah untuk mengirim pesan. Pada mode teks pesan yang kita kirim tidak dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7bit default alphabet) atau 140 (8 bit) karakter. Sesungguhnya, mode teks adalah hasil enkode yang direpresentasikan dalam format PDU. Kelemahannya, kita tidak dapat menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta terbatasnya tipe encoding.b. Mode PDU (Protocol Data Unit)Mode PDU adalah format pesan dalam bentuk oktet heksadesimal dan oktet semi-desimal dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Kelebihan menggunakan mode PDU adalah kita dapat melakukan enkoding sendiri yang tentunya harus pula didukung oleh hardware dan operatorUniversitas Sumatera Utara18 GSM, melakukan kompresi data, menambahkan nada dering dan gambar pada pesan yang akan dikirim. Pada mode PDU dapat juga ditambahkan header ke dalam pesan yang akan dikirim, seperti timestamp, nomor SMSC dan informasi lainnya.2.2.3. Perintah AT (ATCommand)AT Command berasal dari kata attention command. Attention berarti peringatan atau perhatian, command berarti perintah atau instruksi. Maksudnya ialah perintah atau instruksi yang dikenakan pada modem atau handset. AT Command adalah perintah-perintah yang digunakan dalam komunikasi dengan serial port. Dengan AT Command dapat diketahui vendor dari Handphone yang digunakan, kekuatan sinyal, membaca pesan yang ada pada SIM Card, megirim pesan, mendeteksi pesan SMS baru yang masuk secara otomatis, menghapus pesan pada SIM Card dan masih banyak lagi.Beberapa perintah AT Command yang digunakan untuk keperluan SMS (pengiriman, penerimaan) adalah sebagai berikut :AT+CMGS Perintah AT Command ini digunakan untuk mengirimkan SMS. Format yang digunakan adalah AT+CMGS = . Apabila pengiriman sukses dilakukan, format respon yang diterima adalah +CMGS : , dengan adalah message reference dari SMSC. Sedangkan jika pengiriman gagal dilakukan, respon yang diterima adalah +CMS error.AT+CMGR Perintah ini digunakan untuk membaca sebuah SMS pada indeks tertentu. Universitas Sumatera Utara19 Format yang digunakan adalah AT+CMGR = . Apabila perintah ini berhasil diesekusi, format respon yang diterima adalah +CMGR:,,. berarti status, parameter status pesan adalah sebagai berikut :0 : pesan yang diterima dan belum dibaca, merupakan parameter standar. 1 : pesan yang diterima dan sudah dibaca.2 : pesan tersimpan pada memory SMS yang tidak terkirim.3 : pesan tersimpan pada memory SMS yang berhasil dikirimkan. 4 : semua pesan pada memory SMS.AT+CMGD Perintah ini digunakan menghapus sebuah SMS pada memory SMS. Format yang digunakan adalah AT=CMGD=, respon yang diterima adalah OK/ERROR/+CMS ERROR AT+CMGL Perintah ini digunakan untuk membaca daftar SMS sesuai parameter tertentu. Format yang digunakan adalah AT+CMGL [=]. parameter status pesan adalah sebagai berikut :0 : pesan yang diterima dan belum dibaca, merupakan parameter standar. 1 : pesan yang diterima dan sudah dibaca.2 : pesan tersimpan pada memory SMS yang tidak terkirim.3 : pesan tersimpan pada memory SMS yang berhasil dikirimkan. 4 : semua pesan pada memory SMS.Universitas Sumatera Utara202.2.4. Protocol Data Unit (PDU)Format PDU dibagi menjadi dua bagian yaitu SMS Deliver PDU (Mobile Terminated) dan SMS Submit PDU (Mobile Originated).2.2.4.1. SMS Deliver PDUSMS Deliver PDU ialah terminal menerima pesan yang datang/masuk dari SMSC dalam format PDU.PDU-SCA OA PID DCS SCTS UDL UD TypeGambar 2.8 Skema Format SMS Deliver PDU Contoh format SMS Deliver PDU :0691261801000001000C81803107197566000002C834Berikut penjelasannya adalah sebagai berikut :Service Centre Address (SCA) SCA memiliki tiga komponen utama yaitu len, type of number dan BCDDigits.Tabel 2.3 Format SCA pada SMS Deliver PDUOctetKeteranganNilaiLenPanjang informasi SMSC dalamoctet06type ofJenis alamat dari SMSC91number81h=lokal format91h=internasional formatNomor SMSC. Jika panjangnyaBCD Digitsganjil, pada akhir karakter2618010000ditambahkan 0F hexaUniversitas Sumatera Utara21Berikut ini adalah contoh penulisan nomor SMSC untuk beberapa operatorIndonesia:Tabel 2.4 Contoh penulisan SMSC untuk operator di IndonesiaOperatorNomor SMSCFormat dalam PDUSatelindo6281612405 91 26 18 16 42Excelcomindo(XL)628144500907 91 26 18 48 54 00 F9Telkomsel628110000006 91 26 18 01 00 00IM36285500000005 91 26 58 05 00 00 F0Protocol Data Unit (PDU) Type Nilai default dari PDU untuk SMS-Deliver adalah 11h. Pada contoh diatas, PDU Type adalah 11 yang memiliki arti:Tabel 2.5 Skema Format PDU untuk SMS-DeliverBit no76543210NamaRPUDHISRRVPFVPFRDMTIMTINilai00010001Originator Address (OA) Tabel 2.6 Format OA untuk SMS Deliver PDUOctetKeteranganNilaiLenPanjang nomor Originator Address0Dtype of numbertype dari Originator Address9181h=lokal format91h=internasional formatNomor Originator Adress. Jika26186351208BCD Digitspanjangnya ganjil, pada akhir8F5karakter ditambahkan 0F hexaUniversitas Sumatera UtaraFormat dalam PDU14 81 BA BC FE HG JI LK NMPQ RQ ST0C 91 BA DC FE HG JI LK22Berikut ini contoh format penulisan OA:Tabel 2.7 Format penulisan OANomor OAABCDEFGHIJKLMNOPQRST+ABCDEFGHIJKLProtocol Identifier (PID) Nilai default dari PID adalah 0 = Standard-Text SMS. Pada contoh di atas PID adalah 00Data Coding Scheme (DCS) Pada contoh diatas DCS adalah 00. DCS juga menentukan message class seperti pada tabel di bawah ini.Tabel 2.8 Format penulisan DCSNilai (hexa)Character CodingMessage Class0default (7bit)no classF0default (7bit)class 0 (immediate display)F1default (7bit)class 1 (Mobile Equipment specific)F2default (7bit)class 2 ( SIM specific message)class 3 (Terminate EquipmentF3default (7bit)specific)F48 bitclass 0 (immediate display)F58 bitclass 1 (Mobile Equipment specific)F68 bitclass 2 ( SIM specific message)class 3 (Terminate EquipmentF78 bitspecific)Hal yang perlu diperhatikan disini, pada beberapa handphone denganmessage class0 dengan enkoding 7 bit berupa flash SMS. Sedangkan denganenkoding 1 bit Unicode (ucs2), message yang didahului 0001 dengan class 0Universitas Sumatera Utara23berupa blinking flash SMS.Validity Period (VP)Pada contoh diatas, VP adalah AA, atau 170d, 170-166 = 4 hari.Tabel 2.9 Perhitungan nilai VPNilai VPNilai vailiditas periode0 - 143(VP +1 ) * 5 menit (interval 5 menit hingga 12 jam)144 - 16712 jam + ((TP - VP - 143) * 30 menit)168 - 196(VP - 166) * 1 hari197 - 255(VP - 192) *1 mingguUser Data Length(UDL)Pada contoh di atas UDL adalah 09User DataPesan Hello yang konversinya mengacu pada tabel alfabet 7 bit default alphabet pada Tabel 2.10 menghasilkan bit yang masih bernilai septet sehingga harus di-enkode menjadi 8 bit (oktet), yaitu C8329BFD06 dalam nilai heksadesimal untuk SMS-Deliver. Pada tiap oktet jika jumlah bit kurang dari 8, maka diambil bit paling kanan pada septet selanjutnya dan ditambahkan pada bagian kiri septet sebelummya. Tabel di bawah ini mengikuti cara pendekodean dengan menggunakan bantuan Tabel 2.10.Tabel 2.10 Pendekodean 8 bit (Octet) menjadi 7 bit (Septet)Nilai (Hexa)Oktet(8 bit)Septet (7 bit)KarakterC81 10010001001000H3200 110010110010 1e9B100 1101111011 00lFD1111 11011101 100l0600000 110110 1111oUniversitas Sumatera Utara24b1b7 menunjukkan posisi bit pada septet seperti yang digambarkan pada tabeldi bawah ini.Tabel 2.11 Posisi b1 . b 7 pada septetb6b5b4b3b2b1b0abcdefgSusunan bit dari 1 karakter pada 1 oktet adalah sebagai berikut:Tabel 2.12 Susunan 1 Bit OktetBitOktet76543210101a1b1c1d1e1f1gSedangkan susunan bit dari 2 karakter pada 2 oktet adalah sebagai berikut:Tabel 2.13 Susunan 2 Bit OktetBitOktet7654321012g1a1b1c1d1e1f1g2002a2b2c2d2e2fProses di atas terus berlangsung sehingga pada 140 oktet dapat menampung(140x8)/7 = 160 karakter.Universitas Sumatera Utara25Tabel 2.14 Tabel default alphabet 7 bit (septet).2.2.4.2. SMS-Submit PDUSMS-Submit PDU adalah pesan yang dikirim dari terminal ke SMSC dalam format PDU.SCAPDU- MRDAPID DCSVPUDLUDTypeGambar 2.9 Skema format SMS Submit PDUUniversitas Sumatera Utara26Contoh format SMS Submit PDU adalah:0011000D91261863512088F50000AA05C8329BFD06Penjelasannya sebagai berikut: 1. Service Center Address (SCA)SCA memiliki tiga komponen utama, yaitu len, type of number dan BCD DigitsTabel 2.15 Format SCA pada SMS Deliver PDUOctetKeteranganNilaiLenPanjang informasi SMSC dalam octet00type of numberJenis alamat dari SMSCNone81h=lokal format91h=internasional formatBCD DigitsNomor SMSC. Jika panjangnya ganjil,Nonepada akhir karakter ditambahkan 0F hexa2. Protocol Data Unit (PDU) TypeNilai default dari PDU untuk SMS-Submit adalah 11h yang memiliki arti:Tabel 2.16 Skema Format PDU untuk SMS-SubmitBit no76543210NamaRPUDHISRRVPFVPFRDMTIMTINilai000100013. Message reference (MR)Pada contoh di atas, MR adalah 00. 4. Destination Address (DA)Penulisan format Destination Address sama dengan Originator AddressUniversitas Sumatera Utara27Tabel 2.17 Format DA untuk SMS Submit PDUOctetKeteranganNilaiLenPanjang nomor Originator Address0Dtype of numbertype dari Originator Address9181h=lokal format91h=internasional formatNomor Originator Adress. Jika26186351208BCD Digitspanjangnya ganjil, pada akhir8F5karakter ditambahkan 0F hexa5. Protocol Identifier (PID)Pada contoh di atas, PID adalah 00.Data Coding Scheme (DCS) Pada contoh di atas, DCS adalah 00. Validity Period (VP) Pada contoh di atas, VP adalah AA, atau 170d, 170-166 = 4 hari yang menggunakan perhitungan seperti pada Tabel 2.98. User Data Length (UDL)Pada contoh di atas, UDL adalah 09.9. User Data (UD)Pesan Hello dikodekan 7 bit default alphabet (septet) sehingga harus di-enkode menjadi 8 bit (octet), yaitu C8329BFD06 untuk SMS-Submit. Pada tiap oktet jika jumlah bit kurang dari 8, maka diambil bit paling kanan pada septet selanjutnya dan ditambahkan pada bagian kiri septet sebelumnya mengikutiUniversitas Sumatera Utara28 kaidah pada Tabel 2.12 dan Tabel 2.13. Cara pengkodean nya sama seperti yang telah diuraikan pada Tabel 2.10.2.3 Bahasa CBahasa BCPL yang dikerjakan oleh Martin Richards pada tahun 1967 merupakan awal dari lahirnya bahasa C. Ken Thompson memulai pengembangan bahasa BCPL yaitu bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B dikembangkan menjadi bahasa C oleh Dennis Ritchie beberapa bulan berikutnya di Bell Telephone Laboratories Inc. (sekarang AT&T Bell Laboratories).Beberapa alasan mengapa Bahasa C banyak digunakan, diantaranya adalah sebagai berikut :Bahasa C hampir tersedia di semua jenis komputer Bahasa C adalah bahasa yang terstruktur Memiliki dukungan pustaka yang banyak Proses eksekusi program lebih cepat Kode Bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer. Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci. Kompilasi Program C Agar suatu program dalam bahasa pemrograman dapat dimengerti olehkomputer, program harus diterjemahkan dahulu ke dalam kode mesin. AdapunUniversitas Sumatera Utara29 penerjemah yang digunakan biasa berupa interpreter atau kompiler. Interpreter suatu jenis penerjemah yang menerjemahkan baris per baris instruksi untuk setiap saat.Proses awal dari bentuk program sumber C (source program, yaitu program yang ditulis dalam bahasa C) hingga menjadi program yang executable (dapat dieksekusi secara langsung) ditunjukkan pada gambar di bawah.EDITOREDITORFILE INCLUDEFILE PROGRAM(HEADER FILE)SUMBERxxx.hxxx.cKOMPILERFILE PUSTAKAFILE OBYEKFILE OBYEK(library file)LAINLINKERFILEEXECUTABLEGambar 2.10 Kompilasi Linking dari program C2.3.2. Tipe Data Bahasa CTipe data merupakan bagian yang paling penting karena tipe data mempengaruhi seriap instruksi yang akan dilaksanakan oleh komputer. MisalnyaUniversitas Sumatera Utara30 saja 5 dibagi 2 bisa saja memberikan hasil yang berbeda tergantung pada tipe datanya. Jika 5 dan 2 bertipe integer, akan menghasilkan nilai 2. Namun jika kedianya bertipe float maka akan memberikan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efisien. Tipe data pada bahasa C dapat dilihat pada Tabel 2.3.Tabel 2.18 Tipe data bahasa CTipe DataUkuran (byte)FormatKeteranganchar1%cKarakter / Stringint2%i %dBilangan Bulat(integer)float4%fBilangan pecahan(float)double8%lfPecahan presisiganda2.3.3. Perangkat Lunak Mikrokontroler ATMega16Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program untuk diisikan ke dalam mikrokontroler tersebut. Oleh karena itu, dalam tugas akhir ini akan digunakan perangkat lunak CodeVisionAVR sebagai media penghubung antara program yang akan diisikan ke mikrokontroler ATMega16 yang menggunakan bahasa C.Pemrograman mikrokontroler AVR dapat menggunakan low level language (assembly) dan high level language (C, Basic, Pascal, JAVA, dll) tergantung compiler yang digunakan. Bahasa Assembler pada mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika telah menguasai pemrogramanUniversitas Sumatera Utara31 satu jenis mikrokontroler AVR, maka akan dengan mudah untuk memprogram mikrokontroler AVR jenis lain, tetapi bahasa assembler relatif lebih sulit dipelajari daripada bahasa C, untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama, serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan dibandingkan bahasa assembly yaitu penyusunan program akan lebih sederhana dan mudah pada proyek yang lebih besar. Bahasa C hampir bisa melakukan semua operasi yang dapat dikerjakan oleh bahasa mesin.CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman mikrokontroler keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan program generator.Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk mikrokontroler ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded).Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi string, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yangUniversitas Sumatera Utara32 umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu, SPI (Serial Peripheral Interface) dan lain sebagainya.Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly. Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader yang bersifat In System Programmer yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi ke dalam sistem memori mikrokontroler AVR yang sedang diprogram.CodeVisionAVR juga menyediakan sebuah fitur yang dinamakan denganCode Generator atau CodeWizardAVR. Secara praktis, fitur ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada mikrokontroler AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Secara teknis, penggunaan fitur ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya)Universitas Sumatera Utara332.4 Komunikasi USART (Universal Synchronous Asynchronous receiverTransmitter)Komunikasi data serial sangat berbeda dengan format pemindahan data paralel. Disini, pengiriman bit-bit tidak dilakukan sekaligus melalui saluran pararel, tetapi setiap bit dikirimkan satu persatu melalui saluran tunggal. Dalam pengiriman data secara serial harus ada sinkronisasi atau penyesuaian antara pengirim dan penerima agar data yang dikirimkan dapat diterima dengan tepat dan benar oleh penerima. Salah satu mode transmisi dalam komunikasi serial adalah mode asinkron. Transmisi mode serial ini digunakan apabila pengiriman data dilakukan satu karakter tiap pengiriman. Antara satu karakter dengan yang lainnya tidak ada waktu antara yang tetap. Karakter dapat dikirimkan sekaligus ataupun beberapa karakter kemudian berhenti untuk waktu yang tidak tentu, kemudian dikirimkan sisanya. Dengan demikian bit-bit data ini dikirimkan dengan periode yang acak sehingga pada sisi penerima data akan diterima kapan saja. Adapun sinkronisasi yang terjadi pada mode transmisi ini adalah dengan memberikan bit-bit penanda awal dari data dan penanda akhir dari data pada sisi pengirim maupun dari sisi penerima. Format data komunikasi serial terdiri dari parameter-parameter yang dipakai untuk menentukan bentuk data serial yang dikomunikasikan, dimana elemen-elemennya terdiri dari :Kecepatan mobilisasi data per bit (baud rate) Jumlah bit data per karakter (data length) Parity yang digunakan Jumlah stop bit dan start bit Universitas Sumatera Utara34 Komunikasi serial menggunakan RS232 untuk berhubungan dengan perangkat lainnya. Seperti yang terlihat pada tabel 2.19, RS232 mempunyai 9pena.Tabel 2.19 Fungsi masing-masing pena RS232RS232 Pin Assignments (DB9 PC signal set)Pena 1Receive Line SignalDetector (Data Carrier)Pena 2Receive DataPena 3Transmit DataPena 4Data Terminal ReadyPena 5Signal GroundPena 6Data Set ReadyPena 7Request To SendPena 8Clear To SendPena 9Ring IndicatorPada mikrokontroler AVR untuk mengaktifkan dan mengatur komunikasi USART dilakukan dengan cara mengaktifkan register-register yang digunakan untuk komunikasi USART. Register-register yang digunakan untuk komunikasi USART antara lain:1. USART I/O Data Register (UDR)UDR merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca.Universitas Sumatera Utara35Gambar 2.11 Bit-bit Register UDR 2. USART Control and Status Register A (UCSRA)Gambar 2.12 Bit-bit Register UCSRA Penjelasan bit penyusun UCSRA seperti yang terlihat pada Gambar 2.12:RXC (USART Receive Complete) Bit ini akan set ketika data yang masuk ke dalam UDR belum dibaca dan akan berlogika nol ketika sudah dibaca. Flag ini dapat digunakan untuk membangkitkan interupsi RX jika diaktifkan dan akan berlogika nol secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutan.TXC (USART Transmit Complete) Bit ini akan set ketika data yang dikirim telah keluar. Flag ini akan membangkitkan interupsi TX jika diaktifkan dan akan clear secara otomatis bersamaan dengan eksekusi vektor interupsi yang bersangkutanUDRE (USART Data Register Empty) Flag ini sebagai indikator isi UDR. Jika bernilai satu maka UDR dalam keadaan kosong dan siap menerima data berikutnya, jika flag bernilai nol berartiUniversitas Sumatera Utara36sebaliknya.FE (Frame Error) Bit ini sebagai indikator ketika data yang diterima error, misalnya ketika stop bit pertama data dibaca berlogika nol maka bit FE bernilai satu. Bit akan bernilai 0 ketika stop bit data yang diterima berlogika nol.DOR (Data OverRun) Bit ini berfungsi untuk mendeteksi jika ada data yang tumpang tindih. Flag akan bernilai satu ketika terjadi tumpang tindih data.PE (Parity Error) Bit yang menentukan apakah terjadi kesalahan paritas. Bit ini berfungsi jika ada kesalahan paritas. Bit akan berlogika satu ketika terjadi bit parity error apabila bit paritas digunakan.U2X (Double the USART Transmission Speed) Bit yang berfungsi untuk menggandakan laju data manjadi dua kalinya. Hanya berlaku untuk modus asinkron, untuk mode sinkron bit ini diset nol.MPCM (Multi Processor Communication Mode) Bit untuk mengaktifkan modus multi prosesor, dimana ketika data yang diterima oleh USART tidak mengandung informasi alamat akan diabaikan.Universitas Sumatera Utara373. USART Control and Status Register B (UCSRB)Gambar 2.13 Bit-bit Register UCSRBGambar 2.13 menunjukkan bit penyusun UCSRB. Penjelasan bit penyusun UCSRB:RXCIE (RX Complete Interrupt Enable) Bit pengatur aktivasi interupsi penerimaan data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika dinonaktifkan.TXCIE (TX Complete Interrupt Enable) Bit pengatur aktivasi pengiriman data serial, akan berlogika satu jika diaktifkan dan berlogika nol jika dinonaktifkan.UDRIE (USART Data Register Empty Interrupt Enable) : Bit ini berfungsi untuk mengaktifkan interupsi data register kosong, berlogika satu jika diaktifkan dan sebaliknya.RXEN (Receiver Enable) Bit ini berfungsi untuk mengaktifkan pena RX saluran USART. Ketika pena diaktifkan maka pena tersebut tidak dapat digunakan untuk fungsi pena I/O karena sudah digunakan sebagai saluran penerima USART.TXEN (Transmitter Enable) Universitas Sumatera Utara38 Bit ini berfungsi untuk mengaktifkan pena TX saluran USART. Ketika pena diaktifkan maka pena tersebut tidak dapat digunakan untuk fungsi pena I/Okarena sudah digunakan sebagai saluran pengirim USART.UCSZ2 (Character Size) Bit ini bersama dengan UCSZ1 dan UCSZ0 dalam register UCSRC digunakan untuk memilih tipe lebar data bit yang digunakan.RXB8 (Receive Data Bit 8) Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus dibaca dahulu sebelum membaca UDR.TXB8 (Transmit Data Bit 8) Bit ini digunakan sebagai bit ke-8 ketika menggunakan format data 9-10 bit, dan bit ini harus ditulis dahulu sebelum membaca UDR.4. USART CONTROL AND STATUS REGISTER C (UCSRC)Gambar 2.14 Bit-bit Register UCSRCGambar 2.14 menunjukkan bit penyusun UCSRB. Penjelasan bit penyusun UCSRC:Universitas Sumatera Utara39URSEL (Register Select) : Bit ini berfungsi untuk memilih register UCSRC dengan UBBRH, dimana untuk menulis atau membaca register UCSRC maka bit harus berlogika satu.UMSEL (USART Mode Select) Bit pemilih mode komunikasi serial antara sinkron dan asinkron. Pengaturan bit UMSEL dapat dilihat pada Tabel 2.20.Tabel 2.20 Pengaturan bit UMSELUPM[10] (Parity Mode) Bit ini berfungsi untuk memilih mode paritas bit yang akan digunakan. Transmittter USART akan membuat paritas yang akan digunakan secara otomatis.USBS (Stop Bit Select) Bit yang berfungsi untuk memilih jumlah stop bit yang akan digunakan.UCSZ1 dan UCSZ0 : merupakan bit pengatur jumlah karakter serial Bit yang berfungsi untuk memilih lebar data yang digunakan dikombinasikan dengan bit UCSZ2 dalam register UCSRB. Bit pengatur Ukuran Karakter dapat diliha pada Tabel 2.21.Universitas Sumatera Utara40Tabel 2.21 Bit Pengatur Ukuran KarakterUCPOL (Clock Parity) : Bit yang berguna hanya untuk modus sinkron. Bit in berhubungan dengan perubahan data keluaran dan sampel masukkan, dan clock sinkron (XCK).2.5 Sensor Suhu LM35Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan. Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 A hal ini berarti LM35 mempunyai kemampuan menghasilkan panas (self-heating)Universitas Sumatera Utara41 dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 C pada suhu 25 C .Gambar 2.15 Sensor Suhu LM35Gambar 2.15 menunjukkan diagram sensor temperatur LM35 dan bentuk dari LM35 tampak bawah. 3 pena LM35 menunjukkan fungsi masing-masing pena diantaranya, pena 1 berfungsi sebagai sumber tegangan kerja dari LM35, pena 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangakauan kerja dari 0 Volt sampai dengan 1,5Volt dengan tegangan operasi LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10mV setiap derajat celcius sehingga diperoleh persamaan sebagai berikut :Vlm35 = suhu x 10mVSecara prinsip sensor akan melakukan penginderaan pada saat perubahan suhu setiap suhu 1 C akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi suhunya akan sedikit berkurang sekitar 0,01 C karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkanUniversitas Sumatera Utara42 selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh lebih tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35 berada pada suhu permukaan dan suhu udara disekitarnya . Berikut ini adalah karakteristik dari sensor LM35.Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/C, sehingga dapat dikalibrasi langsung dalam celcius. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5C pada suhu 25 C. Memiliki jangkauan maksimal operasi suhu antara -55 C sampai +150 C. Bekerja pada tegangan 4 sampai 30 volt. Memiliki arus rendah yaitu kurang dari 60 A. Universitas Sumatera Utara