সুচিপত্র:

WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI: 9 টি ধাপ (ছবি সহ)
WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI: 9 টি ধাপ (ছবি সহ)

ভিডিও: WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI: 9 টি ধাপ (ছবি সহ)

ভিডিও: WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI: 9 টি ধাপ (ছবি সহ)
ভিডিও: Connect Four on a Zybo board [Zynq-7000 SoC] 2024, জুন
Anonim
WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI
WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI
WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI
WIDI - Zybo (Zynq ডেভেলপমেন্ট বোর্ড) ব্যবহার করে ওয়্যারলেস HDMI

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

এই ধারণাটি ক্রোমকাস্টের মতো পণ্য থেকে আলাদা, কারণ এটি একটি স্ট্রিমিং ডিভাইস হওয়ার পরিবর্তে একটি মনিটরের সাথে সংযুক্ত একটি HDMI কর্ডের স্থান গ্রহণের উদ্দেশ্যে।

আমাদের প্রকল্পটি ক্যালিফোর্নিয়া স্টেট পলিটেকনিক ইউনিভার্সিটি, সান লুইস ওবিসপোতে রিয়েল টাইম অপারেটিং সিস্টেম কোর্সের চূড়ান্ত প্রকল্প হিসাবে তৈরি করা হয়েছিল।

প্রকল্পের লক্ষ্য হল একটি HDMI ট্রান্সমিটার ডিভাইস (পিসি, ব্লু-রে, ইত্যাদি) এর মধ্যে একটি HDMI রিসিভিং ডিভাইস (ডেস্কটপ মনিটর, প্রজেক্টর, টিভি, ইত্যাদি) এর মধ্যে ওয়্যারলেস কমিউনিকেশন ইন্টারফেস হিসেবে কাজ করার জন্য দুটি ডিজিলেন্ট জাইবো বোর্ড ব্যবহার করা।

একটি ডিজিলেন্ট জাইবো ট্রান্সমিটিং ডিভাইসে HDMI এর মাধ্যমে সংযুক্ত হবে এবং অন্যটি HDMI এর মাধ্যমে প্রাপ্ত ডিভাইসে সংযুক্ত হবে।

হোম রাউটার বা এ জাতীয় অন্যান্য ডিভাইসের মাধ্যমে রাউট না করে ট্রান্সমিটার এবং রিসিভারে নিবেদিত ওয়্যারলেস লোকাল এরিয়া নেটওয়ার্ক ব্যবহার করে বেতার যোগাযোগ তৈরি করা হবে। এই প্রকল্পের জন্য ব্যবহৃত ওয়্যারলেস মডিউল হল tplink wr802n nanorouter, যার একটি নেটওয়ার্ক স্থাপনের জন্য একটি অ্যাক্সেস পয়েন্ট হিসেবে কাজ করে এবং অন্যটি নেটওয়ার্কের সাথে সংযোগ স্থাপনের জন্য ক্লায়েন্ট হিসেবে কাজ করে। প্রতিটি ন্যানো রাউটার ইথারনেট ক্যাবলের মাধ্যমে জাইবো বোর্ডের সাথে সংযুক্ত থাকবে। যখন এই রাউটারগুলির সাথে সংযুক্ত থাকে, ডিভাইসগুলি টিসিপির মাধ্যমে যোগাযোগ করবে যেমন তারা একটি একক ইথারনেট কেবল দ্বারা সংযুক্ত ছিল (অর্থাত্ সংযোগ স্থাপনের জন্য প্রয়োজনীয় কনফিগারেশন হল ক্লায়েন্টের আইপি ঠিকানা)।

যদিও প্রকল্পটির লক্ষ্য ছিল 1080x720 ভিডিও @ 60Hz এর একটি স্ট্রিম সহজতর করা, বেতার নেটওয়ার্কে ব্যান্ডউইথ সীমাবদ্ধতা এবং পাঠানোর জন্য প্রয়োজনীয় ডেটা কমাতে রিয়েল টাইম ভিডিও কম্প্রেশনের অভাবের কারণে এটি অর্জন করা সম্ভব হয়নি। পরিবর্তে, এই প্রকল্পটি এই লক্ষ্য অর্জনের জন্য ভবিষ্যতের বিকাশের কাঠামো হিসাবে কাজ করে, কারণ এটি HDMI ডেটা সঠিকভাবে প্রবাহিত করার জন্য ফ্রেমের হারে কঠোরভাবে সীমাবদ্ধতা রয়েছে।

প্রকল্পের প্রয়োজনীয়তা:

2x ডিজিলেন্ট জাইবো ডেভেলপমেন্ট বোর্ড (অন্তত একটি HDMI পোর্ট থাকতে হবে)

2x HDMI ক্যাবল

2x মাইক্রোসব তারগুলি (বিকাশের জন্য জাইবোকে পিসিতে সংযুক্ত করতে)

2x tplink wr802n nanorouters (adtl। 2x microusb এবং wall outlet power adapters সহ)

2x ইথারনেট তারগুলি

