Nokia F-Bus – część 2

Nokia F-Bus – część 2
Razem głosów: 18 co stanowi: 78.89% całości.

k,MTg2OTUxOTEsMzg3MzAz,f,school_bus

 

W poprzedniej cz??ci zapoznali?my si? z po??czeniami dla naszej zabytkowej Noki 5110 oraz poznali?my ramk? zapytania o wersj? Sprz?tu i firmware jaki si? znajduje w telefonie. Teraz zajmiemy si? odpowiedzi? na nasze zapytanie oraz przyk?adowym programie ….

Tak wi?c zapytali?my nasz telefon ramk? :

 

Ramk? omówili?my w poprzedniej cz??ci , ale teraz zajmijmy si? tym co odpowie nam telefon :)  Okazuje si? ?e babcia nokia jest bardzo gadatliwa i zwraca nam ci?g:

Troch? nam wysypa? danych wiec musimy je sobie omówi? :

W pierwszej cz??ci dostajemy potwierdzenie z telefonu ?e odebra? nasze zapytanie

  • 1E 0C 00– Miejsce i ?ród?o s? zamienione zesob?  poniewa? telefon wysy?a do nas
  • 7F : MsgType – telefon wysy?aj?c pakiet potwierdzenia o tre?ci 0x7F: Potwierdzenie (FBUS / IrDA) {+ typ, sekwencja} potwierdzenia w protokole (MBUS) … 
  • 00 02 : d?ugo?? ramki – 2 bajty
  •  D1 : Command – w tym przypadku „+ typ” czyli MsgType wysy?ane z telefonu w poprzedniej ramce 
  • 00 : SeqNo – telefon wysy?a ostatni numer sekwencji, którym by? 0 × 60, wi?c odsy?a 0 × 00 (0 × 60 0 × 07 i pilnuje 3 ostatnich bitów)
  • CF : CRC 1 
  • 71 : CRC 2

Nast?pnie poprosili?my o informacje o wersji oprogramowania i sprz?tu co dostajemy w drugiej ramce :

  • 1E 0C 00 – potwierdzenie jest odwrócone gdy? to telefon wysy?a dane do nas 
  • D2 : MsgType – dokument nk5110.txt mówi,?e warto?ci 0xd2: r Get HW & SW wersja {0 × 0003 „V”, „data oprogramowania n” „oprogramowanie n”„model n” „(c) NMP.”} Czyli warto??  0xD2 jest MsgType, „r” oznacza polecenie otrzymane od telefonu i „0 × 0003” to pocz?tek informacji zawieraj?cej  wersj? sprz?tu / oprogramowania.
  • 00 26 :. D?ugo?? ramki – 38 bajtów 
  • 01 00 : Unknown – mo?e by? ignorowane 
  • 00 03 : Polecenie – w tym przypadku otrzymujemy dane HW i SW Version 
  • 56 20 30 34 2E 34 35 0A 32 31 2D 30 36 2D 30 31 0A 4E 48 4D 2D 35 0A 28 63 29 20 4E 4D 50 2E 00 : dene o wersji HW & SW , która w  hex brzmi: V 04.42.21-06-4-01.NHM . (c) NMP .. 
  • 01 : ilo?? ramek do ko?ca  
  • 41 : SeqNo – telefon wygenerowa? w?asny numer porz?dkowy 
  • 3F : CRC 1 
  • A4:  CRC 2

Teraz taka ciekawostka w sumie powinni?my odpowiedzie? na dane z telefonu bowiem uparte bydle b?dzie do nas próbowa? wys?a? dane 3 razy :) dla pewno?ci ?e zrozumieli?my co nam przekaza? ponadto nadal b?dzie wykonywa? polecenie które mu wys?ali?my. Tak wi?c powinni?my wys?a? odpowied? o tre?ci:

gdzie:

  • 1E 00 0C – Wysy?amy ramk? do telefonu  
  • 7F : MsgType – wysy?amy do telefonu pakiet potwierdzenia 
  • 00 02 : d?ugo?? ramki – 2 bajty 
  • D2 : polecenie – w tym przypadku uznajemy typ wiadomo?ci telefony , która skierowa?a nas w poprzednia ramce 
  • 01 : SeqNo – wysy?amy telefonowi w?asny numer porz?dkowy, który mia? warto?? 0 × 41, wi?c odsy?amy zgodnie z MBUS warto??  0 × 01 (0 × 41 0 × 07 i) 
  • C0 : CRC 1 
  • 7F : CRC 2

Troch? to zawi?e , ale polecam zapoznanie si? z dokumentacj? F-Bus dla MBUS w noki , który tak naprawd? wcale nie jest taki straszny i jak si? okazuje da si? nawet logicznie porozmawia? ze staruszk? N5110.

NO teraz mam tylko nadziej?, ?e podrzuci?em wam pomys? wykorzystania starego telefonu oraz mo?liwo?? odbierania informacji oczywi?cie mo?liwo?ci s? spore i naprawd? warto si? z nimi zapozna?.  A teraz zajmiemy si? przyk?adowym programem w którym wykorzystamy informacje, które tu omówili?my :

——————————————————————————————————————-

Wysy?amy zapytanie o wersj? HW i SW :

Jak wida? ca?o?? komunikacji z F-Bus nie jest skomplikowana, W powy?szym przyk?adzie wiadomo?? do wys?ania przechowujemy w tablicy, nast?pnie inicjujemy F-BUS wysy?aj?c (0x55), 128 razy :)   i czekamy na  odpowiedz, a nast?pnie odsy?amy podzi?kowanie :) Wygl?da to troch? dziwnie , ale kto zrozumie twórców noki ….

Ca?o?? odbywa si? jak wida? wy?ej .. wys?ali?my 128 „U”  dostali?my pakiet potwierdzenia i 3x odpowied? o wersji SW i HW.

Oczywi?cie pewnym k?opotem mo?e by? dla nas obliczanie CRC  ale stworzy?em taki prosty programik konsolowy który oblicza sum? CRC dla polece? dzi?ki czemu mo?emy ?atwo zmodyfikowa? nasz program zmieniaj?c dane w tablicy msg. programik dodam pó?niej do pobrania.

——————————————————————————————————————-

Wysy?anie SMS

Wbrew temu co my?licie teraz wcale nie jest to takie skomplikowane bazowa?em na kodzie projektu: http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=3326&item_type=project

po ma?ych modyfikacjach i uproszczeniu wysy?a on tylko i wy??cznie SMSy i nic innego:) Jedynym k?opotem by?o znalezienie informacji co gdzie jest w formacie SMS, ale si? uda?o  tak wi?c do wys?ania SMS u?ywamy ci?gu:

Co w programie wygl?da nast?puj?co:

W zasadzie to musimy si? tylko martwi? o 2 zmienne

  1.  Przechowuj?c? wiadomo?? SMS do wys?ania
  2.  Numer centrum wiadomo?ci , który jest dostarczany przez operatora i umieszczany w sms przed numerem odbiorcy wiadomo?ci.

W tym wypadku dane nie s? w HEX , SMSC u?ywa jednak hex i koduje numer po swojemu co wygl?da tak :

nr tel .  48 422 922 002   jest czytany jako  0x84  z 48 , 0x24 z 42 , 0x22 z 22  itd…  jak wida? po prostu zamienia miejscami cyfry  i tak je koduje do hex , tak samo z numerem odbiorcy …

Teraz musimy zakodowa? nasza wiadomo?? SMS z 8 bitowego ASCII do 7 bitów to dlatego ?e  nasz czytelny text w ASCII jest zawarty pomi?dzy 0 – 127 (7bit) .

 

Czyli po prostu wstawiamy numer Centrum SMS, numer odbiorcy , wa?no?? i takie tam .. nie b?d? si? wg??bia? tu za bardzo wszystko jest w dokumentacji F-BUS , a skoro mowa o GSM to powiedzmy ?e jest to poprawne :)  Sporo informacji o F_Bus czerpa?em ze strony

http://www.embedtronics.com/nokia/fbus.html  ale obecnie co? nie dzia?a :(

Tu jak wida? sprawdzamy czy ramka jest parzysta czy nie , w razie potrzeby dope?niamy bajtem , obliczamy CRC i wysy?amy do telefonu …  efektem dzia?ania ca?o?ci jest :

W efekcie otrzymujemy odpowied? z telefonu. Jak wida? wy?ej najpierw wysy?any jest pakiet potwierdzenia i kilka sekund pó?niej c?a reszt?  informacji.

Je?li si? przygl?dniemy uwa?nie to mamy te? informacj? ?e nasz sms zosta? wys?any zawarte jest to w ci?gu 0x02 : Obs?uga SMS , nasza wys?ana wiadomo?? {0x0002} znajduje si? w cz??ci: 1E C 0 2 0 9 1 8 0 2

Poni?ej mamy wys?any 6 razy stan sieci  :

0x0a: Network status    r network registration  { 0×0071, ?,?,?,length,netstatus,netsel,cellIDH,cellIDL,lacH,lacL,netcode,netcode,netcode }

I to w zasadzie wszystko co musimy wiedzie? by wys?a? SMS, teraz nast?pnym krokiem mo?e by? zbudowanie dedykowanego uk?adu  i zbudowanie np systemu powiadamiania GSM do alarmu lub systemu Home Inteligence.

Mi?ej zabawy i wysy?ania SMS ….

 

 

 

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay