SOOO Chương 2 GIỚI THIỆU TỔNG QUÁT VỀ MẠNG ĐIỆN THOẠI 2.1 Các thông số cơ bản của tổng đài KP + Tổng đài được nối với các thuê bao qua 2 đường truyền TIP và RING.. Kết nối thuê bao Tổ
Trang 1855%
BO GIAO DUC VA DAO TAO TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HỒ CHÍ MINH
KHOA : ĐIỆN - ĐIỆN TỬ
LUẬN VĂN TỐT NGHIỆP
ĐỀ TÀI:
BÁO CHÁY VÀ ĐIỀU KHIỂN THIẾT
BI QUA DUONG DAY DIEN THOAI
GVHD : TRUONG NGOC BAO SVTH : NGUYEN VAN XUAN MSSV : 00DDT148
LỚP : 00ĐÐĐT02
TP HCM _ 01/2005
Trang 2
1.1 Định nghĩa - 5-5 s9 99319 9Ý nh g 10111011119011010011 01t 2
1.2 Chức năng của tổng đầi .- ccn se tretrrrreririrrtrrrrirrsrrrrre 2
II Ne 1 0 2
1.4 Phương thức chuyển mạch của tổng đài điện tử -eeeeer 2
Chương2 GIỚI THIỆU TỔNG QUAN VỀ MẠNG ĐIỆN THOẠI 4 2.1 Các thông số cơ bản của tổng đầi -ccscrserrertertrrrirrrrirrrr 4
2.2 Các hoạt động trên mạng điện thOại - - - 5+ sssnseeeeeirersseerrrree 4
;l No ca g n 1.11 4
? {an 8 an 5
2.5 Tín hiệu ngưng thOạ1 - + sen 9041111110111 tre 5
2.6 ga ion 6 2.7 Phương thức hoạt động giữa tổng đài và thuê bao sen 6
Chương 3 KHẢO SÁT CÁC IC QUAN TRỌNG -©c+-sree § 3.1 Giới thiệu khái quát về họ IC MCS-51”” -. -c+csiecerrrrerer 8 B11 GiGi thi€u oo 8
3.1.2 Những đặc trưng của AT89CSŠ1T -. -s+c‡rrererrerrrrrrrrer 9
3.1.3 Tổ chức bộ nhớ -s- 2-2 s++++x#+xt+xttx.tTSrrttrsrrrrkirrrrrrrrrrr 13
3.1.4 Bảo vệ bộ nhớỚ - 5 s3 t Y1 811011131 0000 1 7107101101100 20
3.1.5 Hoạt động của port nối tiẾp . ecceerrrrren Hee 21
3.1.6 Các chế độ hoạt động - -cnSesennrtrHrnthth e4 23
3.1.7 Khởi động và truy xuất các thanh ghi cổng nối tiếp . -.- 27
3.2 Giới thiệu IC DTMF8S880 57 SSĂ hen ng te 31
3.2.1 Mô tả chức năng - + -< + sec nh 0111110110118 31 3.2.2 Cấu hình ngõ VàO - 5< + 5< 2< Sen 2222211111111 .11110 31
3.2.3 Cách truy cập thanh gh1 - 5s nhe 4111112 1e 35
Trang 3na 37 3.2.5 Ý nghĩa các chân -. + <+s+eee>t+.ESErErsrrriererkrerrrrrrrriereirre 38
1.3.8 Kh6i KhUGch dain 51
1.3.9 KhOi ngdt thi ccccccccccsccccscccccscsscsssssscsssssssssseesseccecceeseesessessnnnsnmmesssssseesessen 52
1.3.10 KhGi dd 0 CUC .ố 53 1.3.11 Khối điều khiển và cảm biến thiết bị -5 55s Scssereresrerrrree 53
1.3.12 Khối cảm biến chá y - 5< 5< + «ng 11.11 1111 re 54
Chương2 THIẾT KẾ PHẨN MỀM -cc-c-cccrvrverrerree 57
2.1 Giải thuật chương trình chính - 5s + ve 57
2.2 Giải thuật chương trình báo cháy - sen hư 58 2.3 Giải thuật cảm biến chuông s5 + +1 59
2.4 Giải thuật ngắt điều khiển thiét Di eee essences neeeeneseeeeeeneeeneeneetens 60
2.5 Gidi thuật điều khiển thiết bị 5 5scsserrtrrrerrrrirrirrirririrrrrrre 61
2.6 Giải thuật chương trình thay đổi password -c series 62
2.7 Giải thuật chương trình đối số điện thoại .- -s+c+rverterereerserrer 63
2.8 Giải thuật chương trình ngắt báo cháy - -«+rseesesrerererererrrrrrr 64
2.9 Giải thuật phát . - «<< n9 x9 1 12 T9 tri H00 1111101101108 111191" 65
Trang 4Phin 3 DANH GIA KET QUA THI CONG VA HUGNG PHAT TRIEN DE TAL 66
TAI LIEU THAM KHAO ccesscssscscssscsssseseesseceseceusessstessecsssenssseseeessessness 67
Trang 6Lun én tốt nghiép GUD: Fruong Ngee Bao
ae
Chương 1 TỔNG QUAN VỀ TỔNG ĐÀI
1.1 Định nghĩa
Tổng đài là một hệ thống chuyển mạch kết nối có hệ thống các cuộc liên lạc giữa
các thuê bao với nhau, với số lượng thuê bao lớn hay nhỏ tùy thuộc vào từng loại tổng
đài, từng khu vực
1.2 Chức năng của tổng đài -
Tổng đài điện thoại có khả năng :
% Nhận biết được khi thuê bao nào có nhu cầu xuất phát cuộc gọi
4 Thông báo cho thuê bao biết mình sẵn sàng tiếp nhận các yêu cầu của thuê bao
+ Xử lí thông tin từ thuê bao chủ gọi để điều khiển kết nối theo yêu cầu
4% Báo cho thuê bao bị gọi biết có người cần muốn liên lạc
Giám sát thời gian và tình trạng thuê bao để ghi cước và giải tỏa
4 Giao tiếp được với những tổng đài khác để phối hợp điều khiển
1.3 Các âm hiệu
s4 Tín hiệu mời quay số : Khi thuê bao nhấc tổ hợp để xuất phát cuộc gọi sẽ nghe
âm hiệu mời quay số do tổng đài cấp cho thuê bao gọi, là tín hiệu hình sin có tần số
425 +25 Hz liên tục
4 Tín hiệu báo bận : Tín hiệu này báo cho người sử dụng biết thuê bao bị gọi
đang trong tình trạng bận hoặc trong trường hợp thuê bao nhấc máy quá lâu mà không
quay số thì tổng đài gởi âm hiệu báo bận này Tín hiệu báo bận là tín hiệu hình sin có
tân số 425 + 25 Hz, ngắt quãng 0.5s có và 0.5s không
4% Tín hiệu chuông : Tín hiệu chuông do tổng đài cung cấp cho thuê bao bị gọi, là
tín hiệu hình sin có tần số 25 Hz và điện áp 90V hiệu dụng, ngắt quãng tùy thuộc vào
tổng đài, thường 2s có và 4s không
4% Tín hiệu hôi chuông : Tín hiệu hổi chuông do tổng đài cấp cho thuê bao gọi, là tín hiệu hình sin có tần số 425 + 25 Hz, là hai tín hiệu ngắt quãng tương ứng nhịp
chuông 2s có, 4s không
1.4 Phương thức chuyển mạch của tổng đài điện tử
e_ Tổng đài điện tử có những phương thức chuyển mạch sau :
> Tổng đài điện tử dùng phương thức chuyển mạch không gian (SDM :
Space Devision Multiplexing)
> Téng dai điện tử dùng phương thức chuyển mạch thời gian (TDM: Time
Devision Multiplexing), có 3 loại:
= Chuyén mach bus TMD (TDM Bus Switching)
SVTH: Nguyễn Văn Xuân
Trang 7
Ludn an tht nghiép 4020): xương Wgoe Bao
ie
= Chuyén đổi khe thời gian TSI (Time- slot Interchange)
= Chuyển mạch ghép kênh thời gian TMS(Time Multiplex Switching)
e Phương thức ghép kênh tương tự theo thời gian (Analog TDM) gồm có :
> Ghép kênh bằng phương thức truyền đạt cộng hưởng
> Ghép kénh PAM (PAM: Pulse Amplitude Modulation)
e Trong kỹ thuật ghép kênh PCM được chia 2 loại : điều chế Delta và điều chế
PCM
e Ngoài ra, đối với tổng đài có dung lượng lớn và rất lớn (dung lượng lên đến cỡ
vài chục ngàn số) người ta phối hợp cả hai phương thức chuyển mạch SDM và TDM
thành T —- S— T, T—- S, S— T-S
e Ưu điểm của phương thức kết hợp này là tận đụng tối đa số link trống và giảm bớt số link trống không cần thiết, làm cho kết cấu của toàn tổng đài trở nên đơn giản
hơn Bởi vì, phương thức ghép kênh TDM luôn luôn tạo ra khả năng toàn thông, mà
thông thường đối với tổng đài có dung lượng lớn, việc dư link là không cần thiết Người
ta đã tính ra thông thường chỉ có tối đa 10% các thuê bao có yêu cầu cùng 1 lúc, nên số
link trống chỉ cần đạt 10% tổng số thuê bao là đủ
SVTH: Nguyễn Văn Xuân
Trang 8
SOOO
Chương 2 GIỚI THIỆU TỔNG QUÁT VỀ MẠNG ĐIỆN THOẠI
2.1 Các thông số cơ bản của tổng đài
KP
+ Tổng đài được nối với các thuê bao qua 2 đường truyền TIP và RING Thông qua 2 đường dây này thông tin từ tổng đài đến các thuê bao được cấp bằng
nguồn dòng từ 25 mA đến 40 mA (trung bình chọn 35 mA)
+ Tổng trở DC khi gác máy lớn hơn 20 KQ
s% Tổng trở AC khi gác máy từ 4KO đến 10KO
s%» Tổng trở DC khi nhấc máy nhỏ hơn 1KO (từ 0,2KO + 0,6KO)
2.2 Các hoạt động trên mạng điện thoại
% Tổng đài nhận biết trạng thái nhấc máy của thuê bao hay gác máy bằng cách
sử dụng nguồn một chiều 48Vpc
4% Khi gác máy tổng trở DC bằng 20KO rất lớn xem như hở mạch
+» Khi nhấc máy, tổng trở DC giầm xuống nhỏ hơn 1KO và tổng đài nhận biết
trạng thái này thông qua dòng DC xuất hiện trên đường dây Sau đó, tổng đài cấp tín
hiệu mời gọi lên đường dây đến thuê bao
2.3 Quay số
Người gọi thông báo số mình muốn gọi cho tổng đài biết bằng cách gởi số máy điện thoại của mình muốn gọi đến cho tổng đài Có hai cách gởi số đến tổng đài :
> Quay số bằng xung (Pulse — Dialing) : Được thực hiện bằng cách thay đổi tổng
trở DC của mạch thuê bao tạo nên xung dòng với số xung tương đương với số muốn
quay
Bang quay s6 kiéu Pulse — Dialing
Trang 9
Pe
> Quay số bằng Tone (Tone — Dialing) : Máy điện thoại phát ra cùng lúc hai tín
hiệu với tần số dao động khác nhau tương ứng với số muốn quay (DTMEF : Dual Tone
Multi Frequence) theo bảng sau :
Bảng phân loại tần số tín hiệu Tone
2.4 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ị bận 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 300 mV đỉ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 10 đB + 25 dB Giả sử suy hao là 20 đB, suy ra tín hiệu ra khỏi máy điện thoại
có giá trị khoảng 3 V đỉnh — đỉnh
2.5 Tín hiệu ngưng thoại
Khi một trong 2 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
SVTH: Nguyễn Văn Xuân
Trang 10Ludn in tét nghiép (020: Cương ((gọc Bao
2.6 Tín hiệu thoại
Tín hiệu thoại trên đường đâ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
Khi truyền đi trong mạng điện thoại, 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 điện 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.7 Phương thức hoạt động giữa tổng đài và 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 15009 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ố (Dial Tone) cho thuê bao Dial Tone 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 Dial Tone,
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 nút 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.5s cơ, 0.5s không Tổng
đài nhận biết các số 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 phục vụ như một 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á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 loại tổng đài nội bộ
có dung lượng nhỏ từ 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 chương trình 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 = 25 Hz, chu kì 3s có 4s không Đồng thời, cấp âm hiệ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 gol
> 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 cho 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 gol va
tiến hành kết nối thông thoại cho 2 thuê bao
eee
SVTH: Nguyễn Văn Xuân
Trang 11=.-rn-iẳẵnnae
> 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à 1 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 tỏa 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
Điện thoại viên có thể trực tiếp điều khiển các hoạt động của tổng đài qua các thao
tác trên bàn phím, hệ thống công tắc các hoạt động đó có thể bao gồm : nghe xen vào
các cuộc đàm thoại, cắt cưỡng bức các cuộc đàm thoại có ý đổ xấu, tổ chức điện thoại hội nghị Tổng đài điện tử cũng có thể được liên kết với máy điện toán để diéu khiển
hoạt động hệ thống Điều này làm tăng khả năng khai thác, làm tăng dung lượng, cũng như khả năng hoạt động của tổng đài lên rất nhiều
SVTH: Nguyễn Văn Xuân
Trang 12Pe
Chương 3 KHẢO SÁT CÁC IC QUAN TRỌNG
3.1 Giới thiệu khái quát về họ IC MCS-517M
MCS-51* là một họ IC vi điều khiển do Intel phát triển và sản xuất Một số nhà sản xuất được phép cung cấp các IC tương thích với các sản phẩm MCS-51™ cia Intel
là Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel
Các IC của họ MCS-51TM có các đặc trưng chung như sau:
e 4port I/O 8 bit
e Giao tiép n6i tiép
e 64K không gian bộ nhớ chương trình mở rộng
e 64K không gian bộ nhớ dữ liệu mở rộng
e Một bộ xử lý luận lý (thao tác trên các bit đơn)
e 210 bit được địa chỉ hóa
e B6 nhan/chia 4 ps
Ngoài ra, tùy theo số hiệu sản xuất mà chúng có những khác biệt về bộ nhớ và
bộ định thời/bộ đếm như trong bảng so sánh dưới đây:
Số hiệu sản|Bộ nhớ chương | Bộ nhớ dữ liệu | Số bộ định thời
xuất trình trên chip trên chip (bộ đếm)
AT89C51 14 m6t Microcomputer 8 bit, loai CMOS, cé tốc độ cao và công suất
thấp với bộ nhớ Flash có thể lập trình được Nó được sản xuất với công nghệ bộ nhớ
không bay hơi mật độ cao của hãng Atmel, và tương thích với chuẩn công nghiệp của 80C51 va 80C52 vé chan ra và bộ lệnh Vì lý do đó, kể từ đây về sau ta sẽ dùng thuật ngữ “§0C51” (hoặc "8051”)
SVTH: Nguyễn Văn Xuân
Trang 13
Sơ đồ khối của AT89C51
~ 4 ae RAM ee wor FLASH
rat ace POINTER ee
x
+ BUFFER Tre TM
—— AND RESISTEA » ppra
| PORT 1 DANVERS Le PORT 3 DRIVERS
tillH Y Ỷ WYVYVYVVY Ý Ý{YTYTYYVVYYV
+ 128 x 8 bit RAM nội
+ 32 đường xuất-nhập lập trình được (tương ứng 4 port)
+ Hai timer/counter 16 bit
SS
SVTH: Nguyén Van Xuan
Trang 14+ Một port nối tiếp song công lập trình được
+ Mạch đồng hồ và bộ dao động trên chip
Cấu hình chân của AT§9C51 như sau:
{12) P1.0 CÌ 1 ~- 40h vcc {T2 EX) P1.1 LÍ 2 s0 F1 P9.0 (ADO) P1.2 LÍ 9 38 F) P0.!1 {AD1}
{T0) P3.4 LÍ 14 27 BH P2.6 (A14) Y1) P3.8 C t6 #6 E 2.6 (A12) (WR) P3.8 C16 25 Eq P2.4 (A12) (AB) Ps.7 Cl 17 #4 H1 P3.8 (A1) XTAL2 C] 18 23 fF) P2.2 {A10) XTÁL1 LỆ 19 22H P2.1 (A9) GNO CI 26 21 [9 2.0 (a8)
Như vậy AT89C51 có tất cả 40 chân Mỗi chân có chức năng như các đường VO
(xuất/nhập), trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động như một
đường I/O hoặc như một đường điều khiển hoặc như thành phần của bus địa chỉ và bus
các chân của port 0, các chân này có thể được dùng như là các ngõ nhập tổng trở cao
Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ liệu
(phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình ngoài
Ở chế độ này, P0 có các điện trổ pullup bên trong
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và
xuất ra các byte code khi kiểm tra chương trình Cần có các điện trở pullup bên ngoài khi thực hiện việc kiểm tra chương trình
® Port Ì
Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên trong
Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL Khi mức 1
được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội
SVTH: Nguyễn Văn Xuân I
Trang 15Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào TTL Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở
pullup nội và có thể được dùng như các ngõ vào Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng Iụ, do có các
điện trở pullup bên trong
Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngoài và khi
truy cập bộ nhớ dữ liệu ngoài dùng các địa chi 16 bit (MOVX @DPTR) Trong ứng dụng này, nó dùng các điện trở pullup nội "mạnh" khi phát ra các mức l Khi truy cập
bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bit MOVX @RD, port 2 phát ra các nội dung của thanh ghi chức năng đặc biệt P2
Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển khi lập
trình và kiểm tra Flash
e Port 3 Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội bên trong
Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào TTL Khi các
mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở
pullup nội và có thể được dùng như các ngõ vào Khi được dùng như các ngõvào, các chân của port 3 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng lạ, do có các
điện trở pullup bên trong
Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới đây:
P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
Các chức năng chuyển đổi trên Port 3
e RST (chan 9)
Ngõ vào reset Một mức cao trên chân này khoảng hai chu kỳ máy trong
khi bộ đao động đang chạy sẽ reset thiết bị
Ằ ƑẸẹẰằ—-a-an
Trang 16Ludn én tt nghiép 4020: Fuiong Wgoe Bao
ease
e ALE/ PROG
ALE là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ
ngoài Chân này cũng là ngõ nhập xung lập trình (PROG ) khi lập trình Flash
Khi hoạt động bình thường, ALE được phát với một tỷ lệ không đổi là 1/6 tần số
bộ dao động và có thể được dùng cho các much dich timing va clocking bên ngoài Tuy nhiên, lưu ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài
Nếu muốn, hoạt động ALE có thể cấm được bằng cách set bit 0 của SER tại địa
chỉ 8Eh Nếu bit này được set, ALE chỉ dược hoạt động khi có một lệnh MOVX hoặc MOVC Ngược lại, chân này được kéo lên cao bởi các điện trở pullup “nhẹ” Việc set
bit cấm-ALE không có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài
EA (ŒExternal Access Enable) phải được nối với GND để cho phép thiết bị đọc
code từ bộ nhớ chương trình ngoài có địa chỉ từ 0000H đến FFFFH Tuy nhiên, lưu ý rằng nếu bit khoá 1 (Iock-bit 1) được lập trình, EA sẽ được chốt bên trong khi reset
EA phải được nối với Vcc khi thi hành chương trình bên trong Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập trình Flash (khi đó áp lập trình 12V được chọn)
e XTALI va XTAL2
XTALI và XTAL2 1a hai ngõ vào và ra của một bộ khuếch đại đao động nghịch được cấu hình để dùng như một bộ dao động trên chip
Các kết nối của bộ dao động
Figure 7 Oscillator Connections
Notcs: CI, C2 = 3Ó BE + LÔ pE for Crystals
= 40 pk + 10 pF for Ceramic Resonators
——_—————aIyeEEEeeerr
SVTH: Nguyễn Văn Xuân I
Trang 17low, các mức áp tối đa và tối thiểu phải được tuân theo
Các đặc trưng khác sẽ được trình bày một cách chỉ tiết hơn ở những phân tiếp theo sau
đây
3.1.3 Tổ chức bộ nhớ
8051/8031 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên
trong; dù vậy chúng có thể được mở rộng bằng các thành phân ngoài lên đến tối đa 64
Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu
Bộ nhớ bên trong bao gồm ROM và RAM trên chip, RAM trên chip bao gồm nhiều 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 ghichức năng đặc biệt
Chỉ tiết về bộ nhớ RAM trên chip:
Như ta thấy trên hình (_), RAM bên trong 8051/8031 được phân chia giữa các bank thanh ghi (00H-1FH), RAM địa chỉ hóa từng bit (20H-2FH), RAM đa dụng
(30H-_7FH) và các thanh ghi chức năng đặc biệt (S0H-FEH)
RAM đa dụng
Mặc dù trên hình cho thấy 80 byte RAM da dụng chiếm các địa chỉ từ 30H~
7FH, 32 byte dưới cùng từ 00H đến 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ó mục đích khác)
Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng cách đánh địa chỉ trực tiếp hoặc gián tiếp Ví dụ, để đọc nội dung ở địa chỉ 5FH của RAM
nội vào thanh ghi tích lũy, lệnh sau sẽ được dùng :
MOV A,5FH Lệnh này di chuyển 1 byte dữ liệu dùng cách đánh địa chỉ trực tiếp để xác định
“địa chỉ nguồn” (5FH) Đích nhận dữ liệu được ngầm xác định trong mã lệnh là thanh
ghi tích lũy A
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua
R0 hay R1 Ví dụ, hai lệnh sau thi hành cùng nhiệm vụ như lệnh đơn Ở trên :
==cc _——————-nnainniiỏiỏẳẵẳẵăaaiẵẵnnn
SVTH: Nguyễn Văn Xuân lŠ
Trang 18
aa
Lệnh đầu dùng địa chỉ tức thời để đi chuyển giá trị 5FH vào thanh ghi R0, và lệnh
thứ hai dùng địa chỉ trực tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào thanh ghi tích
lũy
=c ằ _————Ừ—sỬ W-ẳớẳơgn
SVTH: Nguyễn Văn Xuân l4
Trang 1923 |1FJ1EI1 |1 |1B|1A|19j18 8 chỉ hóa TH1
22 |17|16|15|14|13|12111|10 8 chi héa bit] THO
21 0B 8 chỉ hóa TL1
20 03 8 chỉ hóa TLO 1F Bank 3 89 chỉ hóa TMOD
RAM địa chỉ hóa từng bit
8051/8031 chứa 210 bit được địa chỉ hóa, trong đó 128 bit là ở các địa chỉ byte
20H đến 2FH, và phần còn lại là trong các thanh ghi chức năng đặc biỆt
Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi 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
Đa số các vi xử lý đòi hỏi một chuỗi lệnh đọc-sửa-ghi để đạt được hiệu quả tương tự
Hơn nữa, cdc port /O cũng được địa chỉ hóa từng bit làm đơn giản phần mềm xuất nhập
từng bit
————===NẴ
SVTH: Nguyễn Văn Xuân I
Trang 20Luin Gn t6t aghiép 4/020: Fruong Woe Béo
thi hành nhiệm vụ tương tự như sau :
MOV A, 2CH ; doc ca byte
ORL A, #10000000B; set MSB
Các bank thanh ghi
32 byte thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi Bộ lệnh của 8051/8031 hỗ trợ 8 thanh ghi (R0 đến R7) và theo mặc định (sau khi reset hệ thống) các
thanh ghi này ở các địa chỉ 00H—07H Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích lũy :
MOV A,R5
Đây là lệnh 1 byte dùng địa chỉ thanh ghi Tất nhiên, thao tác tương tự có thể
được 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 đến R7 thì sẽ ngắn hơn và nhanh hơn các lệnh tương ứng nhưng dùng địa chỉ trực tiếp Các giá trị dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này
Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank
thanh ghi trong từ trạng thái chương trình (PSW) Giả sử rằng bank thanh ghi 3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H :
MOV R0,A
Ý tưởng dùng “các bank thanh ghi” cho phép “chuyển hướng” chương trình
nhanh và hiệu quả (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng không phụ thuộc vào các phần khác)
Các thanh ghi chức năng đặc biệt
Một bản đổ vùng bộ nhớ trên chip được gọi là không gian thanh ghi chức năng đặc biệt (SFR) như được trình bày trong bảng
Lưu ý rằng không phải tất cả các địa chỉ đều được sử dụng, và các địa chỉ không
được sử dụng có thể không được cung cấp trên con chip Các hành động đọc đến các địa chỉ này nói chung sẽ trả về các dữ liệu ngẫu nhiên, và các hành động viết sẽ có một hiệu ứng không xác định
Các phần mềm người dùng không nên viết các mức 1 đến những vị trí không được liệt kê này, vì chúng có thể được dùng trong các sản phẩm tương lai khi thêm vào SVTH: Nguyễn Văn Xuân Tổ
Trang 21Luin dn tét nghiép GUHD: Quương ((gọc (Đảo
ee
các đặc trưng mới Trong trường hợp này, các giá trị reset hoặc không tích cực của các bit mới sẽ luôn là 0
Các thanh ghi nội của 8051/8031 được truy xuất ngầm định bởi bộ lệnh Ví dụ
lệnh “INC A” sẽ tăng nội dung của thanh ghi tích lũy A lên 1 Tác động này được ngầm
định trong lệnh
Các thanh ghi trong 8051/8031 được định dạng như một phần của RAM trên chip Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi đếm chương trình và thanh ghi lệnhvì các thanh ghi này hiếm khi bị tác động trực tiếp, nên không lợi lộc gì khi đặt chúng vào trong RAM trên chip)
Đó là lý do để 8051/8031 có nhiều thanh ghi như vậy Cũng như RO đến R7, có
21 thanh ghi chtfc nang dic biét (SFR : Special Function Register) ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH Chú ý rằng hầu hết 128 địa chỉ từ 80H đến FFH không được định nghĩa Chỉ có 21 địa chỉ SER là được định nghĩa
Ngoại trừ tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số các SFR
được truy xuất dùng địa chỉ trực tiếp Chú ý rằng một vài SFR có thể được địa chỉ hóa
bit hoặc byte Người thiết kế phải thận trọng khi truy xuất bit và byte Ví dụ lệnh sau :
SETB OE0H sẽ set bit 0 trong thanh ghi tích lũy, các bit khác không đổi Ta thấy rằng
E0H đồng thời là địa chỉ byte của cả thanh ghi tích lũy và là địa chỉ bịt của bịt có trọng
số nhỏ nhất trong thanh ghi tích lũy Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ bit là có hiệu quả
Từ trạng thái chương trình
Từ trạng thái chương trình (PSW : Program Status Word) ở địa chỉ D0H chứa các bit trạng thái như bảng tóm tắt sau :
* Cờ nhớ
Cờ nhớ (CY) có công dụng kép Thông thường nó được dùng cho các lệnh toán
học : nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn bởi
_ phép trừ Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh ADD_ A, #1 sẽ trả về thanh
ghi tích lũy kết quả 00H và set cờ nhớ trong PSW
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit Ví dụ, lệnh sau sẽ AND bịt 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ :
Cờ 0 (F0) là 1 bit cờ đa dụng dành cho các ứng dụng của người dùng
* Các bit chọn bank thanh ghi
== _—— n-n-iniỶ-ẳiẳẰ-ẳẵẳẵễẵễzờaờớaờớýợZŸẳ=ằẳn
SVTH: Nguyễn Văn Xuân W
Trang 22
Luén én tốt nghiệp 4020: Quương (2(gọc Bao
Các bit chon bank thanh ghi (RSO va RS1) xác định bank thanh ghỉ được tích cực
Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần Ví
dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa
chỉ byte 1FH) đến thanh ghi tích lũy :
cộng, bit OV có thể được bỏ qua Các kết quả lớn hơn +127 hoặc nhỏ hơn -128 sẽ set
đến F7H
Con trổ ngăn xếp
Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ của
byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ
đọc đữ liệu và giảm SP Ngăn xếp của 8051/8031 được giữ trong RAM nội và được giới
hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp Chúng là 128 byte đầu của
Để khởi động lại SP với ngăn xếp bắt đầu tại 60H,các lệnh sau đây được dùng:
MOV SP,#5FH Trên 8051/8031 ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trên chip là 7EH Sở đĩ dùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte đữ liệu đầu
Trang 23Luin Gn tét nghiệp GOHD: Grong Agee Bao
a
đầu tiên để cất dif liéu c6 dia chi 14 O8H Néu phan mém ứng dụng không khởi động lại
SP, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã được
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh ghi 16
bit ở địa chỉ 82H (DPL : byte thấp) và 83H (DPH : byte cao) Ba lệnh sau sẽ ghi 55H
vào RAM ngoài ở địa chỉ 1000H :
MOV A,#55H
MOV DPTR, #1000H
MOVX @DPTR,A
Lệnh đầu tiên dùng địa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích lũy
Lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H vào con trồ
dữ liệu Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A (55H) đến
RAM ngoài ở địa chỉ được chứa trong DPTR (1000H)
Các thanh ghi port xuất nhập
Các port của 8051/8031 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2
ở địa chỉ A0H và Port 3 ở địa chỉ B0H Tất cả các port đều được địa chỉ hóa từng bịt
Điều đó cung cấp một khả năng giao tiếp thuận lợi Ví dụ nếu một motor được nối qua một cuộn dây có transistor lái đến bit 7 của Port 1, nó có thể được bật và tắt bằng một
Trong một ví dụ khác, xem xét giao tiếp đến một thiết bị với một bit trạng thái gọi là
BUSY, được set khi thiết bị đang bận và được xóa khi thiết bị đã sấn sàng Nếu BUSY
được nối tới P1.5, vòng lặp sau sẽ được dùng để chờ thiết bị trở lại trạng thái sẵn sàng :
WAIT : JB P1.5, WAIT
Lệnh này có nghĩa là “nếu bit P1.5 được set thì nhảy tới nhãn WAIT” Noi cách khác
“nhảy trở lại và kiểm tra lần nữa”
Cac thanh ghi timer
a
SVTH: Nguyén Van Xuan
Trang 24
Luan ám tết nghiép GOUHD: Fruong Ngee Bio
_———
8051/8031 chứa hai bộ định thời / đếm 16 bit được dùng cho việc định thời hoặc
đếm sự kiện Timer 0 ở địa chỉ SAH (TL0 : byte thấp) và 8CH (THO : byte cao) Timer
1 6 dia chi 8BH (TLI : byte thấp) và §DH (THỊ : byte cao) Việc vận hành timer được
set bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi diéu khién timer (TCON) ở địa chỉ 88H Chỉ có TCON được địa chỉ hóa từng bit
Các thanh ghi port nối tiếp
8051/8031 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với
các thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có
giao tiếp nối tiếp (các bộ chuyển đổi A/D, các thanh ghi dịch ) Một thanh ghi gọi là
bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận Khi
truyền đữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF Các mode vận hành
khác nhau được lập trình qua thanh ghi điểu khiển port nối tiếp (SCON) (được địa chỉ
hóa từng bit) ở địa chỉ 98H
Các thanh ghi ngắt
8051/8031 có cấu trúc 5 nguôn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khi
reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa
chỉ A§H Cả hai thanh ghi được địa chỉ hóa từng bit
Thanh ghi điều khiển công suất
Thanh ghi điểu khiển công suất (PCON) ở địa chỉ 87H chứa nhiễu bit điều khiển Chúng được tóm tắt trong bảng sau :
7 SMOD nếu được set thì tốc độ baud sẽ
tăng gấp đôi trong các mode 1,2
và 3 của port nối tiếp
6— Không định nghĩa
3 GF1 Bit cd da dung 1
2 GFO Bit cờ đa dụng 0
1 PD Giảm công suất, được set để kích hoạt
mode giảm công suất, chỉ thoát khi reset
3.1.4 Bảo vệ bộ nhớ
Các bit khoá bộ nhớ chương trình Vi điều khiển AT89C51 có 3 bit khoá có thể
bỏ không lập trình (U) hoặc được lập trình (P) để nhận các đặc trưng thêm vào được liệt
kê trong bảng dưới đây (với LB1, LB2, LB3 là các bit khóa tương ứng)
SSS EEE ốốớớ SVTH: Nguyên Văn Xuân
Trang 25Luin an tét aghiép GOHD: Friong Agge Bao
Ché 46 | LB1 | LB2 | LB3 | Kiểu bảo vệ
U U U Không khoá chương trình
P U U Các lệnh MOVC được thi hành từ bộ nhớ chương trình
ngoài bị cấm khi lấy các byte mã từ bộ nhớ nội, /BA
được lấy mẫu và được chốt lại khi reset và hơn nữa, việc lập trình bộ nhớ Flash là bị cấm
Khi bit khoá 1 được lập trình, mức logic tại chân EA được lấy mẫu và chốt lại khi
reset Nếu thiết bị được bật nguồn mà không có reset, việc chốt sẽ được khởi tạo với một giá trị ngẫu nhiên cho đến khi được reset Giá trị được chốt của EA phải bằng với
mức logic hiện tại ở chân đó để cho thiết bị làm việc một cách chính xác
3.1.5 Hoạt động của port nối tiếp
+ Giới thiệu 8051/8031 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trên một đãi tần số rộng Chức năng chủ yếu của port nối tiếp là thực hiện chuyển đổi song song sang nối tiếp đối với đữ liệu xuất, và chuyển đổi nối tiếp sang song song với dữ
liệu nhập
Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD Các chân
này có các chức năng khác với hai bit của Port 3, P3.1 ở chân 11 (TXD) và P3.0 ở chân
10 (RXD)
Port nối tiếp cho hoạt động song công (full duplex : thu va phát đồng thời), và đệm lúc thu (receiver buffering) cho phép một ký tự sẽ được thu và được giữ trong khi
ký tự thứ hai được nhận Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu
được thu đây đủ thì dữ liệu sẽ không bị mất
Hai thanh ghỉ chức năng đặc biệt cho phép phần mềm truy xuất đến port nối
tiếp là : SBUF và SCON Bộ đệm port nối tiếp (SBUF) ở địa chỉ 99H thật sự là hai bộ đệm Viết vào SBUF để nạp dữ liệu sẽ được phát, và đọc SBUF để truy xuất dữ liệu
thu được Đây là hai thanh ghi riêng biệt : thanh ghi chỉ ghi để phát và thanh ghi chỉ đọc
Trang 26Luan an tot nghiép GOHD: Fruong Ngee Bao
Thanh ghi điều khiển port nối tiếp (SCON) ở địa chi 98H là thanh ghỉ có địa chỉ
bít chứa các bit trạng thái và các bit điểu khiển Các bit điều khiển đặt chế độ hoạt
động cho port nối tiếp, và các bit trạng thái báo kết thúc việc phát hoặc thu ký tự Các bit trạnh thái có thể được kiểm tra bằng phần mêm hoặc có thể được lập trình để tạo
ngắt
Bus nội 8051/8031
Tần số làm việc của port nối tiếp, còn gọi là tốc độ baud có thể cố định (lấy từ
bộ dao động trên chip) Nếu sử dụng tốc độ baud thay đổi, Timer 1 sẽ cung cấp xung
nhịp tốc độ baud và phải được lập trình
+» Thanh ghi điều khiển port nối tiếp
Chế độ hoạt động của port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ port nối tiếp (SCON) ở địa chỉ 98H Sau đây là các bảng tóm tắt thanh ghi SCON và các chế độ của port nối tiếp :
eee
SVTH: Nguyễn Văn Xuân
Trang 27Bit Ky hiéu Dia chi Mô tả
SCON.7 SMO 9FH Bit 0 của chế độ port nối tiếp
SCON.6 SMi 9EH Bit 1 của chế độ port nối tiếp
SCON5 SM2 9DH Bit 2 của chế độ port nối tiếp Cho phép truyền
thông đa xử lý trong các chế đọ 2 và 3; RÌ sẽ không bị tác động nếu bit thứ 9 thu được là 0
SCON.4 REN 9CH Cho phép bộ thu phải được đặt lên 1 để thu (nhận)
các ký tự
SCON3 TB8 9BH Bit 8 phat, bit thứ 9 được phát trong các chế độ 2
và 3; được đặt và xóa bằng phần mềm
SCON.2 RB8 9AH Bit 8 thu, bít thứ 9 thu được
SCON.1 TI 99H Co ngắt phát Đặt lên 1 khi kết thúc phát ký tự;
0 1 1 UART 8 bit Thay đổi (đặt bằng timer)
1 0 2 UART 9 bit Cố định (Fosc chia cho 12 hoặc 64)
1 1 3 UART9 bit Thay d6i (dat bing timer)
Các chế độ port nối tiếp Trước khi sử dụng port nối tiếp, phải khởi động SCON cho đúng chế độ Ví dụ,
lệnh MOV SCON, #01010010B khởi động port nối tiếp cho chế độ 1 (SM0/SMI =
0/1), cho phép bộ thu (REN = 1) và đặt cờ ngắt phát (T1 = 1) để chỉ bộ phát sẵn sàng
hoạt động
3.1.6 Các chế độ hoạt động
Port nối tiếp có 4 chế độ hoat động, có thể chọn được bằng cách viết các số 1
hay 0 vào các bit SM0 và SMI trong SCON Có ba chế độ cho phép truyền thông bất
đồng bộ, với mỗi ký tự được thu (nhận) hoặc phát đều được đóng khung bằng một bit
start và 1 bit stop Ở chế độ thứ tư, port nối tiếp hoạt động như một thanh ghi dich đơn
giản
“> Thanh ghi dịch 8 bit (chế độ 0)
Chế độ 0 được chọn bằng cách ghi các bit 0 vào SMI và SMO của SCON, đưa
port nối tiếp vào chế độ thanh ghi dịch 8 bit Dữ liệu nối tiếp vào và ra qua RXD và
SVTH: Nguyễn Văn Xuân
Trang 28TXD (P3.1) Mỗi bit phát đi hợp lệ (trên RXD) trong một chu kỳ máy Trong mỗi chu
kỳ máy, tín hiệu xung nhập xuống thấp ở S3P1 và trở về mức cao ở S6PI
Một chu kỳ máy
so leteletelelelejelel plejelejelelelejelelele
Giản đồ thời gian port nối tiếp phát ở chế độ 0
Việc thu được khởi động khi bit cho phép bộ thu (REN) là 1 và bit ngắt thu (RD) là
0 Qui tắc tổng quát là đặt REN khi bắt đầu chương trình để khởi động port nối tiếp, rồi
xóa RI để bắt đầu hoạt động nhập dữ liệu Khi RI bị xóa, các xung nhịp được đưa ra đường TXD, bắt đầu chu kỳ máy kế tiếp, và dữ liệu theo xung nhịp ở đường RXD Lấy xung nhịp cho dữ liệu vào port nối tiếp xảy ra ở cạnh dương của TXD
Một ứng dụng của chế độ thanh ghi dịch là mở rộng khả năng xuất của 8051/8031 IC
SVTH: Nguyễn Văn Xuân :
Trang 29
TXD (P3.1) >Clock Thanh ghi
8051 ¬ RXD (P3.0) »>|Dữ liệu dịch
Chế độ thanh ghi dịch của port nối tiếp
* UART 8bit với tốc độ baud thay đổi được (chế độ 1)
Ở chế độ 1, port nối tiếp của 8051/8031 làm việc như một UART 8 bít với tốc
độ baud thay đổi được Một UART (Universal Asynchronous Receiver/T ransmitter : Bộ
thu/phát bất đồng bộ vạn năng) là một dụng cụ thu và phát dữ liệu nối tiếp với mỗi ký
tự đữ liệu đi trước là bit start ở mức thấp và theo sau là bit stop ở mức cao Đôi khi xen
thêm bit kiểm tra chắn lẻ giữa bit dữ liệu cuối cùng và bít stop Hoạt động chủ yếu của UART là chuyển đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp
sang song song với dữ liệu nhập
Ở chế độ 1, 10 bit được phát trên TXD hoặc thu trên RXD Những bít đó là : 1 bit start (luôn luôn là 0), 8 bit đữ liệu (LSB đầu tiên) và 1 bit stop đuôn luôn là 1) Với
hoạt động thu, bit stop được đưa vào RBS8 trong SCON Trong §051/8031 chế dộ baud
được đặt bằng tốc độ báo tràn của Timer 1
Tạo xung nhịp và đồng bộ hóa các thanh ghi dịch của port nối tiếp trong các chế
độ 1, 2 và 3 được thiết lập bằng bộ đếm 4 bit chia cho 16, ngõ ra là xung nhịp tốc độ baud Ngõ vào của bộ đếm này được chọn qua phần mềm
Tạo xung nhịp port nối tiếp
Truyền dữ liệu (phát) được khởi động bằng cách ghi vào SBUF, nhưng vẫn chưa thật sự bắt đầu chạy cho đến khi sự thay thế kế tiếp của bộ đếm chia cho l6 cung cấp tốc độ baud cổng nối tiếp Dữ liệu được dịch ra ngoài trên đường TXD bắt đầu bằng bit
start, theo sau là § bit dữ liệu và sau cùng là bit stop Độ rộng (theo thời gian của mỗi
bit) là nghịch đảo của tốc độ baud được lập trình trong timer Cờ ngắt phát (TD được
a |
SVTH: Nguyén Van Xuan
Trang 30Đặt cờ TI port nối tiếp
Việc thu đữ liệu được khởi động bằng một chuyển trạng thái từ 1 xuống 0 trên
RXD Bộ đếm 16 tức thời được xóa để đồng bộ số đếm với luồng bit đến Luồng bit đến được lấy mẫu giữa 16 lần đếm
Bộ thu sẽ phát hiện được bít start sai bằng cách yêu cầu trạng thái 0 ở (bit start) Ở
lần đếm thứ 8 sau khi có chuyển trạng thái từ 1 xuống 0 đâu tiên Nếu điều này không
xảy ra, người ta giả sử là bộ thu được kích bởi nhiễu chứ không phải do một ký tự hợp
lệ Bộ thu được reset và quay về trạng thái nghỉ (dle), tim kiếm (đợi) chuyển trạng thái
từ 1 xuống 0 kế
Giả sử đã phát hiện được bit start hợp lệ, thi tiếp tục thu ký tự Bit start được bỏ
qua và 8 bit dif Hiệu được đưa vào thanh ghi dịch cổng nối tiếp theo xung nhịp Khi đã
có được tất cả 8 bit, điều sau đây xảy ra :
1 Bit thứ 9 (bit stop) được chốt vào RB8 trong SCON
2 SBUF được nạp với 8 bit dữ liệu
3 Cờ ngắt bộ thu (RD) được đặt lên 1
Tuy nhiên, những điều này chỉ xảy ra nếu đã có những điều kiện sau :
1.RI=0
2 SM2 = 1 và bit stop thu được là 1, hoặc SM2 = 0
Đồi hỏi RI = 0 để bảo đảm là phần mềm đã doc ký tự trước (và RI được xóa)
Điều kiện thứ hai hơi phức tạpn nhưng chỉ áp dụng trong chế độ truyền thông đa xử lý Điều đó hàm ý là “không đặt RI lên 1 trong chế độ truyền thông đa xử lý khi bit dữ liệu
thứ 9 là 0)
4 UART 9 bit với tốc độ baud cố định (chế độ 2)
Khi SMI = 1 và SM0 = 0, cổng nối tiếp làm việc ở chế độ 2, như một UART 9
bit có tốc độ baud cố định 11 bit sẽ được phát hoặc thu : 1 bịt start, 8 bịt dữ liệu, bit dữ
liệu thứ 9 có thể lập trình được và 1 bit stop Khi phát, bit thứ 9 là bất cứ gì đã được đưa vào TB8 trong SCON (có thể là bít parity) Khi thu, bít thứ 9 thu được sẽ 6 trong RB8
SVTH: Nguyễn Văn Xuân
Trang 31
Luin an tét nghiệp GOHD: Friong Ngee Bao
ae
Tốc độ baud ở chế độ 2 là 1/32 hoặc 1/16 tần số dao động trên chip
s* UART 9 bit với tốc độ baud thay đổi được
Chế độ này giống như chế độ 2 ngoại trừ tốc độ baud có thể lập trình được và được cung cấp bởi timer Thật ra, các chế độ 1,2 và 3 rất giống nhau Các khác biệt là ở tốc độ baud (ccó định trong chế độ 2, thay đổi trong các chế độ 1 và 3) và ở số bịt dit liệu (8 trong chế độ 1, 9 trong các chế độ 2 và 3)
3.17 Khởi động và truy xuất các thanh ghi cổng nối tiếp
“
«» Cho phép thu
Bit cho phép bộ thu (REN = Receiver Enable) trong SCON phải được đặt lên 1 bằng phẩm mềm để cho phép thu các ký tự Thông thường thực hiện việc nàyở đầu chương trình khi khởi động cổng nối tiếp, timer, Có thể thực hiện việc này theo hai
cách Lệnh SETB REN sẽ dat REN lên 1, hoặc lệnh MOV SCON, #xxxIxxxxB sẽ đặt
REN lên 1 và đặt hoặc xóa các bit khác trong SCON khi cân (Các x phải là 0 hoặc 2 để đặt chế độ làm việc)
“ Bit dữ liệu thứ 9
Bit đữ liệu thứ 9 cần phát trong các chế độ 2 và 3 phải được nạp vào trong TB8
bằng phần mềm Bit dữ liệu dữ liệu thứ 9 thu được đặt ở RB8 Phần mềm có thể cần
hoặc không cần bit đữ liệu thứ 9, phụ thuộc vào đặc tính kỹ thuật của thiết bị nối tiếp
sử dụng (Bit đữ liệu thứ 9 cũng đóng một vai trò quan trong trong truyền thông đa xử lý)
s*» Thêm l bit parity
Thường sử dụng bit đữ liệu thứ 9 để thêm parity vào ký tự Như đã xét ở các
chương trước, bit P trong từ trạng thái chương trình (PSW) được đặt lên 1 hoặc bị xóa
mỗi chu kỳ máy để thiết lập kiểm tra chan với 8 bit trong thanh ghi tích lũy Ví dụ, nếu truyền thông cần 8 bit đữ liệu cộng thêm kiểm tra chắn, có thể sử dụng các lệnh sau để
phát 8 bit trong thanh ghỉ tích lũy với kiển tra chấn thêm vào bit thứ 9 :
MOV C,P ; Dat bit parity chan vao TB8 MOV TB§,C ; nó trở thành bit dữ liệu thứ 9
MOV SBUF,A ; Chuyển 8 bit từ ACC vao SBUF
Nếu cần parity lẻ thì sửa các lệnh lại như sau :
MOV C,P ; Dat bit parity chan vào cờ C
CPL C › Đổi sang parity lẻ
MOV TB8,C
MOV SBUF, A
Dĩ nhiên, việc sử dụng parity không bị giới hạn ở các chế độ 2 và 3 Ở chế độ 1, 8 bit
dữ liệu được truyền đi có thể bao gồm 7 bit đữ liệu cộng thêm bit parity Để truyền mã
ASCII 7 bit với parity chấn ở bit 8, có thể sử dụng các lệnh sau :
SVTH: Nguyễn Văn Xuân 7
Trang 32CLR ACC.7 ; bảo đảm MSB được xóa
PMOV C,P ; parity chấn ở trong
MOV ACC.7,C ; Đặt parity chấn vào MSB
MOV SBUF, A : Gởi ký tự đi 7 bit đữ liệu cộng prity chấn
s* Các cờ ngắt
Hai cờ ngắt thu và phát (RI và TỤ trong SCON đóng một vai trò quan trọng
trong truyền thông nối tiếp dùng 8051/8031 Cả hai bit được đặt lên 1 bằng phần cứng, nhưng phải được xóa bằng phần mềm
Ví dụ:thường RI được đặt lên 1 khi kết thúc việc thu ký tự và báo “bộ đệm thu
tràn” Điều kiện này có thể được kiểm tra trong phần mềm hoặc có thể được lập trình
để gây ra một ngắt Nếu phân mềm muốn nhập một ký tự từ thiết bị được nối vào cổng nối tiếp (có thể là thiết bị đâu cuối hiển thị video), nó phải đợi cho đến khi RI được đặt
lên 1, rỗi xóa RI và đọc ký tự từ SBUE Chương trình như sau :
WAIT:JNB RIWAITT : Kiểm tra RI cho đến khi nó = 1
ký tự trong thanh ghi tích lũy:
WAIT:JINB TI,WAIT : Kiểm tra TI cho đến khi nó bằng 1
CLR TI ; X6a TI MOV SBUF,A ; Gởi ký tự ổi
Các đoạn chương trình trên là một phần của các hàm nhập và xuất ký tự chuẩn
s» Tốc độ baud port nối tiếp
Như đã nói, tốc độ baud cố định ở các chế độ 0 và 2 Trong chế độ 0, nó luôn luôn là tân số dao động trên chip được chia cho 12 Thông thường thạch anh ấn định tần
số dao động trên chip của 8051/8031, nhưng cũng có thể sử dụng nguồn xung nhịp
khác Giả sử với tần số dao động danh định là 12 MHz, thì tốc độ baud chế độ 0 là 1
MHz
Eee
SVTH: Nguyễn Văn Xuân
Trang 33
trên chip „| +16 | —Ì SMOD = tốc độ baud
c) các chế độ 1 và 3
Các nguồn tạo xung nhịp cho port nối tiếp
Mặc nhiên sau khi reset hệ thống, tốc độ baud chế độ 2 là tần số bộ dao động chia cho 64 Tốc độ baud cũng bị ảnh hưởng bởi một bít trong thanh ghi điều khiển nguồn cung cấp (PCON) Bit 7 của PCON là bít SMOD Đặt bít SMOD lên 1 làm gấp đôi tốc độ baud trong các chế độ 1, 2 và 3 Trong chế độ 2, tốc độ baud có thể bị gấp
đôi từ giá trị mặc nhiên của 1/64 tần số dao động (SMOD = 0) đến 1/32 tần số dao động
MOV PCON,A ; Ghi giá trị ngược về PCON
Các tốc độ baud trong các chế độ 1 và 3 được xác định bằng tốc độ tràn của Timer 1
Vì timer hoạt động ở tần số tương đối cao, tràn timer được chia thêm cho 32 (16 nếu SMOD = ]) trước khi cung cấp xung nhịp tốc độ baudcho port nối tiếp
* Sử dụng Timer 1 làm xung nhịp tốc độ baud
Xét 8051, cách thông dụng để tạo tốc độ baud là khởi động TMOD cho chế độ 8 bit tự động nạp lại (chế độ 2) và đặt giá trị nạp lại đúng vào THỊ để cho tốc độ tràn
đúng với tốc độ baud TMOD được khởi động như sau :
MOV TMOD, #0010xxxxB
SVTH: Nguyễn Văn Xuân
Trang 34
XS
Luan an tét nghiép GORD: FGruicng Wy NI
N
Các x là các bit 1 hoặc 0 cần cho timer
Cũng có thể đạt được các tốc độ baud thấp bằng cách sử dụng timer chế
TMOD = 0001xxxxB Tuy nhiên, tốn thêm phần mềm vì các thanh ghi TH1/
được khởi động lại sau mỗi lần tràn Việc này sẽ được thực hiện trong chương trình phục vụ ngắt Một chọn lựa khác là cấp xung nhịp cho Timer 1 từ ngoài dùng T1(P3.5)
Và luôn luôn tốc độ baud là tốc độ tràn của Timer 1 được chia cho 32 (hoặc cho 16, nếu
SMOD = 1)
Công thức tổng quát để xác định tốc độ baud trong các chế độ 1 và 3 là :
Tốc độ baud = Tốc độ tràn của Timer 1 + 32
Ví dụ, muốn làm việc với tốc độ baud là 1200 baud, thì tốc độ tràn của Timer 1 phải là
1200 x 32 = 38.4 KHz
Nếu dùng thạch anh 12 MHz, Timer 1 được cấp xung nhịp 1 MHz hay 1000 KHz Vì tốc
đô tràn của Timer 1 là 38.4 KHz và timer được cấp xung nhịp 1000 KHz, thì cần tràn sau 1000 + 38.4 = 26.04 xung nhịp (làm tròn là 26) Vì timer đếm lên và tràn xảy ra khi
có sự thay đổi từ FEFH xuống 00H ở số đếm Như vậy giá trị đúng cần nạp vào THI là
-26 Cách dễ nhất để đặt giá trị nạp lại vào THỊ là :
độ baud thông dụng nhất, dùng thạch anh 12 MHZ hoặc 11.059 MHz :
Tốc độ Tần số SMOD Giá trịnạp lại Tốc độ baud Sai số
baud thạch anh vào TH thật
Trang 35MTS8880 là một IC thu phát DTMF trọn bộ kèm theo một bộ lọc thoại (Call
Progress Filter) Bộ thu DTME dựa trên kỹ thuật chuẩn của IC MT8870, còn gọi là bộ
phát DTME sử dụng phương pháp biến đổi D/A biến dung (Switched Capacitor) cho ra
tín hiệu DTMF chính xác, ít nhiễu Các bộ đếm bên trong giúp hình thành chế độ Brust Mode, nhờ vậy các cặp tone xuất ra với thời hằng chính xác Bộ lọc Call Progress cho phép bộ vi xử lý phân tích các tone trạng thái đường dây Bus chuẩn của nó kết hợp MPU va đặc biệt thích hợp họ 6800 của Mortorola MT8880 có 5 thanh ghi bên trong để giao tiếp với wP, có thể chia làm 3 loại:
Nhận phát data: 2 thanh ghi
Thanh ghi trạng thái
_ Nhận từ điều khiển: 2 thanh ghi
3.2.1 Mô tả chức năng
IC phát tone MT§880 bao gồm bộ thu DTME chất lượng cao (kèm bộ khuếch đại) và một bộ tạo DTME sử dụng BUST COUNTER giúp cho việc tổng hợp đóng ngắt tone được chính xác Ngoài ra ta có thể chọn chế độ CALL PROGRESS để giúp phát hiện các tần số nằm trong dải thông thoại Đó là các tín hiệu trạng thái đường dây
3.2.2 Cấu hình ngõ vào
Thiết kế đầu vào của MT8880 cung cấp một bộ khuếch đại OP-AMP ngõ vào vi
sai cũng như một ngõ vào VREE để đ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 độ
\di
> Bộ thu
Hai bộ lọc băng thông bậc 6 giúp tách các tone trong các nhóm tone LOW và
HIGH Đầu ra mỗi bộ lọc điện dung giúp nắn dạng tín hiệu trước khi qua bộ hạn biên
Việc hạn biên được đảm nhiệm bởi bộ so sánh (Comparator) có kèm theo bộ trễ để
tránh chọn lâm tín hiệu mức thấp không mong muốn Đầu ra của bộ so sánh cho ta các dao động có mức logic tại tần số DTMF thu được
Tiếp theo phần lọc là bộ giải mã sử dụng kỹ thuật đếm số để kiểm tra tần số của các tone thu được và bảo đảm chúng tương ứng với các tần số DTME chuẩn Một
kỹ thuật lấy trung bình phức giúp loại trừ các tone giả tạo thành do tiếng nói trong khi vẫn đảm bảo một khoảng biến động cho tone thu do bị lệch Khi bộ kiểm tra nhận dạng được hai tone đúng thì đâu ra “early steering” (Est) sẽ lên mức Active Lúc không nhận được tín hiệu tone thì Est sẽ lên mức Inactive
eee
a S.RỶễnẵẳẵớợờớờaợaợnnunnn
SVTH: Nguyén Van Xuan 31
Trang 36Trướ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 Est lên HIGH làm cho Vc tăng lên khi tụ xả Khi mà Est vẫn còn HIGH trong một thời đoạn hợp lệ (tone) thì Vc tiến tới mức ngưỡng Vtst của logic Steering để
nhận một cặp tone và chốt 4 bit mã tương ứng với nó vào thanh ghi Receive Data Register Lúc này, đầu ra GT được kích hoạt và đẩy Vc lên tới VDD Cuối cùng sau
một thời gian delay ngắn cho phép việc chốt Data thực hiện xong thì cờ của mạch
Steering lên HIGH báo hiệu rằng cặp tone thu được đã được lưu vào thanh ghi Ta có
thể kiểm tra bit tương ứng trong thanh ghi trạng thái Nếu ta cho Mode Interruptt thì chân IRQ/CP sẽ xuống LOW khi cờ này được kích hoạt
Dữ liệu thu được sẽ đi ra Databus (2 chiều) khi thanh ghi Receive Data đượ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ố được quay Vì vậy bộ thu vừa bỏ qua tín hiệu quá ngắn không hợp lệ vừa không chấp nhận các khoảng ngắt quá nhỏ không thể coi là khoảng dừng giữa các số Chức năng này, cũng như khả nang chon thdi hang 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 từng
ứng dụng
> Bộ lọc thoại Mode CALL PROGRESS khi được chọn thì cho phép kiểm tra các tone khác nhau thể hiện trạng thái đường dây Đầu vào của Call Progress và mode tone DTMF là chung nhưng tone Call Progress chỉ có thể kiểm tra néu ta chon mode CP DTMF tone lại không thể nhận dạng được nếu ta chọn mode CP
Các tần số đưa đến đầu vào (+IN và -IN) nằm trong giới hạn băng thông chấp
nhận của bộ lọc (280-550 Hz) sẽ đưa qua bộ so sánh có độ lợi cao và đến chân IRQ/CP
Dạng sóng ở đầu ra tạo bởi mạch trigger có thể phân tích bởi vi xử lý để xác định tính chất của các tone trạng thái đường dây Các tần số trong vùng loại bỏ sẽ không được
kiểm tra và như vậy sẽ không có tín hiệu nào ở chân TRQ/CP khi gặp các tần số này
Bộ phát DTMEF trong MT8880 có khả năng tạo tất cả 16 cặp tone DTME chuẩn với nhiễu tối thiểu và độ chính xác cao Tất cả tần số này đều lấy từ dao động thạch
anh 3.579545 Mhz mắc ngoài Dạng sóng sin của từng tone được tổng hợp số bằng cách
sử dụng bộ phận chia hàng và cột tổng hợp được, và bộ biến đổi D/A biến dung Các
tone hàng và cột được trộn lại và lọc để cho ra tín hiệu DTME với ít hài và độ chính
——.s-S_— _—_— — ——B —_on_Ốn_ -saaœaằẳằẳằằ.ẲẲẲVŒậ
= —- k aaan
Trang 37Bảng mã hóa các tín hiệu quay số DTME
Thời hằng của mỗi tone bao gồm 32 thời đọan giống nhau Thời hằng của một
tone được điều khiển bằng cách thay đổi độ dài của các thời đoạn trên Trong hoạt động ghi vào thanh ghi Transmith Data thì 4 bit data trên bus được chốt và biến đổi thành 2 trong 8 mã để sử dụng cho mạch chia hàng cột Mã này được sử dụng để quyết
định thời đoạn tần số của một tone
> Burst mode
Một ứng dụng điện thoại bất kỳ đều đòi hỏi tín hiệu DTME được tạo ra với một thời hằng hoặc được quy định bởi ứng dụng đó hoặc bởi hệ thống chuyển mạch hiện
có Thời hằng DTMF chuẩn có thể được tạo ra bằng cách sử dụng Burst Mode Bộ phát
có khả năng tổng hợp các tone có khoảng tắt/mở trong thời gian định trước Thời gian này là 51 ms + 1ms và là chuẩn cho bộ quay số tự động và tổng đài Sau khi khoảng tắtmở tone đã được phát đi, 1 bit tương ứng sẽ được lập trong thanh ghi trạng thái để biểu thị rằng bộ phát đã sẵn sàng cho data kế Thời hằng 51 ms + lms đóng /md tone
có được khi ta chọn mode DTME
Tuy nhiên khi CP mode (Call Progress Mode) được chọn thì một thời hằng đóng
ngắt thứ hai là 102ms + 2ms sẽ được sử dụng Khoảng thời hằng dài hơn này sẽ hữu ích
=——:
SVTH: Nguyễn Văn Xuân 33
Trang 38
Luin dn tét nghiệp, GOHD: Grong Agee Béo
Fe
khi thời gian xuất hiện tone là 51 ms Chú ý rằng khi CP mode và burst mode cùng
được chọn thì MT8880 chỉ hoạt động ở chế độ phát mà thôi Trong một ứng dụng nào
đó khi ta cần một khoảng thời gian đóng ngắt khác (không theo chuẩn) thì phải dùng vòng lặp phân mềm hay một bộ định bên ngoài và tắt chế độ Busri Mode đi IC
MT8880 khi được khởi động sẽ mặc nhiên chọn chế độ DTMF mode va Burst mode
đồng thời
> Tao Tone Don: (Single Tone) Chế độ tạo tone đơn được dùng khi ta chỉ muốn tạo một tone nào đó trong nhóm
thấp hoặc cao Chế độ này dùng để kiểm tra thiết bị DTMF và để tính toán nhiễu, và
được chọn thanh ghi Control Register B
> Mach Clock DTMF
Mạch clock được sử đụng kết hợp với tần số màu chuẩn tivi có tần số cộng
hưởng là 3.579545 Mhz Một nhóm IC MT 8880 có thể nối với nhau dùng chung một dao động thạch anh
»> Bộ giao tiếp với vi xử lý
MTS8880 sử dụng một bộ giao tiếp vi xử lý cho phép điều khiển một cách chính
xác với chức năng thu và phát Có tổng cộng 5 thanh ghi chia làm ba loại: Thanh ghi
dữ liệu thu /phát, thanh ghi điều khiển thu /phát và thanh ghi trạng thái Có hai thanh ghi đữ liệu: thanh ghi Receive data chứa mã xuất ra của cặp tone DTMF hợp lệ gần nhất và là thanh ghi chỉ đọc Data đưa vào thanh ghi Transmith Data sẽ qui định cặp tone nào được phát đi, Data chỉ có thể được vào thanh ghi này
Điều khiển thu phát tone được đảm nhận bởi 2 thanh ghi Control Register À và Control Register B (CRA và CRB) có cùng một địa chỉ Muốn ghi vào thanh ghi CRB
thì trước đó phải có set một bit tương ting 6 'CRA Chu kỳ ghi kế tiếp vào cùng địa chỉ
với CRA sẽ cho phép truy cập tới CRB Và chu kỳ ghi kế tiếp nữa sẽ trở lại CRA Khi cấp điện mạch điện reset nội sẽ xóa các thanh ghỉ điều khiển Tuy vậy, để ngăn ngừa thì chương trình phần mềm nên có một đòng lệnh để kích khởi các thanh ghi này Giả
sử rằng thanh ghi phát rỗng sau khi reset, ta xem qua các bảng (3, 4, 5 và 6) để thấy rõ chỉ tiết về các thanh ghi điều khiển Chân IRQ/CP có thể được lập trình sao cho nó có
thể cung cấp tín hiệu yêu cầu ngắt sau khi nhận xung DTMEF hợp lệ hay khi bộ phát đã
sẵn sàng cho data kế tiếp (chỉ trong Burst mode) Chân IRQ/CP là ngõ ra cực máng hở
và vì thế cần có một điện trở kéo lên
Thanh ghi nhận data chứa mã lệnh xuất của giá trị cuối cùng cặp tone DTMF
được giải mã và chỉ là thanh ghi đọc data vào Tín hiệu data vào trong thanh ghi phát
sẽ được định rõ với cặp tone nào mà được phát sinh ra Data chỉ có thể được viết với
thanh ghi phát
Hai thanh ghi điều khiển CRA va CRB chỉ chiếm chỗ trong một khoảng địa chỉ
tương ứng ghép ghi với CRB có thể được thực hiện bằng cách đặt dành riêng bit trong CRA phép ghi tiếp theo tới địa chỉ tương tự sẽ được trực tiếp đưa tới CRB và tiếp theo sau cho chu kỳ ghi sẽ được trực tiếp trở lại CRA
SVTH: Nguyễn Văn Xuân
Trang 39
a
3.2.3 Cách truy cập thanh ghi
RSO |R/W_ | CHỨC NĂNG
Ghi vào thanh ghi Data phát
Đọc từ thanh ghi data thu
Ghi vào thanh ghi điều khiển
Đọc từ thanh ghi trạng thái
b3 b2 b1 b0 REGISTER |INTERRUPT | CP/ DTMF TONE OUT SELECT T MODE
ENABLE
CRA (Control Register A)
BIT | TEN CACH SU DUNG
BO | TONE Mức logic 1 cho phép tone được phát ra Chức năng này
OUTPUT có thể được thực hiện trong Busrt mode hoặc None-
Busrt mode
Bl CP/ DTMF | Chọn mode DTMF (mức 0) cho phép thu và phát tone
MODE đồng thời Khi chọn mode CP (mức! bộ lọc đãi bậc 6) CONTROL | được kích hoạt cho phép kiểm tra các tone trạng thái
đường dây (call progress tone) Các tone này nếu nằm trong đãi thông qui định thì được thể hiện ở chân IRQ/CP
ở dạng sóng hình chữ nhật nếu bit IRQ được chọn (B=])
Ngoài ra khi cả hai CP mode và busrt mode được chọn,
bộ phát sẽ phát tín hiệu DTME với khoảng tắt mở là 102
ms, gấp đôi khi ta chọn mode DTMEF Chú ý rằng tone
DTMF sẽ được thu khi mode CP được chọn
B2 |INTERRUPT | Logic 1 cho phép mode Interrupt Khi mode này mức tích
ENABLE cực và mode DTME được (B1=0), chan IRQ/CP sé bị
kéo xuống mức 0 khi:
+ Một tín hiệu DTME hợp lệ được nhận và đã hiện hữu được trong khoảng thời gian an toàn
+ Bộ phát sẵn sàng cho data kế tiếp ( chi trong Busrt
B3 | REGISTERE | Logic 1 cho phép CRB trong chu kỳ ghi kế tiếp trên cùng
SELECT địa chỉ này Chu kỳ ghi kế sau nữa sẽ trở lại ghi vào
CRA
SVTH: Nguyễn Văn Xuân
Trang 40SINGLE /DUAL TONE TEST MODE BUSRT MODE
BO BUSRT MODE Mức 0 cho phép chọn Busrt mode khi mode này được
chọn Data tương ứng với cặp tone DTME có thể được
viết vào thanh ghi phát để tạo ra khoảng mở tone với
thời hằng chuẩn (51ms hay 102ms) Kế tiếp sau là
khoảng ngắt tone với thời hằng tương tự Ngay sau khoảng ngắt tone thì thanh ghi trạng thái sẽ được cập
nhật biểu thị rằng thanh ghi phát đã sẵn sàng cho các
lệng mới và một ngắt được tạo ra các mode Interruptt
đã được chọn trước đó Khi Burst Mode không được
chọn trước đóthì tone phát ra sẽ được tắt mở theo bất
kỳ thời hằng nào do người dùng lập trình
BI TEST MODE Cho phép chọn Test Mode (logic 1) Khi đó chân
IRQ/CB sẽ xuất hiện tín hiệu Steering được làm trễ từ
bộ thu DTMF DTME Mode phải được chọn (CRÀ B1=0) trước khi Test Mode được kích hoạt
B2 SINGLE/
DUAL TONE GENERATION
Mức logic 0 cho pháp tín hiệu Dual Tone Mulu Frequency Logic 1 chọn chế độ tone đơn (single tone)
cho phép tạo ra một tone nhóm thấp hoặc nhóm cao
dựa vào trạng thái của bit B3 trong thanh ghi CRB
B3
Sử dụng với bit B2 ở trên Bộ phát có thể được chọn để
phát tần số nằm trên hàng hay cột và mức logic 1 sẽ chọn tần số hàng
BO IQR Ngắt chưa kích hoạt Bị
xóa sau khi thanh ghi