تبلیغات
باران الکترونیک - نحوه اتصال یک دوربین دیجیتال (حسگر تصویرimage sensor :‎‏) به یک ‏پردازنده ‏‎(DSP-ARM-FPGA)‎

در این مقاله به بررسی معماری­های مختلف برای اتصال یک دوربین دیجیتال به یک پردازنده می­پردازیم. و مزیت­ها و مشکلات هر روش را بررسی می­کنیم.

دوربین دیجیتال

معمولا دو باس ارتباطی بین دوربین و پردازنده وجود دارد:

باس کنترلی: در بیشتر مواقع به فرمت i2c می­باشد و برای مقدار دهی رجیسترهای داخلی حسگر تصویر مورد استفاده قرار می­گیرد. این رجیسترها وظیفه تعیین فرمت پیکسل خروجی، اعمال فیلترهای مختلف به تصویر و .. را بر عهده دارند.

باس داده: داده­هایی که از دوربین به پردازنده منتقل می­شود می­تواند به صورت سریال یا موازی باشد:

الف) ارتباط موازی یا Camera Parallel Interface (CPI)

ارتباط موازی شامل 8 خط داده برای انتفال تصویر و چند خط sync برای کنترل دریافت این داده­ها می­باشد:

Vsync: شروع و پایان یک فریم تصویر را مشخص می­کند.

Hsync: شروع و پایان یک خط تصویر را مشخص می­کند.

Pixel clock: آمدن هر پیکسل را مشخص می­کند.

ب) ارتباط سریال Camera Serial Interface (CSI)

بیش­تر دوربین­هایی که در تلفن­های هوشمند و تبلت­های امروزی استفاده می­شوند از حسگرهای MIPI (Mobile Industry Processor Interface) استفاده می­کنند. رابط غالب برای این نوع حسگرهای تصویر CSI-2 (Camera Serial Interface 2) می­باشد.

سیگنال داده: تا چهار خط دیفرانسیلی

سیگنال کلاک: یک خط دیفرانسیلی (بیشینه سرعت Gbit/s 1)

برای ارتباط سریال باید پردازنده از این پروتکل پیشتیبانی کند (مانند پردازنده­های omap) در غیر این صورت باید از یک مبدل ارتباط سریال دوربین به ارتباط موازی دوربین استفاده شود. در ادامه به بررسی معماری­های ممکن برای اتصال پورت CPI به پردازنده پرداخته­ایم.

معماری سیستم برای اتصال حسگر تصویر به پردازنده

همواره انتخاب­های زیادی برای طراحی وجود دارد که معماری دوربین می­تواند بر اساس آن بنا نهاده شود. باید توجه داشت، وقتی که یک حسگر تصویر برداری شروع به کار می­کند، جریانی از داده که با یک پیکسل، فریم و/یا پالس ساعت هم­زمان شده است، به بیرون منتقل می­شود. اگر این جریان داده به طور مستقیم به یک سیستم میکروکنترلر یا ریزپردازنده متصل شود، سبب از دست رفتن اطلاعات می­شود. همچنین تلاش برای خواندن این داده­های خام مقدار زیادی از زمان CPU را به خود اختصاص می­دهد. اگر یک پیکسل به هر دلیلی از دست برود، دیگر قادر به خواندن دوباره­ی آن پیکسل نیستیم، در نتیجه روشی برای تصحیح خطا وجود ندارد. برای حل این مشکل باید مدار اضافی طراحی شود. در ادامه انتخاب­های موجود برای طراحی این مدار اضافی بررسی شده است.

الف) استفاده از یک FPGA به تنهایی

همان­طور که در شکل نشان داده شده است یک رهیافت استفاده از یک FPGA و RAM برای حل این مشکل می­باشد. با برنامه­ریزی FPGA می­توان داده را به طور مستقیم در حافظه ذخیره کرد. پس از این که یک فریم از تصویر در حافظه ذخیره شد، میکرو می­تواند از طریق FPGA، رم را بخواند. یک جنبه­ی مهم استفاده از FPGA در طراحی این است که می­توان کل طرح را تنها در یک تراشه پیاده­سازی کرد. استفاده از یک تراشه بهترین رهیافت است.

معماری دوربین با استفاده از FPGA

مزیت اصلی FPGA این است که دارای معماری خیلی انعطاف­پذیری می­باشد. اما این انعطاف پذیری با پرداخت هزینه­ی بیش­تر در سخت افزار همراه می­باشد. یعنی این که، انعطاف­پذیری بیش­تر به معنی گیت­های بیش­تر، مساحت سطح سیلیکون بیش­تر، منابع بیش­تر برای مسیریابی و در نتیجه مصرف توان بیش­تر می­باشد. همچنین برنامه نویسی FPGA مشکل می­باشد و نیازمند استفاده از یک زبان سخت­افزارگرا می­باشد. نوشتن کد به زبان VHDL پنج برابر بیش­تر از نوشتن کد به زبان C طول می­کشد. این اشکال روی هزینه­ی توسعه و زمان عرضه­ی بردهای مبتنی بر FPGA به بازار اثر منفی می­گذارد.

ب) استفاده از ARM

رهیافت دوم استفاده از یک طراحی مبتنی بر FIFO همان طور که در حسگر تصویر CMUCAM3 نشان داده شده است، می­باشد. تعداد زیادی پردازنده­ی DSP در بازار وجود دارد که این FIFO در تراشه وجود دارد و می‌توانند برای این سیستم استفاده شوند. اگر از پردازنده­ی ARM برای ساخت دوربین استفاده شود:

·         پردازنده­های ARM برای استفاده آسان­تر هستند و ارزان­تر تمام می­شوند.

  • پردازنده­های DSP و FPGA از لحاظ هزینه­ی توسعه کلی گران­تر هستند و نیازمند زمان توسعه­ی بیش­تری از پردازنده­های رایج هستند.

نمودار بلوکی سیستمی که با پردازنده ARM مورد استفاده قرار گرفته، در شکل زیر نشان داده شده است:

معماری سیستم پیشنهادی با استفاده از ARM

روش کار به این صورت است که ابتدا پردازنده دستور خواندن تصویر را به حسگر می­فرستد، سپس کل تصور در حافظه­ی FIFO ذخیره می­شود. بعد از آن پردازنده شروع به خواندن اطلاعات پیکسل از حافظه می­کند و عملیات پردازشی را روی داده­ها انجام می­دهد. در این صورت دیگر پردازنده نگران از دست رفتن اطلاعات نمی­باشد.

در بیش­تر موارد، دوربین­های تجاری و دوربین­هایی که در  موبایل استفاده می­شوند، دارای چنین ساختاری با استفاده از پردازنده­های DSP می­باشند.

ج) معماری هیبرید، استفاده همزمان از FPGA و DSP

روش کار به این صورت می­باشد که برای دریافت تصویر از حسگر، از حافظه­ی FIFO و برای کنترل تصویر، از FPGA استفاده می­کنیم. با این تفاوت که برای حافظه­ی FIFO از یک تراشه­ی جداگانه استفاده نمی­کنیم بلکه آن را داخل FPGA پیاده سازی می­کنیم. بنابراین دیگر نیازی به حافظه­ی جداگانه­ی RAM همان طور که در رهیافت اول به آن اشاره شد، نیستیم. برای پردازش اطلاعات از پردازنده­ی DSP استفاده می­کنیم. برخلاف رهیافت اول و دوم اطلاعات خام پیکسل را مستقیم به پردازنده منتقل نمی­کنیم بلکه ابتدا توسط FPGA مقادیر پیکسل­های خام را می­خوانیم. سپس در داخل FPGA  می­توانیم الگوریتم­های ساده و زمان­بر را پیاده سازی می­کنیم. بعد خروجی FPGA را به عنوان ورودی به پردازنده­ی DSP می­دهیم و دیگر نیاز نیست تا کل اطلاعات پیکسل خام را به DSP منتقل کنیم. چون در FPGA می­توانیم این الگوریتم­ها را به طور موازی با خواندن اطلاعات دوربین پیاده سازی کنیم، سرعت سیستم به طور چشم­گیری افزایش پیدا می­کند، مقدار زیادی از بار محاسباتی پردازنده کاسته می­شود و همچنین حجم کمتری از حافظه­ی داخلی پردازنده­ی اصلی (DSP) اشغال می­شود. نمودار بلوکی این سیستم در شکل زیر نشان داده شده است.

نمودار بلوکی سیستم مبتنی بر DSP و FPGA

مزیت دیگری که این معماری دارد این است که به دلیل استفاده از FPGA دستمان در طراحی بسیار باز می­باشد. یعنی می­توانیم چندین دوربین دیجیتال یا ورودی و خروجی تصویر را به FPGA متصل کنیم و وظیفه کنترل آن­ها را به صورت هم­زمان و با خیال راحت به FPGA بسپاریم و نگران از دست رفتن حتی یک بیت از اطلاعات نباشیم. DSP نیز می­تواند در هنگام نیاز ورودی مورد نظر را از FPGA دریافت کند و عملیات پیچیده پردازش تصویر یا سیگنال را روی آن انجام دهد. در نهایت خروجی برای نمایش دوباره به FPGA فرستاده شود.

هزینه­ای که باید پرداخت شود، افزایش پیچیدگی­های طراحی، برنامه نویسی و افزایش توان مصرفی سیستم می­باشد.


دانلود فایل PDF

سرور اول

سرور دوم


نظرات()   
   
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
آخرین پست ها