*** দ্রষ্টব্য: এই টিউটোরিয়ালটি ভিভাদো ডিজাইন স্যুট এর সাথে পরিচিতি এবং একটি নতুন প্রকল্প এবং ব্লক নকশা তৈরির অভিজ্ঞতা অনুভব করে। ***

ধাপ 1: ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন

ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য লজিক কনফিগার করুন
ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য লজিক কনফিগার করুন
ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য লজিক কনফিগার করুন
ট্রান্সমিটারের জন্য Zynq প্রোগ্রামযোগ্য লজিক কনফিগার করুন

ট্রান্সমিটারের প্রোগ্রামেবল লজিক ডেভেলপ করার জন্য আমাদের দৃষ্টিভঙ্গি ছিল দুটি ভিডিও ডাইরেক্ট মেমোরি অ্যাক্সেস (VDMA) ব্লক ব্যবহার করে পর্যবেক্ষণ করার জন্য পিসি থেকে একটি hdmi-to-hdmi পাস-থ্রু করা, একটি লেখার জন্য এবং একটি পড়ার জন্য।

উভয়ই ফ্রি-রানিং, 3 ফ্রেম-বাফার মোড (0-1-2) এর জন্য নির্বাচিত। যেহেতু ভিডিও কোর প্রতি সেকেন্ডে 60 ফ্রেমের জন্য অপ্টিমাইজ করা হয়েছে, এর মানে হল যে VDMA প্রতি 16.67 ms এ একটি নতুন ফ্রেমে লিখবে বা পড়বে: 0, 1, 2, 0, 1, 2, 0, 1, 2। প্রতিটি ফ্রেমের জন্য DDR মেমরি অবস্থান দুটি VDMA- এর জন্য আলাদা কারণ তারা আর একে অপরের সাথে সিঙ্ক্রোনাইজ হয় না। পরিবর্তে, একটি হার্ডওয়্যার টাইমার (TTC1), 60 Hz- এর জন্য কনফিগার করা হয়, দুটি মেমরির অবস্থানের মধ্যে ডেটার গতিবিধি সিঙ্ক্রোনাইজ করতে ব্যবহৃত হয়।

উপরের ছবিটি 3 টি ফ্রেম, তাদের মাত্রা এবং প্রতিটি মেমরির পরিমাণ (ফ্রেমের ডানদিকে) দেখায়। যদি আমরা এই মেমরি লোকেশনগুলিতে VDMA লিখতে বরাদ্দ করি, তাহলে আমরা 0x0B000000 দিয়ে শুরু করে বলি, এই সেটের বাইরে পড়া VDMA মেমরি লোকেশন বরাদ্দ করতে পারি। প্রতিটি ফ্রেম 1280*720 পিক্সেল এবং প্রতিটি পিক্সেল 8 বিট রেড, গ্রিন এবং ব্লু মিলে মোট 24 বিটের জন্য তৈরি। এর মানে হল একটি ফ্রেম 1280*720*3 বাইট (2.76 MB) দিয়ে তৈরি।

VDMA ড্রাইভার সেটআপের মধ্যে বর্ণিত টাইমার IRQ এর ভিতরে, দুটি VMDA মেমরি লোকেশনের মধ্যে কপি ডেটা পরিচালনা করবে। ভিডিএমএ বর্তমান ফ্রেমে একটি পয়েন্টার সরবরাহ করে যা থেকে লেখা বা পড়া হচ্ছে। ফ্রেমটি একটি বিশেষ ধূসর কোড দ্বারা প্রতিনিধিত্ব করা হয়, যা সফটওয়্যারে রূপান্তরিত হয়। 3 ফ্রেম-বাফার কনফিগারেশনের জন্য ধূসর কোডের সংজ্ঞা পরিশিষ্ট সি-তে AXI VDMA প্রোডাক্ট গাইডে পাওয়া যাবে।

এটি আমাদের বর্তমানে লেখা ফ্রেম থেকে না পড়ে মেমরিতে লেখা বিষয়বস্তু কপি করতে দেয়।

*** লক্ষ্য করুন যে ওয়্যারলেস নেটওয়ার্ক জুড়ে ডেটা পাঠানোর সময় পঠিত VDMA ব্যবহার করা হয় না। এটির একমাত্র উদ্দেশ্য হল VMDA লেখা থেকে মেমরি কপি করার সঠিক অপারেশন যাচাই করা। পড়া ভিএমডিএ অক্ষম করা উচিত। ***

