Senin, 03 Oktober 2011

Anas Setiawan 0810633027


1.      Definisi Konsep Komunikasi Serial  
        Komunikasi  serial  merupakan  komunikasi  data  dengan  pengiriman  data secara  satu  per  satu dengan  menggunakan  satu  jalur  kabel  data.  Sehingga  komunikasi  serial  hanya  menggunakan  2  kabel  data  yaitu  kabel  data  untuk pengiriman  yang  disebut  transmit  (Tx)  dan  kabel  data  untuk  penerimaan  yang disebut  receive  (Rx). Kelebihan dari komunikasi  serial adalah  jarak pengiriman dan penerimaan  dapat  dilakukan  dalam  jarak  yang  cukup  jauh  dibandingan dengan komunikasi parallel tetapi  kekurangannya adalah kecepatan lebih lambat daripada  komunikasi  parallel,  untuk  saat  ini  sedang  dikembangkan  teknologi serial baru yang dinamakan USB (Universal Serial Bus) yang memiliki kecepatan pengiriman dan penerimaan data lebih cepat disbanding serial biasa. Beberapa contoh : komunikasi Serial RS-232 dan RS-485.
        Berikut  ini  merupakan  gambar  rangkaian  dari RS-485 yang digunakan untuk melakukan komunikasi serial:

Gambar 1.1. Gambar Rangkaian RS-485
[1]

RS485 adalah komunikasi data serial yang metode pengoperasiannya adalah differential, artinya level tegangan pengoperasiannya adalah diferensial dari Line A dan Line B. line untuk komunikasi serial RS485 adalah 4 wire, 2 wire untuk Transmitter dan 2 wire lagi untuk receiver, 2 wire yang satu di sebut dengan Line A,B Transmitter dan 2 wire lainnya Line A,B Receiver, nah sinyal yang disebut sinyal diferensial itu yaitu adalah diferensial antara Line A dan Line B
[2]

1.      Perangkat Interface
Devais pada komunikasi serial port dibagi menjadi 2 (dua) kelompok yaitu  Data Communication Equipment (DCE) dan Data Terminal Equipment (DTE). Contoh dari DCE ialah modem, plotter, scanner dll. sedangkan contoh dari DTE ialah terminal  di komputer. Spesifikasi elektronik dari serial port merujuk pada Electronic Industry Association (EIA) :
  1. “Space” (logika 0) ialah tegangan antara + 3 hingga +25 V.
  2. “Mark” (logika 1) ialah tegangan antara –3 hingga –25 V.
  3. Daerah antara + 3V hingga –3V tidak didefinisikan /tidak terpakai
  4. Tegangan open circuit tidak boleh melebihi 25 V.
  5. Arus hubungan singkat tidak boleh melebihi 500mA.
Komunikasi serial membutuhkan port sebagai saluran data.  Berikut tampilan port serial DB9 yang umum digunakan sebagai port serial:

                Gambar 2.1. Port DB9 Jantan
