ইউএসবি স্পেকটি ঠিক কোথায় যেখানে কেবল তার সাথে প্রথম সংযুক্ত হওয়ার পরে কী করতে হবে তা বোঝায়?


15

সুতরাং আমি ইউএসবি.এস সাইটে অবস্থিত ইউএসবি 2.0 স্পেক সম্পর্কে জানি ।

আমি একটু অলস এবং অধৈর্য। কেউ কি আমাকে বলতে পারবেন যে আমার পেরিফেরাল ডিভাইসটি যখন ইউএসবি তারের সাথে সংযুক্ত থাকে তখন ঠিক কী প্রত্যাশা করা হয় তা জানতে কোথায় যেতে হবে?

উদাহরণস্বরূপ, যদি আমার পেরিফেরাল ডিভাইস প্রিন্টার হয় তবে আমি অন্য প্রান্তে কম্পিউটারকে কীভাবে বলতে পারি যে একটি প্রিন্টার (একটি নির্দিষ্ট মডেলের বিবরণ সহ, আমি মনে করি) সবেমাত্র সংযুক্ত হয়েছে? কম্পিউটার কম্পিউটারে প্রিন্টার ড্রাইভার কীভাবে জানতে পারে যে কোন ইউএসবি পোর্টটি প্রিন্টারের সাথে সংযুক্ত ছিল?

আমার অ্যাপ্লিকেশনটি আসলে ইউএসবি এমআইডিআই। আমি এই ইউএসবি-এমআইডিআই ডকটিও অর্জন করেছি , তবে আমি আরও মৌলিক ইউএসবি প্রোটোকলের ঘাটতি।

কেবলমাত্র জনগণের তথ্যের জন্য, আমি যে ইউএসবি চিপটি ব্যবহার করছি তা হ'ল এফটিডিআই এফটি 220 এক্স এবং এটি একটি এডিএসপি -21479 এসএইচসি-র এসপিআই-তে সংযুক্ত। আমরা এখন এটি পিসি (টেরাটার্ম চলমান) "কনসোল" হিসাবে টেক্সট যোগাযোগের জন্য সহজভাবে ব্যবহার করি । আমার কাছে এসপিআই পোর্ট সেট আপ করতে এবং এফটিডিআই চিপের সাথে সংযোগ স্থাপনকারী কোডটিতে অ্যাক্সেস রয়েছে তবে প্রাথমিক কোড নেই এমন কোনও কোড নেই। FT220x যখন পিসির সাথে প্রথম যুক্ত হয় তখন আমি কী জানি না I

আমি পড়তে এবং শিখতে অসন্তুষ্ট নই, তবে আমি কোথায় পড়া শুরু করব তা জানতে চাই এবং একটি 100 এমবি ইউএসবি স্পেক লক্ষ্য করা খুব বড় লক্ষ্য। কার্যক্ষম সাহায্যের জন্য কারও আন্তরিক ধন্যবাদ।


1
সুতরাং আপনি কেবল কৌতুহল করছেন যে FTDI FT220x পর্দার আড়ালে কি করছে, তাই না? যেহেতু এফটিডিডিআই আপনার জন্য অনেকগুলি ইউএসবি স্টাফের যত্ন নেয়, এটি আপনাকে কী করতে দেয় তার কিছু সীমাবদ্ধতাও রয়েছে। আমি কিছুক্ষণের জন্য FT2232H পরিবার ব্যবহার করেছি, আমি যা জানি তা ব্যাখ্যা করার চেষ্টা করব ...
মার্ক ইউ

আমি শেষ পর্যন্ত যা করার চেষ্টা করছি তা হল এই ইউএসবি পোর্টটি ব্যবহার করা যা ইতিমধ্যে টেরিটর্ম চলমান পিসিতে পাঠ্য পাঠানোর জন্য যথেষ্ট স্মার্ট, আমি কী আশা করছিলাম এটি ইউএসবি এমআইডিআই করার জন্য একই ইউএসবি সংযোগকারীটি ব্যবহার করবে। আমি কীভাবে 32-বিট প্যাকেটে ডেটা "প্যাকেটাইজ" করব তা বুঝতে হবে , তবে আমি ভেবেছিলাম (এবং এখনও মনে করি) এমন একটি প্রোটোকল থাকতে হবে যা অন্য প্রান্তকে বলবে যে এটি একটি ইউএসবি এমআইডিআই ডিভাইস। (এখনও অবধি, আমার কাছে কেবল ইউএসবি প্রয়োজনীয়
জিনিসগুলির উপর একটি দখল নেই

উত্তর:


21

ইউএসবিতে বেশ কয়েকটি স্তর রয়েছে যা ইউএসবি ২.০ স্পেসিফিকেশনে বর্ণিত । আপনি যদি ওএসআই স্তরযুক্ত নেটওয়ার্ক মডেলটির সাথে পরিচিত হন তবে আপনি এটি এরকমভাবে ভাবতে পারেন:

  • সেশন স্তর = অধ্যায় 10 ইউএসবি হোস্ট হার্ডওয়্যার এবং সফ্টওয়্যার (ডিভাইস ড্রাইভার)
  • পরিবহন স্তর = অধ্যায় 9 ইউএসবি ডিভাইস ফ্রেমওয়ার্ক
  • নেটওয়ার্ক স্তর = অধ্যায় 8 প্রোটোকল স্তর (বিটস্ট্রিম)
  • ডেটা লিঙ্ক স্তর = অধ্যায় 7 বৈদ্যুতিক (সার্কিট)
  • শারীরিক স্তর = অধ্যায় 6 মেকানিকাল (কেবল এবং সংযোজক)

কনসেপ্টলি ইউএসবি ডেটা স্ট্রিমের উপর ভিত্তি করে বলা হয় এন্ডপয়েন্টস , যা হয় (হোস্টের কাছে) বা আউট (হোস্ট থেকে) হতে পারে। প্রতিটি ডিভাইসে এন্ডপয়েন্ট 0 থাকে যা নিয়ন্ত্রণ এবং স্থিতির জন্য ব্যবহৃত হয়। কোনও ডিভাইসে অ্যাপ্লিকেশন ডেটার জন্য অতিরিক্ত সমাপ্তি থাকতে পারে। প্রতিটি শেষ পয়েন্ট একটি ফিফোর বাফারের মতো আচরণ করে।

ডেটা একটি শেষ পয়েন্টে হয় হয় বাল্ক হিসাবে (যেমন টিসিপি / আইপি, প্রতিটি বাইট আসার গ্যারান্টিযুক্ত এবং সঠিক ক্রমে), বা আইসোক্রোনাস (ইউডিপি / আইপি এর মতো, তাজা হওয়ার গ্যারান্টিযুক্ত তবে প্যাকেট ফেলে দিতে পারে)। একটি বিভ্রান্তিকরভাবে " ইন্টারপ্রেট " ট্রান্সফার ধরণের নাম রয়েছে যা সত্যই হোস্ট দ্বারা পোল করা হয়।

ইউএসবি ২.০ ডেটালিঙ্কের জন্য একটি ডিফারেনশিয়াল জুড়ি ব্যবহার করে। আমি ইউএসবি ২.০ স্পেস অধ্যায়টি দ্বারা আচ্ছাদিত হওয়ায় আমি খুব বেশি বিশদে যাব না General ইন্টারফেস) ব্যবহার করা হচ্ছে। ইউএসবি পেরিফেরাল হোস্টকে এটি উচ্চ-গতিযুক্ত বা নিম্ন-গতিযুক্ত পেরিফেরিয়ালকে অবহিত করার জন্য ডি + বা ডি- লাইনগুলির একটিতে একটি উচ্চ মানের প্রতিরোধক ব্যবহার করে।

ইউএসবি হোস্টটি আবিষ্কার করে যে কোনও ডিভাইস উপস্থিত রয়েছে তার শীঘ্রই, হোস্টটি ডিভাইস থেকে বর্ণনাকারীদের একটি গোছা অনুরোধ করে। এটি FTDI চিপ দ্বারা পর্দার পিছনে যত্ন নেওয়া হয়। বিবরণ 9.5 অধ্যায় বর্ণিত হয়েছে । এর মধ্যে রয়েছে ডিভাইস বর্ণনাকারী , কনফিগারেশন বর্ণনাকারী , ইন্টারফেস বর্ণনাকারী , শেষ পয়েন্ট বর্ণনাকারী , স্ট্রিং বর্ণনাকারী , এমনকি এইচআইডি রিপোর্ট বর্ণনাকারী

ডিভাইস বর্ণনাকারী ইউএসবি অন্তর্ভুক্ত পর্ণ (ভেন্ডর সনাক্তকারী) এবং PID, (পণ্য সনাক্তকারী) নম্বর। অপারেটিং সিস্টেমটি এই ডিভাইসের জন্য কোন ডিভাইস ড্রাইভার ব্যবহার করা হবে তা নির্ধারণ করতে এই জোড়া সংখ্যক, ভিআইডিডিআইডিআইডি ব্যবহার করে। নোট করুন যে ভিআইডি নম্বরটি ইউএসবি প্রয়োগকারী ফোরামে সদস্যপদ অর্জনের মাধ্যমে জারি করা হয়, সুতরাং যদি আপনি স্বতন্ত্র উদ্ভাবক হন তবে এ জাতীয় সমস্যা of

অতিরিক্তভাবে, এইচআইডি (হিউম্যান ইন্টারফেস ডিভাইস) শ্রেণীর ড্রাইভার রয়েছে, যা কীবোর্ড / মাউস / ইত্যাদির জন্য কিছু জেনেরিক ইনপুট পাশাপাশি যে কোনও জেনেরিক ইনপুট / আউটপুট সরবরাহ করে। এইচআইডির একটি সুবিধা হ'ল এটির জন্য কাস্টম ডিভাইস ড্রাইভার সরবরাহ করার প্রয়োজন নেই, তবে কাস্টম বাল্ক ড্রাইভারের তুলনায় এর থ্রুপুটটি কিছুটা সীমাবদ্ধ। এইচআইডি বর্ণনাকারীদের সম্পর্কে একটি সম্পূর্ণ অন্যান্য স্পেসিফিকেশন ডকুমেন্ট রয়েছে ; এবং একটি এইচআইডি ব্যবহার সারণী নথি যা প্রদত্ত মানবিক ইন্টারফেসড ডিভাইসে উপলব্ধ বিভিন্ন বৈশিষ্ট্য বর্ণনা করে এমন সমস্ত কোড নম্বরের বিবরণ দেয়।

এফটিডিআই চিপ যেমন এফটি 220 এক্স ডেটাশিটটি ইউএসবি "সিরিয়াল ইন্টারফেস ইঞ্জিন" সরবরাহ করে (এসপিআই সিরিয়াল বা আরএস 232 সিরিয়ালের সাথে বিভ্রান্ত হওয়ার দরকার নেই)। এটি অধ্যায়,,,, এবং ৮-তে বর্ণিত বেশিরভাগ নিম্ন-স্তরের সামগ্রীর যত্ন নেয়।

বিবরণকারীগুলিতে কিছুটা তথ্য থাকে যা FTDI একটি EEPROM ব্যবহার করে (FT2232H এ অফচিপ, FT220X- এ অন চিপ) আপনি ভিআইডি / পিআইডি মানগুলি কাস্টমাইজ করতে পারেন এবং কাস্টম বিবরণ স্ট্রিং সরবরাহ করতে পারেন।


6
আমি সারাংশ পছন্দ। বেশ কয়েক সপ্তাহের মধ্যে আমাকে পুরো 2.0 টি স্পেসটি পড়তে হয়েছিল (1000 টিরও বেশি পৃষ্ঠাগুলি) কারণ আমি নিজেই এই সমস্ত কৃপণতাটি প্রকাশ করতে হয়েছিল। এটি একটি মনোরম অভিজ্ঞতা ছিল না, আমাকে বলতে হবে। (আমার ক্ষেত্রে এইচআইডি ব্যবহার করতে পারেনি either) বিষয়টিতে কোনও ভাল বই নেই। আমি ইউএসবি-তে জ্যান অ্যাক্সেলসনের বইটিকে ঘৃণা করেছি এবং কেউ কেউ এই কাজটি গ্রাউন্ড থেকে এমবেডেড মাইক্রো হিসাবে কাজ করার চেষ্টা করার জন্য তার "প্রায় সম্পূর্ণ অকেজো" হিসাবে বিবেচনা করেছে। এটি আসলে বেশিরভাগই অকেজো, অন্যথায়। আপনি যদি কোনও প্রয়োগকারী (কাস্টম হার্ডওয়্যার) জন্য কোনও ভাল বইয়ের কথা জানেন তবে আমি একটি শিরোনাম শুনে খুশি হব !! +1
জান্নাত

1
অপের সম্ভাব্য বাজারের উপর নির্ভর করে ভিআইডি / পিআইডিই সবচেয়ে বড় চ্যালেঞ্জ। অ্যাক্সেলসন পদ্ধতি ব্যবহার করা সেই অর্থে কাজ করে আপনি তার ভিআইডি (যার জন্য আপনার নিজের জন্য $ 3.5k খরচ হয়) ব্যবহার করতে পারেন এবং তার এক বা একাধিক পিআইডি বিনা মূল্যে অনুরোধ করতে পারেন। আপনি মাইক্রোচিপ / আতেল, এফটিডিআই এবং টিআই (তাদের ভিআইডি ভিত্তিতে) এর মতো সংস্থার কাছ থেকেও পিআইডি'র অনুরোধ করতে পারেন। সেরা বই আইএমও হ'ল ইনটেলস "উদাহরণস্বরূপ ইউএসবি ডিজাইন", এটি দাঁতে কিছুটা লম্বা, তবে ইউএসবি ২.x এর জন্য ভাল good দুর্ভাগ্যক্রমে কোডের অনেকগুলি উদাহরণ সংশোধন করে ভিজ্যুয়াল স্টুডিওতে পরিবর্তনের কারণে ভেঙে যায়।
জ্যাক ক্রিয়েসি

1
শখের জন্য ভিআইডি / পিআইডি-তে অ্যাক্সেস পাওয়ার সর্বোত্তম উপায় হ'ল লুফা (যা বিনামূল্যে) ব্যবহার করুন: fourwalledcubicle.com/files/LUFA/Doc/130303/html/… ..... এগুলি বাণিজ্যিক পণ্যগুলিতে ব্যবহার করা যায় না তবে হোম / ডেমো ব্যবহারের জন্য ভাল যেখানে আপনি সংঘর্ষগুলি অনেকাংশে নিয়ন্ত্রণ করতে পারেন।
জ্যাক ক্রাইসি

1
পুনশ্চ. "এম্বেডেড ইউএসবি ডিজাইন উদাহরণ হিসাবে ব্যবহার করুন: যে এফটিডিআই প্রকাশিত হয়েছে: ftdichip.com/Support/Documents/TechnicalPublications/… ... একটি দুর্দান্ত ভূমিকা হ'ল এর অনেক দরকারী উদাহরণ রয়েছে (অবশ্যই FTDI ডিভাইসের উপর ভিত্তি করে) এবং এর সাথে সম্পর্কিত সমস্ত পিএসওসি নিয়ন্ত্রণকারীদের ব্যবহার সহ কাজের ফাইলগুলি
জ্যাক

1
মনে রাখবেন যে ইউএসবি ডিভাইস স্ব-চালিত হয়, ডি + বা ডি-পুল-আপ রেজিস্টার প্রয়োগ করার আগে VBUS ভোল্টেজ সনাক্ত না হওয়া পর্যন্ত এটি অপেক্ষা করতে হবে। আমি এই সম্পর্কে শংসাপত্র ব্যর্থ করেছি।
অ্যাডাম হাউন

4

ইউএসবি "অংশীদার" (হোস্ট এবং একটি ডিভাইস) এর আচরণ এবং ইন্টারঅ্যাকশনটি ইউএসবি স্পেসিফিকেশনে ছড়িয়ে ছিটিয়ে রয়েছে। কিছু ভিত্তি পাওয়ার সর্বোত্তম উপায় হ'ল "ডিভাইস কাঠামো", অধ্যায় 9, যা অধ্যায় 10 এবং 11-এ সম্ভাব্য (আদেশিত) ডিভাইস স্টেটস (চিত্র 9-1), এবং হোস্ট (এবং হাব) ফ্রেমওয়ার্কের বর্ণনা দেয় at প্রোটোকলের বিশদ বিবরণ (পাইপ / লেনদেনের ধরণ / বিমূর্ত ওএসআই প্রোটোকল স্তর, পিসিবি লেআউট ইত্যাদি), বন্দর রাষ্ট্র চিত্রটি (চিত্র 11-10) অধ্যয়ন করে প্রাথমিক মিথস্ক্রিয়াটির জন্য আরও ভাল গ্রিপ অর্জন করা যেতে পারে।

সংক্ষেপে, যদি কেবল হোস্ট এবং ডিভাইসের মধ্যে সংযুক্ত না হয়, তবে হোস্ট পোর্টগুলি "পাওয়ারেড স্টেট" (ভিবিএস চালু আছে), তবে "সংযোগ বিচ্ছিন্ন" রয়েছে। ডি + এবং ডি- তারগুলি 15 কে টান-ডাউনগুলি দিয়ে কম ধরে থাকে।

কেবলটি সংযুক্ত থাকলে VBUS ডিভাইসে যায়। ডিভাইসটি এটি সংযুক্ত হয়ে রয়েছে তা সনাক্ত করে এবং ডি ওয়্যারগুলির মধ্যে উচ্চতম একটিকে ডিএস, যদি এটি এফএস / এইচএস ডিভাইস হয় তবে ডি + এবং যদি এলএস ডিভাইস হয় তবে ডি-টেনে একটি "সংযুক্ত" ইভেন্টের সংকেত দেয়।

নির্দিষ্ট পোর্টের ডি + /- তারগুলিতে টানুন হোস্ট সফ্টওয়্যারকে "পোর্টের স্থিতি পরিবর্তন" প্রতিবেদন করে একটি বাধা দেয়। হোস্ট সফ্টওয়্যার (সাধারণত ehci.sys) তার পরে সেই নির্দিষ্ট পোর্টটিতে "পোর্ট রিসেট" সিকোয়েন্সিং শুরু করে । "ইউএসবি পোর্ট রিসেট" এর সফল সমাপ্তির পরে, হোস্ট পোর্টটি ইউএসবি যোগাযোগের জন্য সক্ষম করা হয়েছে। বন্দরটি সক্রিয় হয়ে যায় (ফ্রেমের প্যাকেটগুলি প্রবাহমান শুরু হয়)।

ইউএসবি প্রোটোকল ব্যবহার করে, হোস্ট এই ডিভাইসে অনন্য ঠিকানা বরাদ্দ করে এবং "ডিভাইস বর্ণনাকারী" পড়ে। এটি "ডিভাইস গণনা" প্রক্রিয়া শুরু করে। ডিভাইস বর্ণনাকারীটি কোন ডিভাইসের শ্রেণীর (এইচআইডি, সিওএম, এমআইডিআই, প্রিন্টার ইত্যাদি) সম্পর্কিত এবং সেই নির্দিষ্ট ডিভাইসের ভিআইডি / পিআইডি, এবং অন্যান্য তথ্যের একগুচ্ছ তথ্য সারণী 9-8 দেখুন।

ডিভাইস ক্লাস এবং ভিআইডি / পিআইডি পাওয়ার পরে, হোস্ট সফ্টওয়্যারটি ডিভাইস রেজিস্ট্রিতে এই তথ্যটি মেলাতে চেষ্টা করে এবং সংশ্লিষ্ট ডিভাইস ড্রাইভারকে জেনেরিক, অথবা বিক্রেতা-নির্দিষ্ট (এটি উপস্থিত থাকলে) লোড করে। ডিভাইস ড্রাইভার তার পরে ডিভাইস ইন্টারফেস নির্বাচন করে "ডিভাইস কনফিগারেশন" সেট করে শেষ করে গণনা প্রক্রিয়াটি শেষ করে। স্পষ্টতই পুরো ইউএসবি যোগাযোগ কেবল এই নির্দিষ্ট বন্দরটির পিছনে স্বীকৃত হয় , এমনকি সমস্ত প্যাকেটগুলি সমস্ত সক্ষম পোর্টে সম্প্রচারিত করা হলেও।

উপরেরটি ইউএসবি কানেক্ট প্রোটোকলের সাধারণ কাঠামো। কোনও নির্দিষ্ট উদ্দেশ্যে (এমআইডিআই এর মতো) জন্য প্যাকেটিজিং ডেটা পৃথক গল্প এবং সিস্টেমটি সঠিক ডিভাইস শ্রেণি পেতে পারলে এটি অ্যাপ্লিকেশন স্তরে বা ডিভাইস ড্রাইভার পর্যায়ে পরিচালিত হয়। নেটিভ মিডিআই যোগাযোগ পেতে, ডিভাইসটির বর্ণনাকারীটিতে এই শ্রেণিটি থাকা উচিত এবং সমস্ত এমআইডিআই ক্লাস সংজ্ঞা অনুসরণ করা উচিত ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.