ده مهارت ضروری یک مهندس سیستم های نهفته ( Embedded System )

بازگشت به آموزشگاه

مقدمه

متخصص سیستم های نهفته یک فرد کاملا بروز و آگاهی هست که هر روز در حال یادگیری هست او با نرم افزار های متن باز آشناست و میتواند آنها را توسعه دهد .در گذشته ها مثلا دهه ۱۹۸۰ فردی که مدارهای  طراحی آمیخته با سیگنال ( mixed signal ) طراحی میکرد و فردی که موظف به راه اندازی میکروکنترلر ها بود و فردی که کدهای اسمبلی مینوشت و فردی که توانایی کار با ابزارهای روی نمونه های اولیه کارمیکرد و در حقیقت یک نفر بود یعنی یک مهندس همه این کارها را انجام میداد. با پیشرفته شدن سیستم های نهفته و استفاده از میلیونها خط برای برنامه نویسی آن ها و پیچیدگی و دشواری مسئولیت های آن فرد به تخصص های زیر تقسیم شد:

  • توسعه دهنده سخت افزار (  Hardware Developer )
  • توسعه دهنده فریم ور ( Firmware developer); فریم ور به نرم افزاری تقریباً ثابت و نسبتاً کوچک گفته می شود که درون انواع دستگاههای الکترونیکی نظیر ماشین حساب یا کنترل از راه دور، قطعات رایانه شامل دیسک سخت، صفحه‌کلید و غیره وجود دارد.
  • توسعه دهنده نرم افزار ( Software developer )

اما هنوز هم هستند شرکت های بزرگی که علاقه مند هستند فرد مورد نظر در دو حیطه نرم افزار و سخت افزار را مسلط باشد وبا سایر جنبه ها نیز آشنایی داشته باشد . اما دانستن و تسلط بر تمام موضوعاتEmbedded System اگر غیر ممکن نباشد باید بگوییم که کار سخت و دشواری است. برای نوشتن این مقاله با نه متخصص در حوزه Embedded System ها مصاحبه شده و از آن ها در مورد مهارت های بسبار مهم یک متخصق سامانه های نهفته که:

“یک متخصص سامانه های نهفته( Embedded System ) نباید یادگیری را متوقف کند.”


مهارت اول : آشنایی با فناوریهای ارتباط بر بستر اینترنت اشیاء

با دانستن و تخصص در زمینه کد نویسی مثلا c و ++c و طراحی آمیخته با سیگنال شما در دنیای Embedded System موفق و مفید خواهید بود، در حقیقت در بسیاری از موارد دانستن همین مهارت کدنویسی کافیست، اما من طرفدار یادگیری فناوریهای اینترنت اشیا (Internet of things) هستم که یک امتیاز ویژه برای متخصصین Embedded System میباشد.

منبع این نظر :

Ken Wada مدیر شرکت Aurium Technologies با سی سال سابقه در این زمینه ، هم اکنون ایشان طراح و معمار محصولات و سیستم های الکترونیکی برای صنایع مختلف های تک و …


مهارت دوم: مهارت جستجوی را بیاموزید، حرفه ای جستجو کنید

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

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

منبع این نظر:

Michael Anderson دانشمند ارشد PTR group دارای ۳۵ سال سابقه مهندسی در زمینه های برنامه نویسی، سیستم عامل، برنامه نویسی در سطح کرنل و… .


مهارت سوم : چیز های تازه یادبگیرید!

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

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

منبع نظر :

Matt Liberty موسس شرکت Jetperch LLC ارایه دهنده خدمات مشاوره ای DSP و نرم افزاری سامانه های نهفته (Embedded software).دارای هجده سال سابقه مهندسی ، او در مورد خودش فکر میکند که در عین حال که یک جنرالیست هست که هم دانش کسب و کار مهندسی را میداند و هم مهندسی سیستم در زمینه توسعه نرم افزاری سامانه های نهفته و الگوریتم های پردازش سیگنال دیجیتال دارای مهارت می باشد.


مهارت چهارم :کار با سیستم عامل های بی درنگ را تجربه کنید.

مهندسانی که توانایی پیاده سازی فرایند های ساختاریافته را با استفاده از سیستم عامل های بی درنگ (RTOS) را بدانند اکثرا مورد نیاز صنعت بوده و حقوق بالاتری دارند . دلیل آن اینست که آنها نظم و انظباط لازم برای توسعه امن و فهم ایده همزمانی را بدست آورده اند : هر بخش از CPU را می توانند وادار کنند تا کار خاصی را انجام دهد. آن ها میدانند چگونه از صحت عملکرد و استفاده از منابع CPU اطمینان حاصل کنند. به طور خلاصه ، آن ها می دانند چگونه درعین حفظ عملکرد در زمانی که به طور غیر منتظره سرویسی اجرا میشود از منابع حفاظت کنند .بنابراین، من مهندسینی که با RTOS کار نکرده اند را تشویق می کنم که تجربه کار و توسعه چنین سیستم عامل هایی را پیدا کنند. سیستم عامل هایی نظیر VxWorks یا GreenHills یا μC/OS .هم چنین توصیه جدی به استفاده از لینوکس که یک سیستم عامل مقیاس پذیر است دارم. که شما می توانید از آن به صورت بی آلایش و سبک برای کارهای زمانی و زمانبندی شده استفاده کنید و سپس آن را برروی هر نوع سخت افزاری بارگذاری کنید و برای بهینه سازی و کنترل بیشتر ، توسعه کرنل را به انجام رسانید.

منبع این نظر:

Henry Wintz مدیر راهکار صنعت سامانه های نهفته در شرکت Randstad Technologies


مهات پنجم: مهارت هایتان را تنوع بخشید.

اگر هنوز با میکرو کنترلر های ساده کار میکنید ، من به شما توصیه میکنم یک کلاس ” linux driver” بگذرانید.این برای رفتن به سمت اندروید کار شما را آسانتر میکند.تنوع ببخشید : یک اپلیکیشن موبایل بسازید .در مورد اجزا سرورهای back-end اطلاعات پیداکنید و با سخت افزار های متن باز آشنا بشوید .پروژه ای که من هشت سال پیش انجام دادم مرا مجبور به ورود به حیطه سخت افزار کرد ، بنابراین من نتوانستم بر روی بهبود و توسعه الگوریتمم متمرکز شوم.امروزه بسیاری از بردهای بردهای در قفسه ( off-the-shelf ) یعنی بردهای متن باز و آماده برای ایجاد نسخه های اولیه توسعه پروژه نظیر آردوینو،رسپری،بیگل و… می باشد که به من اجازه تمرکز عمیق روی یک حیطه خاص را میدهد.

منبع این نظر :

Jen Costillo مشاور در Rebelbot بیست سال سابقه مهندسی، با تجارب بسیار در زمینه های گوناگون و به قول خودش همه کاره ! ، طراح مدار ، برنامه نویس اپلیکیش اندروید و ویندوز ، هم اکنون مهندس بخش R&D در Broad tech.


مهارت ششم:علاوه بر دانش نرم افزاری همیشه دنبال پردازنده های جدید باشید.

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

منبع نظر :

Eleicia White متخصص نرم افزاری embeddedدر embedded.fm با پانزده سال سابقه فعالیت در حیطه نرم افزاری سیستم های embedded.


مهارت هفتم:ابزار های open source را جدی بگیرید.

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

منبع این نظر:

Rob Oshana عضو تیم فنی شرکت freescale با بیش از ۳۵ سال سابقه مهندسی ،به گفته خودش تحصیلاتش مهندسی الکترونیک بوده و در طول دوران کاری اش مهندسی نرم افزار انجام داده است.


مهارت هشتم : دانش مهندسی سیستم را فراگیرید.

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

منبع این نظر:

Adam Taylor سرگروه مهندسان سیستم های برقی E2V با ۱۵ سال سابقه مرتبط ، یک متخصص embedded


مهارت نهم : مهارت ارایه خودتان و ایده هایتان را پیدا کنید.

مهندسین از هر رشته که باشند نیاز دارند تا بتوانند ایده ها و نظرات خودشان را به صورت موثر معرفی کنند و عموما بهترین راه استفاده از گرافیک می باشد . اغلب من از مهندسان تازه کار می خواهم تا موضوعی را توضیح دهند چیزی که مشاهده می کنم این است که آنها دست و پا میزنند و بی عرضه عمل می کنند و نمیتوانند روی ان موضوع تمرکز کنند و بین توضیحاتشان ارتباط مناسبی بر قرار کنند. ما از فلوچارت برای توضیح مفاهیم استفاده می کنیم. هر مهندسی باید مهارت پایه ای در زمینه توانایی استفاده از بلوک دیاگرام ، دیاگرام ماشین حالت ، تصویر و یا هر نوع ابزار دیگری برای توضیح مفاهیم استفاده کنید . همچنین در توضیح نحوه عملکرد یک وسیله به روز باشید و سعی در توضیح کامل و ارایه جذاب محصول تان کنید. آیا شما می توانید تصور کنید که سعی دارید به یک توسعه دهنده نرم افزار برای یک کنترلر نحوه عملکرد ماشین را با یک سند متنی توضیح دهید؟ نقشه برداری ذهن یکی از تکنیک های مورد علاقه من برای مصور سازی و سازماندهی بصری ایده ها و اندیشه هایم میباشد . من تقریبا از iThoughts یک نرم افزار نقشه برداری ذهن که برای iPad هست استفاده میکنم.

منبع نظر:

Jean LaBross مدیر شرکت Micrum لیسانس مهندسی الکترونیک و ارشد علوم کامپیوتر


مهارت دهم: ارتباطات بیسیم را یاد بگیرید.

یکی از چیزهایی که من به مهندسان embedded توصیه میکنم که یاد بگیرند برای 1 تا 3 سال آینده “ارتباطات بی سیم “میباشد . خصوصا wifi و یا بلوتوث کم مصرف (BLE). در بسیاری از موارد گزینه نخست و شاید تنها گزینه برای ارتباط با وسایل از طریق وای فای استفاده از گوشی تلفن هوشمند می باشد، حداقل در وسایل مصرفی الکتریکی .(وسایل هوشمندی مانند چای ساز هوشمند، یخچال هوشمند که امکان ارتباط وایرلس با گوشی هوشمند را دارا هستند.) سامانه های نهفته ای که ما طراحی خواهیم کرد در آینده نیاز خواهند داشت که بتوانند با app های گوشی هوشمند یا یک راه ارتباطی مبتنی بر اینترنت ارتباط بر قرار کنند ( ارتباط با مصرف کننده) و آپدیت های frimwork خود را دریافت کنند ، ایرادات خود را عیب یابی کنند و … .البته شاید این نظر خیلی عجیب و غریب به نظر بیاید که ارتباطات wifi و BLE به زودی مانند UART رایج می شوند ، اما روزی این اتفاق خواهد افتاد.

منبع این نظر:

Chris Svec مهندس نرم افزار ارشد iRobot با سیزده سال سابقه مهندسی ، مهندس embedded سطح پایین ( low-level : نزدیکترین سطح به سخت افزار ) . با تخصص و علاقه در زمینه سخت افزار و رابط نرم افزاری .


منبع این مقاله:

https://www.embedded.com/electronics-news/4438618/1/10-skills-embedded-engineers-need-now

1+

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

5 × 1 =

بازگشت به آموزشگاه