Konektor port serial  terdiri dari 2 jenis, yaitu konektor 25 pin (DB25  dan 9 pin (DB9) yang berpasangan (jantan dan betina).  Bentuk dari konektor DB-25 sama persis dengan port paralel. Umumnyua COM1 berada dialamat 3F8H, sedangkan COM2 dialamat 2F8H.
[3]

2.      Metode Pengiriman
                Komunikasi serial RS485 menggunakan sepasang kabel untuk mengirimkan satu sinyal tegangan antara kedua kabel saluran selalu berlawanan. Logika ditentukan dari beda tegangan antara kedua kabel tersebut. SN75176 merupakan IC multipoint RS485 transceiver. Di dalam SN75176 terdapat sebuah driver dan receiver seperti pada Gambar 1.2.

Gambar 1.2. Bagan IC SN75176
SN75176 dapat mendukung 32 unit parallel dalam satu jalur. Sensitivitas tegangan input receiver 0,2 V dan jarak maksimum 4000 feet. SN75176 dapat mendukung 32 unit parallel dalam satu jalur. Sensitivitas tegangan input receiver 0,2 V dan jarak maksimum 4000 feet.
                Pada mode pengiriman (transmitting), kaki enable kirim DE diberi logika 1. Keluaran A dan B ditentukan oleh masukan driver D, dimana keluaran A akan sesuai dengan logika driver D, sedangkan B berkebalikan. Jika input D berlogika 1, maka output A akan bertegangan 5 Volt dan output B 0 Volt. Sebaliknya jika input D berlogika 0 maka output A bertegangan 0 Volt dan output B 5 Volt.  Pada mode penerimaan (receiving), kaki enable terima RE diberi logika 0. Output receiver R ditentukan oleh tegangan diferensial antara input A dan B (VA - VB). Jika tegangan diferensial VA – VB lebih besar dari +0,2 Volt, maka  receiver  R akan berlogika 1, sedangkan jika VA - VB lebih kecil dari -0,2 Volt maka receiver R akan berlogika 0. Untuk tegangan VA - VB antara -0,2 Volt sampai +0,2 Volt, maka level logika keluaran tidak terdefinisi.
Mode pengiriman dan penerimaan data SN75176 ditunjukkan pada Tabel 1.3. dan 1.4.
                Tabel 1.3. Pengiriman Data (Transmitting)

                Tabel 1.4. Penerimaan Data (Receiving)

         H = High Level, L = Low Level, x = Irrelevant, Z = high
                       impedance (off), ? = Indeterminate
                Jika terdapat gangguan listrik yang menimpa saluran transmisi, maka induksi tegangan gangguan akan diterima kedua kabel saluran sama besar. Karena  Receiver  membandingkan selisih tegangan antara dua kabel saluran, maka induksi tegangan tidak akan berpengaruh pada output. Dengan kemampuan menangkal gangguan yang sangat baik ini, RS485 bisa dipakai untuk membangun saluran transmisi jarak jauh sampai 4000 feet dengan kecepatan tinggi.
[4]
3.      Contoh Interface dengan mikrokontroller
Aplikasi ini merupakan pengembangan dari aplikasi pembacaan suhu dengan SHT11 dengan penambahan kemampuan RS-485. Protocol yang digunakan adalah protocol yang sangat sederhana sekedar menunjukan bagaimana jaringan RS-485 bekerja. Dengan memahami prinsip dasar ini, penggunaan protocol seperti Modbus, DLMS, dan lain-lain, akan terasa lebih mudah, walaupun sebenarnya saya juga belum pernah mencoba protocol-protokol tersebut.


Antarmuka Mikro dan RS-485
Untuk menghubungkan  mikrokontroler dengan jaringan RS-485 digunakan IC driver MAX487.

IC MAX487 merupakan IC driver RS-485 half-duplex. Pin kendali, terima (RE) dan kirim (DE) disatukan dan dihubungkan ke P3.2. Dengan konfigurasi ini, jika P3.2 HIGH, MAX487 dalam posisi mengirim data, sebaliknya jika P3.2,  MAX487 dalam posisi menerima data.  Untuk lebih jelasnya, silakan baca datasheet MAX487.
Posisi default adalah menerima. Ketika ada perintah dari master (PC), dan alamatnya sesuai, maka ketika harus merespon, mikro akan membuat P3.2 HIGH, lalu mengirim data. Dan mengembalikan P3.2 ke LOW setelah pengiriman selesai.
Antarmuka PC dan RS-485
Hubungan PC dengan RS-485 pada dasarnya sama dengan hubungan Mikro dan RS-485. Masalahnya, kalau di PC mungkin yang digunakan adalah dari RS-232 ke RS-485. Oleh karena itu sebelum masuk ke IC driver, level RS-232 terlebih dahulu dikonvert ke TTL. Untuk kendali driver digunakan pin RTS.
Contoh rangkaian antarmuka dan RS-485:

Jaringan RS-485 disimulasikan dengan Proteus. Hubungan antara Proteus dengan program aplikasi menggunakan Virtual serial port, seperti halnya contoh-contoh simulasi komunikasi serial yang ada di blog ini. Oleh karena itu agak sedikit berbeda dengan RS-485 sebenarnya.
Dalam simulasi ini, COMPIM di Proteus akan terhubung dengan salah satu port serial virtual, missal COM2, begitu juga dengan aplikasi PC, missal COM2. Nah kedua COM tersebut dihubungkan oleh Virtual Serial Port dengan koneksi sebagai berikut:

Koneksinya:

Oleh karena RTS terhubung dengan CTS, maka pengendali IC driver RS-485 akan terhubung dengan pin CTS.

Protokol Komunikasi
Seperti telah dijelaskan bahwa dalam contoh ini digunakan protocol komunikasi yang sederhana. Pada dasarnya ada 3 perintah yang digunakan
  1. Perintah pembacaan suhu dan kelembaban, menggunakan karakter ‘A’;
  2. Perintah menyalakan LED, ‘B’
  3. Perintah mematikan LED, ‘C’
Format perintahnya adalah:
ALAMAT
PERINTAH
0x0D
Alamat menggunakan 2 karakter ‘00’ – ‘FF’. Jika alamat ‘00’, ini berarti perintah broadcast, artinya semua sensor akan menjalankan perintah tersebut,namun printah broadcast hanya untuk menyalakan dan mematikan LED.
Ketika menerima perintah, hal pertama yang dilakukan oleh mikrokontroler adalah mengecek alamat tersebut, jika sesuai maka mikro akan merespon sesuai dengan perintah yang diterima:
  1. Jika perintah pembacaan, mikro akan mengirimkan data suhu dan kelembaban dengan format seperti pada contoh blog sebelumnya, misalnya “26.3C;87.3%”
  2. Jika perintah menyalakan LED, mikro akan mengirim “LED ON”
  3. Jika mematikan LED, mikro akan mengirimkan “LED OFF”
  4. Jika perintah broadcast, maka mikro tidak akan mengirimkan apapun
Program Mikro
Program mikro ini pada dasarnya hasil modifikasi dari program pembacaan SHT11 postingan sebelumnya. Setelah satu frame data serial diterima, ditandai karakter 0x0D, program pertama akan mengecek apakah alamat ditujukan untuknya atau bukan. Jika ya, langsung mengeksekusi perintah tersebut.
Ada perintah yang membutuhkan jawaban dan ada juga yang tidak, perintag broadcast. Ketika akan mengirim jawaban, sebelum mengirim data serial, pin kendali RS485, RS_485DIR, harus di-set. Setelah selesai di-clear kembali agar bisa menerima perintah selanjutnya.
Program PC

Yang terpenting dari program PC ini adalah proses pengiriman data serial:
procedure TForm1.sendrs485(command: string);
begin
if Port_State then
  with ApdComPort1 do
    begin
      RTS:=true;
      Output:=command+#13;
      while ApdComPort1.OutBuffUsed>0  do
        Application.ProcessMessages;
      RTS:=false;
    end;
end;
Sebelum ngirim, RTS dibuat true, kemudian setelah ngirim, program harus nunggu data di buffer output harus kosong, artinya data telah terkirim semua, baru RTS di-false-kan kembali agar bisa menerima data dari slave.

1 komentar: