Rumah / Ulasan / Deskripsi port COM. Apa itu port COM. Modem dan port COM

Deskripsi port COM. Apa itu port COM. Modem dan port COM

Baru-baru ini, metode transmisi data serial menggantikan yang paralel.
Anda tidak perlu mencari jauh-jauh untuk contoh: penampilan bus USB dan SATA berbicara sendiri.
Memang, bus paralel sulit untuk diukur (kabel lebih panjang, laju jam bus lebih tinggi), tidak mengherankan bahwa teknologi beralih ke bus paralel di belakang.

Antarmuka serial

Saat ini, ada banyak sekali antarmuka data serial yang berbeda.
Selain USB dan SATA yang telah disebutkan, kita juga dapat mengingat setidaknya dua standar RS-232 dan MIDI yang terkenal (alias GamePort).
Semuanya disatukan oleh yang sama - transmisi serial dari setiap bit informasi, atau Antarmuka Serial.
Ada banyak keuntungan dari antarmuka seperti itu, dan yang paling penting adalah sejumlah kecil kabel penghubung, dan, akibatnya, harga yang lebih rendah.

Transfer data

Komunikasi serial dapat diimplementasikan dalam dua cara: asinkron dan sinkron.

Transmisi data sinkron melibatkan sinkronisasi operasi penerima dan pemancar dengan memasukkan informasi jam dalam sinyal yang ditransmisikan atau dengan menggunakan jalur sinkronisasi khusus.
Penerima dan pemancar harus terhubung dengan kabel sinkronisasi khusus, yang memastikan bahwa perangkat beroperasi pada frekuensi yang sama.

Transmisi asinkron melibatkan penggunaan bit khusus yang menandai awal dan akhir data - bit start (logis nol) dan stop (logis satu).
Dimungkinkan juga untuk menggunakan bit paritas khusus, yang menentukan jumlah bit tunggal yang ditransmisikan genap atau ganjil (tergantung pada konvensi yang diterima).
Di sisi penerima, bit ini dianalisis, dan jika bit paritas tidak sesuai dengan jumlah bit tunggal, maka paket data dikirim kembali.

Perlu dicatat bahwa pemeriksaan semacam itu memungkinkan Anda untuk mendeteksi kesalahan hanya jika hanya satu bit yang salah ditransmisikan, jika beberapa bit salah ditransmisikan, pemeriksaan ini sudah menjadi salah.
Pengiriman paket data berikutnya dapat terjadi kapan saja setelah mengirimkan stop bit, dan tentunya harus dimulai dengan start bit.
Tidak ada yang jelas?

Nah, jika semuanya Teknologi komputer sederhana, maka setiap ibu rumah tangga akan lama membuat protokol baru secara paralel dengan pangsit ...
Mari kita coba melihat prosesnya dengan cara yang berbeda.
Data ditransmisikan dalam paket, kira-kira seperti paket IP, bit informasi mengikuti data, jumlah bit ini dapat bervariasi dari 2 hingga 3 setengah.
Dengan setengah?!
Ya, Anda salah dengar, dengan setengah!

Stop bit, atau lebih tepatnya sinyal yang ditransmisikan sesuai dengan stop bit, dapat memiliki durasi lebih besar dari sinyal yang sesuai dengan satu bit, tetapi kurang dari dua bit.
Jadi, sebuah paket selalu dimulai dengan bit awal, yang selalu nol, diikuti oleh bit data, kemudian bit paritas, dan kemudian bit stop, yang selalu satu.
Kemudian, setelah beberapa waktu yang sewenang-wenang, pawai ketukan di Moskow berlanjut.

Metode transmisi ini menyiratkan bahwa penerima dan pemancar harus bekerja pada kecepatan yang sama (baik, atau hampir pada kecepatan yang sama), jika tidak, penerima tidak akan punya waktu untuk memproses bit data yang masuk, atau mengambil bit lama untuk yang baru. .
Untuk menghindari hal ini, setiap bit dinyalakan, yaitu dikirim secara serempak dengan sinyal khusus - "strobo" yang dihasilkan di dalam perangkat.
Ada sejumlah kecepatan spesifik untuk perangkat asinkron - 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 dan 115200 bit per detik.

Anda mungkin pernah mendengar bahwa "baud" digunakan sebagai unit untuk mengukur kecepatan transfer data - frekuensi perubahan status saluran, dan nilai ini akan bertepatan dengan kecepatan transfer data hanya jika sinyal dapat memiliki salah satu dari dua nilai .
Jika beberapa bit dikodekan dalam satu perubahan sinyal (dan ini terjadi pada banyak modem), laju transmisi dan frekuensi perubahan saluran akan menjadi nilai yang sama sekali berbeda.

Sekarang beberapa kata tentang istilah misterius "paket data".
Di bawah paket kasus ini mengacu pada set bit yang ditransmisikan antara bit start dan stop.
Jumlah mereka dapat bervariasi dari lima hingga delapan.
Orang mungkin bertanya-tanya mengapa tepatnya lima hingga delapan bit?
Mengapa tidak mentransfer sekaligus, katakanlah, satu kilobyte data dalam satu paket?

Jawabannya jelas: saat mentransmisikan paket data kecil, kita mungkin kehilangan dengan mengirimkan tiga bit layanan (dari 50 hingga 30 persen data), tetapi jika paket rusak selama transmisi, kita dapat dengan mudah mengenali ini (ingat tentang sedikit paritas?) dan dengan cepat mengirimkannya lagi.
Tetapi dalam satu kilobyte data, akan sulit untuk mendeteksi kesalahan, dan akan jauh lebih sulit untuk mengirimkannya.

Contoh perangkat transfer data serial asinkron adalah port COM komputer, modem favorit yang dirancang Trussardi, dan mouse yang terhubung ke port yang sama, yang karena alasan tertentu sekretaris yang berpikiran sempit selalu mencoba memasukkan ke PS / 2.
Semua perangkat ini bekerja pada antarmuka RS-232, atau lebih tepatnya pada bagian asinkronnya, karena standar ini juga menjelaskan transfer data sinkron.

AMD Radeon Software Adrenalin Edition Driver 19.9.2 Opsional

Driver opsional AMD Radeon Software Adrenalin Edition 19.9.2 yang baru meningkatkan kinerja di Borderlands 3 dan menambahkan dukungan untuk Radeon Image Sharpening.

Kumulatif pembaruan Windows 10 1903 KB4515384 (ditambahkan)

Pada 10 September 2019, Microsoft merilis pembaruan kumulatif untuk Windows 10 versi 1903 - KB4515384 dengan sejumlah peningkatan keamanan dan perbaikan untuk bug yang rusak. kerja jendela Cari dan menyebabkan penggunaan CPU yang tinggi.

Port COM paling sering digunakan untuk menghubungkan mikrokontroler ke komputer. Pada artikel ini, kami akan menunjukkan cara mengirim perintah kontrol dari komputer dan mengirim data dari pengontrol.

Persiapan kerja

Kebanyakan mikrokontroler memiliki beberapa port I/O. Protokol UART adalah yang paling cocok untuk komunikasi dengan PC. Ini adalah protokol transfer data asinkron serial. Untuk mengubahnya menjadi antarmuka USB, papan memiliki konverter USB-RS232 - FT232RL.
Anda hanya memerlukan papan yang kompatibel dengan Arduino untuk menjalankan contoh di artikel ini. Kita gunakan . Pastikan papan Anda memiliki LED yang terhubung ke pin 13 dan tombol reset.

Misalnya, mari unggah kode ke papan yang menampilkan tabel ASCII. ASCII adalah pengkodean untuk mewakili angka desimal, huruf Latin dan nasional, tanda baca, dan karakter kontrol.

int simbol = 33 ; void setup() ( Serial. begin (9600 ); Serial. println(" ASCII Table ~ Character Map " ); ) void loop() ( Serial. write(symbol) ; Serial. print(" , dec: " ); Serial .print(simbol) ; Serial.print(" , hex: " ); Serial.print(simbol, HEX); Serial.print(" , okt: " ); Serial.print(simbol, OCT) ; Serial.print( " , bin: " ); Serial.println(simbol, BIN) ; if (simbol == 126 ) ( while (true) (lanjutkan ; ) ) simbol+ + ; )

Variabel simbol menyimpan kode simbol. Tabel dimulai pada 33 dan berakhir pada 126, jadi simbol awalnya diatur ke 33.
Untuk memulai pengoperasian port UART, gunakan fungsi Serial.mulai(). Satu-satunya parameternya adalah kecepatan. Kecepatan harus dinegosiasikan di sisi pengirim dan penerima terlebih dahulu, karena protokol transmisi tidak sinkron. Dalam contoh ini, kecepatannya adalah 9600bps.
Tiga fungsi digunakan untuk menulis nilai ke port:

  1. Serial.tulis()– menulis data ke port dalam bentuk biner.
  2. Serial.cetak() dapat memiliki banyak nilai, tetapi semuanya berfungsi untuk menampilkan informasi dalam bentuk yang ramah manusia. Misalnya, jika informasi yang ditentukan sebagai parameter yang akan diteruskan diapit dalam tanda kutip, program terminal akan mencetaknya tidak berubah. Jika Anda ingin menampilkan nilai apa pun di sistem tertentu kalkulus, maka Anda perlu menambahkan kata layanan: BIN-biner, OCT - oktal, DEC - desimal, HEX - heksadesimal. Sebagai contoh, Serial.print(25,HEX).
  3. Serial.println() melakukan hal yang sama dengan Serial.cetak(), tetapi masih menerjemahkan string setelah menampilkan informasi.

Untuk memeriksa pengoperasian program, komputer harus memiliki program terminal yang menerima data dari port COM. PADA Arduino IDE sudah terpasang. Untuk memanggilnya, pilih Tools->Port Monitor dari menu. Jendela utilitas ini sangat sederhana:

Sekarang klik tombol restart. MK akan reboot dan menampilkan tabel ASCII:

Perhatikan bagian kode ini:

if (simbol = = 126 ) ( while (true) ( ​​lanjutkan ; ) )

Ini menghentikan eksekusi program. Jika Anda mengecualikannya, tabel akan ditampilkan tanpa batas waktu.
Untuk mengkonsolidasikan pengetahuan yang diperoleh, coba tulis loop tak terbatas yang akan mengirim nama Anda ke port serial sekali per detik. Tambahkan nomor langkah ke output dan jangan lupa untuk menerjemahkan baris setelah nama.

Mengirim perintah dari PC

Sebelum melakukan ini, Anda perlu mendapatkan gambaran tentang cara kerja port COM.
Pertama-tama, semua pertukaran terjadi melalui buffer memori. Artinya, ketika Anda mengirim sesuatu dari PC ke perangkat, data ditempatkan di beberapa bagian memori khusus. Segera setelah perangkat siap, ia membaca data dari buffer. Fungsi ini memungkinkan Anda untuk memeriksa keadaan buffer serial.tersedia(). Fungsi ini mengembalikan jumlah byte dalam buffer. Untuk mengurangi byte ini, Anda perlu menggunakan fungsi Serial.baca(). Mari kita lihat bagaimana fungsi-fungsi ini bekerja dengan sebuah contoh:

int nilai = 0 ; void setup() ( Serial. begin(9600 ) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; Serial. print(" I accept: " ); Serial. tulis(val); Serial.println() ; ) )

Setelah kode dimuat ke dalam memori mikrokontroler, buka monitor port COM. Ketik satu karakter dan tekan Enter. Di bidang data yang diterima Anda akan melihat: “Saya menerima: X”, di mana alih-alih X akan menjadi karakter yang Anda masukkan.
Program berputar tanpa batas di loop utama. Pada saat byte ditulis ke port, fungsi Serial.available() mengambil nilai 1, yaitu kondisi terpenuhi Serial.available() > 0. Fungsi selanjutnya Serial.baca() membaca byte ini, sehingga menghapus buffer. Setelah itu, dengan menggunakan fungsi yang sudah Anda ketahui, output terjadi.
Menggunakan monitor port COM bawaan Arduino IDE memiliki beberapa keterbatasan. Saat mengirim data dari papan ke port COM, output dapat diatur dalam format arbitrer. Dan saat mengirim dari PC ke papan, transfer karakter terjadi sesuai dengan tabel ASCII. Ini berarti bahwa ketika Anda memasukkan, misalnya, karakter "1", biner "00110001" (yaitu, "49" dalam desimal) dikirim melalui port COM.
Mari kita ubah sedikit kode dan periksa pernyataan ini:

int nilai = 0 ; void setup() ( Serial. begin(9600 ) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; Serial. print(" I accept: " ); Serial. println(val, BIN) ; ) )

Setelah mengunduh, di monitor port saat mengirim "1", Anda akan melihat sebagai tanggapan: "Saya menerima: 110001". Anda dapat mengubah format output dan melihat apa yang diterima papan dengan karakter lain.

Kontrol perangkat melalui port COM

Jelas, dengan perintah dari PC, Anda dapat mengontrol semua fungsi mikrokontroler. Unduh programnya mengelola pekerjaan DIPIMPIN:

int nilai = 0 ; void setup() ( Serial. begin(9600 ) ; ) void loop() ( if (Serial. available() > 0 ) ( val = Serial. read() ; if (val= = "H" ) digitalWrite(13 , TINGGI); if (val= = "L" ) digitalWrite(13 , LOW) ; ) )

Ketika karakter “H” dikirim ke port COM, LED pada output ke-13 menyala, dan ketika “L” dikirim, LED akan padam.
Jika, berdasarkan hasil penerimaan data dari port COM, Anda ingin program melakukan tindakan yang berbeda di loop utama, Anda dapat memeriksa kondisi di loop utama. Sebagai contoh.

Port COM, atau port serial, adalah antarmuka serial dua arah yang dirancang untuk bertukar data byte. Pada awalnya, port ini digunakan untuk menghubungkan terminal, dan kemudian untuk modem dan mouse. Sekarang sudah menjadi kebiasaan untuk menggunakannya untuk menghubungkan sumber serta untuk berkomunikasi dengan pemrosesan sistem komputasi yang disematkan.

Penggunaan

Jadi, sebelum kita berbicara lebih detail tentang apa itu port COM, kita perlu melihat ke masa lalu untuk memahami artinya. Secara harfiah 15 tahun yang lalu, sebuah metode digunakan untuk menghubungkan perangkat ke komputer menggunakan konektor standar khusus yang terletak di panel belakang. blok sistem menggunakan kabel serial RS-232 khusus. Metode ini memiliki banyak kelemahan. Kabel seperti itu, menurut standar modern, memberikan kecepatan transfer data yang sangat rendah - sekitar seratus kilobit per detik. Selain ketika koneksi fisik konektor dibuat, peralatan harus dimatikan, dan mereka sendiri dilekatkan satu sama lain dengan sekrup yang memastikan keandalan, sementara dimensinya berbeda dalam ukuran yang cukup besar.

Sedikit sejarah

Port COM pada komputer pada waktu itu secara tradisional diberi nomor 1 atau 2, karena biasanya tidak lebih dari dua. Port tambahan dapat dipasang jika diperlukan. Ketika pengguna telah mengonfigurasi perangkat lunak, diperlukan untuk tidak membingungkan dan menginstal dengan benar koneksi yang disediakan Peralatan yang diperlukan. Setiap port COM memerlukan pengaturan kecepatan yang benar, serta sejumlah parameter misterius lainnya yang hanya diketahui oleh kalangan sempit spesialis. Agar koneksi peralatan berhasil, semua parameter yang diperlukan harus ditemukan dari suatu tempat atau dipilih secara eksperimental, karena dalam hal ini tidak ada konfigurasi otomatis. Selain itu, koneksi melalui port COM memungkinkan koneksi perangkat lunak apa pun dengan peralatan eksternal yang sewenang-wenang, bahkan yang sama sekali tidak kompatibel, yang menyebabkan sejumlah besar kesalahan selama proses pengaturan.

Kemodernan

Sekarang koneksi melalui port COM sepenuhnya digantikan oleh lebih banyak metode modern, yang tidak memerlukan pengetahuan khusus untuk implementasinya, yaitu melalui port USB. Metode ini tidak memiliki semua kerugian yang disebutkan sebelumnya. Namun, standar modern untuk kompatibilitas menghubungkan semua jenis peralatan GPS dan perangkat lunak yang sangat beragam telah terbentuk sejak lama di sekitar konsep port COM, yang telah menjadi kuno saat ini.

Ini disebabkan oleh fakta bahwa pada awalnya hampir semua peralatan, termasuk GPS, bersifat eksternal, dan koneksinya ke komputer dilakukan melalui kabel serial yang terhubung ke salah satu port perangkat keras. Selama proses konfigurasi, pengguna diminta untuk memilih nomor port dengan benar dan kecepatan transmisi data yang melaluinya. Pada saat itu, standar utama untuk mentransmisikan data dari penerima GPS ke program, yang sekarang disebut NMEA-0183, muncul. Faktanya, standar ini mengharuskan semua pengembang bahkan perangkat keras dan perangkat lunak paling modern untuk bertukar data melalui port COM. Dan semua ini dalam kondisi komputer modern, serta pada PDA, standar USB telah lama menjadi yang utama. Dan satu fitur lagi adalah bahwa penerima GPS baru-baru ini semakin banyak dipasang langsung di dalam casing perangkat, yaitu, tidak ada kabel penghubung antara itu dan perangkat utama.

Port COM virtual

Jalan keluar ditemukan, yaitu, port COM "virtual" dikembangkan. Ternyata perangkat internal PDA, misalnya, penerima GPS, disimulasikan dalam perangkat lunak dalam bentuk port COM, sementara tidak demikian dalam istilah perangkat keras. Pada saat yang sama, sebuah program yang dirancang untuk berinteraksi melalui standar seperti itu tidak ada bedanya dengan cara implementasinya. Di sini kehadiran simulasi virtual diperbolehkan, dan bukan kehadiran wajib dari implementasi perangkat keras. Jadi dimungkinkan untuk memastikan kompatibilitas program GPS gaya lama dengan peralatan modern.

Perubahan dilakukan

Pada saat yang sama, manajemen port COM tidak berubah secara signifikan. Pengguna, dengan cara lama, harus membuat pengaturan yang rumit hampir secara manual. Namun, port COM modern bukan lagi perangkat besar yang terletak di panel belakang unit sistem, tetapi perangkat yang sama sekali berbeda. Dan di sini intinya adalah bahwa dari sudut pandang perangkat lunak, semua implementasinya terlihat tanpa wajah, yaitu, tidak ada perbedaan antara port virtual dan nyata. Untuk perangkat lunak, port hanya berbeda dengan nomor yang diberikan oleh produsen PDA secara acak. Misalnya, receiver ASUS biasanya terletak di COM5, sedangkan PocketLOOX 560 menunjukkan receiver di COM8. Ternyata program yang ingin menerima data dari penerima GPS pada awalnya tidak memiliki informasi yang dapat diandalkan tentang nomor bersyarat, di mana port muncul, yang ditentukan sesuai untuk penerima pada PDA ini.

Bagaimana cara kerjanya?

Mengingat bahwa di antara semua port COM yang tersedia, Anda dapat pencarian otomatis cocok, prosedur untuk survei semacam itu agak tidak dapat diandalkan dan agak rumit. Ini disebabkan oleh fakta bahwa perangkat yang ditampilkan dalam sistem sebagai port COM bisa sangat beragam dan tidak ada hubungannya dengan GPS, mereka dapat sepenuhnya menanggapi survei semacam itu secara tidak terduga. Misalnya, pada PDA ada port yang terkait dengan modem seluler internal, dengan USB, dengan port inframerah, serta dengan elemen lainnya. Mengaksesnya dengan program yang dirancang untuk bekerja dengan perangkat tertentu dapat menyebabkan reaksi yang sama sekali tidak terduga, serta berbagai malfungsi, yang sering menyebabkan PDA membeku. Itulah sebabnya upaya untuk membuka port COM dapat menyebabkan situasi yang tidak terduga, hingga menyalakan Bluetooth atau Dan mungkin ada lebih banyak kasus yang tidak dapat dipahami.

Operasi port COM

Untuk port COM, chip transceiver universal asinkron digunakan sebagai dasarnya. Sirkuit mikro ini ada dalam beberapa jenis: Intel 16550A, 16550, 16450, 8250. Untuk setiap port COM, berisi register penerima dan pemancar data, serta sejumlah register kontrol yang dapat diakses melalui program BIOS, Windows dan MS DOS. Pada versi terbaru microchip memiliki satu set buffer untuk penyimpanan sementara data yang dikirim dan diterima. Berkat kemungkinan ini, dimungkinkan untuk lebih jarang mengganggu pekerjaan prosesor pusat, serta mengoordinasikan kecepatan transmisi data.

parameter utama

Perangkat port COM mengasumsikan fitur karakteristik berikut:

Alamat dasar port untuk input dan output informasi;

Nomor interupsi perangkat keras;

Ukuran satu blok informasi;

Kecepatan pengiriman data;

Mode deteksi kejujuran;

Metode manajemen arus informasi;

Jumlah bit stop.

Bagaimana cara memeriksa port COM komputer? Apa yang harus diperhatikan?

Seperti disebutkan sebelumnya, jenis port ini adalah antarmuka dua arah untuk cara serial tingkat bit. Ciri khas dibandingkan dengan port paralel di sini adalah transfer data sedikit demi sedikit. Anatomi port COM sedemikian rupa sehingga bukan satu-satunya di komputer yang menggunakan metode transfer data serial. Misalnya, antarmuka seperti Ethernet atau USB juga menggunakan prinsip yang sama, tetapi secara historis sering disebut port serial standar RS232.

Sangat sering diperlukan untuk membuka port COM untuk perbaikan dan diagnostik komputer, sementara itu juga perlu diperiksa pengoperasiannya. Sangat mudah untuk membakar suatu elemen. Paling sering ini terjadi karena kesalahan pengguna, yang salah memutuskan sambungan perangkat, mencabut konektor saat antarmuka terhubung. Cara termudah untuk memeriksa apakah antarmuka berfungsi adalah dengan menghubungkan mouse ke sana. Namun, sangat sulit untuk mendapatkan gambaran yang lengkap, karena manipulator hanya menggunakan setengah dari jalur sinyal dari delapan yang tersedia. Hanya penggunaan steker dan program khusus yang memungkinkan pemeriksaan kinerja. Untuk tujuan ini, sudah ada perangkat lunak yang dikembangkan secara khusus.

Port serial disukai oleh pengembang karena kemudahan perawatan dan penggunaannya.

Dan tentu saja, menulis ke konsol program terminal semuanya baik-baik saja, tetapi saya ingin aplikasi saya sendiri, yang, dengan menekan tombol di layar, melakukan tindakan yang Anda butuhkan;)

Pada artikel ini saya akan menjelaskan bagaimana bekerja dengan pelabuhan com dalam C++.

Solusinya sederhana, tetapi untuk beberapa alasan contoh kerja tidak segera ditemukan. Untuk sim saya simpan disini.

Tentu saja, Anda dapat menggunakan solusi lintas platform seperti QSerial - perpustakaan di Qt, saya mungkin akan melakukannya, tetapi di masa mendatang. Sekarang kita berbicara tentang Windows "murni" C++. Kami akan menulis di Visual Studio. Saya memiliki 2010, meskipun ini tidak memainkan peran apa pun ...

Buat proyek konsol Win32 baru.

Sertakan file header:

#termasuk #termasuk menggunakan namespace std;

Kami mendeklarasikan penangan port com:

MENANGANI hSerial;

Saya melakukannya secara global jadi saya tidak perlu khawatir tentang pointer saat meneruskannya ke fungsi.

int _tmain(int argc, _TCHAR* argv) (

Saya tidak tahan dengan gaya pemrograman Windows. Mereka menyebut segala sesuatu dengan caranya sendiri dan duduk bersukacita ...

Sekarang keajaiban mendeklarasikan string dengan nama port. Masalahnya adalah ia tidak dapat mengubah char itu sendiri.

LPCTSTR sPortName = L"COM1";

Bekerja dengan port serial di Windows berfungsi seperti dengan file. Pembukaan pertama com port untuk menulis/membaca:

HSerial = ::CreateFile(sPortName,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

Memeriksa fungsionalitas:

If(hSerial==INVALID_HANDLE_VALUE) ( if(GetLastError()==ERROR_FILE_NOT_FOUND) ( cout<< "serial port does not exist.\n"; } cout << "some other error occurred.\n"; }

Sekarang Anda perlu mengonfigurasi parameter koneksi:

DCB dcbSerialParams = (0); dcbSerialParams.DCBlength=sizeof(dcbSerialParams); if (!GetCommState(hSerial, &dcbSerialParams)) ( cout<< "getting state error\n"; } dcbSerialParams.BaudRate=CBR_9600; dcbSerialParams.ByteSize=8; dcbSerialParams.StopBits=ONESTOPBIT; dcbSerialParams.Parity=NOPARITY; if(!SetCommState(hSerial, &dcbSerialParams)) { cout << "error setting serial port state\n"; }

Di msdn, disarankan untuk terlebih dahulu mendapatkan parameter, lalu mengubahnya. Kami masih belajar, jadi kami melakukan apa yang diminta.

Sekarang mari kita deklarasikan string yang akan kita lewati dan variabel yang diperlukan untuk ini:

Char data = "Halo dari C++"; // string untuk meneruskan DWORD dwSize = sizeof(data); // ukuran string ini DWORD dwBytesWritten; // di sini akan menjadi jumlah byte yang benar-benar ditransfer

Mengirim string. Biarkan saya mengingatkan Anda bahwa contohnya adalah yang paling sederhana, jadi saya tidak melakukan pemeriksaan khusus:

BOOL iRet = WriteFile(hSerial,data,dwSize,&dwBytesWritten,NULL);

Saya juga memutuskan untuk menampilkan ukuran string dan jumlah byte yang dikirim ke kontrol:

Cout<< dwSize << " Bytes in string. " << dwBytesWritten << " Bytes sended. " << endl;

Di akhir program, kami membuat loop tak terbatas untuk membaca data:

Sementara(1) ( ReadCOM(); ) mengembalikan 0; )

Sekarang fungsi baca:

Void ReadCOM() ( DWORD iSize; char sReceivedChar; while (true) ( ​​ReadFile(hSerial, &sReceivedChar, 1, &iSize, 0); // dapatkan 1 byte jika (iSize > 0) // print cout jika ada yang diterima<< sReceivedChar; } }

Itu sebenarnya contoh keseluruhan.

Dalam komputasi, port serial adalah antarmuka komunikasi serial di mana informasi ditransmisikan atau dikeluarkan pada suatu waktu. Untuk sebagian besar sejarah komputer pribadi, data ditransfer melalui port serial ke perangkat seperti modem, terminal, dan berbagai periferal.

Sementara antarmuka seperti Ethernet, FireWire, dan USB semuanya mengirim data sebagai aliran serial, istilah "port serial" umumnya mengidentifikasi perangkat keras yang kurang lebih sesuai dengan standar RS-232, yang dirancang untuk antarmuka dengan modem atau perangkat komunikasi serupa.

Komputer modern tanpa port serial mungkin memerlukan konverter serial untuk memastikan kompatibilitas dengan perangkat serial RS-232. Port serial masih digunakan dalam aplikasi seperti sistem otomasi industri, instrumen ilmiah, sistem point of sale, dan beberapa produk industri dan konsumen. Komputer server dapat menggunakan port serial sebagai konsol manajemen atau diagnostik. Peralatan jaringan (seperti router dan switch) sering menggunakan konsol serial untuk konfigurasi. Port serial terus digunakan di area ini karena sederhana, murah, dan fungsionalitas konsolnya sangat terstandarisasi dan tersebar luas.

Pinout port COM (RS232)

Ada 2 jenis com port, konektor lama 25-pin dan konektor baru 9-pin yang menggantikannya.

Di bawah ini adalah diagram konektor RS232 9-pin standar khas dengan konektor, konektor jenis ini juga disebut konektor DB9.

  1. Deteksi Pembawa (DCD).
  2. Terima Data (RXD).
  3. Transmisi data (TXD).
  4. Penerima Siap Tukar (DTR).
  5. Tanah (GND).
  6. Sumber Ready to Exchange (DSR).
  7. Permintaan untuk Mengirim (RTS).
  8. Siap Transfer (CTS).
  9. Sinyal panggilan (RI).

Informasi Pin Adaptor Port Serial RJ-45 ke DB-9 untuk Sakelar

Port konsol adalah antarmuka serial RS-232 yang menggunakan konektor RJ-45 untuk terhubung ke perangkat kontrol seperti PC atau laptop. Jika laptop atau PC Anda tidak memiliki pin konektor DB-9 dan Anda ingin menghubungkan laptop atau PC Anda ke sakelar, gunakan kombinasi adaptor RJ-45 dan DB-9.

DB-9RJ-45
Mendapatkan Data2 3
Transfer data3 6
Kesediaan untuk bertukar4 7
Bumi5 5
Bumi5 4
Kesediaan untuk bertukar6 2
Permintaan Transfer7 8
Transfer Siap8 1

Warna kawat:

1 Hitam
2 Coklat
3 Merah
4 Jeruk
5 Kuning
6 Hijau
7 Biru
8 Abu-abu (atau putih)