ট্রান্সমিটার ডিজাইন ব্লক তৈরির ধাপগুলি এখানে:

  1. একটি নতুন প্রকল্প তৈরি করার সময়, প্রকল্পে একটি চিপ বা বোর্ড বরাদ্দ করা একটি ভাল ধারণা। এই লিঙ্কটি বর্ণনা করে কিভাবে Vivado ডিরেক্টরিতে নতুন বোর্ড ফাইল যোগ করা যায় এবং আপনার বোর্ডের সাথে সঠিক বোর্ড সংযুক্ত করা হয়। প্রসেসিং সিস্টেম ব্লক যোগ করার সময় এবং হার্ডওয়্যার থেকে সফ্টওয়্যার (SDK সাইড) এ স্থানান্তর করার সময় এটি কাজে আসবে।
  2. নিম্নলিখিত ব্লক যোগ করুন:

    • dvi2rgb
    • Axi4- স্ট্রিমে ভিডিও
    • সময় নিয়ন্ত্রক
    • axi4- স্ট্রিম vid আউট
    • rgb2dvi
    • AXI VDMA x2
    • AXI GPIO x2
    • ঘড়ি উইজার্ড
    • ধ্রুব
    • Zynq প্রসেসিং সিস্টেম
  3. প্রসেসিং সিস্টেম যোগ করার সময়, উপরের সবুজ রঙের বার থেকে "রান ব্লক অটোমেশন" ক্লিক করুন এবং নিশ্চিত করুন "বোর্ড প্রিসেট প্রয়োগ করুন" বিকল্পটি নির্বাচন করা হয়েছে। অন্য সব ডিফল্ট ছেড়ে দিন।
  4. প্রতিটি ব্লক কনফিগারেশন উইন্ডোর ছবি উপরের ছবিতে পাওয়া যাবে। যদি আপনি একটি নির্দিষ্ট উইন্ডোর জন্য একটি ছবি দেখতে না পান, তবে এটিকে ডিফল্ট হিসাবে ছেড়ে দিন।
  5. Zynq প্রসেসিং সিস্টেম কনফিগার করা শুরু করুন:

    • PS-PL কনফিগারেশনে AXI Non Secure Enable GP Master AXI, M AXI GP0 ইন্টারফেস সক্ষম করুন
    • PS-PL কনফিগারেশনে HP Slave AXI Interface, HP0 এবং HP1 উভয়ই সক্ষম করুন
    • MIO কনফিগারেশনে নিশ্চিত করুন যে ENET0 I/O পেরিফেরালের অধীনে সক্ষম করা আছে, তারপর অ্যাপ্লিকেশন প্রসেসর ইউনিট, টাইমার 0 সক্ষম করুন
    • ঘড়ি কনফিগারেশন PL ফ্যাব্রিক ঘড়িতে, FCLK_CLK0 সক্ষম করুন এবং 100 MHz এ সেট করুন।
    • ঠিক আছে ক্লিক করুন
  6. "রান কানেকশন অটোমেশন" ক্লিক করার আগে উপরের TX ব্লক ডিজাইনের ছবিতে ভিডিও ব্লকগুলি সংযুক্ত করতে ভুলবেন না। আপনি ধ্রুবকের নাম পরিবর্তন করে VDD করতে চান এবং মান 1 তে সেট করতে চান। সেই অনুযায়ী ভিডিও ব্লকগুলি সংযুক্ত করুন।
  7. Rgb2dvi এবং dvi2rgb ব্লকে HDMI TMDS ঘড়ি এবং ডেটা পিন বাহ্যিক করুন
  8. হট প্লাগ ডিটেক্ট সিগন্যাল (এইচপিডি) এর জন্য একটি ইনপুট এবং আউটপুট পোর্ট তৈরি করুন এবং তাদের একসাথে সংযুক্ত করুন, এগুলি সীমাবদ্ধতা ফাইলে সংজ্ঞায়িত করা হয়েছে
  9. পিক্সেল ঘড়িটি TMDS_Clk_p থেকে উদ্ধার করা হয়, যা সীমাবদ্ধতা ফাইলে তৈরি করা হয়। এটি 720p রেজোলিউশন অনুযায়ী 74.25 MHz হবে। পিক্সেল ঘড়ি (dvi2rgb ব্লক থেকে) নিম্নলিখিত পিনের সাথে সংযুক্ত করা গুরুত্বপূর্ণ:

    • vid_io_in_clk (অ্যাক্সি স্ট্রিম ব্লকে দেখুন)
    • vid_io_out_clk (axi স্ট্রিম থেকে vid আউট ব্লক)
    • clk (টাইমিং কন্ট্রোলার)
    • PixelClk (rgb2dvi)
  10. *** দ্রষ্টব্য: বর্তমানে, পিক্সেল ঘড়ি পুনরুদ্ধার সক্রিয় করার জন্য, HDMI rx এবং tx সংযোগকারীগুলিকে একটি সক্রিয় উৎস/সিংকে প্লাগ করা আবশ্যক। এর চারপাশে একটি উপায় হল ভিডিও rx এবং tx ব্লকগুলিকে বিভিন্ন ক্লক ডোমেইনে আলাদা করা (অন্য কথায়, tx ব্লকে খাওয়ানোর জন্য একটি নতুন 74.25 MHz ঘড়ি তৈরি করুন)। ***
  11. পরবর্তী ঘড়ি উইজার্ড সেট আপ করুন যাতে আপনার একটি 100 মেগাহার্টজ ইনপুট (গ্লোবাল বাফার সোর্স) এবং 3 আউটপুট ঘড়ি @ 50 মেগাহার্টজ (AXI-Lite ঘড়ি), 150 মেগাহার্টজ (AXI4- স্ট্রিম ঘড়ি), 200 মেগাহার্টজ (dvi2rgb RefClk পিন)।
  12. FCLK_CLK0 প্রসেসিং সিস্টেম পিনকে ক্লক উইজার্ড ইনপুটের সাথে সংযুক্ত করুন
  13. এই মুহুর্তে ডিজাইন উইন্ডোর শীর্ষে সবুজ বার থেকে "রান কানেকশন অটোমেশন" ক্লিক করুন। এটি এক সময়ে একটি ব্লকের জন্য এটি করা একটি ভাল ধারণা এবং উপরের TX ব্লক ডিজাইন চিত্রটি অনুসরণ করুন।
  14. সরঞ্জামটি AXI ইন্টারকানেক্ট যুক্ত করার চেষ্টা করবে, যা AXI-Lite বাস (VDMAs এবং GPIOs) ব্যবহারকারী ব্লকগুলির জন্য মাস্টার/স্লেভ ইন্টারকানেক্ট হিসাবে কাজ করে।
  15. এটি AXI SmartConnect যোগ করবে, যা VDMA দ্বারা ব্যবহৃত AXI4- স্ট্রিম এবং হাই পারফরমেন্স প্রসেসর ইন্টারফেসের জন্য মাস্টার/স্লেভ ইন্টারকানেক্ট হিসাবে কাজ করে (স্ট্রিম টু মেমরি ম্যাপ এবং বিপরীতভাবে)।
  16. সরঞ্জামটি একটি প্রসেসর সিস্টেম রিসেট যুক্ত করবে। নিশ্চিত করুন যে এটি শুধুমাত্র VDMAs, GPIOs এবং প্রসেসর সম্পর্কিত ব্লকের সাথে সংযুক্ত। এটিকে কোন ভিডিও ব্লকের সাথে সংযুক্ত করবেন না (যেমন dvi2rgb, টাইমিং কন্ট্রোলার, ভিডিও থেকে স্ট্রিম ইত্যাদি)
  17. একবার সংযোগ অটোমেশন সম্পন্ন হলে, যাচাই করুন যে সংযোগগুলি TX ব্লক নকশা চিত্রের সাথে মেলে। আপনি একটি অতিরিক্ত সিস্টেম ILA ব্লক লক্ষ্য করবেন যা উল্লেখ করা হয়নি। এটি শুধুমাত্র ডিবাগ করার জন্য এবং আপাতত এর প্রয়োজন নেই। এটি 150 এম প্রসেসর রিসেট ব্যবহার করে, তাই এটির প্রয়োজন নেই। যেখানেই আপনি বাসগুলিতে ছোট সবুজ "বাগ" দেখতে পান, এটি আইএলএর কারণে এবং উপেক্ষা করা যেতে পারে।
  18. চূড়ান্ত ধাপ হল প্রকল্প উৎস গাছের ব্লক ডিজাইনে ডান ক্লিক করুন এবং "এইচডিএল র্যাপার তৈরি করুন" নির্বাচন করুন। যদি আপনি মোড়কে যুক্তি যুক্ত করার পরিকল্পনা করেন, এটি প্রতিবার এটি নির্বাচিত হলে ওভাররাইট করা হবে।
  19. SDK সাইডে বিস্তারিত জানার জন্য VDMA ড্রাইভার সেটআপ বিভাগ দেখুন।

