BAB II DASAR TEORI 2.1 Mikrokontroler ATMEGA16 Mikrokontroler ...

34 downloads 189 Views 933KB Size Report
AVR adalah mikrokontroler RISC (Reduce Instuction Set. Compute) ... AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx,. ATMega ...
BAB II 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).

5

Universitas Sumatera Utara

6 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 Interface



Watchdog timer dengan osilator internal

Universitas Sumatera Utara

7

Gambar 2.1 Blok diagram ATMega16 2.1.2. KONFIGURASI PENA (PIN) ATMEGA16 Konfigurasi pena (pin) mikrokontroler Atmega16 dengan kemasan 40pena 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 Utara

8

Gambar 2.2 Pena-Pena Atmega16 2.1.3. DESKRIPSI MIKROKONTROLER ATMEGA16 •

VCC (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.

Universitas Sumatera Utara

9 •

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)

Universitas Sumatera Utara

10 •

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.

Gambar 2.3 Peta Memori ATMega16

Universitas Sumatera Utara

11 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

Universitas Sumatera Utara

12 $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

Universitas Sumatera Utara

13 •

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.

ADIE

: diset 1, jika bit-I dalam register SREG di-set.

Universitas Sumatera Utara

14 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 00

: Vref = Aref

01

: vref = AVCC dengan eksternal capasitor pada AREF

10

: vref = internal 2.56 volt dengan eksternal kapasitor pada AREF

ADLAR



: Pemilihan tegangan referensi ADC

: 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

Universitas Sumatera Utara

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

Universitas Sumatera Utara

16 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

Universitas Sumatera Utara

17 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

Universitas Sumatera Utara

18 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 Utara

19 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 Utara

20 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. PDUSCA

OA

PID

DCS

SCTS

UDL

UD

Type 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 Panjang informasi SMSC dalam

Nilai

octet Jenis alamat dari SMSC 81h=lokal format 91h=internasional format Nomor SMSC. Jika panjangnya

06 91

ganjil, pada akhir karakter

2618010000

Len type of number

BCD Digits

ditambahkan 0F hexa

Universitas Sumatera Utara

21 Berikut ini adalah contoh penulisan nomor SMSC untuk beberapa operator Indonesia: Tabel 2.4 Contoh penulisan SMSC untuk operator di Indonesia



Operator Satelindo Excelcomindo

Nomor SMSC 62816124

Format dalam PDU 05 91 26 18 16 42

(XL) Telkomsel IM3

6281445009 6281100000 62855000000

07 91 26 18 48 54 00 F9 06 91 26 18 01 00 00 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 Nama Nilai



7 RP 0

6 UDHI 0

5 SRR 0

4 VPF 1

3 VPF 0

2 RD 0

1 MTI 0

0 MTI 1

Originator Address (OA) Tabel 2.6 Format OA untuk SMS Deliver PDU Octet Len type of number

Keterangan Panjang nomor Originator Address type dari Originator Address 81h=lokal format 91h=internasional format Nomor Originator Adress. Jika

Nilai 0D 91

26186351208 BCD Digits

panjangnya ganjil, pada akhir 8F5 karakter ditambahkan 0F hexa

Universitas Sumatera Utara

22 Berikut ini contoh format penulisan OA: Tabel 2.7 Format penulisan OA Nomor OA

Format dalam PDU 14 81 BA BC FE HG JI LK NM

ABCDEFGHIJKLMNOPQRST +ABCDEFGHIJKL •

PQ RQ ST 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) 0 F0 F1 F2

Character Coding default (7bit) default (7bit) default (7bit) default (7bit)

Message Class no class class 0 (immediate display) class 1 (Mobile Equipment specific) class 2 ( SIM specific message) class 3 (Terminate Equipment

F3 F4 F5 F6

default (7bit) 8 bit 8 bit 8 bit

specific) class 0 (immediate display) class 1 (Mobile Equipment specific) class 2 ( SIM specific message) class 3 (Terminate Equipment

F7

8 bit

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

Universitas Sumatera Utara

23 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

06

00000 110

110 1111

o

Universitas Sumatera Utara

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

Universitas Sumatera Utara

25 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-

MR

DA

PID

DCS

VP

UDL

UD

Type Gambar 2.9 Skema format SMS Submit PDU

Universitas Sumatera Utara

26 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 Len type of number

Keterangan Panjang informasi SMSC dalam octet Jenis alamat dari SMSC 81h=lokal format 91h=internasional format Nomor SMSC. Jika panjangnya ganjil,

BCD Digits

Nilai 00 None

None pada akhir karakter ditambahkan 0F hexa

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 Nama Nilai

7 RP 0

6 UDHI 0

5 SRR 0

4 VPF 1

3 VPF 0

2 RD 0

1 MTI 0

0 MTI 1

3. Message reference (MR) Pada contoh di atas, MR adalah 00. 4. Destination Address (DA) Penulisan format Destination Address sama dengan Originator Address

Universitas Sumatera Utara

27 Tabel 2.17 Format DA untuk SMS Submit PDU Octet Len type of number

Keterangan Panjang nomor Originator Address type dari Originator Address 81h=lokal format 91h=internasional format Nomor Originator Adress. Jika

Nilai 0D 91

26186351208 BCD Digits

panjangnya ganjil, pada akhir 8F5 karakter ditambahkan 0F hexa

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 dienkode 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

Universitas Sumatera Utara

28 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

Universitas Sumatera Utara

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

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

Universitas Sumatera Utara

30 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

char

1

%c

Keterangan Karakter / String Bilangan Bulat

int

2

%i %d (integer) Bilangan pecahan

float

4

%f (float) Pecahan presisi

double

8

%lf 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

Universitas Sumatera Utara

31 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 fungsifungsi matematik, manipulasi string, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang

Universitas Sumatera Utara

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

Universitas Sumatera Utara

33 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 bitbit 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 4. Jumlah stop bit dan start bit

Universitas Sumatera Utara

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

Universitas Sumatera Utara

35

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

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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

TXEN (Transmitter Enable)

Universitas Sumatera Utara

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

Universitas Sumatera Utara

39 •

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.

Universitas Sumatera Utara

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

Universitas Sumatera Utara

41 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

Universitas Sumatera Utara

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



Memiliki arus rendah yaitu kurang dari 60 µA.

Universitas Sumatera Utara