با خواندن این پست و بحث همراه آن، تصمیم گرفتم تا روشن کنم که USB Power Delivery واقعا چه می کند. متأسفانه، من این تصور را دارم که اکثر شرکت کنندگان در بحث، 100 vat از طریق USB را به معنای واقعی کلمه دریافت می کنند، و به طور کامل درک نمی کنند که چه چیزی پشت آن در سطح شماتیک ها و پروتکل ها نهفته است.

خوب، به طور خلاصه - نکات اصلی:

  • USB PD دارای 5 پروفایل استاندارد با منبع تغذیه - تا 5V@2A، تا [ایمیل محافظت شده] A، تا 12V@3A، تا 12-20V@3A و تا [ایمیل محافظت شده]آ
  • کابل‌ها و پورت‌های تحویل برق تایید شده‌اند و پین‌های افزودنی در کانکتور نصب شده‌اند.
  • نوع کابل و مشخصات آن به طور خودکار از طریق پین های اضافی اختصاص داده شده به نوع کانکتور USB (میکرو، استاندارد، A، B و غیره) تعیین می شود.
  • کابل‌های USB اصلی (نه Power Delivery) فقط تحت نمایه اول تا 5V@2A تأیید شده‌اند.
  • هنگام اتصال، نقش ها تقسیم می شوند، بنابراین چه کسی جریان را می دهد ( منبع / Dzherelo) و چه کسی زندگی می کند ( سینک / پریماچ)
  • Dzherelo و Priymach اطلاعاتی در مورد یک پروتکل ویژه که به موازات USB سنتی اجرا می شود رد و بدل کردند
  • به عنوان یک پروتکل فیزیکی، جفت vicor VBus / GND است. خود Power Delivery در پروتکل اصلی USB نمی گنجد و کاملاً با USB 2.0 و 3.0 متفاوت است.
  • Vikoristovuyu و اطلاعات، Dzherelo و Primach می توانند هر لحظه نقش را تغییر دهند، قدرت جریان و/یا ولتاژ را تغییر دهند، به خواب زمستانی بروند یا دور بریزند و غیره.
  • این دستگاه می تواند کنترل PD را از طریق ورودی های USB سنتی، توصیفگرها و غیره پشتیبانی کند.
در زیر برش جزئیات وجود دارد.

درباره کابل ها درباره کابل ها

USB Power Delivery با شش نوع کانکتور کار می کند:

بدیهی است که این نوع معاملات به صورت جفت قابل قبول است

  1. USB 3.0 PD Standard-A<->فیش USB 3.0 PD Standard-B
  2. USB 3.0 PD Standard-A<->فیش USB 3.0 PD Micro-B
  3. USB 3.0 PD Micro-A<->فیش USB 3.0 PD Micro-B
  4. USB 3.0 PD Micro-A<->فیش USB 3.0 PD Standard-B
  5. USB 2.0 PD Standard-A<->فیش USB 2.0 PD Standard-B
  6. USB 2.0 PD Standard-A<->فیش USB 2.0 PD Micro-B
  7. USB 2.0 PD Micro-A<->فیش USB 2.0 PD Micro-B
  8. USB 2.0 PD Micro-A<->فیش USB 2.0 PD Standard-B
توجه به این نکته مهم است که مشخصات به طور مستقیم با تعدادی کانکتور در یک طرف کابل که به طور منطقی می تواند به 100 وات برسد نگرانی را محافظت می کند. از طرف دیگر، آداپتورها و آداپتورهای اتصال کوتاه از تخلیه‌هایی که مطابق با مشخصات برق هستند محافظت نمی‌شوند و محافظ کابل را به زمین آن اتصال کوتاه نمی‌کنند.

در مورد اسپویل

پس از صدور گواهینامه، درگاه های USB PD به صورت زیر مشخص می شوند:

این لوگو شما را در مورد نسخه USB (2.0 یا 3.0 SuperSpeed) و همچنین مشخصات برقی که این پورت پشتیبانی می کند، مطلع می کند. مقدار "I" به معنای نمایه ای است که برای عملکرد کامل دستگاه ضروری است و مقدار "O" به معنای مشخصاتی است که می توان به پورت اختصاص داد. اعمال علامت گذاری پورت:

  • اولین پورت از USB2 پشتیبانی می کند. برای عملکرد کامل می توانید از Profile 1 (2A@5V) یا Profile 3 (5V@2A یا 12V@3A) استفاده کنید. به عنوان مثال، یک پورت برای تبلت یا نت بوک.
  • پورت دیگر از USB2 پشتیبانی می کند. می توانید برای پروفیل 2 غذا تهیه کنید (2A@5V یا [ایمیل محافظت شده]) و از Profile 4 (5V@2A یا 12V@3A یا 20V@3A) برای عملکرد کامل استفاده کنید. به عنوان مثال، یک پورت برای لپ تاپ.
  • پورت سوم از USB3 پشتیبانی می کند. فقط برای پروفیل 1 (5V@2A) غذا فراهم می کند. خود VIN برای VBus هزینه ای دریافت نمی کند. به عنوان مثال، پورت دسکتاپ، مانیتور، تلویزیون و غیره.
  • پورت چهارم از USB3 پشتیبانی می کند. مانند برنامه اول، می توانید از Profile 1 (5V@2A) و Profile 3 برای عملکرد کامل (5V@2A یا 12V@3A) استفاده کنید. خودت مثال بزن :)

کانال فیزیکی

USB PD به اصل سازماندهی فیزیکی اتصال به یک کابل اضافی به ترتیب زیر اشاره دارد:

همانطور که از نمودارها مشخص است، USB PD برای اجرای هر دو مدار افت ولتاژ/برش و همچنین روش‌هایی برای انتخاب باتری تخلیه‌شده برای نوسانات کار می‌کند، اگر یک طرف آن نباشد، می‌توانید منبع تغذیه داخلی خود را تغذیه کنید.

چگونگی الگوریتم های بازیابی باتری تخلیه شده بعدا توضیح داده خواهد شد. اگر یکی از طرفین یک تکیه گاه بین صفحه نمایش و زمین قرار می دهد، لطفاً توجه داشته باشید که باتری آن خالی شده است. در چنین شرایطی، طرف مقابل نقش دستگاه را بر عهده می گیرد و شروع به تامین حداقل 5 ولت می کند تا از طریق VBus با طرف دیگر ارتباط برقرار کرده و از طریق پروتکل USB PD شروع به تبادل پیام کند.

