Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Komendy AT wysyłane przez gsm do mikrokontrolera

wektor1981 21 Sty 2007 18:13 4695 5
  • #1 21 Sty 2007 18:13
    wektor1981
    Poziom 10  

    Witam.
    Pisze program który ma pracować w użądzeniu odbierającym polecenia z modułu gsm.
    Niestety takiego modułu jeszcze nie mam ale program chciałbym już napisać.
    Znalazłem dużo na temat sterowania telefonem za pomocą komend AT ale prosiłbym jeśli ktoś ma doświadczenie w tym temacie o podanie kilku przykładów jak wyglądają komunikaty przesyłane z telefonu przez RS.
    Szczególnie interesują mnie przykłady komend wysyłanych przez telefon w przypadku:
    1. Odebrania smsa
    2. Nadejścia połączenia

    Myślę że na kilku przykładach zidentyfikuje potrzebne mi dane i będę mógł dokończyć program.

    Z góry dzięki za wszystkie odpowiedzi.
    Pozdrawiam

    0 5
  • #2 21 Sty 2007 18:20
    mirekk36
    Poziom 42  

    Prawie każdy telefon nadejście połączenia sygnalizuje za pomocą przesłania sekwencji znaków "RING"

    jeśli chodzi o odbiór SMSa to w zależności od skonfigurowania modemu w telefonie lub w module GSM może wyglądać to różnie ... np w Nokii modem wysyła sekwencje "+CMT i parametry" mówiące pod jakim numerem na karcie został zapamiętany SMS. Są też inne tryby ale jeśli chce się je odbierać bez udziału karty to trzeba użyć polecenia do moedemu AT+CNMI= i tu parametry - które skonfiguruje tak modem, że przylatujący SMS w całości w postaci PDU nie wpada w ogóle na kartę tylko przylatuje nam odrazu na RS do odbiornika przypiętego. Jednak nie wszystkie modemy w telefonach oferują taką możliwość. Wtedy trzeba korzystać z tej pierwszej i po jej otrzymaniu wysłać do modemu polecenie "AT+CMGR= tu parametry" , które odczyta ostatnio odebranego SMSa .... najlepiej dorwać sobie notę PDF modułu którego będziesz używał i tam przeczytać dokładnie jego specyfikację, bo niestety występują czasem spore różnice w różnych trybach odbioru itp

    generalnie musisz do tego podejść nie tak jak napisałeś w temacie, że traktujesz to tak jakby do ciebie przychodziły komendy z modemu ... to ty musisz w większości je wysyłać i odpowiednio umieć reagować na informacje przysyłane zwrotnie

    pozdr

    0
  • #3 21 Sty 2007 19:47
    M. S.
    Poziom 34  

    Jeśli chcesz reagować na przychodzące połączenie to albo w przerwaniu albo w cyklicznie odczytuj UART i sprawdzaj czy w odebranych danych znajduje się ciąg znaków RING. Jeśli tak to reaguj. Jeżeli chcesz coś z telefonu odczytać np. sms'a to podaj mu właściwą komendę AT a on odpowie danymi. Trzeba je odebrać poprzez UART i wyselekcjonować z nich co potrzebujesz.

    Zanim coś zaczniesz programować to podłącz telefon do komputera i pobaw się komunikacja z nim poprzez np. hiperterminal. Zobaczysz jak reaguje na twoje komendy. Wyślij sobie sms poprzez terminal, skasuj sms itd. Pamiętaj, że niektóre telefony kodują sms'y w PDU.

    Na początek ujawnię, że jeśli wyślesz komendę AT to telefon powinien odpowiedzieć OK.

    Przy programowaniu µC zwróć uwagę na znaki <CR> (enter) bo komendy obsługujace UART zwykle zatrzymują się na tym znaku. Wtedy mogą nic nie odebrać bo dane znajdują się np. przed następnym lub następnym <CR>. Aby się w tym połapać niezbędna jest zabawa z hiperterminalem.

    Wpisz w szukajkę hasło GSM GPS to znajdzesz tu sporo informacji i potrzebnych programów.

    0
  • #4 21 Sty 2007 20:51
    viki
    Poziom 16  

    Pierwsze co bym zrobił to znalazł manuala od telefonu. (Na stronie producenta). Tam będziesz miał wszystkie informacje odnośnie komend at jakie obsługuję dany telefon lub modem.

    0
  • #6 21 Sty 2007 22:35
    wektor1981
    Poziom 10  

    Dziękuje bardzo za informacje.
    Prawdopodobnie wykorzystam ten moduł:
    http://www.mobileis.com.pl/pdf/modem/mc55_56.pdf
    Po przeczytaniu że pracuje zgodnie ze specyfikacją GSM 07.07 i odnalezieniu jej wiele mi sie wyjaśniło.
    Mimo wszystko chyba wstrzymam sie do momentu aż moduł trafi w moje ręce.

    Pozdrawiam

    0