STM32, پروژه, پروژه های سیسوگ, توصیه شده, دسته‌بندی نشده

پروژه FMS Reader به همراه شماتیک، PCB و فایل برنامه

FMS (سیستم مدیریت ناوگان Fleet Management System)

حتماً تابه‌حال برای دیاگ کردن خودرو خود به تعمیرگاه‌های مخصوص مراجعه نموده‌اید.

در این مواقع اکثراً اتصالی به نام OBD II به خودرو شما وصل خواهد شد و طی آن اطلاعات خودرو و تنظیمات آن قابل‌دسترسی خواهند بود.

این درگاه غالباً میزبان سه پروتکل خاص است که یکی از آنها CAN خودرو است که می‌تواند FMS را نیز پشتیبانی نماید.

 

 

OBD II Sisoog FMS

 

FMS چیست؟

FMS یک استاندارد برای برقراری ارتباط بین تجهیزات الکترونیکی است که در حوزه‌های مختلفی ازجمله خودرو استفاده می‌شود. این استاندارد برای ارتباط از بستر CAN استفاده می‌کند.

 

FMS CAN BUS

اولین بار FMS خودرویی، به‌صورت رسمی در سال 2002 جای خود را در صنعت خودرو بازنمود.

این استاندارد توسط کمپانی‌های Volvo, Scania, Iveco, MAN AG, Daimle AG طراحی و اجرا گردیده است.

جهت اطلاع بیشتر و مشاهده‌ی قابلیت‌های این استاندارد می‌توانید به سایت fms-standard.com مراجعه کنید.

در این استاندار می‌بایست ارتباط سیستم‌های برقی خودرو از حالت قدیم خود خارج شده و به‌صورت CAN FMS BUS داده‌های خود را انتقال دهند.

خواندن اطلاعات ECU خودرو از درگاه CAN

سیستم، اطلاعات حیاتی خودرو که شامل موارد زیر است را بر روی باس خود، در دسترس قرار می‌دهد:

  1. وزن محور (کیلوگرم)
  2. میزان کل مصرف سوخت (لیتر)
  3. میزان سطح سوخت (درصد)
  4. سرعت موتور
  5. سرعت خودرو (مطابق با لاستیک خودرو)
  6. سرعت خودرو (مطابق با کیلومتر شمار)
  7. وضعیت کل سلامت خودرو
  8. وضعیت کلاچ (روشن، خاموش)
  9. وضعیت ترمز (روشن، خاموش)
  10. کروز کنترل (روشن، خاموش)
  11. وضعیت پدال گاز (درصد)
  12. کل ساعت کارکرد موتور (ساعت)
  13. شماره شناسایی خودرو (Ascii)
  14. اطلاعات Tachograph (سرعت، مسافت)
  15. فاصله سرویس خودرو
  16. دمای مایع خنک‌کننده موتور
  17. PTO (وضعیت، حالت)
  18. نسخه نرم‌افزار

 

FMS J1962 Sisoog

نحوه خواندن اطلاعات CAN خودرو:

برای خواندن FMS خودرو می‌بایست به خطوط ارتباطی CAN خودرو نفوذ کرد. برای این منظور باید توسط کانکتورهای موجود در خودرو، اقدام به خواندن دیتا نمود.

در پروژه ارائه‌شده، بدون اختلال در کارکرد خودرو می‌توان دیتاهای آن را دریافت و در کامپیوتر مانیتور کرد.

توسط این پروژه می‌توان با شناسایی خطوط CAN خودرو، حتی در محل‌هایی به غیر از کانکتورهای اصلی اطلاعات را دریافت نمود.

از کانکتور H2 روی برد دو عدد سیم کشیده و به CANL و CANH خودرو متصل کنید. وقتی کابل USB را به سیستم خود متصل کرده و درایور آن را نصب کنید، یک پورت سریال به سیستم شما اضافه خواهد شد. حال با یک نرم افزار ترمینال 232 (مثل Hyperterminal ویندوز و یا RealTerm) می‌توانید بر روی کامپیوتر خود داده های CAN را بررسی کنید.

