SIM20 يك ماژول ارتباط بي سيم است كه از طريق AT Command كنترل مي شود (AT Command فرماني به صورت رشته است كه در اول آن حروف AT برگرفته شده از لغت ATTENTION وجود دارد.) . اين ماژول داراي سه مدل A، B و C بوده كه هر يك در فركانس مشخصي كار مي كنند.
110510103256811171.JPG
با اتصال SIM20 به رايانه از طريق رابط هايي چون USB يك پورت COM در رايانه تعريف مي شود. در نتيجه نرم افزار كنترل ربات ها مي تواند دستورات خود روي اين پورت COM بفرستد تا از راه ارتباط بي سيم بين ماژول متصل به رايانه و ماژول هاي موجود روي ربات ها، اين دستورات منتقل شود.
SIM20 در دو حالت command و data توانايي برقراري ارتباط دارد كه در ادامه تنها از command mode استفاده مي كنيم.
لازم به ذكر است كه SIM20 داراي قابليت Remote Configuration است كه از طريق آن مي توان يك ماژول را از طريق يك ماژول ديگر از راه دور پيكره بندي كرد.
مشخصات فني اين ماژول در پيوست موجود است.
هر ماژول SIM20 در شبكه ي وايرلس خود يك گره (node) محسوب مي شود كه داراي مشخصات زير است:
- <sn> : شماره سريال يكتا و ثابت (Serial number)
شماره سريال 15 كاركتري بوده كه براي هر ماژول مقداري يكتا و تغيير ناپذير است.
- <sid> : شناسه ي گره (Local ID)
عددي صحيحي بين 0 تا 254 بوده كه يك گره را از گره ي ديگر در يك شبكه متمايز مي كند. مقدار پيش فرض آن براي هر ماژول 1 است.
- <cid> : شناسه ي شبكه (Network ID)
شناسه ي شبكه اي است كه ماژول بايد در آن قرار گيرد. مقدار آن عددي بين 0 تا 255 بوده و مقدار پيش فرض آن براي هر ماژول 1 است.
- <did> : شناسه ي گره مقصد (Destination ID)
شناسه ي محلي (SID) گره اي است كه ماژول ما قصد دارد به آن متصل مي شود. در صورتي كه DID را برابر 255 قرار دهيم، ماژول ما مي تواند با هر ماژول ديگري ارتباط برقرار كند. به طور پيش فرض DID برابر 255 است.
- <datar> : نرخ تبادل بيسيم اطلاعات (Air Data Rate)
نرخ تبادل داده هاي بين گره ها را تعيين مي كند. مقدار آن عددي صحيحي بين 0 تا 7 است كه ارزش 0 مربوط به نرخ 2400bps و ارزش 7 مربوط به نرخ 128000bps است. مقدار پيش فرض آن 2 معادل 9600bps است.
- <cha> : شناسه ي كانال فركانس راديويي (RF Channel ID)
تعيين كننده كانال ارتباطي است. تعداد كانال هاي موجود بستگي به مدل ماژول و DataR دارد؛ مثلا“ براي مدل C و DataR=2 60 كانال موجود است كه مي توان بين 0 تا 59 يكي را برگزيد. به طور پيش فرض كانال انتخابي 0 خواهد بود.
يك ماژول SIM20 با يك ماژول SIM20 ديگر ارتباط برقرار مي كند اگر پارامتر هاي CID، DataR و Cha هر دوي آن ها با هم برابر باشد. پس حداكثر تعداد شبكه اي كه مي توان ايجاد كرد به اين شرح است:
Network capacity = NCID x NDataR x NCha
Sim20.PNG
حداكثر تعداد گره هاي موجود در هر شبكه مي توانند 255 عدد باشد.
نحوه ي پيكره بندي يك ماژول SIM20 در پيوست موجود است (مبناي كار نسخه ي 1.01 بوده است.).
براي برنامه نويسي ماژول SIM20 از VB.NET استفاده مي كنيم. ابتدا يك كاپوننت SerialPort را بر روي فرم اصلي برنامه قرار مي دهيم و مقدار BaudRate آن را از طريق پنجره ي Propeties برابر 115200 تعيين مي كنيم.
كد زير در صورت قطع بودن اتصال SerialPort1، نام پورت اتصال را از راه TextBox1 دريافت كرده و اتصال را آغاز مي كند. در صورت وصل بودن ارتباط، كد اتصال را قطع مي كند:
AT Command براي ارسال داده (حداكثر 60 بايت):کد:TryIf SerialPort1.IsOpen = False ThenSerialPort1.PortName = TextBox1.TextSerialPort1.Open()ElseSerialPort1.Close()End IfCatch ex As ExceptionMsgBox(ex.Message, 48)End Try
تابع ارسال فرمان:AT+SRDSEND=<DID>,”YOUR DATA HERE”
تابع پيكره بندي:کد:Sub CommandSender(ByVal DestID As Byte, ByVal command As String) Try 'Chr(13) = Enter Key ; Chr(34) = " SerialPort1.WriteLine("AT+SRDSEND=" + CStr(DestID) + "," + _ Chr(34) + command + Chr(34) + Chr(13)) Catch ex As Exception MsgBox(ex.Message, 48) End Try End Sub
تابع تغيير CID به صورت Remote:کد:Sub ModConfig(ByVal SID As Byte, ByVal CID As Byte, ByVal CHA As Byte _ , ByVal DATAR As Byte, ByVal DID As Byte) SerialPort1.WriteLine("AT+SRDSID=" + CStr(SID) + Chr(13)) SerialPort1.WriteLine("AT+SRDCID=" + CStr(CID) + Chr(13)) SerialPort1.WriteLine("AT+SRDCHA=" + CStr(CHA) + Chr(13)) SerialPort1.WriteLine("AT+SRDDATAR=" + CStr(DATAR) + Chr(13)) SerialPort1.WriteLine("AT+SRDDID=" + CStr(DID) + Chr(13)) End Sub
ست كامل فرمان هاي ماژول پيوست شده است.کد:Sub RCIDConf (ByVal DID As Byte, ByVal CID As Byte) SerialPort1.WriteLine("AT+SRDDID=" + CStr(DID) + Chr(13)) SerialPort1.WriteLine("AT+SRDCONREMOTE=1" +Chr(13)) SerialPort1.WriteLine("AT+SRDCID=" + CStr(CID) + Chr(13)) SerialPort1.WriteLine("AT+SRDCONREMOTE=0" +Chr(13)) End Sub
با تشکر از مطالب فوق العاده شما
من با یک میکروکنترلر xmega میخواهم با ماژول ارتباط سریال برقرار کنم سئوالات زیر را لطفا پاسخ دهید
نرخ پیش فرض چیست؟
پایه NRST در چه حالتی باید باشد؟
Rezasam1 (23-03-12)
دوست گرامي، عضويت شما رو در SSA تبريك مي گمبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنیدبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط crystalmethod برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
خواهش مي كنم...
بنده اون قدر ها در مورد ارتباط مدار ميكرو با SIM20 اطلاع ندارم و شايد نتوم زياد دقيق راهنماييتون كنم.
نرخ تبادل داده تحت COM توسط شركت سازنده 9600 پيشنهاد شده كه البته براساس تجربه هايي كه وجود داشته، ما نرخ 115200 رو پيشنهاد كرديم. نرخ تبادل بيسيم هم مقدارش 2 (معادل 9600) است كه مناسب به نظر مياد و در حالت كلي بهتره تغيير داده نشه.
پايه ي NRST جز پورت هاي ورودي براي كنترل ماژول هستش و براي RESET كردن ماژول به كار ميره. براي اطلاعات بيش تر هم مي تونيد به فايل پيوست شده مراجعه كنيد.
موفق باشيد
آرمين
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks