مسكن / المراجعات / وصف منفذ COM. ما هو منفذ COM. المودم ومنفذ COM

وصف منفذ COM. ما هو منفذ COM. المودم ومنفذ COM

في الآونة الأخيرة ، تحل الطريقة التسلسلية لنقل البيانات محل الطريقة المتوازية.
ليس عليك البحث بعيدًا عن الأمثلة: مظهر حافلات USB و SATA يتحدث عن نفسه.
في الواقع ، من الصعب قياس الحافلة المتوازية (كابل أطول ، معدل ساعة حافلة أعلى) ، فليس من المستغرب أن تتحول التقنيات إلى حافلات متوازية في الخلف.

واجهات تسلسلية

يوجد اليوم عدد كبير من واجهات البيانات التسلسلية المختلفة.
بالإضافة إلى USB و SATA المذكورين بالفعل ، يمكننا أيضًا استدعاء معيارين معروفين على الأقل من معيار RS-232 و MIDI (المعروف أيضًا باسم GamePort).
كلهم متحدون بنفس الشيء - الإرسال التسلسلي لكل جزء من المعلومات ، أو الواجهة التسلسلية.
تتمتع هذه الواجهات بالعديد من المزايا ، وأهمها عدد قليل من أسلاك التوصيل ، وبالتالي سعر أقل.

نقل البيانات

يمكن تنفيذ الاتصال التسلسلي بطريقتين: غير متزامن ومتزامن.

يتضمن نقل البيانات المتزامن مزامنة تشغيل جهاز الاستقبال والمرسل من خلال تضمين معلومات الساعة في الإشارة المرسلة أو باستخدام خط مزامنة خاص.
يجب توصيل جهاز الاستقبال وجهاز الإرسال بكابل مزامنة خاص ، مما يضمن عمل الأجهزة على نفس التردد.

يتضمن الإرسال غير المتزامن استخدام وحدات بت خاصة تحدد بداية ونهاية البيانات - بتات البداية (صفر منطقي) والتوقف (بتات منطقية).
من الممكن أيضًا استخدام بت تماثل خاص ، والذي يحدد عددًا زوجيًا أو فرديًا من البتات الفردية المرسلة (اعتمادًا على الاصطلاح المقبول).
على جانب الاستقبال ، يتم تحليل هذه البتة ، وإذا كانت بت التكافؤ لا تتطابق مع عدد البتات المفردة ، فسيتم إرسال حزمة البيانات مرة أخرى.

تجدر الإشارة إلى أن هذا الفحص لا يسمح لك باكتشاف الخطأ إلا إذا تم إرسال بت واحد فقط بشكل غير صحيح ، وإذا تم إرسال عدة بتات بشكل غير صحيح ، يصبح هذا الفحص غير صحيح بالفعل.
يمكن أن يحدث إرسال حزمة البيانات التالية في أي وقت بعد إرسال بت التوقف ، وبالطبع يجب أن يبدأ بتة البداية.
غير واضح؟

حسنًا ، إذا كان كل شيء تقنيات الحاسوبكانت بسيطة ، فإن أي ربة منزل كانت ستنحت منذ فترة طويلة بروتوكولات جديدة بالتوازي مع الزلابية ...
دعنا نحاول النظر إلى العملية بطريقة مختلفة.
يتم إرسال البيانات في حزم ، مثل حزم IP تقريبًا ، وتتماشى بتات المعلومات مع البيانات ، ويمكن أن يختلف عدد هذه البتات من 2 إلى 3 ونصف.
بنصف ؟!
نعم ، سمعت الحق ، مع النصف!

بتة الإيقاف ، أو بالأحرى الإشارة المرسلة المقابلة لبت التوقف ، يمكن أن يكون لها مدة أكبر من الإشارة المقابلة للبتة الواحدة ، ولكن أقل من بتتين.
لذلك ، تبدأ الحزمة دائمًا ببداية بت ، والتي تكون دائمًا صفرًا ، متبوعة بتات بتات البيانات ، ثم بت التكافؤ ، ثم بت التوقف ، والذي يكون دائمًا واحدًا.
ثم ، بعد فترة من الزمن ، استمرت مسيرة الضربات على موسكو.

