2009-02-05 18 views
8

मुझे एम्बेडेड डिवाइस के लिए डिवाइस ड्राइवर लिखने का काम सौंपा गया है जो एसपीआई इंटरफ़ेस के माध्यम से माइक्रो नियंत्रक के साथ संवाद करेगा। आखिरकार, यूएसबी इंटरफ़ेस को बाहरी स्तर पर अद्यतन कोड डाउनलोड करने और सत्यापन चरण के दौरान उपयोग करने के लिए उपयोग किया जाएगा।एम्बेडेड डिवाइसों के लिए यूएसबी - डिवाइस ड्राइवर/प्रोटोकॉल स्टैक को डिजाइन करना

मेरा प्रश्न है, क्या किसी को एक अच्छा संदर्भ डिजाइन या दस्तावेज़ीकरण या ऑनलाइन ट्यूटोरियल पता है जो यूएसबी प्रोटोकॉल स्टैक/डिवाइस ड्राइवर के कार्यान्वयन/डिज़ाइन को एम्बेडेड सिस्टम के भीतर कवर करता है? मैं अभी शुरू कर रहा हूं और 650 पेज यूएसबी v2.0 spec के माध्यम से पढ़ रहा हूं इस समय थोड़ा मुश्किल है।

बस एक एफवाईआई के रूप में, माइक्रो नियंत्रक जो मैं उपयोग कर रहा हूं वह एक फ्रीस्केल 9 एस 12 है।

मार्क

goldenmean के (-AD) टिप्पणियाँ मैं निम्नलिखित जानकारी जोड़ना चाहते थे पर आधारित:

1) एम्बेडेड उपकरण एक कस्टम कार्यकारी का उपयोग करता है और एक तख्त या RTOS का कोई उपयोग करता है।

2) डिवाइस डिवाइस से पुनर्प्राप्त करने के लिए डेटा तैयार करने के लिए इंटरप्ट का उपयोग करेगा।

3) मैंने लिनक्स के बारे में कुछ दस्तावेज़ों के माध्यम से पढ़ा है, लेकिन चूंकि मैं लिनक्स से परिचित नहीं हूं, इस समय यह बहुत उपयोगी नहीं है (हालांकि मुझे उम्मीद है कि यह बहुत जल्दी होगा)।

4) कम से कम, अब यूएसबी डिवाइस के लिए डिवाइस ड्राइवर लिखने के लिए डिज़ाइन दृष्टिकोण, तो यूएसबी प्रोटोकॉल परत (आई/ओ) डेटा की व्याख्या करने के लिए डिवाइस ड्राइवर के शीर्ष पर रहती है। मुझे लगता है कि यह सबसे अच्छा तरीका होगा, हालांकि मैं गलत हो सकता था।

संपादित करें - एक साल बाद

मैं सिर्फ इससे पहले कि वे मामले में मेरे मन से गायब हो मैं एक यूएसबी डिवाइस पर कभी काम नहीं कुछ आइटम साझा करना चाहते थे। कोड विकसित करते समय और इसे प्राप्त करने और पहले के लिए दौड़ते समय मैं कुछ बाधाओं में भाग गया।

पहली समस्या जो मैंने भागी थी वह यह था कि जब यूएसबी डिवाइस होस्ट से जुड़ा था (मेरे मामले में विंडोज) होस्ट होस्ट रीसेट अनुरोध जारी करता था। यूएसबी डिवाइस फ्लैग सक्षम इंटरप्ट को रीसेट और साफ़ करेगा। मैंने यह जानने के लिए पर्याप्त साहित्य नहीं पढ़ा था, इस प्रकार मैं सेट-अप अनुरोध इंटरप्ट कभी प्राप्त नहीं कर रहा था। इसे समझने में मुझे थोड़ी देर लग गई।

दूसरी समस्या जो मैंने भागी थी वह Set_Configuration के लिए सेट-अप अनुरोध को ठीक से संभाल नहीं रहा था। मैं इसे संभालने में कामयाब रहा था, लेकिन मैं इस अनुरोध को सही तरीके से संसाधित नहीं कर रहा था कि यूएसबी डिवाइस एसीके नहीं भेज रहा था जब यह सेट-अप अनुरोध आया था। अंत में मुझे हार्डवेयर यूएसबी प्रोटोकॉल विश्लेषक का उपयोग करके यह पता चला।

अन्य मुद्दों में मैं भाग गया था, लेकिन ये दो सबसे बड़े थे जिन्हें मुझे समझने में काफी समय लगा। मुझे जिस अन्य मुद्दे के बारे में चिंता करना पड़ा वह क्रमशः बड़े एंडियन और छोटे-एंडियन, फ्रीस्केल 9 एस 12 बनाम यूएसबी डेटा प्रारूप (इंटेल) है।

