2011-11-08 8 views
9

क्या कोई मुझे एयर कंडीशनिंग नियंत्रकों जैसे तत्वों के बारे में बहुत सामान्य विचार दे सकता है, ऐसे हिस्सों में जहां आप एक कार में तापमान स्थापित करते हैं, एलईडी डिस्प्ले आदि के साथ आजकल प्रोग्राम किए जाते हैं? तो मान लीजिए कि हमारे पास बटन के साथ एक प्लास्टिक पैनल है, डिस्प्ले का नेतृत्व किया गया है और क्या नहीं, और जब मैं "+" दबाता हूं, तो मुझे तापमान बढ़ाना चाहिए या कुछ यांत्रिक भागों को कार्रवाई करना है।इलेक्ट्रॉनिक घटक प्रोग्रामिंग प्रश्न

  1. मुझे लगता है कि रोम और कुछ सीपीयू चिप्स हैं जहां भागों को नियंत्रित करने वाले सॉफ़्टवेयर को संग्रहीत किया जाता है। अब यह सॉफ्टवेयर आमतौर पर जावा या निम्न स्तर सी (++?) या यहां तक ​​कि कम में लिखा जाता है?

  2. क्या इस तरह की चीज के लिए आमतौर पर उपयोग की जाने वाली कोई पुस्तकालय हैं? या चिप्स इन और शायद कुछ बुनियादी ऑपरेटिंग सिस्टम के साथ preprogrammed आते हैं?

  3. यह चिप सॉफ़्टवेयर के साथ प्रोग्राम किया गया है? कुछ प्रकार की रोम लेखन डिवाइस की आवश्यकता है क्या यह सही है?

  4. ऐसा कुछ है जो मेरे लैपटॉप के माध्यम से घर पर खेलने में सक्षम होगा और यदि ऐसा है तो लैपटॉप के अलावा मुझे कौन सा उपकरण चाहिए?

क्या कोई मुझे संसाधनों को इंगित करने में सक्षम होगा जहां मैं इसे और अधिक पढ़ सकता हूं? मैं सामान्य काम करने की कोशिश कर रहा हूं कि यह कैसे काम करता है, इसमें कितना शामिल है और इस काम को पाने के लिए किसी को किस कौशल की आवश्यकता होगी। मैं समझता हूं कि यह एक बड़ा विषय है लेकिन यह जानना चाहता है कि यह कैसे किया जाता है और भले ही मैं ऐसा कुछ भी करने में सक्षम न हो, मैं प्रक्रिया को समझना चाहता हूं और इसमें क्या शामिल है

फिर, यदि प्रश्न और मेरी व्याख्या भ्रमित है मैं क्षमा चाहता हूँ। मुझे

+1

यह माइक्रोकंट्रोलर की दुनिया है और अक्सर माइक्रोचिप, एटमेल, टीआई और अन्य से 8/16 बिट प्रोसेसर की दुनिया को बदल रहा है। आप http://electronics.stackexchange.com पर देखना चाहेंगे। आम तौर पर इन माइक्रोकंट्रोलर में अंतर्निहित सब कुछ है और बाहरी दुनिया में इंटरफ़ेस के लिए केवल बाहरी I/O की एक छोटी राशि है। अक्सर और अधिकतर अब सी – kenny

+1