همانطور که قبلا ذکر شد، پروتکل USB PD از یک خط VBus برای تبادل پیام استفاده می کند. در زیر یک بلوک دیاگرام است که عناصر عملکردی کلیدی انتقال را نشان می دهد:

و بدیهی است که این بلوک دیاگرام برای گیرنده است:

رمزگذاری سریالی 4b5b و رمزگشایی 5b4b تمام داده ها را در گذرگاه منتقل می کند، به جز مقدمه بسته، که در توالی های پنج بیتی تا جدول رمزگذاری که توسط استاندارد تعریف شده است، منتقل می شود. این دنباله یا یکی از 16 رقم (0x00..0x0F) را کد می کند، یا شروع/همگام سازی/دور انداختن و پایان بسته را نشان می دهد. به این ترتیب انتقال یک بایت 10 بیت، یک کلمه 16 بیتی 20 بیت و یک زیر کلمه 32 بیتی 40 بیت طول می کشد.

کانال منطقی

پروتکل USB PD بر اساس آخرین جفت از نوع منبع تغذیه است. لطفا بپرسید و از بسته های زیر استفاده کنید. بسته ها از یک مقدمه (مرحله آماده سازی قبل از ارسال)، آغاز بسته SOP (سه سیگنال Sync-1 و نهایی Sync-2 در رمزگذاری 4b5b)، یک سربرگ، 0..N بایت از مقدار اولیه، یک جمع چک (CRC-32) و یک بسته سیگنال پایانی (سیگنال EOP واحد):

همانطور که پیداست، مقدمه در 4b5b کدگذاری نشده است. SOP، CRC و EOP به صورت فیزیکی 4b5b کدگذاری می شوند، هدر و پس زمینه مطابق پروتکل منطقی کدگذاری می شوند.
تنظیم مجدد اتوبوس با ارسال سه سیگنال RST1 و سیگنال نهایی RST2 انجام می شود که منجر به کدگذاری 4b5b می شود.

پروتکل

همه پیام‌های USB PD شامل یک هدر و بخش بزرگی از داده‌ها هستند. پیام ها یا در سطح پروتکل منطقی تولید می شوند و سپس به سطح فیزیکی منتقل می شوند یا به صورت فیزیکی دریافت می شوند و سپس به سطح پروتکل منطقی منتقل می شوند.

هدر اعلان دارای طول ثابت 16 بیت است و از فیلدهای زیر تشکیل شده است:

دو نوع اطلاعات وجود دارد - فیزیکی (کنترلی) و اطلاعاتی (داده).

اطلاعات دقیق
اطلاعات کنترل شامل هدر و CRC است. تعداد اشیاء داده برای چنین اعلان‌هایی همیشه روی 0 تنظیم می‌شود. انواع اعلان‌های USB PD در جدول زیر ارائه شده‌اند:

بیایید نگاهی بیندازیم به چه زمینه هایی در معرض دید هستند tSourceActivity, tSinkRequestو غیره. - اینها ثابت هایی هستند که مقادیر آنها به طور کلی توسط خود مشخصات در بخش مرتبط مشخص شده است. ذکر این نکته ضروری است که آنها به عنوان آخرین مرحله در نتایج نمونه اولیه شناسایی شدند و مقادیر بهینه یافت شده به سادگی در بخش بعدی قرار گرفتند تا کل مشخصات خراب نشود.

اطلاعیه های اطلاعاتی
این نوع اطلاعات برای به دست آوردن اطلاعات دقیق در مورد دستگاه یا دستگاه و همچنین برای انتقال خصوصیات انرژی الکتریکی در حال عرضه - منبع تغذیه، ولتاژ و غیره استفاده می شود. اعلان‌های اطلاعاتی همیشه جایگزین مقادیر غیر صفر در قسمت تعداد اشیاء داده می‌شوند.

مشخصات به معنای انواع اطلاعات زیر است:

  • Power Data Object t (PDO) - vikorist برای توصیف ویژگی های بندر Dzherel یا برای استفاده احتمالی
  • درخواست شی داده(RDO) - توسط پورت گیرنده برای نصب سایت با توجه به مشخصات الکتریکی استفاده می شود
  • BIST(خودآزمایی داخلی) شی داده(BDO) - برای آزمایش اتصال برای اتصال با توجه به مشخصات اتصال فیزیکی استفاده می شود
  • شی داده فروشنده(VDO) - برای انتقال اطلاعات غیر استاندارد، تکمیلی یا سایر اطلاعات اختصاصی که توسط سازنده مشخص شده است به عنوان دارای مشخصات USB PD خارج از محدوده استفاده می شود.
انواع اعلان‌های اطلاعاتی در اسرع وقت در قسمت نوع پیام سربرگ اعلان کدگذاری می‌شوند:

نکته ای در مورد ویژگی ها
پورت باید ویژگی های خود را هنگام دریافت یک سری اشیاء PDO 32 بیتی گزارش کند. اطلاعات از ظاهر این اشیاء به vikorist منتقل می شود که نشان دهنده قابلیت های دستگاه از جمله توانایی پردازش در حالت دریافت است.
اطلاعات مربوط به ویژگی ها در قالب یک یا چند شیء تهاجمی تحت عنوان:

اطلاعات مربوط به ویژگی ها به موارد زیر منتقل می شود:

  • دستگاه نشان داده می شود تا زمانی که پس از یک فاصله زمانی یک ساعته با کابل مستقیماً متصل شود، پذیرفته شود. Dzherelo ممکن است پس از اتصال تا زمانی که اتصال موفقیت آمیز با برق برقرار شود، به کار سخت خود در امتداد یک خط ادامه دهد، یا RDO با عدم تطابق قابلیت - ناسازگاری ویژگی ها روشن نمی شود.
  • نوع dzherel قبل از پذیرش با استفاده از روش Primus نصب مجدد سایت از منبع برق یا تغییر مشخصات.
  • در پاسخ به پیام های زیر Get_Source_Capیا چیز دیگر درپوش_سینک را دریافت کنید
