bab 2 dasar teori - Perpustakaan Digital ITB

advertisement
BAB 2
DASAR TEORI
2.1. Sistem Embedded
Sistem embedded (embedded system) adalah sebuah sistem komputer yang
digunakan untuk tujuan khusus, yang secara lengkap dienkapsulasi oleh perangkat
yang dikendalikannya. Sistem embedded dibangun atas dasar kebutuhan spesifik
dan menjalankan proses yang telah didefinisikan terlebih dahulu, tidak seperti
personal computer (PC) yang bersifat general-purpose.
Beberapa perbedaan antara sebuah sistem embedded dengan PC adalah :
sistem embedded dibuat khusus untuk pekerjaan yang spesifik, sedangkan PC
merupakan platfrom untuk komputasi yang generik,
sistem embedded didukung oleh banyak jenis prosesor dan arsitektur prosesor,
sistem embedded biasanya bersifat cost-sensitive,
sistem embedded biasanya memiliki constraint waktu,
sistem operasi yang digunakan untuk sistem embedded biasanya adalah realtime operating system (RTOS),
dampak dari kegagalan software di sistem embedded lebih fatal daripada di
sistem desktop,
sistem embedded sering memiliki constraint daya,
sistem embedded sering harus beroperasi pada kondisi lingkungan yang
ekstrim,
sistem embedded memiliki resource sistem yang jauh lebih sedikit,
sistem embedded sering menyimpan program di ROM,
sistem embedded membutuhkan tool dan metode yang dirancang secara efisien,
embedded microprocessor sering memiliki rangkaian debugging yang khusus.
2.1.1. Host dan Target
Dalam pengembangan suatu sistem embedded, sistem yang digunakan untuk
melakukan pengembangan (menulis source code, meng-compile, dan sebagainya)
disebut sebagai host, sedangkan hardware yang sesungguhnya akan digunakan
4
sebagai sistem embedded disebut sebagai target atau embedded target.
Toolchain adalah kumpulan program yang digunakan untuk membangun
aplikasi, dalam hal ini digunakan di host PC untuk membangun aplikasi embedded
yang akan dimasukkan ke embedded target. Beberapa contoh program yang
termasuk toolchain adalah assembler, compiler, dan linker. Cross-compiling adalah
proses membangun program aplikasi untuk suatu sistem pada sistem lain, dalam hal
ini proses membangun aplikasi untuk embedded target yang dilakukan di host PC.
2.1.2. Embedded / Real-Time Operating System
Embedded Operating System adalah sebuah sistem operasi untuk sistem
embedded. Sistem operasi ini dirancang secara efisien dan compact, mengabaikan
fungsi-fungsi yang disediakan oleh sistem operasi computer non-embedded, dan
tidak dapat digunakan oleh aplikasi khusus yang dijalankan.
Salah satu jenis khusus dari sistem operasi embedded adalah Real-Time
Operating System (RTOS), yaitu sistem operasi yang mendukung multitasking
untuk memfasilitasi aplikasi real-time system. Real-time system adalah sistem yang
memiliki constraint waktu, di mana kebenaran dari suatu operasi tidak hanya
bergantung pada kebenaran secara logika, tetapi juga pada waktu ketika operasi
tersebut dilakukan. Sistem tersebut disebut hard real-time system apabila operasi
yang selesai setelah deadline mengakibatkan kegagalan pada sistem. Sedangkan
pada soft real-time system, keterlambatan tersebut dapat ditoleransi, hanya saja
menghasilkan kualitas kerja yang lebih rendah.
Sebuah RTOS biasanya menggunakan algoritma scheduling yang khusus
agar dapat menyediakan tool yang dibutuhkan untuk menghasilkan deterministic
behaviour pada sistem akhir. RTOS lebih dihargai untuk seberapa cepat atau dapat
diprediksinya respons terhadap suatu event daripada berapa banyak pekerjaan yang
dapat dilakukan dalam suatu waktu. Karena itu faktor kunci dari RTOS adalah
waktu yang minimal untuk memproses interrupt dan perpindahan task.
5
2.2. Sistem Operasi eCos
2.2.1. Sejarah Singkat
Cygnus Solutions didirikan pada tahun 1989 dengan ide menyediakan
dukungan dan pengembangan penuh terhadap perangkat lunak open source.
Perusahaan ini sukses mempaketkan, mengembangkan dan mendukung seperangkat
alat termasuk GNU Compiler Collection (GCC) dan GNU Debugger (GDB). Di
tahun 1997, dengan kesuksesan model dukungan open-source, Cygnus memulai
pengembangan sebuah real time operating system untuk melengkapi perangkat
GNUPro mereka. Tujuannya untuk menghasilkan real-time operating system
berukuran kecil dan dapat dikonfigurasi, sehingga dapat dimanfaatkan untuk solusi
komersial, tapi bebas royalty. Hasilnya adalah Embedded Configurable Operating
System (eCos).
eCos terus tumbuh dan berkembang. Hingga kini telah mendukung berbagai
tipe prosesor semisal: ARM (termasuk Intel Xscale IX425), Intel IA32, MIPS,
Motorola PowerPC (termasuk prosesor MPC74xx G4), Motorola 68k/Coldfire, Sun
SPARC, Renesas H8/300H, SuperH, NEC V850, Fujitsu FRV, Matsushita AM3x,
Samsung CalmRISC dan beberapa lainnya. Juga telah digunakan di berbagai
produk komersial seperti : Sistem Keamanan pada industri otomotif Volvo dan
Ford, Gameboy Advance, Mobile phones 3G Labs, Multimedia Iomega HipZip, dan
Video, Audio, dan MPEG Sun.
2.2.2. Arsitektural eCos
eCos dibangun berbasis arsitektur layered software. Portabilitas aplikasi dan
penggunaan kembali perangkat lunak ditingkatkan dengan membangun abstraksi
detail perangkat keras target dari aplikasi. Garis putus-putus pada Gambar 2.3
membagi lapisan komponen perangkat lunak. Lapisan pertama di atas garis putusputus : kernel, networking stack, dan filesystem bersifat independen terhadap
perangkat keras pemroses pada board. Komponen ini berantarmuka dengan
kompatibilitas di atasnya dan lapisan library untuk menghasilkan platform
konsisten untuk lapisan aplikasi. Di bawah garis putus-putus adalah RedBoot ROM
monitor, Hardware Abstraction Layer (HAL), dan device driver. Komponen ini
6
ditulis dan dikonfigurasi untuk perangkat keras target spesifik.
Gambar 2.1: Sistem embedded dengan lapisan paket eCos
Dalam eCos dikenal istilah Component Repository, yaitu struktur direktori
yang memuat semua paket dari sebuah instalasi eCos. Kerangka komponen
termasuk sebuah Package Administration Tool untuk menambahkan paket baru,
memperbaharui paket yang sudah ada, dan menghapus paket lama yang ada dalam
repository. Direktori utama eCos memuat file-file distribusi eCos. Subdirektori yang
memuat component repository disebut packages. Sebuah file database, ecos.db
(berada dalam direktori packages) dikelola oleh Package Adminstration Tool dan
berisi keterangan detail tentang berbagai jenis paket dalam component repository.
Tabel 2.1: Deskripsi struktur direktori Component Repository eCos
Direktori
compat
cygmon
devs
error
fs
Deskripsi
Berisi paket untuk POSIX (IEEE 1003.1) dan uITRON 3.0
Paket untuk Cygmon standalone debug monitor
Memuat semua device driver komponen hardware-specific seperti
komunikasi serial, Ethernet, dan PCMCIA
Berisi paket identifikasi kesalahan umum dan status kode.
Hal ini memungkinkan terjadinya keseragaman diantara paketpaket
untuk menyatakan adanya error dan kondisi status
Berisi paket file sistem ROM dan RAM
7
Gabungan semua paket target perangkat keras HAL
Berisi infrastruktur eCos seperti tipe standard, macro, tracing,
infra
assertion,
dan opsi startup
Paket untuk semua dukungan sistem Input/Output (I/O) hardwareio
independent,
seperti Ethernet, flash, dan serial, yang merupakan basis
system device drivers
isoinfra Berisi paket yang menyediakan dukungan untuk ISO C library
(seperti stdlib dan stdio) dan implementasi POSIX
kernel
Berisi paket yang menyediakan fungsional inti (seperti scheduler,
semaphore, dan thread) pada kernel eCos
Gabungan paket untuk library matematika dan ISO C, yang
language memungkinkan
aplikasi menggunakan fungsi library C standard dan library
floating-point matematika
Paket untuk dukungan networking dasar, termasuk TCP, UDP dan
net
IP,
dan protokol SNMP, serta agen pendukung library berbasis proyek
UCD-SNMP
redboot
Berisi paket untuk RedBoot standalone debug ROM monitor
Berisi paket untuk alokasi memori dinamis dan dukungan untuk
services library
kompresi dan dekompresi
hal
2.2.3. Hardware Abstraction Layer (HAL)
HAL adalah komponen utama dalam portabilitas eCos. Ini menyediakan
API yang konsisten terhadap layer atas sistem operasi. Tiap platform perangkat
keras memiliki HAL sendiri untuk mendukung prosesor spesifik dan set
periferalnya. HAL dibangun atas tiga modul : Architecture, Variant, dan Platform.
Modul Architecture mendefinisikan tipe keluarga prosesor, contohnya keluarga
Motorola MPC74xx PowerPC. Modul Variant mendukung fitur prosesor spesifik
dalam keluarga prosesor tersebut. Menggunakan contoh Motorola tadi, modul ini
dapat mendukung MPC7457 dan periferal on-chip spesifik untuk prosesor tersebut.
Modul Platform memperluas dukungan HAL periferal terkait semisal pengendali
interrupt dan devais timer.
Sebagai paket lengkap, HAL juga menyertakan komponen untuk
sumberdaya platform spesifik, loading dan booting, interrupt, context switch, cache
startup, source level debugging, ROM monitor dan beberapa lainnya. Untuk
mempertahankan konfigurabilitas, hanya komponen HAL yang secara aktual
8
dibutuhkan oleh aplikasi atau platform spesifik yang dibangun ke dalam kernel.
HAL juga menyediakan fasilitas real-time untuk board spesifik, termasuk
exception handler, interrupt handler, dan virtual vector. Exception handler
memungkinkan embedded system memperbaiki dari kondisi exception perangkat
keras semisal overflow, bad memory access, atau operasi pembagi oleh nol. Kondisi
ini harus dicegah karena karena dapat mengacaukan sistem, sehingga harus
ditangani secara benar oleh HAL, kernel, atau aplikasi itu sendiri.
Interrupt penting untuk operasi real-time, namun agar efisien, harus
digunakan untuk mencapai kondisi kerja terbaik prosesor perangkat keras. Terdapat
dua jenis interrupt. Interrupt Service Routine (ISR) digunakan untuk proses
sederhana yang berlangsung cepat. Deferred Service Routines (DSR) digunakan
untuk proses kompleks. Dengan kedua tipe ini, pengguna dapat menyusun prioritas
interrupt sesuai kebutuhan sistem. Virtual vector mendukung ROM berbasis
monitor, memungkinkan debugging aplikasi melalui Ethernet atau kanal
komunikasi serial.
2.2.4. RedBoot ROM Monitor
Red Hat Embedded Debug and Bootstrap (RedBoot) menyediakan
lingkungan untuk bootstrap dan debugging untuk sistem yang berbasiskan eCos.
RedBoot dikembangkan sebagai aplikasi eCos tanpa kernel dan dapat digunakan
untuk melakukan booting aplikasi eCos lain dan juga RTOS lain. Beberapa fitur
RedBoot adalah boot scripting, Command Line Interface (CLI), akses melalui port
serial atau ethernet, dukungan untuk GDB, dukungan untuk flash image, dan
bootstrap melalui jaringan. Meskipun RedBoot merupakan program yang
standalone, proses konfigurasi dan build-nya sama seperti aplikasi eCos.
2.2.5. Paket I/O (Device Driver)
Paket I/O di eCos dirancang sebagai framework yang general-purpose
untuk mendukung device driver, dari serial port sampai networking stack.
Komponen dari paket I/O, dikonfigurasi pada sistem seperti komponen-komponen
lainnya. User juga dapat menambahkan driver yang dibuat sendiri. Meskipun driver
dapat dianggap static, pengaksesannya dilakukan melalui sebuah “handle”. Setiap
9
device pada sistem memiliki nama yang unik dan dapat dipetakan ke sebuah handle.
2.2.6. Kernel eCos
Kernel eCos dirancang untuk mencapai empat tujuan :
•
Low interrupt latency, waktu yang dibutuhkan untuk merespon sebuah interrupt
dan memulai eksekusi ISR;
•
Low task switching latency, waktu yang dibutuhkan saat sebuah thread menjadi
tersedia ketika eksekusi sebenarnya dimulai;
•
Small memory footprint, sumber daya memory untuk program dan data
dipertahankan
minimum
dengan
memungkinkan
semua
komponen
mengalokasikan memory sesuai kebutuhan;
•
Deterministic behavior, sepanjang eksekusi, performa kernel harus dapat
diprediksi dan dibatasi sehingga memenuhi kebutuhan aplikasi real-time.
eCos menawarkan fitur menarik untuk memperlancar performa aplikasi,
opsi untuk membangun dengan atau tanpa kernel aktual. Pada aplikasi sederhana
yang tidak membutuhkan scheduling atau multi-tasking, fungsi eCos untuk
mengatur dan menjalankan perangkat keras dapat dibangun tanpa kernel,
meningkatkan kecepatan eksekusi dan mengurangi memory footprint. Pada banyak
aplikasi DSP tradisional tipe pemrosesan ini sudah umum.
Sebuah aplikasi khusus dapat terdiri dari sebuah aliran data konstan yang
diterima dari sebuah perangkat keras semisal A/D converter. Setelah buffer
masukan terisi data, dikirim sinyal ke prosesor dengan interrupt dan data
dipindahkan ke dalam memory prosesor dengan kanal DMA. Waktu eksekusi
pemrosesan data konsisten dengan setiap paket data dan kurang dari waktu yang
dibutuhkan untuk paket lain yang akan diproses. Setelah proses selesai, data
dipindahkan dari memory prosesor ke buffer keluaran menggunaan DMA lain. Tipe
aplikasi ini tidak membutuhkan scheduling dinamis atau multi-tasking dan
memberikan keuntungan dalam hal kecepatan eksekusi yang lebih cepat dan
pemakaian memory yang lebih kecil dengan tidak menggunakan kernel.
Lebih jauh lagi, eCos adalah sistem operasi lengkap dengan fitur kernel dan
komponen inti termasuk : scheduling dan sinkronisasi, interrupt dan exception
10
handling, counters, clocks, alarms, timers,POSIX dan uITRON compatibility layer,
ROM monitor, RAM dan ROM filesystem, dukungan PCI, TCP/IP networking, dan
fitir tambahan oleh para pengembang.
2.2.7. eCos Scheduler
Dua tipe scheduler tersedia pada eCos : multilevel queue scheduler dan
bitmap scheduler. Multilevel queue scheduler memungkinkan thread diberi nilai
prioritas dari level 0 hingga 31, dengan 0 adalah prioritas tertinggi dan 31 terendah.
Pada tiap level multiple thread dapat dieksekusi dan pengambilalihan prioritas antar
level dimungkinkan, sehingga thread dengan level lebih tinggi dapat dijalankan
ketika thread dengan level lebih rendah sedang dihentikan. Timeslicing juga
didukung dengan level prioritas dan across priority level, yang memungkinkan
adanya penetapan waktu eksekusi sebelum melepaskan sumber daya ke thread
berikutnya. Multilevel queue scheduler mendukung Symmetric Multi-Processing
(SMP).
Bitmap scheduler adalah scheduler yang lebih sederhana dan efisien. Juga
mendukung 32 level prioritas, tapi hanya satu thread yang dapat dijalankan pada
masing-masing level. Pengambilalihan prioritas dimungkinkan, tapi timeslicing
antar thread tidak, dan tidak dibutuhkan karena masing-masing level hanya
mengizinkan thread tunggal. Dan dengan pilihan dengan atau tanpa kernel, eCos
memungkinkan keseimbangan antara fitur dan efisiensi schudelur yang akan
dikonfigurasi oleh pengguna untuk mencocokkan dengan kebutuhan.
2.2.8. Filesystem
Infrastruktur filesystem di eCos diimplementasikan oleh paket FILEIO dan
menyediakan operasi file yang sesuai dengan standard POSIX.
Filesystem yang didukung oleh eCos adalah ramfs, romfs, FAT, dan JFFS2.
RAM Filesystem (ramfs) digunakan untuk melakukan operasi file I/O bukan pada
storage melainkan pada RAM. ROM Filesystem (romfs) adalah filesystem yang
hanya dapat dibaca dan tidak dapat ditulis. File Allocation Table (FAT) merupakan
sebuah filesystem yang sudah umum digunakan, misalnya sebagai filesystem untuk
sistem operasi Windows 9x. Journaling Flash Filesystem version 2 (JFFS2) adalah
11
filesystem yang umum digunakan pada flash memory.
2.2.9. Networking Stack
Perancangan TCP/IP Stack di eCos memungkinkan stack menjadi modular
dan pada saat ini mendukung dua implementasi yang berbeda, yaitu dari OpenBSD
dari tahun 2000 dan versi yang lebih baru berdasarkan dari FreeBSD.
2.2.10. Web Server
eCos menyediakan sebuah HTTP server yang sederhana untuk digunakan
aplikasi. Server ini secara spesifik dibuat untuk kendali dan pengamatan secara
remote terhadap aplikasi embedded. Karena itu penekanannya adalah pada content
yang dibuat secara dinamik, form handling, dan interface CGI. Server ini juga dapat
mendukung IPv6 apabila konfigurasi eCos memiliki IPv6.
2.2.11. Library
Untuk memfasilitasi aplikasi, eCos menyediakan library untuk C dan untuk
fungsi matematika. C Library menyediakan fungsi-fungsi standard C sesuai
spesifikasi ISO 9899:1990 untuk library standard C, yang secara esensial sama
dengan spesifikasi ANSI C3.159-1989 (C-89). Library matematika menyediakan
fungsi-fungsi untuk operasi matematika.
2.2.12. Compatibility Layer
Untuk memudahkan porting aplikasi ke eCos, eCos menyediakan
kompatibilitas dengan POSIX dan µITRON.
Dukungan untuk POSIX terbagi antara paket POSIX dan FILEIO. Paket
POSIX menyediakan dukungan untuk thread, signal, sinkronisasi, timer, dan
message queue. Paket FILEIO menyediakan dukungan untuk file dan device I/O.
Spesifikasi µITRON mendefinisikan arsitektur sistem operasi yang sangat
fleksibel dan dirancang khusus untuk aplikasi embedded. Spesifikasi tersebut dapat
diimplementasikan pada banyak platform dan memberikan keuntungan yang
signifikan dengan mengurangi usaha yang diperlukan dalam memahami dan
melakukan porting aplikasi ke arsitektur prosesor yang baru.
12
2.2.13. Lisensi eCos dan Dukungan Pihak Ketiga
eCos didistribusikan dibawah GNU General Public License (GPL) versi 2
dengan pengecualian untuk linking (linking exception). Lisensi ini memberikan hak
untuk secara bebas mendapatkan source code, memodifikasi, dan kemudian
mendistribusikannya. Perangkat lunak yang dimodifikasi dari distribusi asli dapat
didistribusikan kembali jika mengidentifikasikan perangkat lunak aslinya dan
modifikasi yang dilakukan. Hasil modifikasi juga dilindungi di bawah GPL. Tetapi
karena ada pengecualian untuk linking, berbeda dengan syarat lisensi GPL yang
standard, aplikasi yang hanya melakukan linking ke eCos tanpa memodifikasi eCos
tidak perlu dilisensi dengan GPL.
Karena dilatarbelakangi lingkungan open-source, eCos menyertakan
sejumlah fungsi tambahan dari lingkungan yang mendukungnya. Fungsi-fungsi ini
biasanya disediakan oleh kontributor pihak ketiga eksternal, sebagai hasil
pengembangan berdasar kebutuhan mereka sendiri. Beberapa diantaranya adalah :
POSIX, EL/IX, dan uITRON Compatibility Layers, ROM Monitor, RAM dan ROM
filesystem, PCI, TCP/IP Networking, Embedded Simple Object Access Protocol
(SOAP) Toolkit, Kaffe Java Virtual Machine, Bluetooth dan Wireless Application
Protocol (WAP), dan Embedded Web Server.
2.2.14. Perbandingan dengan Embedded OS lain
Tabel 2.2, diambil dari ”An Introduction to eCos”, paper yang ditulis oleh
Robert Sgandurra, membandingkan beberapa fitur dasar dari eCos dengan tiga
embedded OS lain.
13
Tabel 2.2: Perbandingan antara eCos, VxWorks, Linux, dan Real-Time Linux
14
2.3. Pengiriman Dokumen Fax
2.3.1. Umum
Fax (singkatan dari facsimile dari bahasa Latin “fac simile” yang artinya
“membuat serupa” atau “membuat sebuah salinan”) adalah sebuah teknologi
telekomunikasi yang digunakan untuk pertukaran salinan dokumen, khususnya
menggunakan devais yang beroperasi pada jaringan telepon. Istilah telecopy dan
telefax juga digunakan sebagai sinonim.
Mesin fax pada dasarnya dibentuk dari sebuah scanner, sebuah modem, dan
sebuah printer. Scanner mengubah isi fisik dokumen ke dalam bentuk gambar
digital, modem mengirim data gambar melalui jaringan telepon, dan printer
menghasilkan salinan / duplikat dokumen aslinya.
Secara umum, prosedur pengiriman dokumen antara dua terminal fax pada
PSTN terdiri dari :
•
proses memulai dan mengakhiri panggilan,
•
pencocokan kompatibilitas, status, dan pengendalian perintah,
•
pemeriksaan dan pengawasan saluran,
•
fungsi pengendalian dan pemanggilan kembali dokumen fax oleh operator.
2.3.2. Prosedur Kerja Mesin Fax
Pada proses panggilan fax yang umum terjadi tanpa adanya kesalahan,
tahapan panggilan dapat diilustrasikan pada Gambar 2.2.
Gambar 2.2: Prosedur kerja fax
15
2.3.2.1. Fase A – Prosedur Memulai Panggilan
Proses terjadinya sebuah panggilan fax dapat dilakukan secara manual,
dengan keberadaan seorang operator, atau secara otomatis. Terdapat empat metoda
operasi yang dapat dilakukan, yaitu :
yaitu :
• operasi manual pada terminal pemanggil dan operasi manual pada terminal
terpanggil,
•
operasi manual pada terminal pemanggil dan operasi otomatis pada terminal
terpanggil,
•
operasi otomatis pada terminal pemanggil dan operasi manual pada terminal
terpanggil,
•
operasi otomatis pada terminal pemanggil dan operasi otomatis pada terminal
terpanggil.
2.3.2.2. Fase B – Prosedur Pra Pengiriman Pesan
Fase ini terdiri dari proses identifikasi kapabilitas dan pemanggilan
perintah-perintah dari kondisi yang dipilih sesuai konfirmasi dari kondisi yang
diterima.
Pada fase ini terdapat dua bagian penting, yaitu bagian identifikasi dan
bagian perintah. Bagian identifikasi mencakup identifikasi kapabilitas, konfirmasi
untuk penerimaan, identifikasi terminal (opsional), dan identifikasi fasilitas nonstandard (opsional). Pada bagian perintah, terdapat perintah pemeriksaan
kapabilitas, training, sinkronisasi, dan beberapa perintah tambahan seperti : perintah
untuk fasilitas non-standard, identifikasi terminal, perintah polling (pengiriman) dan
penghilangan peredam gema (echo suppresser disabling).
2.3.2.3. Fase C1 – Prosedur In-message
Prosedur ini terjadi bersamaan waktunya dengan pengiriman pesan dan
pengendalian terhadap proses pensinyalan secara lengkap untuk prosedur saat
pengriman pesan, misalnya sinkronisasi saat pengiriman pesan, pendeteksi
kesalahan dan perbaikan serta pengawasan saluran.
16
2.3.2.4. Fase C2 – Prosedur Pengiriman Pesan
Pada fase ini pesan dikitim sesuai standard fax yang sudah ditetapkan oleh
International Telecommunication Union (ITU).
2.3.2.5. Fase D – Prosedur Pasca Pengiriman Pesan
Prosedur pasca pengiriman pesan memuat informasi berikut :
•
pensinyalan yang menunjukkan akhir dari pesan,
•
pensinyalan sebagai konfirmasi,
•
pensinyalan multi halaman,
•
prosedur pensinyalan di bagian akhir sesi fax.
2.3.2.6. Fase E – Prosedur Akhir Panggilan
Prosedur akhir panggilan terjadi setelah diterimanya signal post-message
untuk kondisi berikut :
•
time-out, yaitu ketika sinyal yang telah dispesifikasikan oleh prosedur fax tidak
diterima dalam rentang periode time-out tertentu, terminal dapat mengirimkan
sinyal ke operator atau memutuskan hubungan telepon;
•
prosedur interrupt, di mana prosedur fax dapat diinterupsi oleh pengiriman
sinyal prosedur interrupt, dengan bantuan operator atau dengan memutuskan
hubungan telepon;
•
perintah, di mana hubungan pada terminal terpanggil dapat diputus oleh
terminal terpanggil dengan menggunakan sejumlah perintah, misalnya Escape
Character.
2.3.3. Fax Modem
Kebanyakan modem mendukung juga pengiriman fax dengan prosedur
seperti di atas. Pada modem-modem tersebut, modem dapat beroperasi pada mode
data atau mode fax. Mode data digunakan untuk pengiriman data sembarang antara
dua buah modem, sedangkan mode fax digunakan khusus untuk pengiriman
dokumen fax.
17
2.4. AT Command
2.4.1. Penjelasan umum
AT Command Set (AT adalah singkatan dari attention), atau disebut juga
Hayes Command Set, merupakan sekumpulan perintah yang digunakan untuk
memberi instruksi pada modem.
Sebelum adanya Bulletin Board System (BBS), modem biasanya beroperasi
pada line telepon yang selalu dimulai dan diakhiri dengan sebuah modem.
Pengguna biasanya harus melakukan dial secara manual sebelum memulai koneksi,
atau mengangkat telepon jika berdering. Dalam kasus-kasus tertentu komputer
harus memanggil beberapa nomor, dan untuk hal ini digunakan “dialer” yang
terpisah, dipasang pada port input/output yang berbeda di komputer (umumnya
adalah port RS-232).
Ketika Dennis Hayes merancang “smart modem” pertamanya pada tahun
1977, ia menemukan sebuah masalah yang sebelumnya tidak pernah dialami
pembuat modem, yaitu bagaimana memberitahukan modem nomor telepon yang
harus di-dial, hanya dengan menggunakan satu port. Salah satu solusi yang dapat
dilakukan adalah menggunakan “command pins” berbeda yang khusus untuk
mengirim dan menerima perintah. Solusi lain adalah menggunakan sebuah pin
sinyal yang mengindikasikan bahwa modem harus memperlakukan data yang
masuk sebagai perintah.
Tetapi, untuk menghemat uang, Hayes memilih untuk menggunakan
kembali pin data yang sudah ada tanpa modifikasi. Modem dibuat agar dapat
beroperasi pada dua mode:
Mode data di mana modem mengirim data kepada remote modem, dan
Mode perintah di mana data diterjemahkan sebagai perintah kepada local
modem.
Pemberian AT command biasanya diakhiri dengan karakter <CR> (ASCII
13), atau carriage return. Pada terminal teks biasanya karakter ini akan
mengembalikan kursor ke awal baris. Respons dari modem biasanya dimulai dan
diakhiri dengan kombinasi karakter <CR><LF>, di mana <LF> (ASCII 10) adalah
line feed. Pada terminal teks <LF> biasanya membuat kursor turun satu baris.
18
2.4.2. Contoh AT Command
Ada sejumlah AT command yang dapat digunakan untuk mengatur
bagaimana modem beroperasi. Perintah-perintah ini dapat diberikan ke modem di
awal sebelum komunikasi dengan remote modem (atau mesin fax) terjadi, yaitu
untuk inisialisasi, atau ketika komunikasi modem itu sendiri.
Beberapa contoh perintah AT command adalah :
AT, yang akan dibalas dengan respons “OK” oleh modem, gunanya hanya untuk
memastikan komunikasi dengan modem telah terjadi dengan baik.
ATEn, jika n adalah 0 berarti disable command echo, atau membuat agar
modem tidak mengirimkan balik perintah yang diterimanya (pada terminal teks
biasanya berarti perintah yang diberikan ke modem tidak akan tampil di layar),
dan jika n adalah 1 berarti enable command echo, yaitu modem akan mengirim
kembali perintah yang diterima (perintah ditampilkan pada layar terminal);
AT+FLID=”<local ID>”, berguna untuk menentukan local ID (nomor telepon)
dari modem;
AT+FCLASS=<class>, yaitu untuk menentukan kelas fax yang digunakan,
kelas 0 berarti mode data (bukan fax), dan untuk fax biasanya ada kelas 1, 2,
dan 2.0;
AT+FCR=n, yang digunakan untuk mode fax, yaitu jika n bernilai 1 maka
modem dapat menerima fax (enable receive capability), sedangkan jika bernilai
0 maka modem tidak dapat menerima fax;
ATD[nomor], digunakan untuk memulai proses dial ke nomor tujuan, nomor
juga dapat dikosongkan apabila diinginkan;
AT+FDT, untuk mengirimkan data fax pada mode fax kelas 2;
AT+FET=n, untuk mengakhiri pengiriman sebuah halaman fax pada mode fax
kelas 2, jika n adalah 0 berarti masih ada halaman berikutnya, jika n adalah 2
berarti sudah tidak ada halaman lagi;
ATA, digunakan untuk menjawab panggilan yang masuk;
AT+FDR, untuk menerima data fax pada mode fax kelas 2;
ATH, untuk mengakhiri koneksi yang terjadi pada mode data.
Perintah-perintah lain serta penjelasan yang lengkap dari semua AT
19
command yang didukung suatu modem dapat dilihat dari referensi AT command
yang diberikan oleh modem tersebut.
2.4.3. Mengirim Fax
Tabel 2.3 menunjukkan contoh sesi pengiriman fax dua halaman dengan
menggunakan mode fax kelas 2. Contoh ini diambil dari referensi AT command
untuk modem Rockwell.
Tabel 2.3: Contoh sesi pengiriman fax dengan mode fax kelas 2
Perintah ke modem
Respons dari modem
AT+FCLASS=2
OK
AT+FLID=”<local ID>”
OK
AT<dial string>
+FCON
[+FCSI: ”<CSI>”]
+FDIS: <DIS codes>
OK
AT+FDT
+FDCS: <DCS codes>
CONNECT
<XON>
<1st page data>
<DLE><ETX>
OK
AT+FET=0
+FPTS: 1
OK
AT+FDT
CONNECT
<XON>
<2nd page data>
<DLE><ETX>
OK
AT+FET=2
+FPTS: 1
+FHNG: 0
OK
20
2.4.4. Menerima Fax
Tabel 2.4 menunjukkan contoh sesi penerimaan fax dua halaman dengan
mode fax kelas 2, yang juga diambil dari referensi AT command untuk modem
Rockwell.
Tabel 2.4: Contoh sesi penerimaan fax dengan mode fax kelas 2
Perintah ke modem
Respons dari modem
AT+FCR=1
OK
AT+FLID=”<local ID>”
OK
ATA
+FCON
[+FTSI: “TSI”]
+FDCS: <DCS codes>
OK
AT+FDR
+FCFR
[+FDCS: <DCS codes>]
CONNECT
<DC2>
<page data stream>
<DLE><ETX>
+FPTS: 1,<lc>
+FET: 0
OK
AT+FDR
CONNECT
<DC2>
<page data stream>
<DLE><ETX>
+FPTS: 1,<lc>
+FET: 2
OK
AT+FDR
+FHNG: 0
OK
21
2.5. Kriptografi
2.5.1. Penjelasan umum
Kriptografi (cryptography), berasal dari kata kryptós yang berarti rahasia
dan kata gráfo yang berarti menulis, merupakan ilmu dan seni untuk menjaga pesan
agar aman. Algoritma kriptografik (cryptographic algorithm) disebut cipher,
merupakan persamaan matematik untuk enkripsi dan dekripsi. Biasanya kedua
persamaan matematik tersebut memiliki hubungan yang cukup erat.
Proses untuk mengamankan sebuah pesan (plaintext) menjadi pesan yang
tersembunyi (cyphertext) adalah enkripsi. Ciphertext merupakan pesan yang sudah
tidak dapat dibaca dengan mudah. Secara matematis proses enkripsi dapat
dituliskan seperti pada persamaan 2.1.
C = E(M)
(2.1)
Pada persamaan 2.1, E adalah proses enkripsi, M adalah pesan, dan C adalah
ciphertext.
Proses kebalikan dari enkripsi, yaitu mengubah kembali ciphertext menjadi
pesan semula disebut dekripsi. Secara matematis proses dekripsi dapat dituliskan
seperti pada persamaan 2.2.
M = D(C)
(2.2)
Pada persamaan 2.2, D adalah proses dekripsi.
Biasanya untuk melakukan proses enkripsi dan dekripsi digunakan suatu
kunci (key). Apabila kunci yang digunakan tidak sesuai, maka ciphertext tidak dapat
dikembalikan menjadi pesan semula. Dengan demikian dalam kriptografi yang
perlu dijaga kerahasiaannya adalah kunci.
Kriptografi secara umum dapat dibagi menjadi dua macam :
symmetric-key cryptograhy, yaitu kriptografi di mana proses enkripsi dan
dekripsi harus menggunakan kunci yang sama, sehingga pengirim dan penerima
harus sama-sama mengetahui kunci yang digunakan;
public-key cryptograhy, yaitu kriptografi di mana proses enkripsi dan dekripsi
22
menggunakan kunci yang berbeda, tetapi saling berhubungan secara matematis.
Pada kriptografi ini, setiap orang memiliki kunci publik dan kunci privat, suatu
pesan yang dienkripsi dengan kunci publik seseorang hanya dapat didekripsi
dengan kunci privat orang tersebut.
2.5.2. Block Cipher
Salah satu jenis simmetric-key cryptograhy yang umum adalah block cipher,
yaitu symmetric-key cryprography yang beroperasi pada kumpulan bit-bit dengan
panjang tertentu, disebut blok. Pada proses enkripsi, sebuah block cipher dapat
menerima misalnya blok 128 bit plaintext sebagai input, dan menghasilkan output
berupa ciphertext yang juga 128 bit. Transformasi data dikendalikan menggunakan
input kedua yaitu kunci. Proses dekripsi juga sama, 128 bit ciphertext akan
didekripsi dengan kunci menjadi 128 bit pesan semula.
Untuk mengenkripsi data dengan ukuran lebih dari 1 blok, perlu digunakan
sebuah mode operasi. Contoh mode operasi ini adalah Electronic Codebook (ECB),
Cipher Block Chaining (CBC), Cipher Feedback (CFB), dan Output Feedback
(OFB).
Electronic codebook (ECB) adalah mode paling sederhana, yaitu pesan
dibagi-bagi menjadi blok dan tiap blok dienkripsi dengan menggunakan kunci yang
sama. Pada mode ini dua buah blok plaintext yang identik akan menghasilkan blok
ciphertext yang sama juga. Gambar 2.3 menunjukkan enkripsi pada mode ini.
Gambar 2.3: Enkripsi pada mode Electronic Codebook (ECB)
Cipher Block Chaining (CBC) menambahkan mekanisme feedback pada
skema enkripsi. Pada CBC, sebuah blok plaintext di-XOR dengan ciphertext blok
23
sebelumnya sebelum blok tersebut dienkripsi. Blok pertama dienkripsi dengan
sebuah initialization vector. Pada mode ini, dua blok yang identik tidak akan
menghasilkan ciphertext yang sama. Gambar 2.4 menunjukkan enkripsi pada mode
ini.
Gambar 2.4: Enkripsi pada mode Cipher Block Chaining (CBC)
Cipher Feedback (CFB) dan Output Feedback (OFB) adalah mode di mana
yang dienkripsi justru bukan plaintext tetapi suatu nilai lain, dan plaintext akan diXOR dengan nilai tersebut. Pada CFB, yang mula-mula dienkripsi adalah
initialization vector, dan hasilnya di-XOR dengan plaintext. Hasilnya akan
menggantikan initialization vector untuk dienkripsi pada blok berikutnya. OFB
mirip dengan CFB, tetapi yang dienkripsi pada blok-blok berikutnya adalah hasil
enkripsi blok sebelumnya sebelum di-XOR dengan plaintext..
2.5.3. Advanced Encryption Standard (AES)
Advanced Encryption Standard (AES), atau disebut juga Rijndael, adalah
sebuah block cipher yang diadopsi sebagai standard enkripsi oleh pemerintah
Amerika Serikat. AES diharapkan menjadi metode enkripsi yang digunakan secara
luas dan dianalisis secara ekstensif, seperti pendahulunya yaitu Data Encryption
Standard (DES).
AES dikembangkan oleh dua orang kriptografer dari Belgia, Joan Daemen
dan Vincent Rijmen, keduanya merupakan alumni dari Katholieke Universiteit
Leuven, dan menyerahkan kriptografi yang dikembangkan mereka pada proses
seleksi AES dengan nama "Rijndael", kombinasi dari nama keduanya.
AES memiliki ukuran blok yang tetap sebesar 128 bit, sedangkan panjang
24
kunci bisa salah satu antara 128, 192, atau 256 bit. Proses enkripsi dan dekripsi
AES terdiri dari beberapa ronde (round), di mana proses pada setiap ronde sama,
kecuali beberapa parameter dan penggunaan subkey yang berbeda. Algoritma yang
menghitung subkey untuk setiap ronde berdasarkan kunci yang digunakan disebut
key schedule.
AES beroperasi pada array byte berukuran 4x4, disebut state. Untuk proses
enkripsi, setiap ronde dari AES (kecuali ronde terakhir), terdiri dari 4 tahap:
1. AddRoundKey - setiap byte dari state dikombinasikan dengan kunci ronde,
setiap kunci round didapatkan dari kunci cipher menggunakan key schedule.
2. SubBytes - langkah substitusi yang tidak linear di mana setiap byte digantikan
dengan byte lain berdasarkan lookup table.
3. ShiftRows - langkah transposisi di mana setiap baris dari state di-shift menurut
siklus sebanyak jumlah tertentu.
4. MixColumns - operasi penggabungan yang beroperasi pada kolom-kolom state,
menggabungkan 4 byte pada setiap kolom menggunakan transformasi linear.
Pada ronde terakhir MixColumns digantikan dengan sebuah AddRoundKey lain.
Keamanan Kriptografi AES
Algoritma kriptografi Rijndael dipilih dari sejumlah algoritma kriptografi
lainnya sebagai AES karena setelah melalui proses standarisasi yang berlangsung
selama 5 tahun, Rijndael dinilai sebagai algoritma yang paling cocok untuk menjadi
standard. Dari sejak terpilihnya sebagai AES pada tahun 2001 sampai sekarang,
satu-satunya serangan yang berhasil terhadap Rijndael adalah side channel attack,
yaitu serangan yang bukan menyerang algoritma cipher yang digunakan, melainkan
menyerang implementasi dari cipher tersebut pada sistem.
Pada bulan April 2005, D.J. Bernstein mengumumkan penggunaan cache
timing attack yang ia gunakan untuk menyerangkan sebuah server yang
menggunakan enkripsi AES dari OpenSSL. Tetapi server ini dibuat agar
memberitahukan sebanyak mungkin informasi yang berhubungan dengan timing,
dan serangan membutuhkan lebih dari 200 juta plaintext.
Pada bulan Oktober 2005, Dag Arne Osvik, Adi Shamir, dan Eran Tromer
25
mempresentasikan sebuah paper yang mendemonstrasikan cache timing attacks
terhadap AES yang berhasil mendapatkan kunci AES hanya dengan 800 penulisan,
dalam 65 millisecond. Tetapi untuk melakukan serangan ini penyerang harus dapat
menjalankan program pada sistem yang sama dengan yang melakukan operasi
enkripsi AES.
Kunci AES dapat memiliki panjang 128 bit, 192 bit, atau 256 bit. Dengan
panjang kunci 128 bit saja, terdapat 3,4 x 1038 kemungkinan kunci. Pada akhir
tahun 1990, sebuah mesin dibuat untuk secara khusus mendapatkan kunci
kriptografi Data Encryption Standard (DES). Mesin tersebut dapat memperoleh
kunci DES dalam beberapa jam dengan mencoba semua kombinasi kunci yang
mungkin (brute force attack). Tetapi panjang kunci DES hanya 56 bit. Jika
diasumsikan dapat dibuat sebuah mesin yang bisa mendapatkan kunci DES hanya
dalam satu detik (berarti mampu mencoba 255 kunci dalam satu detik), mesin
tersebut masih akan membutuhkan sekitar 149 trilliun tahun untuk mendapatkan
kunci AES yang 128 bit dengan mencoba semua kombinasi kunci.
Menurut National Institute of Standards and Technology (NIST), institusi
Amerika Serikat yang menentukan standard AES, kriptografi AES akan dapat tetap
aman sampai lebih dari 20 tahun.
2.6. Embedded PC
Arsitektur yang kompatibel dengan PC adalah pilihan yang populer untuk
sistem embedded karena arsitektur tersebut sudah umum digunakan. Tetapi desktop
PC tidak cocok digunakan untuk aplikasi embedded. Embedded PC merupakan
sebuah komputer yang terlihat seperti PC oleh software, tetapi dibuat agar cocok
untuk sistem embedded. Embedded PC biasanya merupakan komputer lengkap
yang dibuat dalam satu board, disebut Single Board Computer.
Dengan menggunakan arsitektur PC, perancangan sistem embedded dapat
dilakukan dengan biaya, resiko, dan waktu yang lebih sedikit, sehingga dapat
diperoleh time-to-market yang lebih cepat. Selain itu, dengan menggunakan
arsitektur PC, komponen-komponen yang standard untuk hardware dan software
tersedia secara luas. Tetapi bus PC yang standard dan komponen-komponen
hardware yang digunakan terlalu besar dan mahal untuk sistem embedded. Karena
26
itu diperlukan standard yang lebih cocok untuk Embedded PC.
PC/104 adalah sebuah standard untuk embedded computer yang dikontrol
oleh PC/104 Consortium. PC/104 dibuat untuk sistem embedded dengan fungsi
yang spesifik di mana aplikasi bergantung pada pengambilan data yang reliable
meskipun pada kondisi lingkungan yang ekstrim.
Bus PC/104 terdiri dari 104 pin, yang terdiri dari semua pin-pin yang
biasanya digunakan pada bus Industry Standard Architecture (ISA), ditambah
beberapa pin tambahan untuk ground yang berguna untuk menjamin integritas dari
bus tersebut. Timing dari sinyal dan level tegangan yang digunakan sama dengan
pada bus ISA.
Perbedaan utama antara PC/104 dengan bus yang biasa terdapat pada PC
adalah:
ukuran yang kecil, yaitu hanya 3,6 x 3,8 inch;
suatu modul PC/104 dapat dipasang di atas modul PC/104 lainnya (selfstacking);
konektor menggunakan pin dan socket;
arus yang lebih kecil, sehingga mengurangi konsumsi daya.
Gambar 2.5: Dimensi modul PC/104
Tujuan yang ingin dicapai dari PC/104 adalah dapat dibuatnya sistem
embedded dengan teknologi PC dalam ruang yang terbatas menggunakan arsitektur
yang standard. Dengan adanya standard tersebut, berbagai macam hardware modul
dari berbagai vendor tersedia, karena semua vendor mengikuti standard yang sama.
27
Download