@ केनी में प्रोग्राम किए गए हैं, आपने कभी भी ड्राइवर को प्रोग्राम नहीं किया है जब तक कि आपने इसे दोनों तरफ प्रोग्राम नहीं किया हो! और हाँ, [Electronics.stackexchange.com] (http://electronics.stackexchange.com) इसमें बहुत कुछ शामिल है और इसमें कई प्रश्न उपलब्ध हैं। – Kortuk

+0

यह http://www.cvel.clemson.edu/auto/auto_buses01.html वर्तमान ऑटोमोबाइल में पाए जाने वाले विभिन्न नेटवर्क का वर्णन करता है। यह कंपनी http://www.matrixmultimedia.com/eblocks.php एक बिल्ड बनाता है जिसे आप सिस्टम चाहते हैं जिसमें सीएएन और लिन मॉड्यूल शामिल हैं। – dbasnett

उत्तर

1

अधिक सामान्य जवाब:

नहीं है आम तौर पर भंडारण के लिए फ़्लैश मेमोरी में।बूट लोडर के साथ छोटे रोम हो सकते हैं।

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

ओएस सभी जगह पर हैं। जरूरतों के आधार पर, कुछ आरटीओएस होंगे (रीयल-टाइम ओएस जब चीजें निर्धारित होनी चाहिए)। बस एक छोटा लिनक्स कर्नेल, ओएस -9, यूकोस, होम-स्पून हो सकता है, आप इसे नाम दें।

कुछ सामान्य उद्देश्य एम्बेडेड लाइब्रेरी या अमूर्त परतें हैं, लेकिन कई एम्बेडेड सिस्टम बहुत विशिष्ट हैं, जिससे ऐसी चीजें उपयोगी नहीं होती हैं। एसओसी (चिप पर सिस्टम) निर्माताओं के पास आमतौर पर एक एसडीके होगा जो उनके विशेष हार्डवेयर के साथ इंटरफेसिंग को आसान बनाता है।

इन दिनों चिप्स आम तौर पर यूएसबी/आदि के माध्यम से चमकते हैं।

Arduino पहले से ही उल्लेख किया गया था। मिलियन विभिन्न छोटे छोटे कंप्यूटर हैं; आपको चक्कर आने के लिए पर्याप्त विज्ञापनों के लिए सर्किट सेलर के किसी भी मुद्दे की जांच करें। कुछ TI Watch dev system या यूएसबी-डोंगल आकार के वी मशीनों की तरह दूसरों की तुलना में अधिक मजेदार हैं।

रोबोटिक एक महान जगह शुरू करने के लिए, क्योंकि वे लगभग हर एम्बेडेड प्रणाली में मिश्रण सिर्फ दुनिया भर में लेने के लिए इंतजार कर रहे एक मजेदार पैकेज में की जरूरत है।

7

Arduino पर एक अच्छी हार्ड लुक लेना बहुत मुश्किल लगता है। यह एटम एटीमेगा माइक्रोकंट्रोलर का उपयोग करने के लिए एक अच्छा परिचय है। यह प्रसंस्करण नामक सी ++ जैसी भाषा में कोडित है।

नमूना आदेश:

चेक एक बटन दबाया जाता है, और अगर ऐसा है, एक पर एलईडी बारी है। बटन पिन 3 (जमीन पर) पर है, 4 एलईडी है।

if(digitalRead(3) == HIGH){ 
    digitalWrite(4, HIGH); 
} 

एक एलईडी ब्लिंक करें। (पिन 13)

while(1){ 
    digitalWrite(13, HIGH); 
    delay(100); 
    digitalWrite(13, LOW); 
    delay(100); 
} 

Arduino कार्यक्रमों USB पर माइक्रोकंट्रोलर, का उपयोग कर निर्मित एक सीरियल एडाप्टर के लिए यूएसबी। आप इसके साथ कुछ भी नियंत्रित कर सकते हैं - मान लीजिए कि आप 110V एसी एडाप्टर स्विच करना चाहते हैं। आप बस एक रिले को हुक कर सकते हैं जो इसे स्विच करने के लिए 5V के तार को चलाता है। आप स्विच, तापमान सेंसर, लाइट सेंसर, चुंबकीय सेंसर, एक्सीलरोमीटर, सीरियल, टीटीएल, एसपीआई, 1-तार इत्यादि में भी पढ़ सकते हैं ... एक बार जब आप एकमात्र चीज शुरू कर देते हैं जो आपको रोक देगा तो आपका बजट होगा!

+1

यह ध्यान देने योग्य हो सकता है कि यह यूएसबी पर प्रोग्राम कर सकता है क्योंकि यह बूटलोडर से भरा हुआ है और अपने स्वयं के रोम पर लिख रहा है। एम्बेडेड अनुप्रयोगों में कई माइक्रोकंट्रोलर में हार्डवेयर आंतरिक और बाहरी प्रोग्रामर होता है जो रोम को पहली बार लिखता है। – Kortuk

+0

अच्छा बिंदु, लेकिन प्रश्नकर्ता के दृष्टिकोण के लिए, उसे यह जानने की जरूरत है कि कोड यूएसबी केबल के माध्यम से अपने एल ई डी में बहता है। मुझे यकीन है कि यह एक ऐसी स्थिति है जिसे वह अंततः अपनी यात्रा पर सामना करेगा :) – Tim

+0

यह भी ध्यान देने योग्य है कि Arduino प्रोग्राम (या परियोजना के रूप में स्केच विचित्र रूप से उन्हें संदर्भित करता है), सी का एक सरल सबसेट है। वास्तव में विकास उपकरण सी उत्पन्न करता है कोड और इसे संकलित करता है, इसलिए प्री-प्रोसेसर का एक प्रकार है। – Clifford

0

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

कई एम्बेडेड उपकरणों EEPROM -programmable हैं। आप अपने स्वयं के ईईपीरोम जलने वाले उपकरण खरीद सकते हैं। कुछ एम्बेडेड उपकरणों ASIC चिप्स, जो कस्टम प्रोग्राम चिप्स जो good customization via a programming language कुछ हद तक एक CPU की तुलना में सस्ता प्रस्तुत करते हैं, जो कुछ एक ओएस और एक प्रोग्रामिंग वातावरण के सदृश की मेजबानी के लिए कहीं अधिक स्मृति की आवश्यकता हो सकती प्राप्त करने के लिए एक किफायती तरीका है कर रहे हैं।

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

Some small chips are designed specifically for Java - लेकिन मैं नहीं जानता कि कैसे अच्छी तरह से आधुनिक उद्योग में बच गया है।

1

चेक बाहर माइक्रोचिप द्वारा PIC microcontroller। आपको कुछ प्रकार के प्रोग्रामर या विकास बोर्ड की आवश्यकता होगी। ये आमतौर पर प्रोग्रामिंग उद्देश्यों के लिए यूएसबी के माध्यम से एक पीसी से कनेक्ट होते हैं। पीआईसी के लिए कई कंपाइलर हैं। सबसे लोकप्रिय लोग सी-जैसी भाषा को लागू करते हैं।

Here एक सूची है कि सीसीएस द्वारा पीआईसी के लिए विकास किट को सूचीबद्ध करता है।

0

आप एक ऑटोमोटिव ग्रेड माइक्रोकंट्रोलर चाहते हैं। कई विक्रेताओं और स्वाद हैं। हां उनमें एक फ्लैश और कुछ प्रकार के कुछ राम शामिल हैं। आप कार्यक्रम को रोम में विभिन्न तरीकों से जलाते हैं, कभी-कभी एक विशेष प्रोग्रामर, या jtag या एक सीरियल बूटलोडर है।

लगता है जैसे आप इस माहौल से बहुत परिचित नहीं हैं, धीमे लगते हैं, एक झुकाव झुकाते हैं, एक बटन नमूना करते हैं, एलसीडी पैनलों तक अपना रास्ता काम करते हैं और फिर एक पूर्ण एप्लिकेशन के बारे में चिंता करते हैं जैसे आप जिस बारे में बात कर रहे हैं। ऑटोमोटिव ग्रेड प्राप्त करने के बारे में चिंता न करें और न ही अपने बोर्ड के निर्माण के बारे में चिंता करें, 50 डॉलर से कम के साथ-साथ $ 25 के तहत ईवाल बोर्डों का एक टन भी है।

