PDA

View Full Version : برنامه نویسی سیستم های بلادرنگ - Real Time



smt1383
چهارشنبه 07 تیر 1391, 10:20 صبح
با سلام خدمت دوستان
برای برنامه نویسی سیستم های Real time مثلاً سیستمی که باید به صورت دائم تعداد نسبتاً زیادی سنسور را چک کند و بر اساس موقعیت آن ها تصمیماتی را بگیرد و فرمان هایی را صادر کند، برای اینگونه برنامه ها مناسب ترین زبان برنامه نویسی چه زبانی است؟ آیا نوشتن اینچنین برنامه هایی ترفندها و روش های خاصی دارد یا با همان شیوه های کلی که پروژه های معمولی c# را می نویسیم می توانیم اینچنین برنامه هایی را هم بنویسیم؟
ممنون از راهنمایی دوستان

Negin.cs
چهارشنبه 07 تیر 1391, 10:37 صبح
سلام

فکر میکنم بهتر باشه بااستفاده از شبکه های عصبی برنامه رو بنویسید

http://en.wikipedia.org/wiki/Artificial_neural_network

http://en.wikipedia.org/wiki/Neural_network_software

http://www.waset.org/journals/waset/v6/v6-50.pdf

موفق باشید

Esmail Solhkhah
چهارشنبه 07 تیر 1391, 11:39 صبح
دوستمون Negin.cs (http://barnamenevis.org/Negin.cs) راهکار ایده آلی رو اشاره کردن

جسارتا اگه کارتون بحث اتوماسیون هست بنده PLC رو پیشنهاد میدم.

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

حالا با زبان VHDL یا رفقاش فقط یادتون باشه تو FPGA شما فقط AND , OR ,NOT دارید یعنی منطق 0 و 1 خبری از آنالوگ نیست ، مثلا شما نمیتونید مستقیم خروجی به سنسور

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

در مورد PC هم اگه خواستید تمامی سنسورها رو مستقل به PC وصل کنید انتخاب اول باس PCI دوم USB سوم LPT آخریش Serial

اوضاع باس PCI برا این کار ایده آل هست فقط نیاز به درایور نویسی داره چون ساختار سیستم عاملهای NT Base به شما اجازه دسترسی مستقیم به سخت افزار رو نمیده.

در مورد درایور نویسی یه زمانی حوصله داشتم یه چیزایی نوشتم.

http://barnamenevis.org/showthread.php?325728-%D9%86%D8%AD%D9%88%D9%87-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B1%DB%8C%D9%86%D8%AA%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C&p=1433562&viewfull=1#post1433562

همچنین در مورد PLC

http://barnamenevis.org/showthread.php?331198-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-C-%D8%A8%D8%A7-PLC&p=1458283&viewfull=1#post1458283

موفق باشید.

smt1383
چهارشنبه 07 تیر 1391, 13:50 عصر
ممنون از راهنمایی دوستان
اما منظور من این بود که ما سخت افزاری داریم حالا با FPGA یا هر چیز دیگر که اطلاعات همه سنسورها و سیستم های کنترلی را دائماً جمع آوری می کند و به نرم افزار می فرستد. حال این نرم افزار است که بر اساس وضعیت
سنسورها و ... در هر لحظه تصمیمات لازم را گرفته و فرمان های لازم را صادر می کند. سی شارپ زبان مناسبی برای این منظوره؟
اصلاً این کار اصولی هست که ما فقط اطلاعات خام را از سخت افزار بگیریم و کلیه پردازش اطلاعات و ارسال فرمانها در نرم افزار انجام بگیرد یا بهتره که تمام این مراحل را هم خود سخت افزار انجام دهد؟ (البته مزیت انجام این کارها در نرم افزار این است که بدون نیاز به تغییر سخت افزار می توانیم به راحتی هر تغییری که خواستیم در رفتار سیستم بدهیم از طریق تغییر نرم افزار)

Esmail Solhkhah
چهارشنبه 07 تیر 1391, 16:10 عصر
ممنون از راهنمایی دوستان
اما منظور من این بود که ما سخت افزاری داریم حالا با FPGA یا هر چیز دیگر که اطلاعات همه سنسورها و سیستم های کنترلی را دائماً جمع آوری می کند و به نرم افزار می فرستد. حال این نرم افزار است که بر اساس وضعیت
سنسورها و ... در هر لحظه تصمیمات لازم را گرفته و فرمان های لازم را صادر می کند. سی شارپ زبان مناسبی برای این منظوره؟

لطفا دقیقتر توضیح بدید خروجی سخت افزار شما چیه ؟

یک حالت میتونه این باشه : 100 تا لچ که دارن دیتای 8 بیتی میدن

حالت دوم : RS232

حالت سوم : پروتکل انحصاری شما : مثلا اومدید و از طریق 2 بیت دارید دیتای سریال میفرستید و پروتکلش رو خودتون طراحی کردید یه چیزی مثل ساختار فریم در لایه دوم شبکه که

بصورت فلگ آغاز-آدرس مبدا-آدرس مقصد-مک مبدا -مک مقصد - پورت مبدا-پورت مقصد-دیتا-چک سام-فلگ پایان

خب دوست عزیز ببینید n تا حالت رو میشه طراحی کرد بسته به شرایط کاری - امنیتی و ...

خروجی شما داستانش چیه ؟

به عنوان یه قانون سرانگشتی : برای سیستمهای فوق العاده حساس و امنیتی مثل رادار- انواع موشک ها (مخصوصا برد بلند) و... از PC استفاده نمیکنن چون اگه PC تو لحظه

حساس هنگ کنه کنترلی رو سیستم مقصد ندارید و این یعنی فاجعه ولی مثلا برای یه تابلو روان داستان فرق میکنه

شما تا خروجی یا خروجی های سخت افزارتون رو مشخص نکنید نمیشه دقیق نظر داد


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

این قسمت از سوالتون رو باز باید با جواب قسمت اول جواب داد

نیمخاد پروژه رو بگید چیه ، فقط خروجی هاتون رو تشریح کنید.

Negin.cs
چهارشنبه 07 تیر 1391, 16:22 عصر
اصولا هربرنامه نرم افزاری رو میشه با سخت افزار هم پیاده سازی کرد؛ اما وقتی سخت افزاری پیاده سازی بشه هم هزینه ها خیلی میره بالا ، هم تاخیر توی سیستم پیش میاد؛ اینا مشکلات جدا نشدنی استفاده از سخت افزار هست.

اینکه سی شارپ باشه یا نه؛ خب وقتی میبینیم یه بخشهای سخت افزاری هم قراره به سیستم اضافه بشه ، ناخودآگاه به گزینه های دیگری هم مثل سی پلاس پلاس و وی بی هم فکر میکنیم.اما امکانات نرم افزاری سی شارپ - وقتی قرار باشه با نرم افزارهای دیگه مثل متلب همراه باشه - قدرتمند تره فکرمیکنم.

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

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

Saeed_m_Farid
چهارشنبه 07 تیر 1391, 18:21 عصر
سلام
بنظر من خیلی موضوع رو منشعب می‌کنید به قسمتهایی که نمیشه بعداً جمع‌اش کرد!

برای برنامه نویسی سیستم های Real time مثلاً ... مناسب ترین زبان برنامه نویسی چه زبانی است؟
اصلاً سخت افزارش هرچی هست، سوال مربوط میشه به اینکه : "مناسب ترین زبان برنامه نویسی برای سیستم های Real time چیست؟" خوب اولاً این سوال که به اینجا مربوط نمیشه! باید از بچه هایی که تو برنامه نویسی سیستم های Embedded (http://barnamenevis.org/forumdisplay.php?119-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%87%D8%A7%DB%8C-Embedded) هستن بپرسید؛ مشخصاً برای سیستم ای Real-Time زبان‌های برنامه نویسی Real-Time که خوب تو اینجا معروف‌ترین‌هاش LabVIEW (http://en.wikipedia.org/wiki/LabVIEW) یا Atom (http://en.wikipedia.org/wiki/Atom_%28programming_language%29) (منشعب از Haskell (http://en.wikipedia.org/wiki/Haskell_%28programming_language%29)) یا Erlang (http://en.wikipedia.org/wiki/Erlang_%28programming_language%29) (زبان موردعلاقه Mehdi Asgari (http://barnamenevis.org/member.php?12705-Mehdi-Asgari)) و (مثلاً Scala (http://www.scala-lang.org/) و OCaml (http://caml.inria.fr/) از کمتر شناخته شده ها)... مناسب تر هستند، همچنین به اتفاق آراء و تجربه (نمونه (http://www.jstor.org/discover/10.2307/3680098?uid=2129&uid=2&uid=70&uid=4&sid=47699106043837))، استفاده از زبانهای تابعی (Functional programming (http://en.wikipedia.org/wiki/Functional_programming)) نتایج بسیار موفق‌تری در پروژه‌هایی با رویکردهای همزمان داشته‌اند؛ ولی چون معمولاً برنامه ها غیر از کارهای Real-time کارهای دیگه ای هم باید انجام بدن و انجام این کارها (که در زبانهای معمولی!) مثل آب خوردن، هست اونجا خیلی پیچیده میشه، زبانهای ترکیبی که از هر کدوم تو خودشون دارن(مثل Scala (http://www.scala-lang.org/))، گزینه مورد انتخاب اکثر تازه واردها به این حوزه هست، برای نمونه در دات نت #F همچین زبانی هست، ولی نه اینکه کاملاً تخصصی بر روی این نوع سبک برنامه نویسی تمرکز کرده باشه، یعنی OOP و Procedural هم میشه باهاش کد نوشت.
به‌هرصورت اگه کلاً زمینه کاری شما در اون زمینه هست، بهتره سوئیچ کنید روی یکی از زبان‌هایی که اختصاصاً برای کاربردهای همزمان ساخته شدند، ولی خوب قبول می‌کنم که واقعاً برای کدنویسی تو این نوع زبانها، شما بصورت کامل باید منطق برنامه نویسی imperative و OO (اکثر قریب به اتفاق زبانها مجبوب برنامه نویس‌ها) رو کنار بذارین و جور دیگر باید ببینید! ضمناً خیلی کم می‌تونید مستندات و مثال‌های موردنیازتون رو پیدا کنید، کلاً تا راه بیافتید، اعمال شاقّه دارین ...
ولی کلاً این یک چیز مشخص هست که با اکثر زبانهای برنامه نویسی مطرح، میشه شبیه سازی و منطق Real-time رو پیاده کرد، مهم کارآئی، سرعت عمل، قابلیت اطمینان، قابلیت توسعه های بعدی و مهم‌تر از همه Stability برنامه هست که یکمی‌اش رو گفتم و تا هزاران پست جای بحث داره!


به عنوان یه قانون سرانگشتی : برای سیستمهای فوق العاده حساس و امنیتی مثل رادار- انواع موشک ها (مخصوصا برد بلند) و... از PC استفاده نمیکنن...
اینم از اون حرف‌ها بود ها! اولاً این دوست‌مون به احتمال قریب به یقین از این کارها نمی‌کنه، گذشته از این فکر می‌کنم اصلاً صورت مساله یه چیز دیگه است و شما خیلی مساله رو جدی گرفتین! برداشتی که من از پست‌های ایشون کردم، اصلاً ربطی به سمت سخت افزار نداره.
مساله امکان پیاده سازی مطمئن روندهای همزمان هست و قصد مقایسه سرعت عمل زبانها در پاسخگوئی به وضعیت / مانیتورینگ / فرمان های سخت افزاری؛ که باید قبول کرد که زبانهای Native تو قسمت دوم بهتر عمل می‌کنند؛ ولی اینم هست که با دیدی که من از برنامه نویس‌های دور و برم (و یکیش هم خودم!) دارم، واقعاً بندرت افرادی پیدا میشن که در اون زبان‌ها برنامه های کم باگ و با قابلیت اطمینان / توسعه / خوانایی بالا بنویسن، پس مقدار جزئی تاخیر که در اولین اجرای متدهای برنامه های مدیریت شده (فصل اول کتاب جفری ریچر (http://barnamenevis.org/showthread.php?313713)) در مقابل خطرهای بسیار بحرانی که ممکنه بابت مموری لیک یا عدم رعایت صحیح Critical Section ها و مدیریت نادرست Thread‌ها و و و ... پیش بیان از دید من کاملاً قابل چشم پوشی هستن، کما‌اینکه در رویکردهای سخت افزاری و همزمان، معمولاً از هر هزار فراخوانی متدها، یکیش هم فراخوانی بار اوّل نخواهد بود و برنامه ای که هفته / ماه / سال (البته اگه سیستم عامل دووم بیاره!) ها کار کنه، امکان اجرای اولیه متد، یک به میلیون هم نمیرسه ...


اصولا هربرنامه نرم افزاری رو میشه با سخت افزار هم پیاده سازی کرد؛ اما وقتی سخت افزاری پیاده سازی بشه هم هزینه ها خیلی میره بالا ، هم تاخیر توی سیستم پیش میاد؛ اینا مشکلات جدا نشدنی استفاده از سخت افزار هست.
این از کجا اومد؟ من هیچکدوم از دو قسمت توضیحات شما رو نمی‌تونم قبول کنم؛ میشه منبع بگین؟

=====================
چون شما تو تالار #C این سوال رو پرسیدین، بالطبع باید منتظر جواب #C ای هم باشید؛ ولی باید پاسخ‌تون به این سوال مثبت باشه، تا بتونیم ادامه (روش های بهینه در #C برای تعامل با سخت افزار) بدیم:

سوال:‌ آیا با آگاهی از اینکه زبانهای تخصصی سخت افزار / زبانهای تابعی (مثال‌های ذکر شده بالا) برای اینکار مناسب تر هستند،‌ باز هم دوست دارید در محیط های مدیریت شده با سخت افزار تعامل داشته باشین؟ (چون امکانات و مثال های فوق العاده تکمیل تر و کدنویسی بسیار راحت تر و قابل اطمینان تر - از لحاظ مدیریت منابع خودکار، GC و ... - دارند)

Esmail Solhkhah
چهارشنبه 07 تیر 1391, 18:57 عصر
اینم از اون حرف‌ها بود ها! اولاً این دوست‌مون به احتمال قریب به یقین از این کارها نمی‌کنه

جسارتا با اینکه برای شما احترام زیادی قائلم ، چطوری این احتمال قریب به یقین رو دادید ؟

این بحث رو ادامه نمیدم تامسئله به جاهای بغرنج کشیده نشه ، شما فرض کن همینجوری یه چیزی شنیدم.

قصدم فقط کمک به دوستان هست چشمداشتی هم ندارم

در مورد مسائل فنی انتقاد پذیرم ولی مسائل شخصی (تا چیزی رو دقیقا نمیدونیم بهتره احتمال قریب به یقین رو بذاریم کنار)


این از کجا اومد؟ من هیچکدوم از دو قسمت توضیحات شما رو نمی‌تونم قبول کنم؛ میشه منبع بگین؟

در مورد جواب دوستمون فرمایش ایشون درسته (هر برنامه نرم افزاری رو میشه با سخت افزار هم پیاده کرد چون نهایتا نرم افزار رو پردازشگر اجرا میکنه و پردازشگر چیزی نیست جز سخت افزار)

اگه علاقه داشتید این بحث رو ادامه بدیم میتونید اینو یه تاپیک کنید بنده رشته اصلیم الکترونیک هست و اون موقعی که FPGA تو شهرهای کوچیک اسمشم شنیده نشده بود

ما اون جایی که شما احتمال قریب به یقین میدید باهاش کار میکردیم حدود 10 سال پیش تهران)

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

موفق باشید.

Negin.cs
چهارشنبه 07 تیر 1391, 19:17 عصر
من هیچکدوم از دو قسمت توضیحات شما رو نمی‌تونم قبول کنم؛ میشه منبع بگین؟



سلام

داریم برای کامپیوتر معمولی برنامه مینویسیم و این کد درنهایت برای اجرا باید به زبان ماشین تبدیل بشه ؛ زبان ماشین رو نمیشه با سخت افزار پیاده سازی کرد؟!
اگه هنوز قانع نشدین میتونم خوندن مطالبی درمورد ASM (AlgorithmicStateMachine Charts) رو پیشنهاد بدم :http://uhaweb.hartford.edu/jmhill/suppnotes/AsmChart/index.htm

ازاونجایی که سخت افزارهای بکاررفته هیچ کدوم ابررسانا نیستن پس داشتن تاخیر امری بدیهی هست

به هرحال ممنون از عنایتی که داشتین و اطلاعات خوبتون

ممنون از جناب صلح خواه

Saeed_m_Farid
چهارشنبه 07 تیر 1391, 19:30 عصر
فقط این احتمال قریب به یقین شما ...
:لبخند: شما استاد بنده هستید، سوءتفاهم شده! اون دوستمون شما نیستید، کسی که این فرمایش رو می‌کنه:

مثلاً سیستمی که باید به صورت دائم تعداد نسبتاً زیادی سنسور را چک کند و بر اساس موقعیت آن ها تصمیماتی را بگیرد و فرمان هایی را صادر کند، برای اینگونه برنامه ها مناسب ترین زبان برنامه نویسی چه زبانی است؟
دقیقاً مثل شما، قصدم بی‌احترامی نیست و احتمالاً ایشون هم در زمینه تخصصی خودش 100 تا مثل من رو میذاره تو جیب پشتیش! ولی بر حسب شواهد، کسی که از #C برای اینکار میخواد استفاده کنه، باز هم میگم "به احتمال قریب به یقین"نمیخواد برنامه مدیریت رادار، مدیریت پرتاب موشک، آپولو و ... بنویسه؛ ابوی بنده 30 سال مسئول رادار بودن (نیروی هوایی!)، واسه همین من میدونم که از ورودی اونجا شروع می‌کنن تجسس، تا برسی به هزار متری سیستم‌های راداری؛ از اونجا به بعد برنامه‌نویس که سهله، خالق زبان برنامه نویسی رو هم نمیذارن بره نزدیک...

اگه علاقه داشتید این بحث رو ادامه بدیم میتونید اینو یه تاپیک کنیدچرا که نه؟ سوادم میره بالا و من برای هر کلمه ای که از کسی یاد بگیرم، کوچک‌اش هم هستم، واقعاً برای من مساله غامضی هست که به فرض یه سیستم ERP (http://en.wikipedia.org/wiki/Enterprise_resource_planning)! رو بشه با سخت افزار پیاده کرد و از اون هم عجیب تر اینکه : "تاخیر توی سیستم پیش میاد":متعجب: به نظرم اینا فقط حرف‌های تئوری بی ریشه هست، مثل اینکه بگیم بین سیارک‌هایی که در منظومه شمسی دور خورشید میگردن، یه قوری هست! حالا تو بیا خلافش رو ثابت کن ...
___________________
ضمناً 1: چون به احتمال قریب به یقین:لبخند: شما بزودی مدیر همین بخش می‌شین، آیا این تاپیک رو کجا ایجاد کنم؟
ضمناً 2: من کشته امضاء شما هستم! من بیشتر از برنامه نویسی و حتی فلسفه، عاشق فیزیک کوانتوم و نجوم هستم ولی خوب زندگی خرج داره، پس برنامه نویس شدیم! اینجا رو دیدین: نزدیک شدن زمان بازنشستگی برنامه نویسان تورینگی! (http://barnamenevis.org/showthread.php?245412-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-%D8%B4%D8%AF%D9%86-%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D8%A7%D8%B2%D9%86%D8%B4%D8%B3%D8%AA%DA%AF%D B%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86-%D8%AA%D9%88%D8%B1%DB%8C%D9%86%DA%AF%DB%8C%21)

Saeed_m_Farid
چهارشنبه 07 تیر 1391, 20:05 عصر
اگه هنوز قانع نشدین میتونم خوندن مطالبی درمورد ASM (AlgorithmicStateMachine Charts) رو پیشنهاد بدم :http://uhaweb.hartford.edu/jmhill/suppnotes/AsmChart/index.htm
من بازم قانع نشدم! دوست دارم همونطورکه Esmail Solhkhah (http://barnamenevis.org/member.php?27551-Esmail-Solhkhah) فرمودن یه تاپیک در این‌مورد زده بشه و در موردش صحبت کنیم؛ تو لینک شما، دو سه تا Stat Machine، Event Table و زمانبندی هایی شبیه فلیپ فلاپ ساده برای زبان اسمبلی بود که پیاده سازی هربرنامه نرم افزاری با همچین تئوری هایی از دید من، مثل یه شوخی بی‌مزه است؛ من کماکان روی نظر خودم هستم که :

واقعاً برای من مساله غامضی هست که به فرض یه سیستم ERP (http://en.wikipedia.org/wiki/Enterprise_resource_planning)! رو بشه با سخت افزار پیاده کرد و از اون هم عجیب تر اینکه : "تاخیر توی سیستم پیش میاد":متعجب: به نظرم اینا فقط حرف‌های تئوری بی ریشه هست، مثل اینکه بگیم بین سیارک‌هایی که در منظومه شمسی دور خورشید میگردن، یه قوری هست! حالا تو بیا خلافش رو ثابت کن ... برای توضیح بیشتر: چون امکان وجود قوری در خانه همسایه هست، پس نعوذباا... خدا هم چایی میخوره! چرا؟ چون چنین امکانی در:
خارج از خونه همسایه->شهرمون->کشورمون->قاره مون->زمین->منظومه شمسی->کهکشان راه شیری->خوشه آندورمدا->ابرخوشه سنبله->کیهان ما->جهان‌های موازی->بغل‌دست خدا! هم وجود داره! پس فرض ما درست بود!
با یه مقدم غلط میشه به هر تالی (درست یا غلط) رسید، ما نظام قدیم بودیم و اون موقع اولین درسمون تو ریاضیات جدید! همین بود... این‌جور تعابیر از دید من قیاس‌مع‌الفارق هست.
________________
آف: بازم ...
ضمناً 1: بنده برخلاف جناب Esmail Solhkhah (http://barnamenevis.org/member.php?27551-Esmail-Solhkhah) هیچ‌وقت برای خودم کسی نشدم و با توجه به قرائن نخواهم شد؛ از اون‌زمانی که تمام کودکان دور-بر ما بزرگ میشدن و الان همه واسه خودشون آدم‌های مهم و سرشناسی شدن، من همین بودم و تا ابدالدهر هم فکر نکنم تغییری در وضعیت‌ام ایجاد بشه؛ اکثراً همین زرهای اضافی بنده موجب شوت شدن به شرکت‌های دیگر شده است:لبخند: ...
ضمناً 2: صادقانه بگم، همیشه به کمبود سواد خودم اذعان داشتم و همیشه می‌دونم که از بسیاری از اساتید اینجا که سهله از کاربران معمولی مثل خودم هم کم اطلاع‌تر هستم (خیلی از لینک‌ها و مطالب 5~8 سال پیش رو هنوز نمی‌تونم درست درک کنم!)؛ بنابراین فقط برحسب شواهد نظرم رو ایراد می‌کنم و سعی کردم همیشه از اظهارنظر شخصی پرهیز کنم...

Esmail Solhkhah
پنج شنبه 08 تیر 1391, 00:26 صبح
ضمناً 1: چون به احتمال قریب به یقین:لبخند: شما بزودی مدیر همین بخش می‌شین، آیا این تاپیک رو کجا ایجاد کنم؟ چرا که نه، اولا که دوستان به بنده لطف دارن که رای دادن ، نهایتا برمیگرده به نظر جناب موسوی

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

اینکه اگه احیانا بنده شدم مدیر (احیانا) باکی نیس که تو تاپیک شما شرکت کنم و شما هم بیاید باگ حرفهای مارو بگیرید. مگه قراده مدیر بشه آچارفرانسه همه چی دون ؟

فقط اجازه بدید قبل از اینکه بخایم ERP رو کلا سخت افزاری پیاده کنیم،اول ببینیم CPU ای که داره نرم افزار ERP رو اجرا میکنه چطور این کار رو میکنه

اگه بنده بخام محاسبه یه انتگرال ساده رو سخت افزاری پیاده سازی کنم باید فعلن فعلنا کار و زندگیم رو بذارم کنار پس به بنده حق بدید که ERP شما رو سخت افزاری پیاده سازی

نکنم

هدف اینکه که یه مینیمم سیستم با سخت افزار پیاده سازی کنیم و یه سری نرم افزارهای ساده باهاش بنویسیم بعد این رو تعمیم بدیم به هر نرم افزاری .

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

برا این کار اول نیازه CPU رو بشناسیم برا شناختن CPU باید بریم سر اجزای سازندش و ببینیم از کدوم منطق استفاده میکنه

خب همونطور که میدونید حداقل CPU های عمومی که ماها عادت کردیم ازش استفاده کنیم از سطوح منطقی 1 و 0 استفاده میکنن 1 یعنی اتصال به VCC و 0 یعنی اتصال به GND بین

سطوح ولتاژ 3.3 الی 5 ولت ، اصلا ولتاژ چیه و چطوری ایجاد میشه ؟ این وسط مقاومت چیه ، جریان چیه یعنی یه پنج شش واحد تحلیل مدارهای الکتریکی (البته همش نیاز نیس)

تحلیل مداری که میگم با آکادمیکش یکم فرق داره بعضا میرسیم به اینکه برای یه فاصله بسیار ناچیز مجبوری تو فرکانسهای بالا از طلا استفاده کنی یا اینکه میرسی به اینکه آمریکاییها

برای ایجاد یه 0.3 میلی ثانیه تو یکی از مدارات ... بجای استفاده از روشهای مرسوم از تشعشع امواج الکترومغناطیسی استفاده کردن چرا ؟؟؟؟

(محظ اصلاع این کار رو زمانی کردن که تکنولوژی IC رو داشتن)

بعد برسیم به ترانزیستور برای ایجاد سطح منطقی 1 یا 0 اگه نخایم قبلش دیود و ساختار سیلیکون و ژرمانیم رو بررسی کنیم

حالا که رسیدیم به ترانزیستور میگیم این CPU از n میلیون یا میلیارد ترانزیستور تشکیل شده اینجا با ترانزیستور یه پنج شش واحد باید طراحی مدارات الکترونیکی رو شرح بدیم

بعد برسیم به مدارات منطقی و جبر بول و جدول کارنو و مباحث ریاضی مربوط به اون بعد بحث گیتها فلیپ فلاپها - شمارنده ها - مالتی پلکسرها - شیفت ریجسترها و اینکودر و

دیکودرها و ... اینم چند واحد مدارات منطقی

بعد برسیم به معماری کامپیوتر و ساختار کامپیوتر پایه و معماری های هاروارد و فن نیومن و تفاوتشون اینم چند واحد معماری کامپیوتر

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



اگه نخام سرتون رو درد بیارم

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

میکنیم یعنی شما یه IC از نوع EPROM میبینید میگید این شد پیاده سازی نرم افزار اون کامپیوتر من میگم شد سخت افزار نظرتون چیه ؟

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

ضمنا به ابویتون سلام بنده رو برسونید.

موفق باشید.

Negin.cs
پنج شنبه 08 تیر 1391, 11:30 صبح
تو لینک شما، دو سه تا Stat Machine، Event Table و زمانبندی هایی شبیه فلیپ فلاپ ساده برای زبان اسمبلی بود که پیاده سازی هربرنامه نرم افزاری با همچین تئوری هایی از دید من، مثل یه شوخی بی‌مزه است؛ من کماکان روی نظر خودم هستم که :
برای توضیح بیشتر: چون امکان وجود قوری در خانه همسایه هست، پس نعوذباا... خدا هم چایی میخوره!



خب اگه خواستین تاپیک بزنید میتونید حتی سوالشو قشنگتر هم بپرسید و بگید "میشه هر نرم افزاری رو با گیت NAND یا تنها گیت NOR پیاده سازی کرد؟"
ببینیم کی آخرش برا خدا چایی میریزه؟!

smt1383
پنج شنبه 08 تیر 1391, 22:38 عصر
ممنون از همه دوستانی که پاسخ دادند. بحث خیلی منحرف شد.
اول من توضیح بدم که پروژه من تموم شده و خدا رو شکر داره خوب کار می کنه. پس امکان اینکه این کار را با سی شارپ انجام بدیم هست. فقط من می خواستم بدونم این کاری که کردم اصولیه یا نه؟ یعنی اگر یه برنامه نویس حرفه ای این پروژه رو ببینه به من نمی خنده که این چه کاریه کردی؟!
پروژه من هم چیز پیچیده ای نیست. یک مدار سخت افزاری داریم که با میکروکنترلر کنترل میشه. یعنی سخت افزار تعدادی سنسور را می خواند و همچنین می تواند یک سری دستگاه ها را کنترل کند (مثلاً روشن و خاموش کردن)
اما طراحی پروژه به این صورت بوده که خود سخت افزار تصمیم نمی گیرد که چه کاری انجام دهد. سخت افزار هر 100 میلی ثانیه اطلاعات سنسورها را میخواند و به نرم افزار می فرستد و نرم افزار هم بر اساس وضعیت سنسورها تصمیم می گیرد و به سخت افزار دستور می دهد که مثلاً فلان دستگاه رو روشن کن یا آن یکی را خاموش کن. همین.
استفاده از زبانی مثل سی شارپ کار معقولیه برای این کار؟ یا بنا بر پیشنهاد بعضی دوستان باید رفت سراغ زبانهای دیگر؟ (البته اینو هم بگم که همانطور که دوستان گفتند قرار نیست فقط و فقط کارهای Real Time انجام بشه. بلکه برنامه باید UI قوی و جذاب داشته باشه. بانک اطلاعاتی داریم و ذخیره اطلاعات مهم در بانک اطلاعاتی و همچنین امکان گزارشگیری و ... نیز در برنامه نیاز داریم)

Esmail Solhkhah
پنج شنبه 08 تیر 1391, 23:51 عصر
ممنون از همه دوستانی که پاسخ دادند. بحث خیلی منحرف شد.
اول من توضیح بدم که پروژه من تموم شده و خدا رو شکر داره خوب کار می کنه. پس امکان اینکه این کار را با سی شارپ انجام بدیم هست. فقط من می خواستم بدونم این کاری که کردم اصولیه یا نه؟ یعنی اگر یه برنامه نویس حرفه ای این پروژه رو ببینه به من نمی خنده که این چه کاریه کردی؟!
پروژه من هم چیز پیچیده ای نیست. یک مدار سخت افزاری داریم که با میکروکنترلر کنترل میشه. یعنی سخت افزار تعدادی سنسور را می خواند و همچنین می تواند یک سری دستگاه ها را کنترل کند (مثلاً روشن و خاموش کردن)
اما طراحی پروژه به این صورت بوده که خود سخت افزار تصمیم نمی گیرد که چه کاری انجام دهد. سخت افزار هر 100 میلی ثانیه اطلاعات سنسورها را میخواند و به نرم افزار می فرستد و نرم افزار هم بر اساس وضعیت سنسورها تصمیم می گیرد و به سخت افزار دستور می دهد که مثلاً فلان دستگاه رو روشن کن یا آن یکی را خاموش کن. همین.
استفاده از زبانی مثل سی شارپ کار معقولیه برای این کار؟ یا بنا بر پیشنهاد بعضی دوستان باید رفت سراغ زبانهای دیگر؟ بله ، اگه پروژتون اینه زبان سی شارپ مناسب کارتون هست ، اگه از همون اول تاپیک این قضیه رو توضیح می دادی ما و داش سعید رو از هم یه نمه دلخور نمیکردی و Youuness (http://barnamenevis.org/member.php?78417-Youuness) جان هم نمیشد دبیر ادبیات ما

موفق باشید.