این پروژه می‌تواند جهت شرکت‌هایی که در زمینه ردیاب خودرو AVL و یا موارد مشابه خودرویی فعالیت می‌کنند، بسیار مفید باشد.

 

SISOOG FMS Decoder

 

شماتیک، PCB برد و فایل هگز برنامه را می‌توانید از لینک زیر دانلود کنید.

این برنامه توسط تیم سیسوگ نوشته و کارایی آن بر روی اتوبوس‌های MAN نیز در ایران تست گردیده است.

SISOOG_FMS.zip (5468 دانلود ها)

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

 



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

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

 

نوشته های مشابه

یک دیدگاه در “38”

  1. پیمان ظفرمندیان پیمان گفت:

    سلام ممنون از سایت و مطالب مفیدتون. ولتاژ vcc ای سی SN65HVD230 طبق دیتاشیت 3.3 ولت است.اما تو شماتیک شما به 5 ولت وصلش کردین. ای سی یا خدای نکرده ecu ماشین نمیسوزه!

    1. زئوس Zeus زئوس Zeus گفت:

      سلام و درود دوست عزیز
      توی این مدار از mcp2551 استفاده شده که 5 ولت است و با 5 ولت براش مشکلی پیش نمیآد !

  2. محمد نادری محمد نادری گفت:

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

    من این برد را چاپ و مونتاژ کردم ( طبق نقشه ) روی ماشین خودم تست کردم ( برلیانس 320 اتوماتیک ) خیلی جالب وصل شد و اطلاعات و ID ها را فرستاد

    چند تا سوال دارم
    1. کامندهای ارسالی برای تنطیمات مربوطه شروع اسکنن خواندن بافر و … چیه ؟
    2. من دقیق نفهمیدم تو شبکه کن چطوری باید اطلاعات وارد شده را تفکیک کرد ؟؟ منظورم اینه که چطوری بفهمیم مثلا دیوایس اول دیتا فرستاد و تمام شد و تا اخر همه دیواس ها … که بشه تفکیک کرد و ای دی ها و دیتا هاشون را بدست اورد
    البته این هم خیلی مفیده تو همیت سایت مطلبش هست ” آشنایی و راه‌اندازی پروتکل CAN با استفاده از STM32 ”
    کمی دقیقتر توضیح بدم … منقبلا با سریال یه پروژه کنترل روشنایی منزل ساختم با مگا 128 و ارتباط سریال که یه کد میفرستادم به میکرو مثلا st100end که میکرو با گرفتن دستور با اول st را میدید بعد end را و بعد بین این دو تا عدد 100 را میکشید بیرون و فلان کار را انجام میداد
    سوال من این جا هست دقیق برای کن باس ؟؟؟؟؟
    من یه ماژول کن به سریال دیگه داشتم و وقتی به کن وصل میکردم خیلی پشت سر هم کد میفرستاد
    حالا چطوری بفهمیم اول و اخر دیتا چیه ؟؟ با چی شروع و با چی تمام میشه ؟ دنبال چه کدی بگردیم ؟
    ممنون میشم دوستان در مورد سورس این برنامه توضیح بدند …
    اگر امکان داشته باشه کد سورسرا قرار بدهند و بچه ها کد را تحلیل کنند
    تشکر از همه دوستان

    1. زئوس Zeus زئوس Zeus گفت:

      سلام و درود دوست عزیز
      بسیار عالی – خوشحالیم که تجربه خودتون رو با ما به اشتراک میذارید.
      و اما سوالات
      1. همونطور که میدونید پروتکل کن مثل سریال میتونه دارای سرعت های مختلفی باشه ؛ دستگاه به نحوی طراحی شده که به صورت اتوماتیک سرعت های استاندارد رو اسکن میکنه و در صورت مشاهده دیتای صحیح روی باس روی سرعت مورد نظر قفل میکنه. پس لازن نیست دستوری برای برد ارسال بشه
      2. پروتکل CAN بر خلاف دیگر پروتکل های سریال دارای سر و ته مشخصی هست که به شکل سخت افزاری توسط کنترلر CAN تشخص داده میشه و چک میشه و فرایند نرم افزاری برای این منظور لازم نیست. هر دستگاه توی پروتکل CAN یک آدرس منحصر به فرد داره که دیگر دستگاه ها با اون آدرس ها هم دیگه رو شناسایی میکنند.

      1. محمد نادری محمد نادری گفت:

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

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

        امکان داره سورس کد این برنامه را تو سایت قرار بدید تا بتونیم کد ها را تحلیل کنیم ؟

        سخت افزار منظورتون ای سی مثلاmcp2551 هست ؟ یعنی خروجی این ای سی مستقیم دیتا کن هست ؟ یا خروجی قسمت سخت افزاری کن داخل میکرو کنترلر منظورتون هست ؟

        و اینکه دیتا خروجی قسمت سخت افزار به چه شکل و فرمتی هست دقیق ؟ منظورم این هست که اون اول و اخر فرم ها دیگه اتوماتیک حذف میشه و فقط ۸ بایت دیتا هست؟

        تشکر

        1. زئوس Zeus زئوس Zeus گفت:

          سلام و درود دوست عزیز
          سال جدید برای شما هم مبارک باشه
          در مورد آدرس ؛ باید بگم آدرس ها توی برنامه و به شکل نرم افزاری تنظیم میشن ؛ در مورد سورس این برد هنوز به جمع بندی نرسیدیم ؛ شاید که بخوایم به عنوان یک محصول برای فروش قرارش بدیدم ؛ شاید هم به صورت متن باز منتشرش کردیم.
          نه دقیقا منظورم آیسی mcp2551 هست ؛ در واقع این آیسی سخت افزار لایه فیزیکی هستش ؛ خروجی اون سیگنال CAN هست که توی سطح TTL قرار گرفته و قابل اتصال به میکروکنترلر هستش.
          خروجی سخت افزار دقیقا دارای تمام جزییات پروتکل CAN هست و برای پارز کردنش باید از کنترلر CAN استفاده کنید.

  3. سلام وقت شما بخیر
    واقعا ممنون بابت این زحماتی که میکشید
    و خسته نباشید …
    من خیلی دنبال اطلاعات کن باس هستم باری ماشین(مسافربری) اسکانیا یک برد هست مخصوص کنترل آلایندگی که با نام EEC3 شناخته میشه وبا برد موتور در ارتباط هست .
    من میخوام اطلاعاتی که برد آلایندگی به برد موتور میفرسته را پیدا کنم
    با این مدار که شما طراحی کردید امکان پذیر هست ؟
    تشکر از زحمات شما

    1. Sisoog Os Sisoog Os گفت:

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

  4. رضا رضایی Reza گفت:

    سلام،وقتتون بخیر…
    یک سوال،اطلاعات روی خطوط دیتا برودکست میشن؟ یا که باید درخواست بدیم بعد منظر خوندنش بشیم؟

    1. Sisoog Os Sisoog Os گفت:

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

      1. Avatar Amir گفت:

        سلام
        مرسی از اطلاعاتتون
        بنظرتون میشه کد ایمو رو برای ecu شبیهسازی کرد؟

        1. Sisoog Os Sisoog Os گفت:

          منظورتون از ایمو چیست؟

          1. Avatar Amir گفت:

            Immoblizer، کدی که میده به ecu برای روشن شدن ماشین

          2. Sisoog Os Sisoog Os گفت:

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

  5. Avatar یزدان گفت:

    برای ماشین های سواری هم یک مدار طراحی کنید مخصوصا داخلی ها

    1. زئوس Zeus زئوس Zeus گفت:

      اتفاقا توی برنامه داریم
      ولی اینقدر مشغله زیاده که هی عقب میندازیم

  6. Avatar امین گفت:

    سلام. بسیار بسیار عالیه این مطلب. اگر ممکن هست در مورد برنامه نویسی برای ارتباط با خطوط can دستگاه ها ( مثل خواندن مقادیر سنسورها و … ) توضیح بدید. خیلی ممنونم.

    1. زئوس Zeus زئوس Zeus گفت:

      سلام
      خواهش میکنم ؛ قبلا مقاله ای در خصوص پروتکل CAN منتشر کرده ایم که تحت عنوان “آشنایی با پروتکل CAN” که فکر میکنم مطالعه اون خالی از لطف نباشه البته فرصت نشده که هنوز قسمت دوم اونو بنویسیم که امیدوارم به زودی بتونیم این کارو انجام بدیم

  7. Avatar محمد گفت:

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

    1. زئوس Zeus زئوس Zeus گفت:

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

  8. Avatar m.a گفت:

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

    1. زئوس Zeus زئوس Zeus گفت:

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

  9. Avatar روزبه گفت:

    سلام
    امکانش هست در باره سورس این پروژه هم توضیح بدید

    1. زئوس Zeus زئوس Zeus گفت:

      سلام و درود دوست عزیز
      در دست بررسی است
      متشکر از نظر شما

  10. Avatar امید گفت:

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

    1. سلام
      بزودی در این رابطه پستی ارائه خواهد شد. در آن سعی میکنیم نحوه دیکد کردن را توضیح دهیم.
      از اینکه با ما همراه هستید خوشحالیم.

  11. Avatar هادی قربانی گفت:

    یه مطلب دیگه اینکه کجا میتونم خروجی خودروهای دیگر رو پیدا کنم و بتونم دیکد کنم؟

    1. Sisoog Os Sisoog Os گفت:

      این درگاه و استاندارد K-Line یک استاندارد هست و در اینترنت میشه خیلی از اطلاعات را پیدا کرد
      در صورت استقبال حتما یک پروژه و یا اطلاعات مفیدی در مورد درگاه K- line که میتوان به اکثر خودروهای سواری ایرانی وصل شد را منتشر خواهیم کرد

  12. Avatar هادی قربانی گفت:

    سلام
    بسیار مطلب مفیدی بود
    اگه ممکنه یشتر وارد جزئیات بشین و روش دیکد کردن اطلاعات کن رو هم توضیح بدین
    منظورم اینه که بدون این واسطه هم بشه اطلاعات خوردو رو دریافت کرد
    ممنون

    1. Sisoog Os Sisoog Os گفت:

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

      1. Avatar عباسعلی گفت:

        لطفا یک چیزی بذارید که بشه در مورد خودرو های ایرانی مثل پراید و پژو ازش استفاده کرد

        1. زئوس Zeus زئوس Zeus گفت:

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

  13. Avatar حمید گفت:

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

    1. Sisoog Os Sisoog Os گفت:

      اکثر خودروهای سواری ایرانی از این پروتکل پشتیبانی نمی کنند و شما از طریق درگاه K- line و پروتکل ISO 9141-2 میتونید به اونها کانکت بشید.
      این پروتکل و استاندارد بیشتر مخصوص خودروهای سنگین و اوتوبوس ها می باشد

  14. Avatar عباسعلی گفت:

    سلام. دمتون گرم. من خیلی دنبال این موضوع بودم و نگرانیم این بود که اطلاعات اتصال به ای سی یو را از کجا باید پیدا کنم که شما این مطلب را گذاشتید و من از جا پریدم.
    من دانش زیادی در مورد الکترونیک ندارم. این بردی که گفتید چه بردیه؟ اطلاعاتی که از روی ای سی یو روی خط CANH,CANL ارسال میشه به صورت سریاله؟

    1. زئوس Zeus زئوس Zeus گفت:

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

      00000154 >> Ex_id = 0CFF3A27, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = FFFFFF000000E100 .
      00000155 >> Ex_id = 0CFF3B27, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = 13B8AA98FF33005D .
      00000156 >> Ex_id = 0CFF3927, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = F4FA007D00000000 .
      00000157 >> Ex_id = 0CFF3A27, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = FFFFFF000000E100 .
      00000158 >> Ex_id = 0CFF3927, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = F4FA007D00000000 .
      00000159 >> Ex_id = 0CFF3A27, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = FFFFFF000000E100 .
      00000160 >> Ex_id = 18FF3000, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = FF86A01130000380 .
      00000161 >> Ex_id = 0CFF3927, St_id = 0000, len = 08, RTR = 00, IDE = 04, FMI = 00 data = F4FA007D00000000 .

      1. Avatar عباسعلی گفت:

        اسم این برد چیه از کجا میشه گرفت؟

        1. زئوس Zeus زئوس Zeus گفت:

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

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

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