टीआई से एमएसपी 430 अच्छा है, वे उन्हें 3 रुपये प्रति ऑर्डर तक 4.30 डॉलर दे रहे हैं, आप इसके साथ बहस नहीं कर सकते हैं, जो आपको पांच रुपये (साथ ही मुफ्त डाउनलोड) के लिए आवश्यक है। माइक्रोचिप से पीआईसी जंगली रूप से लोकप्रिय होता था, लेकिन अधिकांश ने उन्हें पास कर दिया है, संभवतः प्रोसेसर के लिए बहुत कम समय के रूप में वे सबसे सस्ता एक बार प्रोग्राममेबल हैं। थोड़ी देर के लिए अब एटम से एवीआर शौकिया के साथ बेहद लोकप्रिय है। Arduino बाहर आने से पहले वे लोकप्रिय थे, लेकिन अब यह हुआ है कि यह उन्हें एक और बढ़ावा दिया है। कई स्वाद हैं। मुझे लगता है कि यूनो में सब कुछ है, कुछ अन्य लोग हालांकि आप थोड़ी सी एफटीआई आधारित धारावाहिक खरीदना चाहते हैं जो कि पक्ष में प्लग करता है। स्पार्कफुन में कुछ स्नैप किट एक लिलीपैड संस्करण है और शायद आर्डिनो प्रो मिनी संस्करण या ऐसा कुछ है। ओह, टीआई और कुछ अन्य लोगों से msp430 कहने के अलावा, sparkfun.com इन बोर्डों में से बहुत सारे के लिए एक महान स्रोत है। आप एमएसपी 430 लॉन्चपैड बोर्ड को पांच रुपये से भी कम के लिए प्राप्त कर सकते हैं। वैसे भी आप एक Arduino में प्रवेश करने के लिए $ 40 से $ 50 aboug देख रहे हैं। यदि आप इसमें हैं तो खेलने के लिए एक नि: शुल्क सैंडबॉक्स है या आप निम्न स्तर कोड भी लिख सकते हैं और सैंडबॉक्स में फंस नहीं सकते हैं। एआरएम सब कुछ ले रहा है, उनके पास निर्माण करने के लिए एक अच्छी नींव है। आप केवल एआरएम प्रोसेसर के बारे में कुछ सीखकर अपने करियर की मदद कर सकते हैं। वे इस बाजार में और उच्च अंत के साथ-साथ बैटरी संचालित बाजार (फोन, कैमरे, एमपी 3 प्लेयर इत्यादि) पर हावी हो सकते हैं। अश्वशक्ति मूल्य और आकार के लिए और इसलिए वे शक्ति कहते हैं, आप प्रतिस्पर्धा नहीं कर सकते हैं। पुराने लोग arm7 आधारित हैं, स्पार्कफुन और दुनिया भर के अन्यत्र ओलिमेक्स हेडर बोर्डों के बहुत सारे हैं, उदाहरण के लिए सैम 7 $ 20, एलपीसी और अन्य के लिए बिक्री पर। कॉर्टेक्स-एम श्रृंखला माइक्रोकंट्रोलर आकार की बाहों को ले रही है और आपके पास टीए में तारकीय की तरह चीजें हैं (जो आपके ए/सी नियंत्रक के लिए $ 50 - $ 100 के लिए रुचि रखने वाली सभी चीजों के साथ टपक रही है) या सेंट से stm32 परिवार और कुछ एलपीसीएस। स्पार्कफुन और अन्य में बिक्री पर एमबीड 2 बोर्ड का उपयोग करना बहुत आसान है, एलपीसी आधारित, लगभग $ 45 से $ 50 एलपीसीएक्सप्रेस बोर्ड बीटीडब्ल्यू से बचें। आप लगभग $ 10 stm32 मान लाइन श्रृंखला के लिए एक stm32 आधारित बोर्ड में जा सकते हैं, उनमें से कुछ हैं, इसे stm8 मान लाइन खोज से भ्रमित न करें।

मेरे पास बोर्डों और निम्न स्तर के उदाहरण कार्यक्रमों की एक बढ़ती हुई सूची है (नेतृत्व को झपकी दें, यूट के बाहर कुछ बाइट्स भेजें, अपने पैरों को गीला करें ताकि आप डर के बिना अगला कदम उठा सकें) github.com/dwelch67 पर । मेरे पास कुछ सिमुलेटर भी हैं ताकि आप किसी भी पैसे का निवेश किए बिना टूल और प्रोग्रामिंग के साथ खेल सकें। चरण एक आपके प्रोग्राम को संकलित और चल रहा है, चरण दो कुछ सरल I/O है, फिर विभिन्न इंटरफेस (स्पि, i2c, आदि) और परिधीय (टाइमर, एलसीडी नियंत्रक, पीडब्लूएम, आदि) के बारे में बहुत सी सीखना है। फिर आप एक पूर्ण आवेदन पर विचार कर सकते हैं जिसकी आप बात कर रहे हैं।

