CC1101 एक पीआईसी नियंत्रक चला रहा है या एक रेडियो इंजीनियर के लिए पीयर-टू-पीयर नेटवर्क का निर्माण कर रहा है

प्रागितिहास


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



यह प्रोटोटाइप की तुलना में आगे नहीं बढ़ पाया, हालाँकि यह मामला बहुत गंभीरता से दिया गया था, ठीक ईएमसी प्रमाणन तक।

विफलता का एक कारण यह था कि नियमित प्रोग्रामर CC1101 को पूरी तरह से नियंत्रित करने में सक्षम नहीं था।



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



शुरू से ही यह स्पष्ट था कि पैरामीटर, जैसा है, वैसा ही कहें और ऐसा नहीं है। CC1101 में पैरामीटर सेट करने के लिए कई रजिस्टर हैं। यह सब वर्णित है, कुछ उलझन में है, लेकिन, अंत में, कुछ प्रयास में महारत हासिल करने के बाद।



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



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



PIC के साथ नग्न CC1101


CC1101 में एक एकीकृत नियंत्रक है, इसलिए इसे SPI इंटरफ़ेस के माध्यम से पूरी तरह से बुद्धिमान कमांड सिस्टम का उपयोग करके नियंत्रित किया जा सकता है।



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



चूंकि मानक रेडियो इंजीनियर प्रोग्रामिंग नियंत्रकों से सबसे अधिक भाग के लिए है, इसलिए PIC मंच को चुना गया क्योंकि इन नियंत्रकों के लिए PICBASIC जैसी भाषा है।



मुझे नहीं पता कि क्या आज सी को रेडियो इंजीनियरों के लिए पढ़ाया जाता है, लेकिन इससे पहले, उन्होंने निश्चित रूप से BASIC को पढ़ाया है, और इसका अध्ययन करना एक सवाल नहीं है। बेशक, आप बेसिक पर टीसीपी / आईपी नहीं लिख सकते हैं, लेकिन इस तरह की सरल भाषा का उपयोग सरल कार्यों को लिखने के लिए किया जा सकता है जैसे कि किसी पते पर कुछ भेजना या कुछ प्राप्त करना, और इससे भी अधिक एसपीआई के माध्यम से रजिस्टर पढ़ना। और CC1101 के साथ पूरा संवाद रजिस्टरों के साथ SPI का एक निरंतर आदान-प्रदान है और कुछ नहीं!



व्यावहारिक कार्यान्वयन


PIC18F2455 पर आधारित इस तरह के बोर्ड को इकट्ठा किया गया था।



छवि



मुझे कहना होगा कि यह प्रोटोटाइप केवल रेडियो चैनल के मापदंडों को बदलते समय संचार की गुणवत्ता की जांच करने के लिए इकट्ठा किया गया था, इसलिए किसी भी सेंसर या अन्य बाहरी उपकरणों को जोड़ने के लिए कोई इंटरफ़ेस कनेक्टर नहीं हैं। जैसा कि चित्र में देखा जा सकता है, इस प्रकार हैं:

- सूचक एलईडी (2-रंग);

- ध्वनि उत्सर्जक;

- एक वास्तविक समय घड़ी के लिए 32768 हर्ट्ज पर क्वार्ट्ज;

- यूएसबी इंटरफ़ेस;

- चिप एंटीना;

- USB से रिचार्जेबल बैटरी।



योजना यहां प्रस्तुत है



सर्किट में कोई पावर स्विच नहीं है, एंटीना को सशर्त रूप से दिखाया गया है।



यह पोस्ट संपूर्ण कार्यक्रम प्रदान नहीं करता है, लेकिन इसमें CC1101 की सभी विशेषताओं का बिल्कुल उपयोग नहीं किया गया है।



विशेष रूप से, WOR मोड सक्रिय नहीं था। सिग्नल की उपस्थिति की जाँच करने के साथ स्टैंडबाय मोड सीधे PIC18F2455 और एक वास्तविक समय टाइमर का उपयोग करके किया गया था।



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



