• Tidak ada hasil yang ditemukan

BAB II DASAR TEORI. (chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II DASAR TEORI. (chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah"

Copied!
38
0
0

Teks penuh

(1)

DASAR TEORI

2.1 Mikrokontroler ATMEGA16

Mikrokontroler 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 fiturnya

Seperti 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).

(2)

2.1.1. Arsitektur ATMEGA16

Mikrokontroler 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 :

1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz.

1. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte

2. Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D. 3. CPU yang terdiri dari 32 buah register.

2. User interupsi internal dan eksternal

3. Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial 4. 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 InterfaceWatchdog timer dengan osilator internal

(3)

Gambar 2.1 Blok diagram ATMega16

2.1.2. KONFIGURASI PENA (PIN) ATMEGA16

Konfigurasi 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).

(4)

Gambar 2.2 Pena-Pena Atmega16

2.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, pena–pena 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.

(5)

• Bandar 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)

(6)

XTAL2 (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 ATMega16 2.1.4.1. Memori Program

Arsitektur 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.

(7)

2.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 File Data Address Space

R0 $0000 R1 $0001 R2 $0002 ... ... R29 $000D R30 $000E R31 $000F I/O Registers $00 $0020 $00 $0021 $01 $0022 ... ... $3D $005D $3E $005E $3F $005F Internal SRAM $0060

(8)

$0061 ... $045E $045F Gambar 2.4 Peta Memori Data ATMega16 2.1.4.3. Memori Data EEPROM

ATMega16 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 Converter

AVR 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-260µs

(9)

• 8 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 – ADCSRA ADEN : 1 = adc enable, 0 = adc disable

ADCS : 1 = mulai konversi, 0 = konversi belum terjadi

ADATE : 1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih (set pada trigger SFIOR bit ADTS). ADC akan start konversi pada edge positif sinyal trigger.

ADIF : diset ke 1, jika konversi ADC selesai dan data register ter-update. Namun ADC Conversion Complete Interrupt dieksekusi jika bit ADIE dan bit-I dalam register SREG diset.

(10)

ADPS[0..2] : Bit pengatur clock ADC, faktor pembagi 0 … 7 = 2, 4, 8, 16, 32, 64, 128.

Tabel 2.1 Konfigurasi Clock ADC

• ADC Multiplexer-ADMUX

Gambar 2.6 ADC Multiplexer REFS 0, 1 : Pemilihan tegangan referensi ADC

00 : Vref = Aref

01 : vref = AVCC dengan eksternal capasitor pada AREF

10 : vref = internal 2.56 volt dengan eksternal kapasitor pada AREF ADLAR : Untuk setting format data hasil konversi ADC, default = 0

• Special 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 terlihat

(11)

pada Gambar 2.7 berikut :

Gambar 2.7 Register SFIOR

ADTS[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 ADC

ADHSM : 1. ADC high speed mode enabled. Untuk operasi ADC, bit ACME, PUD, PSR2 dan PSR10 tidak diaktifkan.

2.2 Layanan Pesan Singkat (Short Message Service) 2.2.1. Pengenalan Layanan Pesan Singkat

SMS atau short messaging services merupakan salah satu media yang paling banyak digunakan sekarang ini dikarenakan murah dan prosesnya cepat.

(12)

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 oleh

(13)

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 SMS

Dalam pengiriman dan penerimaan SMS ada dua mode yakni mode teks dan mode PDU (Protocol Data Unit).

a. Mode Teks

Mode 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 operator

(14)

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 = <length> <CR> <PDU is given>”. Apabila pengiriman sukses dilakukan, format respon yang diterima adalah “+CMGS : <mr>”, dengan “<mr>” adalah message reference dari SMSC. Sedangkan jika pengiriman gagal dilakukan, respon yang diterima adalah “+CMS error”.

• AT+CMGR

(15)

Format yang digunakan adalah “AT+CMGR = <index>”. Apabila perintah ini berhasil diesekusi, format respon yang diterima adalah “+CMGR: <stat>,,<length><CR><LF><pdu>”. “<stat>” 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=<index>”, 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 [=<stat>]”. 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.

(16)

2.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 PDU

SMS Deliver PDU ialah terminal menerima pesan yang datang/masuk dari SMSC dalam format PDU.

SCA

PDU-Type

OA PID DCS SCTS UDL UD

Gambar 2.8 Skema Format SMS Deliver PDU Contoh format SMS Deliver PDU :

0691261801000001000C81803107197566000002C834 Berikut penjelasannya adalah sebagai berikut :

Service Centre Address (SCA)

SCA memiliki tiga komponen utama yaitu len, type of number dan BCD Digits.

Tabel 2.3 Format SCA pada SMS Deliver PDU

Octet Keterangan Nilai

Len

Panjang informasi SMSC dalam

octet 06

type of number

Jenis alamat dari SMSC

91 81h=lokal format

91h=internasional format

BCD Digits

Nomor SMSC. Jika panjangnya ganjil, pada akhir karakter

ditambahkan 0F hexa

(17)

Berikut ini adalah contoh penulisan nomor SMSC untuk beberapa operator Indonesia:

Tabel 2.4 Contoh penulisan SMSC untuk operator di Indonesia

Operator Nomor SMSC Format dalam PDU

Satelindo 62816124 05 91 26 18 16 42 Excelcomindo

(XL) 6281445009 07 91 26 18 48 54 00 F9 Telkomsel 6281100000 06 91 26 18 01 00 00

IM3 62855000000 05 91 26 58 05 00 00 F0

Protocol 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-Deliver

Bit no 7 6 5 4 3 2 1 0

Nama RP UDHI SRR VPF VPF RD MTI MTI

Nilai 0 0 0 1 0 0 0 1

Originator Address (OA)

Tabel 2.6 Format OA untuk SMS Deliver PDU

Octet Keterangan Nilai

Len Panjang nomor Originator Address 0D type of number

type dari Originator Address

91 81h=lokal format

91h=internasional format

BCD Digits

Nomor Originator Adress. Jika panjangnya ganjil, pada akhir karakter ditambahkan 0F hexa

26186351208 8F5

(18)

Berikut ini contoh format penulisan OA:

Tabel 2.7 Format penulisan OA

Nomor OA Format dalam PDU

ABCDEFGHIJKLMNOPQRST

14 81 BA BC FE HG JI LK NM PQ RQ ST

+ABCDEFGHIJKL 0C 91 BA DC FE HG JI LK • Protocol Identifier (PID)

Nilai default dari PID adalah 0 = “Standard-Text SMS”. Pada contoh di atas PID adalah 00

Data 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 DCS

Nilai (hexa) Character Coding Message Class

0 default (7bit) no class

F0 default (7bit) class 0 (immediate display) F1 default (7bit) class 1 (Mobile Equipment specific) F2 default (7bit) class 2 ( SIM specific message)

F3 default (7bit)

class 3 (Terminate Equipment specific)

F4 8 bit class 0 (immediate display)

F5 8 bit class 1 (Mobile Equipment specific) F6 8 bit class 2 ( SIM specific message)

F7 8 bit

class 3 (Terminate Equipment specific)

Hal yang perlu diperhatikan disini, pada beberapa handphone dengan message class0 dengan enkoding 7 bit berupa flash SMS. Sedangkan dengan enkoding 1 bit Unicode (ucs2), message yang didahului “0001” dengan class 0

(19)

berupa blinking flash SMS. • Validity Period (VP)

Pada contoh diatas, VP adalah AA, atau 170d, 170-166 = 4 hari. Tabel 2.9 Perhitungan nilai VP

Nilai VP Nilai vailiditas periode

0 - 143 (VP +1 ) * 5 menit (interval 5 menit hingga 12 jam) 144 - 167 12 jam + ((TP - VP - 143) * 30 menit)

168 - 196 (VP - 166) * 1 hari 197 - 255 (VP - 192) *1 minggu • User Data Length(UDL)

Pada contoh di atas UDL adalah 09 • User Data

Pesan “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) Karakter

C8 1 1001000 1001000 H

32 00 110010 110010 1 e

9B 100 11011 11011 00 l

FD 1111 1101 1101 100 l

(20)

b1…b7 menunjukkan posisi bit pada septet seperti yang digambarkan pada tabel di bawah ini.

Tabel 2.11 Posisi b1 …. b 7 pada septet

b6 b5 b4 b3 b2 b1 b0

a b c d e f g

Susunan bit dari 1 karakter pada 1 oktet adalah sebagai berikut: Tabel 2.12 Susunan 1 Bit Oktet

Bit

Oktet 7 6 5 4 3 2 1 0

1 0 1a 1b 1c 1d 1e 1f 1g

Sedangkan susunan bit dari 2 karakter pada 2 oktet adalah sebagai berikut: Tabel 2.13 Susunan 2 Bit Oktet

Bit

Oktet 7 6 5 4 3 2 1 0

1 2g 1a 1b 1c 1d 1e 1f 1g

2 0 0 2a 2b 2c 2d 2e 2f

Proses di atas terus berlangsung sehingga pada 140 oktet dapat menampung (140x8)/7 = 160 karakter.

(21)

Tabel 2.14 Tabel default alphabet 7 bit (septet).

2.2.4.2. SMS-Submit PDU

SMS-Submit PDU adalah pesan yang dikirim dari terminal ke SMSC dalam format PDU.

SCA

PDU-Type

MR DA PID DCS VP UDL UD

(22)

Contoh format SMS Submit PDU adalah:

0011000D91261863512088F50000AA05C8329BFD06 Penjelasannya sebagai berikut:

1. Service Center Address (SCA)

SCA memiliki tiga komponen utama, yaitu len, type of number dan BCD Digits Tabel 2.15 Format SCA pada SMS Deliver PDU

Octet Keterangan Nilai

Len Panjang informasi SMSC dalam octet 00 type of number

Jenis alamat dari SMSC

None 81h=lokal format

91h=internasional format BCD Digits

Nomor SMSC. Jika panjangnya ganjil,

pada akhir karakter ditambahkan 0F hexa None

2. Protocol Data Unit (PDU) Type

Nilai default dari PDU untuk SMS-Submit adalah 11h yang memiliki arti: Tabel 2.16 Skema Format PDU untuk SMS-Submit

Bit no 7 6 5 4 3 2 1 0

Nama RP UDHI SRR VPF VPF RD MTI MTI

Nilai 0 0 0 1 0 0 0 1

3. Message reference (MR)

Pada contoh di atas, MR adalah 00. 4. Destination Address (DA)

(23)

Tabel 2.17 Format DA untuk SMS Submit PDU

Octet Keterangan Nilai

Len Panjang nomor Originator Address 0D type of number

type dari Originator Address

91 81h=lokal format

91h=internasional format

BCD Digits

Nomor Originator Adress. Jika panjangnya ganjil, pada akhir karakter ditambahkan 0F hexa

26186351208 8F5

5. Protocol Identifier (PID)

Pada contoh di atas, PID adalah 00. 6. Data Coding Scheme (DCS) Pada contoh di atas, DCS adalah 00. 7. Validity Period (VP)

Pada contoh di atas, VP adalah AA, atau 170d, 170-166 = 4 hari yang menggunakan perhitungan seperti pada Tabel 2.9

8. 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 mengikuti

(24)

kaidah pada Tabel 2.12 dan Tabel 2.13. Cara pengkodean nya sama seperti yang telah diuraikan pada Tabel 2.10.

2.3 Bahasa C

Bahasa 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 :

1. Bahasa C hampir tersedia di semua jenis komputer 2. Bahasa C adalah bahasa yang terstruktur

3. Memiliki dukungan pustaka yang banyak 4. Proses eksekusi program lebih cepat

5. Kode Bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis komputer.

6. Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci.

2.3.1. Kompilasi Program C

Agar suatu program dalam bahasa pemrograman dapat dimengerti oleh komputer, program harus diterjemahkan dahulu ke dalam kode mesin. Adapun

(25)

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.

Gambar 2.10 Kompilasi Linking dari program C

2.3.2. Tipe Data Bahasa C

Tipe data merupakan bagian yang paling penting karena tipe data mempengaruhi seriap instruksi yang akan dilaksanakan oleh komputer. Misalnya

EDITOR EDITOR FILE INCLUDE (HEADER FILE) xxx.h FILE PROGRAM SUMBER xxx.c KOMPILER FILE PUSTAKA

(library file) FILE OBYEK

FILE OBYEK LAIN

LINKER

FILE EXECUTABLE

(26)

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 C

Tipe Data Ukuran (byte) Format Keterangan

char 1 %c Karakter / String

int 2 %i %d Bilangan Bulat

(integer) float 4 %f Bilangan pecahan (float) double 8 %lf Pecahan presisi ganda

2.3.3. Perangkat Lunak Mikrokontroler ATMega16

Sebuah 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 pemrograman

(27)

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 yang

(28)

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 dengan Code 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)

