تبلیغات
باران الکترونیک - طراحی و ساخت برد مبتنی بر ‏DSP‏ + ‏FPGA
جمعه 22 آذر 1392  08:03 ب.ظ
نوع مطلب: (DSP ،FPGA ،برد مدار چاپی ،Altera ،) توسط: امیرحسین رستمی

هدف طراحی و ساخت یک سخت افزار برای پردازنده DSP ساخت شرکت TI، سری 5000 یعنی A 5509 و یک FPGA ساخت شرکت Altera سری Cyclone III می­باشد.

طراحی شماتیک

طراحی مدار شامل طراحی مدار تغذیه، مدار ارتباطی بین FPGA و DSP، حافظه­­ی uSD، پورت سریال، حافظه­ی فلش برای ذخیره­ی برنامه­ی DSP و مدار واسط دوربین می­باشد. در ادامه به طراحی قسمت­های مختلف مدار پرداخته شده است.

مدار تغذیه

با توجه به برگه­ی اطلاعات برای راه­اندازی FPGA و DSP، مدار تغذیه باید ولتاژهای 3/3، 6/1، 5/2، 2/1 ولت را فراهم آورد. برای این منظور از 5 رگولاتور استفاده کردیم. ابتدا ولتاژ ورودی را با استفاده از یک رگولاتر به سطح 5 ولت رساندیم. سپس با 4 رگولاتور دیگر ولتاژهای مناسب را ساختیم. مدار تغذیه­ی طراحی شده در شکل 1 نشان داده شده است.

لطفا به ادامه مطلب مراجعه کنید (به همرا دانلود فایل PDF و پروژه (protel (Altium و فوت پرینت ها)

ارتباط حسگر با FPGA

شکل ‏ 2 ارتباط حسگر تصویر را با FPGA نشان می­دهد.

شکل 2 ارتباط حسگر تصویر با ‏FPGA

در جدول 1 سیگنال­های دوربین شرح داده شده­اند.

جدول 1: پین­های حسگر OV7670

ارتباط FPGA با DSP

در شکل ‏ 3 ارتباط FPGA با DSP نشان داده شده است.

شکل 3 ارتباط ‏FPGA‏ با ‏DSP

در جدول 2 سیگنال­های ارتباطی بین FPGA و DSP توضیح داده شده­اند.

جدول 2 شرح پایه­های DSP

مدار واسط RS232

از استاندارد ارتباطی RS232 برای انتقال اطلاعات خروجی وضعیت (کواترنیون وضعیت) به کامپیوتر فضاپیما استفاده شده است. تراشه­ی MAX233 برای افزایش سطح ولتاژ، رساندن ولتاژ از 3/3 ولت به 10 ولت، مورد استفاده قرار گرفته است. ارتباط بین FPGA و کانکتور RS232 در شکل ‏4 نشان داده شده است.

شکل 4 مدار واسط ‏RS232

حافظه­ی فلش سریال

برای ذخیره­ی برنامه از حافظه­ی فلش سریال استفاده کردیم. ارتباط حافظه با DSP در شکل 5 نشان داده شده است. پین­های حافظه­ی سریال در جدول 3 توضیح داده شده است.

جدول‏ 3 شرح پایه­های حافظه­ی فلش

شکل 5 ارتباط حافظه ی سریال با ‏DSP

اتصال کارت حافظه­ی میکرو اس دی به DSP

برای ذخیره­ی پایگاه داده­ی ستاره از کارت حافظه­ی میکرو اس دی استفاده شده است. در شکل ‏6 نحوه­ی اتصال این کارت به پردازنده­ی DSP نشان داده شده است.


شکل 6 ارتباط حافظه ی میکرو اس دی به ‏DSP

طراحی برد مدار چاپی

بعد از این که مرحله­ی طراحی شماتیک به پایان رسید نوبت طراحی برد مدار چاپی می­باشد. برد مدار چاپی را در نرم افزار آلتیوم دیزاینر طراحی کردیم.

شکل 7 PCB از نمای بالای برد
شکل 8 PBC از نمای پایین برد

بعد از طراحی برد مدار چاپی نوبت ساخت برد می­شود. برد ساخته شده در شکل ‏9 نشان داده شده است.

شکل 9 تصویر برد ساخته شده

آزمایش برد ساخته شده

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

آزمایش پورت RS-232

پورت RS-232 برای فرستادن خروجی ردیاب ستاره که بردارهای کواترنیون وضعیت هستند به کامپیوتر فضاپیما مورد استفاده قرار گرفته شده است. نمودار بلوکی واحد کنترل پورت RS-232 در نرم­افزار کوارتوسII در شکل 10 نشان داده شده است. واحد clk­­_divider وظیفه­ی فراهم کردن کلاک ارتباطی مناسب را دارد. در واحد UART_Transmitter، داده­هایی که باید برای پورت RS-232 ارسال گردند، به صورت بیت به بیت به همراه یک بیت شروع و دو بیت پایان با نرخ باد 14400 فرستاده می­شوند. برای بررسی درستی عملکرد این واحد، توسط بلوک init_state عدد 0xAB را به این واحد ارسال کردیم. سپس توسط کامپیوتر به خواندن پورت RS-232 پرداختیم. سیگنالی که توسط واحد UART_Tranmitter تولید می­شود در شکل 11 نشان داده شده است. نتیجه دریافتی توسط کامپیوتر در شکل 12 نشان داده شده است. همان طور که مشاهده می­شود این واحد به درستی کار می­کند.

شکل 10 نمودار بلوکی آزمایش پورت ‏RS-232

 

شکل 11 سیگنال ارسالی توسط ‏FPGA‏ در نرم افزار کوارتوس

شکل 12 سیگنال های دریافتی توسط پورت ‏RS-232‏ کامپوتر

راه انداری حسگر CMOS

حسگر  OV7670 داده­ها را به صورت موازی و هم­زمان روی باس داده­ی خودش قرار می­دهد. برای این که بتوانیم داده­های حسگر را بخوانیم، ابتدا باید روی پین XCLK، سیگنال کلاک مناسب را فراهم کنیم. طبق برگه­ی اطلاعات فرکانس این کلاک باید بین 10 تا 48 مگاهرتز باشد. بعد از این که سیگنال کلاک را برای حسگر فراهم کردیم، حسگر شروع به تولید سیگنال روی پین­های VSYNC، HREF، D0 تا D7 و PCLK می­کند شکل 13).

اولین چیزی که باید به آن توجه کرد این است که D0-D7  باید در لبه­ی بالا رونده­ی سیگنال PCLK نمونه برداری شوند. همچنین D0-D7 باید فقط زمانی که HREF در سطح منطقی 1 قرار دارد نمونه برداری شوند. لبه­ی بالا رونده­ی سیگنال HREF بیانگر شروع رشته و لبه­ی پایین رونده­ی آن بیانگر پایان رشته میباشد. تمام بایت­ها زمانی که HREF در سطح منطقی 1 قرار دارند نمونه برداری می­شوند که متناظر با تمام پیکسل­ها در یک رشته می­باشند.

مدارهای لازم برای راه­اندازی دوربین را در FPGA ساختیم. نمودار بلوکی آن در شکل 14 نشان داده شده است. نحوه­ی عملکرد مدار به این صورت می­باشد که ابتدا توسط بلوک "رابط دوربین" سیگنال کلاک برای راه­اندازی حسگر تولید می­شود و سپس رجیسترهای حسگر برنامه­ریزی می‌شود. کلاک حسگر را 24 مگا هرتز، تفکیک­پذیری تصویر را در حالت QVGA (240 × 320) و فرمت تصویر را YUV قرار داده شد. توسط بلوک "رابط دوربین" پیکسل­های ارسالی از حسگر تصویر دریافت می­شود. سیگنال­های دریافتی از دوربین در شکل 15 نشان داده شده است. این شکل نشان می­دهد که سیگنال­های دوربین به درستی دریافت شده است.

شکل 13 زمان بندی خواندن یک رشته

شکل 14 نمودار بلوکی ارتباط ‏FPGA‏ با دوربین

شکل 15 سیگنال های ارسالی و دریافتی از دوربین

آزمایش ارتباط بین DSP و FPGA

برای این که مشخص شود که ارتباط بین DSP و FPGA مشکلی ندارد، برنامه­ای طراحی و پیاده­سازی شد. نمودار بلوکی این شکل 16 نشان داده شده است. روش کار به این صورت است که ابتدا در داخل FPGA توسط بلوک "واحد تولید وقفه" پالس­هایی مربعی تولید می­شود. با هر بار آمدن پالس بلوک شمارنده یک واحد به شمارنده زیاد می­کند و به طور همزمان وقفه­ای در DSP اتفاق می­افتد که در زیر روال وقفه شمارنده­ی داخل DSP نیز یک واحد زیاد می­شود. سپس توسط واحد DSP شمارنده­ی داخل FPGA به DSP فرستاده می­شود و توسط DSP این دو شمارنده با یکدیگر مقایسه می­شوند. اگر برابر نبودند، متغییر خطا یک واحد زیاد می­شود.

شکل 16 نمودار بلوکی آزمایش ارتباط بین ‏DSP‏ و ‏FPGA

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

شکل 17 خطای به وجود آمده هنگام ارتباط ‏FPGA‏ با ‏DSP

آزمایش کارت حافظه­ی میکرو SD

برای اطمینان از کارکرد درست کارت حافظه­ی میکرو SD، توسط DSP یک ماتریس 256× 256 آرایه­ای را از روی یک فایل متنی در کامپیوتر خواندیم و روی این کارت ذخیره کردیم، سپس دوباره همین ماتریس را از حافظه خواندیم. مقادیر ریخته شده روی کارت را با مقادیر خوانده شده از کارت مقایسه کردیم. در صورت برابر بودن این مقادیر تست به درستی انجام شده است. نتایج آزمایش در شکل 18 نشان داده شده است. همان­طور که مشخص است، عملیات خواندن و نوشتن روی کارت به درستی انجام شده است.

شکل 18 برنامه ی نوشته شده برای بررسی درستی عملکرد حافظه ی ‏uSD


دانلود فایل پروژه به همراه فوت پرینت های مورد نیاز از قبیل uSD

سرور اول

سرور دوم

دانلود فایل PDF

سرور اول

سرور دوم


نظرات()   
   
zz
سه شنبه 2 خرداد 1396 02:05 ب.ظ
سلام روز بخیر.میشه لطفا درموردآزمایش کارت حافظه بیشتر توضیح بدید.باiseامتحان کردید یا کوارتوس؟
پاسخ امیرحسین رستمی : با سلام
کارت حافظه به DSP متصل شده است. و با برنامه C تست کردیم. نرم افزار Code Composer Studio.
محمد
پنجشنبه 30 مهر 1394 07:56 ب.ظ
ممنون
میشه از این برد در آموزش dsp هم استفاده کرد؟
پاسخ امیرحسین رستمی : بله قسمت DSP بدون مشکل کار می کنه
من قسمت مربوط به کدک رو چک نکردم
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
آخرین پست ها