penyambung port com. Port COM (port bersiri)

Pada mulanya, apabila mereka muncul komputer peribadi, bersama mereka datang beberapa yang tidak begitu canggih, tetapi agak berjaya bekerja dalam kombinasi dengan semua pengisian lain, port atau antara muka litar. Perkataan port menandakan kaedah pemindahan data. Ia seperti sel memori. Hanya maklumat yang ditulis ke dalam RAM dan kekal di sana selagi beberapa program memerlukannya, sehingga program memprosesnya (atau program itu sendiri masih diperlukan oleh seseorang pada komputer).

Pelabuhan dan ingatan

Iaitu, program akan membaca data dari memori ke dalam pemproses, melakukan sesuatu dengannya, mungkin menerima beberapa data baru daripada maklumat ini, yang akan ditulis ke lokasi lain. Atau yang diberikan itu sendiri hanya akan ditulis semula ke tempat lain. Walau apa pun, dalam ingatan, maklumat yang pernah direkodkan sama ada boleh dibaca atau dipadamkan. Sel itu kelihatan seperti dada yang berdiri di dinding. Dan semua memori terdiri daripada sel, setiap sel mempunyai alamatnya sendiri. Sama seperti peti yang berdiri sebaris di dinding di ruang bawah tanah seorang kesatria kedekut.

Nah, anda juga boleh membayangkan pelabuhan sebagai sel. Sahaja sel sedemikian di belakang terdapat tingkap yang mengarah ke suatu tempat di belakang dinding. Anda boleh menulis maklumat ke dalamnya, dan maklumat itu akan membawanya dan terbang keluar dari tingkap, walaupun untuk beberapa waktu ia akan kekal di dalam sel dengan cara yang sama seperti dalam sel biasa memori capaian rawak.

Atau sebaliknya, maklumat boleh "terbang" ke dalam sel port dari tetingkap. Pemproses akan melihat ini dan membaca maklumat baharu yang muncul ini. Dan dia akan meletakkannya untuk berfungsi - dia akan menulis semula di suatu tempat, mengira semula bersama-sama dengan beberapa data lain. Ia juga boleh menulisnya ke sel lain. Atau ke port sel lain, maka maklumat ini yang diterima melalui port pertama boleh "terbang" ke tetingkap port kedua - baik, begitulah cara pemproses membuat keputusan. Lebih tepat lagi, program yang pada masa ini mengarahkan pemproses dan memproses data yang direkodkan dalam ingatan dan datang dari port.

Simple dan cantik. Port ini segera dipanggil - port input-output. Melalui sebahagian daripada mereka, data dihantar ke suatu tempat, melalui yang lain, ia diterima dari suatu tempat.

Nah, kemudian pergerakan bermula dalam bulatan. Terdapat satu peranti, dan ada satu lagi. Dan kini terdapat rantaian aksara, setiap satunya terdiri daripada bit binari individu, dan rantai ini perlu dihantar. Bagaimana untuk memindahkan? Anda boleh segera menghantar keseluruhan aksara di sepanjang baris 8 wayar - satu wayar = satu bit, kemudian kod yang lain, kemudian yang ketiga, dan seterusnya sehingga anda menghantar keseluruhan rantai.

Dan adalah mungkin untuk membuka setiap bit bukan dalam ruang (melalui wayar), tetapi dalam masa: pertama menghantar satu bit simbol, kemudian yang kedua, dan seterusnya lapan kali. Adalah jelas bahawa dalam kes kedua beberapa cara tambahan diperlukan untuk membuka simbol dengan cara ini dalam masa.

Selari dan bersiri

Dan kelajuan penghantaran akan berbeza:

Ternyata setiap pilihan mempunyai kelebihannya, tetapi juga kekurangannya.

  1. Ia lebih pantas untuk menghantar lapan bit pada satu masa (iaitu, bait demi bait), tetapi anda memerlukan lapan kali lebih wayar
  2. Menghantar satu bit pada satu masa hanya memerlukan satu penghantaran maklumat, tetapi ia akan menjadi 8 kali lebih perlahan.

Jadi dalam kes pertama mereka memanggil penghantaran selari, dan dalam kes kedua - bersiri.

Antaramuka Pelabuhan

Dan keseluruhan sistem penghantaran sedemikian - dalam satu kes dengan cara ini, dalam yang lain - seperti itu, dipanggil antara muka. Satu antara muka selari, satu lagi bersiri. Perkara yang hampir sama, port, satu selari, satu lagi bersiri.

Bagaimanakah konsep pelabuhan berbeza daripada konsep "antara muka"? Dalam teknologi moden, perkataan bukan sahaja muncul, mereka berkembang dan menerima "pendidikan." Dan sama seperti orang, mereka boleh menjadi pakar sempit, atau mereka boleh menjadi "amatur". Ini adalah perkataan amatur biasa - "antara muka". Kerana ia adalah "palam untuk setiap lubang." Antara muka ialah:

Dan makna perkataan itu adalah sesuatu di antara sesuatu. Antara - antara, muka - muka. Ia ternyata cantik, itulah sebabnya ia digunakan di mana-mana. Sebagai contoh, antara muka pengguna sistem Windows ialah muka pada skrin sistem, direka untuk berkomunikasi dengan seseorang.

Dan ia terdiri daripada gambar yang dilukis pada skrin + peraturan untuk operasi setiap elemen gambar (contohnya, klik pada butang pada skrin dengan tetikus - ia akan ditekan) + peraturan untuk tindak balas setiap elemen dan keseluruhan sistem secara keseluruhan + semua perkakasan yang mengambil bahagian dalam dialog (tetikus, papan kekunci, skrin) + semua program yang menyediakan dialog kedua-dua dari sisi keseluruhan sistem dan dari sisi peranti individu (pemandu).

Mereka tidak menyebut orang itu, tetapi kerana dia juga sebahagian daripada interaksi, dia mesti mempunyai pengetahuan dan kemahiran untuk bekerja dalam sistem, dan untuk ini terdapat program latihan, sistem bantuan... Dan dari semua ini yang indah dan timbul perkataan yang luas: antara muka.

Dalam tema kami, antara muka bermaksud perkara yang lebih mudah.

Ini adalah perkakasan + cara pemindahan perisian + peraturan pemindahan. Perkakasan - boleh difahami. Tetapi perisian pada komputer dan dalam komunikasi moden sentiasa ada dan di mana-mana sahaja. Ia juga berlaku: pertama, sesuatu yang berfungsi dicipta pada beberapa pangkalan perkakasan, yang tidak dilaksanakan serta-merta, tetapi menggunakan program yang ditulis khas. Dan program semuanya boleh disesuaikan.

Dan secara beransur-ansur, apabila fungsi baharu (atau blok berfungsi) berfungsi, program yang "membuatnya" - dan ia berbeza daripada perkakasan kerana ia boleh dikonfigurasikan dengan mudah - dibawa ke beberapa keadaan konfigurasi optimum. Bahawa tidak perlu mengkonfigurasi lagi. Dan kemudian program dalam versi baharu blok berfungsi boleh digantikan dengan pengganti berasaskan perkakasan untuk bahagian perisian. Sebagai contoh, "menjahit" kerja yang optimum program yang ditala dengan baik ke dalam ingatan kekal. Atau buat litar logik khas yang akan melakukan perkara yang sama seperti yang dilakukan oleh program yang dikonfigurasikan secara optimum - tanpa mengelak dan kadangkala melupakan semua tetapannya yang berguna.

Itulah sebabnya antara muka sering dipanggil ini - perisian dan perkakasan.

Peraturan penghantaran diperlukan untuk memastikan perkara yang sama difahami (dan diproses) dengan cara yang sama pada kedua-dua hujung interaksi. Adakah kita bercakap tentang penghantaran impuls? Ini bermakna bahawa impuls mestilah sama.

Sebagai contoh, supaya 1 bit datang dalam bentuk penurunan voltan +12 atau +15 volt daripada sifar. Dan supaya ia dalam bentuk segi empat tepat, atau pecah tajam - puncaknya mestilah tidak kurang daripada, baik, + 5 volt, dan ia tidak semestinya perlu untuk memperkenalkan had atas, sebagai contoh. Ini kerana apabila menghantar impuls pada jarak tertentu, isyarat elektrik cenderung melemah dan "menyamar."

Sekiranya 12 volt dihantar dari satu hujung, maka 3 volt boleh mencapai yang lain, dan ini boleh ditafsirkan oleh sistem penerima hanya sebagai bunyi pada talian, dan maklumat yang dihantar akan hilang.

Maksud impuls juga harus difahami dengan cara yang sama. Dan impuls boleh menjadi maklumat, perkhidmatan, penyegerakan. Dan secara umum, sebagai contoh, bukan impuls, tetapi hanya voltan malar. Yang boleh digunakan di hujung yang lain untuk menggerakkan peranti kecil.

Dan wayar itu sendiri yang dibincangkan pada awalnya juga harus difahami sama. Di sini mesti dikatakan dengan segera bahawa ia tidak pernah berlaku bahawa hanya ada satu wayar. Walaupun telefon mempunyai dua wayar dalam kabel, tetapi biasanya kabel itu sepatutnya mempunyai empat. Dan antara muka data sentiasa mempunyai beberapa konduktor. Sebahagian daripada mereka adalah maklumat, ada juga perkhidmatan. Dan inilah yang harus diiktiraf sama rata pada kedua-dua hujung interaksi. Dan wayar itu diiktiraf sebagai? Mengikut warna, jika dalam kabel dan mengikut lokasi, jika dalam kenalan sambungan.

Port adalah perkataan yang mudah dan juga tidak jelas sepenuhnya. Tetapi maksudnya serupa: bahawa sesuatu dimuatkan ke sesuatu dan dihantar ke suatu tempat. Atau sebaliknya, sesuatu yang menerima sesuatu dan memunggah sesuatu daripadanya. Maksudnya hampir sama dengan antara muka perisian perkakasan, tetapi entah bagaimana lebih ringkas. Dan lebih ketat, seperti dalam tentera laut ("Mereka akan memberitahu anda - jangan berhujah... tetapi kami tidak berdebat..."). Hanya isyarat kami tidak bergerak melalui laut, tetapi melalui kabel.

Pinout penyambung port COM

Pinout tidak mempunyai sambungan dengan penyaliban, walaupun, seperti wayar yang berjalan bebas dalam satu sarung kabel, ia dibongkar ke sisi dan dipateri keras pada pinnya, sama seperti penyaliban. Pin, dalam bahasa Inggeris "pin", pin, oleh itu pinout, perkataan itu sudah pun menjadi jargon "pro-Bahasa Inggeris" komunikasi komputer. Ini bermakna pendawaian wayar ke pin pada penyambung.

Bentuk penyambung, susunan pendawaian (pin) di dalamnya, tujuan setiap pin, serta penarafan voltan dan makna isyarat dalam setiap - ini adalah sebahagian daripada antara muka. Biasanya semua maklumat ini disusun ke dalam dokumen berasingan yang dipanggil spesifikasi port. Tanda satu halaman yang mudah dan jelas. Dalam jenis antara muka lain, sesuatu seperti ini mungkin dipanggil "protokol." Dan di sini mereka hanya memanggilnya "pinout".

Port COM bersiri

Port COM komputer ialah sambungan jarak jauh antara kompleks komputer. Tidak seperti port dan kabel selari yang membawa kepada peranti "berat" - pencetak, pengimbas, port Com menyambungkan unit "ringan" ke komputer - tetikus, modem. Antara muka komputer-ke-komputer pertama (melalui "modem nol"). Selanjutnya, bilakah rangkaian tempatan tersebar, dan tetikus mula disambungkan melalui penyambung yang sama seperti papan kekunci - port ps/2 (pe-es-in separuh) - port com entah bagaimana dilupakan.

Kebangkitan itu datang dengan kemunculan antara muka bersiri USB. Jadi ia ternyata pergerakan dalam bulatan. Kini pada USB anda boleh temui, sebagai tambahan kepada pemacu kilat, tetikus USB dan papan kekunci USB. Pencetak, pengimbas, modem - semua peranti kini menggunakan USB, saya sudah terlupa tentang kabel LTP selari tebal dan pepejal, yang perlu diskrukan pada setiap sisi dengan 2 bolt. Dan terdapat dua wayar isyarat dalam USB ini (sebenarnya, terdapat satu saluran, satu isyarat langsung, yang lain sama - songsang) dan dua - bekalan kuasa dan perumahan.

Terdapat beberapa port COM bersiri sebelumnya. Yang terkecil - dan yang paling popular Port 9-pin (D9), yang mana kebanyakan peranti disambungkan: tetikus, modem, kabel null-modem. Kenalan itu disusun dalam dua baris, 5 dan 4 berturut-turut, mewujudkan trapezoid. Oleh itu nama D9. Pada "ibu" penomboran pergi dari kiri ke kanan dan dari atas ke bawah:

1 2 3 4 5

Pendawaian port COM, port RS232, 9 pin.

Jawatan taip Penerangan
1 DCD Pintu masuk Tahap tinggi daripada modem apabila ia menerima rakan kongsi modem pembawa
2 RxD Pintu masuk Denyutan data masuk
3 TxD Keluar Denyutan data keluar
4 DTR Keluar Tahap tinggi (+12V) menunjukkan komputer bersedia untuk menerima data. Tetikus yang disambungkan menggunakan pin ini sebagai sumber kuasa
5 GND Umum Bumi
6 DSR Pintu masuk Peranti bersedia untuk menghantar data
7 RTS Keluar Kesediaan tindak balas peranti rakan kongsi
8 CTS Pintu masuk Kesediaan untuk menerima data daripada rakan kongsi
9 R.I. Pintu masuk Isyarat memberitahu komputer tentang panggilan masuk yang diterima oleh modem daripada talian komunikasi

Bersama-sama dengan port selari, port COM, atau port bersiri, ialah salah satu port input/output komputer tradisional, yang digunakan dalam PC pertama. Walaupun port COM mempunyai penggunaan terhad dalam komputer moden, namun, maklumat mengenainya mungkin berguna kepada ramai pengguna.

Port bersiri, seperti port selari, muncul lama sebelum kemunculan komputer peribadi seni bina PC IBM. Dalam komputer peribadi pertama, port COM digunakan untuk menyambungkan peranti persisian. Walau bagaimanapun, skop penggunaannya agak berbeza daripada skop port selari. Jika port selari digunakan terutamanya untuk menyambungkan pencetak, maka port COM (dengan cara ini, awalan COM hanyalah singkatan untuk perkataan komunikasi) biasanya digunakan untuk berfungsi dengan peranti telekomunikasi, seperti modem. Walau bagaimanapun, anda boleh menyambung ke port, contohnya, tetikus, serta peranti persisian lain.

Port COM, kawasan utama aplikasi:

  1. Terminal penyambung
  2. ~ modem luaran
  3. ~ pencetak dan plotter
  4. ~ tikus
  5. Sambungan terus antara dua komputer

Pada masa ini, skop port COM telah dikurangkan dengan ketara kerana pengenalan antara muka USB yang lebih cepat dan lebih padat, dan, dengan cara itu, juga bersiri. Modem luaran yang direka untuk menyambung ke port, serta tetikus "COM", hampir tidak digunakan lagi. Dan jarang sekali sesiapa kini menyambungkan dua komputer menggunakan kabel modem null.

Walau bagaimanapun, beberapa peranti khusus masih menggunakan port bersiri. Anda boleh menemuinya pada banyak papan induk. Hakikatnya, berbanding USB, port COM mempunyai satu kelebihan penting - mengikut standard penghantaran data bersiri RS-232, ia boleh berfungsi dengan peranti pada jarak beberapa puluh meter, manakala julat kabel USB adalah biasanya terhad kepada 5 meter.

Prinsip operasi port bersiri dan perbezaannya daripada port selari

Tidak seperti port selari (LPT), port bersiri menghantar data sedikit demi sedikit pada satu baris, bukannya pada berbilang baris sekaligus. Urutan bit dikumpulkan ke dalam siri data, bermula dengan bit permulaan dan berakhir dengan bit henti, serta bit pariti yang digunakan untuk semakan ralat. Di sinilah datangnya satu lagi nama Inggeris, yang mempunyai port bersiri - Port Bersiri.

Port bersiri mempunyai dua baris yang melaluinya data itu sendiri dihantar - ini adalah talian untuk memindahkan data dari terminal (PC) ke peranti komunikasi dan belakang. Selain itu, terdapat beberapa lagi talian kawalan. Port Serial dilayani oleh cip UART khas, yang mampu menyokong kadar pemindahan data yang agak tinggi, mencapai 115,000 baud (bait/s). Walau bagaimanapun, perlu diingat bahawa kelajuan sebenar pertukaran maklumat bergantung pada kedua-dua peranti komunikasi. Di samping itu, fungsi pengawal UART termasuk menukar kod selari kepada kod bersiri dan sebaliknya.

Port menggunakan isyarat elektrik voltan yang agak tinggi - sehingga +15 V dan -15 V. Paras sifar logik port bersiri ialah +12 V, dan paras satu logik ialah -12 V. Penurunan voltan yang begitu besar membolehkan kita untuk menjamin tahap imuniti hingar yang tinggi bagi data yang dihantar. Sebaliknya, voltan tinggi yang digunakan dalam port Bersiri memerlukan penyelesaian litar yang kompleks. Keadaan ini turut menyumbang kepada kemerosotan populariti pelabuhan tersebut.

Antara muka bersiri RS-232

Operasi port bersiri pada PC adalah berdasarkan standard pemindahan data untuk peranti bersiri RS-232. Piawaian ini menerangkan proses pertukaran data antara peranti telekomunikasi, seperti modem, dan terminal komputer. Piawaian RS-232 mentakrifkan ciri elektrik isyarat, tujuannya, tempohnya, serta saiz penyambung dan pinout untuknya. Walau bagaimanapun, RS-232 hanya menerangkan tahap fizikal proses pemindahan data dan tidak mengambil kira protokol pengangkutan yang digunakan, yang mungkin berbeza-beza bergantung pada peralatan komunikasi dan perisian yang digunakan.

Piawaian RS-232 telah dicipta pada tahun 1969, dan versi terbarunya, TIA 232, dikeluarkan pada tahun 1997. RS-232 kini dianggap usang, tetapi kebanyakan sistem pengendalian masih menyokongnya.

Dalam komputer moden, penyambung port Bersiri ialah penyambung lelaki 9-pin DB-9, walaupun standard RS-232 juga menerangkan penyambung DB-25 25-pin, yang sering digunakan pada komputer lama. Penyambung DB-9 biasanya terletak pada papan induk PC, walaupun dalam komputer lama ia mungkin terletak pada multikad khas yang dimasukkan ke dalam slot pengembangan.

Soket DB-9 9-pin pada papan induk

Penyambung DB-9 pada kabel peranti yang disambungkan ke port

Tidak seperti port selari, penyambung pada kedua-dua belah kabel bersiri dua hala adalah sama. Sebagai tambahan kepada talian untuk menghantar data itu sendiri, port mengandungi beberapa talian perkhidmatan yang melaluinya maklumat kawalan boleh dihantar antara terminal (komputer) dan peranti telekomunikasi (modem). Walaupun secara teorinya hanya tiga saluran diperlukan untuk port bersiri beroperasi - penerimaan data, penghantaran data dan pembumian, amalan telah menunjukkan bahawa kehadiran talian perkhidmatan menjadikan komunikasi lebih cekap, boleh dipercayai dan, akibatnya, lebih pantas.

