Lap Trinh Tren Dien Thoai Di Dong - Dong Ngoc Phuong PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 142

KHOA CNG NGH THNG TIN

B MN IN T - VIN THNG

ON NGC PHNG

BI GING:
LP TRNH TRN IN THOI DI NG

TP BI GING
(Lu hnh ni b)

THI NGUYN THNG 08/NM 2010


1
CHNG 2: CC CNG NGH S DNG TRN THIT B DI NG

2.1 Cng ngh mng thng tin di ng GSM

2.1.1 Qu trnh pht trin ca mng thng tin di ng GSM

Nhng nm u 1980, h thng vin thng t bo trn th gii pht trin mnh m
c bit l Chu u m khng c chun ha v cc ch tiu k thut. iu ny
thc gic Lin minh Chu u v Bu chnh vin thng CEPT (Conference of European
Posts and Telecommunications) thnh lp nhm c trch v di ng GSM (Groupe
Spcial Mobile) vi nhim v pht trin mt chun thng nht cho h thng thng tin di
ng c th s dng trn ton Chu u.

Ngy 27 thng 3 nm 1991, cuc gi u tin s dng cng ngh GSM c thc
hin bi mng Radiolinja Phn Lan (mng di ng GSM u tin trn th gii).

Nm 1989, Vin tiu chun vin thng Chu u ETSI (European Telecommunications
Standards Institute) quy nh chun GSM l mt tiu chun chung cho mng thng tin di
ng ton Chu u, v nm 1990 ch tiu k thut GSM phase I (giai on I) c cng
b.

Nm 1992, Telstra Australia l mng u tin ngoi Chu u k vo bin bn ghi


nh GSM MoU (Memorandum of Understanding). Cng trong nm ny, tha thun
chuyn vng quc t u tin c k kt gia hai mng Finland Telecom ca Phn Lan
v Vodafone ca Anh. Tin nhn SMS u tin cng c gi i trong nm 1992.

Nhng nm sau , h thng thng tin di ng ton cu GSM pht trin mt cch
mnh m, cng vi s gia tng nhanh chng ca cc nh iu hnh, cc mng di ng
mi, th s lng cc thu bao cng gia tng mt cch chng mt.

Nm 1996, s thnh vin GSM MoU ln ti 200 nh iu hnh t gn 100 quc


gia. 167 mng hot ng trn 94 quc gia vi s thu bao t 50 triu.

2
Nm 2000, GPRS c ng dng. Nm 2001, mng 3GSM (UMTS) c i vo
hot ng, s thu bao GSM vt qu 500 triu. Nm 2003, mng EDGE i vo hot
ng.

Cho n nm 2006 s thu bao di ng GSM ln ti con s 2 t vi trn 700


nh iu hnh, chim gn 80% th phn thng tin di ng trn th gii.

2.1.2. Kin trc tng qut

Hnh 2-1 M hnh h thng thng tin di ng GSM


Cc k hiu:

3
OSS
: Phn h khai thc v h tr BTS : Trm v tuyn gc

AUC
: Trung tm nhn thc MS : Trm di ng

HLR
: B ghi nh v thng tr ISDN : Mng s lin kt a dch v

MSC
: Tng i di ng PSTN (Public Switched Telephone Network):

BSS
: Phn h trm gc Mng chuyn mch in thoi cng cng

BSC : Mng chuyn mch gi cng


: B iu khin trm gc PSPDN
cng

OM : Trung tm khai thc v bo CSPDN (Circuit Switched Public Data


C dng Network):

SS : Phn h chuyn mch Mng s liu chuyn mch knh cng cng

VLR
: B ghi nh v tm tr PLMN : Mng di ng mt t cng cng

EIR
: Thanh ghi nhn dng thit b

Cc thnh phn chc nng trong h thng


Mng thng tin di ng cng cng mt t PLMN (Public Land Mobile Network)
theo chun GSM c chia thnh 4 phn h chnh sau:

Trm di ng MS (Mobile Station)


Phn h trm gc BSS (Base Station Subsystem)
Phn h chuyn mch SS (Switching Subsystem)

4
Phn h khai thc v h tr (Operation and Support Subsystem)

Trm di ng (MS - Mobile Station)


Trm di ng (MS) bao gm thit b trm di ng ME (Mobile Equipment) v mt
khi nh gi l moun nhn dng thu bao (SIM-Subscriber Identity Module). l mt
khi vt l tch ring, chng hn l mt IC Card hoc cn gi l card thng minh. SIM
cng vi thit b trm (ME-Mobile Equipment) hp thnh trm di ng MS. SIM cung
cp kh nng di ng c nhn, v th ngi s dng c th lp SIM vo bt c my in
thoi di ng GSM no truy nhp vo dch v ng k. Mi in thoi di ng c
phn bit bi mt s nhn dng in thoi di ng IMEI (International Mobile Equipment
Identity). Card SIM cha mt s nhn dng thu bao di ng IMSI (International
Subcriber Identity) h thng nhn dng thu bao, mt mt m xc thc v cc thng
tin khc. IMEI v IMSI hon ton c lp vi nhau m bo tnh di ng c nhn.
Card SIM c th chng vic s dng tri php bng mt khu hoc s nhn dng c nhn
(PIN).

Trm di ng GSM thc hin hai chc nng:

- Thit b vt l giao tip gia thu bao di ng vi mng qua ng v


tuyn.
- ng k thu bao, chc nng th hai ny mi thu bao phi c mt th
gi l SIM card. Tr mt s trng hp c bit nh gi cp cu thu bao ch c th
truy nhp vo h thng khi cm th ny vo my.

Phn h trm gc (BSS - Base Station Subsystem)


BSS giao din trc tip vi cc trm di ng MS bng thit b BTS thng qua giao
din v tuyn. Mt khc BSS thc hin giao din vi cc tng i phn h chuyn mch
SS. Tm li, BSS thc hin u ni cc MS vi tng i v nh vy u ni nhng ngi
s dng cc trm di ng vi nhng ngi s dng vin thng khc. BSS cng phi c
iu khin, do n c u ni vi phn h vn hnh v bo dng OSS. Phn h
trm gc BSS bao gm:

TRAU (Transcoding and Rate Adapter Unit): B chuyn i m v phi


hp tc .
BSC (Base Station Controler): B iu khin trm gc.

5
BTS (Base Transceiver Station): Trm thu pht gc.

Khi BTS (Base Tranceiver Station):


Mt BTS bao gm cc thit b thu /pht tn hiu sng v tuyn, anten v b phn
m ha v gii m giao tip vi BSC. BTS l thit b trung gian gia mng GSM v thit
b thu bao MS, trao i thng tin vi MS qua giao din v tuyn. Mi BTS to ra mt
hay mt s khu vc vng ph sng nht nh gi l t bo (cell).

Khi TRAU (Transcode/Rate Adapter Unit):


Khi thch ng v chuyn i m thc hin chuyn i m thng tin t cc knh
v tuyn (16 Kb/s) theo tiu chun GSM thnh cc knh thoi chun (64 Kb/s) trc khi
chuyn n tng i. TRAU l thit b m qu trnh m ho v gii m ting c th
ring cho GSM c tin hnh, ti y cng thc hin thch ng tc trong trng hp
truyn s liu. TRAU l mt b phn ca BTS, nhng cng c th c t cch xa BTS
v thm ch cn t trong BSC v MSC.

Khi BSC (Base Station Controller):


BSC c nhim v qun l tt c giao din v tuyn thng qua cc lnh iu khin
t xa. Cc lnh ny ch yu l lnh n nh, gii phng knh v tuyn v chuyn giao.
Mt pha BSC c ni vi BTS, cn pha kia ni vi MSC ca phn h chuyn mch
SS. Giao din gia BSC v MSC l giao din A, cn giao din gia BTS v BSC l giao
din A.bis.

Cc chc nng chnh ca BSC:

1. Qun l mng v tuyn: Vic qun l v tuyn chnh l qun l cc cell v cc


knh logic ca chng. Cc s liu qun l u c a v BSC o c v x l,
chng hn nh lu lng thng tin mt cell, mi trng v tuyn, s lng cuc gi b
mt, cc ln chuyn giao thnh cng v tht bi...
2. Qun l trm v tuyn gc BTS: Trc khi a vo khai thc, BSC lp cu hnh
ca BTS ( s my thu/pht TRX, tn s cho mi trm... ). Nh m BSC c sn mt tp
cc knh v tuyn dnh cho iu khin v ni thng cuc gi.

6
3. iu khin ni thng cc cuc gi: BSC chu trch nhim thit lp v gii phng
cc u ni ti my di ng MS. Trong qu trnh gi, s u ni c BSC gim st.
Cng tn hiu, cht lng cuc u ni c my di ng v TRX gi n BSC.
Da vo m BSC s quyt nh cng sut pht tt nht ca MS v TRX gim nhiu
v tng cht lng cuc u ni. BSC cng iu khin qu trnh chuyn giao nh cc kt
qu o k trn quyt nh chuyn giao MS sang cell khc, nhm t c cht lng
cuc gi tt hn. Trong trng hp chuyn giao sang cell ca mt BSC khc th n phi
nh s tr gip ca MSC. Bn cnh , BSC cng c th iu khin chuyn giao gia cc
knh trong mt cell hoc t cell ny sang knh ca cell khc trong trng hp cell ny b
nghn nhiu.
4. Qun l mng truyn dn: BSC c chc nng qun l cu hnh cc ng truyn
dn ti MSC v BTS m bo cht lng thng tin. Trong trng hp c s c mt
tuyn no , n s t ng iu khin ti mt tuyn d phng.

Phn h chuyn mch (SS - Switching Subsystem)


Phn h chuyn mch bao gm cc khi chc nng sau:

Trung tm chuyn mch nghip v di ng MSC


Thanh ghi nh v thng tr HLR
Thanh ghi nh v tm tr VLR
Trung tm nhn thc AuC
Thanh ghi nhn dng thit b EIR
Phn h chuyn mch (SS) bao gm cc chc nng chuyn mch chnh ca mng
GSM cng nh cc c s d liu cn thit cho s liu thu bao v qun l di ng ca
thu bao. Chc nng chnh ca SS l qun l thng tin gia nhng ngi s dng mng
GSM vi nhau v vi mng khc.

Trung tm chuyn mch di ng MSC:


Tng i di ng MSC (Mobile services Switching Center) thng l mt tng i
ln iu khin v qun l mt s cc b iu khin trm gc BSC. MSC thc hin cc
chc nng chuyn mch chnh, nhim v chnh ca MSC l to kt ni v x l cuc gi
n nhng thu bao ca GSM, mt mt MSC giao tip vi phn h BSS v mt khc giao
tip vi mng ngoi qua tng i cng GMSC (Gateway MSC).

7
Chc nng chnh ca tng i MSC:

X l cuc gi (Call Processing)


iu khin chuyn giao (Handover Control)
Qun l di ng (Mobility Management)
Tng tc mng IWF(Interworking Function): qua GMSC

Hnh 2-2 Chc nng x l cuc gi ca MSC


(1): Khi ch gi quay s thu bao di ng b gi, s mng dch v s lin kt ca
thu bao di ng, s c hai trng hp xy ra :

(1.a) Nu cuc gi khi u t mng c nh PSTN th tng i sau khi


phn tch s thoi s bit y l cuc gi cho mt thu bao di ng. Cuc
gi s c nh tuyn n tng i cng GMSC gn nht.
(1.b) Nu cuc gi khi u t trm di ng, MSC ph trch m trm di
ng trc thuc s nhn c bn tin thit lp cuc gi t MS thng qua
BTS c cha s thoi ca thu bao di ng b gi.
(2): MSC (hay GMSC) s phn tch s MSISDN (The Mobile Station ISDN) ca
thu bao b gi tm ra HLR ni MS ng k.

(3): MSC (hay GMSC) s hi HLR thng tin c th nh tuyn n MSC/VLR


qun l MS.

(4): HLR s tr li, khi MSC (hay GMSC) ny c th nh tuyn li cuc gi


n MSC cn thit. Khi cuc gi n MSC ny, VLR s bit chi tit hn v v tr ca MS.

8
Nh vy c th ni thng mt cuc gi mng GSM, l chc nng x l cuc gi ca
MSC.

kt ni MSC vi mt s mng khc cn phi thch ng cc c im truyn dn


ca mng GSM vi cc mng ny. Cc thch ng ny gi l chc nng tng tc IWF
(Inter Networking Function). IWF bao gm mt thit b thch ng giao thc v truyn
dn. IWF c th thc hin trong cng chc nng MSC hay c th thit b ring,
trng hp hai giao tip gia MSC v IWF c m.

B ghi nh v thng tr (HLR - Home Location Register):


HLR l c s d liu tham chiu lu gi lu di cc thng tin v thu bao, cc
thng tin lin quan ti vic cung cp cc dch v vin thng. HLR khng ph thuc vo v
tr hin thi ca thu bao v cha cc thng tin v v tr hin thi ca thu bao.

HLR bao gm:

Cc s nhn dng: IMSI, MSISDN.


Cc thng tin v thu bao
Danh sch cc dch v m MS c s dng v b hn ch
S hiu VLR ang phc v MS

B ghi nh v tm tr (VLR - Visitor Location Register):


VLR l mt c s d liu cha thng tin v tt c cc MS hin ang vng phc
v ca MSC. Mi MSC c mt VLR, thng thit k VLR ngay trong MSC. Ngay c khi
MS lu ng vo mt vng MSC mi. VLR lin kt vi MSC s yu cu s liu v MS t
HLR. ng thi HLR s c thng bo rng MS ang vng MSC no. Nu sau MS
mun thc hin mt cuc gi, VLR s c tt c cc thng tin cn thit thit lp mt
cuc gi m khng cn hi HLR, c th coi VLR nh mt HLR phn b. VLR cha
thng tin chnh xc hn v v tr MS vng MSC. Nhng khi thu bao tt my hay ri
khi vng phc v ca MSC th cc s liu lin quan ti n cng ht gi tr.

Hay ni cch khc, VLR l c s d liu trung gian lu tr tm thi thng tin v
thu bao trong vng phc v MSC/VLR c tham chiu t c s d liu HLR.

VLR bao gm:

9
Cc s nhn dng: IMSI, MSISDN, TMSI.
S hiu nhn dng vng nh v ang phc v MS
Danh sch cc dch v m MS c v b hn ch s dng
Trng thi ca MS ( bn: busy; ri: idle)

Thanh ghi nhn dng thit b (EIR - Equipment Identity Register):


EIR c chc nng kim tra tnh hp l ca ME thng qua s liu nhn dng di
ng quc t (IMEI-International Mobile Equipment Identity) v cha cc s liu v phn
cng ca thit b. Mt ME s c s IMEI thuc mt trong ba danh sch sau:

1. Nu ME thuc danh sch trng ( White List ) th n c quyn truy nhp v


s dng cc dch v ng k.
2. Nu ME thuc danh sch xm ( Gray List ), tc l c nghi vn v cn kim tra.
Danh sch xm bao gm nhng ME c li (li phn mm hay li sn xut thit b) nhng
khng nghim trng ti mc loi tr khi h thng
3. Nu ME thuc danh sch en ( Black List ), tc l b cm khng cho truy nhp
vo h thng, nhng ME thng bo mt my.

Khi trung tm nhn thc AuC (Aunthentication Center)


AuC c ni n HLR, chc nng ca AuC l cung cp cho HLR cc tn s nhn
thc v cc kho mt m s dng cho bo mt. ng v tuyn cng c AuC cung
cp m bo mt chng nghe trm, m ny c thay i ring bit cho tng thu bao.
C s d liu ca AuC cn ghi nhiu thng tin cn thit khc khi thu bao ng k nhp
mng v c s dng kim tra khi thu bao yu cu cung cp dch v, trnh vic truy
nhp mng mt cch tri php.

Phn h khai thc v bo dng (OSS)


OSS (Operation and Support System) thc hin 3 chc nng chnh:

1) Khai thc v bo dng mng.


2) Qun l thu bao v tnh cc.
3) Qun l thit b di ng.

10
Khai thc v bo dng mng:
Khai thc:
L hot ng cho php nh khai thc mng theo di hnh vi ca mng nh ti ca
h thng, mc chn, s lng chuyn giao gia hai cell.v.v.. Nh vy nh khai thc c
th gim st c ton b cht lng dch v m h cung cp cho khch hng v kp thi
nng cp. Khai thc cn bao gm vic thay i cu hnh gim nhng vn xut hin
thi im hin thi, chun b tng lu lng trong tng lai v m rng vng ph
sng. h thng vin thng hin i, khai thc c thc hin bng my tnh v c tp
trung mt trm.

Bo dng:
C nhim v pht hin, nh v v sa cha cc s c v hng hc, n c mt s
quan h vi khai thc. Cc thit b h thng vin thng hin i c kh nng t pht
hin mt s cc s c hay d bo s c thng qua kim tra. Bo dng bao gm cc hot
ng ti hin trng nhm thay th cc thit b c s c, cng nh vic s dng cc phn
mm iu khin t xa.

H thng khai thc v bo dng c th c xy dng trn nguyn l ca TMN


(Telecommunication Management Network - Mng qun l vin thng). Lc ny, mt
mt h thng khai thc v bo dng c ni n cc phn t ca mng vin thng
(MSC, HLR, VLR, BSC, v cc phn t mng khc tr BTS). Mt khc h thng khai
thc v bo dng c ni ti my tnh ch ng vai tr giao tip ngi - my. Theo
tiu chun GSM h thng ny c gi l trung tm vn hnh v bo dng (OMC -
Operation and Maintenance Center).

Qun l thu bao:


Bao gm cc hot ng qun l ng k thu bao. Nhim v u tin l nhp v
xo thu bao khi mng. ng k thu bao cng c th rt phc tp, bao gm nhiu dch
v v cc tnh nng b sung. Nh khai thc c th thm nhp c cc thng s ni trn.
Mt nhim v quan trng khc ca khai thc l tnh cc cc cuc gi ri gi n thu
bao. Khi HLR, SIM-Card ng vai tr nh mt b phn qun l thu bao.

11
Qun l thit b di ng:
Qun l thit b di ng c b ng k nhn dng thit b EIR thc hin. EIR
lu tr ton b d liu lin quan n trm di ng MS. EIR c ni n MSC qua
ng bo hiu kim tra tnh hp l ca thit b. Trong h thng GSM th EIR c
coi l thuc phn h chuyn mch NSS.

2.1.4 Cng ngh GPRS


truyn thng tin s t in thoi di ng n mng, mch chuyn i d liu
CSD (Circuit Switched Data) c s dng trong th h mng di ng 2G, CSD h tr
tc ln ti 9.6 kbps. GSM (Global System Mobile Communication) h thng truyn
thng di ng ton cu l h thng a truy nhp phn chia theo thi gian (TDMA), s
dng khe thi gian kt ni, mi khe i din cho mt knh ngi dng. tng tc
truyn d liu trong h thng GSM, cng ngh HSCSD (High Speed Circuit Switched
Data) - d liu chuyn mch tc cao c s dng. HSCSD l tiu chun GSM cui
cng s dng chuyn mch thay v truyn d liu chuyn mch gi, khi s dng
HSCSD mt kt ni thng trc c thit lp gia cc bn gi v c gi trao i
d liu. Dch v thng tin di ng v tuyn chuyn mch gi GPRS (General Packet
Radio Service) l s m rng ca CSD v HSCSD. GPRS tt hn HSCSD, n c a
ra th h 2.5G v c th coi l bc pht trin n cng ngh 3G.

12
Hnh :
S pht trin ca h thng truyn thng cellular.
Khc vi CSD v HSCSD l cc cng ngh chuyn mch knh, GPRS l cng
ngh chuyn mch gi. Ni mt cch n gin hn, GPRS l dch v truyn ti d liu
thng qua tn hiu v tuyn, c pht trin da trn nn tng GSM. ng dng chnh ca
GPRS l h tr dch v email v duyt web, v GPRS truyn ti d liu gia in thoi di
ng vi nh cung cp (sau nh cung cp truyn ti tip d liu n mng internet)
nn nu my c ci t cc phn mm/ng dng ph hp, bn s kt ni c vi th
gii internet bn ngoi. tng cng tc truyn d liu cho GPRS, EDGE c
pht trin, cng ngh EDGE hay cn gi l EGPRS, l mt cng ngh di ng c nng
cp t GPRS cho php truyn d liu vi tc c th ln n 384 Kbps cho ngi dng
c nh hoc di chuyn chm v 144 Kbps cho ngi dng di chuyn tc cao. EDGE
dng phng thc iu ch 8-PSK tng tc d liu truyn. Chnh v th, trin
khai EDGE, cc nh cung cp mng phi thay i trm pht sng BTS cng nh l thit
b di ng so vi mng GPRS.

Cc yu t chnh ca kin trc GPRS [3GPP-23.060] c th hin trong hnh di


Mt trm di ng GPRS c phn loi theo kh nng ca mnh h tr ng thi cc
ch hot ng cho mng GSM v GPRS [3GPP-22.060] nh sau:

Class A: cc trm di ng h tr s dng ng thi dch v GSM v GPRS


(nh km, kch hot, theo di, truyn ti, ...). Mt lp trm di ng c th
c thit lp hoc nhn cuc gi vo hai dch v ng thi. S phc tp cao
ca vic thit k cc lp lm cho sn xut thit b tn km. o , cc thit b
ny thng khng c sn cho th trng.

Class B: cc trm in thoi di ng c gn vo c hai dch v GSM v


GPRS. Tuy nhin, trm di ng ch c th hot ng mt trong hai dch v ti
mt thi im.

Loi C: cc trm in thoi di ng c gn vi dch v hoc dch v GSM


hoc GPRS nhng khng thuc c hai dch v ng thi. Trc khi thnh lp
hoc nhn cuc gi trn mt trong hai dch v, trm in thoi di ng
c gn lin vi dch v mong mun.

13
Trc khi mt trm di ng c th truy cp dch v GPRS, n phi thc thi mt th
tc nh km GPRS cho bit s hin din ca n vo mng. Sau khi nh km GPRS
ca chnh n, cc trm di ng kch hot mt giao thc chuyn d liu gi (PDP - Packet
Data Protocol) ph hp vi mng c th truyn hoc nhn d liu. Th tc ny c
gi l kch hot ng cnh PDP. Giao din tng khng ca GPRS ging ht giao din tng
khng ca mng GSM (iu ch sng radio, tn s bng thng v cu trc khung). GPRS
da trn c s pht mt trin h thng con ca GSM. Tuy nhin, mng li GPRS da trn
mt h thng mng GSM trong c tch hp b sung hai thnh phn: phc v v cc
nt h tr cng GPRS. Ngoi ra, dch v EDGE (Enhanced Data Rate for Global
Evolution) c th c h tr nng cao hiu nng ca GPRS.

14
Hnh. Kin trc mng GPRS
Nt h tr phc v GPRS

Node h tr phc v GPRS vit tt l SGSN (Serving GPRS Support Node) c


kt ni vi mt hoc nhiu trm con gc. N hot ng nh mt b nh tuyn gi d liu
cho tt c cc trm di ng hin hnh trong mt khu vc a l. N cng theo di v tr
ca trm di ng v thc hin chc nng bo mt v kim sot truy cp.
Nt h tr Gateway GPRS

Cc nt h tr Gateway GPRS vit tt l GGSN (Gateway GPRS Support Node)


cung cp cc im gn kt gia min GPRS vi cc mng d liu nh Internet hoc mng
PSTN. Mt Access Point Name (APN) c s dng bi ngi dng di ng thit lp
kt ni n cc mng ch c yu cu.

2.1.5. Cng ngh 3G


Th h di ng th 3 (3G): Mng 3G c trng bi tc d liu cao, capacity
ca h thng ln, tng hiu qu s dng ph tn v nhiu ci tin khc. C mt lot cc
chun cng ngh di ng 3G, tt c u da trn CDMA, bao gm: UMTS (dng c FDD
ln TDD), CDMA2000 v TD-SCDMA.
Cng ngh UMTS (Universal Mobile Telecommunication System) c s dng,
UMTS c chun ha bi t chc 3GPP v c pht trin ln t cc nc s dng
GSM. tng tc truyn d liu cho mng 3G, UMTS c nng cp ln vi chun
HSPDA (High Speed Downlink Packet Access), gi ng truyn tc cao, cho php
cc mng hot ng trn h thng UMTS c kh nng truyn ti d liu vi tc cao
hn hn. Cng ngh HSDPA hin nay cho php tc download t n 1.8, 3.6, 7.2 v
14.4 Mbps, v trong tng lai gn, tc hin nay c th c nng ln gp nhiu ln.
Song song vi cng ngh HSDPA l cng ngh HSUPA (High Speed Uplink Packet
Access Tng t HSDPA), HSUPA ci thin tc ti d liu ln, v l thuyt tc
upload d liu ca cng ngh HSUPA co th t n 5.76Mbps. Cm t 3GPP LTE (The
Third Generation Partnership Project Long Term Evolution) c dng ni v mt
cng ngh di ng mi ang c pht trin v chun ha bi 3GPP. Vi LTE tc
truyn d liu c th t ti 100Mbps vi download v 50 Mbps vi upload.

15
2.1 Cng ngh Bluetooth
c t Bluetooth c pht trin u tin bi Ericsson vo nm 1999 v sau
c chun ho bi Bluetooth Special Interest Group (SIG). Bluetooth l mt c t cng
nghip cho truyn thng khng dy tm gn gia cc thit b in t. Cng ngh ny h
tr vic truyn d liu qua cc khong cch ngn gia cc thit b di ng v c nh, to
nn cc mng c nhn khng dy (Wireless Personal Area Network-PANs). Bluetooth
cho php kt ni v trao i thng tin gia cc thit b nh in thoi di ng, in thoi
c nh, my tnh xch tay, PC, my in, thit b nh v dng GPS, my nh s, v video
game console. Bluetooth ngy cng c quan tm nhiu hn bi n cho php ngi
dng c kt ni khng dy min ph, tiu hao t nng lng, gi thnh thit b li r v
cng ngh ny c rt nhiu tp on ln h tr. Tuy nhin s pht trin ca Bluetooth
cn hn ch do s gii hn ca khong cch truyn, s lng kt ni, kh nng chng
nhiu v kh nng bo mt ca n. Trong tng lai Bluetooth s tr nn mnh hn vi
cng ngh siu bng rng UWB (ultra wide-band). UWB cho php tng tc truyn
thng tm gn ln ti 400Mbps.

Hnh:
ng dng ca bluetooth
Cu trc Bluetooth

16
Bluetooth c thit k s dng trong thng tin v tuyn gia hai hay nhiu
trm di ng. H thng cung cp mt kt ni im-im gia hai trm hoc kt ni
im-a im ti ni chia s ng truyn ca mt vi trm. Nh th chng ta s c mt
piconet (Picotnet l tp hp cc thit b c kt ni thng qua k thut Bluetooth theo
m hnh Ad-Hoc) ni c hai hay nhiu trm cng chia s ng truyn.
Trong mt piconet, mt trm s ng vai tr l ch, nhng thnh phn khc s l
t. Bt k n v Bluetooth no ( tt c chng u ging nhau) u c th ng mt trong
vai tr ch, t khi c yu cu i hi. Trm ch c nh ngha l ni khi to kt ni
(ti mt hay nhiu trm t). Mt piconet c th l ch v c ti 7 trm t trong trng thi
hot ng ca n. Trng thi hot ng c ngha l mt trm t ang giao tip vi mt
trm ch; mt trm c th trong trng thi kho (parked state) nu n c ng b ho
ti trm ch, nhng n khng hot ng trn knh. C trm tch cc v trm tam dng
u c kim sot bi trm ch.

M hnh piconet
Mt trm t c th c ng b ho vi piconet khc: mt trm c th l ch
trong piconet ny nhng li l t trong mt piconet khc. Theo cch ny, nhiu piconet
chng ln ln nhau (khi khng ng b v thi gian hoc tn s) s to thnh mt
scatternet. Nhng c im khc nhau ny c tng hp trong hnh:

17
Hnh : Cc kiu kt ni khc nhau gia cc trm

c im chnh ca h thng Bluetooth c a ra trong bng bn di. H


thng Bluetooth s dng phng thc truy cp khe thi gian. Mt gi tin c th s dng
trn 5 khe thi gian nhng t nht phi dng mt khe. H thng Bluetooth c th truyn
mt knh d liu khng ng b, hn ba knh ting ni ng thi hoc mt knh h tr
truyn ng thi d liu v ting ni khng ng b.

Cc loi kt ni khc nhau c h tr bi Bluetooth l:


Mt kt ni ng b tc 64Kbps trong kt ni trc tip cho knh ting ni;
Tc khng cn i ti a cho mt kt ni trc tip l 723.2Kbps (c th
tng 57.6Kbps na theo phng truyn ngc li) hoc tc 433.9Kbps cn
i cho ng b lin kt.

18
Cch thc hot ng ca Bluetooth.

C ch truyn v sa li

K thut Bluetooth thc s l rt phc tp. N dng k thut nhy tn s trong


cc timeslot (TS), c thit k lm vic trong mi trng nhiu tn s radio,
Bluetooth dng chin lc nhy tn to nn sc mnh lin kt truyn thng v truyn
thng thng minh. C mi ln gi hay nhn mt packet xong, Bluetooth li nhy sang
mt tn s mi, nh th s trnh c nhiu t cc tn hiu khc.

So snh vi cc h thng khc lm vic trong cng bng tn, sng radio ca
Bluetooth nhy tn nhanh v dng packet ngn hn. V nhy nhanh v packet ngn s lm
gim va chm vi sng t l vi sng v cc phng tin gy nhiu khc trong kh quyn.

C 3 phng php c s dng trong vic kim tra tnh ng n ca d liu


truyn i:

Forwad Error Corrrection: thm 1 s bit kim tra vo phn Header hay Payload
ca packet.

Automatic Repeat Request: d liu s c truyn li cho ti khi bn nhn gi


thng bo l nhn ng.

Cyclic Redundancy Check: m CRC thm vo cc packet kim chng liu


Payload c ng khng.

Bluetooth dng k thut sa li tin FEC (Forward Error Correction) sa sai do


nhiu t nhin khi truyn khong cch xa. FEC cho php pht hin li, bit sa sai v
truyn i tip (khc vi k thut BEC-Backward Error Control ch pht hin, khng bit
sa, yu cu truyn li).

Giao thc bng tn c s (Baseband) ca Bluetooth l s kt hp gia chuyn


mch v chuyn i packet. Cc khe thi gian c th c dnh ring cho cc packet
phc v ng b. Thc hin bc nhy tn cho mi packet c truyn i. Mt packet

19
trn danh ngha s chim 1 timeslot, nhng n c th m rng chim n 3 hay 5
timeslot.

Bluetooth h tr 1 knh d liu bt ng b, hay 3 knh tn hiu thoi ng b


nhau cng mt lc, hay 1 knh h tr cng lc d liu bt ng b v tn hiu ng b.

Qu trnh hnh thnh Piconet

Mt Piconet c to bng 4 cch:

C Master ri, Master thc hin Paging kt ni vi 1 Slave.

Mt Unit (Master hay Slave) lng nghe tn hiu (code) m thit b


ca n truy cp c.

Khi c s chuyn i vai tr gia Master v Slave.

Khi c mt Unit chuyn sang trang thi Active

thit lp mt kt ni mi, tin trnh INQUIRY hay PAGE s bt u. Tin trnh


Inquiry cho php 1 Unit pht hin cc Unit khc trong tm hot ng cng vi a ch v
ng h ca chng.
Tin trnh Paging mi thc s l to kt ni. Kt ni ch thc hin gia nhng thit
b mang a ch Bluetooth. Unit no thit lp kt ni s phi thc hin tin trnh paging v
t ng tr thnh Master ca kt ni.

Trong tin trnh paging, c th p dng vi chin lc paging. C mt chin lc


paging bt buc tt c cc thit b Bluetooth u phi h tr, chin lc dng khi cc
Unit gp trong ln u tin, v trong trng hp tin trnh paging theo ngay sau tin trnh
inquiry. Hai Unit sau khi kt ni nh dng chin lc bt buc ny, sau c th chn
chin lc paging khc.

Sau th tc Paging (PAGE), Master thm d Slave bng cch gi packet POLL

20
thm d hay packet NULL rng theo nh Slave yu cu.

Ch c Master gi tn hiu POLL cho Slave, ngc li khng c.

Cc vai tr ca thit b trong Piconet l:

Stand by : Khng lm g c.

Inquiry : Tm thit b trong vng ln cn.

Paging :Kt ni vi 1 thit b c th.

Connecting : Nhn nhim v.

Hnh 2-14 Qu trnh truy vn to kt ni.

M hnh truy vn cc thit b trong thc t:


Hnh 2-15 Truy vn to kt ni gia cc thit b trong thc t.
Khi thit b to paging mun to cc kt ni cc tng trn, n s gi yu cu kt
ni host theo nghi thc LMP (Link Manament Protocol). Khi Unit qun l host ny nhn
c thng ip, n thng bo cho host bit v kt ni mi. Thit b t xa c th chp
nhn (gi thng ip chp nhn theo nghi thc LMP) hoc khng chp nhn kt ni (gi
thng ip khng chp nhn theo nghi thc LMP).

Khi thit b khng yu cu bt k th tc thit lp lin kt t xa no c, n s gi


thng ip "thit lp hon thnh". Thit b ny vn nhn c yu cu t cc thit b
khc. Khi mt thit b khc sn sng to lin kt, n cng gi thng ip "thit lp
hon thnh". Sau 2 thit b c th trao i packet trn knh logic khc vi LMP.

Qu trnh hnh thnh Scatternet

Mt Master hay Slave ca Piconet ny c th thnh Slave ca Piconet khc nu b


Master ca piconet khc thc hin tin trnh paging vi n. C ngha l bt k unit no
cng c th to 1 Piconet mi bng cch paging mt unit l thnh vin ca mt Piconet
no . Ngc li, bt k unit no tham gia trong 1 Piconet, u c th thc hin paging

21
ln Master hay Slave ca Piconet khc. iu ny c th dn n vic chuyn i vai tr
gia Master v Slave trong kt ni mi ny.

Hnh 2-16 Minh ho mt Scatternet.

Cc kt ni bn trong mt Piconet c thit lp thng qua cc unit chia s, unit


ny thuc v 2 hay nhiu Piconet, n dng k thut phn chia thi gian chuyn i
qua li gia cc Piconet.

2.1 Cng ngh Wifi


WiFi l g?

Wi-Fi vit tt t Wireless Fidelity hay mng 802.11 l h thng mng khng dys
dng sng v tuyn, ging nh in thoi di ng, truyn hnh v radio.H thng ny
hot ng mt s sn bay, qun caf, th vin, trng i hc hoc khch sn. H
thng cho php truy cp Internet ti nhng khu vc c sng ca h thng ny, hon ton
khng cn n cp ni. Ngoi cc im kt ni cng cng(hotspots), WiFi c th c
thit lp ngay ti nh ring.Tn gi 802.11 bt ngun t vin IEEE (Institute of Electrical
and ElectronicsEngineers). Vin ny to ra nhiu chun cho nhiu giao thc k thut
khc nhau, vn s dng mt h thng s nhm phn loi chng; 3 chun thng dng ca
WiFi hinnay l 802.11a/b/g.

Hnh :

22
M hnh mng Wifi

Hot ng

Truyn thng qua mng khng dy l truyn thng v tuyn hai chiu. C th:

Thit b adapter khng dy (hay b chuyn tn hiu khng dy) ca my tnh


chuyn i d liu sang tn hiu v tuyn v pht nhng tn hiu ny i bng
mt ng-ten.

Thit b router khng dy nhn nhng tn hiu ny v gii m chng. N gi


thng tin ti Internet thng qua kt ni hu tuyn Ethernet.Quy trnh ny vn
hot ng vi chiu ngc li, router nhn thng tin tInternet, chuyn chng
thnh tn hiu v tuyn v gi n adapter khng dy ca mytnh

Cc ch bo mt trong WiFi

Cc ch bo mt ca router thng c:

Wired Equivalency Privacy (WEP) s dng cng ngh m ha 64 bit hoc 128
bit. M ha 128 bit an ton hn.

WiFi Protected Access (WPA) l mt bc tin ca WEP v hin gi l mt


phn ca giao thc mng bo mt khng dy 802.11i. N s dng giao thc m
ha ton b bng mt kha tm thi. Ging nh WEP, bo mt WPA cng phi
ng nhp bng mt mt khu. Hu ht cc im truy cp khng dy cng cng
hoc l m hon ton hoc bo mt bng WPA hay WEP 128 bit.

Media Access Control (MAC) bo mt bng cch lc a ch ca my tnh. N


khng dng mt khu i vi ngi s dng, n cn c vo phn cng vt l
ca my tnh. Mi mt my tnh u c ring mt a ch MAC c nht. Vic
lc a ch MAC ch cho php nhng my ng k mi c quyn truy cp
mng. Cn ng k a ch ca my tnh khi thit lp trong router.

Sng Wifi

Cc sng v tuyn s dng cho WiFi gn ging vi cc sng v tuyn s dng cho
thit b cm tay, in thoi di ng v cc thit b khc. N c th chuyn v nhn sng

23
v tuyn, chuyn i cc m nh phn 1 v 0 sang sng v tuyn v ngc li.Tuy nhin,
sng WiFi c mt s khc bit so vi cc sng v tuyn khc ch:

Chng truyn v pht tn hiu tn s 2.5 GHz hoc 5GHz. Tn s ny cao


hn so vi cc tn s s dng cho in thoi di ng, cc thit b cm tay v
truyn hnh. Tn s cao hn cho php tn hiu mang theo nhiu d liu hn.

Chng dng chun 802.11.

S lc v chun 802.11

Chun 802.11b l phin bn u tin trn th trng. y l chun chm nht v r


tin nht, v n tr thnh t ph bin hn so vi cc chun khc. 802.11b pht tn hiu
tn s 2.4 GHz, n c th x l n 11megabit/giy, v n s dng m CCK
(complimentary code keying).

Chun 802.11g cng pht tn s 2.4 GHz, nhng nhanh hn so vi chun


802.11b, tc x l t 54 megabit/giy. Chun 802.11g nhanh hn v n s dng m
OFDM (orthogonal frequency-division multiplexing), Mt cng ngh m ha hiu qu
hn.

Chun 802.11a pht tn s 5 GHz v c th t n 54 megabit/giy. N cng s


dng m OFDM. Nhng chun mi hn sau ny nh 802.11n cn nhanh hn chun
802.11a, nhng 802.11n vn cha phi l chun cui cng.

WiFi c th hot ng trn c ba tn s v c th nhy qua li gia cc tn s khc


nhau mt cch nhanh chng. Vic nhy qua li gia cc tn s gip im thiu s nhiu
sng v cho php nhiu thit b kt ni khng dy cng mt lc.

u im v nhc im ca mng khng dy

u im

S tin li: Mng khng dy cng nh h thng mng thng thng. N cho php
ngi dng truy xut ti nguyn mng bt k ni u trong khu vc c trin khai(nh
hay vn phng). Vi s gia tng s ngi s dng my tnh xch tay(laptop), l mt
iu rt thun li.

24
Kh nng di ng: Vi s pht trin ca cc mng khng dy cng cng, ngi
dng c th truy cp Internet bt c u. Chng hn cc qun Cafe, ngi dng c th
truy cp Internet khng dy min ph.

Hiu qu: Ngi dng c th duy tr kt ni mng khi h i t ni ny n ni