ঘড়ি এবং রিসেট

আমি দেখেছি যে কোন প্রোগ্রামেবল লজিক প্রজেক্টের সবচেয়ে গুরুত্বপূর্ণ দিক হল ঘড়ির ডোমেইন এবং রিসেট সিগন্যালগুলির সাবধানে বিবেচনা করা। যদি সেগুলি সঠিকভাবে কনফিগার করা থাকে তবে আপনার নকশাটি কাজ করার জন্য আপনার একটি ভাল শট আছে।

পিক্সেল ক্লক এবং টাইমিং লক

কিছু সংকেত সক্রিয় কিনা তা যাচাই করার জন্য, এই সংকেতগুলিকে এলইডি (ঘড়ি, রিসেট, লক ইত্যাদি) এর সাথে বেঁধে রাখা ভাল। দুটি সংকেত যা আমি ট্রান্সমিটার বোর্ডে ট্র্যাক করতে সহায়ক বলে মনে করেছি তা হল পিক্সেল ঘড়ি এবং AXI4- স্ট্রিম থেকে ভিডিও আউট ব্লকে "লকড" সিগন্যাল, যা আপনাকে বলে যে ভিডিও টাইমিং টাইমিং কন্ট্রোলার এবং ভিডিও সোর্সের সাথে সিঙ্ক্রোনাইজ করা হয়েছে তথ্য আমি ডিজাইন ব্লক মোড়কে কিছু যুক্তি যুক্ত করেছি যা dvi2rgb ব্লকে PixelClkLocked সংকেত ব্যবহার করে পিক্সেল ঘড়িকে রিসেট হিসাবে ট্র্যাক করে। আমি ফাইলটি hdmi_wrapper.v হিসাবে এখানে সংযুক্ত করেছি। সীমাবদ্ধতা ফাইল এখানে সংযুক্ত করা হয়।

ধাপ 2: রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন

রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন
রিসিভারের জন্য Zynq প্রোগ্রামযোগ্য যুক্তি কনফিগার করুন

