RisalDash RisalDash
الواجهات السلكية للمتحكّمات الدقيقة

بايت واحد — ست طرق لإرساله

البيانات دائمًا هي نفسها: 0x4A. الفرق بين النواقل هو في عدد الأسلاك المطلوبة، ومن يضبط التوقيت، وكيف يعرف المستقبِل أين يبدأ البايت، وإلى أي مسافة يصل. في الأسفل — البايت نفسه على ستة نواقل. غيّر البتّات في اللوحة السفلية — فتُعاد رسم كل المخططات الذبذبية.

بايت واحد، ست نواقل0x4A
ابدأ من هنا

لماذا تحتاج الرقائق أصلًا إلى التحدث فيما بينها؟

داخل أيّ جهاز تقريبًا — ساعة ذكية، غلّاية، سيارة — يجلس متحكّم دقيق، دماغ صغير يقود العمل. وحوله «الموظّفون»: مستشعر حرارة، شاشة، رقاقة فلاش، وحدة Wi-Fi. على القائد أن يجمع بياناتهم ويوزّع الأوامر. والسؤال هو: كيف يتحدّثون بالضبط؟

يمكنك أن تمدّ إلى كلٍّ منهم حزمة أسلاك منفصلة — سريع، لكنّ اللوحة تتحوّل فورًا إلى فوضى متشابكة. أو تمدّ سلكًا أو سلكين مشتركين يتحدّث عليهما الجميع بالتناوب وفق مجموعة قواعد. وهذه القواعد للتحدّث عبر الأسلاك هي ما نسمّيه النواقل التسلسلية (serial buses): «تسلسلية» لأنّ البتّات تسير على السلك واحدةً تلو الأخرى، لا كلّها دفعةً واحدة.

وبقيّة المقال تتناول أكثر ستّ من هذه «اللغات» شيوعًا. جميعها تؤدّي المهمّة نفسها (نقل البايتات)، لكن بطرق مختلفة — وكلٌّ منها مضبوط لنوعه الخاصّ من المهام.

مهمّة واحدة — ناقلها الخاصّ

إرسال صورة إلى شاشة ملوّنة

SPI — تحتاج سرعة كبيرة، والأسلاك قصيرة ورخيصة.

تعليق عشرات المستشعرات الصغيرة على لوحة

I²C — سلكان فقط لها جميعًا؛ السرعة ليست حاسمة، والمهمّ توفير الأطراف.

ربط العُقد تحت غطاء محرّك السيارة

CAN — شرر وضجيج واهتزاز في كل مكان — لا بدّ أن يكون منيعًا.

إرسال نصّ تصحيح إلى حاسوب

UART — أبسط كابل بسلكين، يعمل مع أيّ شيء تقريبًا بلا إعداد.

مدّ سلسلة موازين حرارة حول منزل

1-Wire — سلك واحد لكل مستشعر على مدى عشرات الأمتار؛ السرعة لا تهمّ.

التحدّث إلى جهاز صناعي أو وحدة تحكّم خادم

RS-232 — معيار قديم موثوق: الفولطيات الكبيرة تحمل الكابل لأمتار.

مسرد بكلمات بسيطة

البايت

أصغر كتلة مفيدة من البيانات — عدد من 0 إلى 255. حرف واحد، لون بكسل واحد، قراءة مستشعر واحدة. ثماني بتّات (أصفار وآحاد) متتالية.

التوقيت (clock)

قائد أوركسترا بميقاتيّة: يدقّ «واحد-اثنان-ثلاثة»، وعند كل دقّة ترسل الأجهزة بتّة واحدة بالضبط. مع التوقيت (SPI, I²C) تسير متزامنة؛ ومن دونه (UART) يتّفق الطرفان مسبقًا على الإيقاع الدقيق.

مقاومة الرفع (pull-up)

مقاومة عاديّة تربط السلك بـ«الموجب» كي لا يبقى طائفًا في الهواء ويلتقط الضجيج كالهوائي حين لا يرسل أحد.

المتحكّم والطرفيّة

المتحكّم (master) يبدأ الحوار ويضبط الإيقاع؛ والطرفيّة (slave) تجيب حين يُوجَّه إليها الخطاب. بعض النواقل له متحكّم واحد، وأخرى تعامل الجميع بالتساوي.

