BAB II LANDASAN TEORI
Pada bab ini akan dijelaskan secara singkat mengenai konsep dan teori yang berkaitan dengan inti perancangan perangkat lunak dan perangkat keras dalam merealisasikan skripsi ini. 2.1 RSS RSS merupakan kependekan dari Really Simple Syndication. RSS merupakan sebuah metode sindikasi (pengumpulan) dan penyatuan isi dari sebuah web dengan format XML (Extensible Markup Language). Secara sederhana, RSS merupakan versi simple dari sebuah website [2]. Dengan teknologi RSS, memungkinkan kita untuk berlangganan kepada situs yang menyediakan umpan web (web feed) RSS. Umpan web merupakan suatu format data yang digunakan untuk melayani isi web yang sering diperbarui. Isi dari web dikumpulkan atau disindikasikan menjadi sebuah koleksi umpan web. Membuat suatu koleksi umpan web yang tersedia pada sebuah lokasi disebut dengan agregasi dan dilakukan oleh agregator. Metode seperti ini memungkinkan para pengguna lebih mudah untuk berlangganan. Berbeda halnya dengan berlanggan koran atau majalah, untuk berlangganan RSS tidak dipungut biaya. RSS biasanya digunakan oleh situs yang isinya selalu diperbarui secara regular. Situs-situs yang biasa menggunakan RSS misalnya adalah situs berita dan situs blog. Teknologi RSS biasanya digunakan untuk berbagai tujuan seperti pemasaran, press release, laporan reguler produk, atau aktivitas lain yang membutuhkan pemberitahuan periodik dan tentunya publikasi.
5
6
RSS juga sangat bermanfaat bagi pembaca yang menginginkan update dari situssitus kegemaran mereka maupun ringkasan tulisan terbaru dari jurnal. RSS dapat dibaca pada perangkat lunak yang di sebut sebagai RSS reader, yang dapat diaplikasikan pada perangkat berbasis web baik perangkat diam maupun perangkat bergerak. Seperti dijelaskan di atas, RSS adalah dokumen XML yang mirip dengan dokumen HTML, dan menggunakan tag di dalam tanda ‘<’ dan ‘>’ untuk mendefinisikan kontennya. Gambar 2.1 merupakan contoh sebuah dokumen RSS.
Gambar 2.1 Contoh Dokumen RSS [7] Pada tingkat paling atas dari sebuah dokumen RSS adalah elemen tunggal
, yang memuat atribut berupa versi RSS dari sebuah dokumen RSS. Selanjutnya, di bawah elemen , terdapat elemen tunggal , yang berisi informasi tentang channel (metadata) dan isinya. Di dalam elemen channel terdapat beberapa sub-elemen - , yang berisikan item informasi. Setiap sub-elemen
- memiliki elemen wajib, dan
7
elemen tambahan. Tabel 2.1 menunjukkan elemen-elemen yang terdapat dalam subelemen - . Tabel 2.1 Elemen-elemen Dalam Sebuah Item Elemen title link description language copyright managingEditor webMaster image lastBuildDate category author pubDate
Penjelasan Elemen Wajib judul dari sebuauh item URL dari item sinopsis item Elemen Tambahan bahasa yang digunakan dalam channel hak cipta dari channel alamat email dari orang bertanggung jawab dalam hal editorial alamat email dari orang yang bertanggung jawab untuk masalah teknis channel memuat gambar yang ditampilkan pada channel waktu terakhir channel diupdate kategori dari item alamat email dari penulis item waktu publish dari item
Setiap elemen, selalu diawali dengan tag <section> dan diakhiri dengan tag (section disini hanyalah contoh nama elemen). Bagian yang berada diantaranya merupakan isi atau konten dari elemen tersebut.
2.2 HTTP Request HyperText Transfer Protocol (HTTP) adalah protokol aplikasi untuk sistem informasi terdistribusi, kolaboratif, dan hypermedia. HTTP adalah dasar dari komunikasi data untuk World Wide Web. Fungsi HTTP adalah sebagai protokol request-response dalam model komputasi client-server. Dalam HTTP, misalnya pada web browser, pengguna diasumsikan sebagai klien, sedangkan aplikasi yang berjalan pada komputer hosting situs web sebagai server. Klien menyampaikan pesan permintaan ke server HTTP. Server, yang menyimpan konten, atau sumber daya, menyediakan sumber seperti file HTML, atau melakukan fungsi lain,
8
mengembalikan sebuah pesan balasan kepada klien. Tanggapan yang dikirimkan berisi tentang informasi permintaan, status penyelesaian dan mungkin mengandung konten yang diminta oleh klien dalam pesannya. HTTP mendifinisikan sembilan metode (terkadang disebut sebagai “kata kerja”) untuk menunjukkan tindakan yang ingin dilakukan pada sumber daya yang diidentifikasi. Apa yang direpresentasikan oleh sumber, baik data yang sudah ada maupun data yang dihasilkan secara dinamis, tergantung pada implementasi server. Beberapa metode dalam HTTP adalah sebagai berikut: 1.
HEAD Meminta respon yang identik yang berkaitan dengan permintaan GET, namun tanpa response body. Metode ini berguna untuk mengambil metainformasi yang terdapat pada response header tanpa harus mengirim seluruh konten.
2.
GET Permintaan representasi dari sumber tertentu. Permintaan menggunakan metode GET seharusnya hanya mengambil data dan tidak memiliki efek lain.
3.
POST Mengajukan data yang akan diproses (misalnya dari bentuk HTML) ke sumber yang diidentifikasi. Data tersebut termasuk dalam body request. Hal ini akan menghasilkan sumber baru atau meng-update sumber yang sudah ada atau bahkan keduanya.
4.
PUT Upload representasi dari sumber tertentu.
9
5.
DELETE Menghapus sumber daya dari sumber tertentu.
6.
TRACE Memberikan pengembalian permintaan yang diterima, sehingga klien dapat melihat perubahan (jika ada) atau penambahan yang telah dibuat oleh server.
7.
OPTION Mengembalikan metode HTTP server bahwa server mendukung untuk URL tertentu. Metode ini dapat digunakan untuk memeriksa fungsi dari sebuah server web dengan meminta ‘*’ dan bukan sumber tertentu.
8.
CONNECT Mengkonversi koneksi permintaan ke jalur TCP/IP transparan. Biasanya digunakan untuk memfasilitasi komunikasi SSL terenkripsi (HTTPS) melalui proxy HTTP tidak terenkripsi.
9.
PATCH Digunakan untuk menerapkan modifikasi parsial untuk sumber.
2.3 Mikrokontroler ARM CortexM0 LPC1114 Mikrokontroler yang dipakai pada skripsi ini adalah ARM CortexM0 LPC1114. ARM adalah prosesor dengan arsitektur set instruksi 32bit RISC (Reduced Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih dikenal dengan kepanjangan Acorn RISC Machine). ARM CortexM0 adalah prosesor dari keluarga ARM Cortex prosesor embedded untuk menggantikan aplikasi mikrokontroler 8/16 bit. Keunggulan ARM CortexM0 dibandingkan mikrokontroler 8/16bit terletak pada :
10
a. Kemampuan komputasi yang lebih tinggi untuk frekuensi kerja yang sama. b. Kemampuan mengakses data 32 bit yang lebih banyak dibandingkan dengan mikrokontroler 8/16 bit. c. Konsumsi daya yang lebih kecil atau sama. d. Jumlah pin yang sedikit (kurang dari 50 pin, tidak memerlukan multilayer PCB, luas PCB yang dibutuhkan kecil, tidak membutuhkan keahlian khusus untuk memasang prosesor di board), tidak seperti prosesor 32bit lainnya (butuh setidaknya 100 pin, multilayer PCB, dan mesin XRay/oven) e. Harga yang lebih murah atau sama. f. Kompatibel dengan ARM CortexM lain (ARM CortexM3, ARM CortexM4). Aplikasi yang dikompile untuk ARM CortexM0 bisa dijalankan di ARM CortexM lainnya. Hal ini berguna untuk upgrade hardware, tanpa membuang software yang sudah dikerjakan [16]. Berikut ini bagian-bagian dari mikrokontroler ARM CortexM0 LPC1114 : 1. ARM CortexM0 Core Processor a. Prosesor dapat bekerja pada frekuensi 12 MHz sampai dengan 50 MHz 2. Memory a. Flash memori sebesar 32KB b. SRAM sebesar 8KB c. ROM 3. Peripheral a. Terdapat 42 GPIO (General Purpose I/O) dengan pull-up/pull-down resistor yang bisa dikonfigurasi setiap pinnya. GPIO dapat digunakan sebagai sumber edge dan level sensitive interrupt. Arus maksimum setiap pin sebesar 20mA.
11
b. 4 timer/counter. 2 timer 16bit dan 2 timer 32 bit. c. Watchdog timer dengan osilator internal. d. 10 bit ADC dengan multiplexing sebanyak 8 pin. e. SPI ( Serial Peripheral Interface ) sebanyak 2 buah. f. I2C Bus. g. Port UART untuk komunikasi serial. h. Terdapat PMU (power management unit) untuk meminimalisasi komsumsi daya dengan 3 mode untuk mengurangi daya yaitu sleep, deep sleep, dan deep power down. 4. Clock Generation a. Internal RC oscillator sebagai clock sytem utama dalam menjalankan mikrokontroler dengan frekuensi sebesar 12 MHz b. Dapat menggunakan Kristal eksternal dengan frekuensi 1‐25MHz c. PLL yang dapat mengoperasikan CPU sampai dengan frekuensi 50 MHz tanpa adanya crystal oscillator luar. PLL ini menggunakan Internal RC oscillator. Untuk konfigurasi pin ARM CortexM0 LPC1114 dapat dilihat pada Gambar 2.2.
Gambar 2.2. Pin ARM CORTEX M0 LPC1114 [6, h.93]
12
Tabel 2.2. Pin ARM CORTEX M0 LPC1114 PIN
Keterangan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
PIO2_6 PIO2_0/DTR/SSEL1 RESET/PIO0_0 PIO0_1/CLKOUT/CT32B0_MAT2 GND XTALIN XTALOUT VDD (3.3 V) PIO1_8/CT16B1_CAP0 PIO0_2/SSEL0/CT16B0_CAP0 PIO2_7 PIO2_8 PIO2_1/DSR/SCK1 PIO0_3 PIO0_4/SCL PIO0_5/SDA PIO1_9/CT16B1_MAT0 PIO3_4 PIO2_4 PIO2_5 PIO3_5 PIO0_6/SCK0 PIO0_7/CTS PIO2_9
PIN 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Keterangan PIO2_10 PIO2_2/DCD/MISO1 PIO0_8/MISO0/CT16B0_MAT0 PIO0_9/MOSI0/CT16B0_MAT1 SWCLK/PIO0_10/SCK0/CT16B0_MAT2 PIO1_10/AD6/CT16B1_MAT1 PIO2_11/SCK0 R/PIO0_11/AD0/CT32B0_MAT3 R/PIO1_0/AD1/CT32B1_CAP0 R/PIO1_1/AD2/CT32B1_MAT0 R/PIO1_2/AD3/CT32B1_MAT1 PIO3_0/DTR PIO3_1/DSR PIO2_3/RI/MOSI1 SWDIO/PIO1_3/AD4/CT32B1_MAT2 PIO1_4/AD5/CT32B1_MAT3/WAKEUP GND PIO1_11/AD7 PIO3_2/DCD VDD (3.3 V) PIO1_5/RTS/CT32B0_CAP0 PIO1_6/RXD/CT32B0_MAT0 PIO3_3/RI PIO2_6
2.3.1 GPIO (General Purpose Input/Output) [6, h.111-117] LPC1114 memiliki 42 GPIO yang dapat digunakan. Disamping fungsinya sebagai GPIO, ada fungsi-fungsi lain yang dapat digunakan. Untuk menggunakan fungsi spesial ini, kita harus mengatur register terlebih dahulu. Berikut register‐register yang terdapat pada GPIO : a. GPIOnData,register data port n b. GPIOnDIR,register direction port n c. GPIOnIS,register interrupt sense port n d. GPIOnIBE,register interrupt both edges port n
e. GPIOnIE,register interrupt mask port n
13
f. GPIOnMIS,register interrupt mask status port n g. GPIOnIC,register interrupt clear port n Tabel 2.3. Tabel register pada gpio Name GPIOnDATA
Access R/W
Address offset 0x0000 to 0x3FF8
Description Port n data address masking register locations for pins PIOn_0 to PIOn_11 (see Section 9.4.1).
Reset value n/a
GPIOnDATA
R/W
0x3FFC
n/a
‐ GPIOnDIR GPIOnIS GPIOnIBE
‐ R/W R/W R/W
0x4000 to 0x7FFC 0x8000 0x8004 0x8008
GPIOnIEV GPIOnIE GPIOnRIS
R/W R/W R
0x800C 0x8010 0x8014
GPIOnMIS
R
0x8018
GPIOnIC ‐
W
0x801C 0x8020 ‐ 0xFFFF
Port n data register for pins PIOn_0 to PIOn_11 reserved Data direction register for port n Interrupt sense register for port n Interrupt both edges register for port n Interrupt mask register for port n Interrupt mask register for port n Raw interrupt status register for port n Masked interrupt status register for port n Interrupt clear register for port n reserved
‐ 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
a. GPIOnData Register GPIOnData menyimpan data kondisi logika pin (high/low) dan tidak dipengaruhi oleh direction pin, maupun fungsi digital lainnya. Jika pin difungsikan sebagai output, maka data pada register GPIOnData akan langsung diteruskan ke masing‐masing pin. Tabel 2.4. Bit pada GPIOnData Bit
Symbol
Description
11:0
DATA
31:12
‐
Logic levels for pins PIOn_0 to PIOn_11. HIGH = 1, LOW = 0 Reserved
Reset Value n/a
Access
‐
‐
R/W
Pembacaan register GPIOnData akan menghasilkan kondisi terakhir logika pin terlepas dari apapun konfigurasi pin tersebut. Karena hanya memiliki sebuah register data untuk kondisi logic pin dan output driver,
14
maka untuk operasi tulis, akan memiliki efek yang berbeda tergantung pada konfigurasi pin:
Jika sebuah pin dikonfigurasikan sebagai input, ketika menulis ke register GPIOnData tidak akan ada efek pada level pinnya. Sedangkan jika proses baca dilakukan, maka akan menghasilkan kondisi logika pin terakhir.
Jika sebuah pin dikonfigurasikan sebagai output, maka data pada GPIOnData akan diteruskan langsung ke pinnya. Nilai yang terbaca bisa merupakan hasil proses penulisan pada GPIOnData, atau merupakan nilai pin tersebut sebelum pin diubah ke GPIO output dari GPIO input atau fungsi digital lainnya.
Jika sebuah pin dikonfigurasikan sebagai fungsi digital lain selain input atau output, proses menulis ke register ini tidak akan mengubah kondisi logika pinnya.
b. GPIOnDIR Register ini berfungsi untuk menentukan konfigurasi direction port. Lihat tabel di bawah ini: Tabel 2.5. Bit pada GPIOnDIR Bit
Symbol Description
Reset Value
Access
11:0
DATA
Selects pin x as input or output (x = 0 to 11). 0 = Pin PIOn_x is configured as input. 1 = Pin PIOn_x is configured as output.
0x00
R/W
31:12
‐
Reserved
‐
‐
Jika register ini diberi data ‘1’ maka pinnya dikonfigurasikan sebagai output, demikian sebaliknya. c. GPIO interrupt sense register Register ini berfungsi untuk menentukan konfigurasi interrupt sense pin.
15
Tabel 2.6. Bit pada GPIO interrupt sense register Bit
Symbol Description
Reset Value
Access
11:0
ISENSE Selects interrupt on pin x as level or edge sensitive (x = 0 to 11). 0 = Interrupt on pin PIOn_x is configured as edge sensitive. 1 = Interrupt on pin PIOn_x is configured as level sensitive.
0x00
R/W
31:12
‐
‐
‐
Reserved
Jika register ini diberi data ‘1’ maka interrupt akan terjadi jika pin dalam kondisi level (high/low), sedangkan jika ‘0’ maka interrupt akan terjadi pada saat perpindahan kondisi logic pin(dari low ke high) atau sebaliknya. d. GPIO interrupt both edge sense register Register ini berfungsi untuk menentukan konfigurasi kondisi yang akan membuat mikrokontroler interrupt. Register ini perlu diatur jika interrupt diperlukan pada pin arm. Tabel 2.7. Bit pada GPIO interrupt both edge sense register Bit
Symbol Description
Reset Value
Access
11:0
IBE
Selects interrupt on pin x to be triggered on both edges (x = 0 to 11). 0 = Interrupt on pin PIOn_x is controlled through register GPIOnIEV. 1 = Both edges on pin PIOn_x trigger an interrupt.
0x00
R/W
31:12
‐
Reserved
‐
‐
e. GPIO interrupt event register Register ini berfungsi untuk menentukan konfigurasi interrupt pin ARM, register ini berhubungan dengan register GPIOnIS, untuk lebih jelasnya dapat dilihat pada Tabel 2.8.
16
Tabel 2.8. Bit pada GPIO interrupt event register Bit
Symbol Description
Reset Value
Access
11:0
IEV
Selects interrupt on pin x to be triggered rising or falling edges (x = 0 to 11). 0 = Depending on setting in register GPIOnIS (see Table 111), falling edges or LOW level on pin PIOn_x trigger an interrupt. 1 = Depending on setting in register GPIOnIS (see Table 111), rising edges or HIGH level on pin PIOn_x trigger an interrupt.
0x00
R/W
31:12
‐
Reserved
‐
‐
f. GPIO interrupt mask register Jika bit di register GPIOnIE diset high maka pin yang diset tadi akan menyebabkan interrupt dan dikombinasikan dengan keadaan register GPIO nINTR. Jika bit diset low maka interrupt tidak akan terjadi. Tabel 2.9. Bit pada GPIO interrupt mask register Bit
Symbol Description
Reset Value
Access
11:0
MASK
Selects interrupt on pin x to be masked (x = 0 to 11). 0 = Interrupt on pin PIOn_x is masked. 1 = Interrupt on pin PIOn_x is not masked.
0x00
R/W
31:12
‐
Reserved
‐
‐
g. GPIO raw interrupt status register Jika register ini dibaca dan menghasilkan ‘1’, maka pin ini berarti sudah terpenuhi semua kebutuhan untuk memicu interrupt. Jika menghasilkan nilai ‘0’ maka sebaliknya. Tabel 2.10. Bit pada GPIO raw interrupt status register Bit
Symbol Description
Reset Value
Access
11:0
RAWST Raw interrupt status (x = 0 to 11). 0 = No interrupt on pin PIOn_x. 1 = Interrupt requirements met on PIOn_x.
0x00
R
31:12
‐
‐
‐
Reserved
17
h. GPIO masked interrupt status register Jika register ini dibaca dan menghasilkan ‘1’ ini merepresentasikan status interrupt. Tabel 2.11. Bit pada GPIO masked interrupt status register Bit
Symbol Description
Reset Value
Access
11:0
MASK
Selects interrupt on pin x to be masked (x = 0 to 11). 0 = No interrupt or interrupt masked on pin PIOn_x. 1 = Interrupt on PIOn_x.
0x00
R
31:12
‐
Reserved
‐
‐
Write / read data operation Untuk menset bit pada GPIO tanpa membuat bit lain ikut berubah dalam satu operasi, bit[13:2] 14 bit address bus digunakan untuk membuat 12 bit mask untuk operasi read/write pada 12 GPIO pada setiap port. Hanya GPIOnData yang di mask ‘1’ yang akan berjalan pada operasi write/read.
Gambar 2.3. Write Operation Jika address bit dan GPIO data bit ‘1’ maka proses baca dapat dilakukan, jika address bit ‘0’ dan GPIO ‘0’ maka proses baca akan ‘0’, proses pembacaan register port data akan di-and-kan dengan address bit. Lihat Gambar 2.4 berikut ini :
18
Gambar 2.4. Read Operation
2.3.2 UART [6, h.118-144] Beberapa spesifikasi UART pada LPC1114 adalah sebagai berikut: 1.
Memiliki lebar data 16-byte untuk penerima dan pemancar FIFO.
2.
Lokasi register sesuai dengan standart industry ‘550.
3.
Memiliki pembangkit baud rate sendiri.
4.
Mendukung 9-bit RS-485/EIA-485 dengan output enable.
5.
Modem control.
Tabel 2.12. Deskripsi Pin UART
19
Beberapa register yang terdapat pada UART adalah sebagai berikut: a.
UART Divisor Latch LSB dan MSB Register UART Divisor Latch merupakan bagian dari pembangkit baud rate dan menyimpan nilai yang digunakan, bersama dengan Fractional Divider, untuk membagi UART_PLCK dalam rangka mendapatkan nilai baud rate clock. Dimana nilai tersebut harus 16x nilai baud rate yang diinginkan. UART DLL dan UART DLM membentuk pembagi 16-bit. DLL merupakan 8-bit bawah dari pembagi, sedangkan DLM merupakan 8-bit atas dari pembagi. Tabel 2.13. Bit pada UART Divisor LSB Register
Bit 7:0
31:8
Symbol Description DLLSB The UART Divisor Latch LSB Register, along with the U0DLM register, determines the baud rate of the UART. ‐ Reserved
Reset Value 0x01
‐
Tabel 2.14. Bit pada UART Divisor MSB Register Bit 7:0
31:8
Symbol Description DLMSB The UART Divisor Latch MSB Register, along with the U0DLL register, determines the baud rate of the UART. ‐ Reserved
b.
Reset Value 0x00
‐
UART Fractional Divider Register UART Fractional Divider Register mengontrol clock pre-scaler untuk pembangkit baud rate dan dapat dibaca dan ditulis berdasarkan keinginan pengguna. Sebagai catatan, jika fractional divider diaktifkan, (DivAddVal>0) dan DLM=0, maka nilai register DLL harus 3 atau lebih besar.
20
Tabel 2.15. Bit pada UART Fractional Divider Register Bit
Symbol
Description
3:0
DIVADDVAL
7:4
MULVAL
31:8
‐
Baud rate generation pre‐scaler divisor value. If this field is 0, fractional baud rate generator will not impact the UART baud rate. Baud rate pre‐scaler multiplier value. This field must be greater or equal 1 for UART to operate properly, regardless of whether the fractional baud rate generator is used or not. Reserved, user software should not write ones to reserved bits. The value read from a reserved bit is not defined.
Reset Value 0 1
0
Untuk mendapatkan nilai baud rate yang diinginkan, rumus yang digunakan adalah seperti terlihat pada Persamaan 2.1.
(2.1) dimana, UART_PLCK merupakan peripheral clock, DLM dan DLL merupakan standar UART baud rate register, dan DIVADDVAL dan MULVAL merupakan fractional baud rate. Nilai dari MULVAL dan DIVADDVAL harus memenuhi kondisi berikut: 1. 1
MULVAL 15
2. 0 DIVADDVAL 14 3. DIVADDVAL MULVAL Nilai dari U0FDR tidak dapat diubah selama proses mengirim dan menerima data atau data akan hilang. Jika nilai register U0FDR tidak memenuhi kondisi diatas, maka keluaran dari fractional divider tidak dapat didefinisikan. Jika DIVADDVAL benilai 0 maka fractional divider tidak aktif, dan menyebabkan clock tidak dapat dibagi.
21
c.
UART FIFO Control Register Sesuai dengan namanya, register ini berfungsi untuk mengatur FIFO untuk RX dan TX dari UART. Tabel 2.16. Bit pada UART FIFO Control Register
d.
UART Line Control Register UART Line Control Register menentukan format karakter data yang dikirim maupun diterima.
22
Tabel 2.17. Bit pada UART Line Control Register
e.
UART Interrupt Identification Register UART IIR menyediakan kode status yang menunjukkan prioritas dan sumber dari interrupt. Interrupt – interrupt tersebut akan disimpan selama proses akses U0IIR. Jika ada interrupt yang muncul selama proses akses U0IIR, maka interrupt tersebut akan disimpan untuk proses akses selanjutnya.
23
Tabel 2.18. Bit pada UART Interrupt Identification Register
f.
UART Interrupt Enable Register Register ini berfungsi untuk mengaktifkan empat sumber interrupt UART.
24
Tabel 2.19. Bit pada UART Interrupt Enabel Register
g.
UART Line Status Register UART Line Status Register merupakan register yang hanya bisa dibaca. U0LSR menyediakan status informasi dalam blok UART TX dan RX.
25
Tabel 2.20. Bit pada UART Line Status Register
26
h.
UART Transmit Holding Register UART THR adalah byte teratas dalam UART TX FIFO. Byte paling atas adalah karakter paling baru dalam TX FIFO dan dapat ditulis melalui bus interface. LSBnya menunjukkan bit pertama yang akan dikirim. Untuk mengakses U0THR, Divisor Latch Access Bit (DLAB) dalam U0LCR harus bernilai 0. U0THR merupakan register yang hanya dapat ditulis. Tabel 2.21. Bit pada UART Transmit Holding Register
Bit
Symbol
Description
7:0
RBR
Writing to the UART Transmit Holding Register causes the data to be stored in the UART transmit FIFO. The byte will be sent when it reaches the bottom of the FIFO and the transmitter is available. Reserved
31:8
‐
i.
Reset Value NA
‐
UART Receive Buffer Register UART RBR adalah byte paling atas dalam UART RX FIFO. Byte paling atas berisikan karakter paling lama yang diterima dan bisa dibaca melalui bus interface. LSBnya merupakan data bit yang diterima paling ‘lama’. jika karakter yang diterima kurang daripada 8bit, MSB yang tidak dipakai akan diisi dengan nol. Untuk mengakses U0RBR, Divisor Latch Access Bit (DLAB) dalam U0LCR harus bernilai 0. U0RBR merupakan register yang hanya dapat dibaca. Tabel 2.22. Bit pada UART Receive Buffer Register
Bit 7:0
31:8
Symbol Description Reset Value RBR The UART Receiver Buffer Register Undefined contains the oldest received byte in the UART RX FIFO. ‐ Reserved ‐
27
2.4 SIM300 SIM300 adalah sebuah Tri-Band GSM/GPRS modem yang memiliki beberapa spesifikasi sebagai berikut:
Dapat mencari 3 band frekuensi secara otomatis, yaitu EGSM 900, DCS 1800 dan PCS 1900.
Memiliki serial port dengan pengaturan baud rate otomatis antara 4800 bps sampai 115200 bps.
Mendukung koneksi GPRS.
Memiliki antena eksternal.
Ukuran dimensi SIM300 adalah sebesar 5 cm (panjang) x 3 cm (lebar) seperti terlihat pada Gambar 2.5.
Gambar 2.5. SIM300 [14, h.70]
28
SIM300 memiliki 60 pin. Tabel 2.5 menunjukkan konfigurasi pin pada SIM300. Tabel 2.23. Konfigurasi Pin SIM300 [14, h.70-71]
Beberapa perintah ATCommand yang digunakan untuk mengakses komunikasi GPRS menggunakan SIM300 terlihat pada Tabel 2.24.
29
Tabel 2.24. ATCommand koneksi GPRS Perintah
Penjelasan Set APN, USER ID, PASSWORD
AT+CSTT AT+CDNSCFG
Set DNS
AT+CIICR
Memulai koneksi GPRS Mengambil IP Address dari Provider Set Pilihan Koneksi Membuka koneksi ke TCP server
AT+CIFSR AT+CDNSORIP AT+CIPSTART AT+CIPSEND
Format AT+CSTT= <“APN”>,<“USER ID”>,<“PASSWORD”>
AT+CDNSCFG= <”pri_dns”>,<”sec_dns”>
Memulai Pengiriman Data
AT+CIICR AT+CIFSR AT+CDNSORIP=0/1 AT+CIPSTART=(”TCP”/”UDP”),(“IP ADDRESS”/”DOMAIN NAME”),“PORT”
AT+CIPSEND, kemudian kirim HTTP request, lalu CTRL+Z
2.5 General Packet Radio Service (GPRS) GPRS merupakan paket layanan data bergerak pada jaringan komunikasi seluler 2G dan 3G. Tarif penggunaan GPRS biasanya dibebankan berdasarkan besar data. Hal ini sebenarnya bertentangan dengan data circuit switching yang seharusnya dikenakan per menit berdasarkan waktu koneksi, terlepas dari jumlah transfer data selama periode tersebut. GPRS menyediakan kecepatan transfer data hingga mencapai 56-118kbit/detik [4]. Kecepatan data tersebut menyediakan kecepatan transfer data sedang, dengan menggunakan saluran TDMA (Time Division Multiple Access). TDMA merupakan metode saluran akses untuk jaringan bersama. Ini berarti TDMA memungkinkan beberapa pengguna untuk berbagi saluran frekuensi yang sama pada waktu yang berbeda. Teknologi TDMA digunakan pada jaringan seluler 2G untuk GSM (Global System for Mobile Communications). GSM adalah set standar yang mendeskripsikan teknologi jaringan seluler digital 2G.
30
GPRS menyediakan layanan yang ditawarkan pada penggunanya, antara lain:
Pesan SMS (Short Message Service) dan broadcasting
Akses internet melalui WAP (Wireless Application Protocol)
MMS (Multimedia Messaging Service)
Push to talk
P2P (Point to Point)
P2M (Point to Multipoint) WAP adalah standar teknologi untuk mengakses informasi melalui jaringan seluler.
Sebuah browser WAP dapat terintegrasi pada telepon seluler untuk mengakses web yang menggunakan protokol WAP. Dukungan layanan WAP sangat terbatas, maka dari itu perlu dukungan dari beberapa aplikasi untuk internet dan web. GPRS dapat didukung oleh perangkat yang dibagi menjadi tiga kelas, yaitu:
Kelas A : dapat tersambung ke layanan GPRS dan GSM (suara, SMS) secara bersamaan.
Kelas B : dapat tersambung ke layanan GPRS dan GSM namun hanya dapat bergantian. Tipe kelas ini yang sering dipakai oleh perangkat bergerak.
Kelas C : dapat tersambung ke layanan GPRS dan GSM namun bergantian dan diatur manual oleh layanan. Koneksi pada GPRS terbentuk dari referensi APN (Access Point Name). APN
inilah yang mendefinisikan layanan seperti WAP, SMS, MMS, maupun koneksi internet untuk email dan web. Untuk menggunakan koneksi GPRS pada modem nirkabel, pengguna harus mengatur APN diikuti dengan nama, password, dan IP (Internet Protocol). APN
adalah
protokol
internet
untuk
komputer
maupun
seluler
yang
memperbolehkan perangkat untuk mengakses internet menggunakan jaringan seluler bergerak. Dalam akses jaringan bergerak, APN telah disediakan oleh operator jaringan
31
bergerak yang memungkinkan untuk mengakses internet. Dalam telepon seluler, jaringan 2G mempunyai kecepatan akses 16Kbps sampai 32Kbps. Sedangkan jaringan 3G mempunyai kecepatan akses 2Mbps sampai 3,5Mbps. APN merupakan pengidentifikasi jaringan yang dapat dikonfigurasi oleh perangkat bergerak saat terhubung ke operator GSM, dimana operator akan memeriksa pengenal ini untuk menentukan jenis jaringan yang harus dibuat. 2.6 Dotmatrix LED [8, h.38-40] Dotmatrix LED adalah sebuah kumpulan LED yang telah terintegrasi dalam sebuah bentuk, umumnya terdiri 8x8 LED, dan 5x7 LED.
Gambar 2.6. Dotmatrix 5x7 LED
Gambar 2.7. Diagram Dotmatrix LED 5x7
32
Terdapat dua tipe dotmatrix LED yang beredar di pasaran, yaitu seperti nampak pada gambar 2.7 Dotmatrix sebelah kiri disebut common anode coloumns (tipe 1) dan pada sebelah kanan disebut common cathode coloumns (tipe 2). Konsep untuk menyalakan dotmatrix ini adalah sama seperti menyalakan sebuah LED. Ketika anoda diberi tegangan positif (VCC) dan katoda diberi tegangan negatif (GND) maka LED akan menyala. Apabila diinginkan muncul pola nyala LED tertentu pada dotmatrix, maka dibutuhkan scanning pada baris atau kolomnya. Scanning baris atau kolom disini adalah menghidupmatikan kolom atau baris secara bergantian dengan cepat sehingga tampak dotmatrix tersebut menyala secara bersamaan. 1
2
3
4
5
B B B B B B B
Gambar 2.8. Ilustrasi pola pada dotmatrix LED 5x7 Gambar 2.8 diatas adalah gambar ilustrasi nyala dotmatrix dengan pola huruf “A”. Diasumsikan bahwa angka “0” adalah LED mati, dan angka “1” adalah LED menyala. Berurutan B1,B2,…B7 merupakan baris, sedangkan 1,2,…5 adalah kolom. Jika pola “A” direpresentasikan secara heksadesimal adalah sebagai berikut (0x04, 0x0A, 0x11, 0x11, 0x1F, 0x11, 0x11 ). Agar huruf “A” tertampil, yang perlu dilakukan adalah memuat nilai 0x04 pada kolom dan menyalakan baris pertama (B1) dengan baris yang lain mati. Selanjutnya muat nilai 0x0A pada kolom dan hanya baris 2 (B2) yang dinyalakan, berlanjut ke nilai selanjutnya. Proses ini terus berulang sampai semua pola telah termuat dan dengan frekuensi scanning yang cepat. Maka akan didapatkkan pola huruf “A” pada dotmatrix LED.