রিসিভারের জন্য প্রোগ্রামযোগ্য লজিক ব্লক সহজ। মূল পার্থক্য, অনুপস্থিত এইচডিএমআই ইনপুট ব্লকগুলি ছাড়াও পুনরুদ্ধার করা পিক্সেল ঘড়ির অনুপস্থিতি। যে কারণে আমাদের ঘড়ি উইজার্ড থেকে আমাদের নিজস্ব তৈরি করতে হবে। এই নকশাটি ট্রান্সমিটার থেকে একটি পৃথক প্রকল্পে করা উচিত। আমাদের উদ্দেশ্যে রিসিভার প্রকল্পটি Zybo 7Z-20 বোর্ড অনুসরণ করে এবং ট্রান্সমিটার Z7-10 বোর্ড অনুসরণ করে। বোর্ডগুলিতে FPGAs আলাদা তাই সতর্ক থাকুন।

রিসিভার ডিজাইন ব্লক তৈরির পদক্ষেপগুলি এখানে:

  1. আপনার নকশায় নিম্নলিখিত আইপি ব্লক যুক্ত করুন:

    • সময় নিয়ন্ত্রক
    • AXI4- স্ট্রিম টু ভিডিও আউট
    • RGB থেকে DVI
    • AXI VDMA
    • AXI GPIO
    • প্রসেসিং সিস্টেম
    • ঘড়ি উইজার্ড
    • ধ্রুবক (ভিডিডি 1 তে সেট করা)
  2. এই ব্লকগুলিকে ট্রান্সমিটার হিসাবে কনফিগার করার জন্য একই প্যাটার্ন অনুসরণ করুন। কনফিগারেশনের উল্লেখযোগ্য পার্থক্যের ছবিগুলি এখানে অন্তর্ভুক্ত করা হয়েছে। অন্যগুলি ট্রান্সমিটারের মতোই থাকে।
  3. এই ডিজাইনের জন্য VDMA কনফিগার করুন শুধুমাত্র পড়ার চ্যানেল হিসেবে। লেখার চ্যানেল নিষ্ক্রিয় করুন।
  4. নিম্নলিখিত আউটপুটগুলির জন্য ঘড়ি উইজার্ড কনফিগার করা উচিত:

    • clk_out1: 75 MHz (পিক্সেল ঘড়ি)
    • clk_out2: 150 MHz (প্রবাহ ঘড়ি)
    • clk_out3: 50 MHz (অ্যাক্সি-লাইট ঘড়ি)
  5. আরএক্স ব্লক ডিজাইন ছবিতে দেখানো ভিডিও ব্লকগুলিকে সংযুক্ত করুন।
  6. তারপর সংযোগ অটোমেশন চালান, যা AXI ইন্টারকানেক্ট, AXI SmartConnect এবং সিস্টেম রিসেট ব্লক যুক্ত করবে এবং উপযুক্ত সংযোগ স্থাপনের চেষ্টা করবে। এটি অবাঞ্ছিত সংযোগগুলি সম্পাদন করে না তা নিশ্চিত করতে এখানে ধীরে ধীরে যান।
  7. Rgb2dvi ব্লকে HDMI TMDS ঘড়ি এবং ডেটা পিন বাহ্যিক করুন
  8. এই ডিজাইনে হট প্লাগ সিগন্যালের প্রয়োজন নেই।

ধাপ 3: VDMA ড্রাইভার সেটআপ করুন

VDMA ড্রাইভার সেটআপ করুন
VDMA ড্রাইভার সেটআপ করুন

AXI-Lite ইন্টারফেসের মাধ্যমে কনফিগার করা বিভিন্ন ব্লকের জন্য সেটআপ একটি রেফারেন্স হিসাবে BSP এর সাথে অন্তর্ভুক্ত ডেমো প্রকল্পগুলি ব্যবহার করে সর্বোত্তমভাবে সম্পন্ন করা হয়। ডিজাইন হার্ডওয়্যার এক্সপোর্ট করার পর এবং ভিভাদো থেকে SDK চালু করার পর, আপনি একটি নতুন বোর্ড সাপোর্ট প্যাকেজ যোগ করতে চান এবং BSP সেটিংস উইন্ডোতে lwip202 লাইব্রেরি অন্তর্ভুক্ত করতে চান। BSP থেকে system.mss ফাইল ফাইলটি খুলুন এবং আপনি আপনার ব্লক ডিজাইন থেকে উপস্থিত পেরিফেরাল ড্রাইভার দেখতে পাবেন। "আমদানি উদাহরণ" বিকল্পটি আপনাকে ডেমো প্রকল্পগুলি আমদানি করতে দেয় যা এই পেরিফেরালগুলিকে ব্যবহার করে এবং এইভাবে উপলব্ধ Xilinx ড্রাইভারগুলি ব্যবহার করে সফ্টওয়্যারে সেগুলি কনফিগার করতে দেখায় (সংযুক্ত ছবি দেখুন)।

