Nội dung chơng trình

Một phần của tài liệu LUẬN VĂN VIỄN THÔNG THỦ TỤC NHẬN DẠNG TỰ ĐỘNG THIẾT BỊ NBDP – CHẾ ĐỘ ARQ (Trang 42 - 48)

Program Chu-nhan-dang; Uses crt;

Const lsovao = 10; { So ky tu nhan dang} lxaura = 5;

lsvao = 10; { So ky tu nhan dang} lxra = 4;

lsv = 20; {So ky tu nhan dang} lsr = 7;

Type cmangchu = Array [1..lsovao, 1..lsovao] of char; xaukytu = String [lxaura];

cmc = Array [1..lsvao, 1..lsvao] of char; xkytu = String [lxra];

cmchu = Array [1..lsv] of Char; nmangso = Array [1..lsr] of Integer; xaukt = String [lsv];

Const

nchu: cmc = (‘V’,’X’,’Q’,’K’,’M’,’P’,’C’,’Y’,’F’,’S’);

nc: cmchu = (‘V’,’X’,’Q’,’K’,’M’,’P’,’C’,’Y’,’F’,’S’, nc: cmchu = (‘V’,’X’,’Q’,’K’,’M’,’P’,’C’,’Y’,’F’,’S’,

’ ’T’,’B’,’U’,’E’,’O’,’I’,’R’,’Z’,’D’,’A’);T’,’B’,’U’,’E’,’O’,’I’,’R’,’Z’,’D’,’A’); nchu1: cmangchu = ((‘T’,’V’,’V’,’V’,’T’,’T’,’T’,’V’,’V’,’V’), (‘B’,’X’,’X’,’X’,’B’,’B’,’B’,’X’,’X’,’X’), (‘U’,’Q’,’Q’,’Q’,’U’,’U’,’U’,’Q’,’Q’,’Q’), (‘E’,’K’,’K’,’K’,’E’,’E’,’E’,’K’,’K’,’K’), (‘O’,’M’,’M’,’M’,’O’,’O’,’O’,’M’,’M’,’M’), (‘I’,’P’,’P’,’P’,’I’,’I’,’I’,’P’,’P’,’P’), (‘R’,’C’,’C’,’C’,’R’,’R’,’R’,’C’,’C’,’C’), (‘Z’,’Y’,’Y’,’Y’,’Z’,’Z’,’Z’,’Y’,’Y’,’Y’), (‘D’,’F’,’F’,’F’,’D’,’D’,’D’,’F’,’F’,’F’), (‘A’,’S’,’S’,’S’,’A’,’A’,’A’,’S’,’S’,’S’)); nchu2: cmangchu = ((‘V’,’T’,’V’,’V’,’T’,’V’,’V’,’T’,’T’,’V’), (‘X’,’B’,’X’,’X’,’B’,’X’,’X’,’B’,’B’,’X’), (‘Q’,’U’,’Q’,’Q’,’U’,’Q’,’Q’,’U’,’U’,’Q’), (‘K’,’E’,’K’,’K’,’E’,’K’,’K’,’E’,’E’,’K’), (‘M’,’O’,’M’,’M’,’O’,’M’,’M’,’O’,’O’,’M’), (‘P’,’I’,’P’,’P’,’I’,’P’,’P’,’I’,’I’,’P’), (‘C’,’R’,’C’,’C’,’R’,’C’,’C’,’R’,’R’,’C’), (‘Y’,’Z’,’Y’,’Y’,’Z’,’Y’,’Y’,’Z’,’Z’,’Y’), (‘F’,’D’,’F’,’F’,’D’,’F’,’F’,’D’,’D’,’F’), (‘S’,’A’,’S’,’S’,’A’,’S’,’S’,’A’,’A’,’S’)); nchu3: cmangchu = ((‘V’,’V’,’T’,’V’,’V’,’T’,’V’,’T’,’V’,’T’), (‘X’,’X’,’B’,’X’,’X’,’B’,’X’,’B’,’X’,’B’), 42

(‘Q’,’Q’,’U’,’Q’,’Q’,’U’,’Q’,’U’,’Q’,’U’), (‘K’,’K’,’E’,’K’,’K’,’E’,’K’,’E’,’K’,’E’), (‘M’,’M’,’O’,’M’,’M’,’O’,’M’,’O’,’M’,’O’), (‘P’,’P’,’I’,’P’,’P’,’I’,’P’,’I’,’P’,’I’), (‘C’,’C’,’R’,’C’,’C’,’R’,’C’,’R’,’C’,’R’), (‘Y’,’Y’,’Z’,’Y’,’Y’,’Z’,’Y’,’Z’,’Y’,’Z’), (‘F’,’F’,’D’,’F’,’F’,’D’,’F’,’D’,’F’,’D’), (‘S’,’S’,’A’,’S’,’S’,’A’,’S’,’A’,’S’,’A’)); nchu4: cmangchu = ((‘V’,’V’,’V’,’T’,’V’,’V’,’T’,’V’,’T’,’T’), (‘X’,’X’,’X’,’B’,’X’,’X’,’B’,’X’,’B’,’B’), (‘Q’,’Q’,’Q’,’U’,’Q’,’Q’,’U’,’Q’,’U’,’U’), (‘K’,’K’,’K’,’E’,’K’,’K’,’E’,’K’,’E’,’E’), (‘M’,’M’,’M’,’O’,’M’,’M’,’O’,’M’,’O’,’O’), (‘P’,’P’,’P’,’I’,’P’,’P’,’I’,’P’,’I’,’I’), (‘C’,’C’,’C’,’R’,’C’,’C’,’R’,’C’,’R’,’R’), (‘Y’,’Y’,’Y’,’Z’,’Y’,’Y’,’Z’,’Y’,’Z’,’Z’), (‘F’,’F’,’F’,’D’,’F’,’F’,’D’,’F’,’D’,’D’), (‘S’,’S’,’S’,’A’,’S’,’S’,’A’,’S’,’A’,’A’)); {Khai bao bien Global}

