· Bộ giao tiếp đường dây thuê bao: nhận tín hiệu chuông từ tổng đài gởi tới đưa đến bộ xử lý chính, điều khiển đóng Relay tạo tải giả (trở kháng đường dây khoảng 600 ohm) để tổng đài nhận biết trạng thái nhấc máy.
· Khối nhận tín hiệu DTMF từ đường dây thuê bao: nhận các số chủ gọi cũng như các số nhấn từ máy điện thoại khách hàng qua tổng đài đưa đến hộp thư đựơc mã hoá dưới dạng DTMF, đưa đến bộ xử lý và sau đó tín hiệu này được chuyển tới máy tính.
15 trang |
Chia sẻ: vietpd | Lượt xem: 2098 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Giải quyết bài toán thiết kế phần cứng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
PHẦN III GIẢI QUYẾT BÀI TOÁN
CHƯƠNG VI
THIẾT KẾ PHẦN CỨNG
I.SƠ ĐỒ KHỐI
LINE IN
(
MÁY TÍNH
BỘ GIAO TIẾP MÁY TÍNH
(COM , SOUND )
BỘ
XỬ LÝ
CHÍNH
BỘ NHẬN BUSY TONE
BỘ THU PHÁT THOẠI
BỘ GIẢI MÃ
DTMF
HÌNH : SƠ ĐỒ KHỐI CỦA HỆ THỐNG HỘP THƯ THOẠI
BỘ GIAO TIẾP ĐƯỜNG DÂY
Chức năng hoạt động của các khối:
Bộ giao tiếp đường dây thuê bao: nhận tín hiệu chuông từ tổng đài gởi tới đưa đến bộ xử lý chính, điều khiển đóng Relay tạo tải giả (trở kháng đường dây khoảng 600 ohm) để tổng đài nhận biết trạng thái nhấc máy.
Khối nhận tín hiệu DTMF từ đường dây thuê bao: nhận các số chủ gọi cũng như các số nhấn từ máy điện thoại khách hàng qua tổng đài đưa đến hộp thư đựơc mã hoá dưới dạng DTMF, đưa đến bộ xử lý và sau đó tín hiệu này được chuyển tới máy tính.
Bộ thu phát thoại: có nhiệm vụ tách tín hiệu thu phát trên đường dây ra 2 đường khác nhau, tín hiệu thu (khách hàng nhắn đến hộp thư) được tách ra và đưa đến đầu vào Line In của Sound Card, tín hiệu phát (từ hộp thư đến khách hàng) từ đầu ra Speaker của Sound Card được đưa đến khách hàng.
Bộ nhận tín hiệu busy tone từ đường dây thuê bao: khi thuê bao gác máy mạch nhận được tín hiệu báo bận (busy tone) và gởi đến khối vi xử lý sẽ điều khiển giải tỏa mạch sẵn sàng tiếp nhận cuộc gọi mới.
Bộ xử lý chính: được thiết kế dựa trên IC vi điều khiển AT89C51, có nhiệm vụ nhận các tín hiệu từ đường dây thuê bao xử lý điều khiển tiếp nhận hoặc giải toả cuộc gọi, chuyển các yêu cầu của thuê bao đến máy tính và ngược lại.
Bộ giao tiếp máy tính: các tín hiệu điều khiển giữa bộ xử lý chính và máy tính được trao đổi qua cổng COM của máy tính theo chuẩn RS232, các tín hiệu thoại giữa khách hàng với hộp thư được đưa qua theo đường Line In và Speaker của Sound Card.
II.THIẾT KẾ MẠCH
1. Mạch giao tiếp đường dây thuê bao:
Có nhiệm vụ nhận tín hiệu chuông và tạo tải giả nhấc máy.
Tổng đài cung cấp tín hiệu chuông 90VAC tần số 20Hz hay 25Hz (tín hiệu xung hoặc sin) 2s có chuông và 4s không chuông. Như vậy để nhận biết, ta dùng cầu diode chỉnh lưu dòng chuông thành dòng một chiều kích cho opto dẫn, tắt theo chu kỳ chuông và đưa đến bộ vi xử lý đếm (số lần đổ chuông có thể thay đổi). Nếu đủ số hồi chuông qui định, vi xử lý điều khiển đóng reley tạo trạng thái giả nhấc máy.
Tổng đài biết trạng thái nhấc máy qua sự thay đổi điện trở vòng của đường dây. Theo qui định, điện trở nhấc máy khoảng 500 - 1000W. Lúc đó dòng trên đường dây thuê bao vào khoảng 20 - 100mA. Như vậy để tạo trạng thái nhấc máy ta tạo mạch có trở kháng khoảng 600W.
Mạch được thiết kế ở hình sau : sơ đồ mạch giao tiếp đường dây và nhất máy.
Khi có tín hiệu chuông đưa đến đường dây qua tụ C1= 1uF/250V (ngăn DC) được chỉnh lưu qua cầu diode (D1) thành dòng một chiều. Hai diode Zener D2, D4 phân cực ngược để ghim mức điện áp vào. Tụ điện C2= 10uF được dùng lọc gợn sau chỉnh lưu, điện trở R1 hạn dòng cho led Opto. Điện trở R3 phân cực cho phototransistor. Khi led opto dẫn, phototransistor dẫn bão hòa.
Khi đủ số hồi chuông qui định, vi xử lý đặt port P3.4 của AT8951 lên mức cao (tương đương +5V) và điện áp này được đưa đến điện trở R8 tạo cho Q2 dẫn bào hoà làm đóng relay K1 tạo trạng thái nhấc máy. Diode D6 ngăn dòng điện tự cảm của cuộn dây relay bảo vệ transistor Q2 .
Khi ở trạng thái không có tín hiệu chuông thì điện áp ở hai đầu dây line là 48 VDC , tụ C1 ngăn dòng DC nên không có dòng qua diode quang của opto nên transistor quang tắt làm điện áp tại cực C ở mức 5V báo hiệu không có chuông .
Mức điện áp các diode Zener khi hoạt đôïng là: D2= 24V , D3=12V.
Hình 1: Sơ đồ mạch giao tiếp đường dây và nhấc máy
Tính toán:
Chọn Opto loại 4N35 có các thông số :
VD = 1,1 V
ID = 4,0 mA
IE = 5,0 mA
Điện trở hạn dòng cho diode quang là:
R1=(12 - 1,1)/ 4. 10-3 = 2,725. 10-3 W
Ta chọn R1= 2,7 kW
Khi photo transistor dẫn bão hoà: VR3 = Vcc - 0,2 = 5 - 0,2 = 4,8V
=> R3= VR3/IE = 4,8 / 5. 10-3 = 1 kW
Chọn relay K1 loại 5V - 100W => dòng qua relay .
Relay muốn hoạt động được thì Q2 phải dẫn bão hoà , điều kiện :
IB1 >> Ic/b
Chọn Q2 là C945 có : Pmax = 250 mW
Icmax = 100 A
b = 80 - 200
=> IB1 ³ 50.10-3/80 = 0,63 mA
Khi Q2 dẫn bão hoà , điện áp Vbe (Q2) xấp xỉ 0,8V
=> R8 = (Vcc- 0,8)/ IB2 = ( 5 - 0,8) / (0,63.10-3) = 4,5 kW
chọn R8= 4,7 kW
Thiết kế mạch giả nhấc máy:
Chọn transistor Q1 loại C2383 có các thông số sau:
Pc(max) = 900 mW
Ic(max) = 1 A
Vce(max) = 150 V
hfe = 60 ÷ 320
Tổng trở vào DC được tính :
R7
220
hib
->
IL
Zin
-->
->
IL
Zin
-->
R4/hfe10k
C3
1uF
Q1
C2383
R7
220
R4
10k
Zin(DC) = + hib + R7
R4
hfe
Chọn hfe=100 ,
Trở kháng nhấc máy tại 2 đầu RING – TIP khoảng 600W
Dòng điện lúc này chọn 20 mA
=> điện áp trên đầu RING-TIP là: 600 W x 20mA =12 VDC
R7 = = = 0,52 KW
12 –V2diode –V CEsat
ICQ
12 –1,4 –0,2
20 mA
chọn R7 = 560 W
=> R4 =( RDC –R5 -hib)hfe =(600 –520 –1,75)100 = 7825 W
chọn R4 = 8,2 KW
Xét về mặt AC thì mạch tạo tải giả như một nguồn dòng có trở kháng rất lớn.
Về mặt AC thì xem như Q1 không dẫn R4, C7 tạo thành một mạch lọc thông thấp để ngăn không cho tín hiệu thoại đi vào Q1 , đảm bảo cho cực B của Q1 luôn ổn định.
Ta tính tần số cắt của bộ lọc thông thấp sao cho không cho tín hiệu trong băng thông tần thoại đi qua.
Mặt khác để không ảnh hưởng đến trạng thái DC của mạch thì tụ C7 phải có nhiệm vụ bypass tín hiệu ở cực B của Q1 nên ta:
chọn XC4 << R5 và XC4 << (hfe+1)R5 +hie = hfe R7
Do đó fC =1/(2R4C4)<300 Hz
=> C7 > 1/(2R4f) =1/(2.3,14.8,2.300) = 0,065
Lúc đó tụ C7 coi như nối tắt, Q1 xem như không dẫn, và trở kháng xoay chiều nhìn từ đường dây 2 ngõ vào Tip – Ring, chính bằng trở kháng phản ánh của thuê bao qua biến áp 1:1.
Với tổng trở mạch vòng AC thông qua biến áp 1:1 theo tiêu chuẩn là Z=600 W và R4=8,2 KW
==> ZAC = Z // R4 = 559W
Như vậy ta nhận thấy rằng tải giả của thuê bao có trở kháng về mặt DC và AC tương đương như một máy điện thoại.
Tụ C5 cách ly về mặt DC, chỉ cho tín xoay chiều đi qua chọn C5 = 220
2. Mạch nhận DTMF:
Mạch có chức năng nhận các số chủ gọi cũng như các số nhấn trên bàn phím điện thoại của khách hàng đến hộp thư.
Mạch được thiết kế dựa trên IC giải mã DTMF MT8870 cùng với các linh kiện kết nối kèm theo R, C, thạch anh (xem chi tiết phần phụ lục)
Sơ đồ mạch được trình bày ở hình sau: Sơ đồ mạch nhận tín hiệu DTMF
Khi IC MT8870 nhận được tone DTMF hợp lệ thì chân Std (chân 15) lên mức cao, chân này được kết nối đến ngõ vào INT0 của AT89C51 báo cho vi xử lý biết có số gởi đến, các số DTMF được mã hoá dưới dạng chuỗi số nhị phân 4 bit được nhận vào thông qua 4 bit thấp của P1 AT89C51, sau đó gởi vào máy tính thông qua cổng COM
Hình : Sơ đồ mạch nhận tín hiệu DTMF
3. Mạch Nhận Biết Busy Tone
Mạch có chức năng nhận tín hiệu busy tone từ đường dây thuê bao và gởi tín hiệu nhận biết đến vi xử lý và sau đó giải tỏa mạch để tiếp nhận cuộc gọi mới.
Tổng đài cấp tín hiệu BUSYTONE khi:
Tất cả các đường dây kết nối thông thoại đều bị bận
Thuê bao bị gọi đang thông thoại
Khi hai thuê bao đang thông thoại có 1 thuê bao gác máy tổng đài sẽ giải tỏa thông thoại cho 2 thuê bao và cấp tín hiệu Busytone cho thuê bao còn lại
Vì vậy ta thiết kế mạch nhận biết BUSYTONE tần số 425Hz, ta sử dụng IC LM567 là một IC chuyên dụng để tách tone chứa 1 vòng khóa pha bên trong. Khi tần số đầu vào bằng với tần số trung tâm (fin = fo) thì chân ra sẽ có mức logic thấp .
Sơ đồ mạch được trình bày ở hình sau: Sơ đồ mạch nhận tín hiệu BUSY TONE
Hình : Sơ đồ mạch nhận tín hiệu BUSY TONE
Khi có tín hiệu BUSYTONE đưa đến ngõ vào chân số 3 , ngõ ra sẽ tạo thành 1 dãy tín hiệu dạng xung có biên độ bằng với mức điện áp nguồn của OPAMP.
Công thưÙc tính tần số trung tâm của LM567 :
fo= 1/1,1RC (Hz)
với R , C lần lượt là điện trở định thời , tụ điện định thời ( R được chọn trong khoảng 2 - 20 kW) .
Trong mạch R= R13+ VR12
Chọn R12+ VR13= 2 kW
R13= 1,5 kW , VR13= 1 kW
với fo = 425 Hz => C=C10= 1/ ( 1,1 x 2 x 103 x 425 ) = 1,07uF=1uF
C12 - tụ lọc thông thấp , chọn C12= 1uF .
C13 - tụ lọc ngõ ra được chọn vừa phải vì nếu quá lớn thì thời gian trễ giữa hai trạng thái đóng và mở sẽ quá lớn, dẫn đến mạch hoạt động sẽ không chính xác, hoặc chọn quá nhỏ thì độ nhạy của mạch tăng làm cho mạch hoạt động không ổn định.
Thông thường chọn C12= 1 uF, C13= 2,2 uF
C11- là tụ liên lạc , chọn C11= 0,47 uF .
Mạch xử lý chính:
Có nhiệm vụ nhận các tín hiệu trạng thái đường dây và máy tính xử lý và điều khiển toàn bộ hoạt động của mạch. Mạch được thiết kế với CPU là vi điều khiển AT89C51 được giới thiệu ở phần trước.
Sơ đồ mạch được trình bày ở hình sau: Sơ đồ mạch xử lý chính.
Hình : Sơ đồ mạch xử lý chính
Hình 3: Sơ đồ mạch nhận tín hiệu BUSY TONE
Mạch vi điều khiển giao tiếp với máy tính qua cổng COM2 có nhiệm vụ truyền và nhận tín hiệu bắt đầu và kết thúc giữa máy tính và vi điều khiển, truyền số DTMF vào máy tính để chương trình giải mã và điều khiển hộp thư, cũng như nhận các yêu cầu từ máy tính. Mạch này sử dụng IC MAX232 có tác dụng chuyển đổi mức logic TTL (vi điều khiển) thành mức điện áp chuẩn RS232 (máy tính) và ngược lại.
Các tín hiệu bắt tay (DTR, DSR, RTS, CTS,...) được nối theo kiểu Null modem. Nghĩa là khi này máy tính ở trạng thái sẵn sàng, có thể truyền dữ liệu theo qui định mà không cần 1 nghi thức truyền nào. Như vậy thiết kế chỉ sử dụng 2 chân RxD và TxD để truyền và nhận giữa máy tính và vi điều khiển.
Khi thuê bao quay số hộp thư mạch giao tiếp đường dây sẽ cảm biến dòng chuông từ tổng đài đưa đến, qua chân T1 (P3.5) CPU sẽ tiến hành đếm số hồi chuông nếu đủ số hồi chuông theo quy định thì đặt chân T0 (P3.4) lên mức cao làm đóng Relay của mạch tạo tải giả tạo trạng thái nhấc máy cho mạch. Sau đó CPU sẽ gởi tín hiệu bắt đầu vào máy tính qua cổng COM2, máy tính nhận được tín hiệu này sẽ khởi động chương trình tương ứng.
Ngõ vào ngắt ngoài INT0 được nối vào chân STD ngõ ra của IC giải mã tone MT8870, khi thuê bao nhấn số chân STD qua cổng đảo sẽ xuống mức 0 tạo ngắt ngoài INT0, CPU sẽ tiến hành nhận số DTMF từ 4 bit thấp của P1, sau đó gởi vào máy tính xử lý qua cổng COM2.
Ngõ vào ngắt ngoài INT1 được nối với ngõ ra của mạch nhận biết Busy Tone. Khi khách hàng gác máy tổng đài sẽ cấp Busy Tone CPU nhận biết được tín hiệu này sẽ điều khiển giải toả mạch và gởi tín hiệu kết thúc vào máy tính. Đưa mạch vào trạng thái chờ cuộc gọi mới.
Sơ đồ mạch nguyên lý hệ thống hộp thư thoại
CHƯƠNG VII
THIẾT KẾ PHẦN MỀM
I. PHẦN MỀM CHO VI ĐIỀU KHIỂN (AT89C51)
LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH CHÍNH
START
Khởi tạo chương trình
các thanh ghi và ngắt
Y
N
Có tín hiệu DTMF
P 3.2 = 0 ?
Có chuông đổ tới P3.5 = 0 ?
Nhận số chủ gọi DTMF
và gởi vào máy tính
Điều khiển nhấc máy, gởi tín hiệu hook off vào máy tính
Gởi tín hiệu DTMF nhận được vào máy tính
N
N
Y
Có tín hiệu busy tone P 3.3 = 0 ?
Y
END
CHƯƠNG TRÌNH NGUỒN VI ĐIỀU KHIỂN AT89C51
CRING EQU 03 ;Biến đặt số hồi chuông nhấc máy
ORG 0000H
LJMP MAIN ;Gọi chương trình chính
ORG 0003H
LJMP EX0ISR ;Gọi chương trình ngắt ngoài 0
ORG 0030H
MAIN: MOV TMOD,#21H ;T0 Mode 1, T1 Mode 2
MOV SCON,#52H ;Đặt Port nối tiếp chế độ 1
MOV TH1,#-13 ;Tốc độ Baud 2400,12MHZ
MOV IE,#81H ;cho phép ngắt ngoài INT0
SETB TR1 ;Timer 1 bắt đầu hoạt động
CLR P3.4 ;Port điều khiển nhấc máy
MOV R0,#00H ;Biến đếm số hồi chuông
;-------------------------------------------------------------------------------------------------------
; Chương trình kiểm tra chuông, nếu đủ số hồi chuông qui định thì truyền tín hiệu bắt ; đầu vào máy tinh & P3.4=1 điều khiển đóng Relay tạo tải giả nhấc máy
;-------------------------------------------------------------------------------------------------------
KT_RING: JB P3.5,KT_RING
INC R0
CJNE R0,#CRING,KT_RING
MOV A,#20
LCALL OUTCHR
SETB P3.4
;-------------------------------------------------------------------------------------------------------
; Chương trình con ngắt ngoài 0 nhận số DTMF từ 4 bit thấp của P1 sau đó truyền vào ; máy tính.
;-------------------------------------------------------------------------------------------------------
EX0ISR: MOV A,P1
ANL A,#0FH
CJNE A,#00H,JUMP1
MOV A,#0EH
SJMP JUMP2
JUMP1: CJNE A,#0AH,JUMP2
MOV A,#00H
JUMP2: LCALL OUTCHR
JNB P3.2,$
RETI
;-------------------------------------------------------------------------------------------------------
; Chương trình con kiểm tra tín hiệu Busy Tone, nếu nhận đúng thì gởi mã kết thúc ;vào máy tính và nhảy về chương trình chính đưa mạch về lại trạng thái ban đầu.
;-------------------------------------------------------------------------------------------------------
BUSY: MOV R1,#0FFH
MOV R2,#0BFH
TESTM0: JB P3.3,BUSY
DJNZ R1,TESTM0
MOV R1,#0FFH
DJNZ R2,TESTM0
MOV R1,#0FFH
MOV R2,#2FH
LEN1: JB P3.3,DUNGBS
DJNZ R1,LEN1
MOV R1,#0FFH
DJNZ R2,LEN1
SJMP BUSY
DUNGBS: MOV A,#21
LCALL OUTCHR
LJMP MAIN
;------------------------------------------------------------------------------------------------------
; Chương trình con truyền 1 byte vào máy tính qua cổng COM
;------------------------------------------------------------------------------------------------------
OUTCHR: JNB TI,$
CLR TI
MOV SBUF,A
RET
;------------------------------------------------------------------------------------------------------
; Chương trình con nhận 1 byte từ máy tính qua cổng COM
;------------------------------------------------------------------------------------------------------
INCHR: JNB RI,$
CLR RI
MOV A,SBUF
RET
END