এটি ছিল VDMA, টাইমার এবং ইন্টারাপ্ট এবং GPIO কনফিগার করার জন্য ব্যবহৃত পদ্ধতি। ট্রান্সমিট এবং রিসিভ উভয়ের জন্য সোর্স কোড এখানে অন্তর্ভুক্ত করা হয়েছে। পার্থক্য প্রায় একচেটিয়াভাবে main.c.

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

TX ইন্টারাপ্ট হ্যান্ডলার ফাংশন (IRQHandler)

এই ফাংশন GPIO ব্লকের মাধ্যমে VDMAs রিড এবং রাইট উভয় দ্বারা প্রদত্ত ধূসর কোডগুলি পড়ে। ধূসর কোড দশমিক রূপান্তরিত হয় এবং বর্তমান ফ্রেমের ফ্রেম বেস মেমরি অবস্থান নির্বাচন করার জন্য ব্যবহৃত হয়। কপি করা ফ্রেম হল VDMA দ্বারা লিখিত আগের ফ্রেম (যেমন VDMA ফ্রেম 2 এ লিখছে, আমরা ফ্রেম 1 কপি করি; যদি ফ্রেম 0 এ লিখি, আমরা ফ্রেম 2 থেকে মোড়ানো এবং পড়ি)।

ফাংশনটি শুধুমাত্র প্রতি 6 ষ্ঠ ফ্রেম ক্যাপচার করে যাতে ফ্রেম রেট 60 Hz এর পরিবর্তে 10 Hz এ নেমে আসে। নেটওয়ার্কের উপরের সীমানা 300 এমবিপিএস। প্রতি সেকেন্ডে 10 ফ্রেমে 221.2 এমবিপিএস ব্যান্ডউইথ প্রয়োজন।

এই ফাংশনে দুটি লাইন মন্তব্য/আন-মন্তব্য করলে ব্যবহারকারী ডিবাগিং/পরীক্ষার উদ্দেশ্যে HDMI পাসথ্রু মোডে পরিবর্তন করতে পারবেন (কোডটি উপযুক্ত লাইন নির্দেশ করার জন্য মন্তব্য করা হয়েছে)। এটি বর্তমানে ইথারনেট কোড দ্বারা ব্যবহৃত একটি মেমরি অবস্থানে ফ্রেমটি অনুলিপি করে।

RX ইন্টারাপ্ট হ্যান্ডলার ফাংশন (IRQHandler)

এই ফাংশনটি TX ফাংশনের অনুরূপ, কিন্তু এটি ইথারনেট দ্বারা ব্যবহৃত 2 বাফার FIFO থেকে অনুলিপি করা হয় যাতে ইনকামিং ডেটা লেখা যায়। ইথারনেট কোড নির্দেশ করে যে কোন ফ্রেমে FIFO লেখা হচ্ছে, বিপরীত ফ্রেম থেকে ডেটা কপি করা হয়েছে। ছিঁড়ে যাওয়া এড়ানোর জন্য VDMA যেটা পড়ছে তার পিছনে ডেটা সরাসরি ফ্রেমে কপি করা হয়।

ধাপ 4: Nanorouter নেটওয়ার্ক সেটআপ করুন

Nanorouter নেটওয়ার্ক সেটআপ করুন
Nanorouter নেটওয়ার্ক সেটআপ করুন

TPlink nanorouters ব্যবহার করে একটি নেটওয়ার্ক তৈরি করার জন্য, তাদের পৃথকভাবে শক্তি দিন এবং ডিভাইসের জন্য ডিফল্ট ওয়াইফাই SSID- এর সাথে সংযুক্ত করুন। এই বিশেষ ডিভাইসের কনফিগারেশন সেটিংস সম্পর্কে আরও তথ্য ডিভাইস ব্যবহারকারীর ম্যানুয়ালের মাধ্যমে পাওয়া যাবে।

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

ক্লায়েন্ট হিসাবে অন্য ডিভাইসটি সেটআপ করুন এবং নিশ্চিত করুন যে এটি আপনার প্রথম ন্যানো রাউটার দিয়ে সেটআপ করা নেটওয়ার্ক SSID- এর সাথে সংযুক্ত। আবার, নিশ্চিত করুন যে ক্লায়েন্টের জন্য DHCP নিষ্ক্রিয় করা আছে।

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

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

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

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

ধাপ 5: ইথারনেটের মাধ্যমে ডেটা ট্রান্সমিশনের জন্য Zynq প্রসেসিং সিস্টেম সেটআপ করুন

ইথারনেটের মাধ্যমে ডেটা ট্রান্সমিশনের জন্য Zynq প্রসেসিং সিস্টেম সেটআপ করুন
ইথারনেটের মাধ্যমে ডেটা ট্রান্সমিশনের জন্য Zynq প্রসেসিং সিস্টেম সেটআপ করুন
ইথারনেটের মাধ্যমে ডেটা ট্রান্সমিশনের জন্য Zynq প্রসেসিং সিস্টেম সেটআপ করুন
ইথারনেটের মাধ্যমে ডেটা ট্রান্সমিশনের জন্য Zynq প্রসেসিং সিস্টেম সেটআপ করুন

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

