Chương 1 – KHÁI QUÁT VỀ MẠNG ĐIỆN THOẠI 3
I. SƠ LƯỢC VỀ MẠNG ĐIỆN THOẠI 3
II. CÁC CHỨC NĂNG CỦA HỆ THỐNG TỔNG ĐÀI 3
III. CÁC THÔNG TIN BÁO HIỆU TRONG ĐIỆN THOẠI 4
IV. TÍN HIỆU ĐIỆN THOẠI 7
V. KỸ THUẬT QUAY SỐ BẰNG XUNG LƯỠNG ÂM ĐA TẦN 11
Chương 2 – PHƯƠNG PHÁP TÍNH CƯỚC VÀ KẾ HOẠCH TÍNH CƯỚC 15
I. PHƯƠNG PHÁP TÍNH CƯỚC 15
II. KẾ HOẠCH TÍNH CƯỚC 17
III. KỸ THUẬT GHI CƯỚC TRONG CÁC TỔNG ĐÀI TỰ ĐỘNG 18
Chương 3 – THIẾT KẾ VÀ THI CÔNG MẠCH
I. Sơ đồ khối hệ thống - Chức năng từng khối 22
II. Tính toán thiết kế 23
1. Module tính cước 23
Sơ đồ nguyên lý 24
a. Mạch xử lý trung tâm 25
b. Phần cảm biến nhấc máy 28
c. Mạch giải mã DTMF 28
d. Mạch hiển thị 29
e. Bộ nhớ Ram ngoài AT24C04 31
f. Phần truyền tín hiệu đi xa 31
g. Phần nguồn 31
Nguyên lý hoạt động của module tính cước 32
2. Module mạch nguồn và giao tiếp máy tính 32
Sơ đồ nguyên lý 33
a. Phần xử lý trung tâm 34
b. Phần giao tiếp RS232 34
c. Phần nguồn cung cấp toàn mạch 35
3. Giao diện kết nối máy tính 36
III. Lưu đồ giải thuật 37
1. Lưu đồ giải thuật của phần tính cước 37
2. Lưu đồ giải thuật của phần giao tiếp máy tính 38
KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 40
PHỤ LỤC :
1. Các linh kiện chính sử dụng trong mạch 41
a. AT89C51 41
b. MT8870 57
2. Bảng mã vùng các tỉnh 60
3. Phần mềm nạp cho AT89C51 61
76 trang |
Chia sẻ: lethao | Lượt xem: 2315 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế mạch tính cước điện thoại, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t lý giữa 2 vùng.
Thời gian trong ngày:
Số lượng cuộc gọi đường dài thường thay đổi theo thời gian trong ngày. Ở các giờ cao điểm, tỉ lệ giữa số thuê bao đàm thoại với số thuê bao hiện có rất cao, khoảng 80%. Tuy nhiên, vào ban đêm tỉ lệ này giảm xuống chỉ còn vài phần trăm. Do đó để tận dùng đường truyền và trải đều lưu thoại ra các thời gian trong ngày, nâng cao hiệu suất sử dụng của thiết bị, nhà quản lý khuyến khích các thuê bao gọi vào ban đêm bằng cách giảm cước.
Hiện nay, qui định đối với đại lý các điện thoại công cộng như sau: đối với các cuộc gọi nội hạt, mức cước tối thiểu là 1200VNĐ được tính cho 3 phút đầu, sau đó mỗi phút tiếp sẽ được cộng thêm vào 400VNĐ. Với mỗi cuộc gọi liên tỉnh đại lý sẽ thu thêm 450VNĐ vào tiền phụ thu.
KỸ THUẬT GHI CƯỚC TRONG CÁC TỔNG ĐÀI TỰ ĐỘNG:
Trong hệ thống các tổng đài tự động, phương thức thực hiện tiêu chuẩn là tính cước cuộc gọi khi thuê bao bị gọi nhấc náy trả lời, nghĩa là bắt đầu thời gian đàm thoại. Các đồng hồ tính cước (bộ phận ghi cước của thuê bao) hoạt động theo nguyên lý điện từ và được thiết kế và ghi nhận một đơn vị cước mỗi lần nam châm điện hoạt động. Điều quan trọng nhất là các mạch tính cước của một tổng đài tự động phải có độ tin cậy với mức sai số thấp, và đặc biệt phải bảo đảm tránh được hoạt động bất thường của đồng hồ tính cước do các hư hỏng của mạch điện hoặc do sử dụng sai lệch của thuê bao.
Tính cước bằng phương pháp đảo cực nguồn điện:
Khi nhận ra thuê bao bị gọi nhấc máy trả lời thì tổng đài sẽ đổi chiều dòng điện DC trên đôi dây của thuê bao gọi. Trong hệ tổng đài điện thoại tự động, tín hiệu đảo cực khởi động đồng hồ tính cước của thuê bao gọi. Khi cuộc đàm thoại kết thúc (một trong 2 bên gác máy) điện áp trên đôi dây lại được đảo chiều lần nữa và chấm dứt hoạt động của đồng hồ tính cước.
Tính cước bằng phương pháp đếm xung:
Sau khi thực hiện kết nối thông thoại cho 2 thuê bao, tổng đài sẽ cấp các xung gián đoạn có tần số qui định tính cước, số xung hiện diện trong một đơn vị thời gian cơ bản sẽ tỉ lệ với giá cước. Tùy theo khoảng cách giữa 2 thuê bao mà số xung trong mỗi đơn vị thời gian cơ bản khác nhau. Nếu thuê bao gọi đếm một vùng càng xa thì số xung nhận được để tính cước trong một đơn vị thời gian cơ bản sẽ càng nhiều. Bộ phận tính cước sẽ nhận các xung này và quy ra giá cước cuộc gọi.
Tính cước bằng cách phát hiện Ring back tone:
Trong 2 cách trên, thuê bao phải được tổng đài cung cấp cho dịch vụ: tín hiệu đảo cực hoặc xung tuần hoàn. Tại các thuê bao không có 2 dịch vụ trên, người ta có thể tính cước bằng cách kiểm tra tín hiệu hồi âm chuông (ring back tone). Khi số quay được gởi đi, tổng đài sẽ kết nối 2 thuê bao, bên thuê bao gọi sẽ nghe được hồi âm chuông (có tần số f = 425 Hz và chu kỳ 1s có 4s không). Khi thuê bao bị gọi nhấc máy, tín hiệu này sẽ mất. Do đó việc phát hiện hết hồi âm chuông chính là việc phát hiện thông thoại. Tín hiệu này sẽ khởi động bộ đếm thời gian thực. Khi giải tỏa cuộc gọi thì nội dung bộ đếm chính là khoảng thời gian thông thoại cần tính cước.
PHƯƠNG THỨC QUAY SỐ VÀ TÍNH CƯỚC Ở VIỆT NAM HIỆN NAY:
Phương thức quay số:
Gọi nội hạt:
Sau khi nhấc máy, nếu tín hiệu mời quay số (dial tone), quay số máy cần gọi, nếu nghe ring back tone thì tiếp tục chờ máy bị gọi nhấc máy. Nếu nghe busy tone thì có nghĩa là cuộc gọi không thực hiện được, người gọi đặt máy trở lại rồi sau đó gọi lại.
Nhấc máy
Nghe Dial tone
Quay số
Gọi liên tỉnh:
Gọi tự động liên tỉnh:
Nhấc máy
Nghe Dial tone
0
Mã vùng
Số thuê bao
Ngoài ra, với cách gọi trực tiếp thường dùng còn có các dịch vụ điện thoại giảm giá cước đường dài liên tỉnh như: 171, 178, 177, 179… ta tiến hành như sau:
171_0_mã tỉnh_số thuê bao…
Cước điện thoại đường dài liên tỉnh tại các điểm công cộng như tại thuê bao và thu thêm 454 VNĐ/cuộc (chưa bao gồm thuế VAT).
Nhấc máy
Nghe Dial tone
0
Mã vùng
Số thuê bao
Mã nước
Gọi quốc tế:
Nhấc máy
Nghe Dial tone
0
Mã mạng điện thoại
Số thuê bao
Gọi vào các mạng di động:
Mã gọi vào các mạng
Mobiphone (VMS)
90
93
122
Vina Phone
91
94
Viettel
98
97
Sfone
95
EVN
96
HT mobile
92
Bộ công an, bộ quốc phòng
69
Cục bưu điện Trung ương
80
VSAT
99
Giá cước các tỉnh thành trong nước và quốc tế:
Cước điện thoại đường dài trong nước:
Đơn vị tính đồng/ Block (áp dụng từ ngày 15/8/2006)
Vùng cước
Đường dài liên tỉnh PSTN
Đường dài liên tỉnh VOIP (171)
Thứ 2-7
Chủ nhật,
ngày lễ
Thứ 2-7
Chủ nhật,
ngày lễ
An Giang, Bà Rịa-Vũng Tàu, Lâm Đồng, Long An, Bến Tre, Bạc Liêu, Bình Dương,Bình Phước,Bình Thuận, Ninh Thuận,Cà Mau, Cần Thơ-Hậu Giang,Đồng Nai, Đồng Tháp, Sóc Trăng, Kiên Giang, Tiền Giang, Trà Vinh, Vĩnh Long, Tây Ninh.
90,90
81,82
76,36
72,72
Kon Tum, Bình Định, Phú Yên, Đà Nẵng, Đắk Lắk - Đắk Nông, Quảng Ngãi, Quảng Nam, Quảng Trị, Gia Lai, Khánh Hòa, Thừa Thiên Huế.
136,36
118,20
120
90,9
Bắc Cạn, Bắc Giang, Bắc Ninh, Lai Châu - Điện Biên, Lạng Sơn, Lào Cai, Nam Định, Nghệ An, Ninh Bình, Phú Thọ, Cao Bằng, Quảng Bình, Quảng Ninh, Hà Giang, Hà Nam, Hà Nội, Hà Tây, Hà Tĩnh, Hải Dương, Hải Phòng, Hòa Bình, Hưng Yên, Sơn La, Thái Nguyên, Thái Bình, Thanh Hóa, Tuyên Quang, Yên Bái, Vĩnh Phúc.
136,36
136,36
118,20
118,20
120
120
90,9
90,9
Cước điện thoại nội hạt:
Khu vực gọi đến
Cách tính cước
Giá cước
Thời gian tối thiểu
Thời gian tiếp theo
Thời gian tối thiểu
Thời gian tiếp theo
Toàn thành phố
3 phút đầu
Tính tròn 1 phút
1092
364
City Phone
3 phút đầu
Tính tròn 1 phút
1092
364
1080
1 phút đầu
Tính tròn 1 phút
1364
1364
1081
1 phút đầu
Tính tròn 1 phút
1364
1364
Cước điện thoại di động: (Chưa có VAT)
Thứ 2 – 7
Ngày lễ - Chủ nhật
Thời gian tối thiểu
Thời gian tiếp theo
Thời gian tối thiểu
Thời gian tiếp theo
6 giây
6 giây tiếp
6 giây
6 giây tiếp
136,36
136,36
95
95
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG MẠCH
Sơ đồ khối hệ thống - Chức năng từng khối:
Khối xử lý trung tâm: Là khối xử lý chính của mạch tính cước. Nhiệm vụ là quản lý tất cả các khối còn lại : khối hiển thị, khối giao tiếp máy tính, khối giải mã DTMF, khối nhận biết tín hiệu đảo cực và khối bộ nhớ Ram ngoài. Nó là mạch logic tổ hợp được lập trình cho IC vi điều khiển AT89C51.
Khối giải mã DTMF: Giải mã các tín hiệu quay số ra các mức logic để cấp cho khối xử lý trung tâm làm việc.
Khối hiển thị: Hiển thị số được quay, tính thời gian và tiền cho cuộc gọi ra led 7 đoạn.
Khối nhận biết nhấc máy: Nhận biết thuê bao có nhấc máy không và cung cấp tín hiệu quay số cho khối giải mã.
Khối nhận biết tín hiệu đảo cực: Ở đây là dùng 1 Switch để tạo tín hiệu giả đảo cực báo cho khối xử lý trung tâm biết. Thông thường nếu thuê bao gọi có đăng ký tín hiệu đảo cực với tổng đài thì khi thuê bao bị gọi nhấc máy, tổng đài sẽ cung cấp 1 tín hiệu đảo cực đến khối xử lý trung tâm để xử lý tính tiền cho cuộc gọi.
Khối bộ nhớ Ram ngoài: Được nạp sẵn bảng giá tiền cho từng block thời gian gọi của từng vùng trong nước, từng mạng điện thoại di động, quốc tế, nội hạt…
Khối giao tiếp máy tính: Kết nối mạch tính cước với máy tính, nhằm chuyển đổi tín hiệu TTL sang RS232 để xuất số gọi đi, thời gian gọi, tiền lên máy tính để bưu cục dễ quản lý.
Tính toán thiết kế:
Tính toán cho 2 Module là tính cước và giao tiếp máy tính.
Module tính cước:
Mạch xử lý trung tâm:
Sơ đồ nguyên lý:
Nhiệm vụ của mạch này là điều khiển mọi hoạt động của Module tính cước như:
Nhận biết thuê bao nhấc máy.
Nhận biết tín hiệu đảo cực.
Kiểm tra xem số gọi đi là nội hạt, liên tỉnh hay di động.
Đếm thời gian và tính tiền cuộc gọi.
Xuất dữ liệu ra led 7 đoạn: số bị gọi, thời gian và tiền cuộc gọi.
Xuất các dữ liệu này qua Module giao tiếp.
Nạp bảng giá cước vào Rom ngoại.
Trong máy tính cước, tất cả các hoạt động của mạch đều liên quan đến xung clock cung cấp cho CPU vì các bộ Timers/Counters sẽ dựa vào tần số xung clock này mà thực hiện các công việc được lập trình sẵn (ngắt Timer, chương trình delay, đếm).
Do xung clock đóng một vai trò rất quan trọng nên mạch tạo xung phải bảo đảm các yêu cầu như có độ ổn định cao, sai số tần số phải nhỏ đồng thời tần số xung phải phù hợp với tần số của tất cả các linh kiện trong mạch.
Vi điều khiển AT89C51 có bộ dao động nằm bên trong vi mạch, do đó độ ổn định về tần số của mạch coi như thỏa. Mặt khác độ ổn định của mạch còn phụ thuộc vào thạch anh hay mạch dao động RC bên ngoài, ta chọn thạch anh vì nó dao động với tần số chuẩn và đơn giản mạch. Ngoài ra, ở điều kiện lý tưởng, tần số làm việc của CPU phải hoàn toàn tương thích với tốc độ truy xuất dữ liệu của bộ nhớ.
Dựa vào các yếu tố trên và thêm vào đó là sự phổ biến trên thị trường, giá cả hợp lý, ta chọn thạch anh 12Mhz. Các tụ C2 và C3 dùng để ổn định tần số dao động của thạch anh.
Port 1 và 2 bit P2.7, P2.6 dùng cho quét led.
Port 0 là port data cho led.
Chân 12 (INT0) được nối với chân STD của MT8870. Khi MT8870 giải mã xong 1 cặp tone, chân STD sẽ lên cao rồi xuống thấp tạo ngắt tại chân INT0 của CPU để xử lý đọc số.
Chân 17 được nối đến chân TOE của MT8870 để điều khiển cho phép xuất dữ liệu sang CPU xử lý.
Thông thường tại các bưu điện công cộng, thường được tổng đài cung cấp tín hiệu đảo cực (như đã trình bày ở chương 2) để tính cước cuộc gọi. Ở đây, do việc đăng ký tổng đài khó khăn nên em dùng 1 Switch nhấn giả đảo cực như sau:
Sau khi quay số xong, ta nhấn Switch thì CPU sẽ nhận biết là đã bắt đầu cuộc đàm thoại và bắt đầu đếm thời gian tính tiền.
2 chân 14, 15 được nối với Opto cảm biến nhấc máy, sẽ trình bày ở phần sau.
2 điện trở thanh 10K mắc dạng cực thu hở để lấy mức tín hiệu cho các bit xử lý của 89C51.
Khi mạch được cấp nguồn +5V, thì tụ nạp với thời hằng nạp điện là: τ = RC. Sau đó phóng điện vào chân RST của 89C51 và mạch được Reset lại từ đầu.
Điện trở R22 = 100 Ω để tránh trường hợp dòng nạp cho tụ phân cực bên trong 89C51.
Để reset CPU chân RST ở mức cao ít nhất 24 xung clock, tần số mỗi xung clock. Tần số mỗi xung clock là 12Mhz. Suy ra T= 24.(1/12.106) = 2 µs_ khoảng 2 chu kỳ máy.
Mạch Reset:
Tính giá trị cho R23 và C1:
Điện áp ở chân RST chính là điện áp xả trên tụ C3 khi nạp đầy.
Ta có: VRST = Vcc .e – T/τ.
T/τ = ln(Vcc/VRST).
è τ = T/ln(Vcc/VRST).
Ta lại có: τ = R.C.
è C = T/(R.ln(Vcc/VRST), với T = 2 µs, Vcc = 5V.
Giả sử khi tụ nạp gần Vcc thì xả, ta chọn VRST ≈ 5 V, với R = 10K, ta có:
C = 10 µF.
Phần cảm biến nhấc máy :
Khi nhấc máy, có dòng từ tổng đài qua 1 trong 2 Opto làm chân 5 dẫn xuống Mass, tín hiệu ở chân 5 của 2 Opto được đưa tới chân P3.4, P3.5 của 89C51 sẽ xử lý nhận biết tín hiệu nhấc máy.
2 Opto 4N35 là 2 cảm biến nhấc máy:
Sở dĩ dùng 2 Opto là vì để khi ta có mắc ngược đường line so với tổng đài thì đều có thể nhận biết được.
Điện trở R25 dùng để phân cực cho Opto dẫn. Với dòng của tổng đài khi nhấc máy là 20mA – 40mA, dòng qua led của Opto là 4mA, điện áp rơi trên led Opto là 2V thì ta có:
R25 = 2V/(0,02 – 0,004) = 125 Ω.
Ta chọn R25 = 150 Ω.
Tụ C6 là tụ liên lạc, dùng để ngăn dòng DC.
L1_Fit44_1 là biến thế cách ly 1:1, để chống quá áp ngõ vào bảo vệ cho các linh kiện bên trong mạch.
2 diode Zenner 4,7V dùng để ổn định điện áp ngõ vào IC MT8870 là:
4,7 + 0,6 = 5,3V.
Mạch giải mã DTMF:
Khi có tín hiệu quay số, một cặp tone sẽ đến ngõ vào của MT8870 và được giải mã ra 4 bit từ Q0 à Q3 để cấp cho CPU xử lý.
Các tụ điện, điện trở, thạch anh được sắp xếp theo tính toán của nhà sản xuất.
Chân STD khi có tone nhấn sẽ lên cao rồi xuống thấp để tạo ngắt tại chân INT0 của 89C51 xử lý.
Chân TOE sẽ được set lên cao khi MT8870 giải mã xong 1 cặp tone.
Mạch hiển thị:
Là mạch gồm 10 led 7 đoạn dùng để hiển thị số khi quay số điện thoại gọi đi. Sau đó, khi bắt đầu tính tiền cuộc gọi, 6 led bên trái dùng để hiển thị tiền, 4 led bên phải dùng để hiển thị thời gian.
Tính toán điện trở phân cực cho cực B của transistor:
Theo đặc tuyến ở ngõ ra của transitor ta có, khi dòng IB tăng thì dòng IC cũng tăng theo, đến một lúc nào đó khi dòng IB tăng thì IC sẽ không tăng nữa, khi đó transistor hoạt động ở chế độ bão hòa.
Khi transistor hoạt động ở chế độ bão hòa thì ta được ICmax ≤ β.IB.k
với k là hệ số bão hòa.
Trong tính toán thường chọn k = 2 à 5.
ICmax
è IB > (*)
β.k
Khi cực B tích cực mức thấp, thì mối nối B-E được phân cực thuận, lúc này:
Vcc = Vγ + IB.RB
Vcc - Vγ
è IB =
RB
Vcc - Vγ ICmax
Từ (*) ta suy ra: >
RB β.k
(Vcc - Vγ). β.k (5-0.6).1000.2
è RB < = = 4,56 kΩ
ICmax 1920.10-3
à Chọn RB = 4,7 kΩ.
Bên trong led 7 đoạn
8 bit data của Port 0 được đưa đến các chân từ a à g và chân p của led 7 đoạn. Các led này sẽ sáng khi chân tương ứng của nó ở mức 0 và transistor được kích dẫn.
_ Dòng quét led khoảng 10 mA là led sáng, ta chọn dòng để quét led là 20 mA để led được sáng rõ:
Ta có: Vcc - VLed 5V – 2V
R = = = 150Ω.
Iled 0.02
Chọn giá trị cho điện trở là 150 Ω.
Chọn điện trở hạn dòng cho led:
Bộ nhớ Rom ngoài AT24C04:
Do bộ nhớ Rom của 89C51 không đủ, nên phần thiết kế em đã sử dụng thêm Rom AT24C04. Đây là Rom có bộ nhớ 4Kb, được sử dụng để lưu bảng giá cước
- A0, A1, A2: Dùng để chọn bộ nhớ nếu có sử dụng nhiều Rom ngoài. Ở đây chỉ sử dụng 1 Rom nên 3 chân này được nối mass.
- SCL : Chuỗi xung ngõ vào
- SDA : Chuỗi dữ liệu
Phần truyền tín hiệu đi xa :
Do máy tính có thể để ở xa so với cabin, vì vậy cần phải có phần này nhằm đảm bảo tín hiệu không bị suy hao.
SN75176 có chức năng tương đương như MAX485 (giá thành rẻ hơn tuy nhiên tính ổn định không cao), là IC dùng để chuyển đổi tín hiệu TTL sang RS485 để truyền tín hiệu đi xa, đường truyền tối đa lên đến 15Km.
2 chân TXD và RXD là 2 chân truyền nhận được kết nối trực tiếp với 89C51. Khi truyền xong hoặc nhận xong 1 chuỗi dữ liệu sẽ tạo ra 1 xung ở chân 2 và 3, xung này sẽ kích hoạt ngắt ở chân INT1của 89C51 để phục vụ phần mềm xử lý.
2 chân 6 và 7 là ngõ ra hoặc vào của tín hiệu RS485.
Phần nguồn:
Sở dĩ phải dùng nguồn 12V, rồi sau đó biến đổi ra 5V để sử dụng cho các linh kiện là vì khi truyền tín hiệu đi xa (từ mạch RS232_Nguồn đến mạch tính cước) mà dùng nguồn 5V sẽ bị suy hao bớt dẫn đến không đủ điện áp để sử dụng.
Nguyên lý hoạt động của Module tính cước:
Khi thuê bao gác máy (on hook), trở kháng của điện thoại rất cao, không có dòng qua mạch cảm biến nhấc máy.
Khi thuê bao nhấc máy (off hook), trở kháng này giảm dẫn đến có dòng chạy qua mạch cảm biến, dòng này làm cho 1 trong 2 Opto dẫn à CPU nhận biết thuê bao đang nhấc máy.
Khi nhận biết được thuê bao đang nhấc máy, CPU sẽ hiển thị “An So” báo cho người dùng biết để quay số. Khi thuê bao quay số, tín hiệu tone sẽ qua biến thế cách ly đến ngõ vào IN-, sau đó tín hiệu quay ra theo đường chân GS của MT8870, qua R27 rồi về tổng đài.
Sau khi nhấn 1 số, 1 tín hiệu từ cao xuống thấp tại chân STD sẽ kích hoạt ngắt cạnh xuống báo cho CPU biết đã thực hiện xong việc giải mã 1 cặp tone.
Sau khi thuê bao quay số xong, CPU sẽ đợi tín hiệu đảo cực. Khi có tín hiệu đảo cực, CPU bắt đầu kiểm tra xem số gọi đi là nội hạt, liên tỉnh hay di động sau đó lấy bảng giá từ Rom ngoài áp vào để tính cước.
Tất cả các dữ liệu như: số bị gọi, thời gian hay tiền đều được xuất ra led 7 đoạn và máy tính để người sử dụng dễ quản lý.
Module giao tiếp máy tính:
Đề tài này em thiết kế một máy tính có thể quản lý được 4 Cabin, nên phải cần có module này. Đây là module trung gian để kết nối máy tính với các cabin.
Sơ đồ mạch Module giao tiếp:
Phần xử lý trung tâm:
Mạch xử lý trung tâm.
Đây là module trung tâm để giao tiếp giữa các module tính cước và máy tính. Nhiệm vụ của module này là nhận dữ liệu từ module tính cước rồi xuất ra đúng từng cabin lên máy tính để chủ bưu cục dễ quản lý.
Ở đây em thiết kế sử dụng cho 2 module tính cước.
2 chân TXD và RXD là 2 chân truyền và nhận dữ liệu.
Bit P1.0 là bit nhận biết dữ liệu nhận được từ module tính cước để xuất ra máy tính.
Phần giao tiếp RS232:
Đây là phần kết nối giữa máy tính và phần cứng tính cước.
Trong đề tài này do không cần tốc độ truyền cao nên ta chọn giao tiếp mạch với máy tính thông qua cổng nối tiếp, thông thường có 2 cách ghép nối:
Cách đơn giản là dùng Transistor làm bộ đệm.
Ghép nối các đường truyền và nhận (TXD và RXD) của vi điều khiển với bộ đệm dùng vi mạch. Đề tài này em dùng MAX232.
Vi mạch MAX232 chuyển đổi mức TTL ở ngõ vào thành mức +10V (mức 1) hoặc -10V (mức 0) ở phía truyền và mức logic 1 (mức dấu) thành mức +3V à 15V hoặc mức logic 0 (mức trống) thành mức -3V à -15V thành mức TTL ở phía nhận.
Do trong đề tài ta sử dụng việc bắt tay giữa vi điều khiển và máy tính bằng phần mềm nên ta chỉ cần 3 đường truyền để truyền dữ liệu từ máy tính và ngược lại. Đó là 1 đường Mass được nối chung với Mass của mạch, 1 đường TXD và 1 đường RXD của máy tính được nối với vi mạch MAX232.
Nhiệm vụ của phần này, em xin được tóm tắt như sau:
Dữ liệu từ module tính cước được truyền đi theo chuẩn RS485 tới module giao tiếp qua IC SN75176 để chuyển sang tín hiệu TTL đưa đến phần xử lý trung tâm.
Từ đây lại đưa đến Max232 để đổi TTL à RS232 sau đó truyền qua cổng Com máy tính.
Các tụ được mắc theo thiết kế của nhà sản xuất.
Giao diện kết nối với vi tính _ dùng Visual Basic:
Đây là giao diện dành cho chủ bưu cục quản lý.
Khi Cabin nào gọi thì tất cả dữ liệu về cuộc gọi sẽ xuất lên Cabin đó.
Ví dụ: Cabin 1 đang gọi số thuê bao là 0907706660.
Thời gian cuộc gọi là 0 phút và 47 giây.
Tiền cuộc gọi là: 1800 VNĐ.
0907706660
00:47
1800 VNĐ
Lưu đồ giải thuật:
Lưu đồ giải thuật của phần tính cước:
Lưu đồ giải thuật của phần giao tiếp máy tính:
KẾT LUẬN
Ở đề tài luận văn này, em đã hoàn thành được những yêu cầu sau:
Hiển thị số bị gọi.
Hiển thị thời gian cuộc gọi.
Tính tiền và hiển thị tiền cuộc gọi.
Hiển thị số bị gọi, thời gian đàm thoại và tiền cuộc gọi lên giao diện máy tính.
Máy tính có thể quản lý được nhiều Cabin tính cước.
Mặc dù em đã cố gắng rất nhiều, nhưng vì kiến thức và kinh nghiệm còn hạn chế, vì vậy luận văn lần này còn nhiều thiếu sót như:
Không lưu được các cuộc gọi trước đó.
Không nạp được bảng giá cước từ máy vi tính.
Giao diện máy tính chưa đẹp.
Tính thẩm mỹ của mạch chưa cao.
Những thiếu sót này sẽ là hướng phát triển cho đề tài của em sau này.
Em rất mong những ý kiến đóng góp của thầy cô và các bạn để bổ sung vào phần kiến thức còn hạn chế của mình. Em xin chân thành cảm ơn !
TÀI LIỆU THAM KHẢO
CẤU TRÚC VÀ LẬP TRÌNH HỌ VI ĐIỀU KHIỂN 8051 - NGUYỄN TĂNG CƯỜNG, PHAN QUỐC THẮNG.
TRANG WEB GOOGLE: TRA CỨU DATASHEET CÁC LINH KIỆN: AT89C51, MT8870, OPTO 4N35,SN75176, MAX232, MAX485.
LUẬN VĂN TỐT NGHIỆP CỦA CÁC KHÓA TRƯỚC.
PHỤ LỤC: CÁC LINH KIỆN CHÍNH SỬ DỤNG TRONG MẠCH
AT89C51:
CẤU TRÚC PHẦN CỨNG:
Đặc điểm và chức năng hoạt động của các IC họ MSC- 51 hoàn toàn tương tự như nhau. Ở đây giới thiệu IC89C51 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất. Chúng có các đặc điểm được tóm tắt như sau:
8 KB EPROM bên trong.
128 Byte RAM nội.
4 Port xuất/nhập I/O 8 bit.
Giao tiếp nối tiếp.
64 KB vùng nhớ mã ngoài.
64 KB vùng nhớ dữ liệu ngoại.
Xử lý Boolean (hoạt động trên bit đơn).
210 vị trí nhớ có thể định vị bit.
4 µs cho hoạt động nhân hoặc chia.
KHẢO SÁT SƠ ĐỒ CHÂN AT89C51, CHỨC NĂNG TỪNG CHÂN:
40
Sơ đồ chân:
Vcc
XTAL.1
XTAL.2
PSEN\
ALE
EA\
RST
Vss
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
18
19
12 MHz
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
17
16
15
14
13
12
11
10
RD
WR
T1
T0
INT1
INT0
TXD
RXD
89C51
29
30
31
9
20
30pF
32
33
34
35
36
37
38
39
8
7
6
5
4
3
2
1
28
27
26
25
24
23
22
21
30pF
Chức năng các chân của AT89C51:
AT89C51 có tất cả 40 chân có chức năng như các đưng72 xuất nhập. Trong đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ.
Các Port:
Port 0: là Port có 2 chức năng ở các chân 32 – 39 của 89C51. Trong các thiết kế cờ nhớ không dùng bộ nhớ mở rộng, nó có chức năng như các đường I/O. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa các bus địa chỉ và bus dữ liệu.
Port 1: là Port I/O trên các chân 1 – 8. Các chân được ký hiệu từ P1.0,.., P1.7 có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho các thiết bị bên ngoài.
Port 2: là Port có tác dụng kép nên các chân 21 – 28 được dùng như các đường I/O hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.
Port 3: là Port có tác dụng kép nên các chân từ 10 – 17. Các chân của Port này có nhiều chức năng, các công dụng chuyển đổi liên hệ với các đặc tính đặc tính đặc biệt của 89C51 như ở bản sau:
Bit
Tên
Chức năng chuyển đổi
P3.0
RXT
Ngõ vào dữ liệu nối tiếp.
P3.1
TXD
Ngõ xuất dữ liệu nối tiếp.
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
INT0\
INT1\
T0
T1
WR\
RD\
Ngõ vào ngắt cứng thứ 0.
Ngõ vào ngắt cứng thứ 1.
Ngõ vào của TIMER/COUNTER thứ 0.
Ngõ vào của TIMER/COUNTER thứ 1.
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
Tín hiệu đọc bộ nhớ dữ liệu ngoài.
Các ngõ tín hiệu điều khiển:
Ngõ tín hiệu PSEN (Program Store Enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nối đến chân OE\ (Output Enable) của EPROM cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian Microcontroller 89C51 lấy lệnh. Các mã lệnh của chương trình được đọc vào từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 89C51 để giải mã lệnh. Khi 89C51 thi hành chương trình trong ROM nội PSEN sẽ ở mức logic 1.
Ngõ tín hiệu điều khiển ALE (Address Latch Enable):
Khi 89C51 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và bus dữ liệu, do đó phải tách các đường địa chỉ và dữ liệu. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.
Tín hiệu ra ở chân ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào xung lập trình cho EPROM trong 89C51.
Ngõ tín hiệu EA\ (External Access): Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc 0. Nếu ở mức 1, 89C51 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte. Nếu ở mức 0, 89C51 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho EPROM trong 89C51.
Ngõ tín hiệu RST (Reset): Ngõ vào RST ở chân 9 là ngõ vào Reset của 89C51. Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện, mạch tự động Reset.
Các ngõ vào bộ dao động X1, X2: Bộ dao động được tích hợp bên trong 89C51, khi sử dụng 89C51 người thiết kế chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số Thạch anh thường được sử dụng là 12Mhz.
Các chân nguồn: 89C51 vận hành với nguồn đơn 5V, Vcc (nguồn) được nối vào chân 40 và Vss (GND) được nối vào chân 20.
CẤU TRÚC BÊN TRONG 89C51:
Tổ chức bộ nhớ:
DATA
Memory
Enable
via
RD & WR
CODE Memory
Enable
via
PSEN
FFFF FFFF
FF
00
On – Chip 0000 0000
Memory
Bộ nhớ trên Chip
Hình : Tóm tắt các vùng nhớ của 89C51.
Hai đặc tính cần lưu ý:
Các thanh ghi và các Port xuất nhập đã được sắp xếp trong bộ nhớ và có thể được truy xuất trực tiếp như các địa chỉ bộ nhớ khác.
Ngăn sếp bên trong Ram nội nhỏ hơn so với RAM ngoài như trong các bộ vi xử lý khác.
Chi tiết về bộ nhớ RAM trên Chip:
RAM bên trong 89C51 được phân chia giữa các bank thanh ghi (00H à 1FH), RAM địa chỉ hoá từng bit (20H à 2FH), RAM đa dụng (30H à 7FH), và các thanh ghi chức năng đặc biệt (08H à FFH).
Bảng tóm tắt các vùng nhớ 89C51.
Bản đồ bộ nhớ data trên Chip như sau :
7F
RAM đa dụng
FF
F0
F7
F6
F5
F4
F3
F2
F1
F0
B
E0
E7
E6
E5
E4
E3
E2
E1
E0
ACC
D0
D7
D6
D5
D4
D3
D2
D1
D0
PSW
30
B8
-
-
-
BC
BB
BA
B9
B8
IP
2F
7F
7E
7D
7C
7B
7A
79
78
2E
77
76
75
74
73
72
71
70
B0
B7
B6
B5
B4
B3
B2
B1
B0
P.3
2D
6F
6E
6D
6C
6B
6A
69
68
2C
67
66
65
64
63
62
61
60
A8
AF
AC
AB
AA
A9
A8
IE
2B
5F
5E
5D
5C
5B
5A
59
58
2A
57
56
55
54
53
52
51
50
A0
A7
A6
A5
A4
A3
A2
A1
A0
P2
29
4F
4E
4D
4C
4B
4A
49
48
28
47
46
45
44
43
42
41
40
99
Không được địa chỉ hoá bit
SBUF
27
3F
3E
3D
3C
3B
3A
39
38
98
9F
9E
9D
9C
9B
9A
99
98
SCON
26
37
36
35
34
33
32
31
30
25
2F
2E
2D
2C
2B
2A
29
28
90
97
96
95
94
93
92
91
90
P1
24
27
26
25
24
23
22
21
20
23
1F
1E
1D
1C
1B
1A
19
18
8D
Không được địa chỉ hoá bit
TH1
22
17
16
15
14
13
12
11
10
8C
Không được địa chỉ hoá bit
TH0
21
0F
0E
0D
0C
0B
0A
09
08
8B
Không được địa chỉ hoá bit
TL1
20
07
06
05
04
03
02
01
00
8A
Không được địa chỉ hoá bit
TL0
1F
Bank 3
89
Không được địa chỉ hoá bit
TMOD
18
88
8F
8E
8D
8C
8B
8A
8