(29)

2.4 Komunikasi USART (Universal Synchronous Asynchronous receiver

Transmitter)

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 :

1. Kecepatan mobilisasi data per bit (baud rate) 2. Jumlah bit data per karakter (data length) 3. Parity yang digunakan

(30)

Komunikasi serial menggunakan RS232 untuk berhubungan dengan perangkat lainnya. Seperti yang terlihat pada tabel 2.19, RS232 mempunyai 9 pena.

Tabel 2.19 Fungsi masing-masing pena RS232 RS232 Pin Assignments (DB9 PC signal set)

Pena 1 Receive Line Signal Detector (Data Carrier)

Pena 2 Receive Data

Pena 3 Transmit Data Pena 4 Data Terminal Ready Pena 5 Signal Ground Pena 6 Data Set Ready Pena 7 Request To Send Pena 8 Clear To Send Pena 9 Ring Indicator

Pada 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.

(31)

Gambar 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 bersangkutan

• UDRE (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 berarti

(32)

sebaliknya.

• 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.

(33)

3. USART Control and Status Register B (UCSRB)

Gambar 2.13 Bit-bit Register UCSRB

Gambar 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.

(34)

Bit ini berfungsi untuk mengaktifkan pena TX saluran USART. Ketika pena diaktifkan maka pena tersebut tidak dapat digunakan untuk fungsi pena I/O karena 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 UCSRC

Gambar 2.14 menunjukkan bit penyusun UCSRB. Penjelasan bit penyusun UCSRC:

(35)

• URSEL (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 UMSEL

• UPM[1…0] (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.

(36)

Tabel 2.21 Bit Pengatur Ukuran Karakter

• UCPOL (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 LM35

Sensor 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)

(37)

dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu 25 ºC .

Gambar 2.15 Sensor Suhu LM35

Gambar 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 10mV

Secara 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 diharapkan

(38)

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,5ºC pada suhu 25 ºC. • Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC. • Bekerja pada tegangan 4 sampai 30 volt.

Gambar

Gambar 2.1 Blok diagram  ATMega16
Gambar 2.2 Pena-Pena Atmega16
Gambar 2.6 ADC Multiplexer REFS 0, 1 : Pemilihan tegangan referensi ADC
Tabel 2.2 Pemilihan sumber picu ADC
+7

Referensi

Dokumen terkait

Kejadian ini menyebabkan peningkatan iskemia pada saluran nafas yang rusak, selanjutnya Kejadian ini menyebabkan peningkatan iskemia pada saluran nafas yang rusak, selanjutnya terjadi

Penulis lain seperti Surin Pitsuwan 53 dalam tesisnya melihat kepada sejarah latar belakang konflik, usaha orang Melayu untuk mendapatkan status autonomi, aturan-aturan

• Bahwa saksi mengetahui pemohon dan termohon adalah suami istri yang telah menikah sekitar bulan Desember 2006 di Kabupaten Lombok Barat karena saksi turut

Berdasarkan tabel di atas menunjukkan bahwa nilai Adjusted R 2 sebesar 0.233 atau 23.3% sehingga dapat disimpulkan bahwa variabel profitabilitas, risiko bisnis,

Penelitian ini menggunakan metode penelitian Deskriptif Kualitatif dengan metode studi kasus yang bertujuan untuk mendapatkan gambaran yang lebih mendalam dan lengkap

S Ramar Pekan Labu Baru 521-B Jln Rasah Taman Sg.. Mativanan Bdr Seremban

Undang-Undang Nomor 39 Tahun 1999 tentang Hak Asasi Manusia Undang-Undang Nomor 24 Tahun 1992 tentang Penataan Ruang Undang-Undang Nomor 26 Tahun 2007 tentang Penataan Ruang

Dalam studi manajemen, kehadiran konflik pendidikan tidak bisa terlepas dari permasalahan keseharian yang dirasakan oleh pengelola lembaga pendidikan. Konflik tersebut