00

أربعة أسئلة تُميّز كل النواقل

السؤال 1

من يضبط التوقيت؟

إن وُجد خط توقيت منفصل فالناقل متزامن (SPI, I²C): لا يلزم المستقبِل أن يعرف التردد مسبقًا. وإن لم يوجد فهو غير متزامن (UART, RS-232, 1-Wire): يجب الاتفاق على السرعة مسبقًا، وعلى الطرفين حفظها بدقة.

السؤال 2

كيف نجد بداية البايت؟

ببتّة خدميّة (بتّة البداية في UART)، بحافة اختيار الشريحة (CS في SPI)، بخرق خاصّ للقواعد (START في I²C — يهبط SDA بينما SCL مرتفع)، أو بنبضة إعادة ضبط طويلة (1-Wire).

السؤال 3

كم جهازًا على الخط؟

اثنان (UART, RS-232)، متحكّم واحد وعدة أطراف عبر خط اختيار منفصل (SPI) أو عبر عنوان (I²C, 1-Wire)، أو الجميع متساوون ويتنافسون على الناقل (CAN).

السؤال 4

كيف يُقرأ المستوى؟

بسلك واحد نسبةً إلى الأرضي المشترك — بسيط، لكنه يلتقط التشويش (UART, SPI, I²C). تفاضليًا — بفرق سلكين من زوج ملتوٍ، يصل التشويش إلى كليهما فيُطرح (CAN, RS-485). ومن هنا عشرات الأمتار بدل السنتيمترات.

غير متزامن: بيانات فقط
لا توقيت. يلتقط المستقبِل هبوط بتّة البداية، ينتظر نصف بتّة، ثم يأخذ العيّنة في منتصف كل فترة بتّية محتسبًا الوقت بمؤقّته الخاص. تجاوز فرق الترددات ≈2–3 % يُفكّك البايت.
متزامن: بيانات + توقيت
يقول المتحكّم بنفسه «اقرأ الآن» بحافة التوقيت. يمكن أن تكون السرعة أيّ قيمة وأن تتذبذب — سيصيب المستقبِل البتّة على أي حال. الثمن — سلك إضافي.
01 / غير متزامن · نقطة إلى نقطة

UART

Universal Asynchronous Receiver / Transmitter

سلكا بيانات، بلا توقيت. اتفق الطرفان مسبقًا على السرعة (115200)، ويُغلَّف البايت في إطار: بتّة بداية، ثمانية بتّات بيانات بالأدنى أولًا، بتّة إيقاف. في السكون يكون الخط مرتفعًا — لذا فإن هبوط المستوى هو «انتباه، انطلقنا».

الأسلاكTX, RX, GND
التوقيتلا، بالاتفاق
الازدواجكامل
الأجهزة2
السرعة9600 … 115200 bit/s
حتى 1–3 Mbit/s
المسافةحتى ~1 m بمستويات TTL
مخطط ذبذبي لإطار 8N1 0x4A
البتّة الأدنى تأتي أولًا، لذا يُقرأ البايت على الشاشة «مقلوبًا» نسبةً إلى كتابة 0b. الإطار 8N1 = 8 بتّات بيانات، بلا تكافؤ، بتّة إيقاف واحدة: لكل 8 بتّات مفيدة تُصرف 10 فترات بتّية، أي 20 % من الحركة أعباء.
مخطط التوصيل
الحيلة الوحيدة: TX أحدهما يذهب إلى RX الآخر، الخطوط متقاطعة. والأرضي المشترك إلزامي — بدونه لا وجود لـ«الصفر» أصلًا.
كيف يعمل هذا
  1. يبقى الخط في السكون عند 1. ينتظر المستقبِل الهبوط.
  2. يُنزل المُرسِل الخط لفترة بتّية واحدة — هذه بتّة البداية. يُشغّل المستقبِل مؤقّته.
  3. تسير 8 بتّات بيانات، بالأدنى أولًا. يقرأ المستقبِل المستوى في منتصف كل فترة (عادةً بأخذ عيّنات فائق 16×، كي لا يلتقط الحافة).
  4. عند الحاجة — بتّة تكافؤ: كشف خطأ واحد.
  5. بتّة الإيقاف تُعيد الخط إلى 1. إن كان الخط عندها منخفضًا — يُبلّغ المستقبِل عن framing error: غالبًا لم يتطابق baud rate.
