Đối với hệ thống điều khiển xa bằng mạng không dây thì giới hạn về khoảng cách là yếu điểm của kỹ thuật này, ngược lại với mạng điện thoại đã được mở rộng với quy mô toàn thế giới thì giới hạn xa không phụ thuộc vào khoảng cách đã mở ra một lối thoát mới trong lĩnh vực tự động điều khiển. Hiện nay, do nhu cầu trao đổi thông tin của người dân ngày càng tăng đồng thời việc gắn các thiết bị điện thoại ngày càng phổ biến rộng rãi, do đó việc sử dụng mạng điện thoại để truyền tín hiệu điều khiển là phương thức thuận tiện nhất, tiết kiệm nhiều thời gian cho công việc, vừa đảm bảo các tính năng an toàn cho các thiết bị điện gia dụng vừa tiết kiệm được chi phí sử dụng và đảm bảo an toàn cho tính mạng và tài sản của mỗi người dân. “Mạch điều khiển thiết bị điện từ xa thông qua mạng điện thoại” giúp ta điều khiển các thiết bị điện gia dụng khi không có ai ở nhà hoặc ở những môi trường nguy hiểm mà con người không thể làm việc được hoặc một dây chuyền sản xuất để thay thế con người. Chẳng hạn, muốn điều khiển các thiết bị điện trong nhà khi vắng người, ta quay số điện thoại về nhà và gởi mã lệnh đóng hay ngắt thiết bị thì mạch sẽ thực hiện. Khi mạch thực hiện xong lệnh của ta thì mạch sẽ gởi tín hiệu phản hồi cho ta biết mạch đã thực hiện xong lệnh hay chưa. “Mạch báo động từ xa qua mạng điện thoại và mạng internet” là một ứng dụng vô cùng hữu ích. Nó thể hiện sự hiện đại trong việc ứng dụng trong lĩnh vực thông tin. Chúng ta có thể biết tình trạng nguy hiểm như có trộm qua mạng điện thoại và gửi email đến địa chỉ mail đã lập trình.
Trang 1MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 Giới thiệu chung 1
1.2 Tóm tắt nội dung đề tài 3
1.2.1 Điều khiển thiết bị điện từ xa và báo trộm thông qua mạng điện thoại có phản hồi bằng giọng nói 3
1.2.2 Mục đích điều khiển thiết bị 3
1.2.3 Điều khiển hệ thống bằng máy tính 4
1.3 Phương án thiết kế 4
1.3.1 - Phương án 1: Dùng vi điều khiển với tín hiệu phản hồi và phát đi tiếng nói từ máy tính 4
1.3.2 - Phương án 2: Dùng vi điều khiển với tín hiệu phản hồi và phát đi tiếng nói từ IC thu, phát tiếng nói 5
1.3.3 - Lựa chọn phương án thiết kế 5
1.4 Sơ đồ khối của mạch 6
1.4.1 Sơ đồ khối của mạch 6
1.4.2 Nhiệm vụ từng khối 6
1.5 Giải thích mối quan hệ giữa các khối 8
CHƯƠNG 2: GIỚI THIỆU PHƯƠNG THỨC HOẠT ĐỘNG CỦA TỔNG ĐÀI VÀ THUÊ BAO 10
2.1 Giới thiệu chương 10
2.2 Giới thiệu phương thức làm việc của tổng đài 10
2.2.1 Đặc tính và các thông số cơ bản của điện thoại 10
2.2.2 Hệ thống âm hiệu giao tiếp giữa tổng đài và thuê bao 11
2.3 Phương thức làm việc giữa tổng đài và thuê bao 14
2.3.1 Phương thức làm việc giữa tổng đài và thuê bao 14
2.3.2 Vòng nội bộ 15
CHƯƠNG 3: GIỚI THIỆU CÁC LINH KIỆN DÙNG TRONG MẠCH 17
3.1 Vi điều khiển 89C51 17
3.1.1 Giới thiệu MSC-51 17
3.1.2 Sơ lược về các chân của 89C51 18
Trang 23.1.3 Khảo sát các khối bên trong 89c51 − tổ chức bộ nhớ 20
3.1.4 Hoạt động của bộ định thì timer 23
3.1.5 Hoạt động của bộ ngắt (INTERRUPT) 29
3.2 Giới thiệu IC thu DTMF – MT8870 33
3.2.1 Sơ đồ chân3.2.2 Sơ lược về các chân của 89C51 33
3.2.2 Giới thiệu các chân 33
3.2.3 Chức năng các chân 35
3.3 Giới thiệu về IC OPTO 4N35 38
3.3.1 Mô tả chung 38
3.3.2 Hình dạng và mô tả chân 39
3.3.3 Tính chất 39
3.4 Giới thiệu vi mạch MAX232 39
3.4.1 Mô tả chung 39
3.4.2 Chức năng 40
3.5 Giới thiệu về IC thu phát tiếng nói ISD1420 40
3.5.1 Mô tả chung 40
3.5.2 Chức năng 40
3.6 Giới thiệu IC LM324 41
3.6.1 Mô tả chung 41
3.6.2 Chức năng 41
3.7 Giới thiệu IC LM386 42
3.7.1 Mô tả chung 42
3.7.2 Chức năng 42
CHƯƠNG 4: THIẾT KẾ TÍNH TOÁN PHẦN MẠCH 43
4.1 Khối cảm biến chuông 43
4.2 Khối kết nối thuê bao 45
4.3 Khối giải mã DTMF 48
4.4 Khối phát tiếng nói 49
4.5 Khối khuếch đại âm thanh 52
4.6 Khối điều khiển thiết bị 53
4.7 Khối cảm biến hồng ngoại 54
4.8 Khối cảm biến tín hiệu đảo cực 55
Trang 34.9 Mạch chuông báo động 56
4.10 Khối giao tiếp với máy tính 57
4.11 Khối điều khiển trung tâm 58
CHƯƠNG 5: GIAO TIẾP MÁY TÍNH VỚI VI ĐIỀU KHIỂN 89C51 59
5.1 Ghép nối qua cổng nối tiếp 59
5.1.1 Giới thiệu chung 59
5.1.2 Một số yêu cầu 59
5.1.3 Đầu nối trên máy tính PC 60
5.1.4 Tốc độ truyền 62
5.2 Giao tiếp máy tính với Visual Basic 63
CHƯƠNG 6: THIẾT KẾ PHẦN MỀM 70
6.1 Giới thiệu chung 70
6.2 Lưu đồ thuật toán 70
6.2.1 Lưu đồ chương trình chính 70
6.2.2 Lưu đồ chương trình con DIEU_KHIEN 71
6.2.3 Lưu đồ chương trình con NHAN_TH_DTMF 72
6.2.4 Lưu đồ chương trình con THOI_GIAN_CHO-NHAN 73
6.2.5 Lưu đồ chương trình truyền dữ liệu lên máy tính 74
6.2.6 Lưu đồ chương trình con ngắt khi có trộm 74
6.2.7 Lưu đồ chương trình con ngắt nhận dữ liệu từ máy tính 75
6.2.8 Lưu đồ chương trình con XUNG và SO0, SO1, SO2, SO3, SO4, SO5, SO6, SO7, SO8, SO9 76
CHƯƠNG 7: PHỤ LỤC 78
7.1 Mô hình nhà 78
7.2 Mô hình mạch 80
7.3 Chương trình giao tiếp với máy tính VB6.0 81
7.3.1 Form1 81
7.3.2 Form2 82
7.3.3 Form3 89
7.4 Chương trình vi điều khiển AT89C51 91
Trang 4CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 GIỚI THIỆU CHUNG:
Đất nước ta đang trên đà phát triển và hội nhập với nền kinh tế thế giới Một đất
nước phát triển không thể dựa vào một ngành nông nghiệp, lâm nghiệp, ngư nghiệp
mà cần phải có một ngành công nghiệp phát triển mạnh Như vậy ngành công nghiệp
đó luôn đi đôi các thiết bị máy móc tinh vi hơn, hiện đại và phức tạp hơn Với nền
công nghiệp phát triển như thế, điều khiển từ xa đóng vai trò quan trọng trong công
cuộc công nghiệp hóa, hiện đại hóa đất nước
Trong công nghiệp, tại các lò phản ứng, các nhà máy hay ở những nơi có mức
độ nguy hiểm cao mà con người không thể tiếp cận điều khiển được, ta cần đến các bộ
điều khiển từ xa để điều khiển Trong công cuộc nghiên cứu vũ trụ, điều khiển từ xa
được sử dụng trong các phi thuyền không người lái, các tàu do thám không gian
Điều khiển từ xa không chỉ phục vụ cho công nghiệp, quân sự hay nghiên cứu
khoa học mà nó còn đóng góp một phần nhỏ vào phục vụ cho nhu cầu cuộc sống hàng
ngày của chúng ta
Trong công cuộc công nghiệp hóa, hiện đại hóa đất nước, con người phải lao
động cật lực, thường xuyên ở cơ quan, xí nghiệp, hay tại công trường nên ít có thời
gian ở nhà Vì vậy, điều khiển từ xa giúp chúng ta không cần phải về nhà mà cũng có
thể điều khiển đóng ngắt các thiết bị hoặc tự động báo cho ta biết khi ở nhà có sự cố
Dựa vào các ứng dụng thực tiễn của điều khiển từ xa ta có thể chia làm 2 dạng:
Điều khiển từ xa vô tuyến và điều khiển từ xa hữu tuyến
a- Điều khiển từ xa vô tuyến:
Có thể điều khiển từ xa bằng tia sáng hồng ngoại hay sóng siêu âm Môi trường
truyền là không khí Với tia hồng ngoại ta chỉ có thể điều khiển các thiết bị ở khoảng
cách gần Vì vậy nó được ứng dụng nhiều cho các thiết bị dân dụng
Trang 5b- Điều khiển từ xa hữu tuyến:
Với dạng điều khiển này ta lợi dụng vào đường truyền của điện thoại để điều
khiển các thiết bị từ xa Có thể sử dụng dây song hành, cáp đồng trục, cáp quang để
truyền tải tín hiệu
Đối với hệ thống điều khiển xa bằng mạng không dây thì giới hạn về khoảng
cách là yếu điểm của kỹ thuật này, ngược lại với mạng điện thoại đã được mở rộng với
quy mô toàn thế giới thì giới hạn xa không phụ thuộc vào khoảng cách đã mở ra một
lối thoát mới trong lĩnh vực tự động điều khiển
Hiện nay, do nhu cầu trao đổi thông tin của người dân ngày càng tăng đồng thời
việc gắn các thiết bị điện thoại ngày càng phổ biến rộng rãi, do đó việc sử dụng mạng
điện thoại để truyền tín hiệu điều khiển là phương thức thuận tiện nhất, tiết kiệm nhiều
thời gian cho công việc, vừa đảm bảo các tính năng an toàn cho các thiết bị điện gia
dụng vừa tiết kiệm được chi phí sử dụng và đảm bảo an toàn cho tính mạng và tài sản
của mỗi người dân
“Mạch điều khiển thiết bị điện từ xa thông qua mạng điện thoại” giúp ta
điều khiển các thiết bị điện gia dụng khi không có ai ở nhà hoặc ở những môi trường
nguy hiểm mà con người không thể làm việc được hoặc một dây chuyền sản xuất để
thay thế con người Chẳng hạn, muốn điều khiển các thiết bị điện trong nhà khi vắng
người, ta quay số điện thoại về nhà và gởi mã lệnh đóng hay ngắt thiết bị thì mạch sẽ
thực hiện Khi mạch thực hiện xong lệnh của ta thì mạch sẽ gởi tín hiệu phản hồi cho
ta biết mạch đã thực hiện xong lệnh hay chưa
“Mạch báo động từ xa qua mạng điện thoại và mạng internet” là một ứng
dụng vô cùng hữu ích Nó thể hiện sự hiện đại trong việc ứng dụng trong lĩnh vực
thông tin Chúng ta có thể biết tình trạng nguy hiểm như có trộm qua mạng điện thoại
và gửi email đến địa chỉ mail đã lập trình
Trang 61.2 TÓM TẮT NỘI DUNG ĐỀ TÀI:
1.2.1 Điều khiển thiết bị điện từ xa và báo trộm thông qua mạng điện
thoại có phản hồi bằng giọng nói
1.2.1.1 Mục đích báo trộm qua mạng điện thoại:
Khi phát hiện trộm, mạch sẽ tự động gọi đến 3 số thuê bao Nếu thuê bao nhấc
máy, mạch sẽ phát thông báo: "Có trộm, về ngay" Sau khoảng thời gian được lập trình
sẵn, mạch sẽ gọi đến thuê bao tiếp theo
1.2.1.2 Mục đích báo trộm qua mạng Internet:
Khi phát hiện trộm, đồng thời với việc mạch tự động gọi điện thông báo, hệ
thống sẽ kích hoạt gửi email đến địa chỉ gmail đã được ấn định với nội dung email
"Nhà bạn có trộm! Về ngay!", với tiêu đề "Báo động!"
1.2.2 Mục đích điều khiển thiết bị:
Để điều khiển các thiết bị, đầu tiên người điều khiển phải gọi đến số máy điện
thoại nơi lắp đặt thiết bị điều khiển Điện thoại được gọi có mạch điều khiển được mắc
song song với dây điện thoại Thiết bị muốn điều khiển được mắc vào mạch điều
khiển Sau một số hồi chuông nhất định đã được lập trình sẵn và có thể thay đổi được,
nếu không có ai nhấc máy thì mạch sẽ tự động điều khiển đóng tải giả để kết nối thuê
bao Khi kết nối thuê bao, người điều khiển sẽ nghe câu thông báo:" Đây là hệ thống
báo trộm và điều khiển thiết bị bằng điện thoại Xin mời nhấn phím *" Sau đó, người
điều khiển nhấn * thì sẽ nghe câu thông báo:" Xin mời nhập Password" Sau khi nhập
đúng Password, người điều khiển có thể xâm nhập vào hệ thống điều khiển thiết bị
Nếu nhập sai Password thì sẽ nghe câu thông báo: "Password sai", khi đó hệ
thống sẽ tắt tải giả thoát kết nối thuê bao
Nếu nhập đúng Password, người điều khiển sẽ nghe câu thông báo về trạng thái
các thiết bị hiện tại (ví dụ: "Đèn phòng khách mở, Đèn phòng ngủ tắt, Đèn ngoài trời
mở") Sau đó nghe câu " Xin mời nhập mã thiết bị" Muốn điều khiển thiết bị nào,
người điều khiển nhập vào mã thiết bị đó Ví dụ, muốn điều khiển Đèn phòng khách,
nhấn phím 1 Tiếp theo nhấn phím 0 nếu muốn Đèn phòng khách mở, hoặc nhấn phím
1 nếu muốn Đèn phòng khách tắt Tương tự với Đèn phòng ngủ, Đèn ngoài trời Nhấn
số 2 để chọn Đèn phòng ngủ, ấn 0 để mở Đèn phòng ngủ, hoặc ấn 1 để tắt Đèn phòng
Trang 7ngủ Ở đây, ta điều khiển 3 thiết bị Muốn bật cả 3 thiết bị, ta chỉ cần nhấn phím 4
Muốn tắt cả 3 thiết bị, ta chỉ cần nhấn phím 5
Sau khi điều khiển từng thiết bị hoặc tất cả các thiết bị như trên, người điều
khiển lại nghe câu thông báo về tình trạng các thiết bị sau khi đã điều khiển (ví dụ:
"Đèn phòng khách tắt, Đèn phòng ngủ mở, Đèn ngoài trời mở") Sau đó, nếu người
điều khiển muốn chọn lại mã số để điều khiển lại các thiết bị thì ấn phím #, nếu muốn
thoát kết nối thuê bao thì ấn phím *
1.2.3 Điều khiển hệ thống bằng máy tính:
Hệ thống này còn có thể được điều khiển bằng máy tính qua cổng COM bằng
giao thức RS232 Máy tính thông qua cổng COM sẽ làm 2 nhiệm vụ: thứ nhất sẽ
truyền dữ liệu để điều khiển các thiết bị đèn khi người điều khiển nhấn vào các Button
trên màn hình điều khiển (lúc đó Assembly sẽ nhận dữ liệu được máy tính truyền
xuống) ; thứ hai sẽ nhận các dữ liệu từ mạch truyền lên để nhận biết trạng thái các thiết
bị đèn là mở hay tắt (lúc đó Assembly sẽ truyền dữ liệu lên máy tính) Như vậy, thông
qua máy tính vừa điều khiển các thiết bị, vừa nhận biết được tình trạng các thiết bị
Đồng thời nhận biết được tình trạng có trộm hay không, nếu có trộm sẽ tự động gửi
email đến địa chỉ gmail đã được lập trình sẵn
1.3 PHƯƠNG ÁN THIẾT KẾ:
1.3.1 - Phương án 1: Dùng vi điều khiển với tín hiệu phản hồi và phát
đi tiếng nói từ máy tính:
Trong phương án này không sử dụng đến các bộ biến đổi A/D, D/A và không cần
mạch giao tiếp với RAM và ROM ngoài (vì bộ xử lý ở đây sử dụng họ vi điều khiển),
nên với phương pháp này thì mạch sẽ gọn hơn, dung lượng nhớ của âm thanh không bị
giới hạn, và ta có thể thay đổi âm thanh dễ dàng bằng máy tính Với việc thiết kế mạch
này thì các câu thông báo dễ dàng thay đổi, mạch thi công ít khối, đỡ cồng kềnh
Tuy nhiên, phương án này có nhược điểm là mạch chỉ hoạt động đúng yêu cầu
khi máy tính hoạt động Nếu có trộm xảy ra vào ban đêm thì mạch điều khiển không
phát tiếng nói theo đúng yêu cầu
Trang 81.3.2 - Phương án 2: Dùng vi điều khiển với tín hiệu phản hồi và phát
đi tiếng nói từ IC thu, phát tiếng nói:
Trong phương án này người điều khiển có thể điều khiển tại chỗ các thiết bị
bằng công tắc riêng ở bên ngoài mà không cần thông qua điện thoại
Trong phương án này dùng tiếng nói để phản hồi về người điều khiển Sự phản
hồi và phát đi bằng tiếng nói này do khối trung tâm ra lệnh Nội dung của tín hiệu phản
hồi và phát đi được lưu trữ bên trong IC chuyên dùng thu, phát âm thanh
Ưu điểm của phương án này là người điều khiển và người nhận báo động biết
chính xác trạng thái các thiết bị thông qua tiếng nói Hệ thống báo trộm và điều khiển
thiết bị hoạt động liên tục mà không cần sự hoạt động của máy tính để phát tiếng nói
1.3.3 - Lựa chọn phương án thiết kế:
Qua 2 phương án đã trình bày thì ta thấy phương án 2 là phương án hoàn chỉnh,
tiện ích nhất trong khi thiết kế và thi công mạch, mang tính hiện đại phù hợp với đề tài
tốt nghiệp Vì vậy em chọn phuơng án 2 Tuy nhiên đối với phương án này gặp nhiều
khó khăn bởi vì mạch điện phức tạp hơn, nhiều khối hơn, thi công khó khăn đặc biệt là
phần lưu trữ tiếng nói
Tóm lại: Trong đề tài: “Nghiên cứu thiết kế và lắp ráp hệ thống báo trộm và
điều khiển thiết bị điện qua mạng điện thoại - mạng Internet và giao tiếp máy
tính” em chọn phương án 2 để thiết kế và thi công Đây cũng chính là nội dung chính
của đề tài
Trang 91.4 SƠ ĐỒ KHỐI CỦA MẠCH:
1.4.1 Sơ đồ khối của mạch:
1.4.2 Nhiệm vụ từng khối:
1.4.2.1 Khối cảm biến chuông:
Khối cảm biến chuông được mắc song song với hai đường dây Tip và Ring của
thuê bao Khi tổng đài cấp tín hiệu chuông cho máy điện thoại thuê bao, thì khối này
có nhiệm vụ nhận biết tín hiệu chuông Bình thường khi không có tín hiệu chuông thì
ngõ ra ở mức logic cao và khi có tín hiệu chuông thì ngõ ra có mức logic thấp
Các tín hiệu khác như: tín hiệu thoại, tín hiệu tone, tín hiệu báo bận, hồi chuông
không tác động đến khối này Mặt khác, khối cảm biến chuông phải bảo đảm sự cách
ly về điện vì tín hiệu chuông có mức điện áp cao từ 75 Vrms - 90Vrms trong khi ngõ
KẾT NỐI THUÊ BAO
CẢM BIẾN TÍN HIỆU CHUÔNG
KHỐI
XỬ LÝ TRUNG TÂM ( VI ĐIỀU KHIỂN 89C51 )
ĐIỀU KHIỂN THIẾT BỊ
KHUẾCH ĐẠI
ÂM THANH
CÔNG TẤC BÊN NGOÀI
KHỐI GIAO TIẾP MÁY TÍNH
TIP
RING
CẢM BIẾN BÁO TRỘM
KHỐI PHÁT TIẾNG NÓI
KHỐI GIẢI
MÃ DTMF
KHỐI KẾT NỐI INTERNET
KHỐI BÁO ĐỘNG
Trang 10ra của khối phải phù hợp với mức logic 0 là 0V và mức logic 1 là 5V
1.4.2.2 Khối kết nối thuê bao:
Khi tổng đài cấp tín hiệu chuông cho thuê bao, thì khối cảm biến chuông nhận
biết được tín hiệu chuông và đưa đến khối xử lý trung tâm Khối xử lý trung tâm điều
khiển khối kết nối thuê bao, lúc này khối kết nối thuê bao có vai trò là đóng tải giả cho
thuê bao, để tổng đài cho thông thoại 2 thuê bao với nhau Khi khối này tác động thì
điện trở vòng của thuê bao giảm xuống thấp tạo nên động tác như có người nhấc máy
để tổng đài cho thông thoại với nhau Đồng thời khối này cũng phải bảo đảm được sự
truyền tín hiệu thoại từ thuê bao gửi đi hoặc nhận tín hiệu thoại từ phía thuê bao bên
kia gửi đến
1.4.2.3 Khối nhận và giải mã DTMF:
Khi tổng đài cho thông thoại giữa hai thuê bao, nếu trên đường dây thuê bao có
xuất hiện tín hiệu tone, thì khối này sẽ nhận được và giải mã chúng ra thành 4 bit
tương ứng Tín hiệu tone có 2 dãy tần số : một dãy có tần số từ 697HZ đến 941 HZ,
còn dãy kia có tần số từ 1209 HZ đến 1633 HZ Cả 2 dãy tần số này đều nằm trong
dãy thông thoại Khi một cặp tần số theo tiêu chuẩn DTMF xuất hiện cố định trên
đường dây thuê bao thì khối này có nhiệm vụ giải mã thành 4 bit tương ứng Đồng thời
mức logic của chân điều khiển ngõ ra của khối này phải đưa ra một xung ở mức logic
cao để tác động đến khối xử lý trung tâm và 4 bit tương ứng đã giải mã được đưa đến
khối giải mã và hiển thị
1.4.2.4 Khối phát tiếng nói:
Tiếng nói được lưu trữ bên trong IC ISD1420 khối này có nhiệm vụ báo cho
người điều khiển biết trạng thái của thiết bị và các bước thực hiện việc điều khiển thiết
bị cũng như việc báo trộm
1.4.2.5 Khối khuếch đại âm thanh:
Tín hiệu âm tần với biên độ tín hiệu bé không đủ sức tải trên đường dây thoại vì
vậy chúng được khuếch đại đủ lớn, một phần đưa ra loa, một phần tải trên đường dây
điện thoại để phản hồi về người điều khiển
Trang 111.4.2.6 Khối điều khiển thiết bị:
Khi nhận được lệnh tắt/ mở của khối xử lý trung tâm thì khối điều khiển thiết bị
sẽ kết nối tải
1.4.2.7 Khối giao tiếp máy tính:
Ngoài việc báo trộm và điều khiển qua điện thoại, hoạt động này có thể diễn ra
trên máy tính kết nối với mạch qua cổng COM Trên máy tính, người điều khiển có thể
bật, tắt thiết bị theo ý muốn mà không cần gọi điện
1.4.2.8 Khối kết nối Internet:
Đồng thời với việc báo trộm qua mạng điện thoại thì khối kết nối Internet giúp
thông báo tình trạng trộm bằng cách gửi mail đến địa chỉ email đã lập trình sẵn Công
việc này được thực hiện ở giao diện chương trình giao tiếp máy tính: Visual Basic
1.4.2.9 Khối cảm biến báo trộm:
Khối cảm biến báo trộm giúp phát hiện trộm đưa tín hiệu đến khối xử lý trung
tâm Nhờ đó thực hiện các công việc tiếp theo: điện thoại báo cho chủ nhà và gửi
email tự động thông báo cho chủ nhà biết
1.5 GIẢI THÍCH MỐI QUAN HỆ GIỮA CÁC KHỐI :
Khi người điều khiển từ xa gọi số máy của điện thoại ở nơi cần điều khiển thì
tổng đài cấp tín hiệu chuông cho thuê bao nếu thuê bao đó không bận Mạch điều
khiển được mắc song song vào đường dây của thuê bao Lúc này, khối cảm biến
chuông phát hiện tín hiệu này và ngõ ra thay đổi mức logic từ cao xuống thấp Sự thay
đổi mức logic này tác động vào bộ đếm tín hiệu chuông Sau khi khối cảm biến tín
hiệu chuông nhận đủ số lần chuông đã được lập trình sẽ tác động vào khối kết nối thuê
bao Khối kết nối thuê bao sẽ đóng tải giả vào đường dây điện thoại Lúc này tổng đài
ngưng cấp tín hiệu chuông và kết nối thông thoại cho 2 thuê bao
Khi đã thông thoại, người điều khiển nhấn đúng mã password thì hệ thống sẽ sẵn
sàng nhận lệnh điều khiển Nếu nhấn sai mã password thì khối tạo âm hiệu sẽ phát ra
âm hiệu mã password bị sai Sau khi người điều khiển bấm đúng mật mã, người điều
khiển sẽ bấm mã chọn thiết bị muốn điều khiển Lúc này khối nhận và giải mã DTMF
sẽ giải mã số bấm thành mã nhị phân 4 bit gởi vào khối xử lý trung tâm Khối xử lý
Trang 12nhận mã thiết bị, đọc cơ sở dữ liệu của thiết bị đó và điều khiển khối báo tiếng nói để
báo trạng thái hiện thời của thiết bị nhằm mục đích cho người điều khiển biết được
trạng thái của thiết bị Khi biết được trạng thái của thiết bị người điều khiển sẽ nhấn
lệnh tắt – mở từng thiết bị Việc nhận dạng phím nào bị nhấn được khối giải mã
DTMF quyết định
Khi người điều khiển nhấn 1 phím, một cặp tần số DTMF truyền trên đường dây
điện thoại Tần số này nằm trên dãy thông của tín hiệu thoại, một tần số cao và một tần
số thấp nên không thể trùng lấp với tín hiệu người nói Khi giải mã DTMF và hiển thị
số được nhấn, 4 bit được giải mã đưa vào khối xử lý trung tâm để xử lí
Người điều khiển có thể gác máy bất cứ lúc nào muốn ngừng điều khiển, mạch sẽ tự
động ngắt kết nối thuê bao sau một khoảng thời gian nhất định để giải tỏa thuê bao
Khối giao tiếp máy tính ngoài nhiệm vụ truyền dữ liệu xuống mạch (điều khiển thiết
bị ở máy tính) và nhận dữ liệu từ mạch lên máy tính thì nó còn sử dụng giao diện giao tiếp
máy tính để thực hiện công việc kết nối Internet là gửi email tự động
Trang 13CHƯƠNG 2 GIỚI THIỆU PHƯƠNG THỨC HOẠT ĐỘNG CỦA
TỔNG ĐÀI VÀ THUÊ BAO
2.1 GIỚI THIỆU CHƯƠNG:
Chương này cung cấp cho chúng ta cái nhìn tổng quan về những phương thức
hoạt động của tổng đài và các thuê bao
2.2 GIỚI THIỆU PHƯƠNG THỨC LÀM VIỆC CỦA TỔNG ĐÀI:
2.2.1 Đặc tính và các thông số cơ bản của điện thoại:
Tổng đài được kết nối với các thuê bao qua 2 đường TIP và RING Thông qua 2
đường dây này thông tin từ tổng đài qua các thuê bao được cấp bằng nguồn dòng từ
25mA đến 40mA (trung bình chọn 35mA) đến cho máy điện thoại
Tổng trở DC khi gác máy lớn hơn từ 20KΩ
Tổng trở AC khi gác máy từ 4KΩ đến 10KΩ
Tổng trở DC khi nhấc máy nhỏ hơn từ 1KΩ (từ 0,2KΩ đến 0,6KΩ)
Bảng 2.1 - Các thông số và giới hạn của máy điện thoại:
Thông số Các giá trị mẫu Giá trị sử dụng Dòng làm việc 20 mA ÷ 80 mA 20 mA ÷ 120 mA
Băng thông làm việc: 300Hz ÷ 3400Hz
Tỷ số S/N ≥ 29,5dB
Tổng trở điện thoại 600Ω
Dòng điện qua điện thoại 5 ÷ 30mA
Điện áp khi gác máy 48VDC
Trang 142.2.2 Hệ thống âm hiệu giao tiếp giữa tổng đài và thuê bao:
2.2.2.1 Tín hiệu mời quay số (dialtone): là tín hiệu sin tần số f = 425+25Hz,
biên độ 2V trên nền DC phát liên tục
Hình 2.1 - Tín hiệu mời quay số
2.2.2.2 Tín hiệu quay số (dialtone): là tín hiệu sin tần số f = 425+25Hz, biên
độ 2V trên nền DC phát ngắt quãng 0,5 giây có 0,5 giây không
Hình 2.2 - Tín hiệu quay số
2.2.2.3 Tín hiệu hồi âm chuông (ring-back tone): là tín hiệu sin tần số
f=425+25Hz, biên độ 2V trên nền DC 10V, phát ngắt quãng 2 giây có 4 giây không
Hình 2.3 - Tín hiệu hồi âm chuông
0,5s 0,5s
4s 2s
10V
Trang 152.2.2.4 Tín hiệu chuơng:
Phương thức quay số DTMF và PULSE:
Khi cĩ một phím được nhấn thì trên đường dây sẽ xuất hiện hai tần số khác
nhau thuộc nhĩm tần số thấp và tần số cao
Phương pháp tần ghép này chống nhiễu tốt hơn, ngồi ra dùng dạng tone DTMF
sẽ tăng được tốc độ cao gấp 10 lần so với việc quay số bằng PULSE
chuỗi dự án = 10Hz, số điện thoại bằng số xung ra, riêng số 0 sẽ là 10 xung, biên độ ở
mức cao là 48V, ở mức thấp là 10V, dạng sĩng được cho ở hình dưới:
Hình 2.4 - Phương pháp quay số PULSE
a : thời gian ở 10V
b : thời gian làm việc (thời gian ở 48V)
c : thời gian giữa hai lần quay số trong một cuộc gọi
Số xung trên 1 giây là 10 ÷ 20 pulse/giây
hiệu với tần số dao động khác nhau tương ứng với số muốn quay
(DTMF: Dual Tone Multi Frequence) theo bảng sau:
Bảng 2.2 - Bảng phân loại tần số TONE
Phím số Nhóm fthấp Nhóm fcao
0v
Trang 16 Kết nối thuê bao:
Tổng đài nhận được các số liệu sẽ xem xét:
Nếu các đường dây nối thông thoại đều bị bận thì tổng đài sẽ cấp tín hiệu báo
bận
Nếu đường dây nối thông thoại không bận thì thì tổng đài sẽ cấp cho người bị
gọi tín hiệu chuông và người gọi tín hiệu hồi chuông Khi người được gọi nhấc máy,
tổng đài nhận biết trạng thái này, thì tổng đài ngưng cấp tín hiệu chuông để không làm
hư mạch thoại và thực hiện việc thông thoại Tín hiệu trên đường dây đến máy điện
thoại tương ứng với tín hiệu thoại cộng với giá trị khoảng 300mV đỉnh – đỉnh Tín
hiệu ra khỏi máy điện thoại chịu sự suy hao trên đường dây với mất mát công suất
trong khoảng 10dB đến 25dB Giả sử suy hao là 20dB, suy ra tín hiệu ra khỏi máy điện
thoại có giá trị khoảng 3V đỉnh – đỉnh
Ngưng thoại:
Khi một trong hai thuê bao gác máy, thì tổng đài nhận biết trạng thái này, cắt
thông thoại cho cả 2 máy đồng thời cấp tín hiệu báo bận cho máy còn lại
Tín hiệu thoại:
Tín hiệu thoại trên đường dây là tín hiệu điện mang các thông tin có nguồn gốc
từ âm thanh trong quá trình trao đổi giữa 2 thuê bao Trong đó, âm thanh được tạo ra
bởi các dao động cơ học, nó truyền trong môi trường dẫn âm
Trang 17Khi truyền đi trong mạng điện thoại là tín hiệu thường bị méo dạng do những
lý do: nhiễu, suy hao tín hiệu trên đường dây do bức xạ sóng trên đường dây với các
tần số khác nhau Để đảm bảo tín hiệu thoại nghe rõ và trung thực, ngày nay trên mạng
điện thoại người ta sử dụng tín hiệu thoại có tần số từ 300 Hz ÷ 3400 Hz
2.3 PHƯƠNG THỨC LÀM VIỆC GIỮA TỔNG ĐÀI VÀ THUÊ
BAO:
2.3.1 Phương thức làm việc giữa tổng đài và các thuê bao:
Tổng đài nhận dạng thuê bao gọi nhấc máy thông qua sự thay đổi tổng trở mạch
vòng của đường dây thuê bao Bình thường khi thuê bao ở vị trí gác máy điện trở mạch
vòng là rất lớn Khi thuê bao nhấc máy, điện trở mạch vòng thuê bao giảm xuống còn
khoảng từ 150Ω đến 1500Ω Tổng đài có thể nhận biết sự thay đổi tổng trở mạch vòng
này (tức là thay đổi trạng thái của thuê bao) thông qua các bộ cảm biến trạng thái
Tổng đài cấp âm hiệu mời quay số (DialTone) cho thuê bao DialTone là tín hiệu mời
quay số hình sin có tần số 425 ± 25 Hz Khi thuê bao nhận biết được tín hiệu
DialTone, người gọi sẽ hiểu là được phép quay số Người gọi bắt đầu tiến hành gửi các
xung quay số thông qua việc quay số hoặc nhấn phím chọn số Tổng đài nhận biết
được các số được quay nhờ vào các chuỗi xung quay số phát ra từ thuê bao gọi Thực
chất các xung quay số là các trạng thái nhấc máy hoặc gác máy của thuê bao Nếu các
đường kết nối thông thoại bị bận hoặc thuê bao được gọi bị bận thì tổng đài sẽ phát tín
hiệu báo bận cho thuê bao Âm hiệu này có tần số f = 425 ± 25 Hz ngắt nhịp 0,5 giây
có 0,5 giây không Tổng đài nhận biết các thuê bao gọi đến và nhận xét:
Nếu số đầu nằm trong tập thuê bao thì tổng đài sẽ phục vụ như cuộc gọi nội đài
Nếu số đầu là số qui ước gọi ra thì tổng đài sẽ phục vụ như cuộc gọi liên đài
qua trung kế và gửi toàn bộ phần định vị số quay sang tổng đài đối phương để giải mã
Nếu số đầu là mã gợi có chức năng đặc biệt, tổng đài sẽ thực hiện các chức
năng đó theo yêu cầu của thuê bao Thông thường, đối với tổng đài nội bộ có dung
lượng nhỏ vài chục đến vài trăm số, có thêm nhiều chức năng đặc biệt làm cho phương
thức phục vụ thuê bao thêm phong phú, tiện lợi, đa dạng, hiệu quả cho người sử dụng
làm tăng khả năng khai thác và hiệu suất sử dụng tổng đài
Nếu thuê bao được gọi rảnh, tổng đài sẽ cấp tín hiệu chuông cho thuê bao với
điện áp 90Vrms (AC), f = 25Hz, chu kỳ 2 giây có 4 giây không Đồng thời, cấp âm
Trang 18hiệu hồi chuông (Ring Back Tone) cho thuê bao gọi, âm hiệu này là tín hiệu sin f =
425±25 Hz cùng chu kỳ nhịp với tín hiệu chuông gởi cho thuê bao được gọi
Khi thuê bao được gọi nhấc máy, tổng đài nhận biết trạng thái máy này tiến
hành cắt dòng chuông thuê bao bị gọi kịp thời tránh hư hỏng đáng tiếc cho thuê bao
Đồng thời, tiến hành cắt âm hiệu Ring Back Tone cho thuê bao gọi và tiến hành nối
thông thoại cho 2 thuê bao
Tổng đài giải tỏa một số thiết bị không cần thiết để tiếp tục phục vụ cho các
cuộc đàm thoại khác
Khi hai thuê bao đang đàm thoại mà một thuê bao gác máy, tổng đài nhận biết
trạng thái gác máy này, cắt thông thoại cho cả hai bên, cấp tín hiệu bận (Busy Tone)
cho thuê bao còn lại, giải toả link để phục vụ cho các đàm thoại khác Khi thuê bao
còn lại gác máy, tổng đài xác nhận trạng thái gác máy, cắt âm hiệu báo bận, kết thúc
chương trình phục vụ thuê bao
Tất cả hoạt động nói trên của tổng đài điện tử đều được thực hiện một cách
hoàn toàn tự động nhờ vào các mạch điều khiển bằng điện tử, điện thoại viên có thể
theo dõi trực tiếp toàn bộ hoạt động của tổng đài ở mọi thời điểm nhờ vào các bộ hiển
thị, cảnh báo
2.3.2 Vòng nội bộ:
Hình 2.5 - Đường Tip và Ring của vòng nội bộ
Vòng nội bộ của thuê bao là một đường hai dây cân bằng nối với đài cuối Trở
kháng đặc tính khoảng 500 Ω đến 1000 Ω (thường là 600 Ω)
Một nguồn chung của đài cuối cung cấp nguồn 48VDC cho mỗi vòng thuê bao
Hai dây dẫn được nối với Tip và Ring, thuật ngữ dùng để mô tả jack điện thoại
Đường Ring có điện thế -48V đối với Tip Tip được nối đất (chỉ nối với DC) ở đầu
cuối
Trang 19Khi thuê bao nhấc máy (off hook) làm đóng tiếp điểm chuyển mạch tạo nên
một dòng điện xấp xỉ 20mADC chạy trong vòng thuê bao Ở chế độ off hook, điện thế
rơi trên đường Tip và Ring khoảng từ 4V đến 9V ở thiết bị đầu cuối của thuê bao điện
thoại Tín hiệu thoại âm tần được truyền trên mỗi hướng của đường dây khi có sự thay
đổi nhỏ của dòng điện vòng Sự thay đổi của dòng điện gồm tín hiệu AC chồng chập
với dòng điện vòng DC
Trang 20CHƯƠNG 3 GIỚI THIỆU CÁC LINH KIỆN DÙNG TRONG MẠCH
3.1 GIỚI THIỆU VI ĐIỀU KHIỂN 89C51:
3.1.1 Giới thiệu MSC-51: ( MSC-51: family overview)
MCS-51 là một họ IC điều khiển (micro controller), được chế tạo và bán trên
thị trường bởi hãng Intel của Mỹ Họ IC này được cung cấp các thiết bị bởi nhiều hãng
sản xuất IC khác trên thế giới chẳng hạn: nhà sản xuất IC SIEMENS của Đức,
FUJITSU của Nhật và PHILIPS của Hà Lan Mỗi IC trong họ đều có sự hoàn thiện
riêng và có sự hãnh diện riêng của nó, phù hợp với nhu cầu của người sử dụng và yêu
cầu đặt ra của nhà sản xuất IC 89C51 là IC tiêu biểu trong họ MCS-51 được bán trên
thị trường Tất cả các IC trong họ đều có sự tương thích với nhau và có sự khác biệt là
sản xuất sau có cái mới mà cái sản xuất trước không có, để tăng thêm khả năng ứng
dụng của IC đó Chúng có đặc điểm như sau:
- 4k byte ROM (được lập trình bởi nhà sản xuất, chỉ có trong 8051)
Hình 3.1: Cấu trúc họ MSC - 51
Trang 21- 128 byte RAM
- 4 Port I/O 8 bit
- 2 bộ định thời 16 bit
- Giao tiếp nối tiếp
- 64k không gian bộ nhớ chương trình mở rộng
- 64k không gian bộ nhớ dữ liệu mở rộng
- Một bộ xử lý (thao tác trên các bit đơn)
- 210 bit được địa chỉ hóa
- Bộ nhân /chia 4 bit
3.1.2 Sơ lược về các chân của 89C51:
89C51 là IC vi điều khiển (Microcontroller) do hãng intel sản xuất 89C51 có
tất cả 40 chân có chức năng như các đường xuất nhập Trong đó có 24 chân có tác
dụng kép, mỗi đường có thể hoạt động như các đường xuất nhập hoặc như các đường
điều khiển hoặc là thành phần của bus dữ liệu
a/ Chức năng các chân của 89C51:
Port 0:
Port 0 là port có hai chức năng ở các chân từ 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 vào ra
Port 1:
Port 1 là port I/O ở các chân từ 1 ÷ 8 Các chân được ký hiệu là P0.0, P0.1,
P0.2, … P1.7, có thể dùng cho giao tiếp với các thiết bị bên ngoài nếu cần Port 1
không có chức năng khác vì vậy nó chỉ dùng cho giao tiếp với các thiết bị bên ngoài
Trang 22(chẳng hạn ROM, RAM, 8255, 8279, …)
Port 2:
Port2 là một port có tác dụng kép ở các chân từ 21 ÷ 28 được dùng như các
đường xuất nhập hoặc là các byte cao của bus địa chỉ đối với các thiết kế cỡ lớn
Port3:
Port3 là một port có tác dụng kép từ chân 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 có liên hệ với đặc tính đặc biệt của 8951
như bảng sau:
Bảng 3.1: Chức năng của các chân Port 3
- Ngõ tín hiệu PSEN\ (Progam 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 và thường được nối với 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 lấy lệnh Các mã nhị phân của chương trình
được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi bên trong 89C51 để
giải mã lệnh Khi thi hành chương trình trong ROM nội (89C51) thì PSEN\ sẽ ở mức
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à địa chỉ và dữ liệu
do đó phải tách đườ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 với IC chốt Tín hiệu ra ở ALE là một xung trong
khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên nên chốt địa chỉ hoàn toàn tự
Trang 23động Các xung tín hiệu ALE có tốc độ bằng 1/6 tần số dao động trên vi điều kkiển 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: truy xuất dữ liệu bên ngoài):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0 Nếu ở
mức 1 thì 89C51 thi hành chương trình trong ROM nội trong khoảng địa chỉ thấp 4k
Nếu ở mức 0 thì 89C51 thi hành chương trình từ bộ nhớ mở rộng (vì 89C51 không có
bộ nhớ chương trình trên chip) Chân EA\ được lấy làm chân cấp nguồn 21V lập trình
cho EPROM trong 89C51
- Ngõ tín hiệu RST (Reset):
Ngõ tín hiệu RST ở chân 9 và ngõ vào Reset của 89C51 Khi ngõ vào tín hiệu
đưa lên mức 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
- Ngõ vào bộ dao động XTAL1, XTAL2:
Bộ tạo dao động được tích hợp bên trong 8951, khi sử dụng 89C51 người thiết
kế cần ghép nối thêm tụ, thạch anh Tần số thạch anh được sử dụng cho 89C51 là
12MHz
- Nguồn cho 89C51:
Nguồn cho 89C51 được cung cấp ở 2 chân là 20 và 40 cấp GND và Vcc Nguồn
cung cấp ở đây là +5V
Khả năng của tải Port 0 là LS –TTL của port 1, 2, 3 là 4LS –TTL Cấu trúc của
port được xây dựng từ FET làm cho port có thể xuất nhập dễ dàng Khi FET tắt thì
port dễ dàng dùng chức năng xuất Khi FET hoạt động thì port làm chức năng nhập thì
khi đó ngõ nhập mức cao sẽ làm hỏng port
3.1.3 Khảo sát các khối bên trong 89C51 − tổ chức bộ nhớ:
Bộ nhớ trong 89C511 ba gồm ROM và RAM RAM trong 89C51 bao gồm
nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng đặc biệt 89C51 có cấu trúc bộ nhớ theo kiểu
Harvard: có những vùng nhớ riêng biệt cho chương trình và dữ liệu Chương trình và
dữ liệu có thể chứa bên trong 89C51, nhưng 89C51 vẫn có thể kết nối với 64 kbyte
chương trình và 64 kbyte dữ liệu
Trang 24Các thanh ghi và các port xuất nhập đã được định vị (được định vị có nghĩa là
xác định) trong bộ nhớ và có thể truy xuất trực tiếp giống như các bộ nhớ địa chỉ khác
Ngăn xếp bên trong RAM nội nhỏ hơn so với ROM ngoại như các bộ vi xử lý
khác RAM bên trong 89C51 được phân chia như sau:
- Các Bank thanh ghi có địa chỉ 00H ÷ 1FH
- RAM địa chỉ hóa từng bit có địa chỉ 20H ÷ 2FH
- RAM đa dụng có địa chỉ 30H ÷ 7FH
Các thanh ghi có chức năng đặc biệt 80H ÷ FFH
Hình 3.3: Các khối bên trong của IC 89C51
Trang 25a/.RAM đa dụng:
Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H÷7FH 32
địa chỉ dưới từ 00H ÷ 1FH cũng có thể được dùng với mục đích tương tự (mặc dù các
địa chỉ này cũng đã định với mục đích khác)
Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu địa
chỉ gián tiếp hoặc trực tiếp Ví dụ: để đọc nội dung ở địa chỉ 5FH của RAM nội vào
thanh ghi tích lũy A, có thể dùng một trong hai cách sau:
- Cách 1: MOV A, #5FH
- Cách 2: Ngoài cách trên RAM bên trong cũng có thể được truy xuất bằng cách
dùng địa chỉ gián tiếp hoặc trực tiếp qua R0 hay R1:
MOV R0, #5FH
MOV A, @R0
Lệnh đầu tiên dùng để nạp địa chỉ tức thời #5FH vào thanh ghi R0, lệnh thứ 2
dùng để chuyển nội dung của ô nhớ có địa chỉ mà R0 đang chỉ tới vào thanh ghi tích
lũy A
b/ RAM địa chỉ hóa từng bit:
8951 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit chứa các byte có địa chỉ
từ 20H ÷ 2FH và các bit còn lại chức trong nhóm thanh ghi có chứa năng đặc biệt
Ý tưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của vi điều
khiển nói chung Các bit có thể được đặt, xóa, and, or …, với một lệnh đơn Mà điều
này đối với vi xử lý đòi hỏi phải có một chuỗi lệnh đọc – sửa – ghi để đạt được mục
đích tương tự như vi điều khiển Ngoài ra các port cũng có thể truy xuất được từng bit
làm đơn giản đi phần mềm xuất nhập từng bit 128 bit truy xuất từng bit này cũng có
thể truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng
Ví dụ: để đặt bit thứ 57 ta dùng lệnh sau:
SETB 57H
c/.Các Bank thanh ghi:
32 byte thấp của bộ nhớ RAM nội được dùng cho các bank thanh ghi Bộ lệnh
8051 hỗ trợ 8 thanh ghi nói trên có tên là R0 ÷ R7 và theo mặc định khi reset hệ thống,
các thanh ghi này có địa chỉ từ 00H ÷ 07H
Trang 26Ví dụ: lệnh sau đây sẽ đọc nội dung của ô nhớ có địa chỉ 05H vào thanh ghi A
MOV A, R5
Đây là lệnh 1 byte dùng địa chỉ thanh ghi Tuy nhiên yêu cầu trên có thể thi hành
bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai:
MOV A,#05H
Các lệnh dùng các thanh ghi R0 ÷ R7 sẽ ngắn hơn và nhanh hơn so với các lệnh
có chức năng tương tự dùng kiểu địa chỉ trực tiếp Các dữ liệu được dùng thường
xuyên nên dùng một trong các thanh ghi này Do có 4 bank thanh ghi nên tại một thời
điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi R0 ÷ R7 Để chuyển
đổi việc truy xuất các bank thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi
trong thanh ghi trạng thái Giả sử bank thanh ghi thứ 3 đang được truy xuất lệnh sau
đây sẽ chuyển nội dung của thanh ghi A vào ô nhớ RAM có địa chỉ 18H:
MOV R0,A
3.1.4 Hoạt động của bộ định thì timer:
a/ Giới thiệu:
Một định nghĩa đơn giản của timer là một chuỗi các flip – flop chia đôi tần số
nối tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhịp Ngõ ra của tầng cuối
làm xung nhịp cho flip – flop báo tràn của timer (flip – flop cờ) Giá trị nhị phân trong
các flip – flop của timer có thể xem như đếm số xung nhịp (hoặc các sự kiện) từ khởi
động timer Ví dụ timer 16 bit sẽ đếm từ 0000H đến FFFFH Cờ báo tràn sẽ lên 1 khi
số đếm tràn từ FFFFH đến 0000H 89C51 có 2 timer 16 bit, mỗi timer có 4 cách làm
việc Người ta sử dụng các timer để:
- Định khoảng thời gian
- Đếm sự kiện
- Tạo tốc độ baud cho port nối tiếp trong 89C51
Trong các ứng dụng định nghĩa khoảng thời gian, người ta sử dụng lập trình
timer ở một khoảng đều đặn và đặt cờ tràn timer Cờ được sử dụng để đồng bộ hóa
chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc
gởi sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều
đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ: đo độ rộng xung) Đếm
sự kiện dùng để xác định số lần xảy ra của một số sự kiện Một “sự kiện” là bất cứ tác
Trang 27động ngoài nào có thể cung cấp một chuyển trạng thái trên một chân của 89C51
b/ Thanh ghi chế độ timer (TMOD):
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho timer 0
và timer 1
Bảng 3.2: Tóm tắt thanh ghi TMOD
c/ Thanh ghi điều khiển timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và
timer 1
Bảng 3.3: Tóm tắt thanh ghi TCON
Cờ báo tràn timer Đặt bởi phần cứng khi tràn, được xóa bởi phần mềm hoặc phần cứng khi bộ xử lí chỉ đến chương trình phục
vụ ngắt
TCON.6
TR1 8EH Bit điều khiển timer1 chạy Đặt/ xóa bằng
timer để cho phần mềm chạy/ ngưng
TCON.5 TF0 8DH Cờ báo tràn timer 0
TCON.4 TR0 8CH Bit điều khiển timer chạy
Trang 28TCON.1
IE0 89H Cờ cạnh ngắt 0 bên ngoài
TCON.0 ITO 88H Cờ kiểu ngắt 0 bên ngoài
d/ Chế độ TIMER:
Chế độ 1 – Chế độ TIMER 16 BIT:
Hoạt động như timer 16 bit đầy đủ
Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phần mềm MSB
của giá trị trong thanh ghi timer là bit 7 của THx và LSB là bit 0 của TLx Các thanh
ghi timer (TLx/THx) có thể đọc hoặc ghi bất cứ lúc nào bằng phần mềm
Định khoảng thời gian (interval timing):
Nếu C/T = 0 hoạt động timer liên tục được chọn vào timer được dùng cho việc
định khoảng thời gian Lúc đó, timer lấy xung nhịp từ bộ dao động trên chip Bộ chia
12 được thêm vào để giảm tần số xung nhịp đến giá trị thích hợp cho các ứng dụng
Hình 3.4: Chế độ Timer 16 bit
Trang 29Như vậy, thạch anh 12 MHz sẽ cho tốc độ xung nhịp timer 1 MHz Báo tràn timer xảy
ra sau một số (cố định) xung nhịp, phụ thuộc vào giá trị ban đầu được nạp vào các
thanh ghi timer TLx/THx
Đếm sự kiện (Event Counting):
Nếu C/T=1, timer lấy nguồn xung nhịp từ bên ngoài Trong hầu hết các ứng
dụng, nguồn bên ngoài này cung cấp cho timer một xung khi xảy ra một sự kiện –
timer dùng đếm sự kiện Số sự kiện được xác định bằng phần mềm bằng cách đọc các
thanh ghi TLx/THx vì giá trị 16 bit trong thanh ghi này tăng thêm một cho mỗi sự
kiện
Nguồn xung nhịp ngoài có từ thay đổi chức năng của các port 3, bit 4 của port 3
(P3.4) dùng làm ngõ vào tạo xung nhịp bên ngoài cho timer 0 và được gọi là “T0” Và
P3.5 hay “T1” là ngõ vào tạo xung nhịp cho timer 1
Trong các ứng dụng bộ đếm, các thanh ghi Timer được tăng thêm 1 tương ứng
với chuyển từ 1 xuống 0 ở ngõ vào bên ngoài: Tx, ngõ vào bên ngoài được lấy mẫu
trong S5P2 của mọi chu kỳ máy Như vậy, khi ngõ vào cao trong một chu kỳ và thấp
trong một chu kỳ kế thì số đếm được tăng thêm một Giá trị mới được xuất hiện trong
các thanh ghi trong S3P1 của chu kỳ theo sau chu kỳ trong đó phát hện sự chuyển tiếp
Do đó, mất 2 chu kỳ máy (2µs) để ghi nhận sự chuyển 1 sang 0, tần số ngoài tối đa là
500KHz (giả sử hoạt động ở 12 MHz)
Bắt đầu, dừng và điều khiển các Timer:
Phương pháp đơn giản nhất để bắt đầu (cho chạy) và dừng các timer là dùng các
bit điều khiển chạy: TRx trong TCON TRx bị xóa sau khi Reset hệ thống Như vậy,
các timer theo mặc nhiên là bị cấm (bị dừng) TRx được đặt lên 1 bằng phần mềm để
cho các timer chạy
Hình 3.5: Bắt đầu dừng và điều khiển Timer
Trang 30Vì TRx ở trong thanh ghi TCON có địa chỉ bit, nên dễ dàng cho việc điều khiển
các timer trong chương trình
Ví dụ, cho timer 0 chạy bằng lệnh: SETB TR0
và dừng bằng lệnh: CLR TRO Trình biên dịch sẽ thực hiện việc chuyển đổi ký hiệu cần thiết từ “TR0” sang địa chỉ bit đúng SETB TR0 chính xác giống như SETB 8CH
Một phương pháp khác để điều khiển các timer là dùng bit GATE trong TMOD
và ngõ vào bên ngoài INTx Đặt GATE =1 cho phép timer sẽ được điều khiển bằng
INTx Việc này rất hiệu dụng cho việc đo độ rộng xung như sau: Giả sử INT0 ở mức
thấp nhưng các xung ở mức cao trong khoảng thời gian đo Khởi động timer 0 ở chế
độ 2 (chế độ timer 16 bit), với TL0/TH0=0000H, Gate = 1 và TR0 = 1 Khi INT0 ở
mức cao, timer được mở cổng và được cấp xung nhịp 1 MHz (nếu 8031/8051 hoạt
động ở tần số 12 MHz) Khi INT0 xuống thấp, timer bị ‘đóng cổng’ và thời khoảng
của xung tính bằng µs là số đếm trong TL0/TH0 (có thể lập trình INT0 để tạo ra một
ngắt khi nó xuống thấp)
Hình sau minh họa Timer 1 hoạt động ở chế độ 1 như một timer 16 bit Các
thanh ghi timer TL1/TH1 và cờ báo tràn TF1 trong sơ đồ chỉ các khả năng có thể có
của nguồn tạo xung nhịp và dễ cho chạy, dừng và điều khiển timer
Khởi động và truy xuất các thanh ghi:
Thông thường các thanh ghi được khởi động một lần ở đầu chương trình để đặt
Hình 3.6: Bắt đầu dừng và điều khiển
Timer
Trang 31chế độ làm việc đúng Sau đó, trong thân chương trình, các timer được cho chạy, dừng,
các bit cờ được kiểm tra và xóa, các thanh ghi timer được đọc và cập nhật v,v … theo
đòi hỏi của các ứng dụng
TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoạt động
Ví dụ các lệnh sau khởi động timer 1 như timer 16 bit (chế độ 1) có xung nhịp
từ bộ dao động trên chip cho việc định khoảng thời gian:
MOV TMOD,#00010000B
Nếu cần số đếm ban đầu, các thanh ghi timer TL1/TH1 cũng phải được khởi
động Nhớ lại các timer đếm lên và đặt cờ báo tràn khi có sự chuyển tiếp FFFFH sang
0000H Một khoảng 100µs có thể được định thời bằng cách khởi động trị cho
Cờ báo tràn được tự động đặt lên sau 100µs Phần mềm có thể đợi trong 100µs
bằng cách dùng lệnh rẽ nhánh có điều kiện nhảy đến chính nó trong khi cờ báo tràn
chưa được đặt lên 1:
WAIT: JNB TF1, WAIT
Khi timer tràn, cần dừng timer và xóa cờ báo tràn trong phần mềm:
CLR TR1
CLR TF1
Đọc timer đang chạy:
Trong một số ứng dụng cần đọc giá trị trong các thanh ghi timer đang chạy Vì
phải đọc 2 thanh ghi timer, “sai pha” nếu byte thấp tràn vào byte cao giữa hai lần đọc
Giá trị có thể đọc được không đúng Giải pháp là đọc byte cao trước, kế đó đọc byte
thấp rồi đọc byte cao một lần nữa Nếu byte cao đã thay đổi thì lặp lại các hoạt động
đọc Các lệnh dưới đây đọc các lệnh thanh ghi timer TL1/TH1 vào các thanh ghi
R6/R7:
AGAIN: MOV A,TH1
MOV R6, TL1
CJNE R7, A
Trang 323.1.5 Hoạt động của bộ ngắt (INTERRUPT):
a/ Giới thiệu:
Một interrupt (ngắt) là sự xảy ra một điều kiện – một sự kiện, mà nó gây treo tạm
thời chương trình trong điều kiện có được phục vụ bởi một chương trình khác
Các interrupt đóng vai trò quan trọng trong việc thiết kế và cài đặt các ứng dụng
vi điều khiển Chúng cho phép hệ thống bất đồng bộ với một sự kiện và giải quyết một
sự kiện trong khi đó một chương trình khác đang thực thi
Một hệ thống được điều khiển bằng interrupt cho ta ảo giác là làm nhiều việc
đồng thời Dĩ nhiên là CPU đồng thời không thể thực thi hơn một lệnh Nhưng nó có
thể tạm treo việc thực thi một chương trình để thực thi một chương trình khác, rồi quay
về chương trình thứ nhất Theo cách này, interrupt giống như một chương trình con,
nhưng có một khác biệt trong hệ thống được điều khiển là sự ngắt quãng không xảy ra
như kết quả của một lệnh, mà đáp ứng một sự kiện xảy ra bất đồng bộ với chương
trình chính Người ta không biết lúc nào và ở đâu chương trình chính bị ngắt quãng
Chương trình giải quyết ngắt gọi là chương trình phục vụ ngắt (ISR: Interrupt
Service Routine) hoặc bộ xử lý ngắt ISR thực thi đáp ứng ngắt và thông thường thực
hiện tác vụ nhập hay xuất với một thiết bị Khi ngắt xảy ra, chương trình chính tạm
thời bị treo và rẽ nhánh đến ISR: ISR thi hành và kết thúc bằng lệnh trở về ngắt
Chương trình tiếp tục thực thi tại chỗ mà nó tạm dừng Thường người ta xem chương
trình chính thực thi ở mức nền (cơ sở) và các ISR thực thi ngắt (Interrupt Level)
Người ta dùng thuật ngữ Foreground (phía trước) (Base – Level) chỉ mức nền và
Background (phía sau) (Interrupt – level) chỉ mức ngắt
b/ Tổ chức ngắt của 89C51:
Thật sự tất cả các nguồn ngắt ở 89C51: 2 ngắt ngoài, 2 timer và một ngắt port
nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi Reset hệ thống và được
cho phép bằng phần mềm
Khi có 2 hoặc nhiều ngắt đồng thời, 1 ngắt xảy ra trong khi 1 ngắt khác đang
được phục vụ, có cả 2 sự tuần tự hỏi vòng và sơ đồ ưu tiên 2 mức dùng để xác định
thực hiện ngắt Việc hỏi vòng tuần tự thì cố định nhưng ưu tiên ngắt thì có thể lập trình
được
Cho phép và cấm các ngắt: (Enabling and Disnabling Interrupt)
Trang 33Mỗi nguồn Interrupt được cho phép hoặc cấm từng ngắt qua một thanh ghi chức
năng đặc biệt có địa chỉ bit IE (Interrupt Enable) ở địa chỉ A8H Sau đây là bảng tóm
tắt thanh ghi IE:
Bảng 3.4: Bảng tóm tắt thanh ghi IE
Cũng như xác định bit cho phép riêng biệt cho mỗi nguồn ngắt, có một bit cho
phép/cấm toàn bộ được xóa để cấm hoàn toàn các ngắt được xét (đặt lên 1) để cho
phép tất cả các ngắt
Hai bit phải được đặt lên một để cho phép bất kỳ ngắt nào: bit cho phép riêng và
bit cho phép toàn bộ Ví dụ các ngắt từ timer được cho phép như sau:
SETB ET1 ; Cho phép ngắt từ timer 1
SETB EA ; Đặt bit cho phép toàn bộ
Hoặc: MOV IE,#10001000B
Mặc dù hai cách này có cùng một hiệu quả sau khi reset hệ thống nhưng hiệu quả
sẽ khác nếu IE được ghi giữa chương trình Cách thứ nhất không ảnh hưởng tới 5 bit
trong thanh ghi IE, trái lại cách thứ hai sẽ xóa các bit khác Nên khởi trị IE theo cách
thứ hai ở đầu chương trình (nghĩa là sau khi mở máy hoặc reset hệ thống), nhưng cho
phép và cấm các ngắt ngay trong chương trình nên dùng cách thứ nhất để tránh ảnh
hưởng đến các bit khác trong thanh ghi IE
Ngắt port nối tiếp có từ logic OR của ngắt thu (RI) và phát (TI) Các bit cờ tạo
các ngắt được tóm tắt trong bảng sau:
Bảng 3.5: Bảng các Bit cờ tạo ngắt
Trang 34
c/ Xử lý ngắt (Processing Interrupt):
Khi ngắt xảy ra và CPU chấp thuận, chương trình chính ngắt quãng những hoạt
động sau đây xảy ra:
+ Lệnh hiện hành hoàn tất việc thực thi
ISR thực thi và đáp ứng ngắt ISR hoàn tất bằng lệnh RETI (quay về từ ngắt)
Điều này làm lấy lại giá trị cũ PC từ ngăn xếp và lấp lại trạng thái ngắt cũ Thực thi
chương trình chính ở chỗ mà nó bị dừng
Các vector ngắt (Interrupt Vectors):
Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt Nó là địa
chỉ bắt đầu của ISR cho nguồn tạo ngắt Các vector ngắt được cho bảng sau:
Bảng 3.6: Bảng các Vectơ ngắt
Vector Reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo
nghĩa này nó giống Interrupt: nó ngắt chương trình chính và nạp giá trị mới cho PC
Khi “chỉ đến một ngắt”, cờ gây ra ngắt tự động bị xóa bởi phần cứng Các ngoại
lệ là RI và TI với các ngắt port nối tiếp và TF2, EXF2 với các Interrupt Timer Vì có
hai nguồn có thể cho mỗi ngắt này, không thực tế để CPU xóa cờ ngắt Các bit này
phải được kiểm tra trong ISR để xác định nguồn ngắt và cờ tạo ngắt sẽ được xóa bằng
phần mềm Thông thường một rẽ nhánh xảy ra với một phản ứng thích hợp, phụ thuộc
vào nguồn ngắt
Vì các vector ngắt ở phần đầu của bộ nhớ chương trình, nên lệnh thứ nhất của
Trang 35chương trình chính thường là lệnh nhảy qua chương trình chính này Ví dụ như lệnh
LJMP 0030H
Chương trình phục vụ ngắt có kích thước nhỏ:
Các chương trình phục vụ ngắt phải bắt đầu ở gần phần đầu của bộ nhớ chương
trình ở các địa chỉ trong bảng các vectơr ngắt Mặt dù có 8 byte ở các điểm vào ngắt,
thường đủ bộ nhớ để thực hiện các hoạt động mong muốn và quay về chương trình
ORG 000BH ; điểm vào time 0
TOIRS: ; ISR cho time 0 bắt đầu
RETI ; quay về chương trình chính
MAIN: ; Chương trình chính
Nếu sử dụng nhiều ngắt phải đảm bảo là chúng phải bắt đầu từ vị trí đúng và
không chạy qua ISR kế Vì chỉ có một ngắt được sử dụng trong ví dụ trên, chương
trình chính có thể bắt ngay sau lệnh RETI
Các chương trình phục vụ ngắt có kích thước lớn:
Nếu ISR dài hơn 8 byte, có thể cần chuyển nó tới một nơi nào đó trong bộ nhớ
chương trình hoặc có thể để nó đi qua điểm vào của ngắt kế Tiêu biểu là ISR bắt đầu
với lệnh nhảy đến vùng nhớ khác ở đó có thể mở rộng chiều dài các ISR Ví dụ lúc này
chỉ xét timer 0, có thể sử dụng khung sau:
ORG 0000H ; Reset
LJMP MAIN
ORG 000BH ; các vector ngắt tiếp theo
TOIRS: ; ISR cho time 0
RETI ; quay về chương trình chính
Để đơn giản chương trình chỉ làm việc một lúc ban đầu Chương trình khởi động
timer, port nối tiếp và các thanh ghi ngắt cho thích hợp và rồi không làm gì cả Công
việc được hoàn toàn làm trong ISR Sau các khởi động, chương trình chứa các lệnh
sau:
Trang 36HERE: SJMP HERE
Hay dạng viết gắn gọn: SJMP $
Khi ngắt xảy ra, chương trình chính bị ngắt quãng tạm thời trong khi ISR thực
thi Lệnh RETI ở cuối ISR trả điều khiển về chương trình chính và nó tiếp tục không
làm gì cả Trong nhiều ứng dụng điều khiển, nhiều công việc thật ra được thực hiện
hoàn toàn trong ISR
Vì sử dụng ngắt, nên lệnh SJMP $ (HERE: SJMP HERE) có thể được thay thế
bằng các lệnh thực hiện công việc khác trong ứng dụng
3.2 GIỚI THIỆU IC THU DTMF - MT8870:
MT8870 là một linh kiện ISO – CMOS bao gồm các mạch lọc và giải mã cho
sự ghi nhận một cặp tone (tần số chuẩn DTMF: Dual Tone Multi Frequency) với đầu
ra là mã 4 bit nhị phân Nó thích hợp cho các ứng dụng ở các thiết bị điều khiển từ xa,
hệ thống điện thoại nhậân số, tổng đài nội bộ PABX, hệ thống thẻ tín dụng, máy tính
cá nhân ,…
3.2.1 Sơ đồ chân:
3.2.2 Giới thiệu các chân:
Bảng 3.7: Bảng mô tả chân linh kiện MT8870
4 Vref Reference Voltage output
Hình 3.7: Sơ đồ chân MT 8870
Trang 376 GND GND
17 ST/GT Steering input/Guard Time output
- PIN 1(IN+) : Non – Investing op-amp, ngõ vào không đảo
- PIN 2 (IN-) : Investing op – amp, ngõ vào đảo
- PIN 3 (GS) : Gain Select, giúp truy xuất ngõ ra của bộ khuếch đại vi sai đầu
cuối qua điện trở hồi tiếp
- PIN 4 (Vref): Reference Voltage (ngõ ra) thông thường bằng VDD/2
- PIN 5 (INH): Inhibit (ngõ vào) khi chân này ở mức logic cao thì không nhận
dạng được ký tự A, B, C ở ngõ ra (undelected)
- PIN 6 (PWDN): Power down (ngõ vào), tác động mức cao Khi chân này tác
động thì sẽ cấm mạch dao động và IC 8870 hoạt động
- PIN 7 (OSC 1): Clock gõ vào MHz
- PIN 8 (OSC 2): Clock ngõ ra
- Nối hai chân 7, chân 8 với thạch anh 3,58 MHz để tạo một mạch dao động nội
- PIN 9 (Vss): điện áp mass
- PIN 10 (TOE): Three Stage Output Enable (ngõ vào), ngõ ra Q1 – Q4
hoạt động khi TOE ở mức cao
- PIN 11 ÷ 14 ứng với Q1 ÷ Q4 ngõ ra, khi TOE ở mức cao các chân này cung
cấp mã tương ứng với các cặp tone dò tìm được (theo bảng chức năng), khi TOE ở
mức thấp dữ liệu ngõ ra ở trạng thái trở kháng cao
- PIN 15 (STD): Delayed Steering (ngõ ra), ở mức cao khi gặp tần số tone đã
được ghi nhận và ngõ ra chốt thích hợp, trở về mức thấp khi điện áp trên ST/GT nhỏ
hơn điện áp ngưỡng VTST
Trang 38- PIN 16 (EST): Early Steering (ngõ ra), chân này lên mức [1] khi bộ thuật toán
nhận được cặp tone và trở về mức [0] khi mất tone
- PIN 17 (ST/GT): Steering Input /Guard tune output (ngõ ra), khi điện áp VC lớn
hơn VTST thì ST sẽ điều khiển dò tìm cặp tone và chốt ngõ ra
- PIN 18 (VDD): điện áp cung cấp, thường là + 5V
IC thu tone MT 8870 bao gồm một bộ thu DTMF chất lượng cao (kèm bộ
khuếch đại) và một bộ tạo DTMF giúp cho việc tổng hợp đóng ngắt tone được chính
xác
3.2.3 Chức năng các chân:
a/ Cấu hình ngõ vào :
Thiết kế đầu vào của MT8870 cung cấp một bộ khuếch đại OPAMP ngõ vào vi
sai cũng như một ngõ vào VREF để điều chỉnh thiên áp cho đầu vào tại VDD/2 Chân GS
giúp nối ngõ ra bộ khuếch đại với ngõ vào qua một điện trở ngoài để điều chỉnh độ lợi
b/ Dial tone filter:
Hình 3.8: Sơ đồ khối bên trong MT8870
Trang 39Khối này sẽ tách tín hiệu tone thành nhóm tần số thấp và nhóm tần số cao Thực
hiện việc này nhờ 2 bộ lọc thông qua bậc 6 Một từ 697Hz đến 941Hz và một từ 1209
Hz đến 1633Hz Cả hai nhóm tín hiệu này được biến đổi thành xung vuông bởi bộ dò
Zero Crossing
c/ High group filter và Low group filter :
- High group filter là bộ lọc 6 để lọc nhóm tần số cao có băng thông từ 697Hz
đến 941Hz
- Low group filter là bộ lọc 6 để lọc nhóm tần số thấp có băng thông từ 1209Hz
đến 1633Hz
- Ngoài ra, có bộ Zero crossing detectors có nhiệm vụ dò mức không để biến đổi
tín hiệu thành xung vuông
d/ Digital detection argorethm:
Khối này là bộ thuật toán dùng kỹ thuật số để xác định tần số các tone đến và
kiểm tra chúng tương ứng với tần số chuẩn DTMF Nhờ giải thuật lấy trung bình phức
tạp (complex averaging) giúp loại trừ các tone giả tạo thành do tiếng nói trong khi vẫn
bảo đảm một khoảng biến động cho tone thực do bị lệch Khi bộ kiểm tra nhận dạng
được hai tone đúng thì đầu ra EST (Early Steering) sẽ lên mức active (tác động) Lúc
không nhận được tín hiệu tone thì ngõ ra EST sẽ ở mức Inactive (không tác động )
e/ Mạch Steering:
Trước khi thu nhận một cặp tone đã giải mã, bộ thu phải kiểm tra xem thời hằng
của tín hiệu có đúng không Việc kiểm tra này được thực hiện bởi một bộ RC mắc
ngoài
Khi chân EST lên high (mức logic cao) làm cho Vc tăng lên khi tụ xả Khi mà
chân EST vẫn còn high trong một thời đoạn hợp lệ thì Vc tiến mức ngưỡng VTST của
logic Steering để nhận một cặp tone Điện thế VC chính là điện thế ngõ vào ST/GT, do
Hình 3.9: Mạch Steering
Trang 40đó ngõ vào ST/GT có điện thế lớn hơn mức ngưỡng VTST, điều này làm cho cặp tone
được ghi nhận và 4 bit dữ liệu tương ứng được đưa vào ngõ ra của bộ chốt Lúc đó
chân EST cùng với chân ST/GT vẫn tiếp tục ở mức cao Cuối cùng sau một thời gian
trễ ngắn cho phép việc chốt dữ liệu thực hiện xong thì chân STD của mạch Steering
lên mức logic cao báo hiệu rằng cặp tone đã được ghi nhận
Dữ liệu thu được sẽ đi ra 2 chiều (data bus) khi mạch Steering được đọc Mạch
Steering lại hoạt động nhưng theo chiều ngược lại để kiểm tra khoảng dừng giữa hai số
quay Vì vậy bộ thu vừa bỏ qua các tín hiệu quá ngắn không hợp lệ lại vừa chấp nhận
các khoảng ngắt quá nhỏ không thể coi dừng giữa các số Chức năng này, cũng như
khả năng chọn thời hằng steering bằng mạch ngoài cho phép người thiết kế điều chỉnh
hoạt động cho phù hợp với các đòi hỏi khác nhau của ứng dụng
f / Điều chỉnh thời gian bảo vệ:
Thời gian tối thiểu cặp tone xuất hiện để đảm bảo cho việc nhận chính xác là :
Tpec= tDD+ tGTP
• tDD : thời gian từ khi có cặp tone ổn định cho đến khi chân EST lên mức logic
cao, thời gian này là thời gian dò được cặp tone cố định
• tGTP : thời gian bảo vệ bảo đảm sự có mặt của cặp tone
• tpec : thời gian tối thiểu cặp tone xuất hiện
• Thời gian tối thiểu của sự xuất hiện giữa 2 cặp tone là : tID = tDA +tGTA
• tDA : thời gian dò được sự mất cặp tone
• tGTA : thời gian bảo vệ cho việc xác định cặp tone bị mất
• tID : thời gian xuất hiện tối thiểu giữa 2 cặp tone
g / Mạch clock DTMF :
Mạch clock bên trong được sử dụng có tần số cộng hưởng là 3,579545 MHZ
Một nhóm IC MT8870 có thể được nối với nhau dùng chung một dao động thạch anh