۱- معرفی ماژول Sim900a
این ماژول توسط شرکت SIMCOM که یک ماژول GSM/GPRS کامل و دارای هستهی پردازشی ARM9 میباشد، ارائه شده است. از جمله امکانات این ماژول، انتقال پیام کوتاه، صدا و فکس با توان مصرفی پایین، امکان اتصال و درایو LCD، شامل پینهای ورودی/خروجی میباشد.
قابلیت های کاربردی Sim900a
ماژول کاربردی صنعتی SIM900a از قابلیتهای زیادی برخوردار است، که از جمله این قابلیتها میتوان به راهاندازی و استفادهی فوقالعاده آسان آن اشاره کرد. هدف از این بخش این است که با برخی از این قابلیتها آشنا شده که این امر سبب میشود از آنها برحسب نیاز استفاده شود.
- ارسال اطلاعات هر دستگاه به سرعت و از راه دور
- ارسال و دریافت اطلاعات از طریق GSM و GPRS
- قابلیتهای کارکردن با تمامی اپراتورهای مخابراتی
- ارتباط ساده از طریق بسته RS232 با انواع سیستمها و PLC ها
- تحقق رویای دسترسی سریع، آسان و ارزان به اطلاعات دستگاههای مستقر در مکانهای بسیار دور از محل کار مشتریان
- مجهز کردن دستگاههای الکترونیکی به یک موبایل هوشمند
- تهیهی ردیاب دستی
- سرعتسنجهای ماهوارهای
- مسافت و تنظیم ساعتهای بسیار دقیق
- هماهنگسازی زمانهای عملکرد و دستگاههای توزیعشده در موقعیتهای جغرافیایی مختلف
- ساخت انواع دستگاههای رهیاب
ویژگی و امکانات خود ماژول Sim900a
ماژول SIM900a دارای امکانات بسیاری است که در این بخش به بررسی امکانات عمومی ماژول SIM900 و ویژگیهای آن از نظر ابعاد و وزن، محدودهی ولتاژ کاری، نحوهی کنترل و… پرداخته میشود.
- مناسب برای چهار باند با فرکانس متداول 850 / 900 / 1800 / 1900 مگاهرتز
- قابل استفاده به همراه باطری و دارای مدار داخلی برای استفاده از این قابلیت
- پشتیبانی از LCDهای SPI و Key Pad برای توسعهی پروژهها
- کنترل از طریق AT Commands
- رابط ارتباط سریال UART برای کنترل و دیباگ ماژول
- رابط سیمکارت خارجی
- دارای دو کانال مجزای صوتی، که هر یک میتواند یک بلندگو و میکروفن را پشتیبانی کند.
- دارای مد Sleep برای کاهش مصرف توان با جریان مصرفی 1.5 میلیآمپر
- محدودهی ولتاژ کاری : 3.1 تا 4.8 ولت
- دمای کارکرد : 45- تا 85 درجهی سانتیگراد
- پشتیبانی از پروتکلهای UDP و TCP
- GPRS کلاس 8/10
- برنامهی ابزار سیمکارت
- ابعاد : 24 در 24 در 3 میلیمتر
- وزن : 3.4 گرم
۲- روشن کردن Sim900a
پس از اعمال ولتاژ به این ماژول برای روشن کردن آن بایستی پایه PWRKEY را برای مدت حداقل ۱ ثانیه صفر کرده و سپس دوباره آن را یک کنید. برای خاموش کردن ماژول نیز باید به همین صورت عمل شود. این کار میتواند به وسیله یک شاسی برای حالت دستی و یا به وسیله یک ترانزیستور برای حالتی که قرار است با میکروکنترلر فرمان خاموش و روشن به ماژول داده شود، انجام گیرد.
۳- بررسی جزئیات ماژول Sim900a
ماژول SIM900 از بخشهای حافظه، فرکانس رادیویی، پردازنده و رابطهای مربوطه تشکیل شده است، که بخش حافظه شامل حافظههای ROM، RAM و Flash است. بخش فرکانس رادیویی در چهار باند 1900/1800/900/850 gsm عمل میکند و ارتباطات رادیویی به عهدهی این بخش است. بخش پردازنده که از یک هسته پردازش قوی تشکیل شده است و کنترل ماژول، رابطها و بخش رادیویی را به عهده دارد.
۴- پایههای Sim900a (Pin Configuration)
ماژول Sim900a دارای 68 پایه است که این پایهها در شکل بعد که نمای بالایی پایههای Sim900a را نشان میدهد، دیده میشوند. قرار است در این بخش، با پایههای ماژول آشنا شده و وظیفهی هر پایه به صورت جداگانه بررسی میشود.
- با وصل کردن پایههای 1و2 به یکدیگر تا یک ثانیه ماژول خاموش یا روشن میشود.
- پایههای 3 تا 10 برای ارتباط سریال و تبادل داده و دستورات ATC به کار میرود.
- پایههای 11 تا 14 برای اتصال LCD به ماژول استفاده میشود.
- پایهی 15 ولتاژ خروجی سطح منطقی ماژول تا 10 میلی آمپر را سورس میکند. ولتاژ سطح منطقی 1 برابر 2.8 تا 3 ولت و منطق صفر، صفر ولت است.
- پایهی 16 برای ریست کردن است.
- پایههای 19 تا 22 برای اتصال به میکروفن و بلندگو به ماژول
- پایه 26 برای اتصال باطری Back Up ماژول استفاده میشود.
- پایههای 26 و 27 ارتباط سریال برای دیباگ کردن و به روز کردن ماژول
- پایههای 30 تا 34 رابط اتصال به سیمکارت هستند.
- پایههای 40 تا 51، 67 و 68 ورودی خروجیهای قابل برنامهریزی هستند که قابلیت اتصال به صفحهکلید ماتریسی را دارند.
- پایهی 52 به صورت زیر وضعیت سیستم را نشان میدهد:
- اگر پایه خاموش باشد (صفر ولت): خاموش است.
- 64 میلی ثانیه روشن و 800 میلی ثانیه خاموش: شبکه یافت نشده است.
- 64 میلی ثانیه روشن و 3000 میلی ثانیه خاموش: شبکه پیدا شده است.
- 64 میلی ثانیه روشن و 300 میلی ثانیه خاموش: در حال ارتباط GPRS
- پایهی 60 برای اتصال آنتن.
- پایهی 55 تا 57 برای تغذیهی ولتاژ ماژول هست که در محدودهای بین 3.1 تا 4.8 ولت کار میکند.
- پایهی 66 وضعیت ماژول را با تغییرات سطح منطقی مشخص میکند.
۵- اتصال Sim900a به میکروکنترلر
همانطور که گفته شد ماژول SIM900 از طریق پورت سریال ارتباط برقرار میکند. در شکل زیر حداقل سیمبندی مورد نیاز برای ارتباط این ماژول با میکروکنترلر را مشاهده میکنید. همانطور که میدانید پروتکل ارتباط سریال UART دارای چندین مشخصه است.
- تعداد بیتهای هر قاب که در اینجا 8 بیت است.
- تعداد Stop bit ها که در اینجا 1 است.
- نوع Parity که در اینجا غیر فعال است.
- سرعت ارتباط که میتواند هر یک از مقادیر 1200bps, 2400bps, 4800bps, 9600bps, 19200bps, 38400bps, 57600bps, 115200bps باشد. ماژول سرعت ارتباط را به طور اتوماتیک تشخیص میدهد.
۶- پایههای سیمکارت و نحوهی اتصال سیمکارت به ماژول
هر سیمکارت دارای 6 پایه است که به ترتیب شمارهگذاری نشان داده شده در عکس، هر کدام وظیفهای دارند، که در ادامه با هر کدام از این پایهها آشنا میشویم و در ادامه در شکل 7-5 ارتباط بین هر کدام از پایههای سیمکارت و پایههای مربوط به اتصال سیمکارت در ماژول SIM900 نشان داده شده است.
- VCC: پایهی تغذیه سیمکارت
- RST: پایه ریست کردن سیمکارت
- CLK: پایه کلاک سیمکارت
- GND
- Vpp: برای برنامهریزی سیمکارت (اختیاری)
- Data: پایه داده سیمکارت
۷- تغذیه SIM900A
جهت راهاندازی ماژول SIM900A مهمترین و اصلیترین نکته تامین ولتاژ و آمپراژ مناسب برای تغذیه میباشد، چرا که در صورت عدم تامین مناسب این دو پارامتر ماژول به درستی کار نخواهد کرد و امکان سوختن ماژول بسیار بالا است، ماژول SIM900A دارای ولتاژ کاری بین 3.1 تا 4.8 ولت میباشد و همچنین مقدار جریان مصرفی بین حداقل 1.5 میلیآمپر (در حالت خواب) و حداکثر 2 آمپر در حالت برقراری تماس و یا دریافت پیامک میباشد، بنابراین بایستی از مدار تبدیل ولتاژ مناسبی بهره برد که بتوان هم ولتاژ و هم جریان مناسب را تامین کند، برای این منظور با توجه به نکات آورده شده در manual های ارائه شده توسط شرکت SIMCOM و همچنین با توجه به Datasheet رگولاتور LM2576-ADJ مدار زیر را جهت تامین تغذیه مناسب قرار دادهایم:
در مدار فوق ولتاژVBAT که ولتاژ کاری ماژول میباشد برابر 4 ولت تنظیم شده است (بین ولتاژ 3.1 تا 4.8) و از آن جهت که علاوه بر ولتاژ مناسب بایستی مدار فوق توانایی انتقال جریان 2 آمپر را نیز داشته باشد، از رگولاتور LM2576-ADJ استفاده شده است که این رگولاتور حداکثر تا 3 آمپر توانایی جریاندهی را دارا میباشد.
۸- دستورات AT Command
جهت کنترل این ماژول بایستی با دستورات AT Command آن آشنا شد، که البته بخاطر زیادبودن این دستورات تنها دستورات عمومی و دستوراتی که در این پروژه مورد استفاده قرار گرفته است را به اختصار توضیح میدهیم، شکل کلی فرآیند اجرای یک دستور و نتیجهی حاصل از آن به صورت زیر است:
<CR><LF><response><CR><LF>
که در آن CR معرف Enter (Carriage Return) و LF معرف عبارت «سرخط» (Line Feed) و Response معرف نتیجهی حاصل از ارسال دستور است.
این دستورات از طریق پورت UART به ماژول ارسال میشود و پاسخ هر دستور نیز مجددا از طریق پورت UART به میکرو فرستاده میشود:
عملکرد | AT Command | 1 |
چک کردن دستورات | AT | 2 |
تنظیمات کارخانه | AT&F | 3 |
غیر فعال کردن اکو | ATE0 | 4 |
تنظیم حالت متنی | AT+CMGF=1 | 5 |
حذف کردن تمامی اسمس ها | AT+CMGDA=”DEL ALL” | 6 |
نمایش خودکار اطلاعات پیامک | AT+CNMI=1,2,0,0,0 | 7 |
ارسال پیامک | AT+CMGS=”+989…..”(ENTER) >Your Message <CTRL + Z> | 8 |
برای تست عملکرد ماژول میتوان پس از وصل کردن تغذیه مناسب ، ماژول را از طریق پورت UART به کامپیوتر وصل کرده و از طریق Hyper Terminal های موجود به ماژول دستوراتی فرستاد و پاسخ آن ها را دریافت کرد. (در صورتی که کامپیوتر دارای پورت UART مجزا نمیباشد میتوان از مبدلهای USB به سریال استفاده کرد. )
۹- نرمافزار Sim900a
در این پروژه ماژول Sim900a از طریق UART0 به میکرو متصل شده است.
در ابتدا چند دستور ابتدایی جهت تنظیمات اولیه از طرف میکرو به ماژول ارسال میشود و درصورت دریافت و اجرای صحیح دستور، ماژول به میکرو پیغام OK را میفرستد در غیر اینصورت پیغام ERROR را بر روی پورت UART ارسال میکند، که ما بعد از ارسال هر دستور با قرار دادن یک Delay پاسخ ماژول را دریافت و بررسی کرده و در صورتی که پاسخ ok را دریافت کرده باشیم دستور بعدی را ارسال میکنیم در غیر اینصورت روال کاری میکرو را موقف کرده و اعلام خطا صورت میگیرد تا کاربر متوجه خطا ایجاد شده گردد و سیستم را ریست کند .
به هنگام تماس ورودی و پیام دریافتی پین چهارم ماژول Sim900a به مدت چند نانو ثانیه در سطح یک قرار می گیرد ، این پین را به پایه اینتراپت خارجی میکرو(پایه سوم اینتراپت خارجی ) وصل کرده ایم که در این صورت به محض دریافت اسمس وارد تابع Handler مربوط به این اینتراپت میشود و Flag دریافت اسمس را که قبلا تعریف کرده ایم Set میشود و دستور خواندن اسمس را برای Sim900a ارسال میکنیم، با ارسال این دستور ماژول Sim900a متنی را بر روی پورت UART قرار میدهد و در تابع وقفه UART این متن دریافت و در داخل متغییرRECIVE_SMS ذخیره میشود.در while(1) تابع main بعد از دریافت پیامک با توجه به اینکه Flag دریافت پیامک Set شده است وارد تابع تشخیص متن پیام دریافتی میشویم و درصورتی که متن پیامک دریافتی مطابق با متنی از قبل مشخص شده ای باشد برنامه آبیاری متناسب با متن دریافتی تغییر خواهد کرد.
منبع: وبسایت بعثت الکترونیک