كيفية تحويل محور USB "المئوية" إلى إدارة ذكية وتوفير 300 دولار

بطريقة ما ، كنت بحاجة إلى محور لفترة طويلة ، ويفضل أن يكون ذلك مع عدد كبير من المنافذ وشكل مناسب إلى حد ما ، ومناسب للتضمين بدلاً من محرك الأقراص المرنة في الخليج 3.5 بوصة. ألقيت نظرة سريعة على سوق السلع المستعملة نموذج D-link DUB-H7 ، وحتى في تركيبة "2 بسعر 1". لم يعط الفحص الخارجي أي شيء خاص ، حيث تم إنشاء المحور كمحور بشكل سليم ، و USB الرئيسي "الطابعة" USB AM-BM في الخلف ومصدر طاقة 3 أمبير. كما هو الحال دائمًا ، كان أول شيء قمت بفرزه ، مسرورًا لعدد صغير من الأماكن الفارغة بدلاً من العناصر ، إلى جانب اللحام عالي الجودة والهدوء. صحيح ، فقط في حالة ، ذهبت إلى الإنترنت لمعرفة نوع المركز الذي كان عليه وما إذا كانت هناك أي مشاريع مثيرة للاهتمام بمشاركتها. لم تكن هناك مشاريع ، مراجعات المستخدمين 50/50 ، بشكل عام ، لا ديناميات. عمل المحور لمدة 5-7 سنوات بشكل جيد إلى حد ما وأدى مهمته ، ثم انتقل بسلاسة إلى صندوق القمامة الإلكتروني وربما اختفى نتيجة ذلك مع محولات غير معروفة ، محولات ، إلخ. لكن حدث حدث في حياتي جعلني أتفحص في أكياس مع خردة قديمة ، والعثور على هذا ، كما اتضح ، وصلة D فريدة من نوعها ، والتخلص من الغبار لاستخراجه في نور الله. إذا كنت مهتمًا بسماع السبب ، فمرحباً بك.


وميض وميض

مقدمة أو بكاء حول الشركات المصنعة الجشعة لمحاور USB


مع ظهور أجهزة توجيه SoC الصغيرة والمريحة (مثل البرنامج التعليمي حول "تكييف" استنساخ جهاز التوجيه الصيني الشهير Hame A15 ، والذي يُعرف أيضًا باسم "A5-V11" بدون علامة تجارية ) والمقدمة الواسعة لـ Openwrt لإدارة الأجهزة المضيفة (في الغالبية العظمى) الحالات ، هذه أجهزة متصلة عبر USB) ، تصبح مهمة التحكم في إمدادات الطاقة لجميع أنواع أجهزة المودم ، وأجهزة قراءة البطاقات ، ومحولات USB-rs232 ، وما إلى ذلك ، مهمة عاجلة للغاية. الحاجة إلى التحكم في المنفذ عند العمل مع GSM-mo هي الأكثر شيوعًا إمامي (إعادة تشغيل، على سبيل المثال). من حيث المبدأ ، اتخذ الناس بالفعل ما يكفي من القرارات . لهذه الأغراض ، من استخدام دبابيس GPIO المجانية في جهاز التوجيه ، إلى المرحلات الجاهزة. هناك حلول من الشركات المصنعة لجهات خارجية. هذا ، على سبيل المثال ، موزع USB قابل للبرمجة لـ 4 منافذ من Acroname ، وهو غني بالبرامج والأجهزة ، ولكن يكلف حوالي 300 دولار.


الصورة

هناك خيار أرخص ، مركز ذكي للتحويل مع اسم جميل Yupkit YKUSH مقابل 35 يورو فقط:


الصورة

يمكن للأكثر اقتصادا استخدام مجموعة من أرخص محور USB ، ومرحل مغلق 5V ، وأي من Arduino-k لفصل الطاقة عن منفذ USB إذا لزم الأمر. تكلفة هذا الحل هي <10 دولارات ، باستثناء الوقت الذي يقضيه في لحام وبرمجة Arduino.


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


مقتطفات من المواصفات المتعلقة بإدارة طاقة USB