मैंने अतीत में किए गए यूएआरटी डिवाइस ड्राइवरों के समान यूएसबी डिवाइस ड्राइवर का निर्माण समाप्त कर दिया। मैंने निम्नलिखित यूआरएल पर कोड पोस्ट किया है।

http://lordhog.wordpress.com/2010/12/13/usb-drive

मैं संरचनाओं एक बहुत उपयोग करने के लिए, ताकि लोग उन्हें पसंद नहीं हो सकता है क्योंकि वे (जैसे MAX3420_SETUP_DATA_AVAIL_INT_REQR 0x20) #defines का उपयोग कर के रूप में के रूप में पोर्टल नहीं हैं करते हैं, लेकिन मैं उन्हें पसंद है, क्योंकि यह कोड अधिक बनाता है मेरे लिए पठनीयअगर किसी के पास इसके बारे में कोई सवाल है तो कृपया ई-मेल के लिए स्वतंत्र महसूस करें और मैं इसे कुछ अंतर्दृष्टि देने का प्रयास कर सकता हूं। पुस्तक "यूएसबी पूर्ण: द डेवलपर गाइड" सहायक थी, जब तक आप जानते थे कि किन क्षेत्रों पर ध्यान केंद्रित करना है। यह एक साधारण एप्लीकेशन था और केवल कम गति वाली यूएसबी का इस्तेमाल किया गया था।

उत्तर

3

मैंने USB Complete by Jan Axelson के पहले संस्करण का उपयोग किया है। वास्तव में बहुत पूरा।

संपादकीय समीक्षा से:

अब अपने चौथे संस्करण में, यूनिवर्सल सीरियल बस (USB) इंटरफ़ेस करने के लिए इस डेवलपर की मार्गदर्शिका में इस तरह के हार्डवेयर डिजाइन, उपकरण फर्मवेयर, और मेजबान के रूप में परियोजना के विकास के सभी पहलुओं को शामिल किया गया अनुप्रयोग प्रक्रिया सामग्री।

+0

मार्सेलो, जानकारी के लिए धन्यवाद और मैं इसे अपनी इच्छा सूची में रखूंगा, लेकिन इस पुस्तक के आने तक मुझे डिवाइस ड्राइवर और प्रोटोकॉल परतों को विकसित करने की आवश्यकता है। मैंने एक ही लेखक द्वारा पुस्तकों में से एक को आदेश दिया था। – lordhog

+0

एचएम, यह नहीं देखा कि यह अभी तक बाहर नहीं था, क्षमा करें। लेकिन मुझे खुशी है कि यह आपके लिए कुछ उपयोग था =) उसकी किताबें बहुत अच्छी हैं। –

+0

जब मैंने यूएसबी डिवाइस प्रोटोकॉल के बारे में पूछा, तो यह मेरी तकनीक लीड की पुस्तक थी। – Spike0xff

5

किसी इंटरफ़ेस (यूएसबी, समांतर बंदरगाह, आदि ...) के लिए डिवाइस ड्राइवर लिखते समय कोड को विकसित करने के लिए आवश्यक कोड इस बात पर निर्भर करेगा कि क्या कोई ऑपरेटिंग सिस्टम (ओएस) है, आरटीओएस उस प्रोसेसर/माइक्रो नियंत्रक पर चल रहा है या नहीं । उदा। यदि वह दौड़ने जा रहा है तो WinCE कहें - इसमें अपनी चालक विकास किट होगी, और डिवाइस चालक विकास में अनुसरण किए जाने वाले कदम होंगे। लिनक्स, सिम्बियन जैसे किसी भी अन्य ओएस के लिए वही।

यदि यह एक सादा फर्मवेयर कोड (नो ओएस) होने वाला है जो प्रोसेसर/माइक्रोकंट्रोलर को नियंत्रित करने जा रहा है, तो यह पूरी तरह से एक अलग स्थिति है।

1.) प्रोसेसर/माइक्रो नियंत्रक विकास बोर्ड के हार्डवेयर विशिष्टता - - रजिस्टर फ़ाइलें, बंदरगाहों, स्मृति लेआउट, आदि: तो ऊपर स्थिति यू में हैं दोनों में से किसी के आधार पर, एक को पढ़ने के लिए & को समझने की जरूरत है

2.) यूएसबी कल्पना

3.) संकेत के युगल मैं जल्दी से मिल गया। Google शड यू दोस्त हो! http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/ - लिनक्स यूएसबी डिवाइस ड्राइवर

http://www.microsoft.com/technet/archive/wce/support/usbce.mspx

-AD

0

मैं जो हार्डवेयर आप का उपयोग करने की योजना बना रहे हैं, लेकिन है कि लचीला है यह सोचते हैं पता नहीं है, STMicro माइक्रोकंट्रोलर्स की एक पंक्ति यूएसबी/एसपीआई के साथ प्रदान करता है समर्थन और सी-कोड की एक लाइब्रेरी जिसका उपयोग उनके भागों के साथ किया जा सकता है। - मैंने बड़ी सफलता के साथ वर्षों से अपने एआरएम 7 श्रृंखला माइक्रोस्कोप का उपयोग किया है।

1

मुझे उत्सुकता है, आपने 9 एस 12 क्यों चुना? मैंने इसे पिछली नौकरी में इस्तेमाल किया, और खुश नहीं था।

  • यह तो हम Metrowerks
    • इस्तेमाल किया जो सी के लिए ठीक हो सकता है, लेकिन अक्सर उत्पन्न गाड़ी सी ++
    • द्विआधारी परियोजना फाइलों के साथ एक घटिया आईडीई था घटिया जीसीसी समर्थन प्राप्त था!
  • 9 एस 12 भी धीमा था, 5 चक्रों में बहुत सारे निर्देश निष्पादित किए गए थे।
  • या तो बहुत शक्तिशाली नहीं है।
  • कोई बैरल शिफ्टर, एम्बेडेड कोड धीमे
  • में सस्ता ऑपरेशन सामान्य नहीं है।

केवल एक चीज के बारे में मुझे नापसंद 8051 है।मैं अपने वर्तमान काम पर एआरएम कॉर्टेक्सएम 3 का उपयोग कर रहा हूं, यह हर तरह से 9 एस 12 से बेहतर है (तेज घड़ी, प्रति घड़ी अधिक काम, कम बिजली की खपत, सस्ता, अच्छा जीसीसी समर्थन, 32-बिट बनाम 16-बिट)।

+0

आप प्रोजेक्ट फ़ाइलों को बाइनरी से टेक्स्ट-आधारित (एक्सएमएल) में स्विच कर सकते हैं, लेकिन कुल कोडवायरियर अभी भी बहुत हंसमुख है। वे वर्तमान में एक ग्रहण आधारित आईडीई पर काम कर रहे हैं, हालांकि। – cschol

0

यहां टेक्सास विश्वविद्यालय के प्रोफेसर जोनाथन वाल्वानो द्वारा बनाए गए एक उत्कृष्ट साइट है। वह वहां पर चार पाठ्यक्रम सिखाता है (तीन स्नातक, एक स्नातक), सभी 9 एस 12 माइक्रोकंट्रोलर का उपयोग करने के बारे में हैं। उनकी साइट में सभी व्याख्यान नोट्स, लैब मैनुअल, और अधिक महत्वपूर्ण रूप से स्टार्टर फाइलें शामिल हैं, जो कि वे अपने सभी वर्गों के लिए उपयोग करते हैं।

वेबसाइट ऐसा लगता है कि यह 90 के दशक से है, लेकिन बस थोड़ा सा खोदना है और आपको अपनी आवश्यक चीज़ों को ढूंढना चाहिए।

users.ece.utexas.edu/~valvano/

+0

मैंने इस साइट को चेक आउट किया था और कोड को देखा था, लेकिन यह आरएस -223 से यूएसबी इंटरफ़ेस तक डेटा स्थानांतरित करने के लिए अधिक था। तो अधिकांश कोड यूएसबी की तुलना में यूएआरटी के साथ इंटरफेसिंग कर रहा था। – lordhog

0

अपने अगले एमसीयू परियोजना के लिए AVR पर विचार की वजह से यह अद्भुत LUFA और V-USB पुस्तकालयों है।

+0

मैं चाहता हूं, लेकिन यह आमतौर पर हार्डवेयर और सिस्टम इंजीनियरिंग समूह है जो प्लेटफ़ॉर्म पसंद का निर्णय लेता है। मैं आमतौर पर ग्रीन हिल्स, कंपाइलर उपकरण लेने के लिए मिलता है। मेरे पास इस मामले में कुछ कहना है, लेकिन यह सीमित है। – lordhog

0

मैं एटमेल वी 71 का उपयोग कर एक प्रोजेक्ट पर काम कर रहा हूं। प्रोसेसर बहुत शक्तिशाली है और चिप पर दी गई उच्च अंत कनेक्टिविटी के बीच एक यूएसबी इंजन है जो 480 मेगाहट्र्ज या 48 मेगाहर्ट्ज (यूएसबी 3.0 नहीं) के लिए डिवाइस या मेजबान मोड करेगा। टूल्स मुफ्त हैं और वहां कई यूएसबी स्टैक कोड के साथ कई मेजबान और डिवाइस यूएसबी उदाहरण परियोजनाओं के साथ आते हैं। यह 10 अंत बिंदुओं का समर्थन करता है और सभी हस्तांतरण डीएमए के माध्यम से किए जाते हैं ताकि आपके पास अन्य कार्यों के लिए प्रोसेसर हॉर्स पावर उपलब्ध हो। एटमेल यूएसबी स्टैक बिना किसी आरटीओएस

संबंधित मुद्दे