এলডব্লিউআইপি সহ টিসিপির সংক্ষিপ্ত বিবরণ: নেটওয়ার্কে তথ্য tcp_mss (TCP সর্বোচ্চ সেগমেন্ট সাইজের) প্যাকেটে পাঠানো হয়, যা সাধারণত 1460 বাইট। Tcp_write এ কল করা একটি পয়েন্টার দ্বারা রেফারেন্স করা কিছু ডেটা নেবে এবং pbufs (প্যাকেট বাফার) কনফিগার করবে ডেটা ধরে রাখতে এবং TCP অপারেশনের জন্য একটি কাঠামো প্রদান করবে। সর্বাধিক পরিমাণ ডেটা যা এক সময়ে সারিবদ্ধ করা যেতে পারে tcp_snd_buf (TCP প্রেরক বাফার স্পেস) হিসাবে সেট করা হয়। যেহেতু এই প্যারামিটারটি একটি 16 বিট নম্বর, তাই আমরা 59695 বাইটের একটি সেন্ড বাফার সাইজের মধ্যে সীমাবদ্ধ (সেন্ড বাফারে কিছু প্রয়োজনীয় প্যাডিং আছে)। একবার ডেটা সারিবদ্ধ হয়ে গেলে, তথ্য প্রেরণ শুরু করতে tcp_output বলা হয়। ডেটা পরবর্তী বিভাগ পাঠানোর আগে, এটি অপরিহার্য যে পূর্ববর্তী সমস্ত প্যাকেট সফলভাবে প্রেরণ করা হয়েছে। এই প্রক্রিয়াটি recv_callback ফাংশন ব্যবহার করে করা হয়, কারণ এই ফাংশনটিকে বলা হয় যখন রিসিভার থেকে স্বীকৃতি দেখা যায়।

ভিভাদো এসডিকে উদাহরণ প্রকল্পগুলি ব্যবহার করা কিভাবে LwIP টিসিপি অপারেশন শেখার জন্য খুব সহায়ক, এবং এটি একটি নতুন প্রকল্প শুরু করার জন্য একটি ভাল সূচনা পয়েন্ট।

ওয়াইডিআই ট্রান্সমিটিং ডিভাইসের পদ্ধতি নিম্নরূপ:

  1. বেয়ার-মেটাল LWIP ড্রাইভার ফাংশন কল ব্যবহার করে TCP নেটওয়ার্ক চালু করুন।
  2. নেটওয়ার্ক ক্রিয়াকলাপের জন্য প্রয়োজনীয় কোন কলব্যাক ফাংশন উল্লেখ করুন।
  3. ওয়াইডি রিসিভারের সাথে আইপি ঠিকানা এবং পোর্টের সাথে সংযোগ স্থাপন করুন (আমাদের কনফিগারেশন: রিসিভার আইপি হল 192.168.0.9, পোর্ট 7 এর সাথে সংযুক্ত)।
  4. VDMA ড্রাইভার টাইমারের মেয়াদ শেষ হয়ে গেলে, TX ISR লিখুন।
  5. VDMA ধূসর কোডের উপর ভিত্তি করে অ্যাক্সেস করার জন্য বর্তমান ফ্রেম বাফার নির্ধারণ করুন
  6. টিসিপি সেন্ড বাফারে ডেটার প্রথম সেগমেন্ট সারি করুন
  7. ডেটা আউটপুট করুন, এবং বর্তমান ভেরিয়েবল আপডেট করুন বর্তমান ফ্রেমে কতটা ডেটা পাঠানো হয়েছে তার উপর নজর রাখতে।
  8. প্রাপ্ত কলব্যাকে পৌঁছানোর পরে (ট্রান্সমিটার ডেটা পুনরুদ্ধারের স্বীকৃতি পাওয়ার পরে করা ফাংশন কল), ডেটার পরবর্তী অংশে সারি করুন।
  9. পুরো ফ্রেমটি পাঠানো পর্যন্ত 7 এবং 8 ধাপগুলি পুনরাবৃত্তি করুন।
  10. একটি নতুন ফ্রেম প্রস্তুত (পরবর্তী ধাপ 4 এ) নির্দেশ করার জন্য পরবর্তী টাইমার বিরতির জন্য অপেক্ষা করার জন্য একটি নিষ্ক্রিয় অবস্থায় ফিরে যান।

উপরের ছবিতে দেখানো হিসাবে বোর্ড সমর্থন প্যাকেজ LwIP সেটিংস সেটআপ করতে ভুলবেন না। Tcp_snd_buf, tcp_pueue_ooseq, mem_size, memp_n_tcp_seg ছাড়া সব মান ডিফল্ট। এছাড়াও মনে রাখবেন যে debug_options গ্রুপের জন্য BSP প্যারামিটার পরিবর্তন করে বিস্তারিত ডিবাগিং অর্জন করা যেতে পারে।

ধাপ 6: ইথারনেটের মাধ্যমে ডেটা রিসেপশনের জন্য Zynq প্রসেসিং সিস্টেম সেটআপ করুন

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

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

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