قد تحتوي لوحات الوصل ذاتية التشغيل على محولات طاقة تتحكم في توصيل الطاقة لمنافذ المواجهة المتلقية للمعلومات ولكنها غير مطلوبة. يلزم وجود محاور تعمل بالناقل للحصول على مفاتيح الطاقة. يمكن للمحور المزود بمفاتيح الطاقة تحويل الطاقة إلى جميع المنافذ كمجموعة / عصابة ، أو إلى كل منفذ على حدة ، أو أن يكون لديه عدد عشوائي من العصابات بمنفذ واحد أو أكثر. يشير المحور إلى ما إذا كان يدعم تبديل الطاقة أم لا من خلال إعداد حقل وضع تبديل الطاقة المنطقي في خصائص الخصائص. إذا كان الموزع يدعم تبديل الطاقة لكل منفذ ، فسيتم تشغيل الطاقة إلى المنفذ عند تلقي طلب SetPortFeature (PORT_POWER) للمنفذ. يتم إيقاف تشغيل طاقة المنفذ عندما يكون المنفذ في حالة إيقاف التشغيل أو غير مكوّن. إذا كان المحور يدعم تبديل الطاقة المجمعة ، فسيتم تشغيل الطاقة إلى جميع المنافذ في المجموعة عندما يتلقى أي منفذ في مجموعة طلب SetPortFeature (PORT_POWER). لا يتم إيقاف تشغيل قوة العصابة ما لم تكن جميع المنافذ في العصابة في حالة إيقاف التشغيل أو غير مكوّن.
...
على الرغم من أن لوحة الوصل ذاتية التشغيل غير مطلوبة لتنفيذ تبديل الطاقة ، يجب أن تدعم لوحة الوصل حالة إيقاف التشغيل لجميع المنافذ. بالإضافة إلى ذلك ، يجب أن يطبق الموزع PortPwrCtrlMask (يتم تعيين كافة البتات على 1B) على الرغم من أن لوحة الوصل لا تحتوي على مفاتيح طاقة يمكن التحكم فيها بواسطة برنامج نظام USB.


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


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


لقد قمت بتفكيك العديد من محاور USB الصغيرة التي خططت لاستخدامها مع جهاز التوجيه A5-V11. في الداخل كانت: شريحة GL850G والحبيبة الحارة من قبل FE1.1s الصينية. بطبيعة الحال ، تم العثور فقط على وحدات التحكم نفسها مع الحد الأدنى من التفاصيل في الداخل. نظرًا للحجم المصغر للوحة ، فمن الصعب وضع الترانزستور والأجزاء التي انضمت إليه حتى مع التثبيت المفصلي. كان علي أن أهدأ. على الرغم من أنه ، اعتمادًا على الشريحة ، إذا كان هناك في ورقة البيانات إشارة إلى الكشف عن التيار الزائد والتحكم في الطاقة الفردية أو المجمعة ، فمن الممكن إجراء عملية ذكية لمثل هذا الجهاز وفقًا للطريقة الموضحة في المقالة . استخدم أحد الأصدقاء مجموعة من الترانزستور ومجموعة من المقاومات لتمكين وظيفة PPPS في مركزه.


مخطط التعديل وظهور الجهاز
الصورة
الصورة

أيضًا ، بقراءة الوثائق ، يمكنك التعرف على حقيقة أنه لا يوجد ، لا ، وهناك إشارة إلى أنه يمكن تنفيذ وضع التحكم في المنفذ عن طريق إضافة بعض AIC1526-0 أو MIC2026 (مفتاح توزيع الطاقة ثنائي القناة) إلى الدائرة.


لن تترك مخططات أوراق البيانات الكذب


جزء من الرئيسي أو الوصول إلى النقطة


طغت على الأفكار القاتمة حول شراء محاور صينية ذات وظائف غير معروفة ("خنزير في كزة") واستحالة التحقق الأولي منها ، لقد صادفت عن غير قصد مقالة حول إعداد openwrt للتحكم في قوة محور USB ، علاوة على ذلك ، مهجورة و نسي D-Link DUB-H7 في حالة رمادية.



بعد دراسة العتاد ، أصبح من الواضح أنه على متن المحور ، بالإضافة إلى وحدة تحكم Philips ISP1521BE المتقدمة إلى حد ما ، هناك مجموعة كاملة من نفس مفتاح توزيع الطاقة ثنائي القناة AIC1528-0 لتبديل الطاقة الكاملة. على الرغم من الحكم من خلال ورقة البيانات ، يمكن للرقاقة التي تحتوي على الحد الأدنى من طقم الجسم أن تتحكم في قوة منافذ المصب (وهناك أيضًا الكثير من الأشياء التي لم يتم تنفيذها هناك ، على سبيل المثال ، تشير إلى نشاط المنفذ العلوي باستخدام تقنية GoodLink ، أو مضيف USB 1.1 لدعم خليط من 2.0 و 1.1 بشكل صحيح منافذ المصب ، إلخ.).


