কম্পিউটার যোগাযোগে এম্বেড করার জন্য ভাল আরএস 232-ভিত্তিক প্রোটোকল


10

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

আমি মোডবাসের দিকে নজর রেখেছি, যা একটি কার্যকর বিকল্প হিসাবে মনে হচ্ছে, তবে আরও ভাল বিকল্প আছে কিনা তা আমি দেখতে চেয়েছিলাম।


2
প্রয়োজনীয়তা ঠিক কি?

সাধারণ পরামর্শ খুঁজছেন। সরলতা এবং কম ওভারহেড এই প্রকল্পের মূল লক্ষ্য হবে।
কম্পিউটারিশ

1
দুঃখিত, আমি এও বোঝাতে

আমার এর জন্য পরিমাণগত পদক্ষেপ নেই, তবে অনেক বেশি এবং গতিও বিশাল সমস্যা নয়।
কম্পিউটারিশ

7
খুব বেশি এবং গতি ইস্যু না হয়ে মানব পঠনযোগ্য কোনও কিছুর পক্ষে দৃgue়তার সাথে তর্ক করে, কারণ এটি বিকাশ এবং ডিবাগিংকে আরও সহজ করে তোলে। আপনি যখন কোনও টার্মিনাল সংযুক্ত করতে পারেন এবং লিঙ্কের উভয় প্রান্তের জন্য নিজেকে প্রতিস্থাপন করতে পারেন তা দুর্দান্ত।
ক্রিস স্ট্রাটন

উত্তর:


4

ওপি এমন পরিস্থিতির জন্য সিরিয়াল প্রোটোকল চেয়েছে যেখানে " অনেক [ডেটা নয়] এবং গতি বিশাল সমস্যা নয় "। মোডবাস ওপি মোডবাসে উল্লিখিত হয়েছে যে ওভার মোডবাস ওভার আরএস -4355 কোনও দ্রুত প্রোটোকল নয়। যদিও এটি কোনও অনুমান নয়, এটি কুলুঙ্গি সম্পর্কে ধারণা দেয়।

আমি এই কুলুঙ্গির জন্য কেবল দুটি সাধারণ স্ট্যান্ডার্ড প্রোটোকল সম্পর্কে ভাবতে পারি:

  • NEMA 0183 । সাধারণ পাঠ্য ASCII প্রোটোকল। মানব পাঠযোগ্য. পয়েন্ট-টু পয়েন্ট কেবল। মাল্টি-ড্রপ বাস সমর্থন করে না।
  • মোডবাস যা ইতিমধ্যে ওপিতে উল্লেখ করা হয়েছিল

খুব প্রায়শই, যখন এমবেডেড প্রোগ্রামাররা ওপি-র মতো পরিস্থিতিতে থাকে, তারা স্ক্র্যাচ থেকে তাদের নিজস্ব সিরিয়াল যোগাযোগ প্রোটোকলগুলি ডিজাইন করে।


10

কিছু এম্বেড থাকা সিস্টেম প্রোটোকল, যার মধ্যে বেশ কয়েকটি অত্যন্ত সাধারণ, এম্বেডড সিস্টেমে তালিকাভুক্ত : সাধারণ প্রোটোকল , সহ:

  • ক্ষুদ্র এম্বেড নেটওয়ার্ক (TEN)
  • নেটওয়ার্কযুক্ত এম্বেডেড সিস্টেমগুলির জন্য মাইক্রোকন্ট্রোলার ইন্টারপ্রেটার (MINES)
  • তবুও আরেকটি স্কেলেবল প্রোটোকল (ওয়াইএএসপি)
  • স্থানীয় আন্তঃসংযোগ নেটওয়ার্ক (লিন)
  • সিরিয়াল সার্ভো কন্ট্রোলার (এসএসসি)
  • রোবট অপারেটিং সিস্টেম সিরিয়াল (রোসরিয়াল)
  • netstring
  • বিভিন্ন মাঠ বাস
  • Modbus
  • কন্ট্রোলার এরিয়া নেটওয়ার্ক (সিএন)
  • ফিরমাতা (আপনাকে ধন্যবাদ, জিপি!)

সম্ভবত আপনার প্রয়োগের জন্য এই প্রোটোকলগুলির মধ্যে একটি পর্যাপ্ত হতে পারে, বা কেবল সামান্য টুইচিংয়ের সাথে।


6

আমি আপনার নিজের ভোট দিয়েছি, এবং এটি যতটা সম্ভব সহজ রাখব।

আমি বিভিন্ন নিয়ন্ত্রণ অ্যাপ্লিকেশনগুলির জন্য প্রচুর সিরিয়াল প্রোটোকল নিয়ে কাজ করেছি এবং আমি আপনাকে অন্তর্ভুক্ত করার জন্য সুপারিশ করতে পারি এমন কয়েকটি বিষয় হ'ল:

  • অন্যত্র ব্যবহৃত না হওয়া অক্ষরগুলি শুরু করুন এবং থামান
  • কিছু প্রকারের চেকসাম / ত্রুটি পরীক্ষা করা
  • প্রবাহ নিয়ন্ত্রণ / সিগন্যালিংয়ের কিছু পদ্ধতি, বিশেষত আপনার দ্বি-দিকনির্দেশিত কমগুলি প্রয়োজন হলে।

খুব মৌলিক উদাহরণ হিসাবে, আপনি আপনার ডেটাটিকে ASCII অক্ষরে রূপান্তর করতে পারেন এবং এটি শুরু / স্ট্রাক্ট অক্ষরের ভিতরে আটকে রাখতে পারেন:

বাইট মান 0x7A প্রেরণ করতে, প্রেরিত ডেটা হবে (7 এ), যেখানে () নির্বাচিত শুরু / স্টপ চার্স এবং 7 এবং এ দুটি আসকি চর হয়। ঠিক আছে এটি প্রচুর ওভারহেড যুক্ত করে, তবে এর অর্থ আপনি বেসিক টার্মিনাল সফ্টওয়্যার দিয়ে ডিবাগ করতে পারেন।


5

যদি আপনার ডেটা এক্সবিসের মধ্য দিয়ে চলেছে, আপনার পাল্টানো অক্ষরগুলির সাথে মডিউলগুলি এপিআই মোডে রেখে দেওয়া উচিত, আপনার ডেটাটিকে লজিক্যাল প্যাকেটে ভাগ করা উচিত এবং এই সুযোগটি গ্রহণ করা উচিত যে এপিআই মোডে এক্সবিতে দেওয়া একটি প্যাকেট অক্ষত পৌঁছে যাবে বা একদমই না. আপনার প্রোটোকলটি 1-255 বাইটের অংশগুলি সংক্রমণের চারপাশে ডিজাইন করুন এবং এক্সবি মডিউলগুলিকে প্রতিটি খণ্ডের মধ্যে কীভাবে ডেটা সরবরাহ করা যায় তা নিয়ে চিন্তা করতে দিন। পৃথক প্যাকেটগুলির মধ্যে বা তাদের মধ্যে মহকুমাগুলির অখণ্ডতা বজায় রাখার বিষয়ে চিন্তা করবেন না। ডিজি মডিউলগুলি এটি যত্ন নেওয়ার জন্য একটি ভাল কাজ করবে। আপনার সবচেয়ে বড় বিষয়টি উদ্বিগ্ন হওয়ার দরকার হ'ল এটি হ'ল প্যাকেট প্রেরণকারী নোড এমনকি যদি বিশ্বাস করে যে এটি সরবরাহ করা হয়নি এবং প্রতিস্থাপনটি প্রেরণ করেছে তবে প্রাপক এটি কোনওভাবেই শেষ করতে পারে - সম্ভবত প্রতিস্থাপন পাওয়ার পরেও। আপনি যদি আপনার প্রোটোকলটি ডিজাইন করেন তবে জিনিসগুলি সবচেয়ে সহজ হতে পারে যাতে একদিকে "মাস্টার" থাকে; যদি মাস্টার এক টুকরো ডেটা জিজ্ঞাসা করে তবে ক্রীতদাসকে এটি একবার প্রেরণ করা উচিত এবং মাস্টার এটি পেয়েছে কিনা তা নিয়ে চিন্তা করা উচিত নয়। মাস্টার যদি চান ডেটা না পান তবে এটি আবার অনুরোধ করতে পারে।

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


3

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


3

আমার এটির অনুরূপ প্রশ্ন ছিল এবং খুব কম এভিআর ইত্যাদির জন্য যথেষ্ট সহজ এবং ছোট কিছুই আমি কখনই পাইনি So একে এমআইএন (মাইক্রোকন্ট্রোলার আন্তঃসংযোগ নেটওয়ার্ক) বলা হয়:

https://github.com/min-protocol/min

আমি এটি সম্পর্কে এখানে ব্লগ করেছি:

https://kentindell.wordpress.com/2015/02/18/micrcontroller-interconnect-network-min-version-1-0/

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

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