alt-wr-01

آموزش FPGA-جلسه دوم-تاریخچه FPGA و سیستم های دیجیتال

آموزش FPGA-جلسه دوم-تاریخچه FPGA و سیستم های دیجیتال

کاربرد میکروپروسسورها در FPGA

       شکل 1-2: FPGA ها با ساختار  SOPC.

P2-SOC

 شکل 1-3: FPGA ها با ساختار  SOC.

دومین جلسه  از مجموعه آموزش FPGA را با هدف بررسی تاریخچه سیستم های دیجیتال به ویژه تاریخچه FPGA ادامه می دهیم. همان گونه که در جلسه اول آموزش FPGA گفته شد، از سال 2005 به بعد، ایده طراحی سیستم ­های تعبیه شده(ٍEmbedded System) به صورت قابل توجهی تغییر کرد و این امکان به وجود آمد تا طراحی از سطح گیت و HDL به طراحی در سطح سیستم برسد. همین جهش تکنولوژی عامل اصلی ایجاد پروسسورهای سی و دو بیتی نرم ­افزاری  NIOSII توسط شرکت ALTERA و MicroBlaze توسط شرکت XILINX شد. Altera و Xilinx دو شرکت  بزرگ تولید کننده FPGA در سطح دنیا هستند.  در حال حاضر، توسعه نرم­ افزاری و ایجاد تکنولوژی­ هایی مانند SOPC و یا SOC که به ترتیب  این لغات اختصار واژه های  (System on a Programmable Chip)  و (System on Chip) هستند. این سیستم ها این امکان را در اختیار کاربر قرار می­­ دهند تا کاربر بتواند با زبان­ های سطح بالا مانند C، جاوا (JAVA) و یا برمبنای سیستم عامل ­هایی مانند Linux، میکرو C برای FPGA ها برنامه ­ریزی کنند. در شکل های 1-2  و 1-3 این ساختار های جدید  نشان داده شده است. شکل 1-2 نمایی کلی از یک تکنولوژی SOPC را نشان داده است.

شعار اصلی این تکنولوژی، طراحی یک سیستم در مدت زمان چند دقیقه است و از ویژگی­ های منحصربه­ فرد آن می ­توان به طراحی نسبتا آسان و سریع اشاره کرد. کاربر در این سیستم قادر خواهد بود در مدت زمان اندکی واحدهای مختلفی همچون USB، PIO،SDRAM،FIFO و … براحتی در کنار هم قرار داده و سیستم مورد نیاز خود را طراحی نماید. شکل 1-2 ، نمایی از درون یک سیستم با تکنولوژی SOPC را نشان داده است. آن چیزی که در این سیستم بسیار مهم است باس(BUS) هوشمندی تحت عنوان باس  Avalon می ­باشد. این باس، این قدرت را دارد تا یک واحد هشت بیتی را به راحتی به یک واحد سی ­و دو بیتی متصل نماید و این در حالی است که در گذشته این امر با مشکلات و زحمت بسیار زیادی انجام می ­شد.

با توجه به جهش روز افزون هسته ­های ARMو قابلیت­هایی که این سیستم­ ها در اختیار کاربران خود قرار می ­دهند استفاده از این سیستم­ ها به امری مهم و اجتناب­ ناپذیر در صنعت الکترونیک تبدیل شده  است. در حقیقت، این تکنولوژی این قابلیت را به کاربران خود می­دهد تا با خرید یک آی­سی، علاوه بر داشتن تمام امکانات قبلی، از تمامی مزیت­ های ARM نیز در پروژه­ های خود استفاده نمایند. در تکنولوژی SOC، عمدتا هدف اصلی، به کارگیری  سیستم عامل بر روی آی­ سی می ­باشد که این امکان را به کاربر می ­­دهد تا از یک کامپیوتر کوچک در پروژه­ های خود بهرمند شود. همان­گونه که در شکل 1-3 نشان داده شده است، آرایه­ های منطقی برنامه پذیر مبتنی بر تکنولوژی SOC از هسته های ARM در کنار هسته ­های سی و دو بیتی خود استفاده می­ کنند. دوستان گرامی که علاقه مند می توانند ادامه مطلب را در جلسه سوم آموزش FPGA مطالعه نمایند.

منابع:

  (Springer)Rapid prototyping of digital systems

https://en.wikipedia.org/wiki/Field-programmable_gate_array

 

 

 

Di

آموزش FPGA-جلسه اول-تاریخچه FPGA و سیستم های دیجیتال

آموزش FPGA-جلسه اول-تاریخچه FPGA و سیستم های دیجیتال

Di

شکل 1-1: ساختار سیستم دیجیتال.

ّFPGAها همواره به عنوان یک ابزار ارزشمند در مجامع علمی و صنعتی مورد استفاده و توجه قرار می گیرند. با توجه به گستردگی موضوع در حوزه آموزش FPGAها و نبود یک منبع جامع و تخصصی در آموزش FPGA، شرکت نوین تراشه البرز به عنوان یک شرکت صنعتی و پیشگام در این زمینه اقدام به آموزش رایگان FPGA در قالب مطالب آموزشی نموده است. هدف اصلی بخش نشر مطالب علمی و کاربردی برای دوستان و علاقه مندان به FPGA  و طراحی دیجیتال کاربردی می باشد. برای شروع آموزش FPGA می بایست از تاریخچه سیستم های دیجیتال شروع کرد.واژه سیستم­های تعبیه شده (Embedded System) یا توکار به سیستم­هایی اطلاق می شود که از کنار هم قرار دادن اجزای کوچکتر ساخته شده ­اند. مطابق با شکل 1، در مهندسی الکترونیک و کامپیوتر منظور از سیستمهای تعبیه شده تراشه ها((Integrated circuits (ICs) و ادوات الکترونیکی مانند آرایه ­های منطقی برنامه­ پذیر(FPGA) یا (Field Programmable Gate Array) و یا تراشه های میکروبیس(Micro-base) هستند که این قابلیت را در اختیار مهندسین قرار می ­دهند تا طرح ­ها و ایده­ های خود را در کم­ترین زمان ممکن و متناسب با حجم و ابعاد کار خود بر روی آن­ها پیاده ­سازی کنند. 

همان­گونه که در شکل 1 -1 نشان داده شده، دانش الکترونیک دیجیتال با به وجود آمدن تراشه های سری TTL و CMOS جهش قابل توجهی را در اوایل دهه 1970 شاهد بود. با گسترش حجم و ابعاد کار، زمانی پیش آمد که دیگر این تراشه ها به تنهایی قادر به پاسخ­گویی نیاز بازار مصرف نبودند بردها و مدارات چاپی در آن زمان از حجم و ابعاد بزرگی برخوردار بوده و تراشه ها استفاده شده در آن­ها با محدودیت­ های بسیاری روبرو بودند. محدودیت­های موجود و نیاز بازار مصرف سبب شد که تکنولوژی موسوم به آرایه­ های منطقی برنامه ­پذیر (FPGA) پا به عرصه وجود بگذارند. هدف اصلی این تکنولوژی پوشش نقاط ضعف تکنولوژی قبل و کاهش حجم مدارات طراحی شده در آن زمان بود. نقطه قوت این تکنولوژی جدید طراحی نسبتا آسان در مدت زمان کم بود ولی از آنجا که این سیستم­ها با هدف طراحی سخت­ افزار توسط زبان­ های سخت افزاری((Hardware Design Languages (HDLs)) مانند VHDL  یا(Very High Speed Hardware Design Language)و Verilog و یا (Verification of Digital Circuits at the Register-Transfer Level ) ایجاد شده بودند لذا، ابزاری مناسب جهت پیاده­ سازی الگوریتم­ های نرم ­افزاری محسوب نمی­ شدند، ولی این بدین معنا نبود که این ادوات قابلیت پشتیبانی برای پیاده ­سازی الگوریتم را ندارند. از سال 2005 به بعد، ایده طراحی سیستم­های تعبیه شده به صورت قابل توجهی تغییر کرد و این امکان به وجود آمد تا طراحی از سطح گیت و HDL به طراحی در سطح سیستم برسد. لطفا ادامه مطلب را در بخش آموزش FPGA-جلسه دوم مطالعه فرمایید.

صرفه جویی هوشمند انرژی در هوشمند سازی خانه

پروژه های قابل انجام:صرفه جویی هوشمند انرژی در هوشمند سازی خانه

به نام خدا

امروزه یکی از پروژه های مورد توجه و رو به گسترش، هوشمند سازی خانه یا همان BMS ها می باشد.

یکی از عمده اهداف این پروژه ها آسان شدن کنترل قسمت های ساختمان و هوشمند کردن بخش های لازم مانند کنترل روشنایی ، کنترل تردد، کنترل سیستم حفاظتی و … می باشد.

در مقاله ای که در ضمیمه این پست آمده به برسی صرفه جویی هوشمند انرژی در هوشمند سازی خانه با استفاده از یک میکروکنترلر ARM اشاره شده است. تمرکز در این مقاله به بحث صرفه جویی انرژی می باشد.

سخت افزار مورد استفاده در این پروژه:

  1. ARM7 TDMI-S LPC2129
  2. Dc Power supply unit
  3. 16×2 LCD
  4. Temperature sensor LM 35
  5. Passive infrared sensor
  6. LDR sensor OPT 101
  7. GSM modem
  8. RF module
  9. Relays
  10. Finger print sensor R303A

  www.ntaco.ir _ BMS (368٫9 KiB, 289 hits)

ANPR

پروژه های قابل انجام:تشخیص پلاک خودرو با استفاده از ARM و FPGA

به نام خدا

امروزه یکی از صنعت های رو به توسعه پردازش تصویر می باشد. از این صنعت در کاربرد های مختلفی از قبیل هوا فضا، پزشکی، مهندسی ، نظامی و… استفاده می شود.

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

امروزه یکی از اموری که نیاز به پردازش تصویر سریع و بلادرنگ (Real Time) دارد کنترل ترافیک می باشد. نوعی از کاربرد در این زمینه تشخیص پلاک خودرو می باشد.

در بسیاری از سیستم ها این پردازش به کامپیوتر سپرده شده است. یعنی توسط دوربین تصویر گرفته شده و به مرکزی برای پردازش ارسال می شود که در آنجا کامپیوتر ها هستند که پردازش نهایی را انجام می دهند.

اما امروزه به منظور کاهش هزینه ها و استفاده ساده تر از سیستم تشخیص پلاک خودرو تمایل به استفاده از سیستم های embedded برای این امر می باشد.

در مقاله ای که در ضمیمه این پست آمده است به برسی عملکرد این پروژه با استفاده از پردازنده FPGA و ARM همراه DSP می پردازد.

  www.ntaco.ir _ ANPR (1٫6 MiB, 214 hits)

بررسی واحد SD Card Interface

بررسی واحد SD Card Interface

به نام خدا

در این متن که پیش رو دارید، قصد بررسی واحد SD Card Interface را داریم.

در میکروکنترلر های 8 بیتی از قبیل AVR ها واحدی به عنوان SDIO یا همان SD Card Interface وجود نداشت. (البته شاید میکرو خاصی را شرکتی تولید کرده باشد که این واحد در آن باشد مانند AVR USB) لذا برای راه اندازی کارت های حافظه از قبیل MMC و SDC از مد SPI که یک پروتکل سریال می باشد استفاده می شد.

با رونق گرفتن میکرو های ARM شرکت های تولید کننده این میکروکنترلرها روز به روز به قابلیت های این میکروکنترلر ها اضافه کردند. تاجایی که در برخی از میکرو های امروزه واحد هایی که روزی روئیایی به نظر می رسیدند اضافه گردیده و با قیمتی اندک در اختیار کاربران قرار دارد. واحد هایی از قبیل LCD Controller, External Memory Controller , Camera Interface , Ethernet ,SDIO و … نمونه ای از این واحد ها می باشند.

در مقاله های قبلی به توضیح ویژگی های این بلاک ها پرداخته ایم ، در ادامه قصد داریم تا اطلاعاتی در مورد واحد SDIO یا همان SD Card Interface ارائه دهیم.

ویژگی های مهم این واحد:

  • توانایی خواندن و نوشتن با سرعت بالا
    • در مد SPI ما تنها یک خط برای نوشتن و یک خط برای خواندن اطلاعات داریم ،اما در این حالت خواندن و نوشتن روی 4 خط می باشد. یعنی حداقل سرعت مد SDIO چهار برابر مد SPI است.
  • می تواند به عنوان BUS برای MMC و یا به عنوان BUS برای SDC استفاده گردد.
    • یعنی می توان چندین MMC و یا یک SDC را به این BUS متصل کرد.
  • پشتیبانی از DMA
    • چیپ هایی که دارای واحد SDIO می باشند، معمولا از DMA هم پشتیبانی می کنند. DMA یک بلاک دسترسی مستقیم به حافظه می باشد که بدون دخالت CPU انتقال اطلاعات را انجام می دهد. واین عمل موجب افزایش سرعت نقل و انتقال اطلاعات می گردد.

 

میکروکنترلر LPC1788 از جمله چیپ هایی می باشد که دارای واحد SD Card Interface است. و شما با راه اندازی این واحد به سادگی می توانید با کارت های حافظه SDC و MMC ارتباط برقرار کرده و روی آن ها دیتا بنویسید و یا از آن های دیتا بخوانید.

تفاوت NAND Flash با NOR Flash

تفاوت NAND Flash با NOR Flash ها چیست؟

به نام خدا

شاید این سوال برای شما هم زیاد پیش آمده باشد که واقعا ” تفاوت NAND Flash با NOR Flash ها چیست؟ ” یا ” در چه جاهایی از NAND Flash استفاده می شود و چه جاهایی NOR Flash ؟ ”

در مقاله ای که برای دانلود برای شما قرار داده ایم سعی کردیم در یک جدول کاربرد اصلی و تفاوت های مهم این حافظه ها را دسته بندی و بیان کنیم.

اطلاعات این مقاله از چند شرکت جمع آوری شده است و ممکن است با برخی از اطلاعاتی که قبلا شنیده بودید کمی تفاوت داشته باشد، البته تکنولوژی همیشه به دنبال تکامل است و ممکن است این اطلاعات با گذر زمان تغییر کند.

البته توجه داشته باشید تفاوت های اساسی تراشه های NAND Flash و NOR Flash ثابت خواهند بود اما تفاوت هایی از قبیل حجم و سرعت خواندن و نوشتن در این تراشه ها ممکن است تغییر کند.

برای دانلود مقاله ” تفاوت NAND Flash با NOR Flash ها چیست؟ ” روی کلیک زیر کنید.

  NOR_Flash_Vs_NAND_Flash.pdf (83٫9 KiB, 934 hits)

بارکدخوان توسط ARM

بارکدخوان توسط ARM

استفاده از بارکدها امروزه بدلیل سادگی و ایجاد ابزار های هماهنگ با این روش کدگذاری بسیار رایج شده است. محبوبیت و گسترش کاربرهای این روش، طراحان را بر این داشت تا انواع متنوعی از این بارکدها را تولید و عرضه کنند. از این بین بارکدهای خطی، نقطه ای و QR Code از اقبال بیشتری برخوردار بودند.

بارکدهای مشهور

بارکدهای مشهوراز

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

بارکد اسکنر

بارکد اسکنر

ویدئوی زیر یک بارکد خوان پرتابل طراحی شده با ARM شرکت NXP میباشد که در نمایشگاه COMPUTEX توسط شرکت Marison ساخته شده است.

کاربرد سافت روپروسسورها در FPGA

کاربرد سافت پروسسورها در FPGA

امروزه با وسعت پیدا کردن فناوری و اهمیت سرعت در طراحی در FPGA ها سبب گردیده تا شرکت های تولید کننده FPGA  شکل جدیدی از نگرش در طراحی را در FPGA ها لحاظ  کنند و آن استفاده از پرسسورها در FPGAها است. اساس طراحی در FPGAها  بطور کلی صرف نظر از بحث در ساختار تکنولوژی یک طراحی با ساختار دیجیتال می باشد؛ یعنی طراحی شمارنده ها و جمع کننده ها و… که قرار است با کنار هم قرار دادن اجزا در کنار هم به یک ساختار دیجیتال با پیچیدگی بالا  تبدیل شود. بنابراین اگر قرار باشد شخص برای طراحی یک پردازنده، آن هم بصورت مورد نیاز وقت صرف کند باید ساعت ها ، حتی ماه ها وقت صرف کند تا به ساختار مشخص با ویژگی های مطلوب دست پیدا کند. در اینجا اهمیت استفاده از قالبهای میکروبیس بطور آماده که آن هم بتوان آن را با نیازهای کاربر تنظیم کرد بیشتر نمود پیدا می­کند.(هر چند طراحی دیجیتال با ساختارهایی نظیر VHDL ،  Mega Functionها و… جایگاه خود درطراحی را دارد.)

niosII_arch_block_dia

 یک نمونه از پروسسورهای مورد استفاده در FPGAها  استفاده از  Soft Processor ها می­ باشد، که از این دست می­توان به Nios در FPGAهای شرکت Altera اشاره نمود. در اینجا این سوال مطرح است که مزیت این ساختار بر میکرو های سخت افزاری موجود در بازار در چیست؟ در پاسخ باید گفت که اولا  این ساختار از انعطاف پذیری بالایی برخوردار است، یعنی مثلاً هسته کار شما می تواند یک پروسسور Nios  باشد  به همراه یک تایمر و یک Uart ،…و یا یک طراحی پیچیده ، ثانیاً براحتی  Core پروسسوری طراح با سایر بخشها یعنی IPCore که توسط شخص طراحی گردیده در ارتباط باشد و این یعنی کاهش هزینه در طراحی طرحهای پیچیده که می توند نیاز به چندین چیپ را مرتفع می سازد.

کاربرد میکروپروسسورها در FPGA

ultra00

معرفی و راه اندازی التراسونیک-Ultrasonic

به نام خدا

در مقاله ای که پیش رو دارید قصد داریم به معرفی و راه اندازی التراسونیک-Ultrasonic بپردازیم و اندکی با التراسونیک (Ultrasonic) آشنا شویم. فرکانس کاری التراسونیک خارج از محدوده شنوایی انسان می باشد و یعنی فرکانس الترا سونیک ها از 20Khz تا چند مگاهرتز می باشد که با توجه به نوع کاربرد از التراسونیک با فرکانس کاری خاصی استفاده می شود.

اصول کار التراسونیک (Ultrasonic) بر چه اساس است؟

  • معمولا در کاربرد های صنعتی و غیر صنعتی از یک فرستنده التراسونیک و یک گیرنده یا حسگر التراسونیک استفاده می شود. نحوه عملکرد به این صورت می باشد که ابتدا فرستنده موج التراسونیک که موجی در رنج فرکانس التراسونیک است را ارسال می کند و این موج پس از برخورد به مانع بازگشت می کند و گیرنده این موج بازگشتی را دریافت می کند. حال با توجه به زمان و طیف فرکانس بازگشتی می توان به اطلاعاتی از قبیل عمق،نوع، سرعت و … مانع دست یافت.

حال بپردازیم به کاربرد های التراسونیک، این محدوده فرکانسی کاربرد های وسیعی دارد در زیر به تعدادی از این کاربردها اشاره خواهیم کرد:

  • صنایع رباتیک
  • پزشکی
  • تشخیص وجود شیء
  • شمارنده (مانند شمارنده های کلا ها ی عبور کننده از نوار نقاله)
  • تشخیص موقعیت
  • اندازه گیری حجم
  • تشخیص اشخاص
  • اندازه گیری فاصله
  • صنایع جوش
  • صنایع نانو
  • صنایع شیمی
  • خودروسازی

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

در ادامه مقاله سعی بر آن داریم تا در مورد یکی از کاربرد های التراسونیک یعنی اندازگیری فاصله صحبت کنیم.

برای این کاربرد از رایج ترین ماژول های التراسونیک موجود در بازار ماژول SRF04 و SRF05 می باشد.

ابتدا تفاوت بین این دو ماژول رو بشناسیم:

ماژول SRF05 نسخه تکامل یافته SRF04 می باشد. این نسخه جدید دو مد کاری را پشتیبانی می کند و 5 پایه جهت کار با با ماژول را در اختیار قرار می دهد. اما ماژول SRF04 دارای 4 پایه می باشد و تنها یک مد کاری را پشتیبانی می کند.

حال بپردازیم به نحوه راه اندازی و استفاده از این ماژول ها.

برای استفاده از ماژول SRF04 نحوه عملکرد پایه ها به شرح زیر می باشد:

ultra01

البته در بعضی از ماژول ها پایه “Do not Connect” وجود ندارد. ولتاژ تغذیه این ماژول ها ،همانطور که در شکل مشخص شده است 5 ولت می باشد.

برای راه اندازی ماژول SRF04 باید دیاگرام زیر پیاده شود:

ultra02

همان طور که در دیاگرام مشخص شده است برای تریگ ماژول ابتدا باید یک پالس با عرض حداقل 10 میکرو ثانیه به پایه Trigger اعمال کنیم. سپس فرستنده الترا سونیک 8 پالس ارسال می کند، و سپس ما باید عرض پالسی که روی پایه Echo دریافت می کنیم را بدست آوریم تا از روی این عرض پالس به تشخیص مسافت دست یابیم.

نکته ای در مورد عرض پالس وجود دارد این است که باید عرض پالس بین 100us تا 18ms باشد. اگر بیش از این مقدار باشد تشخیص فاصله با دقت صحیحی نیست و اگر حدود 36ms باشد ،یعنی مانعی را تشخیص نداده است.

اما ماژول SRF05 ،این ماژول معمولا دارای 5 پایه است، که در مد اول پایه ها به شرح زیر می باشند:

ultra03

 

این مد دقیقا مشابه مد SRF04 است و تایمینگ دیاگرام آن ها مشابه است ، تنها تفاوت در عرض پالس روی پایه Echo می باشد.

در ماژول SRF05 عرض پالس روی پایه Echo بین 100us تا 25ms می باشد، یعنی مسافت طولانی تری را می تواند اندازگیری کند و اگر عرض پالس 30ms دریافت کند یعنی مانعی را تشخیص نداده است.

اما راه اندازی ماژول SRF05 در مد دوم، در این مد چیدمان پایه ها به فرم زیر است:

ultra04

در این حالت برخلاف حالت قبل که پایه Mode را بدون اتصال رها می کردیم، باید پایه Mode را صفر کنیم. و تغییر دیگر آنکه پایه Trigger و Echo یکی می باشد.

برای کار کردن در این مد به دیاگرام زیر دقت نمایید:

ultra05

همانطور که در دیاگرام مشخص شده است، بعد از این که پالس تریگر را با عرض بیش از 10us اعمال کردیم، باید منتظر دریافت عرض پالس برگشتی روی همان پایه باشیم.

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

حال اگر زمان اندازگیری شده بر حسب میکرو ثانیه باشد، برای تبدیل به مسافت از دو رابطه زیر می توان استفاده نمود:

Time(us)/58 = distance(cm)

Time(us)/148 = distance(inch)

دو رابطه فوق برای ماژول های ذکر شده و در همه حالت ها یکسان می باشد.

 

راه اندازی انکودر موتور

راه اندازی انکودر موتور-قسمت دوم

انکودر نوری

 راه اندازی انکودر موتور – قمست دوم

بسم الله

در مورد انواع انکودرها، کاربرد و چگونگی عملکر آنها در قسمت پیشین این آموزش (راه اندازی انکودر موتور) به تفضیل بحث شد. در قسمت دوم از این آموزش میخواهیم به پیاده سازی عملی راه اندازی انکودر موتور توسط ARM LPC1788 بپردازیم. در قسمت قبل دو دسته بندی برای روشهای خواندن و کار با انکودر (encoder) ارائه شد.

  • روش ساده : خواندن پایه انکودر و شمردن به ازای هر بار صفر و یک شدن پایه
  • روش اصولی : استفاده از کانتر برای شمارش اتوماتیک پالس ها بدون درگیرشدن پروسسور
LPC1788 - ARM CORTEX-M3

LPC1788 – ARM CORTEX-M3

حال میخواهیم به روش اصولی که استفاده از کانتر (counter) میکر.کنترلر است، خواندن مقادیر انکودر را انجام و مسافت طی شده توسط ربات متحرک را محاسبه کنیم.

 

کانتر میکرو کنترلر میتواند برحسب تنظیم به ازای هر لبه بالا یا پایین رونده یک عدد بشمرد. صرفا جهت یادآوری این لبه ها از همان لبه پالس های تولیدی توسط انکودر نوری میباشد. با توجه به اینکه انکودر مورد استفاده در این پروژه به ازای یک دور کامل موتور 200 پالس تولید میکنند، پس با دیدن هر 200 لبه پایین رونده میتوانیم مطمئن باشیم موتور یک دور کامل زده است. از طرف دیگر محیط چرخ ربات ما 10 سانتی متر است یعنی با چرخش یک دور کامل موتور (چرخ) ربات 10 سانتی متر حرکت کرده است. پس میتوانیم بگوییم با گرفتن هر 200 پالس انکودر ربات 10 سانتی متر حرکت کرده است.

 

میکروی LPC1788 دارای 4 کانتر(تایمر) است که میتوان به انتخاب، از هرکدام استفاده کرد که ما در اینجا از کانتر صفر استفاده میکنیم.

تنظیمات کانتر بسیار ساده و کوتاه است که توجه شما رو به اون جلب میکنم.

 

تنظیم رجیسترهای کانتر

تنظیم رجیسترهای کانتر

 

برای راه اندازی کانتر تنها باید سه رجیستر بالا تنظیم شوند:

  1. رجیستر PR تعیین کننده اینست که به ازای چند لبه کانتر یک عدد بالا برود.
  2. رجیستر CTCT برای انتخاب لبه پایین رونده پالس به عنوان معیار شمارش و تعیین کننده شماره پایه ورودی کانتر است.
  3. رجیستر TCR برای راه اندازی (start) کانتر مورد استفاده قرار گرفته است.

با تنظیمات بالا با هر بار لبه پایین رونده مقدار عدد کانتر یکی اضافه میشود و این مقدار را میتوان مشابه زیر از رجیستر TC کانتر خواند. با دانستن تعداد پالس انکودر در هر دقیقه (200 پالس) و محیط چرخ (10 سانتی متر) میتوان مسافت طی شده را محاسبه نمود.

محاسبه مسافت

محاسبه مسافت

 

جهت یادگیری بهتر، کد پروژه از انتهای مطلب قابل دانلود میباشد. در کد ذکر شده برای تست بجای شمارش پالس های انکودر از واحد PWM برای تولید پالس استفاده شده است که در ذات کاری تفاوتی ایجاد نمی کند. میزان اندازه گیری شده مسافت در داخل پورت سریال UART نمایش داده میشود.

دانلود کد پروژه خواندن انکودر