بررسی واحد 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 ارتباط برقرار کرده و روی آن ها دیتا بنویسید و یا از آن های دیتا بخوانید.

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 نمایش داده میشود.

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

 

 

Osilposcope

اسیلوسکوپ پرتابل با ARM

ساخت اسیلوسکوپ نیازمند یک مبدل آنالوگ به دیجیتال (ADC)  پرقدرت است که علاوه بر دقیق بودن سرعت بالایی در نمونه برداری از سیگنال آنالوگ داشته باشد . علاوه بر اینها نمایش نمایش سیگنال ها نیز نیازمند یک نمایشگر نسبتاً سریع دارد تا سیگنال ها را به صورت درلحظه نمایش دهد.

میکروهای ARM سری کرتکس M3 نظیر NXP1788 دارای مبدل دیجیتال به آنالوگ با دقت بالای 12 بیت و سرعت نمونه برداری 400,000 نمونه در ثانیه، گزینه مناسبی برای این طیف پروژه ها است. میکروهایی نظیر میکروی فوق الذکر خود دارای راه انداز نمایشگرهای بزرگ 7 و 9 اینچی بصورت on-chip است که سرعت بسیار ایده آلی را در نمایش درلحظه و به روز رسانی صفحه به نمایش میگذارد. فیلم زیر عملکرد یک اسیلوسکوپ پرتابل را با ARM سری کرتکس M3 نشان میدهد.

 

 لینک برای مطالعه بیشتر و دریافت کد و pcb

LPC4357 Menu

طراحی منو با LPC4357

امروزه در بسیاری از پروژه ها داشتن یک واسط کاربری گرافیکی یا اسطلاحا داشتن یک GUI یک امر اجتناب ناپذیر است. طراحی منو در دنیای امروز جایگاهی پیدا کرده است که شرکت های بزرگی چون segger , IS2T,Micrium  و … دست به کار ارائه سیستم های تولید منوهای گرافیکی شده اند که قابل پیاده سازی در میکروکنترلر های مختلف می باشند.

در ویدئویی که در زیر مشاهده خواهید کرد یک نمونه منو حرفه ای که با استفاده از LPC4357 طراحی شده است را مشاهده می کنید. در این منو فرکانس میکرو روی 156MHz تنظیم شده است و از یک LCD با ابعاد 800*480 با صفحه تاچ خازنی استفاده شده که به صورت 16bpp راه اندازی شده است.

ادامه مطلب …

LPC4357 EVB

نخستین برد آموزشی LPC4357 در ایران (Cortex-M4 دو هسته ای)

شرکت نوین تراشه البرز برای نخستین بار در ایران اقدام به طراحی برد آموزشی LPC4357 که دارای یک میکرو کنترلر با هسته  ARM Cortex-M4 می باشد، کرده است.

این برد با تراشه محبوب LPC4357 که محصول شرکت NXP می باشد و دارای دو هسته پردازنده است، طراحی گردیده و دارای قابلیت های کاربردی بسیاری می باشد.

LPC4357 EVB

LPC4357 EVB

 

 

 

 

 

 

 

 

 

قابلیت های برد آموزشی Cortex-M4 دو هسته ای:

  1. میکروکنترلر دوهسته ای LPC4357
  2. MMC/SDC
  3. 256Mbit SDRAM
  4. UART Port
  5. UART+Serial to USB
  6. “TFT LCD 4.3
  7. Touch Panel
  8. USB Host
  9. USB Device
  10. CAN Port *2
  11. RS485 Port
  12. I2C Port
  13. ADC Input *2
  14. DAC Output
  15. Jack Head phone
  16. Key *4
  17. LED *4
  18. Input/Output *10

برمبنای همین برد آموزشی در شرکت نوین تراشه البرز دوره های آموزشی برگزار می گردد.

همچنین علاقه مندان برای تهیه برد می توانند با شرکت تماس گرفته و یا از طریق فرم تماس باما درخواست خود را ثبت نمایند.

 

Memory

انواع حافظه های External

به نام خدا

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

حاظه های خارجی را در دسته بندی های مختلفی تقسیم بندی می کنند. اما در یک نوع دسته بندی می توان این حافظه ها را به دو دسته حافظه فرار (volatile) و غیر فرار (non-volatile) تقسیم بندی نمود.

  • حافظه های فرار (volatile):

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