Var c1,c2,c3,c4,t: Char; Vao: Xaukytu; x,y,a: Integer; Vo: Xkytu;

ck1,ck2,ck3,d1,d2,d3,d4,d5,d6,d7: Integer; va,i0, i1, i2, i3, i4, i5, i6, i7: Longint; xaura: xaukt;

{Thu tuc chuyen doi tu 5 chu so selcall sang 4 chu nhan dang} Procedure chdoi(s: Xaukytu; Var c1,c2,c3,c4: Char);

Begin c1:= nchu1[ord(s[2] – ord(‘0’) + 1][ord(s[1]) – ord(‘0’) + 1]; c2:= nchu2[ord(s[3] – ord(‘0’) + 1][ord(s[1]) – ord(‘0’) + 1]; c3:= nchu3[ord(s[4] – ord(‘0’) + 1][ord(s[1]) – ord(‘0’) + 1]; c4:= nchu4[ord(s[5] – ord(‘0’) + 1][ord(s[1]) – ord(‘0’) + 1]; End;

{Thu tuc nhap 5 so ID}

Function Nhap(x,y: Integer): Xaukytu; Var i: Integer; s: Xaukytu; c: Char; Begin Clrscr;

Gotoxy(x+14,y); Clreol;

Write(‘CHUONG TRINH CHUYEN DOI TU’); Gotoxy(x+7,y+2); Clreol;

Write(‘5 SO NHAN DANG SANG TIN HIEU NHAN DANG 4 CHU’); Gotoxy(x+14,y+4); Clreol; Write(‘S.V thuc hien: VO THANH TUAN’); Gotoxy(x+14,y+8); Clreol; Write(‘Nhap 5 so nhan dang : ID=’);

i:= 0; s:=’ ‘;

Repeat Gotoxy(x+40+i,y+8); Clreol; c:= Readkey;

If (‘0’<=c) and (c<=’9’) then

begin i:= i+1; s:= s+c; write(c); end

else if ((c = chr(8)) and (i >= 1) then i:= i-1; Until i = 5; Writeln; Nhap := s;

End;

{Hien thi ra man hinh}

Begin

Gotoxy(x+8,y+7); Clreol; Writeln(‘---KET QUA---‘)

Gotoxy(x+8,y+9); Clreol; Writeln(‘+ Tin hieu nhan dang la:’,c1,c2,c3, c4); Gotoxy(x+8,y+10); Clreol; Writeln(‘+ Khoi goi so 1:’,c1:2,’(RQ)’:7,c2:4); Gotoxy(x+8,y+11); Clreol; Writeln(‘+ Khoi goi so 2:’,c3:2,c4:5,’(RQ)’:7); Gotoxy(x+8,y+13); Clreol; Writeln(‘---‘); Gotoxy(x+8,y+15); Clreol;

End;

{Thu tuc chuyen doi tu 4 chu so selcall sang 4 chu nhan dang} Procedure cd(s: Xkytu; Var c1,c2,c3,c4: Char);

Begin c1:= nchu[ord(s[1] – ord(‘0’) + 1]; c2:= nchu[ord(s[2] – ord(‘0’) + 1]; c3:= nchu[ord(s[3] – ord(‘0’) + 1]; c4:= nchu[ord(s[4] – ord(‘0’) + 1]; End;

{Thu tuc nhap 4 so ID}

Function Nhp(x,y: Integer): Xkytu; Var i: Integer; s: Xkytu; c: Char; Begin Clrscr;

Gotoxy(x+14,y); Clreol;

Write(‘CHUONG TRINH CHUYEN DOI TU’); Gotoxy(x+7,y+2); Clreol;

Write(‘4 SO NHAN DANG SANG TIN HIEU NHAN DANG 4 CHU’); Gotoxy(x+14,y+4); Clreol; Write(‘S.V thuc hien: VO THANH TUAN’); Gotoxy(x+14,y+8); Clreol; Write(‘Nhap 4 so nhan dang : ID =’);

i:= 0; s:=’ ‘;

Repeat Gotoxy(x+40+i,y+8); Clreol; c:= Readkey;

If (‘0’<=c) and (c<=’9’) then

begin i:= i+1; s:= s+c; write(c); end

else if ((c = chr(8)) and (i >= 1) then i:= i-1; Until i = 4; Writeln; Nhp := s;

End;

{Hien thi ra man hinh}

Procedure xrmh(x,y: Integer; c1,c2,c3,c4: Char); Begin

Gotoxy(x+8,y+7); Clreol; Writeln(‘---KET QUA---‘)

Gotoxy(x+8,y+9); Clreol; Writeln(‘+ Tin hieu nhan dang la:’,c1,c2,c3, c4); Gotoxy(x+8,y+10); Clreol; Writeln(‘+ Khoi goi so 1:’,c1:2,’(RQ)’:7,c2:4); Gotoxy(x+8,y+11); Clreol; Writeln(‘+ Khoi goi so 2:’,c3:2,c4:5,’(RQ)’:7); Gotoxy(x+8,y+13); Clreol; Writeln(‘---‘); Gotoxy(x+8,y+15); Clreol;

End;

{Thu tuc chuyen doi tu 9 chu so nhan dang MMSI sang 7 chu nhan dang} Procedure cdoi(n: Longint; Var xaura: xaukt; Var ck1,ck2,ck3: Integer);

Var r: nmangso; i: Integer; Begin

For i := 1 to 7 do begin

i0 := n;

r[1] := n mod 20; i1 := n div 20; r[2] := i1 mod 20; i2 := i1 div 20; r[3] := i2 mod 20; i3 := i2 div 20; r[4] := i3 mod 20; i4 := i3 div 20; r[5] := i4 mod 20; i5 := i4 div 20; r[6] := i5 mod 20; i6 := i5 div 20; r[7] := i6 mod 20; i7 := i6 div 20; xaura [8-i] := nchu [r[i] + 1]; end;

xaura [0] := Chr(7);

d1 := r[1]; d2 := r[2]; d3 := r[3]; d4 :=r[4]; d5 := r[5]; d6 := r[6]; d7 := r[7]; {Tinh check-sum numbers}

ck1 := (r[7] + r[6] + r[5]) mod 20; ck2 := (r[5] + r[4] + r[3]) mod 20; ck3 := (r[3] + r[2] + r[1]) mod 20; End;

{Thu tuc nhap 9 so ID}

Function Nh(x,y: Integer): Longint; Var i: Integer; n: Longint; c: Char; Begin

Clrscr;

Gotoxy(x,y-3); Clreol;

Write(‘1. Nhap 9 so nhan dang: ID = ‘); i := 0; n := 0;

Repeat

Gotoxy(x+30+i,y-3); Clreol; c := Readkey;

If (‘0’ <= c) and (c<=’9’) then begin i := i-1; n := n div 10; end; Until i = 9;

Writeln; Nh := n; End;

{Thu tuc in ra man hinh}

Procedure XR(x,y: Integer; Xaura: Xaukt; ck1,ck2,ck3: Integer); Begin

Gotoxy(x,y-6); Clreol;

Writeln(‘2. Thuc hien cac phep chia modulo-20:’); Gotoxy(x+4,y-5); Clreol;

Writeln(‘+‘,i0:10,’: 20 duoc I1 =’,i1:8,’;R1 =’,d1:3,’ -> IS7 =’,xaura[7]:2); Gotoxy(x+4,y-4); Clreol;

Writeln(‘+‘,i1:10,’: 20 duoc I2 =’,i2:8,’;R2 =’,d2:3,’ -> IS6 =’,xaura[6]:2); Gotoxy(x+4,y-3); Clreol;

Writeln(‘+‘,i2:10,’: 20 duoc I3 =’,i3:8,’;R3 =’,d3:3,’ -> IS5 =’,xaura[5]:2); Gotoxy(x+4,y-2); Clreol;

Writeln(‘+‘,i3:10,’: 20 duoc I4 =’,i4:8,’;R4 =’,d4:3,’ -> IS4 =’,xaura[4]:2); Gotoxy(x+4,y-1); Clreol;

Writeln(‘+‘,i4:10,’: 20 duoc I5 =’,i5:8,’;R5 =’,d5:3,’ -> IS3 =’,xaura[3]:2); Gotoxy(x+4,y); Clreol;

Writeln(‘+‘,i5:10,’: 20 duoc I6 =’,i6:8,’;R6 =’,d6:3,’ -> IS2 =’,xaura[2]:2); Gotoxy(x+4,y+1); Clreol;

Gotoxy(x,y+2); Clreol;

Writeln(‘3. Tinh cac so kiem tra tong (Check-sum numbers)’); Gotoxy(x+4,y+3); Clreol; Writeln(‘+ CN1 = R7 (+) R6 (+) R5 =’,ck1:2,’ -> CK1 =’,nchu[ck1+1]:2); Gotoxy(x+4,y+4); Clreol; Writeln(‘+ CN2 = R5 (+) R4 (+) R3 =’,ck2:2,’ -> CK2 =’,nchu[ck2+1]:2); Gotoxy(x+4,y+5); Clreol; Writeln(‘+ CN3 = R3 (+) R2 (+) R1 =’,ck3:2,’ -> CK3 =’,nchu[ck3+1]:2); Gotoxy(x+4,y+6); Clreol;

Writeln(‘Luu y: Phep (+) o day la modulo-20 addition.’); Gotoxy(x,y+7); Clreol;

Writeln(‘Ket qua’);

Gotoxy(x+4,y+8); Clreol;

Writeln(‘+ Tin hieu nhan dang la: IS1IS2IS3IS4IS5IS6IS7 = ‘,Xaura: 8); Gotoxy(x+4,y+9); Clreol;

Writeln(‘+ Call block 1: ‘,Xaura[1]:3,’(RQ)’:6,Xaura[2]:2); Gotoxy(x+4,y+10); Clreol;

Writeln(‘+ Call block 2: (RQ)’:2,Xaura[3]:2,Xaura[4]:4); Gotoxy(x+4,y+11); Clreol;

Writeln(‘+ Call block 3: ‘,Xaura[5]:3,Xaura[6]:4,Xaura[7]:4); Gotoxy(x+4,y+12); Clreol;

Writeln(‘+ Tin hieu kiem tra tong la:’); Gotoxy(x+29,y+12); Clreol;

Writeln(‘CK1 CK2 CK3 =’,nchu[ck1+1]:2,nchu[ck2+1]:2,nchu[ck3+1]:2); Gotoxy(x,y+13); Clreol;

End;

{Chuong trinh chinh} BEGIN

t := ‘y’; While (t = ‘y’) or (t =’Y’) do begin

gotoxy(x+10,y+2); clreol;

write(‘CHUONG TRINH CHUYEN DOI TU SO NHAN DANG SANG TIN HIEU NHAN DANG.’);

gotoxy(x+4,y+4);clreol;

write(‘BAN MUON CHUYEN TU 4,5 SO SELCALL HAY 9 SO NHAN DANG MMSI SANG TIN HIEU NHAN DANG? (4/5/9 -> ENTER).’); readln(a);

if a = 4 then begin vo:= Nhp(8,4); cd(vo,c1,c2,c3,c4);

xrmh(8,8,c1,c2,c3,c4); end else if a = 5 then begin vao := nhap(8,4);

chdoi(vao,c1,c2,c3,c4); xrmhinh(8,8,c1,c2,c3,c4); end else if a = 9 then begin

Va:= Nh(8,4);

Cdoi(Va,Xaura,ck1,ck2,ck3); XR(8,8,Xaura,ck1,ck2,ck3);end

else writeln(‘Ban nhap sai roi. Phai nhap lai.’); Write(‘Tiep tuc?(y/n):’); Readln(t);

end;

END.

KếT LUậN

Sau khi nghiên cứu đề tài, em đã phần nào hiểu rõ hơn về phơng thức thông tin NBDP và đa ra một số nhận xét nh sau:

- Do đặc điểm của phơng thức thông tin NBDP là sử dụng mã 7 bit phát hiện lỗi, với các chế thông tin ARQ và FEC nên đã hạn chế đợc những lỗi xảy ra trên đờng truyền làm tăng độ tin cậy của thông tin.

- Việc khai thác đơn giản, mức độ tự động cao.

- Thủ tục nhận dạng diễn ra tự động và tuân theo các khuyến nghị của ITU.

- Trong quá trình liên lạc, khi đờng truyền bị nhiễu mạnh (vợt quá giới hạn cho phép), hai đài sẽ huỷ bỏ đờng truyền và sẽ tự động tiến hành bắt tay lại. Thủ tục này nhằm đảm bảo cho thông tin có độ tin cậy cao.

Bên cạnh đó, phơng thức thông tin NBDP vẫn còn một số hạn chế nhất định nh sau:

- Bộ mã trong phơng thức NBDP chỉ có khả năng phát hiện đợc lỗi mà không xác định đợc bit bị lỗi nên để sửa lỗi yêu cầu bên phát phải phát lại khối thông tin bị lỗi. Do đó, khi liên lạc trong điều kiện bị nhiễu mạnh thì ph- ơng thức thông tin NBDP sẽ không hiệu quả do thời gian liên lạc phải kéo dài.

Tài liệu tham khảo

1- GMDSS Handbook – IMO, Nxb: London, 1995. 2- Radio Regulation 1 & 2 – General secretariat, 1990.

3- FURUNO Operator’s mannual – Furuno Electric Co.. LTD Nishinomiya, Japan.

4- Public Telex Network – IDA Singapore (1999). 5- http://www.ida.gov.sg

Một phần của tài liệu LUẬN VĂN VIỄN THÔNG THỦ TỤC NHẬN DẠNG TỰ ĐỘNG THIẾT BỊ NBDP – CHẾ ĐỘ ARQ (Trang 42 - 48)