نقاط القوة
  • سلكان، ازدواج كامل، مدمج في أي متحكّم دقيق.
  • لا متحكّم ولا طرفي — يمكن لأيّ طرف أن يتكلّم ومتى شاء.
  • سهل التصحيح: توصل محوّل USB وتقرأ النصّ في الطرفيّة.
  • يعمل فوق أيّ شيء: RS-232، RS-485، الألياف الضوئية، الراديو.
القيود
  • مشاركان بالضبط، لا عنونة.
  • يلزم مصدر توقيت دقيق: مولّد RC الداخلي كثيرًا ما لا يقوى على 115200.
  • كشف الأخطاء — بتّة تكافؤ كحدّ أقصى.
  • 20 % من عرض النطاق تُصرف على البداية والإيقاف.
  • لا يعرف شيئًا عن التسليم: يُرسل إلى الفراغ ولا يدري.

أين نجده: وحدة التصحيح في أي لوحة، وحدات GSM/GPS/Wi-Fi بأوامر AT، طابعات الفواتير، ماسحات الباركود، وصلة «متحكّم دقيق ↔ لوحة Linux»، محمّلات البرامج الثابتة.

02 / متزامن · نجمة

SPI

Serial Peripheral Interface

أسرع النواقل وأكثرها مباشرةً: يحرّك المتحكّم خط التوقيت، وفي كل نبضة يتبادل مسجّلا إزاحة البتّات — واحدة ذهابًا وواحدة إيابًا، في آنٍ واحد. لا عناوين ولا تأكيدات: من اخترته بخط CS فمعه تتكلّم.

الأسلاكSCK, MOSI, MISO,
CS (واحد لكل طرفي)
التوقيتمن المتحكّم
الازدواجكامل
الأجهزةمتحكّم 1 + N أطراف
السرعة10 … 100 MHz
المسافةسنتيمترات، لوحة واحدة
تبادل البايتات، الوضع 0 (CPOL=0, CPHA=0) 0x4A
بينما يُخرج المتحكّم بايته عبر MOSI، يُخرج الطرفي في النبضات ذاتها بايته عبر MISO — هنا معكوسًا كمثال. الأسهم — لحظة أخذ العيّنة: في الوضع 0 تُوضع البيانات على الهبوط وتُقرأ على الحافة الصاعدة. البتّة الأعلى تأتي أولًا.
مخطط التوصيل
خطوط SCK و MOSI و MISO مشتركة للجميع، أما خطوط CS فيلزم منها بعدد الأطراف — وكلٌّ منها يشغل دبوسًا من المتحكّم. هذا هو الثمن الأساسي للسرعة.
كيف يعمل هذا
  1. يُنزل المتحكّم CS للطرفي المختار — يُعطّل البقية مخارجهم فلا يعوقون.
  2. يُصدر المتحكّم 8 نبضات على SCK. كل نبضة = بتّة واحدة في كل اتجاه.
  3. على حافة واحدة تُوضع البيانات، وعلى المقابلة تُقرأ. وأيّهما بالضبط يحدّده CPOL و CPHA، ومن هنا الأوضاع 0…3.
  4. تسير البايتات تباعًا بلا بتّات خدميّة: بعدد النبضات التي أعطيت تُنقل البتّات. يُستخدم عرض النطاق بنسبة 100 %.
  5. يرفع المتحكّم CS — انتهت المعاملة، ويصفّر الطرفي آلته الداخلية.
نقاط القوة
  • عشرات الميغابت: الخيار الوحيد للشاشات وبطاقات SD وذاكرة flash.
  • ازدواج كامل وأعباء صفرية.
  • أبسط عتاد — يُنفّذ بمسجّلات الإزاحة.
  • إرسالة بأي طول: ليست ملزمة بأن تكون من مضاعفات البايت.
القيود
  • الأسلاك: 3 + خط CS واحد لكل جهاز.
  • متحكّم واحد، لا تحكيم.
  • لا تأكيد: لا يعرف المتحكّم أن الطرفي مات أو ليس ملحومًا أصلًا.
  • لا معيار فوقه: لكل شريحة مجموعة أوامرها الخاصة ووضعها الخاص.
  • داخل اللوحة فقط — الوصلات الطويلة «ترنّ».