+0

मेरा मानना ​​है कि फ्रीस्केल, रेनेसास/एनईसी और इन्फिनियन अब तक का सबसे बड़ा ऑटोमोटिव एमसीयू बाजार शेयर है। इसलिए यदि आप मोटर वाहन ऐप्स के साथ काम करना चाहते हैं, तो इसके बजाय उनमें से एक को चुनना बुद्धिमान हो सकता है। – Lundin

0

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

  1. एकीकृत फ्लैश और रैम के साथ अधिकांश माइक्रोक्रोनरोलर होते हैं, बड़े लोगों में बाहरी स्मृति भी होती है। यह कुछ केबी से शुरू होता है और दसियों या सैकड़ों एमबी तक जाता है। अधिकांश समय वे एक प्रमुख इकाई की तरह बड़ी चीजों के लिए सी, या सी ++ प्रोग्राम किए जाते हैं। Java exists लेकिन दुर्लभ है, हालांकि कुछ लोग अब head units with Android पर काम करते हैं।

  2. यह एक गड़बड़ है। सबसे छोटे लोगों के पास ओएसईके के बारे में बात करने के लिए बहुत अधिक ओएस नहीं है, और बड़े लोगों के पास कुछ वास्तविक समय ऑपरेटिंग सिस्टम है (आरटीओएस, मुझे वीएक्सवर्क्स, क्यूएनएक्स, μItron पता है) या वास्तविक समय ओएस (लिनक्स नहीं) , विंडोज सीई, एंड्रॉइड)।पुस्तकालयों के लिए, संसाधनों (विशेष रूप से स्मृति) की कमी या विशेष आवश्यकताओं के कारण स्क्रैच से बहुत कुछ लिखा जाता है, कुछ कोड (जैसे ओएस, कोडेक्स) लाइसेंस प्राप्त या यहां तक ​​कि ओपन-सोर्स भी है।

  3. यह एक गड़बड़ है। उपकरणों में आमतौर पर फ्लैश मेमोरी होती है, लेकिन प्रत्येक निर्माता या यहां तक ​​कि प्रत्येक डिवाइस परिवार के पास प्रोग्रामिंग के लिए इसकी अनोखी विधि होती है, अक्सर डिबगर्स के माध्यम से, जो अक्सर JTAG का उपयोग करती है। या धारावाहिक बंदरगाह से जुड़े बूटलोडर्स के माध्यम से। या यूएसबी। या यूएसबी एडाप्टर के माध्यम से ईथरनेट के माध्यम से एफ़टीपी। अक्सर आपको प्रोग्रामिंग के लिए सही अनुक्रम में कुछ मजाकिया कदम उठाने पड़ते हैं (कुछ बटन दबाकर, विभिन्न इंटरफेस के माध्यम से कुछ कमांड देना, रीबूट करना)।

  4. Arduino एक अच्छी और सभ्य शुरुआत है, और यदि आप चाहें तो सी में अंतर्निहित एवीआर भी प्रोग्राम कर सकते हैं। 8-बिट एवीआर के बाद अगला लॉजिकल चरण 32-बिट एआरएम कॉर्टेक्स एम 3 के साथ कुछ सस्ता डेवलपर बोर्ड होगा, उदाहरण के लिए Olimex LPC-P1343। हालांकि मेरे अनुभव में मोटर वाहन उद्योग कई रेनेसा नियंत्रकों का उपयोग करता है, जो शौकिया के रूप में प्राप्त करने के लिए कुछ कठिन हैं। लेकिन एम्बेडेड प्रोग्रामिंग के साथ शुरू करने के लिए जो इससे कोई फर्क नहीं पड़ता।

0

मेरा अनुमान है कि रोम और कुछ सीपीयू चिप्स जहां सॉफ्टवेयर भागों को नियंत्रित संग्रहीत किया जाता है नहीं है।

कई एम्बेडेड सिस्टम का प्रयोग कर एक micro-controller(MCU) या system-on-a-chip (SoC), इन एक या अधिक CPU कोर, के साथ साथ रोम (आमतौर पर फ्लैश) मेमोरी, रैम, और परिधीय उपकरणों और इंटरफेस इस तरह की एक चयन एक एकल चिप पर शामिल यूएआरटी, यूएसबी, जीपीआईओ, एडीसी, डीएसी, एसपीआई, आई 2 सी, टाइमर/काउंटर, ईथरनेट कंट्रोलर, कैन, एसडीआईओ, एलसीडी नियंत्रक और कई अन्य के रूप में। मरने की जगह सीमाओं और फ्लैश और एसआरएएम के रिश्तेदार कम घनत्व के कारण, एमसीयू में बाहरी रोम या रैम मेमोरी भी हो सकती है, और इसमें उच्च घनत्व और सस्ती एसडीआरएएम का उपयोग करने के लिए एसडीआरएएम नियंत्रक हो सकता है।

अक्सर कोड ऑन-चिप फ्लैश या ओटीपी रोम (एक बार प्रोग्राम करने योग्य रॉम) में संग्रहीत किया जाता है, लेकिन बाहरी मेमोरी का उपयोग किया जा सकता है। कुछ सिस्टम सीधे रोम से कोड निष्पादित करते हैं, अन्य लोग रोम छवि को निष्पादन के लिए रैम पर कॉपी करते हैं (जो अक्सर तेज़ होता है, और रोम की छवि को अपने पदचिह्न को कम करने के लिए संपीड़ित किया जा सकता है)। यदि कोड रोम से निष्पादित नहीं किया गया है, लेकिन रैम पर कॉपी किया गया है, तो इसे सस्ते, उच्च घनत्व वाले एनएएनडी फ्लैश में संग्रहीत किया जा सकता है।

अब इस सॉफ्टवेयर आमतौर पर जावा या निम्न स्तर सी (++?) या इससे भी कम में लिखा है?

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

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

क्या इस तरह की चीज के लिए आमतौर पर उपयोग की जाने वाली कोई पुस्तकालय हैं? या चिप्स इन और शायद कुछ बुनियादी ऑपरेटिंग सिस्टम के साथ preprogrammed आते हैं?

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

डिवाइस आमतौर पर पूर्व-प्रोग्राम नहीं होते हैं। कुछ विकास और मूल्यांकन हार्डवेयर को प्रदर्शन कोड के साथ प्रीप्रोग्राम किया जा सकता है, बड़े मूल्यांकन हार्डवेयर को लिनक्स या विनसी के साथ पहले से लोड किया जा सकता है।

यह चिप सॉफ़्टवेयर के साथ प्रोग्राम किया गया है? कुछ प्रकार की रोम लेखन डिवाइस की आवश्यकता है क्या यह सही है?

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

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

वॉल्यूम उत्पादन के लिए, चिप्स एक गैंग प्रोग्रामर द्वारा बोर्ड पर रखने से पहले प्रीप्रोग्राम किया जा सकता है। यह अक्सर डिवाइस विक्रेता या बोर्ड असेंबलर द्वारा प्रदान की जाने वाली एक सेवा है।

ऐसा कुछ है जो मेरे लैपटॉप के माध्यम से घर पर खेलने में सक्षम होगा और यदि ऐसा है तो लैपटॉप के अलावा मुझे कौन सा उपकरण चाहिए?

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

किसी को भी संसाधनों जहां मैं इस पर और अधिक पढ़ सकते हैं करने के लिए मुझसे बात करने के लिए सक्षम हो सकते हैं?

एक पेशेवर संसाधन Embedded.Com (अब नाम बदलकर लेकिन कम आसानी से EETimes एंबेडेड रूप में याद किया) है, लेकिन वह नहीं बल्कि गहरे अंत में शुरू हो जाएगा! आप अपेक्षाकृत सरल Arduino project या कुछ हद तक उच्च अंत BeagleBoard project जैसे कुछ के साथ अधिक आरामदायक हो सकते हैं।

यदि आप एमसीयू की एटमेल एवीआर रेंज का चयन करना चाहते हैं तो एक महान शौकिया संसाधन AVR Freaks है। मुझे लगता है कि जीएनयू कंपाइलर द्वारा समर्थित एकमात्र 8 बिट डिवाइस होने का एवीआर का लाभ है।

यदि आप एआरएम मंच (या जो कई हैं) पर ओपन-सोर्स टूल्स का उपयोग करके परियोजनाओं को विकसित करना चाहते हैं तो एक और संसाधन, मार्टिन थॉमस की उत्कृष्ट ARM-Projects साइट है। वह अपने जीएनयू उपकरण वितरण को हिस्ट करता है, लेकिन उन लोगों के साथ भी लिंक है जो अधिक अद्यतित और रखरखाव हो सकते हैं।

मैं यह कैसे काम करता के सामान्य विचार प्राप्त करने के लिए कोशिश कर रहा हूँ, कैसे शामिल है और क्या कौशल कोई इस काम कर पाने के लिए की आवश्यकता होगी।

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

1

मुझे लगता है कि रोम और कुछ सीपीयू चिप्स हैं जहां सॉफ्टवेयर भागों को नियंत्रित करने के लिए संग्रहीत किया जाता है।

हां। सभी एम्बेडेड सिस्टम पर सॉफ़्टवेयर को आपके पीसी में रैम की बजाय रोम (फ्लैश) से निष्पादित किया जाता है। डेटा को संरक्षित करने की आवश्यकता है रोम (eeprom/फ़्लैश) में भी संग्रहीत किया जाता है।

अब इस सॉफ्टवेयर आमतौर पर जावा या निम्न स्तर सी (++?) या इससे भी कम में लिखा है?

सभी आधुनिक मोटर वाहन फर्मवेयर विकास सी में सबसे अधिक संभवतः किया जाता है। पुराने फर्मवेयर संभावित रूप से असेंबलर में लिखा जाता है। कुछ दुर्लभ मामलों में सी ++ का उपयोग किया जाता है। जावा का बिल्कुल उपयोग नहीं किया जाता है।

क्या इस तरह की चीज के लिए आमतौर पर उपयोग की जाने वाली कोई पुस्तकालय हैं? या चिप्स इन और शायद कुछ बुनियादी ऑपरेटिंग सिस्टम के साथ preprogrammed आते हैं?

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

यह चिप सॉफ़्टवेयर के साथ प्रोग्राम किया गया है? कुछ प्रकार की रोम लेखन डिवाइस की आवश्यकता है क्या यह सही है?

हां। आपके पास कुछ प्रकार का "पॉड" है जो आपके लिंकर के आउटपुट को ऑन-चिप रोम में जला देता है। सबसे आम, उद्योग डी-फैक्टो इंटरफ़ेस JTAG है, लेकिन इसके अतिरिक्त, प्रत्येक एमसीयू निर्माता के पास अपने स्वयं के गैर-मानक समाधान भी होते हैं।

ऐसा कुछ है जो मेरे लैपटॉप के माध्यम से घर पर खेलने में सक्षम होगा और यदि ऐसा है तो लैपटॉप के अलावा मुझे कौन सा उपकरण चाहिए?

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

किसी को भी संसाधनों के लिए मुझे बात करने के लिए जहां मैं और अधिक पढ़ सकते हैं पर यह

MCUs/एम्बेडेड सिस्टम पर सी प्रोग्रामिंग के लिए एक शुरुआत गाइड

here पाया जा सकता है में सक्षम होगा। यह मोटोरोला/फ्रीस्केल द्वारा अप्रचलित ऑटोमोटिव एमसीयू 68 एचसी 12 का उपयोग कर रहा है, लेकिन सिद्धांत किसी भी एमसीयू के लिए सार्वभौमिक हैं।

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