PDO مسئول مشخص کردن عنصر الکتریکی است که با حداکثر مقادیر مجاز ولتاژ وارد دستگاه ذخیره سازی می شود. به عنوان مثال، یک باتری 2.8-4.1 ولت، یک منبع تغذیه ثابت 12 ولت و غیره نصب شده است. همه اجزای الکتریکی باید حداقل 5 ولت داشته باشند و با توجه به پوست، ممکن است یک پروفایل سازگار با PDO با ویژگی های 5 ولت بخواهید.

عنصر رسانای PDO با نوع ثابت منبع تغذیه 5 ولت همیشه می تواند ابتدا به داخل بند شیء برود.

ساختار شی PDO:

نوع پوست عمر الکتریکی ویژگی های متفاوتی دارد.

Postiynyنوع منبع برق، ولتاژ ثابت است. Dzherelo vinne مادر یکی از این عناصر را می خواهد:

برنامه نويسينوع منبع برق، ولتاژ را می توان با منبع تغذیه در محدوده بین حداقل و حداکثر تنظیم کرد:

متغیرنوع منبع برق، ولتاژ می تواند بین حداقل مطلق و حداکثر مطلق متفاوت باشد یا قابل تنظیم باشد:

باتری، از این نوع برای تخصیص باتری هایی استفاده می شود که می توانند مستقیماً به خط VBus متصل شوند:

یادداشتی در مورد پرسیدن
اطلاعات مربوط به منبع تغذیه قبل از انتقال توان آن در مرحله نصب به دلیل تامین برق منتقل می شود. این اطلاعات بر اساس اطلاعات مربوط به ویژگی ها است و ممکن است حاوی یک یا چند شی تامین داده باشد - RDO که اطلاعاتی را در مورد ویژگی های الکتریکی لازم گیرنده توصیف می کند.

این منبع تغذیه با توجه به نوع و نوع منبع تغذیه ای که به آن اشاره می شود دارای دو نوع می باشد که در اطلاعات مربوط به مشخصات دستگاه ارائه شده است. برای کاربردهای یک عنصر الکتریکی از نوع ثابت یا متغیر، یا برای باتری، فیلدهای «جریان/توان عملیاتی» و «جریان کل/ولتاژ برق» با یک مسیر تفسیر می‌شوند و برای کاربردهای یک عنصر نوع برنامه‌ریزی‌شده - توسط مسیر دیگر، پس در این مورد نوشته شده است آرامش و تنش، و قدرت جریان.

ساختار شی RDO:

به نظر من، این اطلاعات برای رد صلاحیت اظهارات در مورد اصول عملکرد USB Power Delivery کافی است. من از گم نشدن در شبکه، مرتبط با تایمرها، پزشکان و بخشش آگاهم.

قابلیت همکاری با USB سنتی

همانطور که قبلاً مشخص بود، Power Delivery یک زیرسیستم مستقل است که به صورت موازی و مستقل از USB معمولی کار می کند. زمان بندی کمتر نیست، اگر دستگاه ها دو پروتکل - USB و Power Delivery را اجرا کنند، مشخصات اجرای به اصطلاح را توصیه می کند. System Policy Manager یا SPM، مؤلفه ای که می تواند مالکیت USB PD را بر منابع تغذیه USB سنتی کنترل کند.

برای سیستم‌هایی که از SPM پشتیبانی می‌کنند، مشخصات پیشنهاد می‌کند اطلاعات PD را با استفاده از انواع خاصی از توصیف‌گرهای USB تهیه کنید. برای من اهمیتی نمی دهد که به جزئیات آنها بپردازم، فقط نام آنها را ویرایش می کنم:

  • توصیف کننده قابلیت تحویل نیرو، این یک توصیفگر سهام BOS است و به شما اطلاع می دهد که آیا دستگاه از شارژ باتری از طریق USB پشتیبانی می کند و از استاندارد USB PD پشتیبانی می کند، که ممکن است یک نیاز نجات دهنده باشد و ممکن است پذیرفته شود. علاوه بر این، این توصیفگر حاوی اطلاعاتی درباره تعداد پورت‌ها، گیرنده‌ها و نسخه‌های مشخصات شارژ باتری USB و تحویل نیرو است که پشتیبانی می‌شوند.
  • توصیف کننده قابلیت اطلاعات باتری, مورد نیاز برای همه دستگاه ها, همانطور که گفته شد باتری یکی از عناصر الکتریکی است. اطلاعاتی درباره نام، شماره سریال و ژنراتور باتری، ظرفیت آن و همچنین مقادیر آستانه برای جریان در حالت شارژ و دشارژ وارد کنید.
  • توصیف کننده قابلیت بندر مصرف کننده PD، برای همه دستگاه ها مورد نیاز است، همانطور که بیان کردند، آنها یک پورت گیرنده را می خواهند. اطلاعاتی در مورد پشتیبانی از استانداردهای تحویل نیرو و شارژ باتری، حداقل و حداکثر ولتاژ، فشار عملیاتی، حداکثر فشار اوج و حداکثر ساعتی که اوج استرس را می توان تجربه کرد، ارائه دهید.
  • توصیف کننده قابلیت بندر ارائه دهنده PD، برای همه دستگاه ها لازم است، همانطور که در پشتیبانی از یک port-gerel of life بیان شد. اطلاعاتی درباره پشتیبانی از استانداردهای تحویل نیرو و شارژ باتری، و همچنین فهرستی از تمام اشیاء PDO که عناصر الکتریکی موجود در دستگاه را مشخص می‌کنند، ارائه دهید.
  • توصیفگر نیاز به توان PD، برای همه دستگاه های گیرنده ای که از USB PD پشتیبانی می کنند لازم است. اگر می‌خواهید یک توصیفگر در انبار توصیفگر پیکربندی باشد، دستگاه باید بچرخد. این توصیفگر باید بلافاصله بعد از اولین توصیفگر به رابط برود. به این ترتیب، لازم است پس از اولین توصیف کننده پوستی به رابط تابع، که توسط IAD تعیین می شود، یا در مورد یک دستگاه ترکیبی بدون IAD، بلافاصله پس از توصیف کننده پوستی به رابط، و به توصیفگر نقطه پایانی IV.
برای اجرای USB Power Delivery از طریق منابع تغذیه USB، اگر دستگاه از کلاس Power Delivery پشتیبانی می کند، مشخصات دستوراتی را معرفی می کند که می تواند برای انتقال برق PD به اشیا از طریق USB یا از طریق گذرگاه داده استفاده شود. جدول زیر نشان داده شده است:

ویسنووک

امیدوارم با این پست من علاقه عمومی را به USB Power Delivery برانگیخته باشم. من متواضعانه قدردانی می کنم که نویسنده به این مشخصات بسیار متعهد است، بنابراین من آماده هستم به شما اطلاع دهم که آیا تحویل برق توسط یک مانع USB محافظت می شود یا خیر.

دستگاه های جانبی مانند ماوس، صفحه کلید، دوربین وب و چاپگر از طریق پورت های USB به رایانه متصل می شوند. اغلب اتفاق می افتد که تعدادی از پورت ها کار نمی کنند. به عنوان مثال، هنگام اتصال به رایانه، درایو فلش شناسایی نمی شود، صفحه کلید و خرس ممکن است یخ بزنند، و چاپگر ممکن است با صفحات دیگر مطابقت نداشته باشد.

دلایل واضحی وجود دارد که چرا برخی یا همه پورت های USB روی رایانه کار نمی کنند. بیایید سعی کنیم تغذیه را درک کنیم و بفهمیم که برای بازگرداندن عملکرد طبیعی رایانه چه باید کرد.

بررسی و تنظیم بایوس

لطفا اول از همه به تنظیم بایوس کامپیوتر توجه کنید. برای ورود به بایوس به یک صفحه کلید اختصاصی نیاز دارید. اگر صفحه کلید از طریق USB به رایانه متصل است و کار نمی کند، باید صفحه کلید را با کانکتور PS/2 وصل کنید. در غیر این صورت، شما به سادگی نمی توانید چیزی به دست آورید.

اکنون وارد BIOS می‌شویم و درست قبل از راه‌اندازی کامپیوتر، باید کلید ورود را فشار دهید، با DEL تماس بگیرید. ممکن است کلید دیگری روی صفحه ظاهر شود که روی مادربرد کاربر مشخص شده است. پس از ارتقاء به BIOS، بخشی را پیدا کنید که نشان دهنده دستگاه یکپارچه (تجهیزات جانبی یکپارچه) یا بخش "پیشرفته" است. در اینجا می توانید بخش "پیکربندی دستگاه های داخلی" را پیدا کنید. همچنین پارامترهایی وجود دارد که عملکرد کنترلرهای USB را نشان می دهد: عملکرد USB یا کنترلر USB 2.0. این پارامترها باید روشن شوند (فعال). اگر یکی از آنها غیرفعال است، به آن اشاره کنید و Enter را فشار دهید و در نتیجه آن را بکشید. برای اطمینان از گم نشدن تغییراتی که ایجاد می کنید، باید با فشردن F10 آنها را ذخیره کنید و با فشار دادن کلید Y یا Enter ذخیره را تایید کنید.

پس از راه اندازی مجدد رایانه، بررسی می کنیم که از کدام پورت های USB استفاده شده است. و به هر حال علت را در جای دیگری جستجو کنید.

پورت های USB در پنل جلویی کامپیوتر کار نمی کنند

در نتیجه، ممکن است نتوانید از کانکتورهای USB در پنل جلویی استفاده کنید. در چنین شرایطی باید بررسی کرد که کانکتورهای لازم روی مادربرد متصل هستند و آسیبی به آنها وارد نشده است. برای این منظور درب اصلی یونیت سیستم را باز کرده و به کانکتور پایین مادربرد توجه می کنیم. روی خود برد می گوید USB1 یا USB2، درست مثل چاه. سیم از بلوک به پانل جلویی می رود و اگر در یک مکان وصل یا شکسته شود، شما علت خرابی را شناسایی کرده اید. قطعات آسیب دیده باید ترکیب یا جایگزین شوند. ما می خواهیم تماس روی کانکتور روی مادربرد را بررسی کنیم. همین امر در مورد برد واقع در پانل جلویی نیز صدق می کند. ممکن است قبل از صحبت مکث کوتاهی وجود داشته باشد، چنین مکثی ممکن است توسط اره ای که خسیس است تحریک شود. بنابراین، تمیز کردن واحد سیستم قبل از اره بسیار آسان است.

مشکل با خود دستگاه و کابل

رایج ترین مشکل USB ممکن است کابل هر اتصال دیگری، به عنوان مثال، یک چاپگر باشد. این ناهماهنگی به راحتی قابل تشخیص و رفع است. ما درایو فلش را به دوشاخه می آوریم و آن را بررسی می کنیم. اگر این کار کرد، سعی می کنیم آن را به کابل مناسب دیگری مانند هاب USB وصل کنیم. اگر هم امکان کار وجود دارد دلیلش در کابل مشخص است و رد آن باید تعویض شود.

اختلال در غذا

چنین شرایطی زمانی با شکست مواجه می شوند که به سادگی هیچ منبع حیاتی برای همه دستگاه ها وجود نداشته باشد. برای مثال، اگر یک هارد دیسک خارجی را که دارای دو درگاه USB مشترک است وصل کنید، ممکن است چاپگر یا صفحه کلید کار نکند. در این زمان، بلوک حیاتی به اندازه کافی قوی نیست که انرژی همه ساکنان را تضمین کند. در این مورد، ممکن است مشکل نه بلافاصله، بلکه در عرض یک ساعت پس از روشن شدن رایانه ظاهر شود. هیچ راهی برای خروج از وضعیت وجود ندارد. اگر یک منبع تغذیه کم نصب کرده اید، به عنوان مثال، 300 وات، منطقی است که آن را به یک واحد قدرت بالاتر، 450-600 وات تغییر دهید. همچنین می توانید از هاب USB فعال (از منابع دیگر) استفاده کنید. شما نه تنها می توانید تعداد دستگاه های USB متصل شده را افزایش دهید، بلکه آنها را از واحد مسکونی مجاور نیز تغذیه کنید.

دلیل دیگر تمام شدن شارژ USB باتری CMOS است که بسیار قوی است. در این صورت وقتی کامپیوتر را روشن می کنید مراقب باشید که ساعت و تاریخ سیستم از کار افتاده باشد. بعد از تعویض باتری مشکل برطرف شد. این اغلب اتفاق نمی افتد، بنابراین باید سایر خطاهای احتمالی را بررسی کنید.

درایورهای USB گم شده یا نادرست نصب شده اند

علل مرتبط با مشکلات نرم افزاری در ویندوز 7/10 را می توان با استفاده از Device Manager شناسایی کرد. اگر توجه داشته باشید که یک یا چند دستگاه به طور خاص مستقل از پورت کار نمی کنند، می توانید بگویید که مشکل در خود دستگاه است. پنل اینترنت را باز کنید و به قسمت Device Manager بروید. تمام اتصالات دستگاه در آنجا نمایش داده می شود. اگر لیست مواردی دارد که شامل یک علامت زرد یا یک دستگاه نامرئی است، پس مشکل در خود دستگاه است. ممکن است تعدادی از مشکلات احتمالی در اینجا وجود داشته باشد.

اغلب ورودی های USB پس از نصب مجدد ویندوز 7/10 کار نمی کنند. دلیل آن این است که درایورها اشتباه نصب شده اند یا ممکن است درایورهای لازم پیدا نشوند. شما باید انتخاب و نصب را به صورت دستی انجام دهید.

اغلب، برای حل مشکل، فقط باید درایورها را به روز کنید. بنابراین، اگر به روز رسانی خودکار ویندوز فعال باشد و خود سیستم برای مدت طولانی نصب شده باشد، ارتباط نرم افزار از بین می رود و ممکن است خطاهای سیستم ظاهر شود. در این حالت، دستگاه شروع به عملکرد نادرست می کند یا حتی به طور کلی کار نمی کند. برای به روز رسانی (نصب مجدد) درایورهای کنترلر USB، می توانید CD/DVD را با درایورهای مادربرد دانلود کنید یا درایورهای لازم را از وب سایت سازنده مادربرد دانلود کنید.

همچنین با کمک مدیر دستگاه می توانید عملکرد ذخیره انرژی را برای همه پورت ها روشن کنید. فهرست دستگاه‌هایی را که می‌توانید بررسی کنید، در بخش‌های «کنترل‌های USB»، «موس و سایر دستگاه‌ها»، «صفحه‌کلیدها» باز کنید. روی دستگاه مورد نیاز کلیک می کنیم تا پنجره مقامات باز شود. اکنون به تب "مدیریت برق" بروید و کادر "Allow this device to be connect to صرفه جویی در مصرف برق" را انتخاب کنید. به این ترتیب، برای شروع اقدامات و برای هر شرایطی ترتیب خواهیم داد.

اگر دستگاه شناسایی نشود، همانطور که قبلاً می دانیم ممکن است مشکلی در درایورها یا مشکل سخت افزاری تأثیرگذار بر تماس، کابل آسیب دیده یا عملکرد نادرست کنترل وجود داشته باشد. علاوه بر این، اغلب زمانی اتفاق می‌افتد که وقتی یک دستگاه معیوب وصل می‌شود، بقیه به طور عادی کار نمی‌کنند. صفحه کلید مانند خرس عروسکی شروع به یخ زدن می کند و چاپگر از کار می افتد. مشکل مشابه کمبود انرژی است، زمانی که تمام تلاش به سمت یک دستگاه معیوب می رود که ممکن است اتصال کوتاه یا نقص دیگری در آن وجود داشته باشد.

پورت های USB از طریق خرابی کنترلر پردازش نمی شوند

اگر نمی توانید عملکرد پورت های USB را تأیید کنید، باید کنترلر USB مادربرد خود را بررسی کنید، که ممکن است اشتباه کند. تعمیرات و تشخیص دقیق در این مورد باید به مرکز خدمات سپرده شود. به عنوان راه حلی برای حل مشکل، سعی کنید یک کارت توسعه به نام کنترلر USB PC نصب کنید که در کانکتور PCI روی مادربرد نصب شده است. این راه حل برای تعمیر کنترلر USB مادربرد به طور قابل توجهی ارزان تر است و اگر هاب USB اضافی را جایگزین کنید، مشکل پورت های از دست رفته دیگر مطرح نخواهد بود.

همانطور که می بینید، درگاه های USB در سمت راست مشکلات زیادی دارند و ممکن است دلایل زیادی برای این وجود داشته باشد. آخرین جستجو و حذف راه های آشکارا نادرست به شما امکان می دهد مشکل را شناسایی و برطرف کنید.

هنگامی که یک درایو فلش 3.0 را به رایانه ای که از پورت های USB 3.0 پشتیبانی می کند وصل می کنیم، به شما اطلاع می دهیم. این دستگاه در صورت اتصال به USB Super-Speed ​​3.0 می تواند سریعتر کار کنددوستان این به این معنی است که یا فلش درایو را در پورت USB 3.0 قرار نمی دهیم (با زبانه آبی) یا در عملکرد آنها مشکلی وجود دارد و آنها در حالت USB 2.0 کار می کنند. دلایل مشکلات عملکرد پورت های USB 3.0 در رایانه ها چیست و چگونه چنین مشکلاتی رخ می دهد، سعی می کنیم آمار فعلی را بررسی کنیم.

اجازه دهید حدس بزنم، پهنای باند رابط USB 2.0 60 مگابیت بر ثانیه است و USB 3.0 10 برابر بیشتر، 625 مگابیت بر ثانیه است. البته، دستگاه‌های ذخیره‌سازی کمیاب و محبوبی که به پورت‌های USB 3.0 رایانه متصل می‌شوند باید بین قابلیت‌های این رابط کار کنند، در غیر این صورت صرفه‌جویی در هزینه‌ها برای سایر دستگاه‌ها مهم است. بنابراین، برای مثال، بسیاری از مدل های فعلی هارد دیسک های خارجی در رابط USB 3.0 می توانند به سرعت خطی 100-170 مگابیت بر ثانیه دست یابند. بله، مانند اتصال هارد دیسک های داخلی به رابط SATA. همچنین در رابط USB 2.0 سرعت خطی هارد اکسترنال به 30 مگابایت بر ثانیه محدود شده است. درایوهای فلش 3.0 روی رابط USB 3.0 داده ها را 2 تا 3 برابر سریعتر می نویسند و 3 تا 5 برابر سریعتر می خوانند. قبل از سخنرانی، به طور مفصل در مورد سرعت فلش درایوهای رابط USB 2.0 و 3.0 صحبت کردیم. لطفا، دوستان، از آنجایی که شما یک دستگاه ذخیره سازی قابل توجه 3.0 دارید، احترام می گذارم که مفید بودن درگاه USB 3.0 را درک کنید، زیرا مشکلاتی در آن وجود دارد - در سمت راست بایستید.

تنظیم در بایوس

پورت‌های USB 3.0 می‌توانند مطابق با قابلیت‌های USB 2.0 عمل کنند، همانطور که در BIOS پیکربندی شده است. این نکته از قبل باید بررسی شود. ما به بایوس می رویم و متوجه می شویم که پورت های USB در کجا پیکربندی شده اند، بخش افزونه تنظیمات پیشرفته و زیربخش تنظیمات USB را انتخاب می کنیم. یا اسم های مشابه چطور؟ در اینجا باید بررسی کنید که آیا پشتیبانی USB 3.0 فعال است یا خیر. پارامتر پشتیبانی USB 3.0 به دلیل مقدار Enable است. مقدار Enable را می‌توان در پارامتر hand-off XHCI نیز یافت که ممکن است حالت پیش از راه‌اندازی XHCI، به سادگی XHCI یا چیز دیگری نامیده شود، به جز وجود عبارت کلید XHCI.

XHCI یک کنترلر USB 3.0 نیست و از آنجایی که BIOS گزینه پشتیبانی از این رابط از نوع پشتیبانی USB 3.0 را اجرا نمی کند، درج/غیرفعال کردن آن توسط کنترلر اجرا می شود. در برخی از مادربردها، پارامتر کنترلر XHCI ممکن است مقادیر دیگری از نوع "Auto" یا "Smart Auto" داشته باشد، که اطمینان حاصل می کند که درگاه های USB 3.0 در حالت 2.0 کار می کنند تا زمانی که سیستم عامل به درایورهای USB 3.0 خود مجهز شود. و چنین مقادیری باید توسط سازندگان دستگاه های رایانه ای تنظیم شود تا امکان کار با رابط USB فعلی در سیستم عامل ها را فراهم کند، که از نصب برخی از آنها جلوگیری می کند، زیرا کیت توزیع دارای درایورهای USB 3.0 نیست. . زیباترین نمونه بیلدهای رسمی ویندوز 7 است که مشکل انواع درایورها مطرح و حل شده است. اگر، دوستان من، رایانه یا لپ‌تاپ شما ویندوز 7 را بدون درایورهای USB 3.0 یکپارچه نصب کرده است و دارای پورت‌های USB 2.0 فعال (با زبانه سیاه) است، می‌توانید با خیال راحت تنظیمات کنترلر XHCI را روی Enable قرار دهید. هنگام نصب سیم کارت، فراموش نکنید که فلش مموری باید در پورت USB 2.0 قرار داده شود.

به روز رسانی درایور

در ویندوز، رابط USB 3.0 به دلیل پیش پا افتاده نصب نادرست درایور کنترلر می تواند در سطح USB 2.0 کار کند. این مشکل صرف نظر از روش های مقابله با درایورهای نصب شده نادرست - یا به روز رسانی آنها یا نصب مجدد آنها ایجاد می شود. Vikorist برای عملکرد کامل ویندوز. به مدیر دستگاه بروید. چک باکس "USB Controller" را باز کنید. برای گسترش بر روی کنترلر میزبان کلیک کنید. اغلب به عنوان "Intel(R) USB 3.0 Host Controller Expandable" فهرست می شود و در مورد ما، برای مثال، سازنده آن شرکت ژاپنی Renesas است. روی منوی زمینه جدید کلیک کنید و به روز رسانی درایور را انتخاب کنید.

بیایید آن را با حداقل انجام دهیم:
شامل 18f2455 - کتابخانه برای vikorystovy MK
--
enable_digital_io() - تغییر همه ورودی ها به حالت دیجیتال
--
نام مستعاردکمه استپین_B7 - اگر قبلاً یک دکمه متصل شده باشد، به її رأی می دهیم
pin_B7_direction = ورودی - دکمه ما برای ورود به سیستم کار می کند
--
-- یک ردیف - و ما همه چیزهایی را که برای کار با USB CDC نیاز دارید در اختیار داریم
شامل usb_serial - کتابخانه برای کار USB
--
usb_serial_init() --- USB CDC را راه اندازی می کند
حلقه برای همیشه- چرخه اصلی، به تدریج به پایان می رسد
usb_serial_flush() - به روز رسانی USB این روش شامل تمام موارد لازم است
- پشتیبانی از اتصال به کامپیوتر
حلقه پایانی

با کامپایل کردن این کد، نوشتن فایل HEX در MK با استفاده از یک بوت لودر اضافی و راه اندازی دستگاه، می توانید نحوه تخصیص یک دستگاه جدید به سیستم را مشاهده کنید: Virtual com port.

اکنون، زمانی که دستگاه کار می کند، شروع به مایع شدن می کند.

برای خواندن بایت دریافتی، از تابع main استفاده کنید usb_serial_read(بایت ) :بولی. اگر یک بایت حذف شده است، لطفاً آن را در مقدار مشخص شده وارد کنید و آن را بچرخانید درست است، واقعی، در غیر این صورت می چرخد نادرست.

برای اضافه بارگذاری یک بایت، از روش زیر استفاده کنید: usb_serial_data. به عنوان یک متغیر پنهان شده است، بنابراین برای ارسال یک بایت کافی است که مقدار بایتی که ارسال می شود را به آن اختصاص دهید.

اندازه بایت قبل از حلقه اصلی، در حلقه اصلی بررسی می‌شود که آیا بایت‌ها حذف شده‌اند یا خیر، و اینکه آیا دوباره ارسال شده‌اند.

شامل 18f2455
--
enable_digital_io()
--
نام مستعاردکمه استپین_B7
pin_B7_direction = ورودی
--
--
شامل usb_serial
--
usb_serial_init()
var بایتفصل - من برای تغییر کر کننده هستم
حلقه برای همیشه- چرخه اصلی
usb_serial_flush()
اگر(usb_serial_read(ch)) سپس- اگر یک بایت حذف شود، هیچ رکوردی از ch وجود نخواهد داشت
usb_serial_data = ch -- امکان انتقال بایت ها به عقب وجود دارد
پایان اگر
حلقه پایانی

ما کامپایل می کنیم، دکمه را فشار می دهیم، عمر را تغییر می دهیم، بوت لودر را راه اندازی می کنیم، سیستم عامل را تغییر می دهیم، راه اندازی می کنیم.
دستگاه دوباره در سیستم ظاهر شده است، اکنون برای اعتراض به دستگاه نیاز به نرم افزار داریم.

در حالی که ما مال خود را نداریم، از یک ترمینال آماده استفاده می کنیم: من از برنامه RealTerm استفاده می کنم.
پورت را با تعداد مورد نیاز باز می کنیم و داده ها را اضافه می کنیم.


و ما باید کسانی را پیدا کنیم که ما را راهنمایی کردند. خوب، همه چیز همانطور که باید کار می کند.

نرم افزار

خوب، میکروکنترلر ما می‌تواند بایت‌ها را دریافت کند و بلافاصله آنها را بازگرداند. حالا بیایید نرم افزار خودمان را بنویسیم تا با آن ترکیب شود (من از دلفی استفاده می کنم).

ما در حال ایجاد یک پروژه جدید هستیم که اجزای لازم را به شکل زیر پراکنده می کند:
SpinEdit1 – برای درج شماره پورت
دکمه 1 - برای درج اتصال
دکمه 2 - برای اتصال rozrivru
SpinEdit2 - برای وارد کردن یک بایت در نمای دهم
Button3 - برای ارسال یک بایت
Memo1 – برای نمایش اطلاعات دریافتی.

همانطور که قبلاً در بالا گفته شد، باید مانند یک فایل متنی معمولی با پورت com رفتار کنید: توابع ویکی CreateFile، WriteFile و ReadFile.

بدون پرداختن به جزئیات، بیایید یک کتابخانه آماده برای کار با پورت com در نظر بگیریم: ComPort.

داده های لازم روی دکمه پوست فشار داده می شود و کد پایانی را می توان حذف کرد:

واحد واحد 1;

رابط

استفاده می کند
ویندوز، پیام‌ها، SysUtils، انواع، کلاس‌ها، گرافیک‌ها، کنترل‌ها، فرم‌ها،
Dialogs، StdCtrls، Spin، ComPort.

تایپ کنید
TForm1 = کلاس (TForm)
SpinEdit1:TSpinEdit;
دکمه 1: TButton;
Button2: TButton;
SpinEdit2:TSpinEdit;
Button3: TButton;
Memo1: TMemo;
رویه OnRead(فرستنده: TObject؛ ReadBytes: آرایه بایت).
رویه Button1Click(فرستنده: TObject);
procedure Button2Click(فرستنده: TObject);
روش FormDestroy(فرستنده: TObject);
procedure Button3Click(فرستنده: TObject);
خصوصی
(اعلامیه خصوصی)
پورت: TComPort;
عمومی
(اعلامیه های عمومی)
پایان؛

var
Form1: TForm1;
num:integer;
پیاده سازی

روش TForm1.Button1Click(فرستنده: TObject);
شروع
Port:= TComPort.Create(SpinEdit1.Value, br115200); //ایجاد اتصال
Port.OnRead:= OnRead; //جریان خواندن داده های دریافتی ایجاد کنید
Button2.Enabled:= true; //دکمه بستن را فعال کنید
پایان؛

روش TForm1.Button2Click(فرستنده: TObject);
شروع
Port.Free; //اتصال را می بندد
Button2.Enabled:= false ; //دکمه را روشن کنید
پایان؛

روش TForm1.Button3Click(فرستنده: TObject);
شروع
اگر Button2.Enabled سپس Port.Write();
پایان؛

روش TForm1.FormDestroy(فرستنده: TObject);
شروع
اگر Button2.Enabled پس
Port.Free;
پایان؛

روش TForm1.OnRead(فرستنده: TObject؛ ReadBytes: آرایه بایت).
var
i:integer;
شروع
برای i:= Low (ReadBytes) تا High (ReadBytes) انجام دهید // توسط آرایه بایت های دریافتی عبور می کند
شروع
Memo1.Text:= Memo1.Text + "." +InttoHex(ReadBytes[i],2); //این مقدار HEX را به پنجره اضافه کنید
inc(num); //تعداد بایت های دریافتی مهم است
پایان؛
اگر عدد > 10 باشد، شروع کنید
Memo1.Lines.Add(""); //ردیف قابل انتقال
تعداد: = 0;
پایان؛
پایان؛

راه اندازی، اتصال نصب شده، بایت های ارسال شده:

محور آماده است، ساده ترین ترمینال ما برای کار با ساده ترین دستگاه USB.

ظاهرا خواندن و نوشتن با استفاده از آرایه های بایت پویا انجام می شود.

با پردازش اطلاعات گرفته شده، می توانید پروتکل تبادل لازم را که به ترتیب جریان پیوست شده است اضافه کنید.

شامل 18f2455
--
enable_digital_io()
--
نام مستعاردکمه استپین_B7
pin_B7_direction = ورودی
--
--
شامل usb_serial
--
usb_serial_init()
var بایتفصل
var بایتمن - من دارم برای دوستم فریاد می زنم
حلقه برای همیشه- چرخه اصلی
usb_serial_flush()
اگر(usb_serial_read(ch)) سپس-- اگر بایت حذف شده باشد، این به معنای اقدامات لازم است
مورد ch از - روی تعداد بایت تکرار کنید
0: usb_serial_data = 0xff
1: usb_serial_data = دکمه -- دکمه ها را فشار می دهم
در غیر این صورت مسدود کردن- آنچه حذف شده است متفاوت است
برای 16 استفاده كردنمن حلقه- 10 بایت داده ارسال می شود
usb_serial_data = ch +i - از ch تا ch +15
حلقه پایانی
بلوک انتهایی
مورد نهایی
پایان اگر
حلقه پایانی

امکانات اضافی

اگر به آن نگاه کنید، مقاله ای ساده با شرح مفصلی از کتابخانه لب به لب را مشاهده خواهید کرد که در وسعت جهان تعداد زیادی از آن وجود دارد. من کمی اطلاعات خراب تر به شما می دهم.

آمرزش بر قوت خراج

ارسال اطلاعات یک بایت در یک زمان دیگر دستی نیست. اغلب اوقات می توانید از کتابخانه بهره مند شوید چاپ. شما باید از فرمت های مختلفی برای پردازش داده ها استفاده کنید: بایت، هگز، دس، بین، بولی که می تواند نمایش داده ها را در برنامه ساده کند.
> شامل چاپ
...
var dwordداده ها
print_dword_hex (داده_سریال_usb، داده)

نام تمام دستورات را می توان در فایل کتابخانه پیدا کرد.

اتصال پیشرفته به کامپیوتر

اگر قبل از شروع چرخه اصلی میکروکنترلر لازم است ابتدا با رایانه شخصی ارتباط برقرار کنید، می توانید ردیف هایی را در جلوی آن اضافه کنید.
در حالی که(usb_cdc_line_status() == 0x00) حلقه
حلقه پایانی

به شماره پورت پیوست اختصاص داده شده است

برای حذف همه چیز، سیستم اولین شماره پورت موجود را برای هر اتصال جدید می بیند. و این بدان معناست که در آینده باید او را دنبال کند.
برای اطمینان از اینکه چیزی درخواست نمی شود، لازم است قبل از اتصال کتابخانه usb یک شماره سریال منحصر به فرد به دستگاه اختصاص دهید:
عدد می تواند از هر نوع باشد و دارای نمادهای مختلف باشد.
بایت const USB_STRING3 =
{
24 , - توده دوژینا
0x03، -- bDescriptorType
"0" , 0x00 ,
"1" , 0x00 ,
"2" , 0x00 ,
"3" , 0x00 ,
"4" , 0x00 ,
"5" , 0x00 ,
"6" , 0x00 ,
"7" , 0x00 ,
"8" , 0x00 ,
"9" , 0x00 ,
"ایکس" 0x00
}

من می توانم نام را تغییر دهم و آن را به تنهایی نصب کنم

قبل از نصب درایورها می توانید نام دستگاهی را که در سیستم قابل مشاهده است تغییر دهید، می توانید آرایه نام ها را مانند شماره سریال انتخاب کنید، اما این کار باید قبل از اتصال کتابخانه USB انجام شود.
بایت const USB_STRING2 =
{
28 , --
0x03، -- bDescriptorType
"د", 0x00 ,
"e", 0x00 ,
"م", 0x00 ,
"o", 0x00 ,
" " , 0x00 ,
"ب", 0x00 ,
"o", 0x00 ,
"آ", 0x00 ,
"ر", 0x00 ,
"د", 0x00 ,
" " , 0x00 ,
"=" , 0x00 ,
")" 0x00
}

حیف شد پس از نصب درایورهای دستگاه، نام ها را همانطور که در فایل .inf مشخص شده تغییر دهید، سپس می توانید نام ها را در آنجا تغییر دهید.


DESCRIPTION="CDC آزمایشی"

ما اتصال خودکار به دستگاه را سازماندهی می کنیم

متأسفانه، هیچ مسیر مستقیمی به Vikonati tse Zavod وجود ندارد، بنابراین او باید حیله گر باشد.

ابتدا باید به دستگاه خود یک درایور و محصول منحصربفرد بدهیم تا بتواند به راحتی صدها سیستم عامل CDC استاندارد دیگر را تشخیص دهد.
VID ها و PID ها یک پنی بسیار هزینه دارند، بنابراین اجازه دهید از راه چینی ها عبور کنیم: معانی کاملاً واضح است.

سیستم عامل:
قبل از اتصال کتابخانه USB، سیستم عامل باید با دو تغییر به روز شود

کلمه const USB_SERIAL_PRODUCT_ID = 0xFF10
کلمه const USB_SERIAL_VENDOR_ID = 0xFF10

به جای FF10 می توانید دو کلمه (2 بایت) وارد کنید. نتیجه نهایی در آرشیو موجود خواهد بود.

رانندگان:
قطعات درایور برای ترکیب VID و PID ما شناسایی نمی شوند، بیایید مقادیر خود را به صورت دستی به فایل inf. اضافه کنیم:


%DESCRIPTION%=درایور نصب، USB\VID_FF10&PID_FF10


%DESCRIPTION%=درایور نصب، USB\VID_FF10&PID_FF10

نرم افزار:
برای اتصال برق/اتصال دستگاه، باید کتابخانه ComponentUSB را وصل کنیم. من به نیاز به توضیح ردیف پوست احترام نمی گذارم: همه تغییرات را می توان در پروژه ایجاد کرد، که اضافه شده است.

نتیجه

در اسکرین شات به سختی می توان دید که دکمه ویرایش تنها زمانی فعال است که یک دستگاه متصل وجود داشته باشد، در این مرحله برنامه برق را در عرض 50 میلی ثانیه به دکمه آزاد کردن دکمه می فرستد (که البته نادرست است، زیرا فشار دادن دکمه می تواند منعکس شود. در MK).

ظاهراً سازماندهی تبادل داده بین MK و PC از طریق USB دشوارترین کار نیست. این اتصال نه تنها برای اهداف نهایی قابل استفاده است: بلکه برای توسعه برنامه ها نیز مناسب است. اگر می‌خواهید نتایج بسط‌ها، ثبت‌ها و تغییرات را به رایانه ارسال کنید، یک جفت LED با کد مورس چشمک بزنید.

و در آخر: راجا به کد خروجی لامپ نگاه کنید و آن را تنظیم کنید. در آنجا می توانید گزینه خوبی برای پردازش داده ها برای سازماندهی پروتکل مبادله دستی پیدا کنید.