Tujuan talian penyambung DB-9 port bersiri mengikut RS-232 dan korespondensinya dengan kenalan penyambung DB-25:

Hubungi DB-9 nama Inggeris nama Rusia Hubungi DB-25
1 Pengesan Pembawa Data Pembawa dikesan 8
2 Hantar Data Data dihantar 2
3 Terima Data Data yang diterima 3
4 Terminal Data Sedia Kesediaan terminal 20
5 tanah Bumi 7
6 Set Data Sedia Kesediaan pemancar 6
7 Permintaan Untuk Hantar Permintaan untuk menghantar data 4
8 Kosongkan Untuk Hantar Pemindahan data dibenarkan 5
9 Penunjuk Dering Penunjuk cincin 22

Konfigurasi dan gangguan

Memandangkan komputer boleh mempunyai beberapa port bersiri (sehingga 4), sistem memperuntukkan dua gangguan perkakasan untuk mereka - IRQ 3 (COM 2 dan 4) dan IRQ 4 (COM 1 dan 3) dan beberapa gangguan BIOS. Banyak program komunikasi, serta modem terbina dalam, menggunakan gangguan dan ruang alamat port COM untuk kerja mereka. Dalam kes ini, bukan port sebenar biasanya digunakan, tetapi port maya yang dipanggil, yang dicontohi oleh sistem pengendalian itu sendiri.

Seperti kebanyakan komponen papan induk lain, parameter port COM, khususnya nilai gangguan BIOS yang sepadan dengan gangguan perkakasan, boleh dikonfigurasikan melalui antara muka Persediaan BIOS. Untuk ini, pilihan BIOS seperti COM Port, Onboard Serial Port, Serial Port Address, dll digunakan.

Kesimpulan

Port bersiri PC pada masa ini bukan cara input/output yang digunakan secara meluas. Walau bagaimanapun, oleh kerana terdapat sejumlah besar peralatan, terutamanya untuk tujuan telekomunikasi, direka untuk berfungsi dengan port bersiri, dan juga disebabkan oleh beberapa kelebihan protokol data bersiri RS-232, antara muka bersiri tidak sepatutnya dihapuskan. sebagai seni bina komputer peribadi asas yang lapuk sepenuhnya.

THR - daftar data perantaraan pemancar(tulis sahaja) Data yang ditulis pada daftar akan dipindahkan ke daftar anjakan output (apabila ia percuma), dari mana ia akan dikeluarkan apabila isyarat daya hadir CTS. Bit 0 dihantar (dan diterima) terlebih dahulu. Jika panjang penghantaran kurang daripada 8 bit, bit yang paling ketara akan diabaikan.
RBR - menerima daftar penimbal data(baca sahaja) Data yang diterima oleh daftar anjakan input diletakkan dalam daftar RBR, dari mana ia boleh dibaca oleh pemproses. Jika pada masa aksara seterusnya diterima, yang sebelumnya belum dibaca dari daftar, ralat limpahan direkodkan. Apabila panjang penghantaran kurang daripada 8 bit, bit yang paling ketara dalam daftar mempunyai nilai sifar.
DLL - daftar bait rendah pembahagi frekuensi.
DLM - daftar bait tinggi pembahagi frekuensi. Pembahagi ditentukan oleh formula D=115200/V, di mana V ialah kelajuan penghantaran, bit/s. Kekerapan jam input 1.8432 MHz dibahagikan dengan faktor tertentu untuk menghasilkan 16 kali kadar data.
IER - sampuk dayakan daftar. Nilai bit satu membolehkan gangguan daripada sumber yang sepadan.
Daftar tugasan bit IER:
* bit =0 - tidak digunakan;
* bit 3 - Mod_IE- dengan menukar keadaan modem (mana-mana talian CTS, DSR, RI, DCD);
* bit 2 - RxL_IE- disebabkan talian putus/ralat;
* bit 1 - TxD_IE- setelah selesai pemindahan;
* bit 0 - RxD_IE- setelah menerima aksara (dalam mod FIFO - gangguan tamat masa).
IIR - daftar pengenalan sampuk dan tanda mod FIFO(hanya untuk bacaan). Untuk memudahkan analisis perisian, UART mengatur permintaan gangguan dalaman mengikut sistem keutamaan empat peringkat. Urutan keutamaan (menurun): status talian, penerimaan aksara, keluaran daftar pemancar, status modem. Apabila keadaan gangguan berlaku, UART menghala ke sumber keutamaan tertinggi sehingga ia dibersihkan oleh operasi yang sepadan. Hanya selepas ini permintaan akan dikeluarkan menunjukkan sumber seterusnya. Tujuan bit daftar diterangkan di bawah: IIR.
* Bit - tanda mod FIFO:
FIFO 11-mod 16550A;
10 - mod FIFO 16550;
00 - biasa.
* Bit - tidak digunakan.
* Bit 3 - terima gangguan tamat masa dalam mod FIFO (terdapat aksara untuk dibaca dalam penimbal).
* Bit - sebab gangguan dengan keutamaan tertinggi (dalam mod biasa, bukan mod FIFO):
11 - ralat/putus baris, penetapan semula dilakukan dengan membaca daftar status talian;
10 - aksara diterima, penetapan semula dilakukan dengan membaca data;
01 - aksara dihantar (daftar THR kosong), penetapan semula dilakukan dengan menulis data;
00 - perubahan keadaan modem; Set semula dilakukan dengan membaca daftar status modem.
* Bit 0 ialah tanda permintaan gangguan yang tidak dilayan (1 - tiada permintaan, 0 - terdapat permintaan).
Dalam mod FIFO, punca gangguan dikenal pasti oleh bit.
* O11 - ralat/putus baris. Set semula dilakukan dengan membaca daftar status talian.
* 010 - aksara diterima. Tetapan semula dilakukan dengan membaca daftar data penerima
* 110 - penunjuk tamat masa (dalam selang masa aksara 4 kali ganda, tiada satu aksara pun dihantar atau diterima, walaupun terdapat sekurang-kurangnya satu dalam penimbal). Tetapan semula dilakukan dengan membaca daftar data penerima.
* 001 - daftar THR kosong Tetapan semula dilakukan dengan menulis data.
* 000 - perubahan keadaan modem ( CIS, DSR, RI atau DCD). Set semula dilakukan dengan membaca daftar MSR.
FCR - Daftar kawalan FIFO(untuk rakaman sahaja). Tujuan bit daftar diterangkan di bawah: FCR:
* Bit - ITL(Tahap Pencetus Interrupt) - Tahap pengisian penimbal FIFO di mana gangguan dijana:
00 - 1 bait (lalai);
01 - 4 bait;
10 - 8 bait;
11 - 14 bait.
*Bit dikhaskan.
* Bit 3 - dayakan operasi DMA.
* Bit 2 - RESETTF(Tetapkan Semula Pemancar FIFO) - tetapkan semula kaunter pemancar FIFO (dengan menulis satu; daftar anjakan tidak ditetapkan semula).
* Bit 1 - RESETRF(Tetapkan Semula Penerima FIFO) - tetapkan semula kaunter penerima FIFO (dengan menulis satu; daftar anjakan tidak ditetapkan semula).
* Bit 0 - TRIFFOE(Hantar Dan Terima FIFO Dayakan) - dayakan (mengikut unit) mod FIFO untuk pemancar dan penerima. Apabila menukar mod, penimbal FIFO dikosongkan secara automatik.
LCR - daftar kawalan talian(tetapan parameter saluran). Tujuan bit daftar diterangkan di bawah: LCR.
* Bit 7 - DLAB(Bit Akses Selak Pembahagi) - mengawal akses kepada pembahagi frekuensi.
* Bit 6 - BRCON(Break Control) - menjana pemisah baris (menghantar sifar) apabila BRCON=1.
* Bit 5 - STICPAR(Sticky Parity) - pembentukan paksa bit pariti:
0 - bit semak dijana mengikut pariti simbol output;
1 - nilai malar bit kawalan: bila EVENPAR=1 - sifar, dengan EVENPAR=0 - bujang.
* Bit 4 - EVENPAR(Pilihan Pariti Genap) - pemilihan jenis kawalan: 0 - ganjil, 1 - genap.
* Bit 3 - PAREN(Parity Enable) - resolusi bit kawalan:
1 - bit kawalan (pariti atau pemalar) didayakan;
0 - bit kawalan dilumpuhkan.
* Bit 2 - BERHENTI(Bit Berhenti) - bilangan bit henti:
0 - 1 bit hentian;
1 - 2 bit hentian (untuk kod 5-bit, bit hentian akan menjadi 1.5 bit panjang).
* Bit - SERIALDB(Bit Data Bersiri) - bilangan bit data:
00 - 5 bit;
01-6 bit;
10 - 7 bit;
11 - 8 bit.
MCR - daftar kawalan modem. Tujuan bit daftar diterangkan di bawah: MCR.
* Bit =0 - terpelihara.
* Bit 4 - LME(Mod Loopback Dayakan) - dayakan mod diagnostik:
0 - mod biasa;
1 - mod diagnostik (lihat di bawah).
* Bit 3 - I.E.(Interrupt Enable) - mendayakan gangguan menggunakan output luaran KELUAR2 MSR.7:
0 - gangguan dilumpuhkan;
1 - gangguan didayakan.
* Bit 2 - OUT1C(Kawalan Bit OUT1) - kawalan isyarat keluaran 1 (tidak digunakan); dalam mod diagnostik ia memasuki input MSR.6.
* Bit 1 - RTSC(Permintaan Untuk Menghantar Kawalan) - kawalan output RTS; dalam mod diagnostik ia memasuki input MSR.4:
0 - aktif (-V);
1 - pasif (+V).
* Bit 0 - DTRC(Kawalan Sedia Terminal Data) - kawalan output DTR; dalam mod diagnostik ia memasuki input MSR.5:
0 - aktif (-V);
1 - pasif (+V).
LSR - daftar status talian(lebih tepat lagi, keadaan transceiver). Tujuan bit daftar LSR diterangkan di bawah.
* Bit 7 - FIFOE(Status Ralat FIFO) - ralat dalam data yang diterima dalam mod FIFO (penampan mengandungi sekurang-kurangnya satu aksara yang diterima dengan ralat format, ralat pariti atau rehat). Dalam mod bukan FIFO ia sentiasa 0.
* Bit 6 - MENGGODA(Status Kosong Pemancar) - daftar pemancar kosong (tiada data untuk dihantar sama ada dalam daftar anjakan atau daftar penimbal THR atau FIFO).
* Bit 5 - TIGA(Daftar Pegangan Pemancar Kosong) - daftar pemancar sedia menerima bait untuk penghantaran. Dalam mod FIFO, menunjukkan bahawa tiada aksara dalam penimbal hantar FIFO. Mungkin menjadi punca gangguan.
* Bit 4 - BD(Break Detected) - penunjuk putus talian (input penerima berada dalam keadaan 0 selama tidak kurang daripada masa simbol dihantar).
* Bit 3 - F.E.(Ralat Pembingkaian) - ralat bingkai (bit henti yang salah).
* Bit 2 - RE(Ralat Parity) - semak ralat bit (pariti atau tetap).
* Bit 1 - OE(Ralat Overrun) - limpahan (kehilangan watak). Jika penerimaan aksara seterusnya bermula sebelum yang sebelumnya dipunggah daripada daftar anjakan ke dalam daftar penimbal atau ke dalam daftar FIFO, aksara sebelumnya dalam daftar anjakan hilang.
* Bit 0 - D.R.(Data Penerima Sedia) - data yang diterima sedia (dalam penimbal DHR atau FIFO). Tetapkan semula - dengan membaca penerima.
Penunjuk ralat - bit - ditetapkan semula selepas membaca daftar LSR. Dalam mod FIFO, bendera ralat disimpan dalam penimbal FIFO bersama dengan setiap aksara. Dalam daftar, ia ditetapkan (dan menyebabkan gangguan) pada masa apabila aksara yang diterima dalam kesilapan berada di bahagian atas FIFO (pertama dalam baris gilir untuk dibaca). Sekiranya berlaku pemisah baris, hanya satu aksara "pecah" dimasukkan ke dalam FIFO, dan UART menunggu untuk pemulihan dan bit permulaan seterusnya. MSR- daftar status modem. Tujuan bit daftar diterangkan di bawah: MSR:
* Bit 7 - DCD(Data Carrier Detect) - status talian DCD:
0 - aktif (-V);
1 - pasif (+V).
* Bit 6 - R.I.(Penunjuk Dering) - status talian R.I.:
0 - aktif (-V);
1 - pasif (+V).
* Bit 5 - DSR(Sedia Set Data) - status talian DSR:
0 - aktif (-V);
1 - pasif (+V).
* Bit 4 - CTS(Kosongkan Untuk Hantar) - status talian CTS:
0 - aktif (-V);
1 - pasif (+V).
* Bit 3 - DDCD(Delta Data Carrier Detect) - perubahan keadaan DCD.
* Bit 2 - TERI(Trailing Edge Of Ring Indicator) - pereputan sampul surat R.I.(tamat panggilan).
* Bit 1 - DDSR(Sedia Set Data Delta) - perubahan keadaan DSR.
* Bit 0 - DCTS(Delta Clear To Send) - perubahan keadaan CTS.
Tanda-tanda perubahan (bit) ditetapkan semula apabila daftar dibaca.
SRC - daftar kerja(8 bit), tidak menjejaskan operasi UART, bertujuan untuk penyimpanan data sementara (tidak tersedia dalam 8250).
DALAM mod diagnostik(pada LME=1) "stub" dalaman disusun di dalam UART:
* output pemancar ditukar kepada keadaan logik;
* input penerima dilumpuhkan; * input DSR, CTS, RI Dan DCD terputus dari talian input dan dikawal secara dalaman oleh bit DTRC, RTSC, OUT1C, IE;
* output kawalan modem ditukar kepada keadaan pasif (sifar logik).
Data yang dihantar dalam bentuk bersiri diterima serta-merta, yang membolehkan anda menyemak saluran data dalaman port (termasuk daftar anjakan) dan mengganggu pemprosesan, serta menentukan kelajuan UART.

Ciri khas port ini berbanding dengan teknologi "siri" lain ialah hakikat bahawa tiada keperluan masa antara 2 bait. Terdapat keperluan pemasaan hanya antara bit satu bait (termasuk mula, henti dan pariti), timbal balik jeda masa antara bit satu bait dipanggil kadar baud - kadar baud. Juga dalam teknologi ini tidak ada konsep "pakej".

Teknologi "siri" lain, seperti X.25, USB atau Ethernet, mempunyai konsep "paket", dan mengenakan keperluan pemasaan yang ketat antara semua bit satu paket.

Atas sebab ini, dalam terminologi Cisco IOS, port ini dipanggil async - berbeza dengan siri segerak, i.e. X.25. Atas sebab yang sama, modul Windows yang melaksanakan PPP ke atas port ini dipanggil AsyncMac.sys (standard PPP secara berasingan menerangkan pelaksanaan PPP, yang menggunakan konsep "paket", melalui port bersiri yang tidak mempunyai konsep ini) .

Sesetengah protokol komunikasi industri mengenakan keperluan pemasaan yang ketat antara bait port bersiri. Protokol sedemikian amat sukar untuk dilaksanakan dalam sistem pengendalian berbilang tugas dengan sokongan masa nyata yang lemah, seperti Windows, dan oleh itu sering memerlukan MS-DOS dan perisian lapuk dari hampir 20 tahun lalu pada komputer kawalan.

Tujuan

Piawaian yang paling biasa digunakan untuk port bersiri komputer peribadi ialah RS-232C. Sebelum ini, port bersiri digunakan untuk menyambung terminal, kemudian untuk modem atau tetikus. Ia kini digunakan untuk menyambung kepada, untuk berkomunikasi dengan perkakasan untuk pembangunan sistem pengkomputeran terbenam, penerima satelit, daftar tunai, serta dengan peranti sistem keselamatan kemudahan.

Menggunakan port COM, anda boleh menyambungkan dua komputer menggunakan apa yang dipanggil "kabel modem null" (lihat di bawah). Ia telah digunakan sejak zaman MS-DOS untuk memindahkan fail dari satu komputer ke komputer lain, dalam UNIX untuk akses terminal ke mesin lain, dan dalam Windows (walaupun yang moden) untuk debugger peringkat kernel.

Kelebihan teknologi adalah kesederhanaan melampau peralatan. Kelemahannya ialah kelajuan rendah, saiz penyambung yang besar, serta selalunya keperluan yang tinggi untuk masa tindak balas OS dan pemacu dan bilangan gangguan yang tinggi (satu setiap separuh daripada baris gilir perkakasan, iaitu 8 bait).

Penyambung

Pada papan induk daripada pengeluar terkemuka (contohnya, Intel) atau sistem sedia (contohnya, IBM, Hewlett-Packard, Fujitsu Siemens Computers), simbol berikut digunakan untuk port bersiri:

Penyambung berbentuk D yang paling biasa digunakan, diseragamkan pada tahun 1969, ialah 9-pin dan 25-pin (DB-9 dan DB-25, masing-masing). Sebelum ini, DB-31 dan pusingan lapan pin DIN-8 turut digunakan. Kelajuan penghantaran maksimum dalam versi port biasa ialah 115,200 baud.

Perkaitan

Terdapat piawaian untuk meniru port bersiri melalui USB dan melalui Bluetooth (teknologi ini sebahagian besarnya direka sebagai "port bersiri tanpa wayar").

Namun begitu, emulasi perisian port ini masih digunakan secara meluas hari ini. Sebagai contoh, hampir semua telefon mudah alih meniru port COM klasik dan modem dalam diri mereka sendiri untuk melaksanakan penambatan - akses komputer ke Internet melalui peralatan GPRS/EGDE/3G telefon. Dalam kes ini, USB, Bluetooth atau Wi-Fi digunakan untuk sambungan fizikal ke komputer.

Juga, emulasi perisian port ini disediakan kepada "tetamu" mesin maya VMWare dan Microsoft Hyper-V, tujuan utamanya adalah untuk menyambungkan penyahpepijat peringkat kernel Windows kepada "tetamu".

peralatan

Penyambung mempunyai kenalan:

DTR (Data Terminal Ready - kesediaan untuk menerima data) - output pada komputer, input pada modem. Menunjukkan bahawa komputer sedia untuk menggunakan modem. Menetapkan semula baris ini menyebabkan but semula hampir lengkap modem kepada keadaan asalnya, termasuk. menutup telefon (beberapa daftar kawalan bertahan dalam penetapan semula sedemikian). Pada UNIX, ini berlaku apabila semua aplikasi telah menutup fail pada pemacu port bersiri. Tetikus menggunakan wayar ini untuk menerima kuasa.

DSR (Data Set Ready - kesediaan untuk pemindahan data) - input pada komputer, output pada modem. Menunjukkan bahawa modem sudah sedia. Jika baris ini berada pada sifar, maka dalam beberapa sistem pengendalian menjadi mustahil untuk membuka port sebagai fail.

RxD (Terima Data) - input pada komputer, output pada modem. Aliran data yang memasuki komputer.

TxD (Transmit Data) - output pada komputer, input pada modem. Aliran data yang datang dari komputer.

CTS (Clear to Send - kesediaan untuk menghantar) - input pada komputer, output pada modem. Komputer dikehendaki menggantung penghantaran data sehingga wayar ini ditetapkan kepada satu. Digunakan dalam protokol kawalan aliran perkakasan untuk mengelakkan limpahan dalam modem.

RTS (Request to Send - request to send) - output pada komputer, input pada modem. Modem diperlukan untuk menggantung penghantaran data sehingga wayar ini ditetapkan kepada satu. Digunakan dalam protokol kawalan aliran perkakasan untuk mengelakkan limpahan perkakasan dan pemacu.

DCD (Carrier Detect - kehadiran pembawa) - input pada komputer, output pada modem. Tetapkan kepada satu oleh modem selepas membuat sambungan dengan modem di sisi lain, tetapkan semula kepada sifar apabila sambungan terputus. Perkakasan komputer mungkin mengeluarkan gangguan apabila peristiwa sedemikian berlaku.

RI (Penunjuk Dering - isyarat deringan) - input pada komputer, output pada modem. Ditetapkan oleh modem kepada satu selepas mengesan isyarat deringan panggilan telefon. Perkakasan komputer mungkin mengeluarkan gangguan apabila peristiwa sedemikian berlaku.

SG (Signal Ground) - wayar isyarat biasa port, bukan tanah biasa, sebagai peraturan, diasingkan daripada sarung komputer atau modem.

Kabel modem null menggunakan dua pasangan bersilang: TXD/RXD dan RTS/CTS.

Perkakasan port standard (sejak IBM PC asal) dipanggil UART 16550 (kini termasuk dalam cip SuperIO pada motherboard bersama-sama dengan beberapa peranti lain). Sejak zaman PC IBM, baris gilir bait perkakasan telah muncul di dalamnya, yang sangat mengurangkan bilangan gangguan yang dikeluarkan oleh peranti.

Akses terprogram ke port COM

UNIX

Terdapat bahagian pendaftaran untuk setiap port. Bahagian ini mempunyai nama berikut:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000

di mana nilai terakhir "Serial10000" ialah nombor unik untuk setiap port COM baharu yang ditambahkan pada sistem, untuk yang kedua - "Serial10001", dsb.

Untuk berkomunikasi dengan peranti yang menyokong Bluetooth, sesetengah atur cara (contohnya, program sedemikian termasuk: program yang menyegerakkan senarai kenalan dengan telefon mudah alih; program yang mendapatkan semula koordinat GPS daripada penerima GPS) memerlukan port COM pada komputer pengguna.

Program yang menggunakan port COM untuk menyokong komunikasi menggunakan teknologi wayarles Bluetooth, yang dibangunkan secara langsung oleh Microsoft, termasuk:

  • HotSync digunakan dalam komputer pegang tangan
  • ActiveSync, digunakan dalam PC poket

OS/2

Pemacu COM.SYS sedia ada hanya menyokong 4 port COM, setiap satunya mesti mempunyai talian sampukan sendiri. Untuk menyediakan port COM dengan talian gangguan biasa, anda mesti menggunakan pemacu SIO.

Kabel modem null

Rencana utama: Kabel modem null

Dalam sesetengah kes, adalah mungkin untuk menggunakan versi mudah kabel, di mana hanya pin 2, 3 dan 5 digunakan.

lihat juga

  • Isyarat Port Bersiri

Nota

Pautan

  • Terjemahan panduan pengaturcaraan port COM dalam sistem pengendalian POSIX
  • Memprogramkan port dalam java - membolehkan anda bekerja dari Windows, tidak seperti pakej rasmi dari Sun.
  • Memprogramkan port COM dalam C++ untuk Windows. Pustaka siap sedia, kod sumber, program contoh.
  • Yashkardin V.L. Port bersiri. Memprogramkan port COM dalam Windows dan MS-DOS. SoftElectro (2009). Diarkibkan daripada yang asal pada 8 Februari 2012.

Jadi kami sampai ke pelabuhan COM. Tetapi dengan itu semuanya tidak semudah dengan LPT, dan penggunaan penuhnya akan memerlukan lebih banyak usaha. Masalah utama juga adalah kelebihan utamanya - pemindahan data bersiri. Jika dalam LPT satu bait data dihantar sepanjang 8 baris, bit setiap baris, dan keadaan setiap baris dapat dilihat dengan mudah, maka dalam port COM satu bait data dihantar sedikit demi sedikit sepanjang satu baris (berbanding dengan tanah , sudah tentu) dan lihat apa yang dihantar ke sana dengan LED sahaja tidak akan melakukannya. Untuk melakukan ini, anda memerlukan peranti khas - penukar aliran data bersiri menjadi selari, yang dipanggil. USART (Pemancar Penerima Segerak/Asynchronous Universal). Sebagai contoh, ia termasuk dalam papan induk komputer yang dilengkapi dengan port COM, atau dalam mana-mana mikropengawal yang lebih serius.


Saya harap anda masih tawar hati dalam menguasai port COM. Ia bukan semua azab dan kesuraman. Sesetengah keputusan boleh diperolehi tanpa USART. Mari kita rumuskan tugas yang akan kita laksanakan pada peringkat awal bekerja dengan port COM:


"Saya ingin LED disambungkan ke komputer melalui port COM. Saya melancarkan program ini. Saya melakukan beberapa tindakan dalam program ini, LED menyala, saya melakukan sesuatu yang lain - LED padam."


Tugas itu agak khusus (dengan mengambil kira hakikat bahawa USART tidak digunakan) dan merupakan tugas "buat sendiri" tulen, tetapi ia agak boleh dilaksanakan dan boleh dilaksanakan. Mari kita mula melaksanakannya.


1.Port COM

Sekali lagi, ambil unit sistem PC anda dan lihat bahagian belakang. Kami perhatikan terdapat penyambung 9-pin - ini adalah port COM. Pada hakikatnya mungkin terdapat beberapa daripadanya (sehingga 4). PC saya mempunyai dua port COM (lihat foto).


2. Sambungan port COM


3. Perkakasan

Kami juga perlu "bermain" dengan perkakasan, dalam erti kata bahawa ia akan menjadi lebih rumit daripada dengan peranti pertama untuk port LPT. Hakikatnya ialah protokol RS-232, di mana data ditukar dalam port COM, mempunyai hubungan voltan keadaan logik yang sedikit berbeza. Jika biasanya ini logik 0 0 V, logik 1 +5 V, maka dalam RS-232 hubungan ini adalah seperti berikut: logik 0 +12 V, logik 1 -12 V.