SPI के माध्यम से CC1101 को नियंत्रित करने के लिए रूटीन का मुख्य खंड इस तरह दिखता है:



wt_rd_reg:

'रजिस्टर पढ़ें / लिखें

'

सीएस =% ०

ठहराव 300

SSPBUF = अब

GoSub letclear 'बफर के साफ़ होने की प्रतीक्षा करें

[0] = SSPBUF 'ने पहली बाइट पढ़ी

SSPBUF = DAT '

GoSub letclear 'बफर के साफ़ होने की प्रतीक्षा करें

एक [1] = एसएसपीबीयूपी ने दूसरी बाइट पढ़ी

सीएस =% १

वापसी



wt_rd_fifo:

'पढ़ो-लिखो फीफो

'

SSPBUF = DAT

GoSub letclear 'बफर के साफ़ होने की प्रतीक्षा करें

d [i] = SSPBUF 'ने प्रतिक्रिया बाइट पढ़ी

वापसी



sndstrobe:

'CC1101 पर नियंत्रण स्ट्रोब भेजना

'

सीएस =% ०

ठहराव 300

SSPBUF = अब

GoSub letclear 'बफर के साफ़ होने की प्रतीक्षा करें

[0] = SSPBUF 'ने पहली बाइट पढ़ी

ठहराव 800

SSPBUF = SNOP 'खाली

GoSub letclear 'बफर के साफ़ होने की प्रतीक्षा करें

एक [1] = एसएसपीबीयूपी ने दूसरी बाइट पढ़ी

सीएस =% १

वापसी





letclear:

यदि SSPIF = 0 तो लेटक्लेयर 'SPI इंटरप्ट फ्लैग की प्रतीक्षा करें

पॉज़यूएस 25 '25uS फ्रॉड कारक

SSPIF = 0 'रीसेट ध्वज



यहां:

अब - वर्तमान कमांड,

DAT - वर्तमान डेटा,

d [i] - FIFO से डेटा संग्रहीत करने के लिए एक सरणी, FIFO की लंबाई से कम नहीं हो सकती,

सीएस - चिप का चयन करें।



प्रयोगात्मक रूप से ठहराव निर्धारित किए जाते हैं। यह संभव है कि किसी अन्य नियंत्रक के साथ अन्य देरी की आवश्यकता होगी या उन्हें काफी कम किया जा सकता है।



कमांड कोड के लिए, आपको मूल विवरण देखने की जरूरत है।



रजिस्टर के मूल्य EEPROM PIC18F2455 में दर्ज किए गए थे, जहां से उन्हें आवश्यकतानुसार पढ़ा गया था, और EEPROM में पता रजिस्टर के पते से मेल खाता है, जो आपको वांछित मूल्यों को आसानी से लोड करने और हमेशा सेटिंग्स की जांच करने की अनुमति देता है।



व्यावहारिक परिणाम


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



मुख्य बात यह है कि यह स्पष्ट रूप से स्पष्ट है कि कहां क्या पैरामीटर बदलता है, और यह कैसे होता है, और इसके साथ क्या करना है, और इसे कैसे लागू करना है। PICBASIC का उपयोग करना, सी भाषा के ज्ञान के बिना एक रेडियो इंजीनियर को सब कुछ स्पष्ट है और एम्बेडेड अनुप्रयोगों को लिखने में विशेष कौशल।



कार्यक्रम को पूरी तरह से पूरा करने का कोई उद्देश्य नहीं था। यदि यह दिलचस्प है, तो इसे पोस्ट किया जा सकता है, लेकिन इस साइट पर नहीं। वास्तव में, अगर यह जलती हुई दिलचस्प होगी, तो आप एक पुस्तकालय की तरह कुछ भी व्यवस्थित कर सकते हैं।



प्रयुक्त लिंक


1. CC1101, सभी दस्तावेज

2. स्मार्टआरएफ स्टूडियो

3. माइक्रोइंजीनियरिंग लैब्स, कंपनी की वेबसाइट

4. CC1101_Tester, विद्युत योजनाबद्ध

5. एसपीआई, PICBASIC में प्रबंधन

6. CC1101, डेटशीट



All Articles