أين نجده: بطاقات SD، شاشات TFT و e-Ink، شرائح NOR flash (ومنها QSPI التي تُحمّل منها البرامج الثابتة)، وحدات الراديو nRF24L01 و LoRa، محوّلات ADC السريعة، مقاييس التسارع في وضع التردد العالي.

03 / متزامن · ناقل مشترك

I²C

Inter-Integrated Circuit · TWI

سلكان لكامل اللوحة. لا تستطيع الأجهزة إلا جذب الخط إلى الصفر، أما رفعه فتتولّاه مقاومات الشدّ — لذا لا يقع تعارض على الناقل فيزيائيًا. لكل جهاز عنوان من 7 بتّات، وكل بايت مُرسَل يُؤكَّد ببتّة ACK.

الأسلاكSDA, SCL, GND
+ مقاومتا شدّ
التوقيتمن المتحكّم، والطرفي
يمكنه أن يُبطئ
الازدواجنصفي
الأجهزةحتى 112 عنوانًا
السرعة100 / 400 kHz,
1 MHz Fm+, 3.4 MHz HS
المسافةعشرات cm، حدّ السعة 400 pF
كتابة بايت إلى الجهاز 0x3C 0x4A
قاعدة الناقل: يتغيّر SDA فقط عندما يكون SCL منخفضًا. التغيّر أثناء ارتفاع SCL رمز خدميّ: الهبوط = START، الصعود = STOP. بتّة ACK المظلّلة يجذبها الطرفي نفسه — فيعرف المتحكّم أنه قد سُمِع. المنطق هنا معكوس عمّا تتوقّع: 0 (الخط مجذوب) = ACK «وصلني»، 1 (الخط مُطلق) = NACK «لا أحد في البيت» أو «توقّف» — هذا هو المصرف المفتوح في العمل.
مخطط التوصيل
مقاومتا شدّ لكامل الناقل (عادةً 4.7 kΩ عند 100 kHz، و2.2 kΩ عند 400 kHz) — لا زوج لكل جهاز. مخارج الجميع «مصرف مفتوح»: لا حيلة لها في الشدّ إلى الأعلى.
كيف يعمل هذا
  1. START: يهبط SDA بينما SCL مرتفع. الناقل مشغول.
  2. يُصدر المتحكّم 7 بتّات عنوان وبتّة اتجاه: 0 — كتابة، 1 — قراءة.
  3. يجذب الجهاز صاحب هذا العنوان SDA في النبضة التاسعة — ACK. الصمت في النبضة التاسعة يعني «لا أحد في البيت».
  4. ثم بايتات البيانات، كلٌّ بـ ACK خاصّ به. يمكن للمستقبِل أن يردّ بـ NACK — «يكفي».
  5. لم يلحق؟ يُبقي الطرفي SCL منخفضًا — clock stretching، ينتظر المتحكّم بصبر.
  6. STOP: يرتفع SDA أثناء ارتفاع SCL. الناقل حرّ.
نقاط القوة
  • سلكان لعشرات الأجهزة — توفير هائل في الدبابيس.
  • العنونة وتأكيد الاستلام مدمجان في البروتوكول.
  • يمكن مسح الناقل ومعرفة ما هو موصول به أصلًا.
  • عدة متحكّمات بتحكيم عادل.
القيود
  • أبطأ من SPI بمراتب، ونصف ازدواج.
  • العناوين تتعارض: كثيرًا ما يتعذّر وضع مستشعرين متطابقين جنبًا إلى جنب.
  • سعة الناقل تحدّ طول الأسلاك والسرعة.
  • طرفي معلّق قد يُبقي SDA منخفضًا فيقتل الناقل كله.
  • أعباء: عنوان و ACK لكل بايت.

أين نجده: أغلب المستشعرات (BME280, MPU6050, VL53L0X)، شاشات OLED من نوع SSD1306، ذاكرة EEPROM من عائلة 24Cxx، ساعات الزمن الحقيقي، شرائح التغذية، موسّعات المنافذ، بيانات EDID للشاشة في كابل HDMI.