تشير طريقة الإرسال هذه إلى أن جهاز الإرسال وجهاز الاستقبال يجب أن يعملان بنفس السرعة (حسنًا ، أو تقريبًا بنفس السرعة) ، وإلا فلن يكون لدى جهاز الاستقبال الوقت لمعالجة بتات البيانات الواردة ، أو سيأخذ البت القديم بواحد جديد .
من أجل تجنب ذلك ، يتم تقطيع كل بت ، أي يتم إرسالها بشكل متزامن مع إشارة خاصة - "ستروب" يتم إنشاؤه داخل الجهاز.
هناك عدد من السرعات المحددة للأجهزة غير المتزامنة - 50 و 75 و 110 و 150 و 300 و 600 و 1200 و 2400 و 4800 و 9600 و 19200 و 38400 و 57600 و 115200 بت في الثانية.

ربما سمعت أن "الباود" يستخدم كوحدة لقياس معدل نقل البيانات - تكرار تغيير حالة الخط ، وستتزامن هذه القيمة مع معدل نقل البيانات فقط إذا كان بالإمكان أن تحتوي الإشارة على إحدى القيمتين .
إذا تم تشفير عدة بتات في تغيير إشارة واحدة (وهذا هو الحال مع العديد من أجهزة المودم) ، فإن معدل الإرسال وتردد تغيير الخط سيكونان قيمتين مختلفتين تمامًا.

الآن بضع كلمات حول المصطلح الغامض "حزمة البيانات".
تحت العبوة هذه القضيةيشير إلى مجموعة البتات المنقولة بين بتات البداية والتوقف.
يمكن أن يختلف عددهم من خمسة إلى ثمانية.
قد يتساءل المرء لماذا بالضبط خمس إلى ثماني بتات؟
لماذا لا تنقل في الحال ، على سبيل المثال ، كيلو بايت من البيانات داخل حزمة؟

الإجابة واضحة: عند إرسال حزم بيانات صغيرة ، قد نخسر بإرسال ثلاث بتات خدمة معهم (من 50 إلى 30 بالمائة من البيانات) ، ولكن في حالة تلف الحزمة أثناء الإرسال ، يمكننا التعرف على هذا بسهولة (تذكر معلومات حول بت التكافؤ؟) ونقله بسرعة مرة أخرى.
ولكن في كيلو بايت من البيانات ، سيكون من الصعب اكتشاف خطأ ، وسيكون نقله أكثر صعوبة.

مثال على جهاز نقل البيانات التسلسلي غير المتزامن هو منفذ COM للكمبيوتر ، ومودم مفضل من تصميم Trussardi ، وماوس متصل بالمنفذ نفسه ، والذي لسبب ما يحاول السكرتيرات ضيق الأفق الانتقال إلى PS / 2.
تعمل جميع هذه الأجهزة على واجهة RS-232 ، أو بالأحرى على الجزء غير المتزامن ، حيث يصف المعيار أيضًا نقل البيانات المتزامن.

AMD Radeon Software Adrenalin Edition Driver 19.9.2 اختياري

يعمل برنامج التشغيل الاختياري AMD Radeon Software Adrenalin Edition 19.9.2 الاختياري على تحسين الأداء في Borderlands 3 وإضافة دعم لـ Radeon Image Sharpening.

تراكمي تحديث ويندوز 10 1903 KB4515384 (مضاف)

في 10 سبتمبر 2019 ، أصدرت Microsoft تحديثًا تراكميًا لنظام التشغيل Windows 10 الإصدار 1903 - KB4515384 مع عدد من التحسينات الأمنية وإصلاح الخطأ الذي حدث عمل ويندوزبحث وتسبب في ارتفاع استخدام وحدة المعالجة المركزية.

غالبًا ما يتم استخدام منفذ COM لتوصيل وحدة التحكم الدقيقة بجهاز كمبيوتر. في هذه المقالة ، سوف نوضح كيفية إرسال أوامر التحكم من جهاز كمبيوتر وإرسال البيانات من وحدة تحكم.

التحضير للعمل

تحتوي معظم المتحكمات الدقيقة على منافذ إدخال / إخراج متعددة. بروتوكول UART هو الأنسب للاتصال بجهاز الكمبيوتر. إنه بروتوكول نقل بيانات تسلسلي غير متزامن. لتحويلها إلى واجهة USB ، تحتوي اللوحة على محول USB-RS232 - FT232RL.
تحتاج فقط إلى لوحة متوافقة مع Arduino لتشغيل الأمثلة الواردة في هذه المقالة. نحن نستخدم . تأكد من أن اللوحة الخاصة بك بها مؤشر LED متصل بالرقم 13 وزر إعادة الضبط.

على سبيل المثال ، لنقم بتحميل رمز على اللوحة يعرض جدول ASCII. ASCII هو ترميز يمثل الأرقام العشرية والأبجديات اللاتينية والوطنية وعلامات الترقيم وأحرف التحكم.

رمز int = 33 ؛ إعداد باطل () (Serial. begin (9600)؛ Serial. println ("ASCII Table ~ Character Map")؛) void loop () (Serial. .print (رمز) ؛ Serial.print ("، hex:") ؛ Serial.print (رمز ، HEX) ؛ Serial.print ("، oct:") ؛ Serial.print (رمز ، OCT) ؛ Serial.print ( "، bin:") ؛ Serial.println (الرمز ، BIN) ؛ إذا (الرمز == 126) (بينما (صحيح) (تابع ؛)) الرمز + + ؛)

يخزن متغير الرمز رمز الرمز. يبدأ الجدول عند 33 وينتهي عند 126 ، لذلك يتم تعيين الرمز مبدئيًا على 33.
لبدء تشغيل منفذ UART ، استخدم الوظيفة Serial.begin (). المعلمة الوحيدة هي السرعة. يجب التفاوض على السرعة على جانبي الإرسال والاستقبال مسبقًا ، لأن بروتوكول الإرسال غير متزامن. في هذا المثال ، السرعة هي 9600 بت في الثانية.
تُستخدم ثلاث وظائف لكتابة قيمة إلى منفذ:

  1. Serial.write ()- يكتب البيانات إلى المنفذ بشكل ثنائي.
  2. Serial.print ()يمكن أن يكون لها العديد من القيم ، ولكن جميعها تعمل على عرض المعلومات في شكل صديق للإنسان. على سبيل المثال ، إذا كانت المعلومات المحددة كمعامل لتمريرها محاطة بعلامات اقتباس ، فسيعرضها البرنامج الطرفي بدون تغيير. إذا كنت تريد عرض أي قيمة في نظام معينحساب التفاضل والتكامل ، فأنت بحاجة إلى إضافة كلمة خدمة: BIN-binary ، OCT - ثماني ، DEC - عشري ، HEX - سداسي عشري. علي سبيل المثال، Serial.print (25، HEX).
  3. Serial.println ()يفعل نفس الشيء مثل Serial.print ()، ولكن لا يزال يترجم السلسلة بعد عرض المعلومات.

للتحقق من تشغيل البرنامج ، من الضروري أن يكون لدى الكمبيوتر برنامج طرفي يتلقى البيانات من منفذ COM. في اردوينو IDEبنيت بالفعل. للاتصال به ، حدد أدوات-> منفذ مراقب من القائمة. نافذة هذه الأداة بسيطة للغاية:

الآن انقر فوق زر إعادة التشغيل. سيتم إعادة تشغيل MK وعرض جدول ASCII:

انتبه لهذا الجزء من الكود:

إذا (الرمز = = 126) (بينما (صحيح) (تابع ؛))

يوقف تنفيذ البرنامج. إذا قمت باستبعاده ، فسيتم عرض الجدول إلى أجل غير مسمى.
لتوحيد المعرفة المكتسبة ، حاول كتابة حلقة لا نهائية سترسل اسمك إلى المنفذ التسلسلي مرة واحدة في الثانية. أضف أرقام الخطوات إلى الإخراج ولا تنس ترجمة السطر بعد الاسم.

إرسال أوامر من جهاز الكمبيوتر

قبل القيام بذلك ، تحتاج إلى الحصول على فكرة عن كيفية عمل منفذ COM.
بادئ ذي بدء ، يحدث كل التبادل من خلال ذاكرة التخزين المؤقت. أي عندما ترسل شيئًا من جهاز كمبيوتر إلى جهاز ، يتم وضع البيانات في قسم خاص من الذاكرة. بمجرد أن يصبح الجهاز جاهزًا ، فإنه يقرأ البيانات من المخزن المؤقت. تتيح لك الوظيفة التحقق من حالة المخزن المؤقت serial.avaliable (). تقوم هذه الدالة بإرجاع عدد البايتات في المخزن المؤقت. لطرح هذه البايتات ، تحتاج إلى استخدام الدالة المسلسل. قراءة (). دعونا نرى كيف تعمل هذه الوظائف مع مثال:

int val = 0 ؛ إعداد باطل () (مسلسل. الكتابة (فال) ؛ Serial.println () ؛))

بعد تحميل الكود في ذاكرة المتحكم الدقيق ، افتح شاشة منفذ COM. اكتب حرفًا واحدًا واضغط على Enter. سترى في حقل البيانات المستلمة: "لقد تلقيت: X"، حيث بدلاً من Xستكون الشخصية التي أدخلتها.
البرنامج يدور إلى أجل غير مسمى في الحلقة الرئيسية. في اللحظة التي تتم فيها كتابة البايت في المنفذ ، تأخذ الدالة Serial.available () القيمة 1 ، أي أن الشرط مستوفى Serial.available ()> 0. الوظيفة التالية المسلسل. قراءة ()يقرأ هذا البايت ، وبالتالي مسح المخزن المؤقت. بعد ذلك ، باستخدام الوظائف المعروفة لك بالفعل ، يحدث الإخراج.
استخدام مراقب منفذ COM المدمج في Arduino IDE له بعض القيود. عند إرسال البيانات من اللوحة إلى منفذ COM ، يمكن تنظيم الإخراج بتنسيق عشوائي. وعند الإرسال من الكمبيوتر إلى اللوحة ، يتم نقل الأحرف وفقًا لجدول ASCII. هذا يعني أنه عند إدخال الحرف "1" ، على سبيل المثال ، يتم إرسال الرقم الثنائي "00110001" (أي "49" بالترتيب العشري) عبر منفذ COM.
دعنا نغير الكود قليلاً ونتحقق من هذه العبارة:

int val = 0 ؛ إعداد باطل () (مسلسل. println (val ، BIN) ؛))

بعد التنزيل ، في شاشة المنفذ عند إرسال "1" ، سترى ردًا: "لقد استلمت: 110001". يمكنك تغيير تنسيق الإخراج ومعرفة ما يقبله المجلس بأحرف أخرى.

التحكم في الجهاز عبر منفذ COM

من الواضح ، بأوامر من جهاز كمبيوتر ، يمكنك التحكم في أي وظائف من وظائف متحكم. قم بتنزيل البرنامج إدارة العملقاد:

int val = 0 ؛ إعداد باطل () (Serial. begin (9600)؛) void loop () (if (Serial. available ()> 0) (val = Serial. read ()؛ if (val = = "H") digitalWrite (13، HIGH) ؛ إذا (val = "L") digitalWrite (13، LOW) ؛))

عندما يتم إرسال الحرف "H" إلى منفذ COM ، يضيء مؤشر LED الموجود في الخرج الثالث عشر ، وعندما يتم إرسال الحرف "L" ، سينطفئ مؤشر LED.
إذا كنت تريد ، بناءً على نتائج تلقي البيانات من منفذ COM ، أن يقوم البرنامج بإجراءات مختلفة في الحلقة الرئيسية ، يمكنك التحقق من الشروط في الحلقة الرئيسية. علي سبيل المثال.

منفذ COM ، أو المنفذ التسلسلي ، هو واجهة تسلسلية ثنائية الاتجاه مصممة لتبادل بيانات البايت. في البداية ، تم استخدام هذا المنفذ لتوصيل الجهاز ، ثم للمودم والماوس. من المعتاد الآن استخدامه لتوصيل المصدر وكذلك للتواصل مع معالجة أنظمة الحوسبة المدمجة.

إستعمال

لذا ، قبل أن نتحدث بمزيد من التفاصيل حول ماهية منفذ COM ، نحتاج إلى النظر في الماضي لفهم معناه. منذ 15 عامًا ، تم استخدام طريقة لتوصيل الأجهزة بجهاز كمبيوتر باستخدام موصل قياسي خاص موجود على اللوحة الخلفية. كتلة النظامباستخدام كبل تسلسلي RS-232 خاص. هذه الطريقة لها عيوب كثيرة. يوفر هذا الكبل ، وفقًا للمعايير الحديثة ، معدل نقل بيانات منخفضًا للغاية - حوالي مائة كيلو بت في الثانية. بالإضافة إلى وقت إجراء الاتصال المادي للموصلات ، كان من الضروري إيقاف تشغيل الجهاز ، وتم ربطها ببعضها البعض بواسطة براغي تضمن الموثوقية ، بينما اختلفت أبعادها في الحجم الكبير.