ইথারনেট রিসেপশন টাস্ক:

  1. বেয়ার-মেটাল এলডব্লিউআইপি ড্রাইভার ফাংশন কল ব্যবহার করে টিসিপি নেটওয়ার্ক শুরু করুন (আইপি ঠিকানার সাথে সেটআপ যা ট্রান্সমিটার সংযুক্ত হবে, আমাদের মধ্যে 192.168.0.9)
  2. নেটওয়ার্ক ক্রিয়াকলাপের জন্য প্রয়োজনীয় কোন কলব্যাক ফাংশন উল্লেখ করুন।
  3. ইথারনেট প্যাকেট পাওয়ার পর, প্যাকেট ডেটা বর্তমান নেটওয়ার্ক বাফারে কপি করুন, বর্তমান সঞ্চিত ডেটা বাড়ান।
  4. যদি প্যাকেটটি নেটওয়ার্ক ফ্রেম বাফার পূরণ করে, তাহলে 5 এবং 6 ধাপ অব্যাহত রাখুন, অন্যথায়, এই কাজ থেকে ধাপ 3 এ ফিরে যান।
  5. সংকেত যে VDMA ট্রিপল ফ্রেম বাফার টাস্ক নতুন সমাপ্ত নেটওয়ার্ক বাফার থেকে অনুলিপি করা উচিত।
  6. অন্য নেটওয়ার্ক বাফারে স্যুইচ করুন এবং ইথারনেটের মাধ্যমে ডেটা সংগ্রহ করা চালিয়ে যান।
  7. নতুন ইথারনেট প্যাকেট না পাওয়া পর্যন্ত অলস (ধাপ 3)।

নেটওয়ার্ক বাফার VDMA ট্রিপল ফ্রেম বাফারে কপি করুন:

  1. VDMA ড্রাইভার টাইমারের মেয়াদ শেষ হয়ে গেলে RX ISR লিখুন।
  2. VDMA ধূসর কোডের উপর ভিত্তি করে অ্যাক্সেস করার জন্য বর্তমান ফ্রেম বাফার নির্ধারণ করুন।
  3. কোন নেটওয়ার্ক বাফার VDMA বাফারে অনুলিপি করা হবে তা নির্ধারণ করুন এবং সেই ডেটা অনুলিপি করুন

ধাপ 7: আপনার জাইবো বোর্ডগুলিকে HDMI উৎস এবং HDMI সিংকের সাথে সংযুক্ত করুন

আপনার জাইবো বোর্ডগুলিকে HDMI উৎস এবং HDMI সিংকের সাথে সংযুক্ত করুন
আপনার জাইবো বোর্ডগুলিকে HDMI উৎস এবং HDMI সিংকের সাথে সংযুক্ত করুন

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

ধাপ 8: উন্নতির জন্য বিকল্প ধারনা

উন্নতির জন্য বিকল্প ধারনা
উন্নতির জন্য বিকল্প ধারনা

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

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

ধাপ 9: অ্যাক্সেসযোগ্যতা

এই ওয়াইডিআই প্রকল্পের ফলস্বরূপ পণ্যটি একটি সম্পূর্ণরূপে সংহত, কম্প্যাক্ট জোড়া ডিভাইস হওয়া উচিত যা ব্যবহারকারী যেকোনো HDMI উৎসের সাথে সংযোগ স্থাপন করতে পারে এবং তারপরে ভিডিও ফিডকে HDMI ক্ষমতা সহ একটি ডিসপ্লেতে বেতারভাবে ডুবিয়ে দিতে পারে। ডিভাইসগুলো Zyq-7000 SoC- কে Zybo রেফারেন্স বোর্ডে পাওয়া যাবে এবং TP-Link ন্যানো-রাউটারগুলিতে পাওয়া নেটওয়ার্ক হার্ডওয়্যার অন্তর্ভুক্ত করবে। আদর্শভাবে, ব্যবহারকারী লক্ষ্য অপারেটিং সিস্টেমের মধ্যে একটি পৃথক অবস্থান থেকে ট্রান্সমিট মডিউল নিয়ন্ত্রণ করতে সক্ষম হবে, উল্লেখযোগ্য প্রযুক্তিগত দক্ষতার সামান্য প্রয়োজনের সাথে।

নিরাপত্তা এবং সংযোগ

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

বর্তমান অবস্থা

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

নেটওয়ার্কের মাধ্যমে প্রেরিত তথ্য এই সময়ে এনক্রিপ্ট করা হয় না এবং এটি টিসিপি/আইপি প্যাকেটের কাঁচা সংক্রমণ বলে ধরে নেওয়া হয়।

ভিডিও কোর প্রকল্পটি প্রেরণ এবং প্রাপ্তির জন্য সফলভাবে পরীক্ষা করা হয়েছিল। অন্যদিকে, দুটি জাইবো বোর্ডের মধ্যে বেতার সংযোগ স্থাপন করা হয়েছিল এবং পরীক্ষার ফ্রেম ডেটা সফলভাবে পাঠানো হয়েছিল। যাইহোক, প্রতিটি ভিডিও কোর প্রকল্পে নেটওয়ার্ক কোড একত্রিত করা এবং প্রকৃত ভিডিও ফ্রেমের সংক্রমণ পরীক্ষা করা এখনও প্রয়োজনীয়।

প্রস্তাবিত: