সত্য 9 বিট সিরিয়াল পোর্ট ডেটা?


10

আমার একটি বিদ্যমান, অর্ধ সম্পূর্ণ, ভেন্ডিং মেশিন প্রজেক্ট একটি আটমিল ইউটিসি-তে চলছে, যা আমি পাইতে পোর্ট করতে চাই।

পেরিফেরিয়ালগুলির সাথে কথা বলার জন্য, যেমন মুদ্রা গ্রহণকারীর জন্য, এটি মাল্টি-ড্রপ বাসকে সমর্থন করতে হবে যার একটি 9-ডেটা বিট সিরিয়াল পোর্ট ইন্টারফেস রয়েছে (প্লাস স্টার্ট, স্টপ এবং প্যারিটি বিট)।

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

আমি পাই এর জন্য সত্যিকারের 9 বিট সিরিয়াল পোর্ট কিনতে পারি কিনা এমন কি কেউ জানেন (বোনাস পয়েন্টগুলি যদি এটি পাই কোনওভাবে শূন্যের সাথে কাজ করতে পারে)।

সেখানে কি সম্ভবত একটি টুপি পাওয়া যায়? অথবা আমি কীভাবে সহজেই (আমার কাছে ডাব্লু ডব্লু / হা / হা এর সামান্য জ্ঞান আছে) 9 টি তথ্য বিট ইউআরটি পরিচালনা করতে একটি বোর্ড ব্যবহার করে এবং এটি পাই থেকে নিয়ন্ত্রণ করতে পারি?


1
জিপিআইওতে একটি সিরিয়াল ইন্টারফেস রয়েছে - রাস্পবিয়ান ইত্যাদি চিত্রগুলিতে এটি পাই থেকে আউটপুট সরবরাহ করার জন্য সেট করা হয়েছে যাতে আপনাকে প্রথমে এটি অক্ষম করতে হবে তবে বিটগুলি মান সীমার মধ্যে না থাকলে আপনার এখনও সমস্যা হবে। ফোরামগুলির এই পোস্টটি পাশাপাশি সহায়তা করতে পারে।
উইলফ

1
আপনি কি প্রকল্পটিতে হার্ডওয়্যার যুক্ত করতে পারবেন? ইউআআআরটি সহ একটি ঝাল একটির তৈরি করা খুব বেশি কঠিন হবে না এবং আপনাকে যা প্রয়োজন তা আপনাকে ঠিকই দেবে, যদিও এটি এর চেয়ে বেশি আই / ও ব্যবহার করতে পারে। খুব কম ব্যয় করা বা আপনার জন্য অতিরিক্ত পরিমাণে কাজের ব্যয় না করে সত্যিই একটি নিম্ন-এন্ড পিআইসি সিপিইউ সম্ভবত 8 থেকে 9 বিটের মধ্যে অনুবাদ করার জন্য প্রোগ্রাম করা যেতে পারে।
মাইকেল কোহেন

আমি কোথায় কিনতে পেরেছি আপনি জানেন?
মাওগ বলছে মনিকা পুনরায়

উত্তর:


7

আমার পিগ্পিও লাইব্রেরি 9 বিট সিরিয়াল ডেটা পড়া এবং লেখার পক্ষে সমর্থন করে। এটি বিট বিং ব্যবহার করে যাতে আপনি যে কোনও উপলভ্য জিপিআইও ব্যবহার করতে পারেন।

যদি আমি সঠিকভাবে মনে করি 19.2 কেবিপিএস বা ধীর গতির কোনও গতি বেশ স্থিতিশীল ছিল।

আপনার প্রতি সেকেন্ডে কী বিট দরকার?

পড়া ( সি , পাইথন ) লেখার চেয়ে কিছুটা সহজ ( সি , পাইথন )।


1
আপনি কি 100 * নিশ্চিত? যখন আমি প্রথম বিকাশ শুরু করলাম, আমাকে এই জাতীয় "হ্যাকগুলি" বন্ধ করে দিয়ে সতর্ক করা হয়েছিল এবং জানানো হয়েছিল যে সময়সীমার সমস্যা হবে। আপনি কি জানেন যে কেউ যদি কোনও ভেন্ডিং মেশিন দিয়ে এটি ব্যবহার করে? en.wikipedia.org/wiki/Multidrop_bus এবং coin-acceptor.com.cn/Upload/EditorFiles/technicalfile/... (দুঃখিত, আমি একটি sectoin সংখ্যা হিসাবে আমি একটি কোম্পানী ফায়ারওয়ালের পিছনে নই দিতে পারেন)
Mawg বলেছেন পুনর্বহাল মনিকা

3
আমার একমাত্র অভিজ্ঞতা হ'ল পাই এবং ল্যাপটপের মধ্যে একটি ইউএসবি সিরিয়াল ডংলের সাহায্যে লাইব্রেরিটি ব্যবহার করা। আমি যে পরীক্ষাগুলি করেছিলাম সেগুলি নথিভুক্ত করা হয়েছে raspberrypi.stackexchange.com/questions/27488/… । আমার সফ্টওয়্যারটি কেবল আরএক্স / টিএক্স এবং গ্রাউন্ড ব্যবহার করে তাই আপনি যদি অন্য সিরিয়াল সংকেতগুলির সাথে অভিনব কিছু করেন তবে আপনার সমস্যা হতে পারে।
Joan

ভাল লাগছে। : আমাকে
অনুমানটি

2
@ মাওগ: আপনি এটি গ্রহণ করেছেন। এর অর্থ কি প্রস্তাবিত সমাধান নির্ভরযোগ্যভাবে কাজ করেছিল?
থমাস ওয়েলার 13 ই

3

আমাকে একটি স্ন্যাক ভেন্ডিং মেশিন চালানোর জন্য একটি প্রকল্প অর্পণ করা হয়েছিল যা অর্থ প্রদানের জন্য এমডিবি প্রোটোকল ব্যবহার করে এবং আমি পাই জিরো (কমলা) ব্যবহার করে প্রকল্পটি শেষ করেছি।

আমি 9 বিট হার্ডওয়্যার সিরিয়াল এবং সফ্টওয়্যার সিরিয়াল লাইব্রেরি চেষ্টা করেছি এবং পাই জিরোতে টাইমিংয়ের সমস্যা ছিল। এমডিবির 9 বিট সিরিয়াল যোগাযোগ ব্যথা হয়ে ওঠে। এমডিবি প্রোটোকল বলছে পেরিফেরালদের সিরিয়াল যোগাযোগের সময়কালের জন্য% 5 সহনশীলতা থাকা উচিত তবে বিভিন্ন পেরিফেরাল বিক্রেতাদের আলাদা সহনশীলতা থাকতে হবে, এমডিবি প্রোটোকলের সাথে সামঞ্জস্যপূর্ণ নয়। আপনি যখন মনে করেন যে আপনি সিরিয়াল যোগাযোগ অর্জন করেছেন তবে অন্য কোনও বিক্রেতার অর্থ প্রদানের পেরিফেরিয়াল চেষ্টা করে দেখুন, এটি কার্যকর হয় না। সুতরাং এমডিবি প্রোটোকল ডেটাশিটের উপর নির্ভর করবেন না। আমি বগি বিক্রেতাদের জন্য এমডিবি নিয়ন্ত্রকটি প্রয়োগ করে অসুস্থ এবং ক্লান্ত হয়ে পড়েছি। এছাড়াও কিছু পেরিফেরালগুলি তাদের অভ্যন্তরীণ বুট প্রক্রিয়া চলাকালীন uart পিনগুলি থেকে স্রোতের অত্যধিক পরিমাণে নিক্ষেপ করতে পারে এবং আপনার সিরিয়াল যোগাযোগ স্তরটিকে ক্ষতি করতে পারে। সুতরাং, আপনি আরও ভাল একটি বিমূর্ত ব্যবহার করুন। Optocouplers ঠিক আছে তবে আমি চাই না ' টি পাই জিরো ব্যবহার করে MDB সিরিয়াল যোগাযোগ পরিচালনার পরামর্শ দেয়। একটি এভিআর ব্যবহার করে মাঝারি স্তরের পদ্ধতির ব্যবহার করা ভাল উপায়।

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

http://eliverse.com/content/vendiverse/

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


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

আপনার ওয়েবসাইটটির এই পৃষ্ঠাটি বলছে "আপনি যদি কোনও ভেন্ডিভার্স ভিএমসি বোর্ড তৈরির পদক্ষেপগুলি সম্পন্ন করেন বা আপনি যদি কোনও ভেন্ডারভিস ভিএমসি বোর্ড পেয়ে থাকেন তবে"। আমি কি আপনার কাছ থেকে একটি কিনতে পারি? কত খরচ হবে? এছাড়াও, আপনি যদি কোনও নির্দিষ্ট এমডিবি পেরিফেরিয়ালগুলির পরামর্শ দেন, আপনি কি এটি আপনার সাইটে যুক্ত করতে পারেন? ধন্যবাদ
মওগ

দেখে মনে হচ্ছে আমার ইমেলগুলি আপনার স্প্যামে আটকে যাচ্ছে। আপনি কি আমার সাথে যোগাযোগ করতে পারেন? আপনার আমার ইমেল ঠিকানা রয়েছে, এবং আমি এখনও ব্রেমেনে
রয়েছি

এখন এটা দেখায় পৃষ্ঠা মারা গেছে, এবং প্রকল্প পরিত্যক্ত :-( মত
Mawg বলেছেন পুনর্বহাল মনিকা

2

আমি 9-বিট ইউআআআআআরটি এমুলেশন (সমান / বিজোড় সাম্যের ভিত্তিতে) এর জন্যও সম্পূর্ণ ডেমো তৈরি করেছি। আপনি এটি http://bohdan-danishevsky.blogspot.com/2016/10/9-bit-serial-communication-in-linux.html খুঁজে পেতে পারেন ।

সমস্ত উত্স গিট উপলব্ধ।

আপনি এটি সহজেই আপনার ডিভাইসের জন্য মানিয়ে নিতে পারেন। আশা করি এটা আপনার ভালো লেগেছে.


1

সমস্ত ক্রমিক ডেটা সংজ্ঞা অনুসারে, 1 বিট। এটি কীভাবে অর্থবহ ডেটাতে এবং কীভাবে বিটগুলি ব্যাখ্যা করে সে সম্পর্কে কীভাবে সম্মত হয় সেই ডেটাটি পড়তে এবং লেখার ইন্টারফেসগুলির উপরে।
আপনি যদি 9 বিট ডেটা, এবং একটি প্যারিটি বিট এবং একটি স্টপ এবং একটি বিট চান। তারপরে আপনার ডেটাটিকে সেই ফর্ম্যাটে রূপান্তর করা এবং সেই ফর্ম্যাটে আপনি যে ডেটা পড়েছেন তা ব্যাখ্যা করা আপনার পক্ষে to অন্য উত্তরে উল্লিখিত পিগপিও মডিউল আপনাকে প্রয়োজনীয় হার্ডওয়্যার ইন্টারফেসিং দেবে, বা আপনি নিজের লেখা লিখতে পারেন। আপনি যদি অজগরটিতে বিকাশ করছেন, আমি স্কট গ্রিফিথস দ্বারা একটি লাইব্রেরি হিসাবে বিটস্ট্রিং.পি মডিউলটি একবার দেখে একটি পরামর্শ দেওয়ার পরামর্শ দিচ্ছি যা বিট ভিত্তিক ডেটা ম্যানিপুলেট করা মোটামুটি সহজ করে তোলে।


5
সিরিয়াল তথ্য প্রেরণে সমস্যা সময়সীমার মধ্যে। ডেটা স্ব-ক্লকিং নয় এবং একমাত্র গ্যারান্টিযুক্ত স্তরের স্থানান্তর স্টপ / স্টার্ট বিটগুলিতে। উভয় প্রান্তে যেখানে বিটগুলি রয়েছে তা কার্যকর করার জন্য শক্ত, নিরবচ্ছিন্ন সময় বজায় রাখতে হবে। এজন্য ডেডিকেটেড হার্ডওয়্যার সাধারণত ডেটা প্রেরণ ও গ্রহণ করতে ব্যবহৃত হয়। সময়সীমা সামান্য আছে।
Joan

1

আমি স্পষ্টতই পিগপিওর মতো সফ্টওয়্যার বাস্তবায়নের চেয়ে হার্ডওয়্যার ইউআরটি পছন্দ করি।

আপনি 9-বিট যোগাযোগের জন্য সমতা বিট ব্যবহার করতে পারেন। একটি ছোট সমস্যা রয়েছে: বর্তমান কার্নেলের সিএমএসপিএআর সমর্থন নেই (স্পেস / চিহ্ন সমতা)।
তবে আপনি বর্তমান কার্নেলের সাথে পছন্দসই 9 তম বিট মান পেতে এমনকি / বিজোড় প্যারিটি স্যুইচ করতে পারেন, উদাহরণস্বরূপ:

unsigned char check_parity(unsigned char v)
{
    v ^= v >> 4;
    v &= 0xf;
    return (0x6996 >> ((v ^ (v >> 4)) & 0xf)) & 1;
}

/* send 9 bits - 8 bits of byte + 1 bit of parity */
send_byte_with_parity(unsigned char byte, unsigned char parity)
{
    if (check_parity(byte) == parity) {
        options.c_cflag &= ~PARODD;
    } else {
        options.c_cflag |= PARODD;
    }
    tcsetattr(fd, 0, &options);
    write(fd, &byte, 1);
}


আইএমএইচও হ'ল সিএমএসপিএআর সমর্থনের জন্য ছোট কার্নেল প্যাচ ব্যবহার করা:
http://marc.info/?l=linux-serial&m=145706834101241&w=2
এটি চিহ্ন / স্পেস প্যারিটি সমর্থন যুক্ত করে, যা কোডটি কিছুটা সহজ হতে দেয়।

পিএস আমি এই পদ্ধতির সাথে সিরিয়াল ওভার এমডিবি বাস্তবায়ন করেছি। এটি নির্বিঘ্নে পাইতে কাজ করে।
পিপিএস প্যাচ অনুমোদিত হয়ে গেছে এবং সিএমএসপিএআর ৪.6 কার্নেল দিয়ে বাক্সের বাইরে কাজ করবে।


প্যাচ বা কমপক্ষে কোনও লিঙ্ক এবং আরও সম্পূর্ণ বিশদ বিবরণ ছাড়া এটি কোনও উত্তর নয়, এমনকি এটি একটি সহায়ক মন্তব্যও নয় it এটির ব্যতীত এটি তাত্ত্বিকভাবে সম্ভব।
স্টিভ রবিলার্ড

এটি এখনও উত্তরগুলির চেয়ে আরও বেশি প্রশ্ন ফেলেছে: আমি এমডিবি কীভাবে বাস্তবায়ন করব, আমি কীভাবে কার্নেল প্যাচ প্রয়োগ করব, এটি কী সমস্ত পাই বা কেবল তাদের মধ্যে কিছুতে কাজ করবে? এই বিরতি আর কি হতে পারে? প্রয়োজনে আমি কীভাবে এটিকে পূর্বাবস্থায় ফেরাতে পারি? এই প্যাচটি কি নিরাপদ? মনে রাখবেন আপনি এটি জানেন কারণ আপনি এটি প্রয়োগ করেছেন ওপি করেনি।
স্টিভ রবিলার্ড 4'16

1
আমি আপনার উত্তরটি মুছে ফেলেছি, আপনি স্বীকার করেছেন যে আপনার উত্তরটি আরও ভাল হতে পারে। আমি আশা করি আপনি এটির উন্নতি করার সুযোগটি গ্রহণ করবেন।
স্টিভ রবিলার্ড

আমার আর কী দরকার? এমডিবির বাস্তবায়ন? আমি আমার নিয়োগকর্তার কাছ থেকে এটি ওপেন-সোর্স করার অনুমতি পাইনি।
এডো 1

আমার আগের মন্তব্যটি দেখুন এবং মনে রাখবেন যে শেষ ব্যবহারকারী আপনারা যা করেন তা সব জানেন না।
স্টিভ রবিলার্ড

1

তুমি পারবে না বিশ্বাসযোগ্য কানেক্ট RPi MDB বাসে সরাসরি সিরিয়াল 9-বিট বিন্যাস এবং কঠোর MDB সময় কারণে। এমডিবি পেরিফেরাল এবং আরপিআই এর মধ্যে থাকা বার্তাগুলিকে ফ্লাই-এ এবং রিয়েল-টাইমে রূপান্তর করা দরকার। এই লিঙ্কটি পরীক্ষা করে দেখুন এটি সাহায্য করবে: DIY MDB-UART রূপান্তরকারী


0

গৃহীত উত্তর, যা পাই এর সাথে যোগাযোগের ক্ষেত্রে সত্য 9 বিট ডেটা ইউআরটি সহ একটি অ্যাটমেল প্রসেসর ব্যবহার করে তা প্রত্যাখ্যান করা হয়েছে, বা সংখ্যামূলকভাবে নেওয়া হয়েছে বলে মনে হচ্ছে।

সুতরাং আমি Eur০ ইউরোর জন্য https://www.vendingtools.ro/en সাথে যাচ্ছি , এবং এটি আমার পাই MDB 9 ডেটা বিট বাসে ইন্টারফেস করবে।


[হালনাগাদ]

আরো দেখুন

https://www.qibixx.com/en/products/mdb-interface/

https://blog.abrantix.com/webshop/product/mdb-to-raspberry-pi/

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