بالمناسبة ، بالنسبة لأولئك الذين يقررون تكرار المسار الذي سافرته ، يجب أن أقول على الفور أن الإصدارات الحديثة من D-Link DUB-H7 (في حالة سوداء لامعة) لم تعد مفيدة مثل تلك القديمة الرمادية.



وفقًا لمعلومات من wikidevi.com ( 1 ، 2 ، 3 ، 4 ) ، هناك العديد من المراجعات لهذا المحور ، مع مجموعة مختلفة من المكونات على متنها ، وبالتالي مع وظائف مختلفة (A1 / A5 - ISP1521BE 7 منافذ ، B1-2xGL854G 4 منافذ ، C1 - 2xGL850Z 4 منافذ).


يتم الانتباه أيضًا إلى D-Link DUB-H7 لأنه بالإضافة إلى وظائفه الجيدة ، فهو أيضًا الخيار الأكثر بأسعار معقولة (من حيث السعر والانتشار) في منطقتنا. من النماذج التي يمكن ذكرها على طول الطريق مع "تحويل الطاقة لكل منفذ" ، يمكننا أيضًا ملاحظة ، على سبيل المثال ، ما يلي:


  • لينكسيس USB2HUB4 محور USB 2.0.
  • دي لينك DFB-H7 كومبو هب
  • Elecom U2H-G4S
  • Sanwa Supply USB-HUB14GPH
  • شركة تارجوس PAUH212
  • تقنية هوكينج UH214

لم تتح لي الفرصة للبحث عن الأجهزة المذكورة ، لأنني كنت محظوظًا ذات مرة بإصدار مراجعة A5. الحقيقة الآن ، إذا اضطررت لشراء مثل هذا المركز ، فسأحاول العثور على مراجعة B1 ، لأنه بالإضافة إلى التحكم في قوة المنافذ ، تحتوي الشريحة التي بنيت عليها (GL854G) داخل شيء مثل مترجم المعاملات المتعددة .



أهمية وجود مترجم متعدد المعاملات (MTT) في موزع USB


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


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



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


لسوء الحظ ، فإن الغالبية العظمى من المحاور غير المكلفة المبنية على رقائق الميزانية (fe1.1s و GL850G و ISP1521BE من مركز A5 الخاص بي) تحتوي على STTs على متن الطائرة وأكثر تكلفة ومتقدمة (GL852G و GL854G (مراجعة B1 لل D-link DUB-H7 قيد المناقشة) ، تعمل GL3520 و VL812 و VL813 و SMSC USB2514) على تشغيل MTT.


يمكنك التحقق من نوع جهاز إرسال التشغيل إما عن طريق قراءة ورقة البيانات على الشريحة (ولكن في الغالب لا يستطيع الصينيون أو لا يريدون إخبار العلامة التجارية للرقاقة) ، أو عن طريق توصيل لوحة الوصل بالكمبيوتر * nix وتنفيذ الأمر lsusb -v والعثور على جزء من معلومات الخدمة المتعلقة بلوحة الوصل قيد الدراسة (عن طريق الاسم). سيشير خط DeviceProtocol إما TT واحد أو TT متعدد . من الواضح أن الشراء أفضل فقط مع Multi :)


وصف خصائص المحور الصادرة عن فريق lsusb

ناقل 001 جهاز 005: ID 2001: f103 D-Link Corp. DUB-H7 لوحة وصل USB 2.0 ذات 7 منافذ
تعذر فتح الجهاز ، ستفقد بعض المعلومات
واصف الجهاز:
الطول 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 غير مستخدم
bDeviceProtocol 1 TT واحد
bMaxPacketSize0 64
idVendor 0x2001 D-Link Corp.
معرف idProduct 0xf103 DUB-H7 لوحة وصل USB 2.0 ذات 7 منافذ
bcd جهاز 1.00
iManufacturer 0
iProduct 0
iSerial 0
تكوينات bNum 1
واصف التكوين:
الطول 9
bDescriptorType 2
الطول الكلي 25
bNumInterfaces 1
b التكوين V القيمة 1
تكوين i 0
bmAttributes 0xe0
مدعوم ذاتيا
تنبيه بعيد
MaxPower 0mA
واصف واجهة:
الطول 9
bDescriptorType 4
رقم الواجهة 0
ضبط الإعداد 0
bNumEndpoints 1
binterfaceClass 9 Hub
bInterfaceSubClass 0 غير مستخدم
bInterfaceProtocol 0 محور كامل السرعة (أو الجذر)
iInterface 0
واصف نقطة النهاية:
الطول 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
سمات bm 3
مقاطعة نوع النقل
نوع التزامن لا شيء
بيانات نوع الاستخدام
wMaxPacketSize 0x0001 1x 1 بايت
الفترة بين 12


عند تشغيل الأمر lsusb -v -t ، يمكنك رؤية هيكل هرمي جميل لأجهزة USB المتصلة.



بدلاً من lsusb ، يمكنك استخدام الأداة المساعدة hwinfo مع مفتاح التبديل --usb (يُنصح بتثبيته مسبقًا من خلال sudo apt-get install hwinfo ). ثم سيبدو إخراج المعلومات حول أجهزة USB مختلفًا قليلاً:


المعلومات الصادرة عن hwinfo

lab @ lab-G: ~ $ hwinfo --usb
23: USB 00.0: 10a00 Hub
[تم الإنشاء في USB.122]
المعرف الفريد: zFuK.sOcBcpBDhs4
معرف الوالدين: k4bc.9T1GDCLyFd9
معرف SysFS: /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0
SysFS BusID: 1-8: 1.0
فئة الأجهزة: المحور
الموديل: "D-Link DUB-H7 7-port USB 2.0 hub"
Hotplug: USB
البائع: usb 0x2001 "D-Link"
الجهاز: USB 0xf103 "DUB-H7 7-port USB 2.0 hub"
المراجعة: "1.00"
سائق: "المحور"
وحدات برنامج التشغيل: "usbcore"
السرعة: 480 ميجا بت في الثانية
الاسم المستعار للوحدة النمطية: "usb: v2001pF103d0100dc09dsc00dp01ic09isc00ip00in00"
حالة التكوين: cfg = new، avail = yes، need = no، active = unknown
مرفق به: # 21 (المحور)


بشكل عام ، اكتشفنا لفترة وجيزة ميزات الأجهزة منخفضة السرعة والآن حان الوقت للانتقال إلى جزء البرنامج.


إدارة طاقة منفذ USB


سأقول على الفور أنني لم أتمكن من العثور على طريقة لتنفيذ وظائف PPPS في بيئة Windows (على الأقل بسبب الخمول). الحد الأقصى هو تمكين / تعطيل الجهاز باستخدام الأداة المساعدة devcon . سأكون سعيدًا إذا قام أحد القراء بتصحيح ومكملات. في هذه الأثناء ، يتم تنفيذ جميع الإجراءات على سبيل المثال Ubuntu (في حالة openwrt - الخوارزمية متشابهة ، على الرغم من أنه في الصندوق الأخير يجب تضمينها بالفعل في "التوزيع").


لذا ، يتم تنفيذ إمكانية تحويل الطاقة لكل منفذ (PPPS) أو "تبديل طاقة المنفذ" على لوحات الوصل مع دعم الأجهزة لهذه الوظيفة باستخدام برنامج hub-ctrl أو سليل uhubctrl الخاص به . سوف أعتبرها بدورها.


لوحة الوصل


تم كتابة البرنامج من قبل مهندس مقاتلة الاستقلال الياباني Niibe Yutaka في عام 2006. لكنها تعمل بدون مشاكل الآن. للتثبيت ، نحتاج إلى أي مكتبة * nix و libusb-dev . بالنسبة إلى Ubuntu 16.04 LTS ، تكون الخوارزمية كما يلي:


  تثبيت إضافة.  الحزم: sudo apt-get update && sudo apt-get install libusb-dev git gcc
 مصدر التحميل: git clone https://github.com/codazoda/hub-ctrl.c
 مترجم باستخدام gcc: cd hub-ctrl.c && gcc -o hub-ctrl hub-ctrl.c -lusb 

إذا كان العنوان غير متوفر ، يمكنك تنزيل المصادر يدويًا من هنا أو من هنا وتجميع الأمر الموضح أعلاه.


يحتوي البرنامج على بنية سطر أوامر بسيطة إلى حد ما تتناسب مع الوصف التالي:


./ hub-ctrl [{-h HUBNUM | -b BUSNUM -d DEVNUM}] \ [-P PORT] [{-p [VALUE] | -l [VALUE]}]
حيث HUBNUM - رقم المحور ورقم ناقل BUSNUM ورقم جهاز DEVNUM ورقم منفذ PORT


من أجل معرفة هذه المعلمات ، فقط قم بتشغيل الأمر lsusb :



بالمناسبة ، يمكن أن يعمل برنامج hub-ctrl كنوع من "المسبار" لمحور USB لحقيقة أنه لديه القدرة على إدارة طاقة المنفذ. يكفي تشغيله بمفتاح -v. نحصل على قائمة بالمحاور المدعومة المتوفرة في النظام (خط INFO) وحالة المنفذ (في حالتي ، يتم إيقاف تشغيل جميع المنافذ).


lab @ lab-G: ~ / hub $ sudo ./hub-ctrl -v
المركز # 0 في 001: 006
INFO: تحويل الطاقة الفردية.
تحذير: مؤشرات المنفذ غير مدعومة.
حالة منفذ لوحة الوصل:
المنفذ 1: 0000.0000
المنفذ 2: 0000.0000
المنفذ 3: 0000.0000
المنفذ 4: 0000.0000
المنفذ 5: 0000.0000
المنفذ 6: 0000.0000
المنفذ 7: 0000.0000

وهذه هي الطريقة التي سيبدو عليها التكوين عند تشغيل جميع المنافذ:


lab @ lab-G: ~ / hub $ sudo ./hub-ctrl -v
المركز # 0 في 001: 006
INFO: تحويل الطاقة الفردية.
تحذير: مؤشرات المنفذ غير مدعومة.
حالة منفذ لوحة الوصل:
المنفذ 1: طاقة 0000.0100
المنفذ 2: طاقة 0000.0100
المنفذ 3: طاقة 0000.0100
المنفذ 4: طاقة 0000.0100
المنفذ 5: طاقة 0000.0100
المنفذ 6: طاقة 0000.0100
المنفذ 7: طاقة 0000.0100

لتمكين أي من المنافذ تحتاج إلى تشغيل الأمر sudo ./hub-ctrl -h 0 -P 1 -p 1 ، حيث تشير -h إلى المحور الذي نستخدمه (0 في حالتي) ، -P يقول أي منفذ (1- المنفذ عشر في حالتي) ، و -p يشير إلى الحالة (0-off ، 1-on).



للحصول على التكوين كما في الصورة أعلاه ، كان من الضروري تنفيذ الأوامر التالية بالتتابع (للمنافذ المعطلة في البداية):


sudo ./hub-ctrl -h 0 -P 2 -p 1
sudo ./hub-ctrl -h 0 -P 4 -p 1
sudo ./hub-ctrl -h 0 -P 6 -p 1


وبناءً على ذلك ، ليس من الصعب كتابة برنامج نصي من شأنه أن يجعل مصابيح LED تومض من أجل التسلسل المطلوب. أمثلة من هذه الأشياء موجودة بالفعل وتعمل بنجاح:
شفرة مورس على محور USB ، أكاليل عيد الميلاد ، إلخ. الخ. بالنسبة لي ، من قدرات hub-ctrl ، لم تكن وظيفة التبديل الدوري كافية لتحقيق خيالي في الإضاءة اللحظية (حتى لا تضيع الوقت في كتابة برنامج نصي ، إلخ). يتم التخلص من هذا العيب المزعج في الخلف - uhubctl.


UHUBCTL


برنامج uhubctl هو نظير محوري محوري وله بعض الاختلافات التجميلية (وبالطبع يدعم المزيد من الأجهزة).


مع عمل uhubctl:

من الناحية النظرية ، يمكن تجميع الأداة المساعدة للتشغيل في بيئة windows ، ولكن ... ولكن في الوقت الحالي ، تتفاعل مع الأدوات المساعدة من خلال برنامج تشغيل winusb.sys ، الذي لا يمكنه الوصول إلى المحور مباشرة. يدعي البرنامج أيضًا دعم USB 3.0 (محاور USB 3.0 التي تدعم تبديل الطاقة لكل منفذ ، بالمناسبة ، هي أكثر بكثير من محاور USB 2.0 مع وظائف مماثلة). عند العمل مع محور USB 3.0 متصل بمنفذ USB 3.0 للتحميل ، يعرّفه البرنامج على أنه محورين افتراضيين مستقلين: USB 2.0 و USB 3.0 ، وسيتم توصيل أجهزة USB نفسها بأحدها اعتمادًا على قدراتها وسرعة الاتصال . وفقًا لذلك ، لإدارة هذه الأجهزة ، يمكّن البرنامج / يعطل الطاقة على المحاور الافتراضية افتراضيًا (يمكنك تبديل الأداة المساعدة إلى الوضع اليدوي عن طريق إضافة -e إلى الأمر start).


هام: يمكن أن يتسبب نظام العنونة لمنافذ USB في حدوث بعض الالتباس (يشبه hub-ctrl و uhubctl). عند العمل ، يستخدم نفس طريقة العنونة المشابهة لتلك الموجودة في Linux kernel: bx.yz ، حيث b هو رقم ناقل USB ، و x ، y ، z هي أرقام المنافذ لسلسلة المضيف ، بدءًا من محور USB الجذري لهذا الناقل. إذا كان هناك أكثر من محور USB مُدار ، يمكنك تحديد الخيارات الصحيحة عن طريق تشغيل uhubctl باستخدام الخيار -l (الموقع). ألاحظ أن هذا العنوان شبه مستقر - لن يتغير إذا قمت بفصل أجهزة USB وإعادة توصيلها بنفس المنفذ الفعلي.


تشبه خوارزمية الترجمة للبرنامج خوارزمية hub-ctrl. الاستثناء الوحيد هو أنك تحتاج إلى تثبيت مكتبة libusb-1.0 (الإصدار 1.0.12 أو أحدث) باستخدام الأمر sudo apt-get install libusb-1.0-0-dev المعتاد ، ثم تجميع binaric باستخدام الأمر make .


بناء الجملة لبدء البرنامج على النحو التالي.


uhubctl -a خارج-ص 2


يقوم هذا الأمر بإيقاف الطاقة (-a ، أو -a 0) على المنفذ 2 (-p 2). أوامر إيقاف التشغيل / التشغيل / الدورة (أو 0/1/2) المعتمدة. يقوم مفتاح الدورة بإيقاف الطاقة ، وينتظر لفترة (يتم تحديدها بواسطة المفتاح -d) ويعيد تشغيله مرة أخرى. أي الآن يمكن للوحة الوصل استبدال الميكروكونترولر بسهولة للوميض.


ما يلي من كل هذا ، أو الاستنتاجات


ويترتب على ذلك أن "السر" الموجود في المحور القديم من D-Link موجود هناك. إن استخدام التكنولوجيا الموصوفة (PPPS) له ما يبرره إذا كنت بحاجة إلى التحكم عن بعد في مجموعة من الأجهزة المتصلة بناقل USB. علاوة على ذلك ، يتم استخدام هذه الطريقة بالفعل لتعطيل محركات الأقراص الثابتة وكاميرات الويب وأجهزة مودم GSM (كما في الصورة):


الصورة

على الرغم من أن أجهزة المودم و D-link DUB-H7 التي ذكرتها ، هناك أشخاص يشككون في قابلية تشغيل هذه الحزمة (عند العمل مع برنامج hub-ctrl).


والسبب هو ...

"... أظهرت التجارب باستخدام Dlink DUB H-7 أن hub-ctrl -p 0 يخفض الجهد فقط إلى 1.47 فولت. ومع ذلك ، بعد إدخال المودم في" منفذ معطل "، لا يومض LED ، ولكن الملفات / dev / ttyUSBx لهذا . . ."


(lsusb, hwinfo, hub-ctrl) USB-, , . usb- ( ). , , . , , (D-link DUB-H7 ver. A5) . , , :)



PS -, D-link DUB-H7 .



( - )? RP1...RP2 ( 0- c).


: - EEPROM 24C02, :



هام! يمكن الآن رؤية جميع التحديثات والملاحظات المؤقتة التي تشكلت منها مقالات habr بسلاسة في مختبر القناة 66 الخاص بي . اشترك من أجل عدم توقع المقال التالي ، ولكن على الفور لمعرفة كل الأبحاث :)


Source: https://habr.com/ru/post/ar430220/


All Articles