القليل من التاريخ

كان منفذ COM على أجهزة الكمبيوتر في ذلك الوقت مرقمًا بشكل تقليدي 1 أو 2 ، حيث لم يكن هناك أكثر من اثنين منهم. يمكن تركيب منافذ إضافية إذا لزم الأمر. عندما يقوم المستخدم بتكوين البرمجيات، كان مطلوبًا عدم الخلط والتثبيت الصحيح بالضبط الذي تم توفير الاتصال له المعدات اللازمة. يتطلب كل منفذ COM إعدادات السرعة الصحيحة ، بالإضافة إلى عدد من المعلمات الغامضة الأخرى التي كانت معروفة فقط لدائرة ضيقة من المتخصصين. لكي يكون توصيل الجهاز ناجحًا ، يجب العثور على جميع المعلمات الضرورية من مكان ما أو تحديدها تجريبياً ، لأنه في هذه الحالة لم يكن هناك تكوين تلقائي. بالإضافة إلى ذلك ، أتاح الاتصال عبر منفذ COM توصيل أي برنامج بأجهزة خارجية عشوائية ، حتى تلك غير المتوافقة تمامًا ، مما تسبب في حدوث عدد كبير من الأخطاء أثناء عملية الإعدادات.

الحداثة

الآن تم استبدال الاتصال عبر منفذ COM بالكامل بأكثر من ذلك الطريقة الحديثةوالتي لا تتطلب معرفة خاصة للتنفيذ ، أي من خلال منفذ USB. هذه الطريقة خالية من جميع العيوب المذكورة سابقًا. ومع ذلك ، فقد تم تشكيل المعايير الحديثة لتوافق توصيل جميع أنواع معدات GPS والبرامج غير المتجانسة منذ زمن بعيد حول مفهوم منافذ COM ، والتي أصبحت قديمة في الوقت الحالي.

هذا يرجع إلى حقيقة أن أي جهاز تقريبًا في البداية ، بما في ذلك GPS ، كان خارجيًا ، وتم توصيله بالكمبيوتر عبر كبل تسلسلي متصل بأحد منافذ الأجهزة. أثناء عملية التكوين ، طُلب من المستخدم تحديد رقم المنفذ وسرعة نقل البيانات من خلاله بشكل صحيح. في ذلك الوقت ، ظهر المعيار الرئيسي لنقل البيانات من جهاز استقبال GPS إلى برنامج ، والذي يسمى الآن NMEA-0183. في الواقع ، يتطلب هذا المعيار من جميع مطوري حتى أحدث الأجهزة والبرامج تبادل البيانات عبر منافذ COM. وكل هذا في ظروف أجهزة الكمبيوتر الحديثة، بالإضافة إلى أجهزة المساعد الرقمي الشخصي ، لطالما كان معيار USB هو المعيار الرئيسي. وهناك ميزة أخرى تتمثل في أن أجهزة استقبال GPS مؤخرًا يتم تثبيتها بشكل متزايد مباشرة داخل علبة الجهاز ، أي أنه لا يوجد كابل توصيل بينها وبين الجهاز الرئيسي.

منافذ COM الافتراضية

تم اختراع طريقة للخروج ، وهي ، تم تطوير منافذ COM "الافتراضية". اتضح أن الجهاز الداخلي لجهاز المساعد الرقمي الشخصي ، على سبيل المثال ، جهاز استقبال GPS ، يتم محاكاته في برنامج على شكل منفذ COM ، بينما لا يكون كذلك من حيث الأجهزة. في الوقت نفسه ، لا يُحدث البرنامج المصمم للتفاعل من خلال مثل هذا المعيار أي فرق في كيفية تنفيذه. هنا يُسمح بوجود محاكاة افتراضية ، وليس الوجود الإجباري لتنفيذ الأجهزة. لذلك من الممكن ضمان توافق برامج GPS القديمة مع المعدات الحديثة.

التغييرات التي تم إجراؤها

في الوقت نفسه ، لم تتغير إدارة منفذ COM بشكل ملحوظ. يجب على المستخدم ، بالطريقة القديمة ، إجراء الإعدادات المعقدة يدويًا تقريبًا. ومع ذلك ، لم يعد منفذ COM الحديث ذلك الجهاز الضخم الموجود على اللوحة الخلفية لوحدة النظام ، ولكنه جهاز مختلف تمامًا. وهنا بيت القصيد هو أنه من وجهة نظر البرامج ، فإن جميع تطبيقاتها تبدو مجهولة الهوية ، أي أنه لا يوجد فرق بين المنافذ الافتراضية والحقيقية. بالنسبة للبرامج ، تختلف المنافذ فقط بالأرقام المخصصة لها من قبل الشركات المصنعة لأجهزة المساعد الرقمي الشخصي على أساس عشوائي تمامًا. على سبيل المثال ، يوجد مستقبل ASUS عادةً على COM5 ، بينما يُظهر PocketLOOX 560 جهاز الاستقبال على COM8. اتضح أن البرنامج الذي يريد تلقي البيانات من جهاز استقبال GPS لا يمتلك في البداية أي معلومات موثوقة حول الرقم الشرطي ، والذي يظهر بموجبه المنفذ ، والذي يتم وصفه بشكل مناسب لجهاز الاستقبال على هذا المساعد الرقمي الشخصي.

كيف يعمل هذا كله؟

بالنظر إلى أنه من بين جميع منافذ COM المتاحة ، يمكنك ذلك البحث التلقائيمناسب ، فإن إجراء مثل هذا المسح غير موثوق إلى حد ما ولكنه مرهق إلى حد ما. هذا يرجع إلى حقيقة أن الأجهزة المعروضة في النظام كمنافذ COM يمكن أن تكون متنوعة تمامًا ولا علاقة لها بنظام تحديد المواقع العالمي (GPS) ، ويمكنها الاستجابة بشكل غير متوقع تمامًا لمثل هذا الاستطلاع. على سبيل المثال ، في المساعد الرقمي الشخصي توجد منافذ مرتبطة بمودم خلوي داخلي ، مع USB ، ومنفذ الأشعة تحت الحمراء ، وكذلك بالعناصر الأخرى. يمكن أن يؤدي الوصول إليها عن طريق برنامج مصمم للعمل مع جهاز معين إلى رد فعل لا يمكن التنبؤ به تمامًا ، بالإضافة إلى العديد من الأعطال ، والتي غالبًا ما تؤدي إلى تجميد PDA. هذا هو السبب في أن محاولة فتح منفذ COM يمكن أن تؤدي إلى مواقف غير متوقعة ، حتى تشغيل Bluetooth أو A ، قد يكون هناك المزيد من الحالات غير المفهومة.

تشغيل منفذ COM

بالنسبة لمنافذ COM ، يتم استخدام شريحة جهاز إرسال واستقبال عالمية غير متزامنة كأساس. توجد هذه الدائرة الدقيقة في عدة أصناف: Intel 16550A، 16550، 16450، 8250. لكل منفذ COM ، تحتوي على سجلات استقبال وجهاز إرسال ، بالإضافة إلى عدد من سجلات التحكم التي يمكن الوصول إليها من خلال برامج BIOS و Windows و MS DOS. في أحدث الإصداراتتحتوي الرقاقة الدقيقة على مجموعة من المخازن المؤقتة للتخزين المؤقت للبيانات المرسلة والمستلمة. بفضل هذا الاحتمال ، من الممكن مقاطعة عمل المعالج المركزي في كثير من الأحيان ، وكذلك تنسيق سرعة نقل البيانات.

الإعدادات الرئيسية

يفترض جهاز منفذ COM الميزات المميزة التالية:

العنوان الأساسي للمنفذ لإدخال وإخراج المعلومات ؛

أرقام مقاطعة الأجهزة ؛

حجم كتلة واحدة من المعلومات ؛

السرعة التي يتم بها إرسال البيانات ؛

وضع كشف الصدق ؛

طريقة إدارة تدفق المعلومات ؛

عدد بتات التوقف.

كيفية التحقق من منفذ COM للكمبيوتر؟ ما الذي يجب الانتباه إليه؟

كما ذكرنا سابقًا ، يعد هذا النوع من المنافذ واجهة ثنائية الاتجاه لطريقة تسلسلية على مستوى البت. السمة المميزة بالمقارنة مع المنفذ المتوازي هنا هي نقل البيانات شيئا فشيئا. تشريح منفذ COM ليس الوحيد على الكمبيوتر الذي يستخدم طريقة نقل البيانات التسلسلية. على سبيل المثال ، تستخدم واجهات مثل Ethernet أو USB أيضًا مبدأ مشابهًا ، ولكن حدث تاريخيًا أنه من المعتاد استدعاء منفذ RS232 التسلسلي القياسي.

غالبًا ما يكون مطلوبًا فتح منفذ COM لإصلاح الكمبيوتر وتشخيصه ، بينما يحتاج أيضًا إلى التحقق من قابلية التشغيل. من السهل جدًا حرق عنصر. غالبًا ما يحدث هذا بسبب خطأ المستخدم ، الذي قام بفصل الجهاز بشكل غير صحيح ، وسحب الموصل أثناء توصيل الواجهة. أسهل طريقة للتحقق مما إذا كانت الواجهة تعمل هي توصيل الماوس بها. ومع ذلك ، من الصعب جدًا الحصول على صورة كاملة ، حيث يستخدم المعالج نصف خطوط الإشارة فقط من بين ثمانية خطوط متوفرة. فقط استخدام قابس خاص وبرنامج يسمح بفحص الأداء. لهذه الأغراض ، يوجد بالفعل برنامج تم تطويره خصيصًا.

يحب المطورون المنافذ التسلسلية لسهولة صيانتها واستخدامها.

وبالطبع ، فإن الكتابة إلى وحدة التحكم الخاصة بالبرنامج الطرفي أمر جيد ، لكنني أريد تطبيقي الخاص ، والذي يؤدي ، من خلال الضغط على مفتاح على الشاشة ، إلى تنفيذ الإجراءات التي تحتاجها ؛)

في هذه المقالة سوف أصف كيف تعمل مع منفذ كومفي C ++.

الحل بسيط ، ولكن لسبب ما لم يتم العثور على مثال عملي على الفور. بالنسبة إلى sim ، أحفظه هنا.

بالطبع ، يمكنك استخدام حلول عبر الأنظمة الأساسية مثل QSerial - مكتبة مضمنة في Qt ، ربما سأفعل ، لكن في المستقبل. الآن نحن نتحدث عن Windows "خالص" سي ++. سنكتب في Visual Studio. لدي عام 2010 ، رغم أن هذا لا يلعب أي دور ...

إنشاء مشروع Win32 وحدة تحكم جديد.

تضمين ملفات الرأس:

#تضمن #تضمن استخدام اسم للمحطة؛

نعلن عن معالج منفذ com:

مقبض hSerial ؛

أفعل ذلك عالميًا ، لذا لا داعي للقلق بشأن المؤشرات عند تمريرها إلى الوظائف.

int _tmain (int argc، _TCHAR * argv) (

لا يمكنني تحمل أسلوب البرمجة في Windows. دعوا كل شيء على طريقتهم وجلسوا مبتهجين ...

الآن سحر إعلان سلسلة باسم المنفذ. الأمر هو أنه غير قادر على تحويل شار نفسه.

LPCTSTR sPortName = L "COM1" ؛

يعمل العمل مع المنافذ التسلسلية في Windows مثل العمل مع ملف. الافتتاح الأول منفذ com للكتابة / القراءة:

HSerial = :: CreateFile (sPortName، GENERIC_READ | GENERIC_WRITE، 0،0، OPEN_EXISTING، FILE_ATTRIBUTE_NORMAL، 0) ؛

التحقق من الوظيفة:

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

أنت الآن بحاجة إلى تكوين معلمات الاتصال:

DCB dcbSerialParams = (0) ؛ dcbSerialParams.DCBlength = sizeof (dcbSerialParams) ، إذا (! 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"; }

في msdn ، يُنصح بالحصول على المعلمات أولاً ، ثم تغييرها. ما زلنا نتعلم ، لذلك نقوم بذلك على النحو المطلوب.

الآن دعنا نعلن عن السلسلة التي سنمررها والمتغيرات اللازمة لذلك:

بيانات Char = "Hello from C ++" ؛ // سلسلة لتمرير DWORD dwSize = sizeof (بيانات) ؛ // حجم هذه السلسلة DWORD dwBytesWritten ؛ // هنا سيكون عدد البايتات التي تم نقلها بالفعل

إرسال سلسلة. دعني أذكرك أن المثال هو الأبسط ، لذلك لا أقوم بأي عمليات تحقق خاصة:

BOOL iRet = WriteFile (hSerial، data، dwSize، & dwBytesWritten، NULL) ؛

قررت أيضًا عرض حجم السلسلة وعدد البايتات المرسلة للتحكم:

كوت<< dwSize << " Bytes in string. " << dwBytesWritten << " Bytes sended. " << endl;

في نهاية البرنامج ، نقوم بعمل حلقة لا نهائية لقراءة البيانات:

بينما (1) (ReadCOM () ؛) تُرجع 0 ؛ )

الآن وظيفة القراءة:

Void ReadCOM () (DWORD iSize؛ char sReceivedChar؛ while (true) (ReadFile (hSerial، & sReceivedChar، 1، & iSize، 0)؛ // احصل على 1 بايت إذا (iSize> 0) // print cout إذا تم استلام شيء ما<< sReceivedChar; } }

هذا في الواقع هو المثال الكامل.

في الحوسبة ، المنفذ التسلسلي هو واجهة اتصال تسلسلية يتم من خلالها نقل المعلومات أو إخراجها في وقت واحد. بالنسبة لمعظم تاريخ أجهزة الكمبيوتر الشخصية ، تم نقل البيانات عبر المنافذ التسلسلية إلى أجهزة مثل أجهزة المودم والمحطات الطرفية والأجهزة الطرفية المختلفة.

بينما تقوم الواجهات مثل Ethernet و FireWire و USB بإرسال البيانات كتدفق تسلسلي ، فإن مصطلح "المنفذ التسلسلي" يحدد بشكل عام الأجهزة المتوافقة مع معيار RS-232 ، المصمم للتفاعل مع مودم أو جهاز اتصال مشابه.

قد تتطلب أجهزة الكمبيوتر الحديثة التي لا تحتوي على منافذ تسلسلية محولات تسلسلية لضمان التوافق مع الأجهزة التسلسلية RS-232. لا تزال المنافذ التسلسلية مستخدمة في تطبيقات مثل أنظمة الأتمتة الصناعية ، والأدوات العلمية ، وأنظمة نقاط البيع ، وبعض المنتجات الصناعية والاستهلاكية. يمكن لأجهزة الكمبيوتر الخادمة استخدام المنفذ التسلسلي كوحدة تحكم إدارية أو تشخيصية. غالبًا ما تستخدم معدات الشبكة (مثل أجهزة التوجيه والمحولات) وحدة التحكم التسلسلية للتكوين. يستمر استخدام المنافذ التسلسلية في هذه المناطق لأنها بسيطة ورخيصة ، ووظائف وحدة التحكم الخاصة بها موحدة للغاية وواسعة الانتشار.

دبوس منفذ COM (RS232)

يوجد نوعان من منفذ com ، موصل قديم مكون من 25 سنًا وموصل أحدث مكونًا من 9 سنون تم استبداله.

يوجد أدناه رسم تخطيطي لموصل RS232 قياسي قياسي ذي 9 سنون مع موصلات ، ويسمى هذا النوع من الموصلات أيضًا بموصل DB9.

  1. كشف الناقل (DCD).
  2. استقبال البيانات (RXD).
  3. نقل البيانات (TXD).
  4. جهاز الاستقبال جاهز للاستبدال (DTR).
  5. الأرض (GND).
  6. المصدر جاهز للتبادل (DSR).
  7. طلب إرسال (RTS).
  8. جاهز للتحويل (CTS).
  9. إشارة الاتصال (RI).

RJ-45 إلى DB-9 معلومات دبوس محول المنفذ التسلسلي للتبديل

منفذ وحدة التحكم هو واجهة تسلسلية RS-232 تستخدم موصل RJ-45 للاتصال بجهاز تحكم مثل الكمبيوتر الشخصي أو الكمبيوتر المحمول. إذا لم يكن الكمبيوتر المحمول أو الكمبيوتر الشخصي لديك يحتوي على دبوس موصل DB-9 وتريد توصيل الكمبيوتر المحمول أو الكمبيوتر الشخصي بالمحول ، فاستخدم مزيجًا من محول RJ-45 و DB-9.

DB-9منفذ RJ-45
الحصول على البيانات2 3
نقل البيانات3 6
الاستعداد للصرف4 7
أرض5 5
أرض5 4
الاستعداد للصرف6 2
طلب تحويل7 8
نقل جاهز8 1

ألوان الأسلاك:

1 أسود
2 بني
3 أحمر
4 برتقالي
5 أصفر
6 أخضر
7 أزرق
8 رمادي (أو أبيض)