|
 |
Applicazioni Software |
SMS in PDU - Analisi e Decodifica 12/23
[361 di 403] |
 | Il cuore del progetto è la procedura
AT_Chk; il suo compito è quello di
tradurre e
mettere a video
le principali informazioni nascoste nella
stringa di caratteri di un
messaggio SMS,
già disponibile nel sorgente ASM in formato PDU (Protocol
Description Unit), lo
standard utilizzato da tutti i Telefoni
Mobili. |
 | La versione AT_SMS del
progetto finale potrà godere dell'esperienza
maturata in queste pagine decodificando al volo
i caratteri mentre stanno arrivando dalla linea seriale. |
 | Ma è ora di partire verso questo fascinoso traguardo: la
stringa PDU contiene, oltre al
testo del
messaggio, anche numerose informazioni relative al
mittente, al centro servizi SMS, alla
data e all'ora di
ricezione, e così via. |
 | L'elenco seguente ti consente di saltare direttamente
all'analisi del settore della
stringa PDU che più incuriosisce; in
alternativa puoi analizzarli in sequenza, scorrendo le pagine a partire da questa. |
| |
[
1 di 12]
- Presentazione della Procedura AT_chk [questa
pagina]
[ 2 di 12]
- Informazioni
legate al Centro Servizi gestore del messaggio SMS
[ 3 di 12]
- Informazioni
legate al descrittore PDU Type del messaggio SMS
[ 4 di 12]
- Informazioni
legate al Mittente del messaggio SMS
[ 5 di 12]
- Informazioni
legate all'Identificatore del Protocollo del messaggio SMS
[ 6 di 12]
- Informazioni
legate all'Alfabeto usato per Codificare il messaggio SMS
[ 7 di 12] - Informazioni
legate alla Data e all'Ora del messaggio SMS
[ 8 di 12]
- Struttura del Testo del messaggio SMS - Alfabeto a 7 bit
(standard GSM 03.38)
[ 9 di 12]
- Assembly per la decodifica dei settetti associati al Testo del messaggio SMS
[12 di 12]
- Adattamento e messa a video del Testo del messaggio SMS |
 | Per fissare le idee tutte le fasi della descrizione
prenderanno come riferimento la prima
stringa PDU presentata in questo progetto: |
 | La stringa visualizzata è quella di un
messaggio in ingresso al
Telefonino ed è in parte diverso
da quella di un messaggio in uscita;
poiché solo il primo è indispensabile per i nostri fini vedrò di riprendere
l'analisi del secondo in futuro, quando si presenterà la necessità. |
 | E' composta esclusivamente da caratteri ascii numerici
(da "0"
a "9") e
letterali (da
"A"
a "F"), in sostanza quelli usati
per esprimere i simboli del Sistema di numerazione esadecimale; in ogni caso bisogna
interpretarli a coppie, dette
ottetti o coppie
di semi-ottetti, e la loro interpretazione varia notevolmente
in funzione del settore a cui si
riferiscono:
 | talvolta la coppia
di caratteri (per esempio le stringhe "07"
o "0E") va interpretata come
numero binario a 8 bit espresso in
esadecimale, del valore ad essa corrispondente (nel
nostro esempio 07H=7 o
0EH=14); per essa il termine
ottetto (sinonimo di
byte=8 bit)
sembra calzante... |
 | in altri settori la coppia
di caratteri (per esempio "40"
o "16") va interpretata
come coppia di
numeri decimali da utilizzare però scambiandone la
posizione rispetto a quella occupata nella stringa di riferimento
(nel nostro esempio "40"
diventa "04" e "16"
diventa "61"); in sostanza ciascuna
coppia della stringa si può ancora ritenere un
numero binario a 8 bit ma ora espresso in
BCD,
cioè costituito dalla sequenza di 2
numeri binari a 4 bit (ciascuno di valore
esclusivamente compreso tra (0000)BCD = (0)10
associato al carattere "0"
e (1001)BCD = (1)10associato
al carattere "9"),
per questo detti semi-ottetti |
 | se la stringa di questi settori si trova a codificare un
numero dispari di semi-ottetti, dovendo
essere sempre strutturata su
coppie di caratteri, l'ultimo
semi-ottetto "spaiato" sarà trovato anticipato dal
carattere "F" (per esempio "F5",
che
diventa "5F"); è sottointeso
che quest'ultimo non è significativo per l'informazione numerica finale e dovrà
essere da essa escluso |
 | l'ultimo settore
della stringa PDU, dedicato al testo del
SMS, è ancora costituito da
coppie di caratteri (per
esempio stringhe come "7A"
o "5C") da interpretare come
ottetti (bytes=numeri
binari a 8 bit espressi in
esadecimale, nell'esempio 7AH o
5CH), ma il testo in esse nascosto sarà
codificato utilizzando un alfabeto
a 7 bit, rendendo molto impegnativa la sua estrazione |
|
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|