Dan sebagai contoh, setelah menerima -12 V, tidak jelas apa yang perlu dilakukan dengan voltan ini. Biasanya, tahap RS-232 ditukar kepada TTL (0.5 V). Pilihan paling mudah ialah diod zener. Tetapi saya bercadang untuk membuat penukar ini pada cip khas. Ia dipanggil MAX232.

Sekarang mari kita lihat apakah isyarat dari port COM yang boleh kita lihat pada LED? Malah, terdapat sebanyak 6 talian bebas dalam port COM, yang menarik minat pembangun peranti antara muka. Dua daripadanya belum tersedia kepada kami - talian data bersiri. Tetapi baki 4 direka untuk mengawal dan menunjukkan proses pemindahan data dan kami boleh "memindahkan" mereka untuk memenuhi keperluan kami. Dua daripadanya bertujuan untuk kawalan daripada peranti luaran dan kami tidak akan menyentuhnya buat masa ini, tetapi kini kami akan menggunakan dua baris terakhir yang tinggal. Mereka dipanggil:

  • RTS- Permintaan untuk pemindahan. Garis interaksi yang menunjukkan bahawa komputer bersedia untuk menerima data.
  • DTR- Komputer sudah siap. Garis interaksi yang menunjukkan bahawa komputer dihidupkan dan bersedia untuk berkomunikasi.

Sekarang kami memindahkan sedikit tujuannya, dan LED yang disambungkan kepada mereka akan sama ada padam atau menyala, bergantung pada tindakan dalam program kami sendiri.

Jadi, mari kita susun rajah yang membolehkan kita melaksanakan tindakan yang kita inginkan.

Dan inilah pelaksanaan praktikalnya. Saya fikir anda akan memaafkan saya bahawa saya membuatnya dalam versi papan roti yang begitu bodoh, kerana saya tidak mahu membuat papan untuk litar "sangat produktif".


4. Bahagian perisian

Segala-galanya lebih mudah di sini. Mari cipta aplikasi Windows dalam Microsoft Visual C++ 6.0 berdasarkan MFC untuk mengurus dua baris komunikasi port COM. Untuk melakukan ini, buat projek MFC baharu dan beri nama, sebagai contoh, TestCOM. Seterusnya, pilih pilihan untuk membina berdasarkan dialog.

Berikan rupa tetingkap dialog program kami seperti dalam Rajah. di bawah, iaitu tambah empat butang, dua untuk setiap baris. Satu daripadanya masing-masing perlu untuk "memadamkan" garisan, yang lain untuk "menetapkannya" kepada satu.

Kelas CTestCOMDlg: CDialog awam ( // Pembinaan awam: CTestCOMDlg(CWnd* pParent = NULL); // pembina standard HANDLE hFile;

Agar program kami mengawal baris port COM, ia mesti dibuka terlebih dahulu. Mari tulis kod yang bertanggungjawab untuk membuka port semasa memuatkan program.

HFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Port tidak dapat dibuka!", "Ralat", MB_ICONERROR); ) else ( MessageBox("Port berjaya dibuka", "Ok", MB_OK); )

Menggunakan fungsi Win API standard CreateFile() buka port COM COM2. Seterusnya, kami menyemak kejayaan pembukaan dan memaparkan mesej maklumat. Di sini kita perlu membuat nota penting: COM2 ada pada komputer saya, tetapi pada komputer anda, anda boleh menyambungkannya ke port COM lain. Sehubungan itu, namanya perlu ditukar kepada mana-mana port yang anda gunakan. Anda boleh melihat nombor port yang terdapat pada komputer anda seperti ini: Mula -> Tetapan -> Panel Kawalan -> Sistem -> Perkakasan -> Pengurus Peranti -> Port (COM dan LPT).

Akibatnya, fungsi CTestCOMDlg::OnInitDialog(), terletak dalam fail TestCOMDlg.cpp, kelas dialog kami hendaklah dalam bentuk:

BOOL CTestCOMDlg::OnInitDialog() ( CDialog::OnInitDialog(); // Tambah "Perihal..." item menu pada menu sistem. // IDM_ABOUTBOX mesti berada dalam julat arahan sistem. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); ) ) // Tetapkan ikon untuk dialog ini. Rangka kerja melakukan ini secara automatik // apabila tetingkap utama aplikasi bukan SetIcon dialog(m_hIcon, TRUE); // Tetapkan ikon besar SetIcon(m_hIcon, FALSE); // Tetapkan ikon kecil // TODO: Tambah permulaan tambahan di sini hFile = CreateFile("COM2", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,NULL); if(hFile==INVALID_HANDLE_VALUE) ( MessageBox("Tidak dapat membuka port!", "Ostbk", MB_ICONERROR); ) else ( MessageBox("Port berjaya dibuka", "Ok", MB_OK); ) return TRUE; // return TRUE melainkan anda menetapkan fokus kepada kawalan )

Sekarang mari tambah pengendali untuk butang kawalan talian. Saya memberi mereka nama yang sesuai: fungsi yang menetapkan satu pada baris DTR ialah OnDTR1(), 0 ialah OnDTR0(). Untuk baris RTS, dengan cara yang sama. Biar saya ingatkan anda bahawa pengendali dibuat apabila anda mengklik dua kali pada butang. Akibatnya, empat fungsi ini sepatutnya kelihatan seperti:

Void CTestCOMDlg::OnDTR1() ( // TODO: Tambahkan kod pengendali pemberitahuan kawalan anda di sini EscapeCommFunction(hFile, 6); ) void CTestCOMDlg::OnDTR0() ( // TODO: Tambah kod pengendali pemberitahuan kawalan anda di sini EscapeCommFunction(hFile, 5); ) void CTestCOMDlg::OnRTS1() ( // TODO: Tambahkan kod pengendali pemberitahuan kawalan anda di sini EscapeCommFunction(hFile, 4); ) void CTestCOMDlg::OnRTS0() ( // TODO: Tambahkan kod pengendali pemberitahuan kawalan anda di sini EscapeCommFunction(hFile, 3); )

Biar saya terangkan sedikit bagaimana ia berfungsi. Seperti yang anda lihat, di dalamnya mengandungi panggilan ke fungsi Win API yang sama EscapeCommFunction() dengan dua parameter. Yang pertama ialah pemegang (HANDLE) ke port terbuka, yang kedua ialah kod tindakan khas yang sepadan dengan keadaan baris yang diperlukan.

Itu sahaja, kami menyusun dan melancarkan. Jika semuanya baik-baik saja, anda akan melihat mesej tentang kejayaan pembukaan pelabuhan. Seterusnya, dengan menekan butang yang sepadan, kami kelipkan LED yang disambungkan ke port COM.

© Ivanov Dmitry
Disember 2006