راه حل اساسی برای مقابله با هنگ کردن ماژول های GSM

رفع مشکل هنگ کردن ماژول های GSM شرکت کوئیکتل و سیمکام simcom quectel
نوشته شده توسط

سلام خدمت همه دوستان، امروز قصد دارم یک راه حل اساسی و کامل رو در خصوص جلوگیری از هنگ کردن ماژول های GSM خدمت شما عزیزان ارائه بدم. پس با من تا انتهای مطلب همراه باشید. همینطور شما میتونید برای کسب اطلاعات بیشتر در خصوص خازن تغذیه ماژول های GSM به مطلب “چرا علیرغم وجود خازن روی خط تغذیه، ماژول SIM800 ریست می‌شود؟” مراجعه کنید.

بیان مسئله هنگ کردن ماژول GSM

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

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

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


بررسی دلیل هنگ کردن ماژول GSM

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

هنگ کردن ماژول GSM چیست؟

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

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

مدت زمان مورد نیاز برای پردازش دستورات ممکن است بر حسب نوع دستور از 300 میلی ثانیه تا چند ده ثانیه متغیر باشد. دستوراتی مانند AT که جواب آن OK می‌باشد کمترین زمان و دستوراتی مانند AT+CGATT که برای برقراری کانکشن اینترنت سیمکارت مورد استفاده قرار میگیرند، ممکن است تا ده ها ثانیه هم به طول بیانجامد.

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

دستور AT+CPAS:

طبق توضیح دیتاشیت، حداکثر زمان پاسخگویی این کامند 300 میلی ثانیه است.

کامند AT+CASP
کامند AT+CASP

دستور AT+CGATT:

طبق توضیحات دیتاشیت، زمان پاسخگویی می تواند تا 75 ثانیه به طول بیانجامد!

کامند AT+CGATT
کامند AT+CGATT

دستور ATH:

و این دستور که تا 90 ثانیه معادل 1.5 دقیقه ممکنه ماژول به میکرو پاسخی ندهد و در واقع هنگ هم نکرده!

کامند ATH
کامند ATH

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


روش های ریست کردن ماژول GSM

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

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

روش اول

ساده ترین و سریع ترین روش ریست کردن ماژول بدون نیاز به هیچ مدار یا زیر ساخت سخت افزاری، با استفاده از دستور AT+CFUN=1,1 می‌باشد. با اجرای این دستور، ماژول ریست شده و می توان مراحل تنظیمات اولیه را از نو اجرا نمود.

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

روش دوم

اگر روش ریست نرم افزاری جواب نداد، باید از روش سخت افزاری پایه PWRKEY استفاده کرد. معمولا مدار مورد نیاز این کار در همه برد های طراحی شده برای همه ماژول های GSM سری SIM800 وجود دارد. چرا که این مدار برای روشن کردن ماژول ضروری می‌باشد.

مدار ریست سخت افزاری
مدار ریست سخت افزاری

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

طبق دیتاشیت، این زمان ممکن است بر حسب فعالیت های جاری ماژول، تا 30 ثانیه هم به طول بیانجامد. سپس مجددا با استفاده از PWRKEY طبق روال عادی ماژول را روشن می کنیم. اکنون ماژول ریست شده و آماده اجرای دستورات می‌باشد.

روش سوم

هر چند به نظر میرسد روش دوم، ماژول را در هر صورت ریست خواهد کرد و کافی می‌باشد، اما باید گفت حتی مواردی ممکن است رخ دهد که حتی ماژول به ریست از طریق PWRKEY هم پاسخ نداده و در هنگ عمیق فرو رفته باشد!!!

در این شرایط که ماژول اصطلاحا به هیچ صراطی مستقیم نیست، نوبت به روش اختصاصی این مطلب برای حل چالش می رسد که راه حل تضمینی برای ریست کامل و مطمئن ماژول GSM هنگ کرده می‌باشد.

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

برای این کار باید مدار مخصوصی طراحی و روی ریل تغذیه ماژول قرار گیرد.

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

مدار ریست از طریق تغذیه
مدار ریست از طریق تغذیه

در این مدار، ولتاژ خروجی رگولاتور اصلی یا باتری، به V-REG وارد شده و از طریق VBAT به پایه تغذیه ماژول وصل می‌شود. در صورتی که ورودی GSM-P-EN در وضعیت صفر باشد، ولتاژ گیت ماسفت نوع P-CH بالا رفته و خاموش می‌شود. و در این حالت تغذیه ماژول GSM به طور کامل قطع می گردد.

با تغییر وضعیت ورودی GSM-P-EN به حالت یک، ماسفت روشن شده و تغذیه ماژول مجددا برقرار خواهد شد. پس از برقراری مجدد تغذیه ماژول، اکنون طبق روال عادی از طریق پایه PWRKEY ماژول GSM را روشن میکنیم.

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


نکات مهم در استفاده از روش سوم ریست ماژول GSM

در رابطه با استفاده از این روش، رعایت چند نکته عملی ضروری می‌باشد:

  • سعی شود فاصله زمانی بین دو ریست متوالی با این روش، بیش از 1 دقیقه باشد.
  • پس از خاموش کردن ماژول با این روش، بلافاصله تغذیه ماژول را وصل نکنید و چند ثانیه به مدار فرصت دهید تا شارژ تمامی خازن ها کاملا تخلیه شوند.
  • ترانزیستور ماسفت استفاده شده در مدار باید ظرفیت جریان حداقل 2 آمپر و مقاومت درین-سورس پایینی داشته باشد. همچنین حداقل ولتاژ گیت-سورس لازم برای سوییچ کامل، حداکثر 3.5 ولت باشد تا با ولتاژ 4 ولت تغذیه ماژول به طور کامل روشن شود.
  • حتما این مدار در آخرین نقطه خط تغذیه ماژول و قبل از خازن های اصلی تغذیه پایه VBAT قرار گرفته باشد و تمامی منابع تامین ولتاژ مثل باتری، آداپتور و… که ممکن است تغذیه ماژول از آنها تامین شود، قبل از این مدار قرار گرفته باشند.

جمع بندی

ماژول های GSM ممکن است بر حسب نوع دستور در حال اجرا، زمان زیادی در حالت مشغول به کار قرار گیرند. در این حالت ممکن است دستور جدیدی از میکروکنترلر دریافت نکنند و گمان ما بر هنگ کردن ماژول برود.

در این شرایط ابتدا باید مطمئن شد که زمان اجرای دستور جاری از حد مجاز فراتر نرفته است. در غیر این صورت، باید ماژول را ریست کرد تا از حالت هنگ خارج شود.

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

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

۸ دیدگاه برای “راه حل اساسی برای مقابله با هنگ کردن ماژول های GSM

  1. سلام
    ماژول m95 بلافاصله پس از وصل برق روشن شده و پس از چند ثانیه خاموش می شود. مشکل از کجا میتونم باشه؟ با منابع تغذیه مختلف هم چک کردم هیچ فرقی نکرد

    1. سلام، تغذیه اعمالی چند ولت هست؟
      منبع تغذیه مورد نظر چند آمپر خروجی داره؟
      سیم کارت بدرستی نصب شده؟ پین کد ندارید؟
      ماژول بعد از وصل تغذیه داغ نمیشه؟

  2. سلام. وقت بخیر. ممنون بابت مطلب مفیدی که به اشتراک گذاشتید.
    من از یک ماژول sim5300 برای ارتباط با سرور استفاده میکنم و در واقع روی شبکه ۳G با ماژول به اینترنت وصل میشم. منتها ماژول بعد از مدتی که به اینترنت وصل میشه و اطلاعات را ارسال میکنه، یک دفعه اینترنتش قطع میشه و هر چقدر هم بهش فرمان ارتباط مجدد میدم، به اینترنت وصل نمیشه. البته به شبکه وصله و چراغ استاتوس هر ۳ ثانیه چشمک میزنه، ولی به فرمان اتصال به اینترنت پاسخی نمیده. تا وقتی هم که برق ماژول را ریست نکنم دوباره به اینترنت وصل نمیشه. میتونید راهنمایی بفرمائید مشکل ممکنه از کجا ناشی شده باشه؟ نکته عجیب اینجاست که اگر شبکه به صورت لحظه ای قطع بشه باید به صورت اتوماتیک خودش دوباره وصل بشه، ولی اصلا این اتفاق نمی افته و بعد از قطع شدن، دیگه کلا وصل نمیشه تا تغذیه ریست بشه.
    ممنون از توجه شما

    1. سلام، بله گاها این مورد در زمان هایی که نت ماژول مادام وصل هستش بهش برخورد کردم. یک بار سعی کنید قبل از اینکه سخت افزاری ریست کنید بیاید و قبل از ارتباط مجدد، دسترسی نت را قطع کنید و مجددا فرآیند ارسال را شروع کنید. مثلا در سری های SIM800x از دستور AT+CIPSHUT برای قطع ارتباط استفاده می‌کنیم. ممنون میشم نتیجه اش را یا روش دیگه ای اگر برخورد کردید با بنده هم به اشتراک بگذارید.

    1. سلام.
      این مطلب یک راهکار کلی و مشترک برای ماژولهای GSM می باشد و امکان استفاده آن برای ماژول های مختلفی وجود دارد.
      موفق باشید.

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

نشانی ایمیل شما منتشر نخواهد شد.