SRAM ها و SDRAM ها از این دسته حافظه ها می باشند. در زیر به برخی از تفاوت های این دو نوع حافظه اشاره می کنیم.

تفاوت SRAM و SDRAM :

  1.  دسترسی به سکتور ها در SDRAM به دلیل سطری و ستونی بودن ساده تر و سریع تر می باشد. (به خانه های حافظه سکتور می گویند.)
  2. SDRAM ها در مقایسه تعداد پایه با SRAM در حجم یکسان دارای تعداد پایه کمتری می باشد.
  3. SDRAM ها اگر رفرش نشوند پاک می شوند.
  4. SDRAM ها در حجم های بالاتری ساخته می شوند.
  5. قیمت SDRAM ارزان تر از SRAM ها می باشد.
  6. اگر سخت افزار کنترلر واحد حافظه وجود نداشته باشد کار با SDRAM ها دشوارتر از SRAM ها می شود.

 

SDRAM

SDRAM

  • حافظه های غیر فرار (non-volatile):

این دسته از حافظه ها اطلاعات بعد از قطع شدن برق نیز در آن ها ذخیره می ماند.

EEPROM ها، SDC ها، NAND FLASH ها و NOR FLASH ها از این دسته حافظه ها می باشند.

EEPROM ها حافظه هایی هستند که معمولا با پروتکل های سریال مانند SPI و I2C می توان به فضای حافظه آن ها دسترسی داشت و باید به این نیز توجه داشت که حجم حافظه EEPROM ها محدود است و برای ذخیره حجم دیتای زیاد مناسب نمی باشند.

نوع دیگر از حافظه های غیر فرار ،حافظه های SDC یا همان مموری کارد ها می باشند. این دسته از حافظه ها در حجم های بالا ساخته می شوند و دسترسی به فضای حافظه آن ها با دو مد SPI و SDIO (که Native هم گفته می شود) امکان پذیر است. در مد SDIO با حداکثر سرعت 25MHz می توان با این نوع حافظه ها کار کرد. در حال حاضر SDC ها تا حجم 64 گیگابایت ساخته می شوند و در مقایسه با حافظه های دیگر دارای قیمت مناسبی می باشند.

SDC

SDC

NAND FLASH ها و NOR FLASH ها حافظه هایی هستند که معمولا در حجم بالایی ساخته می شوند و به دلیل موازی بودن ارتباط آن ها می توان با سرعت بالایی با آن ها کار کرد. از این حافظه ها حتی به عنوان حافظه برنامه اصلی هم می توان استفاده نمود.

تفاوت NAND FLASH ها و NOR FLASH ها در حجم حافظه و زمان نوشتن،خواندن و پاک کردن آن ها می باشد. که در عکس زیر نمایش داده شده است.

NAND Flash Vs NOR Flash

NAND Flash Vs NOR Flash

برای کار با حافظه های NAND FLASH و NOR FLASH اگر واحد کنترل حافظه نداشته باشیم به سختی می توان با آن ها کارکرد.

  • میکرو ها و حاظه ها:

امروزه با پیچیده تر شدن سیستم ها نیاز های متنوعی در طراحی پدیدار شده است. یکی از این نیاز ها نیاز به حافظه ها می باشد و تقزیبا امروزه حافظه های External (حافظه های جانبی) جزو جدا نشدنی سیستم ها شده اند و در هر سیستم بسته به نیاز ممکن است از یک یا چند حافظه استفاده شود. با پدیدار شدن نیاز به حافظه های مختلف ،سازندگان میکرو کنترلر ها نیاز برای ساده تر شدن کار با این واحد ها اقدام به قرار دادن واحد کنترل کننده حافظه در درون چیپ کرده اند. این واحد معروف به واحد External Memory Control یا EMC می باشد. این واحد توانایی برقرار کردن ارتباط با حافظه های SRAM , SDRAM , NAND FLASH , NOR FLASH را دارا می باشد. قرار دادن این کنترلر ارزشمند موجب سادگی کار با حافظه های نامبرده شده است.

علاوه بر واحد EMC برای برقرار کردن ارتباط پرسرعت با حافظه های ارزان قیمت SDC در برخی میکرو کنترلر ها واحدی به نام SD Controller قرار داده شده است که بتواند مد SDIO که مد پرسرعتی برای برقراری ارتباط با حافظه های SDC می باشد را پشتیبانی کند.

میکرو های سری LPC177x و LPC178x که از سری میکروهای ARM Cortex-M3 شرکت NXP می باشند و میکرو های سری LPC407x و LPC408x و LPC43xx که از سری میکروهای ARM Cortex-M4 شرکت NXP می باشند، واحد های EMC و SD Controller را دارای می باشند.

لازم به ذکر است که بسیاری از میکرو های دیگر شرکت NXP و شرکت های دیگر مانند ST و ATMEL و … نیز در واحد های کنترلر حافظه را در برخی از چیپ های خود قرار می دهند و ما در این مقاله تنها قصد معرفی چند نمونه از چیپ های با این قابلیت را داشتیم.

LPC43XX

معرفی میکرو کنترلر های دو هسته ای سری LPC43XX

به نام خدا،

در مقاله ای که در پیش رو دارید قصد معرفی میکرو کنترلر های دو هسته ای سری LPC43XX که از پردازنده قدرتمند Cortex-M4 استفاده می کنند را داریم.

ویژگی های پردازنده ARM Cortex-M4 :

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

پردازنده های Cortex-M4 به دلیل ارزان قیمت بودن گزینه ای مناسب جهت انجام پروژه های پردازش سیگنال می باشد. این پردازنده ها دارای اجزای مختلفی در واحد DSP می باشند، اجزایی از قبیل SIMD , Single-Cycle MAC , Hardware Divide که توانایی های گسترده ای را به پردازنده می دهد به طور مثال این نسل از پردازنده ها عملکرد و کارایی پردازنده را در پروژه های پردازش صوت و تصویر %75 بالاتر می برند.

 

فرکانس لازم برای دیکد کردن MP3

فرکانس لازم برای دیکد کردن MP3

در عکس زیر عملکرد پردازنده Cortex-M3 و Cortex-M4 را در اجرای برخی توابع DSP مشاهده می کنید:

DSP Function

DSP Function

 

ویژگی های میکروکنترلر های ARM Cortex-M4 شرکت NXP :

  • پیشتاز تولید میکروکنترل های ARM Cortex-M4 با دو هسته (Cortex-M4 + Cortex-M3)
  • قدرت پردازش بسیار بالای پردازنده های دوهسته ای
  • دارای قدرتمندترین ADC در بین میکرو کنترلر ها
  • فرکانس کاری تا 204MHz
  • امکانات جانبی فراوان
  • پشتیبانی قوی

شرکت NXP همواره از پیشتازان تولید میکرو کنترلر با هسته ARM بوده است و برای نخستین بار در بین سایر شرکت های تولید کننده میکروکنترلر با هسته های سریMCU اقدام به تولید میکرو کنترلر دو هسته ای کرده است. این سری از میکروکنترلر ها با شماره شناسه LPC43XX شناخته می شوند که XX تفاوت بین میکرو ها را شامل می شود. عمده تفاوت این خانواده ها در حجم حافظه می باشد به غیر از مدل LPC4370 که دارای قدرتمندرین ADC دربین میکرو های حال حاضر دنیا می باشد.

ADC میکرو کنترلر LPC4370 دو نوع عملکرد دارد:

  1. می تواند به صورت دو واحد ADC هشت کاناله با سرعت نمونه برداری 400Ksps و 10 بیتی کار کند.
  2. می تواند به صورت یک واحد ADC شش کاناله با سرعت نمونه برداری 80Msps و 12 بیتی کار کند، که این سرعت بالاترین سرعت نمونه برداری ADC در بین میکروکنترلر های حاضر دنیا می باشد.

یکی از معروفترین میکرو های سری LPC43XX میکروکنترلر LPC4357 می باشد ،که دارای امکانات جانبی فراوان و حجم حافظه بالایی می باشد. این میکرو به دلیل جذابیتی که در دوهسته ای بودن و سایر امکانات جانبی دارد نظر بسیار از شرکت های صنعتی را به خود جلب کرده است. این میکروکنترلر دارای یک پردازنده Cortex-M4 و یک پردازنده Cortex-M0 می باشد، که فرکانس کاری هر هسته می تواند 204MHz باشد.