تجربة عملية: أربعة مستشعرات I²C مقارَنة على ناقل واحد →

04 / تفاضلي · الجميع متساوون

CAN

Controller Area Network

ناقل صُمّم للسيارة، حيث يشرّر بادئ الحركة بالقرب. زوج ملتوٍ، مستويات تفاضلية، 120 Ω عند الطرفين. لا متحكّمات — بل رسائل ذات أولوية: لا يُعنون العقدة بل معنى الرسالة نفسه عبر مُعرّف، وكل عقدة تقرّر بنفسها أتسمعه أم لا.

الأسلاكCAN_H, CAN_L (زوج ملتوٍ)
+ 2×120 Ω
التوقيتلا، تزامن بالحواف
الازدواجنصفي
الأجهزةعشرات متساوية
السرعة500 kbit/s نموذجيًا،
حتى 1 Mbit/s · CAN FD حتى 8
المسافة40 m عند 1 Mbit/s,
500 m عند 125 kbit/s
الزوج التفاضلي: dominant يهزم recessive CAN_H / CAN_L
الحالة المتنحّية — كلا الخطين نحو 2.5 V، والفرق ≈0 V، وهي المنطق 1. المهيمنة — يتباعد الخطان بمقدار ±1 V، وهي المنطق 0. إن أرسلت عقدةٌ 1 وأخرى 0 — يظهر على الناقل 0. على هذه الحقيقة البسيطة بُني التحكيم كله. تشبيه: 0 مهيمن (أحدهم يتكلّم بصوت عالٍ)، 1 متنحٍّ (الجميع صامتون). يمكنك أن تتكلّم فوق الصمت لا العكس — لذا فإن العقدة التي يحمل مُعرّفها (ID) أصفارًا أبكر تربح التحكيم دون أن تخسر بتّة واحدة.
بنية الإطار · البايت نفسه كبايت البيانات الوحيد 0x4A
البيانات المفيدة 8 بايتات كحدّ أقصى (في CAN FD — 64)، لكنها محمّلة بأكثر من 44 بتّة خدميّة: أولوية، طول، CRC-15، تأكيد من كل المستمعين دفعةً واحدة. هذا ناقل لا يعنى بالحجم بل بالموثوقية.
مخطط التوصيل
خط رئيسي واحد بتفريعات قصيرة ومُنهيات إلزامية 120 Ω عند الطرفين — بدونها تُفسد الانعكاسات الأطر. لا يخرج المتحكّم على الناقل بنفسه: بينهما مرسل-مستقبل.
كيف يعمل هذا
  1. تنتظر العقدة الصمت على الناقل ثم تبدأ الإطار بـ SOF المهيمنة.
  2. تُرسل المُعرّف وتستمع للناقل في آنٍ واحد. رأت عليه 0 حيث أخرجت هي 1 — إذن غيرها أعلى أولوية: تتنازل بصمت وتحاول ثانيةً. المُعرّف الأصغر = أولوية أعلى، وبايتات الفائز لم تتضرّر.
  3. يسير الطول و0–8 بايتات بيانات، ثم CRC-15.
  4. كل من استلم الإطار بلا أخطاء يجذب بتّة ACK. بتّة واحدة مشتركة لكل المستمعين.
  5. رصدت خطأ — تُصدر أيّ عقدة error frame وتُسقط الإطار للجميع. يُعيد المُرسِل تلقائيًا.
  6. العقدة التي تُخطئ باستمرار تفصل نفسها عن الناقل بحسب عدّادات الأخطاء — bus off. القطعة المعطوبة لا تجرّ الشبكة معها.
نقاط القوة
  • يعيش في تشويش ثقيل وعلى عشرات الأمتار.
  • أولويات وتحكيم بلا فقدان إطار.
  • كشف أخطاء، إعادة تلقائية، عزل ذاتي للعقدة المعطوبة.
  • بثّ عامّ: أضفت مستمعًا — دون تغيير العقد الموجودة.
  • سلكان فقط لكامل الشبكة.
القيود
  • يلزم مرسل-مستقبل وطوبولوجيا صحيحة بمُنهيات.
  • 8 بايتات للإطار — يجب تقطيع الكتل الكبيرة.
  • أصعب في التعلّم والتصحيح، ويلزم محلّل.
  • لا يحمل معنى بذاته: يلزم بروتوكول علوي — OBD-II، J1939، CANopen.
  • قد تنتظر الرسالة منخفضة الأولوية طويلًا على ناقل محمّل.

أين نجده: كل إلكترونيات السيارات والتشخيص عبر OBD-II، الشاحنات والمعدّات الزراعية (J1939)، أتمتة الصناعة (CANopen)، متحكّمات محرّكات BLDC، المصاعد، المعدّات الطبية، أنظمة إدارة البطاريات BMS.

05 / مستويات وموصّل · نقطة إلى نقطة

RS-232

EIA/TIA-232 · «منفذ COM»

خلط شائع: RS-232 ليس UART آخر. الإطار نفسه، وبتّات البداية والإيقاف ذاتها. يصف المعيار الجهود والموصّل: المنطق واحد هنا هو −12 V، والصفر هو +12 V. عكسٌ زائد مدى 24 فولتًا: يصمد الإشارة أمام كابل طويل وتشويش كان ليقتل TTL.

الأسلاكTXD, RXD, GND
+ RTS/CTS, DTR/DSR
المستويات1 = −5…−15 V
0 = +5…+15 V
الازدواجكامل
الأجهزة2
السرعة300 … 115200 bit/s
المسافةحتى 15 m
إطار واحد في عالمين: TTL و RS-232 0x4A
الأعلى ما يخرج من المتحكّم، والأسفل ما يذهب إلى الكابل بعد MAX3232. الشكل مطابق، لكنه مقلوب وممدود عبر الصفر. لا يجوز توصيل RS-232 مباشرةً بدبوس المتحكّم: −12 V ستقتله.
موصّل DE-9 ومحوّل المستويات
أدنى مجموعة عمل — ثلاثة أسلاك: 2 RXD, 3 TXD, 5 GND. والبقية — تحكّم عتادي بالتدفّق (RTS/CTS) وإرث المودمات (DTR, DSR, DCD, RI). الكابل بين جهازين متساويين يعكس 2 و3 ويُسمّى null-modem.
ما يلزم معرفته عمليًا
  1. داخل الجهاز يعيش UART عادي. يبدأ RS-232 بعد شريحة المستويات.
  2. MAX232 / MAX3232 تصنع ±12 V من تغذية واحدة بمضخّات شحن على أربعة مكثّفات.
  3. يوصف الإعداد بسطر مثل 115200 8N1 — السرعة، بتّات البيانات، التكافؤ، بتّات الإيقاف. عدم تطابق أيّ منها — نفايات على الشاشة.
  4. الأرضي مشترك للجهازين، وهذه نقطة ضعف: اختلاف جهود الأرضي على كابل طويل يولّد تيارًا في «الصفر».
  5. تلزم مئات الأمتار أو عقد كثيرة — يُؤخذ القريب التفاضلي: RS-422 وRS-485 (حتى 1200 m، حتى 32 عقدة، ويعيش فوقه Modbus). وهو في جوهره إطار UART نفسه، لكنه يُرسَل عبر زوج ملتوٍ بمستويات تفاضلية مثل CAN — ومن هنا المدى ومناعة التشويش.
نقاط القوة
  • مدى جهد كبير ← مناعة تشويش أعلى من TTL، أمتار بدل سنتيمترات.
  • ازدواج كامل، تحكّم عتادي بالتدفّق.
  • توافق مطلق: عمر المعيار أكثر من ستين عامًا.
  • يُركّب على أي UART بشريحة واحدة.
القيود
  • جهازان فقط.
  • مستويات بسلك واحد نسبةً إلى أرضي مشترك — بعيد عن RS-485.
  • موصّل كبير، تلزم مكثّفات وشريحة منفصلة.
  • اختفى من الحواسيب: يعيش عبر محوّلات USB-UART (CP2102, FT232, CH340).

أين نجده: المتحكّمات الصناعية وأجهزة CNC، أجهزة المختبرات، مصادر UPS، معدّات الكاشير، مبدّلات وخوادم الشبكة (منفذ الكونسول)، التشخيص في أتمتة السكك الحديدية والطاقة.

06 / غير متزامن · سلك واحد

1-Wire

Dallas / Maxim واجهة أحادية الناقل

أقصى الاقتصاد: خط بيانات واحد بمقاومة شدّ — وعبره يمكن للجهاز أن يُغذّى، مخزّنًا الطاقة في مكثّف ما دام الخط حرًّا. لا توقيت ولا سلك ثانٍ: كل شيء يُرمّز بـمدّة النبضة المنخفضة. يحمل كل جهاز رقمًا فريدًا من 64 بتّة، مبرمَجًا في المصنع.

الأسلاكDQ + GND
(+ VCC اختياريًا)
التوقيتلا، توقيتات فقط
الازدواجنصفي
الأجهزةكثيرة، بحث بـ ROM ID
السرعة≈16 kbit/s,
overdrive ≈125
المسافةعشرات الأمتار
إعادة ضبط واستجابة وكتابة بايت بشقوق زمنية 0x4A
لا يميّز الواحد عن الصفر إلا طول النبضة المنخفضة داخل الشقّ: هبوط قصير ≈6 µs هو 1، وطويل ≈60 µs هو 0. ومن هنا الصعوبة الأساسية: يعيش المشغّل على تأخيرات ميكروثانوية، ومقاطعة زائدة وسط الشقّ تُفسد البتّة.
مخطط التوصيل والتغذية الطفيلية
مقاومة شدّ 4.7 kΩ — وعلى الخط ذاته تتعلّق كل المستشعرات. في وضع التغذية الطفيلية لا حاجة للسلك الثالث إطلاقًا: ما دام الخط مرتفعًا يشحن الجهاز مكثّفه الداخلي.
كيف يعمل هذا
  1. يُبقي المتحكّم الخط منخفضًا ≥480 µs — إعادة ضبط. تُعاد تهيئة كل الأجهزة على الخط.
  2. تردّ الأجهزة بهبوط لها بمقدار 60–240 µs — presence pulse: «نحن هنا».
  3. يُرسل المتحكّم أمرًا بشقوق 60–120 µs. ثم إمّا Skip ROM إن كان الجهاز واحدًا، أو Match ROM برقم الجهاز المحدّد من 64 بتّة.
  4. تُوجَد عدة أجهزة بخوارزمية ROM search: اجتياز بتّي لشجرة العناوين، تُستبعد العقد على مجموعات.
  5. عند القراءة يُنزل المتحكّم الخط بنفسه 1–2 µs، يُطلقه ويرى المستوى: أبقاه الطرفي منخفضًا — 0، أطلقه — 1.
  6. في رقم الجهاز البايت الأخير هو CRC-8، فيُتحقّق من التوصيل فورًا.
نقاط القوة
  • سلك واحد لكل شيء، بما فيه التغذية.
  • مُعرّف مصنعي فريد: لا تحتاج الأجهزة إلى ضبط ولا تتعارض العناوين.
  • عشرات الأمتار من زوج ملتوٍ عادي.
  • أجهزة كثيرة على خط واحد — قلادة مستشعرات حرارة عبر المنزل.
القيود
  • بطيء جدًا: قياس DS18B20 يستغرق حتى 750 ms.
  • توقيتات صارمة بالميكروثانية، ونصف ازدواج.
  • الدعم العتادي في المتحكّمات معدوم تقريبًا — كل شيء يدويًّا.
  • الخط الطويل يتطلّب طوبولوجيا دقيقة وأحيانًا مقاومة شدّ فعّالة.

أين نجده: موازين حرارة DS18B20 (المنزل الذكي، الحاضنات، غرف الخوادم)، مفاتيح iButton وأجهزة الاتّصال الداخلي، ذاكرة EEPROM من نوع DS24xx، تعريف البطاريات والخراطيش، مستشعرات الرطوبة في البيوت الزجاجية.

07

كل شيء على شاشة واحدة

الناقلخطوط الإشارةالتوقيتالازدواجالأجهزةالعنونةالسرعةالمسافةالمستويات
UART 2لاكامل2لاحتى ~1 Mbit/s~1 mبسلك واحد، TTL
SPI 3 + N×CSSCK من المتحكّمكامل1 + Nبخط CS10–100 MHzcmبسلك واحد، TTL
I²C 2 + مقاومتا شدّSCL من المتحكّمنصفيحتى 112عنوان 7 بتّات0.1–3.4 MHzعشرات cmمصرف مفتوح
CAN 2 (زوج ملتوٍ)لا، بالحوافنصفيعشراتمُعرّف الرسالة، أولويةحتى 1 Mbit/s40–500 mتفاضلية
RS-232 2 (+ تدفّق)لاكامل2لاحتى 115200 bit/s15 m±5…15 V، عكس
1-Wire 1لا، توقيتاتنصفيكثيرةROM ID من 64 بتّة16–125 kbit/sعشرات mمصرف مفتوح + شدّ

إضافة مفيدة للجدول: RS-485 — النسخة التفاضلية متعددة النقاط من المنفذ التسلسلي: إطار UART نفسه، زوج ملتوٍ، حتى 32 عقدة و1200 m، نصف ازدواج. عليه يعمل Modbus RTU وأغلب الأطراف الصناعية.

08

أيّها تختار للمهمّة

جهازان، بيانات قليلة، والمطلوب بساطة وفوريّة — وترغب في رؤية الحركة بعينيك في الطرفيّة.

UART

شاشة، بطاقة SD، ذاكرة flash أو ADC على اللوحة ذاتها: تهمّ السرعة، والدبابيس متوفّرة.

SPI

خمسة إلى عشرة مستشعرات ومسجّلات صغيرة، البيانات قليلة، والدبابيس الحرّة تكاد تنعدم.

I²C

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

CAN

الاتّصال بجهاز صناعي أو UPS أو منفذ كونسول لخادم.

RS-232

قلادة موازين حرارة على كابل طويل، السرعة غير مهمّة، وأقلّ ما يمكن من الأسلاك.

1-Wire

مئات الأمتار، عشرات العقد، لكن CAN مبالغ فيه، والعمل مطلوب مع أجهزة صناعية جاهزة.

RS-485 / Modbus
09

أين ينكسر كل شيء عادةً

UART

لم يُتقاطع TX و RX

يجب أن يذهب TX إلى RX. الكلاسيكي الثاني — عدم تطابق السرعة: بدل النص تسير نفايات ثابتة. والأرضي المشترك إلزامي.

SPI

وضع خاطئ أو CS منسيّ

تُقرأ البيانات لكن بإزاحة بتّة — شبه دائمًا اختلط CPOL/CPHA. الـ CS غير المثبّت يطفو ويفتح الطرفي في لحظة عشوائية: اشدده إلى التغذية.

I²C

لا مقاومات شدّ أو تطابقت العناوين

بلا مقاومات يصمت الناقل تمامًا. مستشعران متطابقان — تعارض عناوين، ينقذه دبوس اختيار العنوان أو مضاعف TCA9548A. الأسلاك الطويلة تضيف سعة: خفّض التردد.

CAN

لا مُنهيات أو سرعات مختلفة

120 Ω تُوضع تمامًا على الطرفين الفيزيائيين للخط الرئيسي، لا على كل عقدة. يجب تطابق معدّل البتّات لدى الجميع حتى البتّة — وإلا يدخل الناقل في انهيار أخطاء.

RS-232

توصيل مباشر بالدبوس

±12 V تحرق مدخل المتحكّم — يلزم MAX3232. وتحقّق: أتحتاج كابل null-modem؟ «طرفيّتان» بلا تقاطع لن تسمع إحداهما الأخرى.

1-Wire

توقيتات مأكولة

مقاطعة وسط شقّ بمقدار 60 µs تكسر البتّة. على خط طويل أضف مقاومة شدّ أقوى وتحقّق من CRC-8 لكل ردّ قبل تصديق القراءات.

عامّ

مستويات تغذية مختلفة

5 V و3.3 V لا يتصافيان مباشرةً: يلزم مقسّم جهد أو محوّل مستويات أو جهاز بمداخل متسامحة. تحقّق من هذا قبل منطق البروتوكول.

عامّ

تصحيح على العمياء

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

أعدّ هذا الشرح الفريق الذي يقف خلف RisalDash، مكتبة لوحات تحكّم وِب مفتوحة المصدر لـ ESP32 / ESP8266.

نُرسل بايت
hex 0x4A dec 74 bin 01001010 ascii 'J'