khc.

Trin khai: Vic thit lp h thng mng khng dy ban u ch cn t nht 1


access point. Vi mng dng cp, phi tn thm chi ph v c th gp kh khn trong vic
trin khai h thng cp nhiu ni trong ta nh.

Kh nng m rng: Mng khng dy c th p ng tc th khi gia tng s lng


ngi dng. Vi h thng mng dng cp cn phi gn thm cp.

Nhc im

Bo mt: Mi trng kt ni khng dy l khng kh nn kh nng b tn cng ca


ngi dng l rt cao.

Phm vi: Mt mng chun 802.11g vi cc thit b chun ch c th hot ng tt


trong phm vi vi chc mt. N ph hp trong 1 cn nh, nhngvi mt ta nh ln th
khng p ng c nhu cu. p ng cn phi mua thm Repeater hay access point,
dn n chi ph gia tng.

tin cy: V s dng sng v tuyn truyn thng nn vic b nhiu, tn hiu b
gim do tc ng ca cc thit b khc (l vi sng,.) l khng trnh khi. Lm gim
ng k hiu qu hot ng ca mng.

Tc : Tc ca mng khng dy (1- 125 Mbps) rt chm sovi mng s dng


cp (100Mbps n hng Gbps)

25
CHNG 3: LP TRNH J2ME TRN IN THOI DI NG

3.1 Tng quan v in thoi di ng v J2ME

3.1.1 Gii thiu v in thoi di ng


a. Mobile Phone Family
in thoi di ng c gi vi tn gi nh vy v ng dng u tin v quan
trng nht ca n l cho php ngi dng c th di chuyn trong khi ang thc hin cuc
gi.

Trong kin trc ca mng di ng, cc trm c s (base station) chnh l nhng nhn t
quan trng, cc trm ny lm nhim v kt ni vi in thoi di ng, m bo s tn ti
cho mng di ng, v cho php mng di ng kt ni vi nhng thnh phn truyn thng
hu tuyn khc. Bn cnh , cc trm c s v mng xng sng cn cho php ngi
dng cc vng cell khc nhau c th truyn thng c vi nhau. Mng di ng tri
qua nhiu th h, u tin l th h 1G, y l h thng truyn tn hiu tng t (analog),
th h ny khng cung cp nhiu dch v, ch yu l cc dch v v m thanh. Th h th
hai 2G, chuyn i t vic s dng tn hiu analog sang tn hiu s, t thm vo rt
nhiu dch v mi nh SMS v trao i d liu vi mng Internet, nhng s thay i
quan trng nht ca 2G so vi 1G l s phn chia gia nh mng v nh cung cp dch
v. Trc nh cung cp mng l nhng ngi c quyn, h l ngi cung cp mng
di ng cng l ngi quyt nh nhng dch v no s c cung cp my di ng ca
ngi dng, sau khi mng 2G ra i v c s phn chia gia nh cung cp mng v nh
cung cp dch v, th trng di ng c chia ra lm bn thnh phn chnh: Nh cung
cp mng, nh cung cp dch v, ngi s dng v nh sn xut in thoi di ng.

26
Hnh 3.1:

Nh cung cp dch v, ngi s dng v nh sn xut in thoi di ng trong th


trng di ng.

Gia cc thnh vin ny trong mng di ng c nhiu rng buc ln nhau, quan
trng nht l mi quan h gia nh cung cp mng v nh sn xut in thoi di ng.
thu ht khch hng, nh mng tha thun vi nh sn xut in thoi di ng, in
thoi di ng c bn vi s lng ln hn v cng c nhiu ngi s dng mng in
thoi di ng hn, mt khc nh mng cng a ra c mt lot cc dch v sn c cho
in thoi di ng. Xa hn na, nh cung cp mng cn iu khin vic dch v no c
i qua mng ca h v lm cho nhng nh cung cp dch v phi ph thuc vo quyt
nh ca h.

S c quyn ca nh cung cp mng s b suy gim i cng vi cng ngh khng


dy nh WLAN v Bluetooth. Cc dng truyn thng ny cho php to ra nhng kiu
dch v mi m khng cn phi ph thuc nhiu vo nh cung cp mng. Tuy nhin, do
vn li nhun, s pht trin t do ca cc dng truyn thng trn cng b hn ch bi

27
nh sn xut in thoi di ng. Nh cung cp dch v dng nh t do hn trong lp
trnh to ra cc sn phm dch v mi, tuy nhin, nhiu khi vic to ra ng dng trn
in thoi di ng li ng chm ti li ch ca nh cung cp mng, do s linh hot
ca chic in thoi di ng li b km ch, v d nh h thng VoIP ch c th truyn
theo kiu bn song cng, hay khi kt hp gia giao thc IP vi module GPRS, IP thng
qua Bluetooth hay WLAN cng kh c h tr hay kh s dng mt vi dng in
thoi, nhng s hn ch ny cng khng ngn c vic to ra cc dch v th v, ch
l vn thi gian.

Th h mng di ng 3G. 3G l cng ngh truyn thng th h th ba, cho php


truyn c d liu thoi v d liu ngoi thoi (ti d liu, gi email, tin nhn nhanh SMS,
hnh nh,). H thng 3G yu cu mt mng truy cp radio hon ton khc so vi h
thng 2G hin nay. Trong cc dch v ca 3G, cuc gi video thng c m t nh
mt dch v trng tm ca s pht trin.

Do chi ph cho bn quyn cc tn s phi trang tri trong nhiu nm trc khi t
ti cc thu nhp do 3G em li, nn vic xy dng mng 3G i hi mt khi lng u
t khng l. Cng v vy nhiu nh cung cp dch v vin thng ri vo kh khn v
ti chnh, cng khin cho vic trin khai 3G ti nhiu nc b chm tr, ngoi tr Nht
Bn v Hn Quc nhng nc tm b qua cc yu cu v bn quyn tn s, m t u
tin cao vic pht trin h tng cng ngh thng tin vin thng quc gia. Nht Bn l
nc u tin a 3G vo khai thc thng mi mt cch rng ri. Nm 2005, khong
40% cc thu bao ti Nht Bn l thu bao 3G, khin cho mng 2G dn bin mt ti nc
ny. S thnh cng ca 3G ti Nht Bn ch ra rng in thoi video khng phi l ng
dng hy dit (killer application). trong thc t, vic s dng in thoi video thi gian
thc ch chim mt phn nh trong cc dch v ca 3G. Mt khc, vic ti v tp m nhc
li c s dng nhiu nht, nht l gii tr. S pht trin ca 3G m ra rt nhiu trin

28
vng v vic xy dng cc dch v mi cho cc nh pht trin phn mm, cc nh cung
cp dch v, tuy nhin rt nhiu d n b v bi chnh ngi s dng cng khng bit
h mong mun nhng g, v vy chng ta cn phi phn tch cn thn trc khi tin hnh
mt d n phn mm cho in thoi di ng. ng dng trn in thoi di ng chia lm
hai loi: Dch v c nhn v dch v truyn thng.

Hnh 3.2:

Cc loi hnh dch v dnh cho in thoi di ng

Dch v c nhn l tt c cc dch v c s dng bi khch hng trn in thoi


di ng vi s gii hn hay khng tng tc vi nhng khch hng khc. Dch v truyn
thng th ngc li, l cc dch v to ra s tng tc gia nhng ngi s dng. Dch
v c nhn bao gm cc dch v nh l: lch, my nh, ti v logo, nhc trn in thoi di
ng hay chi tr chi nh chi rn, bng bn... C dch v c nhn ln dch v truyn
thng u c chia ra lm hai loi dch v c v khng c s h tr ca mng khng

29
dy. Mng khng dy c h tr bi chun kt ni GSM, GPRS, EDGE, 3G, bluetooth,
hay WLAN. Nh hnh trn, cc dch v c mu cam l cc dch v c sn trn hu ht
cc in thoi di ng, cc dch v mu xanh da tri l cc dch v c th c ci t
thm trn in thoi di ng, v cui cng l cc dch v mu xanh l cy, l nhng dch
v ca tng lai. Dch v truyn thng vi s h tr ca mng khng dy c ha hn
s to ra nhiu iu th v, v con ngi chng ta lun sng trong s tng tc vi nhng
ngi khc, cc dch v ang pht trin nh SMS, dch v thoi video, ti WEB, xem
phim trc tuyn... v cc tr chi tng tc ang l mt hng pht trin y trin vng
cho cc nh cung cp dch v.

Ngoi ra trong tng lai, khi mng 4G v 5G pht trin, chng ta li c thm nhiu
loi dch v mi nh dch v peer to peer, dch v truyn thng ngang hng, dch v
sensor... iu cho thy rng in thoi di ng v mng di ng l mnh t mu m
cho cc lp trnh vin.

b. The flexible Mobile Phone

in thoi di ng ngy cng tr nn linh hot trong con mt ca cc nh pht


trin ng dng, thng qua cc ngn ng lp trnh, vi ngn ng tin phong l Java vi
phin bn nh gn J2me, in thoi di ng tr thnh mt mi trng lp trnh hp
dn i vi cc lp trnh vin.

30
Hnh 3.3:

Kin trc ca chic in thoi c th lp trnh

Nhn vo hnh trn ta thy rng cc ng dng di ng (nh cc chng trnh Java)
chy trn tng ng dng application suite, khung giao din ngi dng user interface
framework cung cp tt c cc chc nng cho php ta iu khin in thoi di ng. Cc
nh sn xut in thoi di ng thng truy nhp vo nn tng ca h (vi mt vi hn
ch) bng cch s dng li v trnh iu khin phn cng kernel and hardware drivers
nh l h iu hnh Symbian truy nhp vo nn tng phn cng. Gn nh mi th
thuc v phn mm u c th truy cp c, ch c mt phn tnh khng th thay i
c ca chic in thoi l nn tng phn cng.

31
Hnh 3.4:

Giao din ngi dng, giao din kt ni v ti nguyn c sn

ca in thoi di ng

Ngoi kh nng lp trnh c, in thoi di ng cn c rt nhiu cc kh nng


v chc nng khc, chng ta s nhm cc c tnh ny ca in thoi di ng ra thnh ba
nhm l giao din ngi dng user interface, giao din kt ni communication interface,
v ti nguyn sn c buit-in resources. Giao din ngi dng bao gm loa, microphone,
camera, mn hnh, cc b cm ng, v bn phm. Ti nguyn c sn bao gm pin, b x
l trung tm v b nh. Chng ta c bit quan tm ti nhm th ba l nhm giao din
kt ni, giao din kt ni thng bao gm kh nng kt ni celular v short-range.

Thay v vic s hu mt chic in thoi thng minh vi y cc chc nng v


cht lng tt, chng ta nn tm hiu cch s dng v chia s mt cch thng minh
nhng kh nng ca in thoi di ng. Thc vy, chnh s khc bit trong thit k ca
cc chng loi in thoi di ng to ra nhiu tnh nng c bit, t mt chic in

32
thoi n gin vi kh nng thoi c th tr thnh mt thit b u cui vi m nhc v
hnh nh sng ng. Cng ngh mng khng dy cho php chng ta lm iu .

Nhng nh pht trin ng dng c th bt u nhn nhn chic in thoi nh l


mt tp hp cc kh nng c th c gp li v nhng mc ch no . Tuy nhin in
thoi di ng khng ch b gii hn bi s kt hp ca cc thnh phn phn cng. Thm
ch phn mm cng c s dng mt cch ht sc linh hot. Mt trong nhng tng
u tin l thit k lp trung gian (cross-layer). Giao thc cross-layer l tng ca vic
thay i cc lp theo nhu cu. Mt s lp giao thc c th thm ch c b qua hay
c nhm li theo mt cch mi. Bc cui cng mang n tnh linh hot cho nhng
mc thp hn ca chng nghi thc (protocol stack). Trong khi tnh linh hot trn cc thit
b di ng thng mi b hn ch i vi nhng phng php a m hnh
(multi-modality), tng lai s c thng tr bi nhng cch tip cn software-defined
radio. Trong khi multi-modality ch ang chn trong s nhng cng ngh khng dy sn
c khc nhau nh Bluetooth hay WLAN, software-defined radio c th t ng thay i
cc phn radio theo cc chc nng cn thit. mc cao nht, n cng c th thay i t
truyn thng short-range sang truyn thng cellular, trao i chng giao thc.

3.1.2 Kin trc in thoi di ng h tr J2ME


Mt in thoi di ng mun c kh nng chy c cc ng dng vit bng J2ME
cn phi c cu hnh ti thiu nh sau :
- Ti thiu 512KB b nh chy Java
- Ti thiu 256KB b nh dnh cho phn b b nh thc thi chng trnh
- Kt ni mng thng trc
Ch yu cc thit b in thoi di ng ngy nay l cc thit b kt ni c gii
hn(CLDC). CLDC l cu hnh dnh cho cc thit b vi kh nng x l,dung lng b
nh, kh nng hin th v lu tr ti nguyn hn ch. V vy ,CLDC cng c nhng hn
ch khc bit so vi nh ngha trong java:

33
- Khng h tr du chm ng ton hc,php tnh ny i hi nhiu ti nguyn,
CPU v phn ln cc CPU cho cc thit b di ng khng h tr php tnh ny.
CLDC khng h tr bin, ton t, hng, hm. Lin quan n du chm ng.
- Khng h tr phng thc hy finalize(), vic dn dp ti nguyn trc khi i
tng b xa c y v pha cc lp trnh vin.
- H tr hn ch cc x l ngoi l li, do thc hin qun l ngoi l h thng
cn phi c mt cu hnh mnh m cc thit b CLDC li khng p ng c.
Hn na, cc h thng nhng lun c c ch x l li ca ring n, thng thng
l khi ng li phn cng.
- Qu trnh xc minh lp: khc bit ca qu trnh xc minh lp ca CLDC l n thc
hin xc minh lp qua hai bc, gim bt nhng yu cu ti nguyn trong qu
trnh xc minh.
Ngoi nhng hn ch trn, CLDC cng c nhng lp ring, c thit k cho ph
hp vi c th ca mi trng cc thit b phn cng m n quan tm, trong , ng
ch nht l b khung kt ni GCF (Generic Connection Framework):
Kt ni mng vi J2me kh d dng vi gi java.net, gi ny c kch thc vo
khong 200 kilobytes, bao gm khong 20 lp khc nhau. Kch c qu l qu kh
i vi cc thit b di ng, hn na J2me cn cn phi h tr mt tp hp ln cc thit
b c nhiu s khc nhau v kch c, hnh dng, kh nng mng v yu cu nhp xut file.
ph hp vi cc thit b, J2me a ra m hnh khung kt ni chung trong cu hnh
CLDC.
tng ca n l: nh ngha mt cch tru tng cc hot ng mng v nhp xut
file dng chung cho mt s lng ln cc thit b, ging nh mt b khung nn vy.
mc CLDC, J2me ch nh ngha v to kt ni, giao thc thc s v cc phng thc
trao i d liu ca giao thc c trao cho tng Profile.

3.1.3 Gii thiu v J2ME


J2me l mt thnh vin b nh trong gia nh h Java, hng n lp trnh trn nhng
thit b thng tin gia dng t Internet-cho n cc my TV, my chp nh, in thoi di

34
ng, Pocket PC J2me c pht trin t kin trc Java Card, Embeded Java v
Personal Java ca phin bn Java 1.1. n s ra i ca Java 2 th Sun quyt nh thay
th Personal Java v c gi vi tn mi l Java 2 Micro Edition, hay vit tt l J2me.
ng vi tn gi, J2me l nn tng cho cc thit b khch hng c tnh cht nh, gn vi
sc mnh x l v ti nguyn c hn. C rt nhiu thit b dng ny nh in thoi di
ng, my quay phim, chp hnh. Nhng thit b ny khng c ty chn ti xung v
ci t phn mm t xa nh PC. Phn mm iu khin thit b c ci sn trong qu
trnh sn xut ra thit b p t bi nh sn xut. Vi s gii thiu ca J2me nhng thit
b ny khng cn l tnh na, chng hon ton c th c ngi dng t lp trnh
thm vo nhng tnh nng mi. J2me ci trn thit b sn c ty chn duyt, ti
xung v ci t cng nh thc thi nhng ng dng Java.
J2me khng phi l mt ngn ng mi, nhng s xut hin ca n cho php cng
ngh Java c th chy trn cc thit b nhng, bng cch lc b i cc chc nng m cc
thit b ny khng th h tr v thm vo cc chc nng m cc thit b ny cn. Vi s
ra i v gii thiu ca Java dng cho mi trng nhng thit b di ng nh gn nh
vy, chng ta gi y c kh nng tn dng hm th vin v sc mnh lp trnh ca
Java vo cuc sng i thng.

3.1.4 Kin trc J2ME


J2me c xy dng pht trin ng dng chy trn nn cc thit b nhng, nhm
cc thit b ny rt phong ph v gia chng thng c nhiu khc bit v c tnh (b
nh, tc x l, kh nng kt ni mng), v d nh cc thit b in thoi,
Screenphone, PDA, my chp nh c th c s khc nhau v kch c mn hnh, hay
gia nhng chic in thoi vi mn hnh c ln nh nhau nhng li c s khc nhau
v phn gii S phong ph v phc tp ny khin cho vic xy dng mt nn tng
J2me chung cho tt c cc thit b l khng th, thay vo J2me c xy dng vi mt
kin trc khc, l kin trc phn tng, trong cc thit b s c phn nhm theo
c tnh (b nh, tc x l, kh nng kt ni mng) mi nhm thit b tng
ng vi mt nhm configuration-cu hnh J2me, cu hnh s c t nn tng Java trn

35
nhm cc thit b ny, hay ni cch khc, cu hnh s nh ngha cc chc nng chung c
bn nht cho cc thit b cng nhm.

Tuy nhin, vi nhng gii hn v phn cng nh vy, kh nng pht trin ng dng
da trn configuration l khng ln, hn na, gia cc thit b c cng cu hnh cng c
nhiu c im, nhng kh nng ni tri khc nhau, cung cp mi trng lp trnh cho
cc thit b chuyn bit trong cng mt nhm cu hnh v linh hot hn khi cng ngh
thay i, cc thit b li mt ln na c phn nhm, nhm cu hnh s c phn nh
hn v c gi l cc profile.

Profile l nh ngha m rng thm cho mt phn loi cu hnh, n cung cp mt tp


cc th vin lp trnh cho php to ra cc ng dng chy trn mt kiu thit b c bit.

Hnh di m t kin trc phn tng ca J2ME:

36
3.1.5 Mi trng pht trin , cng c lp trnh ng dng trn in thoi di ng vi
J2ME.
a.Java Development Kit
Chng ta cn JDK s dng trnh bin dch v thng dch ca n cho cc ng dng
m chng ta to ra. JDK c th dng cho c CDC v CLDC, tuy nhin phi c phin bn
t sdk 1.6 tr ln. Bn download JDK t trang Web ca sun:
http://java.sun.com
Sau tin hnh ci t nh bt k phn mm no khc, trong qu trnh chng
trnh s hi bn ni t th mc, nu bn khng chn (browse) ng dn mi, chng
trnh s s dng ng dn mc nh.
b. NetBeans

37
Vic ci t NetBeans cng c tin hnh nh cc phn mm khc, tuy nhin cn
phi ch n vic NetBeans tm folder ci t Java, nu nh NetBeans khng t tm
c ngi dng cn cung cp cho NetBeans ng dn n th mc .

Hnh 3.5:Tm ng dn n th mc ci t Java


Khi vic ci t hon tt, ca s sau s c hin ln, nhn nt Finish kt thc.
Trong ca s ny c ty chn ng k NetBeans, v l mt sn phm m ngun m, bn
c th b qua vic ng k ny m vn c s dng phn mm mt cch bnh thng :

38
Hnh 3.6:Kt thc vic ci t NetBeans
c. To mt ng dng MIDP vi Netbean

