1 ভূমিকা
শিল্প সরঞ্জাম যোগাযোগে সাধারণত বিভিন্ন ধরণের হার্ডওয়্যার এবং সফ্টওয়্যার পণ্য জড়িত থাকে, সেইসাথে শিল্প অটোমেশন ডিভাইসগুলির সাথে স্ট্যান্ডার্ড কম্পিউটার প্ল্যাটফর্ম (ব্যক্তিগত কম্পিউটার বা ওয়ার্কস্টেশন) সংযোগ করতে ব্যবহৃত প্রোটোকলগুলি। ফলস্বরূপ, বেশিরভাগ অটোমেশন ডিভাইসগুলিকে সাধারণ সিরিয়াল কমান্ডগুলি চালানোর জন্য ডিজাইন করা হয়েছে যা ব্যক্তিগত কম্পিউটারে পাওয়া স্ট্যান্ডার্ড সিরিয়াল পোর্টগুলির সাথে সামঞ্জস্যপূর্ণ বা সিরিয়াল পোর্ট কার্ডগুলিতে যোগ করা-৷ RS-232 বর্তমানে PC এবং শিল্প যোগাযোগ সেক্টরে সর্বাধিক ব্যবহৃত সিরিয়াল ইন্টারফেস। RS-232 কে একটি একক-সম্পন্ন মান হিসাবে সংজ্ঞায়িত করা হয়েছে যা কম-গতির সিরিয়াল যোগাযোগে যোগাযোগের দূরত্ব বাড়ানোর জন্য ডিজাইন করা হয়েছে। কারণ RS-232 ট্রান্সমিটার এবং রিসিভারের মধ্যে একটি সাধারণ সিগন্যাল গ্রাউন্ড শেয়ার করে, এটি ডিফারেনশিয়াল সিগন্যাল ব্যবহার করতে পারে না; অন্যথায়, সাধারণ-মোড শব্দ সংকেত সিস্টেমের সাথে মিলিত হবে। RS-232 স্ট্যান্ডার্ড শুধুমাত্র 15 মিটার সর্বোচ্চ দূরত্ব এবং 20 kbit/s সর্বোচ্চ সিগন্যাল ট্রান্সমিশন রেট নির্দিষ্ট করে।
CAN, সংক্ষেপে "কন্ট্রোলার এরিয়া নেটওয়ার্ক," আন্তর্জাতিকভাবে সবচেয়ে বেশি ব্যবহৃত ফিল্ডবাসগুলির মধ্যে একটি। CAN বাসের সমন্বয়ে গঠিত একটি একক নেটওয়ার্ক নেটওয়ার্ক হার্ডওয়্যারের বৈদ্যুতিক বৈশিষ্ট্য দ্বারা সীমাবদ্ধ। একটি মাল্টি-মাস্টার সিরিয়াল কমিউনিকেশন বাস হিসেবে, CAN-এর মৌলিক ডিজাইনের স্পেসিফিকেশনগুলির জন্য উচ্চ বিট রেট এবং ইলেক্ট্রোম্যাগনেটিক হস্তক্ষেপের জন্য শক্তিশালী প্রতিরোধের প্রয়োজন, সেইসাথে যোগাযোগ বাসে ঘটতে থাকা কোনও ত্রুটি সনাক্ত করার ক্ষমতা। এমনকি যখন সিগন্যাল ট্রান্সমিশন দূরত্ব 10 কিমি পৌঁছায়, তখনও CAN 50 kbit/s পর্যন্ত ডেটা ট্রান্সমিশন রেট প্রদান করতে পারে। সারণি 1 একটি CAN বাসে যেকোনো দুটি নোডের মধ্যে সর্বাধিক সংক্রমণ দূরত্ব এবং তাদের বিট রেটগুলির মধ্যে সম্পর্ক দেখায়।
একটি CAN বাস সিস্টেমে একটি ত্রিভুজাকার কনফিগারেশনে যেকোনো দুটি নোডের মধ্যে সর্বোচ্চ দূরত্ব
বিট রেট/কেবিপিএস 1000 500 250 125 100
সর্বোচ্চ দূরত্ব/মি 40 130 270 530 620
বিট রেট (kbps) 50 20 10 5
সর্বোচ্চ দূরত্ব (মি) 1300 3300 6700 10000
দেখা যায়, রিয়েল-টাইম পারফরম্যান্স, অভিযোজনযোগ্যতা, নমনীয়তা এবং নির্ভরযোগ্যতার ক্ষেত্রে CAN বাস হল RS-232-এর জন্য একটি উচ্চতর সিরিয়াল বাস। যখন দুটি সিরিয়াল ডিভাইস অনেক দূরে অবস্থিত এবং RS-232 এর মাধ্যমে সরাসরি সংযুক্ত করা যায় না, তখন CAN বাসের মাধ্যমে সিরিয়াল ডিভাইসগুলির নেটওয়ার্ক আন্তঃসংযোগ অর্জন করতে RS-232 কে CAN-এ রূপান্তর করা যেতে পারে।
যাইহোক, RS-232 এবং CAN ভোল্টেজের মাত্রা এবং ফ্রেম বিন্যাসের ক্ষেত্রে উল্লেখযোগ্যভাবে পৃথক। বিশেষভাবে:
RS-232 স্ট্যান্ডার্ড নেতিবাচক যুক্তি ব্যবহার করে, লজিক "0" হিসাবে +3V এবং +15V এর মধ্যে যেকোন ভোল্টেজ লেভেল এবং লজিক "1" হিসাবে -3V এবং -15V এর মধ্যে যে কোনও ভোল্টেজ লেভেলকে সংজ্ঞায়িত করে। CAN সংকেত, অন্যদিকে, ডিফারেনশিয়াল ভোল্টেজ ব্যবহার করে প্রেরণ করা হয়। দুটি সংকেত লাইনকে "CAN_H" এবং "CAN_L" বলা হয়। স্থির অবস্থায়, উভয়ই প্রায় 2.5V; এই অবস্থাটিকে একটি যৌক্তিক "1" হিসাবে উপস্থাপিত করা হয় এবং এটিকে "পশ্চাদপসরণকারী" হিসাবেও উল্লেখ করা হয়। যখন CAN_H CAN_L-এর চেয়ে বেশি হয়, তখন এটি একটি যৌক্তিক "0" প্রতিনিধিত্ব করে, যা "প্রধান" নামে পরিচিত৷ প্রভাবশালী অবস্থায়, সাধারণ ভোল্টেজের মানগুলি হল: CAN_H=3.5V, CAN_L=1.5V;
RS-232 সিরিয়াল পোর্টের ফ্রেম বিন্যাস হল: একটি স্টার্ট বিট, আটটি ডেটা বিট, একটি প্রোগ্রামেবল নবম বিট (যা ট্রান্সমিশন এবং রিসেপশন উভয়ের জন্য ঠিকানা/ডেটা বিট হিসাবে কাজ করে), এবং একটি স্টপ বিট। CAN ডেটা ফ্রেম ফরম্যাটে রয়েছে: ফ্রেম হেডার + আইডি + ডেটা (যা দুটি ফর্ম্যাটে বিভক্ত করা যেতে পারে: স্ট্যান্ডার্ড ফ্রেম এবং বর্ধিত ফ্রেম)।
সুতরাং, লেভেল এবং ফ্রেম ফরম্যাট রূপান্তরগুলির মতো রূপান্তরগুলি সম্পাদন করার জন্য ডিজাইনের জন্য একটি মাইক্রোকন্ট্রোলার প্রয়োজন। রূপান্তর প্রক্রিয়া চিত্র 1 এ দেখানো হয়েছে।
RS-232-থেকে-ক্যান রূপান্তরের জন্য 2 হার্ডওয়্যার ডিজাইন
RS-232-থেকে-CAN রূপান্তর ডিভাইস ডিজাইন করার সময়, AT89C52 মাইক্রোকন্ট্রোলার মাইক্রোপ্রসেসর হিসাবে ব্যবহৃত হয়; SJA1000 CAN মাইক্রোকন্ট্রোলার হিসাবে ব্যবহৃত হয়। SJA1000 CAN প্রোটোকলের ফিজিক্যাল লেয়ার এবং ডেটা লিংক লেয়ার ফাংশনগুলিকে একীভূত করে এবং যোগাযোগ ডেটার ফ্রেমিংকে নিষ্ক্রিয়ভাবে পরিচালনা করতে পারে; AT82C250 CAN কন্ট্রোলার এবং ফিজিক্যাল বাসের মধ্যে ইন্টারফেস হিসাবে কাজ করে, বাসের জন্য ডিফারেনশিয়াল ট্রান্সমিশন ক্ষমতা এবং CAN কন্ট্রোলারের জন্য ডিফারেনশিয়াল রিসেপশন ক্ষমতা প্রদান করে। AT82C250 এর পিন 3 এর মাধ্যমে তিনটি ভিন্ন অপারেটিং মোড (উচ্চ-গতি, ঢাল নিয়ন্ত্রণ এবং স্ট্যান্ডবাই) নির্বাচন করা যেতে পারে। পিন 3 গ্রাউন্ড করা হলে, ডিভাইসটি হাই-স্পিড মোডে কাজ করে; উচ্চ-গতির অপটিক্যাল বিচ্ছিন্নতা 6N137 ব্যবহার করে প্রয়োগ করা হয়, যা বহিরাগত সংকেত থেকে হস্তক্ষেপ প্রতিরোধ করে; MAX232 মাইক্রোকন্ট্রোলার ইন্টারফেস চিপের জন্য 232-স্তরের সংকেতগুলিকে TTL স্তরে রূপান্তর করতে ব্যবহৃত হয়। নির্দিষ্ট হার্ডওয়্যার ইন্টারফেস সার্কিটের বিশদ বিবরণের জন্য, অনুগ্রহ করে SJA1000-এর জন্য প্রাসঙ্গিক সংস্থানগুলি পড়ুন; আরও ব্যাখ্যা এখানে প্রদান করা হয় না. যাইহোক, নিম্নলিখিত পয়েন্ট লক্ষ করা উচিত।
(1) একটি 120Ω প্রতিরোধক CAN বাসের উভয় প্রান্তে বাস প্রতিবন্ধকতার সাথে মেলে, যার ফলে হস্তক্ষেপের প্রতিরোধ ক্ষমতা এবং ডেটা যোগাযোগের নির্ভরযোগ্যতা উন্নত হয়। অনুশীলনে, যাইহোক, এটি নিশ্চিত করার জন্য যথেষ্ট যে CAN নেটওয়ার্কে "CAN_H" এবং "CAN_L" এর মধ্যে শান্ট প্রতিরোধক 60Ω।
(2) SJA1000 এর পিন 20 (RX1) ব্যবহার না করার সময় গ্রাউন্ড করা যেতে পারে (নির্দিষ্ট কারণের জন্য সফ্টওয়্যার ডিজাইন দেখুন); সেটিং বিট CDR.6 এর সাথে মিলিত হলে, এটি বাসের দৈর্ঘ্য উল্লেখযোগ্যভাবে বৃদ্ধি করতে পারে।
(3) TX0 এবং TX1 পিনের সংযোগ পদ্ধতি সিরিয়াল আউটপুটের স্তর নির্ধারণ করে। নির্দিষ্ট বিবরণের জন্য আউটপুট কন্ট্রোল রেজিস্টার (OCR) এর সেটিংস দেখুন।
(4) একটি ঢাল প্রতিরোধক AT82C250 এবং গ্রাউন্ডের RS পিনের মধ্যে সংযুক্ত। প্রতিরোধের মান বাস যোগাযোগের গতির উপর ভিত্তি করে যথাযথভাবে সামঞ্জস্য করা যেতে পারে, সাধারণত 16 kΩ থেকে 140 kΩ পর্যন্ত।
(5) MAX232-এর জন্য চারটি ইলেক্ট্রোলাইটিক ক্যাপাসিটর প্রয়োজন-C1, C2, C3 এবং C4- যা অভ্যন্তরীণ শক্তি রূপান্তরের জন্যও ব্যবহৃত হয়। সকলের রেটিং 1 μF/25 V; ট্যানটালাম ক্যাপাসিটারগুলি সুপারিশ করা হয় এবং সেগুলিকে যতটা সম্ভব চিপের কাছাকাছি রাখা উচিত। একটি 0.1 μF ডিকপলিং ক্যাপাসিটর অবশ্যই ভিসিসি পাওয়ার সাপ্লাই এবং গ্রাউন্ডের মধ্যে সংযুক্ত থাকতে হবে।
RS-232 থেকে CAN রূপান্তরের জন্য 3 সফটওয়্যার ডিজাইন
মাইক্রোপ্রসেসর নিয়ন্ত্রণের অধীনে, RS-232 এবং CAN-এর মধ্যে ডেটা আদান-প্রদানের সময় সিরিয়াল পোর্ট রিসেপশন এবং CAN ইন্টারাপ্ট ব্যবহার করা অপারেশনাল দক্ষতা উন্নত করতে পারে। প্রধান প্রোগ্রাম ফ্লোচার্ট চিত্র 2 এ দেখানো হয়েছে। SJA1000 শুধুমাত্র রিসেট মোডে শুরু করা যেতে পারে; এর মধ্যে প্রাথমিকভাবে অপারেটিং মোড, ক্লক ডিভিশন এবং অ্যাকসেপ্টেন্স ফিল্টার রেজিস্টার সেট করা, বড রেট প্যারামিটার কনফিগার করা এবং ইন্টারাপ্ট এনাবল রেজিস্টার সেট করা অন্তর্ভুক্ত।
ডেটা সঠিকভাবে প্রেরণ করা যায় কিনা তাও বড রেট এবং প্রবাহ নিয়ন্ত্রণের উপর নির্ভর করে, যেগুলি এমন দিক যা সফ্টওয়্যার ডিজাইনের সময় উপেক্ষা করা যায় না। অতএব, নিম্নলিখিত বিভাগগুলি CAN বড রেট কনফিগারেশন, সিরিয়াল পোর্ট বড রেটগুলির স্বয়ংক্রিয় সনাক্তকরণ এবং সিরিয়াল পোর্ট ডেটা প্রবাহ নিয়ন্ত্রণের উপর ফোকাস করবে।

3.1 CAN ফিল্টার রেট সেট করা
CAN প্রোটোকলের মূল উপাদানগুলির মধ্যে একটি হল বড রেট। ব্যবহারকারীরা বিট পিরিয়ডের মধ্যে বিট স্যাম্পলিং পয়েন্টের অবস্থান এবং নমুনার সংখ্যা সেট করতে পারে, যাতে তারা তাদের অ্যাপ্লিকেশনের জন্য অবাধে নেটওয়ার্ক কর্মক্ষমতা অপ্টিমাইজ করতে পারে। যাইহোক, এই অপ্টিমাইজেশন প্রক্রিয়া চলাকালীন, বিট টাইমিং প্যারামিটারের জন্য ব্যবহৃত রেফারেন্স অসিলেটরের সহনশীলতা এবং সিস্টেমের মধ্যে বিভিন্ন সংকেতগুলির প্রচার বিলম্বের মধ্যে সম্পর্কের দিকে মনোযোগ দিতে হবে।
সিস্টেমের বিট রেট, fBil, সময়ের প্রতি ইউনিটে প্রেরিত ডেটা বিটের সংখ্যাকে প্রতিনিধিত্ব করে, যেমন, বড রেট fBit=1/tBit। নামমাত্র বিট টাইমিং তিনটি নন-ওভারল্যাপিং সেগমেন্ট নিয়ে গঠিত: SYNC_SEG, TSEG1 এবং TSEG2। এই তিনটি সময়ের সেগমেন্ট যথাক্রমে tSYNC_SEG, tTSEG1 এবং tTSEG2 হিসাবে চিহ্নিত করা হয়। তাই, নামমাত্র বিট পিরিয়ড tBit হল এই তিনটি সময়ের সেগমেন্টের সমষ্টি।
tBit=tSYNC_SEG + tTSEG1 + tTSEG2
বিট পিরিয়ডের মধ্যে, এই সেগমেন্টগুলিকে একটি মৌলিক সময়ের এককের পূর্ণসংখ্যা গুণে প্রকাশ করা হয়। এই সময়ের একককে টাইম কোটা (TQ) বলা হয় এবং একটি টাইম কোটার সময়কাল হল CAN সিস্টেম ক্লক (tSCL) এর একটি চক্র, যা অসিলেটর ক্লক পিরিয়ড (tCLK) থেকে প্রাপ্ত। CAN সিস্টেম ঘড়িটি প্রিসকেলার ফ্যাক্টর (বড রেট প্রিসেট মান, বিআরপি) প্রোগ্রামিং করে সামঞ্জস্য করা যেতে পারে। বিশেষভাবে:
tSCL=BRP × 2tCLK=2BPR/fCLK
CAN বিট টাইমিং গণনার জন্য আরেকটি অত্যন্ত গুরুত্বপূর্ণ সময়ের ব্যবধান হল সিঙ্ক্রোনাইজেশন জাম্প প্রস্থ (SJW), যার সময়কাল tSJW। SJW সেগমেন্ট বিট চক্রের অংশ নয়; বরং, এটি একটি রিসিঙ্ক্রোনাইজেশন ইভেন্টের সময় সর্বাধিক সংখ্যক TQs সংজ্ঞায়িত করে যার দ্বারা বিট চক্রটি প্রসারিত বা ছোট করা হয়। উপরন্তু, CAN প্রোটোকল ব্যবহারকারীদের বিট স্যাম্পলিং মোড (SAM) নির্দিষ্ট করার অনুমতি দেয়, যা হয় একক-নমুনা মোড বা তিনটি-নমুনা মোড হতে পারে (তিনটি নমুনা থেকে একটি ফলাফল নির্বাচন করা)। একক-নমুনা মোডে, স্যাম্পলিং পয়েন্টটি TSEG1 সেগমেন্টের শেষে থাকে। তিনটি-নমুনা মোডে, একক-নমুনা মোডের তুলনায় দুটি অতিরিক্ত নমুনা পয়েন্ট নেওয়া হয়; এগুলি TSEG1 সেগমেন্টের শেষের আগে অবস্থিত, একটি TQ দ্বারা পৃথক করা হয়েছে।

উপরে উল্লিখিত BPR, SJW, SAM, TESG1, এবং TESG2 সবগুলি ব্যবহারকারী দ্বারা CAN কন্ট্রোলারের অভ্যন্তরীণ রেজিস্টার BTR0 এবং BTR1 এর মাধ্যমে সংজ্ঞায়িত করা যেতে পারে। বিশদ বিবরণ চিত্র 3 এ দেখানো হয়েছে। BTR0 এবং BTR1 সেট করার পরে, প্রকৃত বড রেট পরিসীমা হল:
সর্বাধিক=1/(tBit - tSJW), সর্বনিম্ন=1/(tBit + tSJW)
3.2 সিরিয়াল পোর্ট বড রেট সনাক্তকরণ
যখন একটি সিরিয়াল ডিভাইস হোস্ট হিসাবে কাজ করে, আপনি যদি সেই সময়ে রূপান্তর ডিভাইসের সিরিয়াল পোর্ট বড রেট সনাক্ত করতে চান, আপনি প্রথমে হোস্টের রিসিভ বড রেট সেট করতে পারেন (উদাহরণস্বরূপ 9600 বড) এবং টার্মিনাল থেকে একটি নির্দিষ্ট অক্ষর (উদাহরণস্বরূপ একটি ক্যারেজ রিটার্ন) পাঠাতে পারেন৷ এইভাবে, হোস্ট প্রাপ্ত অক্ষর তথ্যের উপর ভিত্তি করে রূপান্তর ডিভাইসের যোগাযোগ বড রেট নির্ধারণ করতে পারে। ক্যারেজ রিটার্ন ক্যারেক্টারের ASCII মান হল 0DH; বিভিন্ন বড হারে প্রাপ্ত মানগুলি সারণি 2 এ তালিকাভুক্ত করা হয়েছে।
বাইট বিভিন্ন Baud হারে প্রাপ্ত
বড রেট (বিট/সে) প্রাপ্ত বাইট (হেক্সাডেসিমেল) বাড রেট (বিট/সে) প্রাপ্ত বাইট (হেক্সাডেসিমেল)
1200 80 4800 E6
1800 F0 9600 0D
2400 78 19200 F*
3.3 সিরিয়াল পোর্ট প্রবাহ নিয়ন্ত্রণ
এখানে ব্যবহৃত "প্রবাহ" শব্দটি ডেটা প্রবাহকে বোঝায়। দুটি সিরিয়াল পোর্টের মধ্যে ট্রান্সমিশনের সময় প্রায়ই ডেটা ক্ষতি হয়। যেহেতু মাইক্রোকন্ট্রোলারের বাফারের ক্ষমতা সীমিত, ডেটা গ্রহণের সময় যদি বাফারটি পূর্ণ থাকে, সেই সময়ে পাঠানো অব্যাহত থাকা কোনো ডেটা হারিয়ে যাবে। ফ্লো কন্ট্রোল কার্যকরভাবে এই সমস্যার সমাধান করে: যখন রিসিভিং এন্ড সময়মতো ডেটা প্রক্রিয়া করতে পারে না, তখন ফ্লো কন্ট্রোল সিস্টেম একটি "রিসিভ করবেন না" সিগন্যাল পাঠায়, যার ফলে সেন্ডিং এন্ডটি "রিজুমে ট্রান্সমিশন" সিগন্যাল না পাওয়া পর্যন্ত ট্রান্সমিট করা বন্ধ করে দেয়। অতএব, প্রবাহ নিয়ন্ত্রণ ডেটা ট্রান্সমিশন প্রক্রিয়া পরিচালনা করে এবং ডেটা ক্ষতি প্রতিরোধ করে। দুটি সাধারণভাবে ব্যবহৃত প্রবাহ নিয়ন্ত্রণ হল হার্ডওয়্যার প্রবাহ নিয়ন্ত্রণ (আরটিএস/সিটিএস, ডিটিআর/সিটিএস, ইত্যাদি সহ) এবং সফ্টওয়্যার প্রবাহ নিয়ন্ত্রণ (XON/XOFF-চালিয়ে/বন্ধ)। নিম্নলিখিত ব্যাখ্যাটি শুধুমাত্র RTS/CTS ব্যবহার করে হার্ডওয়্যার প্রবাহ নিয়ন্ত্রণ পদ্ধতিতে ফোকাস করে।
প্রবাহ নিয়ন্ত্রণের জন্য হার্ডওয়্যার ব্যবহার করার সময়, সিরিয়াল টার্মিনালের RTS এবং CTS পিনগুলি মাইক্রোকন্ট্রোলারের I/O পোর্টগুলির সাথে সংযুক্ত থাকে এবং I/O পোর্টগুলিকে 1 বা 0 এ সেট করে স্টার্ট/স্টপ সিগন্যালগুলি গ্রহণ এবং প্রেরণ করা হয়৷ ডেটা টার্মিনালের সরঞ্জাম (যেমন একটি কম্পিউটার) মাইক্রোকন্ট্রোলার দ্বারা প্রেরিত ডেটা স্টার্ট এবং মাইক্রোকন্ট্রোলার স্টার্ট করার জন্য RTS ব্যবহার করে। কম্পিউটার থেকে ডেটা স্ট্রিম থামান। এই হার্ডওয়্যার হ্যান্ডশেকিং পদ্ধতিটি বাস্তবায়নের জন্য, একটি উচ্চ-স্তরের পতাকা এবং একটি নিম্ন-স্তরের পতাকা প্রাপ্তির বাফারের আকারের উপর ভিত্তি করে প্রোগ্রামিংয়ের সময় সেট করা হয়। যখন বাফারে ডেটার পরিমাণ উচ্চ-স্তরের থ্রেশহোল্ডে পৌঁছায়, তখন প্রাপ্তির প্রান্তে CTS লাইন কম সেট করা হয় (লজিক 0)। যখন ট্রান্সমিটিং প্রান্তে থাকা প্রোগ্রামটি সনাক্ত করে যে CTS কম, তখন এটি গ্রহনকারী বাফারে ডেটার পরিমাণ নিম্ন-স্তরের থ্রেশহোল্ডের নিচে না আসা পর্যন্ত এবং CTS উচ্চ সেট না হওয়া পর্যন্ত ডেটা প্রেরণ করা বন্ধ করে দেয়। প্রাপক ডিভাইস ডেটা গ্রহণের জন্য প্রস্তুত কিনা তা নির্দেশ করতে RTS ব্যবহার করা হয়।
3.4 সাবরুটিন পেতে পারেন
PeliCAN ফর্ম্যাট স্ট্যান্ডার্ড এবং বর্ধিত ফ্রেম উভয় সমর্থন করে। CAN মোডটি CDR.7 ব্যবহার করে ক্লক ডিভাইডার রেজিস্টারে কনফিগার করা যেতে পারে (BasicCAN এর জন্য 0, PeliCAN এর জন্য 1)। CAN ডেটা গ্রহণ করার সময়, ফ্রেমের তথ্যের FF বিটটি একটি মানক বা প্রসারিত ফ্রেম কিনা তা নির্ধারণ করতে ব্যবহৃত হয় এবং RTR বিটটি একটি দূরবর্তী ফ্রেম এবং একটি ডেটা ফ্রেমের মধ্যে পার্থক্য করতে ব্যবহৃত হয়। নিম্নরূপ সাবরুটিন পেতে পারেন:
;//////////////////////////////////////////////////////////////////
;// CAN ডেটা রিসেপশন/ 2-বাইট আইডি সহ একটি ফ্রেম বিন্যাসে একীভূত//
;///////////////////////////////////////////////////////////////////////
RECAN:
MOV R0, #C_RE ; মাইক্রোকন্ট্রোলারের অভ্যন্তরীণ বাফারের ঠিকানা শুরু করুন
MOV DPTR, #RXBUF ; রিসিভ বাফারের বিষয়বস্তু পড়ুন এবং সংরক্ষণ করুন
MOVX A, @DPTR ; CAN বাফারের দ্বিতীয় বাইট পড়ুন
MOV @R0, A ; সংরক্ষণ করুন
JB ACC.7, EFF_RE ; FF বিট: 0=SFF, 1=EFF
MOV R2, #0
SJMP SFF_RE ; আইডি নম্বরের উপর নির্ভর করে, "ডেটা বাইট" ক্যাপচার করা অবস্থান পরিবর্তিত হয়
EFF_RE: MOV R2, #2
SFF_RE: MOV R2, #2
SFF_RE:
JB ACC.6, EXIT_RECAN ; RTR বিট পরীক্ষা করুন; যদি 1 (রিমোট ফ্রেম), জাম্প আউট
ANL A, #0FH
MOV R3, A ; এই মুহুর্তে, মাঝের 4 বিট ডেটা দৈর্ঘ্যের প্রতিনিধিত্ব করে
MOV C_NUM, A ; প্রাপ্ত ফ্রেমের দৈর্ঘ্য R3 এবং R5 এ সংরক্ষণ করুন
RDATA0:
INC DPTR; 2-বাইট আইডি
INC R0
MOVX A, @DPTR
MOV @R0, এ
আইএনসি ডিপিটিআর
MOVX A, @R0, A
আইএনসি ডিপিটিআর
MOVX A, @DPTR
MOV @R0, এ
MOV A, R2 ; EFF হলে, দুটি-বাইট আইডি এড়িয়ে যান
JZ DRATA1
আইএনসি ডিপিটিআর
আইএনসি ডিপিটিআর
ডেটা 1: ; ডেটা বাইট
আইএনসি ডিপিটিআর
INC R0
MOVX A, @DPTR
MOV @R0, এ
DJNZ R3, RDATA1
EXIT_RECAN:
RET
4 উপসংহার
কম্পিউটারের ক্ষুদ্রায়ণ পরিমাপ এবং নিয়ন্ত্রণ যন্ত্রের বুদ্ধিমান বিকাশের জন্য প্রয়োজনীয় শর্ত সরবরাহ করেছে, মাইক্রোপ্রসেসর ভিত্তিক টার্মিনাল ডিভাইসগুলিকে উন্নততর ডিজিটাল যোগাযোগ ক্ষমতার অধিকারী করতে সক্ষম করে। ক্রমবর্ধমান সংখ্যক স্মার্ট টার্মিনালের উত্থানের সাথে সাথে নেটওয়ার্ক আর্কিটেকচার, প্রোটোকল, রিয়েল টাইম পারফরম্যান্স, সেইসাথে প্রযোজ্যতা, নমনীয়তা, নির্ভরযোগ্যতা এবং এমনকি খরচের উপর উচ্চ চাহিদা রাখা হচ্ছে। ফলস্বরূপ, ফিল্ডবাস প্রযুক্তি ভবিষ্যতের উন্নয়নের জন্য মহান প্রতিশ্রুতি রাখে। CAN বাসের ফ্রেম কাঠামোতে একটি শনাক্তকারী (আইডি) রয়েছে, যা একটি ডিভাইস নেটওয়ার্কের মধ্যে একাধিক নেটওয়ার্ক হোস্ট থাকা সম্ভব করে তোলে; অর্থাৎ, এই নেটওয়ার্ক হোস্টগুলির মাধ্যমে, সমগ্র ডিভাইস নেটওয়ার্কের কর্মক্ষম অবস্থা পর্যবেক্ষণ করা যেতে পারে, এবং সংশ্লিষ্ট নিয়ন্ত্রণ সিদ্ধান্ত নেওয়া যেতে পারে। এই ডিভাইসটি এখন সম্পূর্ণরূপে বিকশিত হয়েছে এবং ব্যবহারিক প্রয়োগে চমৎকার ফলাফল অর্জন করেছে।




