ইউএসবি থেকে ইউআরটি ব্রিজগুলি সস্তা এবং সহজেই উপলভ্য, তবে সত্যিই লম্পট সময় বৈশিষ্ট্য রয়েছে। নেওয়ার্ক একটি "এমবেডেড পাই" বোর্ড বিক্রি করে যার একটি STM32F এআরএম প্রসেসর রয়েছে যা আপনি খালি-ধাতব কোড লিখতে পারেন। এই চিপের উপরে তিনটি ইউআআআআআটিটি রয়েছে এবং আমি মনে করি তারা খুব দ্রুত যেতে পারে; আপনি যদি রাস্পবেরি পাইয়ের সাথে যোগাযোগ করার জন্য একটি ব্যবহার করেন যা অন্য উদ্দেশ্যে দুটি উপলভ্য রাখে। দাবি অস্বীকার: আমি এই বোর্ডগুলির মধ্যে একটি কিনেছি, তবে এখনও I / O দ্বারা সরাসরি পরিচালনা করার জন্য রাস্পবেরি পাই নিজেই ব্যবহার করেছি।
আপনি যদি ধীরে ধীরে ইউআরটি চান, এম্বেডেড পাই বোর্ডের এসটিএম 32 এফ সম্ভবত একটি ন্যাশন নম্বর পরিচালনা করতে পারে, বিশেষত যদি আপনি কিছু আর্ম সমাবেশ ভাষা লিখতে ইচ্ছুক হন। যদি কোনও একক বোর্ডে 16 আই / ও পিনের দুটি গ্রুপ পাওয়া যায় তবে এক সাথে 16 টি সফটওয়্যার ইউআরটি একসাথে খুব সুন্দর শালীন বাড রেটে কাজ করার সম্ভাবনা রয়েছে (পর্যায়ক্রমে বিরতিতে 3x বা 5x বাউড রেট যা সঞ্চয় করে প্রাপ্তি পোর্ট থেকে একটি বাফারে 16-বিট ল্যাচড মানগুলি এবং বাফার থেকে ট্রান্সমিট পোর্টে 16-বিট প্রম্পম্পিউটেড মানগুলিকে আউটপুট দেয়; যদি আপনি এটি করেন তবে সফ্টওয়্যার ইউআরটিগুলির জন্য গড় সার্ভিসিং সময়টি খুব দুর্দান্ত নয়, সরবরাহ করা হয়েছে মাঝেমধ্যে সবচেয়ে খারাপ পরিস্থিতি হিট হয়েছে কিনা তা বিবেচ্য হবে না (যেমন সমস্ত ষোলটি বন্দর একই সাথে বাইট গ্রহণ করে)।
"সাধারণ ক্ষেত্রে" কোড এমনকি স্বতন্ত্র ইউআরটির দিকে তাকাতে হয় না বলে এই পদ্ধতির প্রকৃতপক্ষে প্রাপ্তির জন্য উল্লেখযোগ্যভাবে দক্ষতার সাথে কাজ করতে পারে। মনে করুন যে আপনি 5x এ ডেটা স্যাম্পল করছেন, এবং বাফারের শেষ 47 বাইটগুলি তাৎক্ষণিকভাবে এর আগে নকল হয়ে গেছে। বাফারে আরোহী ক্রমে ডেটা লেখা হয়েছে বলে ধরে নেওয়া, আপনি 16 টি চ্যানেলে কোনও বাইট পুরোপুরি প্রাপ্ত হয়েছে কিনা তা খালি করে বলতে পারেন:
bytes_ready = (armed_flag & data[rxptr] & ~data[rxptr-47] & ~data[rxptr-46] & ~data[rxptr-45] & ~data[rx_ptr-44]);
যদি bytes_ready
শূন্য হয় তবে কোনও ডেটা পাওয়া যায় নি। অন্যথায়, উদাহরণস্বরূপ, বিট 2 bytes_ready
সেট করা থাকলে, এর অর্থ একটি প্রাপ্ত ডেটা বাইট পাওয়া যাবে বিট 2 ডেটা [rx_ptr-40], ডেটা [rx_ptr-35], ডেটা [rx_ptr-30], ইত্যাদির একবার। তথ্য, সশস্ত্র_ফ্ল্যাগের বিট 2 সাফ করুন এবং এটি প্রায় 44 টি নমুনার পরে পুনরায় সেট করার ব্যবস্থা করুন।
এই পদ্ধতির জন্য সেই নমুনাগুলিতে কিছুটা কাজ প্রয়োজন হবে যেখানে ডেটা বাইট পুরোপুরি প্রাপ্ত হয় (এবং সমস্ত 16 টি চ্যানেলের ডেটা বাইট একবারে উপস্থিত হলে খুব বেশি কাজ করা যায়) তবে বেশিরভাগ নমুনায় কাজের পরিমাণ খুব বেশি হবে সামান্য। যদি কারও কাছে I৪ আই / ও পিন থাকে তবে "সাধারণ" ক্ষেত্রে অতিরিক্ত কাজ যুক্ত না করে কেউ এই পদ্ধতির সাহায্যে 32 ইউআরটি পর্যন্ত পরিচালনা করতে পারে।