to mt d n mi, hy nhn vo ty chn File v chn New Project :

39
Hnh 3.7:To mt d n mi
Sau , hy chn kiu ca d n : d n Java, Java Web hay JavaME... to mt d
n J2me bn hy chn JavaME :

40
Hnh 3.8:To d n J2me
Bc tip theo NetBeans s yu cu bn t tn cho d n, trong ca s ny c ty
chn Set as Main Project v Create Hello MIDlet, nu bn mun d n mi ny l d n
chnh hy chn ty chn Set as Main Project, nu cn to mt lp hello world hy chn
ty chn cn li.
Bn cnh , bn cn phi chn ni lu gi Project ca mnh trong phn Project
Location :

41
Hnh 3.9:t tn cho d n
Ca s tip theo s yu cu bn chn phin bn CLDC v MIDP ph hp, vic ny
cn ty thuc vo vic bn la chn pht trin d n ca bn trn nhng dng sn phm
no ?:

42
Hnh 3.10:La chn phin bn CLDC v MIDP ph hp
Sau khi c d n mi, vic tip theo cn phi lm l vit code cho d n, trc tin
hy to mt file mi, nu l file thc thi chnh, bn hy chn MIDlet :

43
Hnh 3.11:To file mi cho d n
t tn cho file mi (lu rng tn file ny phi trng vi tn lp c to ra
trong file) :

44
Hnh 3.12 :t tn cho file

Di y l mt on code:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class vd extends MIDlet implements CommandListener{
private Form mainForm;
public vd(){
mainForm = new Form("Lap trinh tren nen J2ME");
mainForm.append(new StringItem(null,"Hello J2ME"));
mainForm.addCommand (new Command("Exit", Command.EXIT, 0));
mainForm.setCommandListener(this);
}
public void startApp(){
Display.getDisplay(this).setCurrent(mainForm);
}
public void pauseApp(){}
public void destroyApp(boolean un){}
public void commandAction(Command c, Displayable s){
notifyDestroyed();
}
}
Bn hy copy on code ny, vo file vd va c to ra:

45
Hnh 3.13 :Son code cho d n
Sau khi c code ri bn hy nhn ctrl+s lu v cng l dch chng trnh. By gi bn
ch nt m xanh c hnh mi tn nm trn thanh cng c, hy nhn n chy ng
dng trn b m phng (nu d n ca bn l d n chnh Main Project), nu khng bn
hy kch chut phi vo tn d n v chn run.
Sau y l kt qu thc thi ca chng trnh trn b m phng:

46
Hnh 3.14:Kt qu thc thi ca chng trnh vd

Mt chng trnh c th chy trn nhiu b m phng khc nhau, sau khi chng
trnh c build, bn hy nhn chut phi vo tn ca d n v chn run with, mt ca
s s hin ra cho php bn chn cc mu m phng in thoi khc nhau (iu ny rt c
ch trong vic kim tra phm vi thc thi ca chng trnh trn cc dng in thoi):

47
Hnh 3.15:La chn b m phng thc thi chng trnh
i vi mi d n J2me c to ra, trong folder m bn chn lu d n s c
cu trc cy th mc nh sau:

48
Hnh 3.15: Cu trc th mc ca mt Project
Trong :
Folder src s cha m ngun ca d n (cng vi cc ti nguyn hnh nh, m
thanh nu c).

Folder dist s cha cc sn phm cui cng ca d n. Bn ch cn copy 2 file


.JAR v .JAD trong th mc ny vo in thoi di ng, ci t t file .JAD l
chng trnh ca bn c th s dng c.

49
3.2 Pht trin ng dng trn in thoi di ng vi J2ME

3.2.1 Hin trng thit b di ng v MIDlet


Hin trng thit b di ng (MIDP) l mt y l Profile c nh ngha dnh ring
cho cc thit b di ng v l thnh phn chnh trong J2me. MIDP cung cp cc chc
nng c bn cho hu ht cc dng thit b di ng, ph bin nht nh cc my in thoi
di ng v cc my PDA. Tuy nhin MIDP c thit k cho cc my di ng c cu
hnh rt thp, cho nn n khng phi khng c nhng hn ch. Trc khi ni v nhng
hn ch v nhng khc bit ca MIDP so vi J2se, chng ta s cng im qua nhng yu
cu phn cng, phn mm ca MIDP:

Cc yu cu phn cng:

- Mn hnh phi h tr t nht 9654 pixel


- Phi c t nht mt kiu nhp liu cho ngi dng
- Ti thiu 128 kilobytes k c dng chy cc thnh phn ca thit b di ng
- Ti thiu 8 kilobytes k c trng dng cho ng dng lu tr d liu cu hnh
ring cho ng dng
- Ti thiu 32 kilobytes k c chy Java
- Kt ni mng khng dy
V yu cu phn mm, h iu hnh trn thit b phi cung cp ti thiu c ch nh thi,
x l ngoi l v x l ngt, c kh nng chy KVM v:
- Phn mm phi h tr cch ghi nh bitmap ra mn hnh
- Phn mm phi chp nhn k t nhp vo v chuyn thng tin cho my o
Java
- H thng cng phi c kh nng c, ghi vo vng cng ca thit b.
- Phi c kh nng truy nhp n chc nng ni mng trn thit b.
Hn ch v khc bit ca MIDP:

50
- Phn ln cc th vin ha trong J2se khng th dng trong MIDP, do
kh nng hin th v x l hn ch ca cc thit b MIDP.
- Khng h tr qun l file v th mc, thay vo lu tr di hn, J2me
cung cp cho bn mt chc nng khc tng ng l Record Manager
System RMS, h thng qun l bn ghi.
Nhng chc nng c bit m MIDP cung cp:

- Download qua mng an ton qua vic h tr giao thc HTTPS


- Kim sot vic kt ni gia my di ng v server: v d, chng trnh
khng th kt ni ti server nu thiu s chp thun ca ngi s dng
- Thm cc API h tr Multimedia
- M rng cc tnh nng ca Form
- H tr kiu nh RBG

3.2.2 Thnh phn c bn ca mt ng dng MIDlet.


MIDlet l mt ng dng c thit k cho MIDP profile, v l do , mt MIDlet
khng ch tham chiu c n cc lp ca MIDP, m cn c th tham chiu c n
cc lp ca CLDC.
ging cc ng dng Java Destop truyn thng, ng dng MIDlet khng dng mt
hm main lm im truy nhp, m dng mt lp con ca lp
javax.microedition.midlet.MIDlet lm im truy nhp. Lp ny nh ngha mt s hm
tru tng (abtract), cc hm ny s c gi n khi trng thi ca MIDlet thay i.
Ton b cc lp, cc file cn thit cho ng dng MIDlet s c ng gi vo trong
mt b c gi l MIDlet suite, n bao gm hai file .JAR v .JAD chun. File lu tr
.JAR bao gm cc file .class, cc file ti nguyn ca ng dng v mt file thng k
manifest mang thng tin m t v file JAR ny. File .JAD hay cn gi l b m t ng
dng l file cha thng tin v MIDlet, n lm hai nhim v chnh:

51
- Cung cp thng tin cho b qun l ng dng v ni dung file .JAR, qua h
thng s quyt nh xem MIDlet ny c thch hp chy trn thit b hay
khng.
- Cung cp phng tin chuyn tham s cho MIDlet m khng phi thc hin
thay i file .JAR
Midlet gm 3 phng thc chnh :
- Phng thc StartApp(boolean b) : L phng thc cho php lp trnh v
cu hnh in thoi di ng . Cc hnh ng chc nng chnh, cc thao tc ln
trnh ng dng ch yu c vit trong StartApp. StartApp l phng thc
c kch hot khi chy cng vi ng dng trn thit b di ng. C th coi
n chnh l phn ct li trong mt chng trnh vit bng J2ME cho in thoi
di ng.
- Phng thc PauseApp(Boolean b) : l mt phng thc h tr cng vic s
l cho ngi lp trnh khi thit b di ng v mt l do no ng dng cn
phi tm dng nhng quyn hot ng cho mt ng dng khc. Phng
thc PauseApp cho php ngi lp trnh thc hin cc cng vic x l d liu
, lu tr thng tin, cu hnh h thng trc khi ng dng c tm dng.
- Phng thc DestroyApp(Boolean b) : L mt phng thc h tr ngi lp
trnh s l d liu,lu tr thng tin nh phng thc PauseApp nhng cng
vic s l ny s c thc hin trc khi ng ng dng ch khng phi l
tm dng nh i vi PauseApp.
Mt Midlet n gin cn phi c y 3 phng thc c bn :
StartApp,PauseApp,DestroyApp.

52
Ngoi 3 phng thc c bn trn, Midlet cn c cc phng thc khc nh :
Phng thc M t
abtract void destroyApp (boolean MIDlet chun b ng
unconditional)
abtract void pauseApp ( ) MIDlet chun b dng
final void startApp( ) Midlet c t vo trng thi kch hot
final void notifyDestroyed( ) MIDlet yu cu c shutdown
final void notifyPaused( ) MIDlet yu cu c dng li
final void resumeRequest( ) MIDlet yu cu c kch hot
final String getAppProperty(String key ) Ly thuc tnh t file JAR hoc JAD
- Vng i ca mt MIDlet

Mt MIDlet i qua nhiu chu trnh ca vng i hot ng v lun trong mt


trong ba trng thi sau:
Paused (tm ngng): mt MIDlet c t trong trng thi paused sau khi phng
thc khi dng c gi, nhng trc khi khi ng bi b qun l ng dng. Khi
MIDlet c khi ng, n c th chuyn i xen k gia trng thi pause v active
(kch hot) bt k thi im no trong sut vng i ca n.

53
Active (kch hot): MIDlet ang chy.
Destroyed (hy): MIDlet chm dt, gii phng ti nguyn v b b qun l ng
dng ng li.

3.2.3 Giao din ngi dung


A.Giao din ngi dng cp cao
i tng Display

Hnh 2.16:Phn cp lp Display


Mi mt MIDlet c mt tham chiu ti i tng Display, i tng ny c th tr v
thng tin mn hnh hin thi: phm vi mu h tr, phn giiV cha nhng chc
nng truy vn cc i tng c th hin th trn mn hnh, l cc i tng
Displayable. i tng Display c th xem l b qun l mn hnh iu khin nhng
thng tin no s c hin th trn thit b v hin th khi no. Mc d ch c duy nht
mt i tng Display cho mt MIDlet, nhng c th c nhiu i tng Displayable bn
trong MIDlet cng hin th ra mn hnh.
Chng ta thng s dng cc phng thc sau ca lp Display:
- Static Display getDisplay(MIDlet m): ly v i tng Display cho MIDlet.
- Displayable getCurrent(): ly v i tng Displayable hin thi ca mn hnh.
- Void setCurrent(Displayable d): hin th i tng Displayable.
Cc hm API ca Display:
Phng thc M t
static Display getDisplay (MIDlet m) Ly v i tng Display object cho

54
MIDlet
Displayable getCurrent ( ) Ly v i tng Displayable hin hnh
void setCurrent (Alert alert, Displayable Hin th cnh bo trn i tng
nextDisplayable) Displayable hin hnh
void nextCurrent (Displayable Hin th mt i tng Displayable mi
nextDisplayable)
boolean isColor ( ) Thit b c h tr mu
int numColors ( ) S mu m thit b h tr
void callSerially ( ) Yu cu gi i tng Runnable sau khi
v li
v d v to i tng Display cho mt MIDlet:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class vd extends MIDlet {
private Display di;
private Form fr;
public vd(){
di=Display.getDisplay(this);
fr=new Form("vdform");
}

public void startApp(){


di.setCurrent(fr);
}
public void pauseApp(){}
public void destroyApp(boolean un){}

55
}
i tng Dislayable v Screen

Hnh 3.17:Phn cp lp Displayable


Mt i tng Displayable l mt thnh phn c hin th trn thit b. MIDP cha 2
lp con ca lp Displayable l Screen v Canvas.
Mt i tng Screen khng phi l mt ci g hin ra trn thit b, m lp Screen ny
s c tha k bi cc thnh phn hin th mc cao, chnh cc thnh phn ny s c
hin th ra trn mn hnh.
Canvas hay cn gi l khung v, l thnh phn giao din cp thp ca J2me. Nhng
thnh phn giao din cp thp nh Canvas s cho php ta v trc tip ln mn hnh to
ra cc thnh phn ha sinh ng hay xy dng Game.
Ngoi MIDlet v mn hnh ra, ci cn phi quan tm khi to giao din cho chng trnh
chnh l cc i tng c th hin th c trn mn hnh Displayable, trong cc i
tng ny, i tng m chng ta s s dng nhiu nht chnh l Form, Form l mt
trong nhng khung cha c bn, ch khi to c khung cha c bn, ngi lp trnh mi

56
c th a c cc i tng giao din bc cao mong mun vo Form v xut ln mn
hnh.
Thnh phn Form v Item

Mt Form ging nh mt khung cha, mi thnh phn giao din m ta mun hin th
ra mn hnh u nm trong khung cha ny, v cc phng thc ca Form s quyt
nh hin th cc thnh phn ny khi no v nh th no.
Mt Item l mt thnh phn giao din c th thm vo Form. Ni chung Mt Form ch
n gin l mt khung cha cc thnh phn, m mi thnh phn c tha k t lp Item,
bao gm: ChoiceGroup, DateField, Gauge, ImageItem, StringItem, TextField.

- Form
Mt Form khng khc g mt ca s, ca s c c ch cun th, c th ct gi bt
c thnh phn giao din no.
Form ban u c to ra s ch l mt ca s trng, c th thm cc thnh phn
giao din vo trong Form bn cn dng phng thc append ca i tng Form, phng
thc append ny s tr v mt ch s bo ni thnh phn c nh v, thnh phn u
tin c a vo ca s s c ch s l 0. Cc thnh phn giao din sau khi c a
vo trong Form s c t ng sp xp theo th t t tri qua phi, t trn xung di.
Form c cc phng thc xc nh s thnh phn trn mt Form v truy cp ch s
(v tr) ca mt thnh phn no hin c trong Form. Form c nhng phng thc
chn (insert), thay th (replace) v xa (delete) nhng i tng thnh phn. c th
chn, thay th v xa cc thnh phn mt cch chnh xc th ngi lp trnh cn xc nh
ch s (v tr) ca thnh phn cn xa, chn hay thay th.
Cc API thng dng vi Form:
Phng thc M t
Form (String s) To Form vi nhn l s, nhn ny
ging nh title ca Form.
Form (String s, Item[] items) To Form v thm cc mc Item trong

57
mng vo Form.
int append(Displayable d) Thm thnh phn Displayable vo
Form.
void delete(int i) Xa thnh phn Displayable ti v tr
th i
void insert(int i1, Item i) Chn Item i vo v tr i
String getLabel( ) Ly v nhn cho Item
void setLabel (String s) Gn nhn cho Item
V d to ra mt Form:

Hnh 3.18:
Kt qu thc thi chng trnh to ta mt Form
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class vd extends MIDlet{
private Display di;
private Form fr;

58
public vd(){
di=Display.getDisplay(this);
// to Form vi nhn l vdform
fr=new Form("vdform");
}
public void startApp(){
// hin th form c to ra trong phng thc khi dng
//ngay khi ng dng bt u hot ng.
di.setCurrent(fr);
}
public void pauseApp(){
}
public void destroyApp(boolean b){
}
}

- Cc thnh phn Item


Item l mt lp tru tng, do ta khng th to nhng th hin ca lp Item. Thay
vo chng ta to ta cc i tng t lp con ca Item. Di y s gii thiu v cc
thnh phn Item v cch s dng chng.

StringItem
Thnh phn StringItem c dng hin th mt nhn hay chui vn bn. Ngi
dng khng th thay i nhn hay chui vn bn khi chng trnh ang chy. StringItem
khng nhn ra s kin, ngha l ngi dng khng th tng tc c vi StringItem.
Mt StringItem gm hai phn l phn nhn (lable) v phn vn bn (text), bn c th
dng phng thc ring cho lable v text thay i hay ly v ni dung hin thi ca
chng.

Nhng phng thc hay c s dng ca lp StringItem:

59
Phng thc M t
StringItem(String label, String text) Phng thc khi dng
void setText(String text) Thay i ni dung text ca StringItem
void setLable(String lable) Thay i lable ca StringItem
String getText( ) Ly v gi tr hin thi ca text
String getLable( ) Ly v gi tr hin thi ca lable
V d to ra mt StringItem:

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class vd extends MIDlet {

private Display display;

private Form fmMain;

private StringItem siMsg;

public vd() {

display = Display.getDisplay(this);

//to mt i tng StringItem c tn l siMsg

//vi nhn l tn trng v vn bn l khoa cng ngh thng tin

siMsg = new StringItem("tn trng: ", "Khoa cng ngh thng tin");

fmMain = new Form("StringItem Test");

//thm i tng siMsg vo Form

fmMain.append(siMsg);

60
}

public void startApp() {

display.setCurrent(fmMain);

public void pauseApp() { }

public void destroyApp(boolean unconditional) { }

Hnh 2.19:Kt qu thc thi chng trnh to ra mt StringItem

61
TextField
Mt thnh phn TextField l mt nhp liu vi mt dng duy nht, ging nh cc
nhp tn ti khon v password bn vn nhn thy khi ng nhp vo cc trang web.
TextField c mt thuc tnh rt quan trng l rng buc (constraint), rng buc cho
bit ngi dng ch c php nhp loi d liu no vo TextField. C bn loi rng
buc h tr c bit cho cc kiu nh dng: a ch email, URLs, s v s in thoi.
Bng di y lit k nhng rng buc nhp liu sn c. Ngoi nhng rng buc, khi bn
to ra mt TextField, bn c th ch r c bao nhiu k t m bn cn trong nhp liu.
Rng buc Kiu h tr
CONSTRAINT_MASK S dng mt n ny khi bn cn xc nh
gi tr hin thi ca rng buc
ANY Cho php tt c k t
EMAIL_ADDR Cho php dng nhp liu hp l l mt
a ch email
NUMERIC Cho php duy nht s. Bao gm s
dng ln s m
PASSWORD Nhp d liu di dng password, cc
k t nhp vo s b che i bi k t mt
n.
PHONENUMBER Dng nhp liu theo nh dng s in
thoi
URL Ch cho php nhp cc k t hp l theo
dng a ch web URL
Phng thc dng ca lp TextField:

62
TextField(String label, String text, int maxSize, int constraints). To ra mt TextField
vi nhn l label, vn bn c sn trong TextField l text, s k t ti a l maxSize v
dng d liu c php nhp vo l constraints.
Sau khi ngi dng tng tc vo TextField, bn s cn ly li cc thng tin c
ngi dng nhp vo v x l chng, lm c vic bn hy s dng cc phng
thc c gii thiu sau y ca TextField:

Phng thc M t
TextField (String label, String text, in To ra mt TextField mi
maxSize, int constraints)
void delete(int offset, int length) Xa cc k t trong TextField: Vi v tr
bt u xa l offset, v s k t cn xa l
length.
void insert(char[] data, in offset, int length, Chn k t t mng vo TextField ti mt
int position) v tr xc nh
void insert(String src, int position) Chn k t vo TextField
void setChars(char[] data, int offset, int Thay th k t t mng
length, int position)
void setString(String text) Thay th ni dung TextField vi chui
int getChars(char[] data) Ly v ni dung TextField
String getString( ) Ly v ni dung cha trong TextField
int getConstraints( ) Ly v rng buc nh ngha ca TextField
void setConstraints(int constraints) t rng buc cho TextField
int getMaxSize( ) Tr v s k t ti a ca TextField
int setMaxSize(int maxSize) t s k t ti a
Int getCaretPosition( ) Ly v tr con tr nhp liu
int size( ) Ly v s k t hin c ca TextField
V d to ra mt TextField:

63
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class vd extends MIDlet{
private Display di;
private Form fr;
private TextField t1,t2;
public vd(){
di=Display.getDisplay(this);
fr=new Form("vdform");
//to textfield vi tn l t1. Nhn ca t1 l "ten :",
//vn bn c sn trong TextField l "abc",
//s k t ti a l 20, kiu rng buc l ANY
t1=new TextField("ten:","abc",20,TextField.ANY);
//to textfield vi tn l t2. Nhn ca t2 l "pass :",
//vn bn c sn trong TextField l "123",
//s k t ti a l 20, kiu rng buc l PASSWORD
t2=new TextField("pass:","123",20,TextField.PASSWORD);
fr.append(t1);
fr.append(t2);
}
public void startApp(){
di.setCurrent(fr);
}
public void pauseApp(){
}
public void destroyApp(boolean b){
}
}

64
Hnh 3.20:V d to ra cc TextField

Image & ImageItem


Hai lp c dng hin th hnh nh l: Image v ImageItem. Image c dng
to ra mt i tng hnh nh v gi thng tin nh l chiu cao v chiu rng ca hnh
nh. Lp ImageItem m t mt tm nh s c hin th nh th no, v d tm nh s
c t trung tm, hay t v pha bn tri, hay bn trn ca mn hnh.
MIDP a ra 2 loi hnh nh l loi nh khng bin i v nh bin i. Mt tm nh
khng bin i th khng th b thay i k t lc n c to ra. c trng ca loi nh
ny l c c t mt tp tin. Mt tm nh bin i v c bn l mt vng nh. iu
ny ty thuc vo vic bn to ni dung ca tm nh bng cch ghi n ln vng nh.

65
Mt vi phng thc khi dng hay dng ca lp Image v ImageItem
Image createImage(String name): To ra mt i tng hnh nh t mt nh c sn,
nh ny nm trong th mc src ca d n, v ngi lp trnh ch cn a ra tn chnh xc
ca nh (c phn m rng) chng trnh np nh vo.
Image createImage(Image source)
Image createImage(byte[] imageDate, int imageOffset, int Length)
Image createImage(int width, int height): To ra mt nh vi chiu rng v chiu
cao xc nh.
Nhng phng thc hay c s dng ca lp Image:
Phng thc M t
static Image createImage ( String name) To image khng thay i c
t resource.
static Image createImage ( Image resource) To nh t mt nh c sn.
static Image createImage (byte [] imageData, To nh d liu mng.
int imageOffset, intimageLength)
static ImagecreateImage ( int width, To nh theo chiu rng v cao
int height) xc nh.
Int getHeight() Ly v chiu cao.
Int getWidth() Ly v chiu rng.
Boolean isMutable Xc nh nh c thay i c
hay khng.

Ch : PNG l loi nh c h tr bi bt k thit b MIDP no.


on m di y m t lm th no to mt tm nh t mt tp tin, v gn n vi
mt i tng ImageItem v thm mt bc nh vo mt Form:
Form fmMain = new Form("Images");
Image img = Image.createImage("/house.png");

66
fmMain.append(new ImageItem(null, img, ImageItem.LAYOUT_CENTER, null));
on m di y m t vic s dng i tng Image v i tng ImageItem:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class vd extends MIDlet implements CommandListener{
Display dis;
Form fr;
Command c;
public vd(){
dis=Display.getDisplay(this);
fr=new Form("hi you!");
c=new Command("exit",Command.EXIT,1);
try{
//to ra mt i tngImage c tn l i
//c np vo t mt nh vi tn l leaf.png
Image i=Image.createImage("/leaf.png");
//thm i tng nh ny vo Form
//nh c t v tr chnh gia: LAYOUT_CENTER
fr.append(new
ImageItem(null,i,ImageItem.LAYOUT_CENTER,null));
dis.setCurrent(fr);
}
catch(java.io.IOException e){
System.out.print("ko nap duoc anh");
}
fr.addCommand(c);
fr.setCommandListener(this);
}

67
public void startApp(){
dis.setCurrent(fr);
}
public void pauseApp(){ }
public void destroyApp(boolean b){ }
public void commandAction(Command c,Displayable db){
destroyApp(true);
notifyDestroyed();
}
}

68
Hnh 2.22:V d to Image
Bn ng quan tm ti nhng i tng m bn cha tng hc qua, hy th bit cch
a mt nh ln mn hnh. Bn hy copy file leaf.png vo cng folder vi file vd.java,
hoc i tn leaf.png trong m ngun thnh mt tn khc, v copy file nh c tn nh vy
vo cng th mc vi file vd.java.
Thnh phn List, TextBox, Alert, Ticket

Trong phn ny chng ta s xem xt i tng List, TextBox, Alert, Ticket trong cc
thnh phn giao din cp cao ca ng dng MIDP, cc lp ny cng cp vi lp Form,
hay ni cch khc chng u l m rng ca lp Screen, tng t nh lp Form. S khc
nhau quan trng gia cc thnh phn ny vi cc thnh phn mc 3.5.2 l cch hin th
trn mn hnh, Form c th gi bt k i tng Item no nhng i tng ny th khng,
khi i tng ny c t l thnh phn hin th th n l thnh phn duy nht c hin
th.

- List
Mt List cng l mt danh sch chn nh ChoiceGroup, tuy nhin cc List uc dng
th hin mt thc n cc chn la. List c ba dng l : a la chn v chn loi
tr v danh sch khng tng minh.

List a la chn hay List chn loi tr, khi List c to ra di dng ny th bn
cnh cc nt chn s c hnh nh ca nt radio hay checkbox, hn na khng c s kin
no pht sinh khi ngi dng thay i mt phn t trong List.

Tuy nhin List khng tng minh li khc, List khng tng minh khng c nt radio
hay checkbox bn cnh, khi ngi dng nhn vo cc nt chn trong List th s c s
kin pht sinh.

Phng thc khi dng c bn ca List:

List (String title, int listType): To ra mt List vi nhn l title v kiu l listType.

69
Di y l bng lit k cc listType c th c ca mt i tng List:

Gi tr M t
EXCLUSIVE Duy nht mt la chn c php
MULTIPLE C th chn cng lc nhiu gi tr
IMPLICIT Danh sch khng tng minh
Cc phng thc thng dng trong lp List:

Phng thc M t

List (String title, int listType) To ra mt danh sch mi khng c


phn t no

List (String title, int listType, String[] To ra danh sch List t cc mc d liu
stringElements, Image[] imageElements cha trong mng
)

int append (String stringPart, Image Thm phn t


imagePart)

void delete(int elementNum) Xa mt phn t ti ch s xc nh

void insert(int elementNum, String Chn phn t ti ch s xc nh


stringPart, Image imagePart)

void set(int elementNum, String Thay th phn t ti mt ch s xc


stringPart, Image imagePart) nh

String getString(int elementNum) Ly v ni dung vn bn ca phn t ti


ch s xc nh

Image getImage(int elementNum) Ly v hnh nh kt hp vi phn t


ti ch s xc nh

70
int getSelectedIndex() Ch s hin hnh

void setSelectedIndex(int elementNum, t ch s hin hnh


boolean selected)

int getSelectedFlags(boolean[] Ly v tnh trng ca cc phn t


selectedArray_return)

void setSelectedFlags(boolean[] t tnh trng chn cho phn t


selectedArray)

boolean isSelected(int elementNum) Xc nh xem phn t c chn hay


khng

int size() Xc nh s phn t bn trong danh sch


List

on m di y minh ha vic s dng mt List khng tng minh:

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class vd extends MIDlet{

Display dis;

List li;

public vd(){

dis=Display.getDisplay(this);

try{

Image i[]={

71
Image.createImage("/down.png"),

Image.createImage("/up.png"),

Image.createImage("/help.png")

};

String s[]={

"down",

"up",

"help"

};

li=new List("list",List.IMPLICIT,s,i);

catch(java.io.IOException e){

System.out.print("ko load dc anh");

public void startApp(){

dis.setCurrent(li);

public void pauseApp(){}

72
public void destroyApp(boolean b){}

Hnh 3.21:Vd to mt List

X l s kin

Phn ln cc i tng ha chng ta hc t phn trc u c kh nng n


nhn cc tng tc t pha ngi dng, v d nh vic nhp thng tin vo TextField hay
vic chn Item t mt ChoiceGroup hay mt List... Mi khi mt tng tc xy ra trn
mt thnh phn giao din, chng trnh phi c nhng hnh ng tr li tng ng vi
nhng tng tc , v d khi bn nhn nt ng nhp hay ng xut trn mt website, h
thng s phi c nhng hnh ng cho php bn tham gia hay thot khi h thng.

73
Nhng tng tc xy ra trn cc thnh phn giao din nh vy chng ta s gi l s kin
v vic to ra nhng hnh ng tr li cho cc tng tc chng ta s gi l x l s
kin.

- M hnh x l s kin
Vic u tin khi x l s kin l chng ta phi c c ch nhn bit xem s kin
xy ra u (trn thnh phn giao din no) v sau l a ra cc hnh ng tr li
cho cc s kin . V c bn, chng ta c ba bc chnh qun l thnh cng mt s
kin.

Phn cng (thit b vt l) phi on nhn c iu g xut hin: Mt


nt c nhn hay mt nt c th ra, dy ni pin ngun adapter ang cm
vo hay tho ra.
Phn mm trn thit b (b qun l ng dng) cn c thng bo v s kin
ny.
y l im ni chng ra s ng dng vai tr l mt ngi pht trin MIDlet.
Mt thng bo t b qun l ng dng s c gi cho MIDlet. Thng bo ny
s cha thng tin v s kin sao cho chng ta c th a ra nhng quyt nh
x l (s kin c th l mt yu cu hin th thng bo gip trn mn hnh
thit b)
MIDlet c th nhn bit c cc s kin chng ta phi gn vo n mt b lng nghe
s kin, cn c gi vi thut ng l Listener. C hai giao din Listener chnh cho mi
MID Profile l: CommandListener v ItemListener.

Khi MIDlet nhn bit c s kin ri, vic tip theo ngi lp trnh cn phi lm
l a ra cc hnh ng tr li, lm c vic bn cn mt lp ci t hoc c hai
giao din interface ny. Khi ci t interface, bn s xy dng ni dung cho phng thc
commandAction() v itemStateChanged(). y l ni bn t m thc hin nhng
cng vic ng vi yu cu ca s kin xut hin.

74
- i tng COMMAND
Trong phn ny chng ta s cng nhau tm hiu cch to ra v s dng mt thnh
phn ha rt n gin, nhng gn nh khng th thiu trong cc giao din phn mm
l nt nhn. Nt nhn trong J2me c gi l Command, nt nhn c hai loi:

Nt phm thng l nhng nt nm gc di cng bn tri v bn phi trn


mn hnh chng trnh (nm trn thanh Menu cui mn hnh), gi nt ny l
nt phm bi v n c kh nng nh x ln cc nt tht trn bn phm in
thoi.
Nhng nt khng th tham chiu n cc nt tht trn bn phm gi l nt
mm. nhn cc nt ny ngi dng ch cn nhn nt Ok/Menu trn bn
phm in thoi (phm tng ng vi phm Enter trn bn phm my vi
tnh).
Vic x l s kin cho nhng nt ny gm cc bc:

1. To ra cc i tng Command.
2. a Command vo mt Form, TextBox, List hoc Canvas.
3. Thm mt CommandListener vo Form, TextBox, List hoc Canvas bc
trn.
Khi bt c mt s kin, Listener s c gi (gi mt thng bo s kin t b qun l
ng dng n Listener). Kt qu l phng thc commandAction() m Listener qun l
s c gi. Bn trong phng thc ny bn c th xc nh Command no bt u hot
ng v x l s kin tng ng.

Di y l v d cho php to ra mt nt thot khi MIDlet:

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

75
//ci t giao tip lng nghe s kin CommandListener

public class vd extends MIDlet implements CommandListener{

private Display di;

private Form fr;

private Command c1;

public vd(){

di=Display.getDisplay(this);

fr=new Form("vdform");

//To ra nt nhn

c1=new Command("exit",Command.EXIT,1);

//thm nt nhn vo form

fr.addCommand(c1);

//gn b lng nghe s kin vo form

fr.setCommandListener(this);

public void startApp(){

di.setCurrent(fr);

public void pauseApp(){}

76
public void destroyApp(boolean b){ }

public void commandAction(Command com,Displayable db){

//xc nh Command gy ra s kin v x l

if(com==c1){

destroyApp(true);

notifyDestroyed();

- Command v CommandListener
Khi to mt i tng lnh Command mi chng ta c ba tham s: nhn (label), kiu
(type) v quyn u tin (priority).

phng thc khi dng:

Command (String label, int commandType, int priority): To mt nt nhn c


nhn l label, loi nt nhn l commandType, quyn u tin l priority.
v d:

c1=new Command("exit",Command.EXIT,1);
Trong :

1. Nhn (label): y l phn ch r ni dung vn bn m bn kt hp vi


Command. Nhn c th c hin th trc tip trn mn hnh thit b hoc
hin th bn trong mt menu.

77
2. Kiu (type): Xc nh xem Command l nt mm hay nt phm, nu l nt
phm th l loi nt phm no?. Di y l bng cc gi tr kiu ca
Command:
Gi tr M t

BACK Yu cu di chuyn ti mn hnh trc

CANCEL Yu cu hy b mt thao tc. V d, khi hin th mt mn hnh nhc


nh nhp vo mt a ch Web, bn c th c c nt OK ln Cancel
lm nhng nt ty chn trn mn hnh

EXIT Yu cu thot khi MIDlet

HELP Yu cu hin th thng tin gip

ITEM Yu cu nh x trn Command ln mt Item trn mn hnh. V d,


khi s dng thnh phn danh sch List, bn c th m phng hot
ng ca mt menu ng cnh bng cch nh x lnh Command cho
tng mc trong danh sch List.

OK Xc nhn ra quyt nh t pha ngi dng. V d, sau khi d liu ti


xung, bn c th a ra mt mn hnh thng bo Download
completed vi mt lnh kiu OK.

SCREEN Dnh cho nhng lnh khng c nh x ln cc phm c bit. V d,


bn c th c nhng lnh khi ng qu trnh chuyn tp tin t my
di ng sang my tnh ln hay ti xung d liu t Internet hoc t
cc my PC. Nhn Upload v Download khng c phm nh x
trc tip trn thit b.

STOP Yu cu dng mt thao tc. V d, nu ang ti d liu xung t


mng Internet, ty chn ny c th hin sn gip ngi dng c th

78
chm dt qu trnh download m khng phi i thao tc hon tt

3. Quyn u tin: Quyn u tin c xc nh bng mt con s, s c gi tr


cng cao th quyn u tin cng thp. Nhng gi tr ny c th gip ch cho b
qun l ng dng khi sp xp cc Item xut hin trong menu la chn hoc sp
th t cc nt mm trn mn hnh. Quyn u tin ny lm mt yu cu do bn
ch nh. Phm thc s c nh x v quyn u tin trn phm thc t s c
quyt nh v iu bi thit b.
Nhng phng thc thng c dng ca Command:

Phng thc M t

Constructor

Command (String label, int To ra i tng Command


commandType, int priority)

Phng thc

int getCommandType() Ly v kiu gn cho lnh

String getLabel() Ly v nhn gn cho lnh

int getPriority() Ly v quyn u tin gn cho lnh

Phng thc ca CommandListener:

Phng thc M t

void commandAction(Command c, c gi khi lnh Command c trn


Displayable d) mt i tng Displayable d bt u
mt s kin

v d di y s m t cch s dng Command v CommandListener:

79
import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class vd extends MIDlet implements CommandListener{

private Display di;

private Form fr;

private TextBox tb;

private Command c1,c2,c3;

public vd(){

di=Display.getDisplay(this);

fr=new Form("vd");

tb=new TextBox("help","y l ni dung help...",50,0);

//to ra cc nt nhn

c1=new Command("exit",Command.EXIT,1);

c2=new Command("help",Command.HELP,2);

c3=new Command("back",Command.BACK,3);

//thm cc nt nhn vo form

fr.addCommand(c1);

fr.addCommand(c2);

tb.addCommand(c3);

//gn b lng nghe s kin vo cc thnh phn khung cha

fr.setCommandListener(this);

80
tb.setCommandListener(this);

public void startApp(){

di.setCurrent(fr);

public void pauseApp(){ }

public void destroyApp(boolean b){ }

public void commandAction(Command com,Displayable db){

if(com==c1){

destroyApp(true);

notifyDestroyed();

else

if(com==c2){

di.setCurrent(tb);

else

if(com==c3){

di.setCurrent(fr);

81
}

Hnh 2.29:v d v Command v CommandListener

y l mt v d n gin, giao din chnh ca chng trnh c gn vi hai nt exit


v help, exit thot khi MIDlet, help bt ln mt ca s tr gip dng TextBox, ca
s help ny c gn vi mt nt back quay li giao din chnh ca chng trnh.

to c chng trnh nh trn, u tin ta phi to ra cc nt nhn:


c1=new Command("exit",Command.EXIT,1);

c2=new Command("help",Command.HELP,2);

c3=new Command("back",Command.BACK,3);

Ri gn cc nt nhn vo cc i tng khung cha thch hp:

82
fr.addCommand(c1);

fr.addCommand(c2);

tb.addCommand(c3);

Gn i tng lng nghe s kin vo cc khung cha. V y MIDlet ca


chng ta c ci t thc thi giao din CommandListener (implements
CommandListener) cho nn i tng lng nghe s kin cng chnh l MIDlet:
fr.setCommandListener(this);

tb.setCommandListener(this);

Bc cui cng l x l s kin:


public void commandAction(Command com,Displayable db){

if(com==c1){

destroyApp(true);

notifyDestroyed();

else

if(com==c2){

di.setCurrent(tb);

else

if(com==c3){

di.setCurrent(fr);

83
y nhn bit c i tng Command no l i tng gy ra s kin, chng
ta s dng tham s com ca phng thc CommandAction vi cu lnh kim tra n gin
nh sau:

if (com==tn_Command){

//thc hin cng vic tng ng

- Item v ItemStateListener
Mt kiu x l s kin th hai c thc hin thng qua i tng Item. Item ch c
th truy xut t b phn ca Form trong khi lnh Command c th truy xut c t
Form, TextBox, List, hoc Canvas.

Khi bn thm mt Item vo Form, tng t nh vi Command, bn phi thm mt b


ItemStateListener vo chung lng nghe s kin.

Khi c s thay i tc ng n Item (nh Gauge tng mc m hoc DateField thay


i d liu), i tng ItemStateListener s c thng bo bng mt thng ip.

Bn c th xem thng bo ny nh mt li gi ti phng thc itemStateChanged().


Phng thc ny c th gii m thng ip xem Item thay i nhng g v x l nhng
thay i ny nh th no nu cn thit.

Lu :StringItem v ImagItem cng l nhng lp con ca Item. Tuy nhin, khi c cp


pht, nhng i tng ny l tnh v do khng nhn c thng bo v s kin pht
sinh.

V d di y s cho php to ra mt TextField v mt StringItem. Bt c khi no


ngi dng thay i ni dung ca TextField th ni dung ca StringItem cng b thay i
theo:

84
import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class vd extends MIDlet implements CommandListener,

ItemStateListener{

private Display di;

private Form fr;

private TextField tf;

private StringItem st;

private Command c1;

public vd(){

di=Display.getDisplay(this);

fr=new Form("vd");

c1=new Command("exit",Command.EXIT,1);

//TextField v StringItem l cc i tng Item

tf=new TextField("h tn:","",50,TextField.ANY);

st=new StringItem("Xin cho:","");

fr.append(tf);

fr.append(st);

85
fr.addCommand(c1);

fr.setCommandListener(this);

//gn b lng nghe vo form cha Item

fr.setItemStateListener(this);

public void startApp(){

di.setCurrent(fr);

public void pauseApp(){ }

public void destroyApp(boolean b){ }

public void commandAction(Command com,Displayable db){

if(com==c1){

destroyApp(true);

notifyDestroyed();

//x l s kin

public void itemStateChanged(Item it){

86
if(it==tf){

st.setText(tf.getString());

cho mi khi TextField thay i ni dung, ni dung ca StringItem cng b thay i


th ta phi gn b lng nghe s kin vo TextField:

fr.setItemStateListener(this);

B lng nghe hay i tng lng nghe s kin y l MIDlet (this) ca chng ta v
MIDlet c ci t thc thi giao din ItemStateListener (implements
CommandListener, ItemStateListener).

Sau tin hnh x l s kin trong phng thc itemStateChanged:

public void itemStateChanged(Item it){

if(it==tf){

st.setText(tf.getString());

Tng t nh x l vi CommandListener, y chng ta cng s dng tham s Item


ca phng thc itemStateChanged xc nh i tng Item gy ra s kin vi cu
lnh kim tra n gin:

87
if(it==tn_Item){

//on m x l tng ng

Hnh 2.30:V d s dng ItemStateListener

Tr StringItem v ImageItem, cc Item khc u c th nhn bit tng tc vi ngi


dng. Khi thm Item vo Form, bn to mt Listener n bt s kin ngi dng (cho

88
tt c cc Item trn Form). Khi c s thay i pht hin, phng thc itemStateChanged()
s c gi. Bn trong phng thc ny bn c th xc nh c thay i din ra trn
Item no v quyt nh cch x l chng. Khng cn phi gi itemStateChanged() mi
khi c thay i din ra. Tuy nhin, n theo nhng quy tc sau:

Nu mt Item thay i th itemStateChanged() phi c gi trn Item thay


i trc khi thng bo v thay i ca mnh cho nhng Item k tip
Nu mt MIDlet thc hin thay i cho mt Item (theo cch tng t nh
tng tc ngi dng) th itemStateChanged() s khng c gi. v d, nu
bn vit m bn trong MIDlet thay i gi tr ca DateField, iu ny s khng
lm pht sinh s kin.
Nu thit b chy MIDlet c th nhn bit khi ngi dng i chuyn t Item
ny sang Item khc (thay i focus), itemStateChanged() s phi c gi khi
bt u ri b Item hin hnh trc khi n Item tip theo.
phng thc ca ItemStateListener:

Phng thc M t

void itemStateChanged(Item item) c gi khi Item thay i

- X l s kin vi cc i tng giao din


Cc phn trn gii thiu ti bn cch to ra cc thnh phn giao din v cch x l
s kin, chi tit hn, di y gio trnh s a ra cc v d v cch dng cc phng
thc ca cc i tng ha v cch x l s kin i vi cc i tng .

A) TextField
Chng ta s cng nhau quay li v d trong phn ItemStateListener ni v cch x
l s kin vi TextField. TextField l mt Item cho nn ta hon ton c th dng
ItemStateListener vi n. TextField c rt nhiu phng thc x l trc tip cc thng
tin ngi dng nhp vo ngay trn nhp thng tin, bn hy th s dng cc phng

89
thc thy c s linh hot ca TextField, cn by gi, chng ta hy lm mt v d
n gin vi vic ly li thng tin trn TextField ngay thi im ngi dng nhp vo
bng i tng ItemSateListener:

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class vd extends MIDlet implements CommandListener,

ItemStateListener{

private Display di;

private Form fr;

private TextField tf;

private StringItem st;

private Command c1;

public vd(){

di=Display.getDisplay(this);

fr=new Form("vd");

c1=new Command("exit",Command.EXIT,1);

tf=new TextField("h tn:","",50,TextField.ANY);

st=new StringItem("Xin cho:","");

fr.append(tf);

90
fr.append(st);

fr.addCommand(c1);

fr.setCommandListener(this);

fr.setItemStateListener(this);

public void startApp(){

di.setCurrent(fr);

public void pauseApp(){ }

public void destroyApp(boolean b){ }

public void commandAction(Command com,Displayable db){

if(com==c1){

destroyApp(true);

notifyDestroyed();

public void itemStateChanged(Item it){

if(it==tf){

91
st.setText(tf.getString());

TextField l mt Item m ItemStateListener l Listener dnh ring cho cc Item, v vy


khi TextField c bt c tng tc g t pha ngi dng, n u c n nhn t
ItemStateListener. Kt qu, bn s thy l bt c iu g xy ra vi ni dung trong vn
bn ca TextField s u c lp li phn Text ca StringItem.

b) List
List khng ging cc thnh phn gii thiu trn, List khng phi l mt Item, do
ta ch c th dng b lng nghe CommandListener vi List. Vy dng
CommandListener vi List nh th no?, chng ta s cng xt v d di y vi mt List
khng tng minh:

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

import java.io.IOException;

public class vd extends MIDlet implements CommandListener{

Display dis;

List li;

Command c1;

public vd(){

92
dis=Display.getDisplay(this);

li=new List("list",List.IMPLICIT);

li.append("muc1",null);

li.append("muc2",null);

li.append("muc3",null);

li.append("muc4",null);

li.append("muc5",null);

c1=new Command("exit",Command.EXIT,1);

li.addCommand(c1);

li.setCommandListener(this);

public void startApp() {

dis.setCurrent(li);

public void pauseApp(){ }

public void destroyApp(boolean b){ }

public void commandAction(Command c,Displayable db){

boolean b[]=new boolean[li.size()];

int i;

93
if(c==c1){

destroyApp(true);

notifyDestroyed();

else

if(c==li.SELECT_COMMAND){

switch(li.getSelectedIndex()){

case 0: System.out.println("muc 1");break;

case 1: System.out.println("muc 2");break;

case 2: System.out.println("muc 3");break;

case 3: System.out.println("muc 4");break;

case 4: System.out.println("muc 5");break;

V d ny cng khng c g c bit, chng ta ch n gin l a ra mn hnh output


ca netbeans tn ca thnh phn trong List c la chn. lm c vic , trong
phng thc ci commandAction ta phi kim tra xem c phi List gy ra s kin
khng:

94
if(c==li.SELECT_COMMAND)

V l Listener ca cc Command nn y ta phi dng thuc tnh tnh


SELECT_COMMAND vi kiu tr v l mt Command ca List kim tra thnh phn
no ca List c chn. Sau ta ch cn hin th tn ca thnh phn ln l c:

switch(li.getSelectedIndex()){

case 0: System.out.println("muc 1");break;

case 1: System.out.println("muc 2");break;

case 2: System.out.println("muc 3");break;

case 3: System.out.println("muc 4");break;

case 4: System.out.println("muc 5");break;

Trong hm getSelectedIndex() s tr v ch s ca thnh phn List c ngi


dng chn la.

95
Hnh :V d x l s kin vi List

2.2.5 Kt ni internet vi J2ME


A. Khung kt ni chung GCF

CLDC cung cp cho chng ta mt khung tng qut thit lp kt ni mng, l


GCF. tng ca n l: nh ngha mt cch tru tng cc hot ng mng v nhp
xut file dng chung cho mt s lng ln cc thit b, ging nh mt b khung nn
vy. mc CLDC, J2me ch nh ngha v to kt ni, giao thc thc s v cc
phng thc trao i d liu ca giao thc c trao cho tng Profiles.
Vi GCF, kt ni chng ta s dng mt lp c kh nng m mi loi kt ni
bao gm: file, http, datagram, Tn ca lp ny l Connector. Nh vy nu s dng

96
Connector m kt ni, chng ta ch cn gi mt phng thc open c nh dng nh
sau:

Connector.Open(protocol:address; parameter)

C ch m GCF dng m nhiu loi giao tip ch bng mt phng thc chung
duy nht ny chng minh tnh uyn chuyn ca GCF. C ch ny hot ng nh sau:

1. Trong thi gian thc thi, mi khi c yu cu m mt giao thc, Connector s


tm n lp tng ng ci t giao thc y. Qu trnh tm kim ny c thc
hin thng qua phng thc Class.forName(). V d nh yu cu m kt ni
HTTP trong J2ME, yu cu s c vit nh sau:
Class.forName(com.sun.midp.io.j2me.http.Protocol);
2. Khi tm thy lp tng ng, Class.forName() s tr v mt i tng c ci t
giao din Connection (trong lp Connector v giao din Connection
c nh ngha sn trong CLDC). Sau khi kt ni thnh cng, mi cng vic
giao tip, trao i d liu s u c thc hin vi i tng ci t giao din
Connection ny.
Ta cn nh rng: ci t tht s ca cc giao thc u nm mc profiles. Trong
MIDP 1.0, HttpConnection h tr mt tp con HTTP phin bn 1.0. Do khi lp ny
m rng ContentConnection, n c cung cp sn hn 20 phng thc chuyn bit
giao tip thng qua giao thc HTTP.

V d, to mt kt ni HTTP ta s lm nh sau:

//To chui kt ni

String url = "http://www.corej2me.com";

// HttpConnection l mt i tng thuc MIDP

// lp ci t thc s giao thc HTTP

97
HttpConnection http=null;

//Dng i tng Connector m kt ni, phng thc open ca i

//tng ny tr v mt i tng Connection.

//p kiu i tng Connection thnh HttpConnection

HttpConnection http = (HttpConnection) Connector.open(url);

B. Cc giao thc c h tr trong GCF


Nh ta bit, cc thit b di ng ni chung v in thoi di ng ni ring c
kh nng kt ni rt ln, bi v n c ngi s dng dng trao i vi th gii bn
ngoi ti bt c ni u v bt c lc no. Nhng kh nng kt ni y khng ch l kh
nng thoi hay SMS m cn l kt ni khng dy. Do , J2me c th h tr mt s
lng ln cc thit b di ng khc nhau vi nhiu kh nng kt ni v yu cu nhp xut
khc nhau GCF c thit k. GCF nh ngha k thut kt ni chung nht c th cho
mi loi thit b, c dng chung bi c hai loi cu hnh l CDC v CLDC, v vy GCF
h tr rt nhiu loi giao thc, nhiu kiu kt ni khc nhau, v d: Giao thc HTTP,
FTP, UDP, Datagram, Socket... Nhng i vi in thoi di ng, i vi hin trng
MIDP, giao thc lun lun c h tr l giao thc HTTP, v vy trong gio trnh ny
chng ta s hc cch to kt ni HTTP vi J2me.
bt u, chng ta s cng xem GCF cung cp cho ta nhng cng c g tin
hnh kt ni v trao i d liu thng qua i tng Connection, i tng m chng ta
c lm quen mc trn.

98
Hnh 2.42:Phn cp lp Connection
Sau y l m t cc giao din kt ni c nh ngha trong CLDC:
Giao dinStreamConnectionNotifier: c dng khi i mt kt ni pha server
c thit lp. Phng thc acceptAndOpen() b chn cho n khi client thit
lp kt ni.
Giao din InputConnection dng thc hin mt lung nhp tun t d liu
ch c.
Giao din OutputConnection dng thc hin mt lung xut d liu ch vit.
Giao din StreamConnection l kt hp ca c hai giao din InputConnection
v OutputConnection. N dng cho cc thit b di ng c truyn thng hai
chiu.
Giao din ContentConnection k tha giao din StreamConnection v thm vo
cc phng thc getType(), getEncoding(), v getLength(). N cung cp c s
cho giao din HttpConnection ca MIDP.

99
Giao din HttpConnection c nh ngha trong MIDP v k tha giao din
ContentConnection ca CLDC. Giao din ny cung cp cc phng thc thit
lp mt kt ni HTTP.
Vic s dng nhng i tng ny nh th no, trong trng hp no tin hnh
giao tip v trao i d liu chng ta s c hc trong cc v d c th di y.

C. H tr giao thc HTTP trong MIDP

i vi cng ngh J2ME, cn phi quan tm n s hn ch ca c kt ni mng


v ti nguyn ca thit b, khng ging nh mi trng thng thng ca my tnh c
nhn vi kt ni mng c nh. iu ny c ngha l nh pht trin nn lng trc c
cc khong thi gian tr di trn bng thng hn ch. Hn na, bt k trong tnh hung
no cng khng nn cho rng thit b di ng lun lun c kt ni. V ti nguyn, ta phi
i mt vi vn kh nng tnh ton hn ch cng vi kh nng lu tr tng i ca
thit b. Do , trc khi pht trin mt ng dng phn tn cho client di ng, ta cn phi
xem xt k cc yu t trc khi chn giao thc, bi v quyt nh ny c th c nh
hng ln n hiu sut ca ng dng.
HTTP l mt giao thc lin lc client/server l tng cho ng dng Java di ng.
i vi mi c t, thit b tng thch MIDP 1.0 phi h tr HTTP. Cc giao thc khc
nh TCP hay UDP l ty chn. Bi v khng phi tt c thit b MIDP u h tr truyn
thng socket hay datagram, do trin khai HTTP trn thit b di ng cho php ti u
kh nng chuyn i gia cc thit b t cc nh sn xut khc nhau.
Mt li im khc na l giao thc HTTP c hng truy xut khng li
(trouble-free access) thng qua tng la. Bi v server v client di ng hu nh c
tch bit bng firewall, HTTP khng cn phi cu hnh thm. Mc d vy, ta cng nn
quan tm n cc ri ro bo mt c th c khi m kt ni HTTP ra th gii bn ngoi.
Java cung cp API lp trnh mng, h tr giao thc HTTP 1.1. Ta d dng to ra cc
request GET, POST, v HEAD trong ng dng Java.
S lc v giao thc HTTP

100
HTTP l giao thc truyn siu vn bn v l giao thc tng ng dng cho web. N
hot ng theo m hnh Client/Server.

Web Server

Request

Response

Hnh 3.2:
M hnh Client - Server
Client: Yu cu, nhn, hin th cc i tng Web.
Server: Web server gi cc i tng tr li cho cc yu cu t pha Client.
HTTP l giao thc phi trng thi, trong Server khng lu li cc yu cu ca
client. iu ny c ngha l: sau mi ln yu cu c gi ln Server v Server kt xut
kt qu tr v cho Client th kt ni s hon ton b ngt, tip tc yu cu Server tr li
cho cc yu cu khc, Client li phi tin hnh kt ni li t u.

HTTP s dng giao thc TCP ca tng giao vn. Cc bc tin hnh t khi Client
kt ni ti Server sau gi v nhn kt qu t Server gi v nh sau:

Client khi to kt ni TCP vi Server


Server chp nhn kt ni TCP t Client
cc thng ip HTTP c trao i gia browser v web server.

101
ng kt ni TCP
C hai kiu thng ip HTTP l yu cu (Request) v tr li (Response). Cc
thng ip c nh dng kiu m ASCII.

C HTTP v HTTPS u gi request v response. My Client gi request, cn


Server s tr v response.

- Client Request
Client request bao gm 3 phn sau:

Request method
Header
Body
Request method nh ngha cch m d liu s c gi n Server. C 3 phng
thc c cung cp sn l GET, POST, HEADER. Khi s dng Get, d liu cn request
s nm trong URL. Vi Post d liu gi t client s c phn thnh cc stream ring
bit. Trong khi , Header s khng gi d liu yu cu ln server, thay vo header
ch request nhng meta information v server. GET v POST l hai phng thc request
kh ging nhau, tuy nhin do GET gi d liu thng qua URL nn s b gii hn, cn
POST s dng nhng stream ring bit nn s khc phc c hn ch ny.

V d v vic m HTTP Connection thng qua GET

String url = "http://www.corej2me.com?size=large";

HttpConnection http = null;

http = (HttpConnection) Connector.open(url);

http.setRequestMethod(HttpConnection.GET);

102
Nhng Header field s cho php ta truyn cc tham s t Client n Server. Cc
header field thng dng l If-Modified-Since, Accept, and User Agent. Bn c th t
cc field ny thng qua phng thc setRequestProperty(). Di y l v d dng
setRequestProperty(), ch c nhng d liu thay i sau ngy 1 thng 1 nm 2005 mi
c gi v t server:

String url = "http://www.corej2me.com\somefile.txt";

HttpConnection http = null;

http = (HttpConnection) Connector.open(url);

http.setRequestMethod(HttpConnection.GET);

// t header field

http.setRequestProperty("If-Modified-Since", "Sat, 1 Jan 2005 12:00:00 GMT");

Body cha ni dung m bn mun gi ln server. V d v s dng POST v gi


d liu t client thng qua stream:

String url = http://www.corej2me.com;

tmp = "test data here";

OutputStream ostrm = null;

HttpConnection http = null;

http = (HttpConnection) Connector.open(url);

http.setRequestMethod(HttpConnection.POST);

// Gi d liu

103
ostrm = http.openOutputStream();

byte bytes[] = tmp.getBytes();

for(int i = 0; i < bytes.length; i++) {

os.write(bytes[i]);

os.flush();

Sau khi nhn c v x l yu cu t pha client, server s ng gi v gi v


pha client.

- Server Response
Cng nh client request, server cng gm 3 phn sau:

Status line
Header
Body
Status line s thng bo cho client kt qu ca request m client gi cho server.
HTTP phn loi status line thnh cc nhm sau y:

1. xx Thng tin
2. xx Thnh cng
3. xx Chuyn hng
4. xx My khch Client li
5. xx My ch Server li
Status line bao gm version ca HTTP trn server, status code, v on text i
din cho status code.

104
V d: "HTTP/1.1 200 OK" "HTTP/1.1 400 Bad Request" "HTTP/1.1 500 Internal
Server Error" 102

Khng ging nh header ca client, server c th gi data thng qua header. Sau
y l nhng phng thc dng ly thng tin Header m server gi v:

String getHeaderField(int n), ly gi tr header field thng qua ch s


String getHeaderField(String name), ly gi tr header field thng qua tn
String getHeaderFieldKey(int n), ly header field key thng qua ch s
Server c th tr v nhiu Header field. Trong trng hp ny, phng thc u
tin s cho ly header field thng qua index ca n. Cn phng thc th hai ly ni
dung header field da vo tn ca header field. Cn nu mun bit tn (key) ca header
field, c th dng phng thc th 3 trn.

Sau y l v d v 3 phng thc trn, trong trng hp server gi v chui


"content-type=text/plain":

Phng thc Gi tr

http.getHeaderField(0) "text-plain"

http.getHeaderField("content-type") "text-plain"

http.getHeaderFieldKey(0) "content-type"

Body: Cng ging nh Client, Server gi hu ht nhng thng tin trong phn body
cho Client. Client dng input stream c kt qu tr v t Server:

//con l mt i tng HttpConnection

InputStream in=con.openInputStream();

105
int length=(int)con.getLength();

byte data[];

if(length!=-1){

data=new byte[length];

in.read(data);

else

ByteArrayOutputStream br=new ByteArrayOutputStream();

int ch;

while((ch=in.read())!=-1)

br.write(ch);

data=br.toByteArray();

br.close();

Cc hm API HttpConnection

3.3.2.1. Mt vi hm thng dng trong HttpConnection


Phng thc M t

long getDate() Ly v ngy thng t Header

106
long getExpiration() Ly v thi gian ht hn

String getFile() Ly tn file t a ch URL

int getHeaderField(int n) Ly v gi tr trng header bng ch


s

String getHeaderField(String name) Ly v gi tr trng header bng tn

long getHeaderFieldDate(String name, long def) Ly v trng ngy thng theo tn

int getHeaderFieldInt(String name, int def) Ly v trng int theo tn

String getHeaderFieldKey(int n) Ly v kha ca trng s dng ch


s

String getHost() Ly v tn host t a ch URL

long getLastModified() Ly v gi tr trng last-modified

String getPort() Ly v cng t a ch URL

String getProtocol() Ly v giao thc t a ch URL

String getQuery() Ly v chui truy vn (ch dng vi


GET)

String getRef() Ly v phn tham chiu ca a ch


URL

String getRequestMethod() Ly v phng thc hin thi ang


s dng (GET, POST hay HEAD)

String getRequestProperty(String key) Ly v cu hnh hin thi ca request

107
property

int getResponseCode() Ly v m phn hi (numeric value)

String getResponseMessage() Ly v thng ip phn hi (text


value)

String getURL() Ly v ton b a ch URL

void setRequestMethod(String method) t phng thc truyn thng (GET,


POST or HEAD)

void setRequestProperty(String key, String value) t thuc tnh yu cu (header


information)

3.3.3.2.V d v kt ni Internet vi J2me


Bn bit rng khi bn kt ni n cc a ch website nh "http://google.com.vn"
th trn trnh duyt bn s nhn c kt qu tr v l cc i tng web, nh hnh nh,
nt nhn, links... Tuy nhin, mt chng trnh J2me khng phi l trnh duyt, n khng
hiu c cc m HTML, i vi n mi th m Server ca website gi v u l cc
byte d liu nh phn, bn c th chuyn i n v cc i tng nh chui k t, s,
hnh nh... s dng, iu ny cn ph thuc vo vic server gi v nhng d liu g, c
chuyn i v cc kiu d liu bn mong mun hay khng?.
lm r hn vn ny, chng ta s cng nhau i xy dng mt chng trnh
J2me n gin, trong chng trnh s cung cp cho ngi dng mt TextField
ngi dng nhp a ch kt ni. Sau khi ngi dng nhp song a ch v nhn nt
"connect" trn mn hnh, chng trnh s tin hnh kt ni v nhn kt qu tr v t pha
server, chuyn kt qu nhn c thnh dng chui v hin th ln mn hnh:
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

108
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
public class vd extends MIDlet implements Runnable,
CommandListener{
HttpConnection con;
InputStream in;
OutputStream out;
Thread th;
Form fr;
Display dis;
TextField t1;
StringItem it;
Command c1;
String url;
public vd(){
th=new Thread(this);
dis=Display.getDisplay(this);
fr=new Form("vdform");
t1=new TextField("a ch URL:","",50,TextField.URL);
it=new StringItem("kt qu kt ni:","");
fr.append(t1);
fr.append(it);
c1=new Command("connect",Command.OK,1);
fr.addCommand(c1);
fr.setCommandListener(this);
}
public void startApp() {
dis.setCurrent(fr);

109
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void connect(){
try{
con=(HttpConnection)Connector.open(url);
con.setRequestMethod(HttpConnection.GET);
con.setRequestProperty("User-Agent","Profile/MIDP-2.0
Configuration/CLDC-1.1");
con.setRequestProperty("Content-Language", "en-US");
con.setRequestProperty("Content-Type", "application/x-www-
form-urlencoded");
}
catch(Exception e){
System.out.println("kt ni li:"+e.getMessage());
}
}
public void in(){
String str="nothing";
try{
in=con.openInputStream();
int length=(int)con.getLength();
byte server[];
if(length!=-1){
server=new byte[length];
in.read(server);

110
str=new String(server);
}
else
{
ByteArrayOutputStream br=new
ByteArrayOutputStream();
int ch;
while((ch=in.read())!=-1)
br.write(ch);
str=new String(br.toByteArray());
br.close();
}
it.setText(str);
}
catch(Exception e){
}
}
public synchronized void run(){
this.connect();
this.in();
}
public void commandAction(Command c, Displayable d){
url=t1.getString();
th=new Thread(this);
th.start();
}
}

111
Hnh:
V d kt ni Internet vi J2me
Gi s nh chng ta kt ni n a ch "http://google.com.vn", bn s ngc nhin
khi thy rng kt qu tr v khng phi l biu tng google v cc thnh phn quen
thuc khc ca trang web ny, m l mt chui cc k t kh rm r, chnh l m
HTML m my ch ca trang web google.com.vn tr v cho chng trnh ca bn.
Qua v d ny chng ta s hc c cch vit mt chng trnh kt ni Internet vi
J2me vi ba thao tc c bn:
To kt ni n server
Gi thng tin ln server

112
Nhn v x l thng tin tr li t server
M to ra mt kt ni n my ch Server t xa cn ch r a ch URL v mt
vi thng tin header quan trng cho yu cu request t my khch, nh s dng kiu kt
ni no, dng ngn ng g...:
con=(HttpConnection)Connector.open(url);
con.setRequestMethod(HttpConnection.GET);
con.setRequestProperty("User-Agent","Profile/MIDP-2.0
Configuration/CLDC-1.1");
con.setRequestProperty("Content-Language", "en-US");
con.setRequestProperty("Content-Type", "application/x-www-
form-urlencoded");
Sau , nhn thng tin tr v t my ch ta cn phi m mt lung InputStream
v c d liu t my ch Server tr v vo trong mt mng byte. Trong v d ny, chng
ta cha c nhu cu gi hoc nhn lnh HTTP:
//To InputStream connection
in=con.openInputStream();
int length=(int)con.getLength();
byte server[];
if(length!=-1){
server=new byte[length];
in.read(server);
str=new String(server);
}
else
{
ByteArrayOutputStream br=new
ByteArrayOutputStream();
int ch;

113
while((ch=in.read())!=-1)
br.write(ch);
str=new String(br.toByteArray());
br.close();
}
Khi ContentConnection v InputStream c thit lp, chng ta th tham chiu
n chiu di length ca d liu c gi v t Server. Nu length c th xc nh, chng
ta c kt qu vo trong mng server ch bng mt lnh:
in.read(server);
Nu length khng c sn, chng ta cn phi c tng k t mt. Java cung cp mt
cng c tin li v hiu qu gip bn iu khin cng vic ny. S dng
ByteArrayOutputStream, cc byte c c vo trong mt mng byte ni, Java s iu
khin v t thay i kch thc ca mng cho ph hp. Khi Java c xong, chng ta n
gin chuyn ni dung stream vo trong mng byte ca chng trnh:
ByteArrayOutputStream br=new ByteArrayOutputStream();
int ch;
while((ch=in.read())!=-1)
br.write(ch);
str=new String(br.toByteArray());
br.close();
Cui cng chng ta chuyn i kt qu tr v thnh dng chui v in ra mn hnh
in thoi nh i tng ImageItem:
str=new String(server);//nu tham chiu c length
str=new String(br.toByteArray());//nu khng tham chiu c length
it.setText(str);//hin th kt qu ln mn hnh in thoi
Di y l mt v d tng t, tuy nhin, thay v kt ni n mt a ch trang
web no v nhn v m HTML, chng ta s dng chng trnh J2me kt ni n mt
a ch cho php download mt nh nh dng PNG c nh (nh hn 48*48 pixel, ln

114
hn c th vt qu kh nng hin th ca thit b). Sau khi download c nh v ta s
hin th nh ln mn hnh in thoi, di y l m ngun:

Hnh :
V d kt ni Intenet vi J2me
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;

115
public class vd extends MIDlet implements Runnable,
CommandListener{
HttpConnection con;
InputStream in;
OutputStream out;
Thread th;
Form fr;
Display dis;
TextField t1;
StringItem it;
Command c1;
String url;
Image im;
public vd(){
th=new Thread(this);
dis=Display.getDisplay(this);
fr=new Form("vdform");
t1=new TextField("a ch URL:","",50,TextField.URL);
t1.setString("http://www.iconspedia.com/dload.php?up_id=3574");

it=new StringItem("kt qu kt ni:","");


fr.append(t1);
fr.append(it);
c1=new Command("connect",Command.OK,1);
fr.addCommand(c1);
fr.setCommandListener(this);
}
public void startApp() {

116
dis.setCurrent(fr);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void connect(){
try{
con=(HttpConnection)Connector.open(url);
con.setRequestMethod(HttpConnection.GET);
con.setRequestProperty("User-Agent","Profile/MIDP-2.0
Configuration/CLDC-1.1");
con.setRequestProperty("Content-Language", "en-US");
con.setRequestProperty("Content-Type", "application/x-
www-
form-urlencoded");
}
catch(Exception e){
System.out.println("kt ni li:"+e.getMessage());
}
}
public void in(){
String str="nothing";
im=null;
try{
in=con.openInputStream();
int length=(int)con.getLength();
byte server[];

117
if(length!=-1){
server=new byte[length];
in.read(server);
}
else
{
ByteArrayOutputStream br=new
ByteArrayOutputStream();
int ch;
while((ch=in.read())!=-1)
br.write(ch);
server=br.toByteArray();
br.close();
}
im=Image.createImage(server,0,server.length);
ImageItem ii=new
ImageItem(null,im,ImageItem.LAYOUT_DEFAULT,null);
if(fr.size()!=0)
fr.set(0, ii);
else
fr.append(ii);
}
catch(Exception e){
}
}
public synchronized void run(){
this.connect();
this.in();

118
}
public void commandAction(Command c, Displayable d){
url=t1.getString();
th=new Thread(this);
th.start();
}
}
on m ny khng c nhiu khc bit vi on m trn, Thay v chuyn i kt
xut t server tr v thnh dng chui, ta li chuyn i kt qu tr v t server thnh
dng nh v hin th ln mn hnh:
im=Image.createImage(server,0,server.length);
ImageItem ii=new
ImageItem(null,im,ImageItem.LAYOUT_DEFAULT,null);
if(fr.size()!=0)
fr.set(0, ii);
else
fr.append(ii);
Trong on m trn i tng "server" l i tng mng byte dng cha kt
qu tr v t server. Bn ch , c th links download nh ny s khng cn tn ti sau
mt khong thi gian nht nh no , bn nn thay link ny bng mt link khc, ch ,
kiu nh c J2me h tr l PNG.

119
CHNG 4: IU KHIN KT NI GIA IN THOI V MNG VIN
THNG VI TP LNH AT

4.1. Gii thiu chung v tp lnh AT (GSM 07.07)


u nhng nm 1980, cng ty Hayes bt u sn xut loi thit b Smartmodem
vi tc 1200. Sau khng lu cng ty ny nhanh chng pht hnh ra th trng
loi Smartmodem vi tc 2400 baud/bps trong khi loi Smartmodem 1200 li ang
c thnh hnh trn th trng. Khi Hayes khng c thi gian thay i li thit k
gi hai loi Smartmodem 1200 v 2400. Chnh v th m cc nh thit k ca Hayes
to ra mt chun modem tn ti cho n ngy nay.

C hi loi Smartmodem 1200 v 2400 u c coi l cc loi modem thng minh


thi , n cho php con ngi c th gi ti cc s in thoi khc t in thoi m n
c gn trn , khi ngi nghe t modem bn kia c th nhn nt chp nhn hoc t
chi cuc gi. Quy trnh quay s chung gia cc modem c s dng nh trong mng
in thoi cng cng POTS/PSTN (Plain Old Telephone Service/Public Switched
Telephone Network) c gii thiu vo nhng nm 1980.

Cc Smartmodem 1200 v 2400 khng nhn bit c tn hiu bn rn hoc pht


hin ra m thanh quay s cng nh hng chc cc tnh nng khc hin nay dng trong
modem sn xut cui nhng nm 1980.

Nhng g lm cho Smartmodem 1200 v 2400 l duy nht ti thi im l mt


nh sn xut cung cp hai m hnh tc khc nhau ca modem POTS/PSTN m chng
chp nhn cc lnh lp trnh, c gi l tp lnh AT (ATtention). Tuy nhin khng phi
bt k phn mm no dng trn cc Smartmodem 1200 cng s lm vic trn
Smartmodem 2400.

Mt s nh sn xut modem t nhin nhn ra li th ca m hnh modem mi h tr


cc lnh tng t nh cc m hnh trc y. Mt s nh sn xut thng xuyn pht
trin cc lnh hon ton khc nhau ph hp vi thit k modem m h sn xut ra.

Hng Hayes kp thi kin cc cng ty ny bng cch s dng t "Hayes" trong cc
ti liu sn phm v bao b ca h. T cc nh sn xut khc bt u gi modem ca

120
h l s dng tp lnh AT tng thch v tip tc bt chc cc thit lp lnh ca
Hayes. Ti nm 1986, hu ht cc modem u h tr tp lnh AT.

Ngy nay hu ht cc modem chuyn dng v cc in thoi di ng h tr cng ngh


GSM u s dng tp lnh AT c bn hoc tp lnh AT m rng truyn thng trong
mng.

4.1. Cc lnh AT kim tra cu hnh


Cc lnh AT kim tra cu hnh bao gm cc lnh kim tra cu hnh h thng,
cu hnh cliens. Cung cp cc thng tin nhn thc t cliens n server..
4.1.1. AT+CGMI nhn dng nh sn xut

ngha
Cho php kim tra nh sn xut modem GSM ang c s dng.
C php
AT+ CGMI
Gii thch
- AT l mt t kha bt u ca bt c cu lnh no thuc tp lnh AT ( AT
command).
- CGMI l yu cn xc thc nh sn xut m cliens gi n server.
- Sau khi nhn c yu cu, server s kim tra nu ng th n s tr v nh sn
xut ca mnh hay l chun lm vic ca n theo nh sn xut no.
Thng th i vi chun GSM 07.07 kt qu tr v i vi cu lnh CGMI s l
mt chui l tn nh sn xut nh : Ubinetics Ltd.
2. AT+ CGMM kim tra model h thng

ngha

Cho php ngi lp trnh kim tra model lm vic ca modem GSM.
C php
AT+CGMM
Gii thch

121
Khi modem nhn c mt c php lnh ng nh th ny n s gi tr v mt chui
k t l tn ca cc model.
C mt s model thng dng nh:GDC200,GC201,GA100.
3. AT+CGMR xc thc nh sn xut.
ngha
Xc thc thng tin chnh xc v nh sn xut. Kt qu nhn c la chi tit hn so
vi AT+CGMI.
C php
AT+ CGMR
Gii thch
Modem s tr v mt cch chnh xc nht nh sn xut ca mnh. Vic xc nhn li
i khi vn thng hay s dng khi m kt qu tr v t AT CGMI cha c r dng
v chnh xc.
Kt qu tr v vi cu lnh ny s l mt revision chnh xc v nh sn xut ca
modem dng chui k t.
4. AT+CGSN kim tra serial modem
ngha
Cho php ly c s serial ca tng modem gip ch cho vic nhn thc modem.
C php
AT+CGSN
Gii thch
Sau khi lnh thc hin thnh cng modem s tr v chnh xc s serial ca mnh di
dng chui k t. S serial ca modem tr v thng c dng :
02-GDC200-xxxxxxx
02-GC201-xxxxxxx
02-GA100-xxxxxxx
Trong xxx s l serial ca modem, phi trc s l model m n s dng.
5. AT+CSCS thit lp k t thit b u cui.

122
ngha
La chn b k t c h tr bi modem, chuyn di k t gia modem v thit b
u cui.
C mt s kiu, chun k t c s dng nh : GSM alphabet( GSM), international
reference alphabet ( IRA), hay kiu HEX.
C php
- Kim tra danh sch b k t c modem h tr
AT+CSCS=?
Nu modem nhn c cu lnh ng th n s tr v danh sch cc kiu k t m n
h tr theo dng CSCS: <danh sch kiu c h tr >
- Kim tra b k t ang c s dng
AT+CSCS?
Kt qu ca cu lnh ny l modem s tr v kiu k t m modem ang s dng c
dng CSCS: <kiu ang c s dng>
- Thit lp b k t s dng cho modem
AT CSCS=<kiu thit lp>
<kiu thit lp> c th l GSM,IRA,HEX.
6. AT+CIMI Nhn dng thu bao di ng
C php
AT+CIMI
Gii thch
Kt qu tr v ca lnh ny s l s nhn dng thu bao di ng quc t ca modem
m chng ta s dng(imsi). Kt qu ny ch nhn c khi n tn ti trong mt mng c
th, hay cng c th hiu l thu bao ang tnh trng online.
7. AT+WS46 La chn mng
ngha
Cho php la chn mt mng di ng modem hot ng.
C php

123
- Kim tra mng di ng tn ti
AT+WS46=?
- La chn mng cho modem hot ng
AT+WS46=<n>
Gii thch
Trn thc t mng di ng ca chng ta bao gm cc nh cung cp khc nhau, mi
thu bao s dng mt nh cung cp mng ca mnh. V vy m trc khi kt ni thu
bao di ng lun cn phi tm c s hin din ca cc nh cung cp dch v qua
la chn nh cung cp dch v cho mnh. V thu bao cn phi la chng kiu mng t
bo cho mnh.
Trc ht tm kim, kim tra xem ti khu vc ca thu bao c nhng kiu mng t
bo no ta s dng lnh :
AT+WS46=?
Cu lnh ny s tr v danh sch cc mng t bo di dng s t nhin. i vi
mng GSM th kt qu s l s 12.
Tng t la chn mng ta s dng lnh:
AT+WS46=<n>
Vi n l s hiu ca mng. GSM=12.

4.2 Cc lnh AT iu khin cuc gi


4.2.1. ATD quay s thit lp cuc gi
ngha
Cho php quay s thit lp cuc gi n mt thu bao khc vi tn hiu iu khin
ty chn.
C php
ATD<n>[<msg>][;]
Gii thch
Vi <n> l s thu bao ch cn gi ti,
<msg> l cc k t iu khin nh :

124
- , dng quay s.
- T : b qua chung quay s
- P : b qua xung quay s.
- ! : ng k gi li.
- W : ch chung quay s.
- @ : ch tr li.
- I
: hn ch .
Cc cuc gi nu k t c gi sau <cr> nhng trc khi nhn c bn tin kt ni
OK th cuc gi s b hy.
Khi thc hin lnh ATD<n>[<msg>][;] ta c th nhn c mt s m tr li di
dng s t 0 n 8. Trong
- 0 (OK) : lnh thc hin thnh cng, khng c li.
- 1 (CONNECT) : kt ni c thit lp (ATX=0).
- 2 (RING) : chung bo
- 3 (NO CARRIER) : cuc gi tht bi hoc mt kt ni.
- 4 (ERROR) : lnh khng hp l hoc qu di.
- 7 (BUSY) : thu bao gi ti ang bn khng th tip nhn cuc gi.
- 8 ( NO ANSWER ) : cuc gi tht bi do thi gian ch kt ni qu lu
4.2.2. ATD> quay s t danh b in thoi
ngha
Cho php quay s thit lp cuc gi vi ch n l mt s ch c lu trong b
nh danh b in thoi.
C php
ATD><mem><n>[l][;]
Gii thch
Cu lnh : ATD><mem><n>[l][;] s thc hin vic quay s thit lp mt cuc gi
n mt thu bao m s a ch c ly trong danh b in thoi c ghi r . Nu

125
k t gi sau <cr> trc khi nhn c thng bo kt ni hoc bn tin OK th cuc gi
s b hy.
Vi cu lnh trn ty chn mem c th l cc s khn cp hay l cc s c lu
trong dnh b trn SIM. N c th nhn cc gi tr l EN(Enmergency number) hoc
AD (SIM phone book).
Ty chn <n> chnh l v tr b nh ca s in thoi dng quay s
4.2.3. Quay s hin thi trn danh b in thoi
quay s thit lp cuc gi n mt s in thoi hin hnh trn danh b in thoi
ta s dng c php lnh:
ATD><n>[l][;]
Tng t nh vic quay s c la chng t in thoi ta ch cn ch ra a ch hay
v tr ca s in thoi cn gi n trong danh b in thoi tng ng vi ty trn <n>
trong cu lnh trn tin hnh quay s n mt thu bao c lu tr trong danh b
in thoi.
4.2.4. ATD+CHUP Ngt cuc gi
ngha
Cho php kt thc cuc gi ang c kch hot.
C php
ATD+CHUP
Gii thch
Khi thc hin lnh thnh cng, tt c cc cuc gi ang hot ng s b treo ng
thi tit hnh kt thc cuc gi mt cch lun phin.
4.2.5. AT+CBST La chn kiu dch v
ngha
Cho php thit lp cc thng s dng cho cuc gi ti, cc gi tr ny cng c
dng chm dt mt cuc gi d liu.
C php
- Kim tra danh sch c h tr

126
AT+CBST=?
- Kim tra trng thi hin ti
AT+CBST
- Thit lp cc tham s dng cho dch v
AT+CBST=:[<speed>[,<name>[,<ce>]]]>
Gii thch
AT+CBST=?
Khi thc hin lnh thnh cng s tr v danh sch cc cu hnh c h tr di
dng xu nh sau : CBST:<speed><name><ce>
Trong speed c th l 7 (9600bps_V32), 12(9600bps_V34), 14(14400bps_V34),
71(9600bps_V110), 75(14400bps_V110).
Name = 0, kt ni d liu khng ng b.
<ce> c th nhn gi tr 0 hoc 1 thit lp cho qu trnh sa li din ra transparent
hay non-transparent.
i vi kt ni gi d liu FAX ch c h tr tc 9600 bps.
4.2.6. AT+CRLP Giao thc lin kt v tuyn
ngha
Cho php kim tra, thit lp cc tham s dng cho cuc gi d liu khng trong sut.
C php
- Kim tra danh sch cc tham s c h tr
AT+CRLP=?
- Kim tra trng thi hin ti hay cu hnh cc tham s
AT+CRLP?
AT+CRLP=<parameter>
4.2.7. AT+CR iu khin phn hi dch v
ngha
Cho php ty chn nhn hoc khng nhn phn hi dch v. Nu trng thi kch
hot modem s truyn cc phn hi dch v v thit b u cui d liu khi thit lp

127
tc truyn, cu hnh truyn trc khi cc m kt ni cui cng c tr v.
C php
AT+CR=?
Gii thch
Ging nh cc lnh iu khin cuc gi khc, vic iu khin phn hi dch v cng
cho php ta kim tra danh sch h tr, kim tra trng thi hin ti, thit lp ch .
AT+CR=? nu thc hin thnh cng lnh ny s tr v cc ch c h tr di
dng xu theo dng CR: <danh sch mode>
Thng th c 2 mode chnh l : 0 disnable reporting
1 enable reporting
kim tra mode hin ti ta ch vic s dng c php lnh : AT+CR?
Tng t thit lp mode ta ch vic gi n modem lnh : AT+CR=<mode>
4.2.8. AT+CEER Bo co li m rng
ngha
Lnh ny tr v thng tin di dng text, n l cc thng tin m rng chi tit hn v
cc li gy ra vic tht bi trong mt cuc gi hay l cc li lm thay i cuc gi.
C php
AT+CEER
Gii thch
Khi lnh c thc hin thnh cng bn tin tr v s c dng: CEER:<report>.
Gi s khi quay s gi ti mt thu bao khc m thu bao khng th tip nhn cuc
gi v ang c mt cuc gi khc th bn tin tr v ca lnh ny s l:
CEER: user busy , user busy chnh l <report>.
4.2.9. AT+CRC M kt qu
ngha
Lnh dng iu khin cho ngi s dng bo co cc nh dng m rng thng qua
vic thit lp cuc gi ca mt thit b di ng.
C php

128
AT+CRC=<mode>
<mode> y c th l 0 hoc 1, tng ng vi vic cho php hoc khng.

4.3 Cc lnh lin quan n dch v mng


4.3.1. AT+CNUM,subscriber number
ngha
Khi thc hin lnh ny s tr v MSIDNS lin quan n thu bao. Nu thu bao
c cc MSIDNS khc nhau cho cc dch v khc nhau th mi MSIDNS s c tr v
trn mt dng.
C php
AT+CNUM
Gii thch
Nu thc hin thnh cng s nhn c kt qu tr v c dng:
CNUM: [<alpha>],<number>,<type>,<speed>,<service>[,<itc>]<cr><lf>
Trong alpha: l ty trn v kiu chui s lien quan n s thu bao
Number: chui s thu bao in thoi c dnh dng theo kiu ca ty
trng <type>.
Type: kiu a ch dng s nguyn.
Speed: thng tin v tc
Service: thng tin v dch v ,ch hot ng ng b hay khng ng
b.

4.3.2. AT+CREG ng k mng


ngha
Hin th trng thi ng k mng.
C php
- Kim tra cc ch c h tr
AT+CREG=?

129
- Kim tra ch hin ti
AT+CREG?
- Thit lp ch hin ti
AT+CREG=<n>
3.3.3. AT+COPS La chn nh cung cp
ngha
Cho php ng k, hin th cc nh cung cp mng hp l.
C php
- Kim tra danh sch c h tr
AT+COPS=?
- Kim tra trng thi hin ti
AT+COPS?
- Thit lp, ng k nh cung cp mng.
AT+COPS=[<mode>[,<format>[,<oper>]]]
Gii thch
Tham s mode l kiu ng k mng m modem s s dng. N c th l t
ng hoc th cng ty thuc vo thit lp ca ngi qun tr.
Tham s format l nh dng k t ca oper
oper th hin nhn dng ca nh cung cp vi nh dng c thit lp bi
format
4.3.4. AT+CLCK Kha hoc m kha
ngha
Cho php kha hoc m mng cho modem, mt khu l cn thit cho hnh ng
ny.
C php
AT+CLCK=<fac>,<mode>[,<password>]
Gii thch
<fac> cho php la chn hnh ng iu khin.

130
<mode> ch kha/m kha i vi <fac>
<password> mt khu cn thit dng cho thao tc thay i.

4.4. Cc lnh AT iu khin tin nhn SMS


4.4.1 AT+CMGF nh dng SMS
ngha
Lnh ny cho php thit lp nh dng SMS m modem s dng, thit lp mt
nh dng SMS cho modem th nh dng cn c h tr bi modem.
C php
- Kim tra cc nh dng SMS c h tr
AT+CMGF=?
- Kim tra nh dng SMS m modem ang s dng
AT+CMGF?
- Thit lp nh dng SMS cho modem
AT+CMGF=<mode>
Gii thch
<mode> y chnh l ch nh dng SMS m modem s s dng. C 2
<mode> c bn l 0 (PDU) v 1(Text).
Trc khi c mt thao tc iu khin lin quan n SMS ta cn cu hnh ch
SMS cho modem trc khi iu khin.
4.4.2. AT+CMGW Ghi SMS vo b nh sim card.
ngha
Cho php ghi mt tin nhn vn bn vo b nh lu tr ca sim card. Nu thnh cng
s tr v b tr lu tin nhn.
C php
AT+CMGW=<number>
Gii thch
Vi <number> l s thu bao cn gi n, khi thc hin lnh thnh cng modem

131
s tr v k t >. Sau ta c th nhp ni dung tin nhn cn lu tr v kt thc bng
Ctrl+z.
4.4.3. AT+CMSS Gi tin nhn t b nh Sim card
ngha
Cho php iu khin modem GSM gi mt tin nhn c lu trong b nh Sim
card.
C php
AT+CMSS=<index>,<number><cr>
Gii thch
Vi AT+CMSS, <index> chnh l ch s ca tin nhn c lu trong b nh Sim
card, <number> l s thu bao cn gi tin nhn,<cr> m kt thc cu lnh.
V d gi tin nhn n s 0123456789 c lu trong b nh ti v tr s
2 ta thc hin c php lnh:
AT+CMSS=2,0123456789<cr>
4.4.4. AT+CMGD Xa tin nhn trong b nh lu tr
ngha
Xa mt tin nhn ang lu tr trong b nh in thoi. V tr b nh m tin nhn
lu tr l cn thit cho cu lnh.
C php
AT+CMGD=<index>
Trong <index> chnh l ch s, v tr lu tr ca tin nhn.
V d xa tin nhn ti v tr lu tr s 3 ta s dng c php lnh:
AT+CMGD=3
4.4.5. AT+CMGL Lit k tin nhn
ngha
Cho php lit k ton b cc tin nhn SMS cha c trn b nh.
C php
AT+CMGL

132
Lu
Ta c th s dng ty chn ALL lit k ton b tin nhn c trong b nh
hin ti. v d: AT+CMGL=ALL

4.5. Gii thiu module GSM MC35i

4.5.1 Gii thiu


Module MC35i l mt modem GSM hot ng trn nn mng 900MHz v 1800MHz
do Sieamen sn xut. N h tr GPRS v cc tinh nng c bn ca mt in thoi di
ng nh nghe, gi v nhn tin.
GSM Modem loi Siemens MC35i c kch thc nh - gn, lp t n gin nhanh
chng, tch hp nhiu tnh nng v kh nng hot ng lu di trong iu kin bnh
thng l nhng im ni bt ca Modem MC35i. iu ny mang li nhng tin ch i
vi cc thit b in thoi di ng, my tnh xch tay, thit b a phng tin... v c
bit l kh nng tch hp d dng vi PDA, cc thit b di ng thu nh...
Module MC35i p ng c gii php GSM/GPRS cho hiu sut cao vi: Vi x
l bng tn c s, in p cung cp ASIC, tn s v tuyn in bao gm mt b khuch
i cng sut v giao din anten. Cc phn mm MC35i c lu tr trong mt thit b
nh flash. B nh b sung SRAM cho php MC35i p ng yu cu kt ni GPRS.
Cc giao din vt l cho cc ng dng di ng c thc hin thng qua mt kt
ni ZIF. ZIF gm c 40 chn, cho php kim sot cc khi, truyn d liu v tn hiu m
thanh, cc ng in p cung cp. Ngoi ra, module GSM MC35i cung cp giao din
ni tip tch hp vi giao din Man-Machine (MMI), iu khin bi tp lnh AT v h
tr tc truyn ln ti 230 kbps.

133
Module gsm mc35i

4.5.2. Cu trc, chc nng Module GSM MC35i


4.5.2.1 S khi MC35i

134
S khi module gsm mc35i
Da vo s khi ta c th thy module gsm mc35i p ng c cc tnh nng c
bn ca mt in thoi di ng nh nghe, gi, nhn tin.
Khi RF Power Amplifier v RF secsion gip module mc35i khuch i tn hiu v
tuyn thu c, la chon gii tn hot ng vi Baseband Controller. B nh SRAM hay
b nh ngoi c th dng lu tr d liu, chng trnh iu khin, thng tin mng,
thng tin thu bao....

4.5.2.2. Thnh phn, chc nng Module GSM MC35i


Da vo s khi ta c th thy module GSM MC35i gm cc khi chnh sau:
- Khi RF

135
- Khi bng tn c s
- Ngun
- B nh
- Khi giao tip(ZIF,SIM...)
* Khi RF ca module GSM MC35i:
Khi ny c chc nng thu pht tn hiu RF trn di tn ca GSM 900MHz/1800MHz.
Khi khuch i cng sut RF:
IC cng sut pht c iu khin thay i cng sut pht thng qua lnh APC
(Auto Power Control) ra t IC cao trung tn. Mch APC c kh nng t ng iu
chnh cng sut pht.
Khi kt ni anten:
Khi ny c chc nng bc x hoc thu nhn sng in t. Phc v hot ng ca
module GSM MC35i.
* Khi bng tn c s GSM:
B iu khin hot ng GSM tn s 26MHz:
Bao gm CPU (Center Processor Unit n v x l trung tm). CPU thc hin
cc chc nng nh: iu khin tt m ngun chnh; chuyn ngun gia ch thu v
pht; iu khin ng b s hot ng gia cc IC; iu khin khi thu pht sng;
Qun l cc chng trnh trong b nh; iu khin truy cp SIM Card...
Ngun cung cp:
Khi ngun c chc nng chnh l: iu khin tt m ngun; Chia ngun thnh
nhiu mc ngun khc nhau phc v cho cc khi ca module; n nh ngun cung
cp cho cc ti tiu th...
B nh:
CPU hot ng theo cc m lnh c lp trnh sn np vo trong b nh. CPU s
khng hot ng c nu khng c phn mm np trong b nh. Vi x l khi hot
ng s truy cp v ly ra cc phn mm iu khin trong IC nh FLASH, thc hin

136
gii m to ra cc lnh iu khin iu khin cc b phn khc ca module hot
ng.
SRAM: (Syncho Radom Acccess Memory):
L b nh trung gian lu tr tm cc d liu trong qu trnh x l ca CPU. Nu
b nh SRAM hng th CPU s khng hot ng c, khi ta tt ngun th d liu
trong SRAM s mt.
Giao tip ng dng (ZIF connector)
MC35i c trang b mt kt ni ZIF gm 40 chn cho vic kt ni vi nhng ng
dng di ng. Cc chn chc nng ca ZIF gm:
Ngun cung cp
Giao tip RS232
Hai giao din m thanh
Giao tip SIM
Chn In / Out K hiu M t chc nng

1-5 I BATT+ Ngun cung cp

6-10 Ground GND Ni t

11-12 I POWER Sc ngun

13 O VDD Ngun cung cp ngoi

14 I BATT_TEMP Nhit pin

15 I /IGT Chy

16 O RING0_TXD1 Kt ni RS232

17 O /RING0_TXD1 Kt ni RS232

18 O /RxD0 Kt ni RS232

19 I /TxD0 Kt ni RS232

20 O /CTS0 Kt ni RS232

137
21 I /RTS0 Kt ni RS232

22 I /DTR0 Kt ni RS232

23 O /DCD0 Kt ni RS232

24 I CCIN SIM

25 O CCRST SIM

26 IO CCIO SIM

27 O CCCLK SIM

28 O CCVCC SIM

29 Ground CCGND SIM

30 I/O VDDLP Sao lu RTC

31 I /EMERGOFF Ngt ngun

32 O SYNC ng b

33 O EPP2 Audio

34 O EPN2 Audio

35 O EPP1 Audio

36 O EPN1 Audio

37 I MICP1 Audio

38 I MICN1 Audio

39 I MICP2 Audio

40 I MICN2 Audio
Bng Chc nng chn ca ZIF

i vi giao tip SIM: B vi x l bng tn c s c mt giao din SIM tch hp


tng thch vi tiu chun ISO 7816. y l ng ni vo cc giao din ch (ZIF ni)
c kt ni vi mt th SIM bn ngoi. Su cht kt ni ZIF c dnh ring cho
giao din SIM. Cc pin CCIN c nhim v pht hin xem c sim trong khay hay khng.

138
Tn hiu M t chc nng

CCGND Ni t

Th chip ng h, vi tc xung nhp khc nhau c th c t


CCCLK
trong b vi x l bng tn c s.

CCVCC Cung cp in p t PSU-ASIC

CCIO Dng d liu u vo v u ra.

Th chip c thit lp li, c cung cp bi b x l bng tn


CCRST
c s.

- Nhp vo b x l bng gc pht hin mt khay th SIM vo


ngn cha.
- Cc pin CCIN l bt buc cho cc ng dng cho php ngi s
CCIN
dng loi b cc th SIM trong qu trnh hot ng.
Cc pin CCIN l ch s dng cng vi mt th SIM. N khng
phi c s dng cho bt k mc ch khc.

Bng Chc nng chn ca giao tip SIM

4.5.2.3 Hot ng ca MC35i


MC35i gm 3 ch hot ng:
- Ch bnh thng
- Ch tt ngun
- Ch bo ng

Ch hot ng bnh thng


- GSM / GPRS SLEEP
Thit lp cc ch khc nhau tit kim nng lng vi tp lnh AT + CFUN.
Ch ny ang hot ng mc tit kim nng lng n mc ti thiu. Nu
module ny c ng k vi mng GSM trong ch IDLE, n vn cn trong ch
SLEEP, ng k v phn trang t cc trm BTS.

139
Tit kim in c th c la chn cc cp khc nhau nh v hiu ha giao
din AT hoc kch hot li giao din AT cho php ngi s dng c th truy cp
thng xuyn cc lnh AT.
- GSM IDLE
Khi kch hot ch ny, sau khi ng k vi mng GSM, module c th c
phn trang t cc trm BTS v sn sng gi v nhn tn hiu.
- GSM TALK
Kt ni gia hai thu bao c tin hnh. Cng sut tiu th ph thuc vo cc
thit lp mng nh DTX on/off, FR/EFR/HR, anten...
- GPRS IDLE
Module sn sng chuyn d liu GPRS, nhng khng c d liu hin ang
c gi hoc nhn c. Cng sut tiu th ph thuc vo cc thit lp mng v cu
hnh GPRS.
- Qu trnh truyn d liu GPRS c tin hnh. Cng sut tiu th ph thuc vo
cc thit lp mng (v d nh kim sot mc nng lng), ng xung ng ln
/ d liu gi v cu hnh GPRS.

Ch tt ngun
Bnh thng thit k s tt sau khi gi lnh AT^SMSO hay ch khn cp ra thng
qua pin /EMERGOFF. Cc ngun ASIC (PSU_ASIC) ngt kt ni cung cp in p t
phn baseband ca mch in. Ch c mt iu chnh in p trong PSU_ASIC ang hot
ng to nng lng cho RTC

Ch bo ng
Hn ch hot ng theo chc nng a ra cnh bo RTC trong khi module ny l
ch Power Down. Trong ch bo thc, module khng c ng k t mng GSM,
do s gii hn s lnh AT c th truy cp.

4.6 Lp trnh giao tip MC35i vi vi iu khin


Nh trnh by, MC35i cung cp cho chng ta cc giao din ghp ni, iu khin
c bn. Vic giao tip mc35i vi cc microprocess c th thc hin thng qua phng

140
php truyn thng ni tip.
Trn thc t c nhiu loi modem gsm h tr cc chun truyn thng khc nhau, da
vo ta c th la chn mt phng php giao tip ph hp cu hnh cho modem
gsm.
Khi s dng vi iu khin giao tip vi mc35i iu khin cu hnh cho modem
mc35i thc cht l vic truyn v nhn cc tin hiu iu khin, tn hiu phn hi ti v
t mc35i tr v.
Vy khi giao tip MC35i vi vi iu khin ta cn ch cc c im sau:
- Chun truyn thng s dng cho vic giao tip : RS232.
- iu khin da trn tp lnh AT theo chun GSM 07.07 hoc GSM 07.05.
Mt s quy tc khi s dng tp lnh AT trong lp trnh giao tip modem GSM:
Quy tc 1:
Tt c cc dng lnh phi bt u vi "AT" v kt thc bi mt k t tr v no
k hiu l <CR>, thng thng l k t Enter. Trong chng trnh HyperTerminal ca
Microsoft Windows khi kim tra mt thit b c kt ni vi my tnh s dng tp lnh
AT th kt thc mt lnh AT c th nhn phm Enter trn bn phm.

Th d: xem danh sch tt c cc tin nhn SMS trong cha c c lu tr trong b


nh ca thit b, g "AT+CMGL" v cui cng nhn k t kt thc th dng c php nh
sau:

AT + CMGL <CR>

Quy tc 2:

Mt dng lnh c th cha nhiu hn mt lnh AT, nhng ch c lnh u tin


c bt u bng "AT". Mi lnh c cch nhau bi du chm phy.

Th d: lit k tt c cc tin nhn SMS cha c c trong b nh v ly tn


nh sn xut thit b th g lnh nh sau:

AT+CMGL; + CGMI <CR>

Li s xy ra nu c hai lnh AT c bt u vi "AT" nh sau:

AT+CMGL; AT+ CGMI <CR>

141
Quy tc 3: Mt chui c t gia cp du nhy kp.

Th d: c tt c cc tin nhn SMS t b nh lu tr trong ch vn bn cn


phi ch nh chui "ALL" trong lnh AT+CMGL, nh sau:

AT +CMGL = "ALL" <CR>

Quy tc 4:

Thng tin tr li v m kt qu lun lun bt u v kt thc vi mt kh t tr v


v k t linefeed (k hiu l LF).

Th d: Sau khi gi dng lnh "AT+ CGMI <CR>" n cc thit b di ng, cc


thit b di ng s tr li thng tin phn hi dng nh sau:

< C R > < L F > N o k i a < C R > < L F >


<CR><LF>OK<CR><LF>

142

You might also like