شرکت نوین تراشه البرز به منظور ارتقای دانش مهندسان و دانشجویان برای اولین بار در سطح کشور اقدام به برگزاری دوره آموزشی میکرو کنترلر دوهسته ای LPC4357 کرده است.

علاقه مندان به شرکت در این دوره می توانند از طریق لینک زیر ثبت نام نمایند.

CMSIS

CMSIS چیست؟

به نام خدا،

در مقاله ای که پیش رو دارین قصد داریم با توضیحاتی اندک با واژه CMSIS بیشتر آشنا شویم و یا به طور مختصر توضیح دهیم CMSIS چیست؟.

با معرفی نسل اول Cortex های سری “M” واژه CMSIS  که مخفف Cortex Microcontroller Software Interface Standard است نیز به گوش می رسید. این تکنیک به منظور نزدیک تر کردن برنامه نویسی میکرو کنترلرها به یکدیگر به کار گرفته شد.

یکی از مشکلاتی که در میکروکنترلر های با هسته ARM به چشم می خورد تغییرات زیاد بین سری های مختلف بود. این تغییرات کاربران قدیمی میکروکنترلر ها نظیر کسانی که با PIC و AVR ها کار می کردند و کاربران جدید که به عنوان اولین میکروکنترلر با ARM ها آشنا شده بودند را آزار می داد؛ چرا که در هر میکرومنترلر رجیسترها تغییر می کرد و کار با امکانات قبلی که کاربران آموخته بودند دشوار می شد و نیازمند مطالعه مجدد می گشت. این مشکل در نگاه اول دو راه حل داشت یکی یکسان سازی رجیسترهای میکروکنترلرهای جدید و راه دیگر ارائه یک لایه نرم افزاری برای یکسان سازی برنامه نویسی. بدلیل این که تغییرات سخت افزاری به مراتب کاری سخت تر نسبت به تغییرات نرم افزاری است شرکت ARM تصمیم به ارائه راه حل لایه نرم افزاری گرفت. در طراحی نسل های جدید پردازنده های ARM یعنی سری Cortex ها سازندگان میکروکنترلرها همراه برگه های اطلاعاتی درایور هایی نیز ارائه می کنند که لایه سطح بالای آن ها یعنی توابع و دستوراتی که کاربران به آن ها نیاز دارند یکسان است و تفاوت در لایه های سطح پایین یعنی در دسترسی های رجیستری است که معمولا کاربران به آن ها یا نیاز ندارند و یا در موارد خاصی به آن ها نیاز پیدا می کنند.

به این درایورها و سایرفایل هایی که از سوی شرکت های سازنده میکروکنترلر ارائه می گردد CMSIS می گویند.

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

دیگر مزیت استفاده از توابع CMSIS کاهش تغییرات نرم افزاری در زمان تغییرات سخت افزاری می باشد. به این معنی که کاربران میکروکنترلر های ARM می توانند چیپ های خود را تغییر دهند و تغییرات کمی از نظر نرم افزاری داشته باشند ،البته بدیهی است که این عمل به شرطی امکان پذیر است که چیپ تغییر یافته امکانات چیپ قبلی را پوشش دهد.

CMSIS ها به طور کلی به هفت دسته تقسیم می شوند که هر کدام را به طور مختصر شرح می دهیم.

CMSIS چیست؟

  1. CMSIS-CORE : این دسته واسط بین پردازنده سری Cortex-M و امکانات جانبی میکروکنترلر می باشد.
  2. CMSIS-DRIVER : این دسته از CMSIS ها دریوار و راه اندازهای امکانات جانبی را شامل می شوند. این گروه امکان برقراری ارتباط با لایه میانی(میان افزار) را ممکن و استفاده از آن ها را ساده تر می کنند.Driver
  3. CMSIS-DSP : این کتابخانه بیش از 60 تابع که برای عملیات روی دیتا های مختلف (اعداد ثابت و اعداد اعشاری با یک رقم اعشار) را جمع آوری کرده است.
  4. CMSIS-RTOS API : واسط رایج برای سیستم هایی با عملیات های Real-Time می باشد. این دسته واسط نرم افزاری استانداردی را ارائه می کند که بسیاری از سیستم های RTOS را قادر به پرتابل شدن می کند ،در نتیجه سیستم را قادر می سازد از  قالب های نرم افزاری، لایه میانی(میان افزار)،کتابخانه ها و سایر قطعات که سیستم عامل RTOS پشتیبانی می کند استفاده کند.RTOS
  5. CMSIS-PACK : این دسته توضیحاتی را به کاربر درمورد اجزای مرتبط به قطعه می دهد، این پک شامل سورس،هدر، کتابخانه ها، مقاله های مورد نیاز،الگوریتم های پروگرام کردن حافظه فلش،نمونه کدها و پروژه های نمونه می باشد. ابزارات توسعه و وب سایت ها از این فایل که با نام PDSC شناخته می شوند، برای استخراج پارامتر های قطعات،اجزای نرم افزاری و ساختار برد های آموزشی استفاده می کنند.
  6. CMSIS-SVD : سیستم توضیح و توصیف امکانات جانبی می باشد. امکانات جانبی یک قطعه را توصیف می کند و می تواند برای دریافت اطلاعات از یک بخش قطعه(یکی از امکانات قطعه) در دیباگر ها و هدر فایل ها مورد استفاده قرار گیرد.
  7. CMSIS-DAP : دسترسی به پورت دیباگ (Debug Access Port). یک FirmWare استاندارد برای اتصال به بخش دیباگ و اشکال زدایی می باشد و به پورت دسترسی به واحد اشکال زدایی هسته (CoreSight) متصل می شود.
عملیات محاسباتی پیچیده خود را به ARMهایی با Cortex-M4 بسپارید

عملیات محاسباتی پیچیده خود را به ARMهایی با Cortex-M4 بسپارید

عملیات محاسباتی پیچیده خود را به ARMهایی با Cortex-M4 بسپارید

میکرو کنترلر های مدرن با بهره گیری از هسته CORTEX-M4  به گزینه قدرتمند، سریع و البته کاملاً اقتصادی برای کارهای پردازشی و عملیات های سنگین محاسباتی تبدیل شده اند. این هسته پرسرعت به دلیل دارا بودن واحد FPU  ، مخفف سه کلمه Floating Point Unit،  میتواند عملیات پردازشی را با سرعت بسیار زیادتری نسبت به هسته های فاقد FPU انجام دهد. بخش زیادی ازعملیات های پردازشی شامل محاسبات اعداد شناور(اعشاری) می باشد که در هسته های معمولی این عملیات به CPU سپرده میشود ، البته مشکل از آنجا پدید می آید که CPU برای این نوع محاسبات بهینه عمل نمی کند و بازدهی و سرعت انجام محاسبات به شدت کاهش می یابد. برای حل این نقص واحدی به نام FPU طراحی شد تا انجام عملیات پردازشی حاوی محاسبات اعشاری به این واحد سپرده شود و این واحد به دلیل طراحی تک منظوره و بهینه برای عملیات پردازشی، عملکرد بهتری را ارائه میکند، پس با توجه به موضوعات مطرح شده میتوانید با اطمینان کامل عملیات محاسباتی پیچیده خود را به ARMهایی با Cortex-M4 بسپارید.

هسته CORTEX-M4 را میتوان، مجموعی از یک هسته CORTEX-M3 بعلاوه واحد های FPU و DSP Extention ها دانست. DSP extentionها شامل قسمتی به نام single-cycle MAC هستند که هسته را قادر می سازد یک عملیات ضرب 32 در 32 بیت را در تنها یک سیکل انجام دهد.

میکروکنترلر LPC4088 یکی از تراشه های پرقدرت و با امکانات فراوان است که با بهره گیری از هسته ARM CORTEX-M4 به گزینه ایده آل از حیث قیمت و امکانات برای جایگزینی با خانواده های پیشین خود تبدیل شده است. شرکت نوین تراشه برای اولین بار در سطح ایران ، اقدام به برگزاری دوره آموزشی LPC4088 با هدف انتقال تکنولوژی و ارتقاع سطح دانشجویان  میکند.

 برای کسب اطلاعات بیشتر در مورد LPC4088 اینجا کلیک کنید

 

تصاویر زیر دو آزمایش (BenchMark) را از عملکرد این هسته جدید نشان میدهد که خود نمایانگر قدرت و جایگاه هسته M4 است.

زمان اجرای عملیات جذر روی اعداد مختلط

زمان اجرای عملیات جذر روی اعداد مختلط

فرکانس لازم برای دیکد کردن MP3

فرکانس لازم برای دیکد کردن MP3