Kamis, 27 Juli 2017

MODUL ADC ( ANALOG TO DIGITAL CONVERTER )



ABSTRAKSI

ANALISA MODUL ADC ( ANALOG TO DIGITAL CONVERTER )

Analog To Digital Converter (ADC) adalah pengubah input analog menjadi kode – kode digital. ADC banyak digunakan sebagai Pengatur proses industri, komunikasi digital dan rangkaian pengukuran/ pengujian. Umumnya ADC digunakan sebagai perantara antara sensor yang kebanyakan analog dengan sistim komputer seperti sensor suhu, cahaya, tekanan/ berat, aliran dan sebagainya kemudian diukur dengan menggunakan sistim digital (komputer).

1. PENDAHULUAN

2.1  ADC (Analog To Digital Converter)

ADC (Analog To Digital Converter) adalah perangkat elektronika yang berfungsi untuk mengubah sinyal analog (sinyal kontinyu) menjadi sinyal digital. Perangkat ADC (Analog To Digital Convertion) dapat berbentuk suatu modul atau rangkaian elektronika maupun suatu chip IC. ADC (Analog To Digital Converter). berfungsi untuk menjembatani pemrosesan sinyal analog oleh sistem digital converter alat bantu digital yang paling penting untuk teknologi kontrol proses adalah yang menerjemahkan informasi digital ke bentuk analog dan juga sebaliknya. Sebagian besar pengukuran variabel-variabel dinamik dilakukan oleh piranti ini yang menerjemahkan informasi mengenai vaiabel ke bentuk sinyal listrik analog. Untuk menghubungkan sinyal ini dengan sebuah komputer atau rangkaian logika digital, sangat perlu untuk terlebih dahulu melakukan konversi analog ke digital (A/D). Hal-hal mengenai konversi ini harus diketahui sehingga ada keunikan, hubungan khusus antara sinyal analog dan digital.
ADC (Analog to Digital Convertion)
Analog To Digital Converter (ADC) adalah pengubah input analog menjadi kode – kode digital. ADC banyak digunakan sebagai Pengatur proses industri, komunikasi digital dan rangkaian pengukuran/ pengujian. Umumnya ADC digunakan sebagai perantara antara sensor yang kebanyakan analog dengan sistim komputer seperti sensor suhu, cahaya, tekanan/ berat, aliran dan sebagainya kemudian diukur dengan menggunakan sistim digital (komputer).

ADC  (Analog to Digital Converter)  memiliki 2 karakter prinsip, yaitu kecepatan sampling dan resolusi.
Kecepatan Sampling ADC
Kecepatan sampling suatu ADC menyatakan “seberapa sering sinyal analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu”. Kecepatan sampling biasanya dinyatakan dalam sample per second (SPS).

Description: C:\Users\user\Downloads\Kecepatan-Sampling-ADC.jpg
Gambar 2.1. Ilustrasi Kecepatan Sampling ADC

Resolusi ADC
Resolusi ADC menentukan “ketelitian nilai hasil konversi ADC”. Sebagai contoh: ADC 8 bit akan memiliki output 8 bit data digital, ini berarti sinyal input dapat dinyatakan dalam 255 (2n – 1) nilai diskrit. ADC 12 bit memiliki 12 bit output data digital, ini berarti sinyal input dapat dinyatakan dalam 4096 nilai diskrit. Dari contoh diatas ADC 12 bit akan memberikan ketelitian nilai hasil konversi yang jauh lebih baik daripada ADC 8 bit.

2.2  Jenis-jenis ADC (Analog to digital converter), yaitu:


ADC Simultan
ADC Simultan atau biasa disebut flash converter atau parallel converter. Input analog Vi yang akan diubah ke bentuk digital diberikan secara simultan pada sisi + pada komparator tersebut, dan input pada sisi – tergantung pada ukuran bit converter. Ketika Vi melebihi tegangan input – dari suatu komparator, maka output komparator adalah high, sebaliknya akan memberikan output low.
Description: C:\Users\user\Downloads\ADC-Simultan-189x300.jpg
Gambar 2.2. ADC Simultan

Bila Vref diset pada nilai 5 Volt, maka dari gambar 3 dapat didapatkan :

V(-) untuk C7 = Vref * (13/14) = 4,64
V(-) untuk C6 = Vref * (11/14) = 3,93
V(-) untuk C5 = Vref * (9/14) = 3,21
V(-) untuk C4 = Vref * (7/14) = 2,5
V(-) untuk C3 = Vref * (5/14) = 1,78
V(-) untuk C2 = Vref * (3/14) = 1,07
V(-) untuk C1 = Vref * (1/14) = 0,36

Misal :
Vin diberi sinyal analog 3 Volt, maka output dari C7=0, C6=0, C5=0, C4=1, C3=1, C2=1, C1=1, sehingga didapatkan output ADC yaitu 100 biner.

Description: C:\Users\user\Downloads\Tabel-Output-ADC-Simultan-300x127.jpg
Gambar 2.2. Tabel Output ADC Simultan

Ada beberapa konsep dasar dari ADC adalah dengan cara Counter Ramp ADC, Successive Aproximation ADC dan lain sebagainya.

Counter Ramp ADC

Description: C:\Users\user\Downloads\Blok-Diagram-Counter-Ramp-ADC.jpg
Gambar 2.2. Blok Diagram Counter Ramp ADC

Pada gambar diatas, ditunjukkan blok diagram Counter Ramp ADC didalamnya tedapat DAC yang diberi masukan dari counter, masukan counter dari sumber Clock dimana sumber Clock dikontrol dengan cara meng AND kan dengan keluaran Comparator. Comparator membandingkan antara tegangan masukan analog dengan tegangan keluaran DAC, apabila tegangan masukan yang akan dikonversi belum sama dengan tegangan keluaran dari DAC maka keluaran comparator = 1 sehingga Clock dapat memberi masukan counter dan hitungan counter naik.
Misal akan dikonversi tegangan analog 2 volt, dengan mengasumsikan counter reset, sehingga keluaran pada DAC juga 0 volt. Apabila konversi dimulai maka counter akan naik dari 0000 ke 0001 karena mendapatkan pulsa masuk dari Clock oscillator dimana saat itu keluaran Comparator = 1, karena mendapatkan kombinasi biner dari counter 0001 maka tegangan keluaran DAC naik dan dibandingkan lagi dengan tegangan masukan demikian seterusnya nilai counter naik dan keluaran tegangan DAC juga naik hingga suatu saat tegangan masukan dan tegangan keluaran DAC sama yang mengakibatkan keluaran komparator = 0 dan Clock tidak dapat masuk. Nilai counter saat itulah yang merupakan hasil konversi dari analog yang dimasukkan.
Kelemahan dari counter tersebut adalah lama, karena harus melakukan trace mulai dari 0000 hingga mencapai tegangan yang sama sehingga butuh waktu.

SAR (Successive Aproximation Register) ADC

Description: C:\Users\user\Downloads\Blok-Diagram-SAR-ADC-300x192.jpg
Gambar 2.2. Blok Diagram SAR ADC

Pada gambar diatas ditunjukkan diagram ADC jenis SAR, Yaitu dengan memakai konvigurasi yang hampir sama dengan counter ramp tetapi dalam melakukan trace dengan cara tracking dengan mengeluarkan kombinasi bit MSB = 1 ====> 1000 0000. Apabila belum sama (kurang dari tegangan analog input maka bit MSB berikutnya = 1 ===>1100 0000) dan apabila tegangan analog input ternyata lebih kecil dari tegangan yang dihasilkan DAC maka langkah berikutnya menurunkan kombinasi bit ====> 10100000.
Untuk mempermudah pengertian dari metode ini diberikan contoh seperti pada timing diagram gambar 6 Misal diberi tegangan analog input sebesar 6,84 volt dan tegangan referensi ADC 10 volt sehingga apabila keluaran tegangan sbb :

Jika D7 = 1 Vout=5 volt
Jika D6 = 1 Vout=2,5 volt
Jika D5 = 1 Vout=1,25 volt
Jika D4 = 1 Vout=0,625 volt
Jika D3 = 1 Vout=0,3125 volt
Jika D2 = 1 Vout=0,1625 volt
Jika D1 = 1 Vout=0,078125 volt
Jika D0 = 1 Vout=0,0390625 volt

Description: C:\Users\user\Downloads\Timing-diagram-urutan-Trace-SAR-ADC-300x184.jpg
Gambar 2.2. Timing diagram urutan Trace SAR ADC

setelah diberikan sinyal start maka konversi dimulai dengan memberikan kombinasi 1000 0000 ternyata menghasilakan tegangan 5 volt dimana masih kurang dari tegangan input 6,84 volt, kombinasi berubah menjadi 1100 0000 sehingga Vout = 7,5 volt dan ternyata lebih besar dari 6,84 sehingga kombinasi menjadi 1010 0000 tegangan Vout = 6,25 volt kombinasi naik lagi 1011 0000 demikian seterusnya hingga mencapai tegangan 6,8359 volt dan membutuhkan hanya 8 clock.
Uraian diatas merupakan konsep dasar dari ADC (Analog to Digital Converter), untuk pengembangan atau aplikasi ADC dan ADC dalam bentuk lain akan ditulis dalam artikel berbeda dengan tujuan dapat memberikan penjelasan yang lebih lengkap dari ADC (Analog to Digital Converter).


KESIMPULAN
ADC pada sistem akuisisi data digunakan untuk mengkonversi sinyal analog menjadi sinyal digital.Sinyal inputan analog berasal dari Sebuah transduce. Sinyal analog ini kemudian dikondisikan oleh rangkaian DC processor. Sinyal yang telah dikondisikan kemudian difilter untuk melewatkan sinyal dengan frekuensi yang diinginkan dan menolak komponen frekuensi yang lain . Sinyal yang telah difilter dikonversi oleh ADC
Menjadi sinyal digital.
Melalui LPT sinyal digital tersebut kemudian diolah oleh DSP ( Digital SignalProcessing) dimana proses DSP ini dilakukan oleh software . Data yang telah diproses oleh DSP selanjutnya ditransmisikan kembali melalui LPT ke ADC . Setelah itu sinyal dikonversi kesinyal analog oleh DAC. Didalam sitem akusisi data proses konversi sangat berpengaruh untuk keakurasian data.

Kamis, 05 Januari 2017

Karakteristik perintah bahasa assembler



Karakteristik perintah bahasa assembler

Label

Label bisa anda definisikan dengan ketentuan akhir dari nama label tersebut harus berupa tanda titik dua (:). Pemberian nama label bisa digunakan: 
- Huruf : A..Z (Huruf besar dan kecil tidak dibedakan) 
- Angka : 0..9 
- Karakter khusus : @ . _ $ 
Nama pada label tidak terdapat spasi dan didahului oleh angka, Contoh dari penulisan label yang benar: mulai: MOV CX,7. Nama label terpanjang yang dapat dikenali oleh assembler adalah 31 karakter. 

Komentar

Untuk memberikan komentar pada source file digunakan tanda ';'. Apapun yang dtuliskan dibelakang tanda ';' akan dianggap sebagai komentar, Contoh : mulai: MOV BX,7 ; berikan nilai 7 pada BX 

Perintah MOV 

Perintah MOV digunakan untuk mengcopy nilai atau angka menuju suatu register,variabel atau memory. Adapun syntax untuk perintah MOV ini adalah : 
MOV Tujuan,Asal 
Sebagai contohnya : MOV AL,9 ; masukkan nilai 9 pada AL. 
MOV AH,AL ; nilai AL=9 dan AH=9 
MOV AX,9 ; AX=AH+AL hingga AH=0 dan AL:=9 
Pada baris pertama(MOV AL,9), kita memberikan nilai 9 pada register AL. Kemudian pada baris kedua(MOV AH,AL) kita mengcopykan nilai register AL untuk AH. Jadi setelah operasi ini register AL akan tetap bernilai 9, dan register AH akan sama nilainya dengan AL atau 9. Pada baris ketiga(MOV AX,9), kita memberikan register AX nilai 9. Karena AX terdiri atas AH dan AL, maka register AH akan bernilai 0, sedangkan AL akan bernilai 9. 
Perintah MOV akan mengcopykan nilai pada sumber untuk dimasukan ke Tujuan, nilai sumber tidaklah berubah. Inilah sebabnya MOV(E) akan kita terjemahkan disini dengan mengcopy, dan bukannya memindahkan. 

Perintah INT
Didalam pemrograman assambler, kita akan banyak sekali menggunakan interupsi untuk membantu kita dalam mengerjakan suatu pekerjaan. Untuk menghasilkan suatu interupsi digunakan perintah INT dengan syntax: 
INT NoInt 
Dengan NoInt adalah nomor interupsi yang ingin dihasilkan. Sebagai contohnya bila kita ingin menghasilkan interupsi 21h, bisa dituliskan dengan: INT 21h, maka interupsi 21h akan segera terjadi.




Jenis operand

Instruksi mesin melakukan operasi terhadap data. Pada umumnya data dikategorikan ke dalam angka, karakter dan data logika.

 Angka

 Setiap bahasa mesin mengandung tipe data numerik. Umunya terdapat tiga tipe data angka yang ada pada komputer yaitu:
1.        Binary integer
2.        Binary floating point
3.        Desimal
          Semua operasi pada internal komputer berupa data biner, namun user berinteraksi dengan bilangan desimal. Maka perlu dilakukan konversi dari desimal ke bilangan biner pada input dan konversi dari biner ke desmimal pada output. Bilangan desimal direpresentasikan dalam 4 bit kode biner maka 0=0000, 1=0001,...,8=1000, 9=1001. Sedangkan untuk desimal 246 = 0000 0010 0100 0110. Untuk bilangan negatif direpresentasikan dengan 4 bit yang diletakkan pada awal atau akhir string. Standar tanda yang digunakan adalah 1100 untuk bilangan positif dan 1101 untuk tanda bilangan negatif.

Karakter

Umumnya bentuk data adalah teks atau kumpulan karakter. Sedangkan sistem komputer didesain untuk data biner. Maka sejumlah kode dalam urutan bit perlu di tentukan untuk merepresentasikan sebuah karakter. Saat ini standar kode yang digunakan untuk merepresentasikan karakter adalah American Standart Code for Information Interchange (ASCII). Setiap karakter pada kode ASCII direpresentasikan dengan 7 bit biner yang unik. Maka terdapat 128 karakter yang berbeda yang dapat direpresentasikan. Selain itu juga ada yang menggunakan Extended Binary Coded Decimal Interchange Code (EBCDIC) yang digunakan oleh IBM mainframe.

 Data logika    

 Pada umumnya setiap word atau yang lain merupakan satu unit data yang masing masing unit data memiliki nilai 0 atau 1. Ketika dipandang dengan cara ini, maka data tersebut dianggap sebagai data logika. Data logika hanya bernilai true “1” atau false “0”.

Jenis Operasi

Jumlah opcode dari sebuah mesin ke mesin lain beragam. Akan tetapi tipe operasi-operasi umum akan sama untuk semua mesin.  Berikut dikategorikan operasi berdasarkan fungsi dan tipenya:

Transfer data
Tipe instruksi mesin yang paling dasar yaitu instruksi transfer data. Pada instruksi transfer dataharus ditentukan beberapa hal. Pertama, penentuan lokasi sumber dan tujuan dari operan.Lokasinya dapat terletak di memori, register atau stack. Kedua, panjang data yang akan ditransfer harus diketahui. Ketiga, sama untuk semua instruksi dengan operan, cara pengalamatannya harus ditentukan.
Dari sisi aksi prosesor, operasi transfer data mungkin merupakan tipe yang paling sederhana. Jika kedua-duanya baik sumber maupun tujuan adalah register, maka  prosesor hanya menyebabkan data dipindahkan dari satu register ke register lain (operasi internal prosesor). Jika salah satu atau kedua operan berada dalam memori, maka prosesor harus melakukan beberapa atau semua tindakan berikut:
1.      Menghitung alamat memori, berdasarkan mode pengalamatan ( dibahas di bagian selanjutnya)
2.      Jika alamat mengacu pada virtual memori, menerjemahkan dari alamat memori virtual ke alamat memori sebenarnya/fisik.
3.      Menentukan apakah operan yang dituju ada di dalam chace
4.      Jika tidak, berikan perintah ke modul memori.

Aritmatika
Kebanyakan mesin menyediakan operasi aritmatika / perhitungan dasar  sepertitambah, kurang,kali dan bagi. Dimana operasi tersebut disediakan untuk menangani bilanganinteger bertanda (fixed-point), juga bilangan floating point atau desimal. Berikut contoh lain operasi yang termasuk jenis instruksi dengan satu operan:
·         Absolute : mengambil nilai absolut/mutlak dari operan
·         Negate : menegasikan operan
·         Increment: menambahkan 1 nilai ke operan
·         Decrement: mengurangi 1 nilai dari operan

Eksekusi instruksi aritmatika dapat melibatkan operasi transfer data untuk menempatkan operan dari input ke ALU, dan untuk mengantarkan output dari ALU.

Logika
Kebanyakan mesin juga menyediakan berbagai operasi untuk memanipulasi setiap bit dari sebuah word atau unit (yang dapat diberi alamat) lainnya, operasi ini juga di sebut "bit twiddling". Bit-bit tersebut didasarkan pada operasi boolean. 
Konversi
Instruksi konversi adalah instruksi-instruksi yang mengubah format atau beroperasi pada format data.Contohnya yaitu mengkonversi dari desimal ke biner.

Input/Output
Seperti yang kita ketahui, ada beberapa pendekatan I/O yang bisa diambil, diantaranya programmed I/O (isolated&memory mapped), DMA, dan penggunaan prosesor I/O. Implementasi instruksi I/O banyak dilakukan dengan hanya menyediakan beberapa instruksi I/O, dengan tindakan spesifik yang ditentukan oleh parameter, kode, atau kata perintah.

Kendali Sistem
Instruksi kendali sistem adalah instruksi yang dapat dieksekusi hanya ketika prosesor dalam keadaan tertentu atau mengeksekusi program pada area khusus dalam memori.Biasanya, instruksi ini dipesan untuk digunakan sistem operasi.Berikut beberapa contoh operasi kendali sistem. Sebuah instruksi kendali sistem bolehDescription: http://cdncache-a.akamaihd.net/items/it/img/arrow-10x10.png membaca atau mengubah kendali register. Contoh lainnya adalah instruksi untuk membaca atau memodifikasi penyimpanan protection key, seperti yang digunakan pada sistem memori EAS/390. Contoh lain adalah akses untuk memproses blok kontrol dalam sistem multiprogramming.

Kendali Transfer
Untuk semua tipe operasi yang sudah dibahas sejauh ini, instruksi selanjutnya yang akan dibahas tepat setelah ini, pada memori, adalah kendali transfer. Namun, pecahan yang signifikan dari instruksi dalam setiap program memiliki fungsi mengubah urutan eksekusi instruksi. Untuk instruksi ini, operasi yang dilakukan oleh prosesor

Beberapa hal yang perlu diperhatikan yaitu:
1.     Dalam praktek penggunaan komputer, sebenarnya kita mengeksekusi tiap instruksi lebih dari sekali dan mungkin ribuan kali. Ini membutuhkan ribuan atau bahkan jutaan instruksi untuk mengimplementasikan aplikasi. Hal ini tidak mungkin jika tiap instruksi harus ditulis secara terpisah. Jika tabel atau daftar item akan diproses, dibutuhkan program looping. Satu urutan eksekusi akan dieksekusi berulang kali untuk memproses semua data.
2.    Hampir semua program melibatkan beberapa pembuatan keputusan. Kita setuju komputer akan melakukan sesuatu jika suatu kondisi terpenuhi, dan melakukan hal lain jika dalam kondisi lain. Sebagai contoh, sebuah urutan instruksi mengitung akar kuadrat dari sebuh nilai. Pada awal urutan, tanda dari nilai tersebut diuji. Jika negatif, komputasi tidah dilakukan, tetapi kondisi eror yang akan dilaporkan.
3.    Untuk mengubah dengan benar program yang besar atu sedang adalah tugas yang sangat sulit. Hal ini akan lebih mudah jika ada mekanisme untuk memecah tugas-tugas tersebut menjadi bagian-bagian kecil yang dapat dikerjakan sekali dalam satu waktu. 

Bentuk perintah/intruksi :

MOV
Perintah MOV adalah perintah untuk mengisi, memindahkan,memperbaruhi isi suatu register, variable ataupun lokasi memory, Adapun tata penulisan perintah MOV adalah :
MOV [operand A], [Operand B]
Contoh :
MOV AH,02
Operand A adalah Register AH
Operand B adalah bilangan 02
Hal yang dilakukan oleh komputer untuk perintah diatas adalahmemasukan 02 ke register AH.


INT (Interrupt)
Bila anda pernah belajar BASIC, maka pasti anda tidak asing lagi dengan perintah GOSUB. Perintah INT juga mempunyai cara kerja yang sama dengan GOSUB, hanya saja subroutine yang dipanggil telah disediakan oleh memory komputer yang terdiri 2 jenis yaitu :
- Bios Interrupt ( interput yang disediakan oleh BIOS (INT 0 – INT 1F))
- Dos Interrupt ( Interrupt yang disediakan oleh DOS (INT 1F – keatas))

Push
Adalah perintah untuk memasukan isi register pada stack, dengan tata penulisannya:POP [operand 16 bit]

Pop
perintah yang berguna untuk mengeluarkan isi dari register/variable dari stack,dengan tata penulisannya adalah : POP [operand 16 bit]

RIP (Register IP)
Perintah ini digunakan untuk memberitahu komputer untuk memulai memproses program dari titik tertentu.

A (Assembler)
Perintah Assembler berguna untuk tempat menulis program Assembler.
-A100
0FD8:100

RCX (Register CX)
Perintah ini digunakan untuk mengetahui dan memperbaruhi isi register CX yang merupakantempat penampungan panjang program yang sedang aktif
.