Tải bản đầy đủ (.doc) (57 trang)

Thiết kế hệ thống bảng hiển thị tỷ giá ngân hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.52 MB, 57 trang )

MỤC LỤC
LỜI MỞ ĐẦU 2
GIỚI THIỆU ĐỀ TÀI 3
1.1.1.Giới thiệu chung: 4
Sơ đồ khối và chức năng các khối của vi điều khiển 8051: 5
1.1.3.Cấu trúc các port xuất nhập vi điều khiển 8051: 13

1.2. Giao tiếp cổng nối tiếp 15
1.3. Giới thiệu các linh kiện sử dụng trong mạch 34
CHƯƠNG 2 . PHÂN TÍCH HỆ THỐNG 43
2.1. Yêu cầu bài toán 43
2.2. Sơ đồ khối: 43
2.3. Phân tích mô hình hệ thống 44
2.4. Khung truyền dữ liệu 44
2.5. Thuật toán điều khiển 44
CHƯƠNG 3 . XÂY DỰNG HỆ THỐNG 48
3.1. Thiết kế phần cứng 48
3.1.1. Khối tạo xung dao động 48
3.1.2.Mạch giao tiếp RS232: 48
3.1.3.Mạch kết nối vi điều khiển với led 7 thanh: 50
3.2. Hệ thống trên máy tính 54
KẾT LUẬN VÀ HƯỚNG PHẤT TRIỂN 56


LỜI MỞ ĐẦU
Trong lĩnh vực kỹ thuật ngày nay thì lĩnh vực điện tử đóng vai trò vô cùng quan
trọng trong thời đại công nghiệp hoá, hiện đại hoá đất nước.Nói đến lĩnh vực điện tử
thì chúng ta không thể không nhắc đến ngành kỹ thuật điện tử - vi điện tử.Đó là chiếc
chìa khoá vàng mở ra một kỷ nguyên mới - kỷ nguyên của ngành công nghệ thông tin.
Tuy chỉ mới thâm nhập vào nước ta gần đây nhưng công nghệ thông tin đã phát
triễn rất nhanh và ngày càng giữ vai trò quan trọng trong nền công nghiệp hoá nước


nhà.Với sự phát triển nhanh chóng của ngành công nghệ thông tin và những lợi ích
thấy rõ thì việc điều khiển các thiết bị thông qua máy tính đóng vai trò quan trọng
trong cuộc công nghiệp hoá. Lấy ví dụ trong các ngân hàng làm việc về tiền tệ thì tỷ
giá của các đồng tiền trên thế giới luôn có sự biến động thay đổi.Nên để niêm yết tỷ
giá được nhanh chóng, thường xuyên thì họ sử dụng các bảng hiển thị để niêm tỷ giá
kết nối với máy tính,và có thể thay đổi tỷ giá từ máy tính của ngân hàng. Xuất phát từ
thực tiễn này, em đã quyết định chọn đề tài: “Thiết kế hệ thống bảng hiển thị tỷ giá
ngân hàng”. Đây chỉ là một trong rất nhiều các ứng dụng của việc giao tiếp giữa máy
tính với các thiết bị sử dụng vi điều khiển và sử dụng máy tính để điều khiển các thiết
bị đó.Nhưng nó là cơ sở để có thể phát triển trong các hệ thống lớn khác.
Em xin được cảm ơn thầy giáo Lê Hùng Linh,người đã hướng dẫn nhiệt tình cho
em trong quá trình từ ý tưởng trở thành sản phẩm như hiện nay.
Do giới hạn về thời gian cũng như kiến thức, quy mô trong bài báo cáo nên nội
dung còn nhiều thiếu sót.Rất mong sự đóng góp ý kiến của quý thầy cô và các bạn
sinh viên để bài báo cáo được hoàn thiện hơn.
Xin chân thành cảm ơn!


GIỚI THIỆU ĐỀ TÀI
Đặt vấn đề
Với sự phát triển mạnh mẽ về khoa học kỹ thuật trong những thập niên gần đây
ngành công nghệ thông tin đã tạo ra bước ngoặt quan trọng trong việc đáp ứng
nhưng nhu cầu của con người. Hiện nay ứng dụng của công nghệ thông tin đã trở
nên gần gũi và quen thuộc với con người hơn, và có lẽ đó là một phần thiết yếu của
cuộc sống .Với sự phát triển của khoa học kỹ thuật, nhu cầu ngày càng cao của đời
sống nhân dân, các sản phẩm ngày càng phải tân tiến hơn để đáp ứng những nhu cầu
trên. Xuất phát từ thực tế nói trên, cùng với các kiến thức đã học tập được ở nhà
trường và kế thừa những kinh nghiệm và thành tựu của các anh chị sinh viên khóa
trước, nên em xin chọn đề tài “Hệ thống hiển thị tỷ giá ngân hàng trên” sử dụng vi
điều khiển họ 8051.

Lý do chọn đề tài
Hiện nay, đất nước ta đang trong giai đoạn phát triển mạnh mẽ, nền kinh tế ngày
càng phát triển.Các hoạt động phát triển kinh tế của cá nhân và tập thể cũng phát
triển rất nhanh.Để phục vụ cho việc phát triển kinh tế các ngân hàng xuất hiện rất
nhiều hoạt động trong lĩnh vực tiền tệ , hỗ trợ về vốn cho các cá nhân tập thể trong
việc kinh doanh.Không chỉ là các hoạt động kinh doanh, buôn bán trong nước mà
còn các hoạt động kinh doanh hợp tác đầu tư quốc tế.Vì thế các ngân hàng luôn cập
nhật tỷ giá của đồng tiền trong nước với các nước khác để phục vụ cho việc trao đổi
tiền tệ,kinh doanh với nước ngoài.Để phục vụ cho việc cập nhật tỷ giá được dễ dàng
hơn thì các hệ thống bảng hiển thị tỷ giá kết nối với hệ thống máy tính của ngân
hàng có tác dụng rất lớn.
Mục đích nghiên cứu
Mục đích của đề tài là thiết kế một sản phẩm giúp cho việc cập nhật tỷ giá giữa
các đồng tiền trên thế giới hoặc hiển thị số trên bảng hiển thị tùy ý theo mục đích.
Khi thực hiện đề tài này sinh viên có khả năng vận dụng các kiến thức đã học và tìm
hiểu sâu hơn về vi điều khiển, các linh kiện điện tử và có thêm kinh nghiệm thao tác
với mạch điện.
Giới hạn nghiên cứu


Do điều kiện thời gian có hạn, kinh phí eo hẹp và năng lực còn hạn chế nên trong
phạm vi của để tài em chỉ có thể trình bày nội dung như sau: Sử dụng vi điều khiển
AT89C52 làm trung tâm điều khiển, kết hợp với một số linh kiện khác để máy tính
và vi điều khiển có thể giao tiếp với nhau,truyền nhận dữ liệu hiển thị lên led 7
thanh.
Ý nghĩa khoa học và thực tiễn của đề tài
Đề tài này thực hiện nhằm mục đích giúp sinh viên tim hiểu về kỹ thuật lập trình
vi điều khiển, nghiên cứu sâu hơn về các thiết kế phần cứng. Về mặt ý nghĩa thực
tiễn, đề tài này có thể mở rộng theo nhiều hướng nghiên cứu khác nhau nhằm đáp
ứng nhu cầu khác nhau.

Phương pháp nghiên cứu và phương tiện nghiên cứu
Phương pháp nghiên cứu chủ yếu là tham khảo tài liệu: chủ yếu là các tài liệu về
vi điều khiển, vi xử lý, điện tử số… Ngoài ra còn tham khảo trên một số trang web
và diễn đàn.
Phương tiện nghiên cứu:chủ yếu là sách giáo khoa, giáo trình và máy tính.

CHƯƠNG 1.CƠ SỞ LÝ THUYẾT
1.1 . Giới thiệu về vi điều khiển họ 8051
Với mục đích chủ yếu là tìm hiểu về họ vi điều khiển 8051 (MSC-51)nên em xin
trình bày một số nội dung về họ vi điều khiển này.
1.1.1. Giới thiệu chung:
MCS-51 là họ vi điều khiển của hãng Intel. Vi mạch tổng quát của họ MCS-51 là
chip 8051.
Chip 8051 có một số đặc trưng cơ bản sau:













Bộ nhớ chương trình bên trong: 4 KB (ROM).
Bộ nhớ dữ liệu bên trong: 128 byte (RAM).
Bộ nhớ chương trình bên ngoài: 64 KB (ROM).

Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM).
4 port xuất nhập (I/O port) 8 bit.
2 bộ định thời 16 bit.
Mạch giao tiếp nối tiếp.
Bộ xử lý bit (thao tác trên các bit riêng lẻ).
210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit.
Nhân / Chia trong 4 µs.
Ngoài ra, trong họ MCS-51 còn có một số chip vi điều khiển khác có cấu trúc

tương đương như sau:

1.1.2. Các chân của vi điều khiển 8051:
Sơ đồ khối và chức năng các khối của vi điều khiển 8051:
Sơ đồ khối vi điều khiển 8051


- CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính toán và điều khiển quá
trình hoạt động của hệ thống.
- OSC (Oscillator): Mạch dao động tạo tín hiệu xung clock cung cấp cho các khối
trong chip hoạt động.
- Interrupt control: Điều khiển ngắt nhận tín hiệu ngắt từ bên ngoài (INT0\, INT1\), từ
bộ định thời (Timer 0, Timer 1) và từ cổng nối tiếp (Serial port), lần luợt đua các tín
hiệu ngắt này đến CPU để xử lý.
- Other registers: Các thanh ghi khác Lưu trữ dữ liệu của các port xuất/nhập, trạng
thái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống.
- RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip lưu trữ các dữ liệu.
- ROM (Read Only Memory): Bộ nhớ chương trình trong chip lưu trữ chương trình
hoạt động của chip.
- I/O ports (In/Out ports): Các port xuất/nhập điều khiển việc xuất nhập dữ liệu duới
dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.

- Serial port: Port nối tiếp điều khiển việc xuất nhập dữ liệu duới dạng nối tiếp giữa
trong và ngoài chip thông qua các chân TxD, RxD.


- Timer 0, Timer 1: Bộ định thời 0, 1 dùng để định thời gian hoặc đếm sự kiện (đếm
xung) thông qua các chân T0, T1.
- Bus control: Điều khiển bus điều khiển hoạt động của hệ thống bus và việc di
chuyển
thông tin trên hệ thống bus.
- Bus system: Hệ thống bus liên kết các khối trong chip lại với nhau.
Sơ đồ chân và chức năng các chân của vi điều khiển 8051:
Sơ đồ chân của vi điều khiển 8051

a. Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có hai chức năng:

Port xuất nhập dữ liệu (P0.0 - P0.7) không sử dụng bộ nhớ ngoài.

Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ nhớ
ngoài.
Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở
kéo lên bên ngoài.


- Ở chế độ mặc định (khi reset) thì các chân Port 0 (P0.0 - P0.7) được cấu hình là
port xuất dữ liệu. Muốn các chân Port 0 làm port nhập dữ liệu thì cần phải lập trình
lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu
nhập dữ liệu từ port (vấn đề này được trình bày ở phần kế tiếp).
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu

(D0 – D7).
b. Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 có một chức năng:
 Port xuất nhập dữ liệu (P1.0 – P1.7) sử dụng hoặc không sử dụng bộ nhớ ngoài.
- Ở chế độ mặc định (khi reset) thì các chân Port 1 (P1.0 – P1.7) được cấu hình là
port xuất
dữ liệu. Muốn các chân Port 1 làm port nhập dữ liệu thì cần phải lập trình lại, bằng
cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập dữ
liệu từ port (vấn đề này được trình bày ở phần kế tiếp).
- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte
thấp (A0 – A7).
c. Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có hai chức năng:



Port xuất nhập dữ liệu (P2.0 – P2.7) không sử dụng bộ nhớ ngoài.
Bus địa chỉ byte cao (A8 – A15) có sử dụng bộ nhớ ngoài.

- Ở chế độ mặc định (khi reset) thì các chân Port 2 (P2.0 – P2.7) được cấu hình là port
xuất dữ liệu. Muốn các chân Port 2 làm port nhập dữ liệu thì cần phải lập trình lại,
bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập
dữ liệu từ port (vấn đề này được trình bày ở phần kế tiếp).


- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của địa chỉ byte
cao (A8 – A11) và các tín hiệu điều khiển.
d. Port 3:

- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 3 có hai chức năng:


Port xuất nhập dữ liệu (P3.0 – P3.7) không sử dụng bộ nhớ ngoài hoặc các

chức năng đặc biệt.

Các tín hiệu điều khiển  có sử dụng bộ nhớ ngoài hoặc các chức năng đặc
biệt.
- Ở chế độ mặc định (khi reset) thì các chân Port 3 (P3.0 – P3.7) được cấu hình là
port xuất
dữ liệu. Muốn các chân Port 3 làm port nhập dữ liệu thì cần phải lập trình lại, bằng
cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập dữ
liệu từ port (vấn đề này được trình bày ở phần kế tiếp).
- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của các tín hiệu
điều khiển (xem sách “Họ vi điều khiển 8051” trang 333-352).


- Chức năng của các chân Port 3:
Bit

Tên

Địa chỉ bit

Chức năng

P3.0


RxD

B0H

Chân nhận dữ liệu của port nối
tiếp.

P3.1

TxD

B1H

Chân phát dữ liệu của port nối tiếp.

P3.2

INT0\

B2H

Ngõ vào ngắt ngoài 0.

P3.3

INT1\

B3H

Ngõ vào ngắt ngoài 1.


B4H

Ngõ vào của bộ định thời/đếm 0.

P3.4

T0

P3.5

T1

B5H

Ngõ vào của bộ định thời/đếm 1.

P3.6

WR\

B6H

ðiều khiển ghi vào RAM ngoài.

P3.7

RD\

B7H


điều khiển đọc từ RAM ngoài.

e. Chân PSEN\:
- PSEN (Program Store Enable): cho phép bộ nhớ chương trình, chân số 29.
- Chức năng:



Là tín hiệu cho phép truy xuất (đọc) bộ nhớ chương trình (ROM) ngoài.
Là tín hiệu xuất, tích cực mức thấp.

PSEN\ = 0 trong thời gian CPU tìm - nạp lệnh từ ROM ngoài.
PSEN\ = 1 CPU sử dụng ROM trong (không sử dụng ROM ngoài).
- Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân
OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài.
f. Chân ALE:
- ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30.
- Chức năng:

Là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp cho bus địa chỉ
byte thấp và bus dữ liệu đa hợp (AD0 – AD7).




Là tín hiệu xuất, tích cực mức cao.

ALE = 0  trong thời gian bus AD0 - AD7 đóng vai trò là bus D0 - D7.
ALE = 1  trong thời gian bus AD0 - AD7 đóng vai trò là bus A0 - A7.

- Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xung
lập trình (PGM\).
Lưu ý: fALE=fOSC/6 có thể dùng làm xung clock cho các mạch khác.
(MHz): tần số xung tại chân ALE. f
(MHz): tần số dao động trên chip (tần số thạch anh).
- Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) được thực hiện thì một xung ALE bị
bỏ qua.
g. Chân EA\:
- EA (External Access): truy xuất ngoài, chân số 31.
- Chức năng:



Là tín hiệu cho phép truy xuất (sử dụng) bộ nhớ chương trình (ROM) ngoài.
Là tín hiệu nhập, tích cực mức thấp.

EA\ = 0 Chip 8051 sử dụng chương trình của ROM ngoài.
EA\ = 1 Chip 8051 sử dụng chương trình của ROM trong.
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp
lập trình(Vpp = 12V – 12,5V cho họ 89xx; 21V cho họ 80xx, 87xx).
Lưu ý: Chân EA\ phải được nối lên Vcc (nếu sử dụng chương trình của ROM trong)
hoặc nối xuống GND (nếu sử dụng chương trình của ROM ngoài), không bao giờ
được phép bỏ trống chân này.
h.Chân XTAL1, XTAL2:
- XTAL (Crystal): tinh thể thạch anh, chân số 18-19.
- Chức năng:





Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài,

cung cấp tín hiệu xung clock cho chip hoạt động.

XTAL1  ngõ vào mạch tạo xung clock trong chip.

XTAL2  ngõ ra mạch tạo xung clock trong chip.
Lưu ý: fTYP=12MHz

fTYP (MHz): tần số danh định.

i. Chân RST:
- RST (Reset): thiết lập lại, chân số 9.
- Chức năng:

Là tín hiệu cho phép thiết lặp (đặt) lại trạng thái ban đầu cho hệ thống.

Là tín hiệu nhập, tích cực mức cao.
RST = 0 Chip 8051 hoạt động bình thường.
RST = 1 Chip 8051 được thiết lặp lại trạng thái ban đầu.
Lưu ý: tReset≥2×TMachine
tRESET(µs):thời gian reset.
TMACHINE(µs):chu kỳ máy.

k. Chân Vcc, GND:

TMachine=12/fOSC.
fOSC=(MHz):tần số thạch anh.



- Vcc, GND: nguồn cấp ñiện, chân số 40 và 20.
- Chức năng:



Cung cấp nguồn điện cho chip 8051 hoạt động.
Vcc = +5V  10% và GND = 0V.

1.1.3. Cấu trúc các port xuất nhập vi điều khiển 8051:
Khả năng fanout (số luợng tải đầu ra) của các từng chân port chip 8051 là:





Port 0: 8 tải TTL.
Port 1: 4 tải TTL.
Port 2: 4 tải TTL.
Port 3: 4 tải TTL.

Lưu ý:
Khi Port 0 đóng vai trò là port xuất nhập thì sẽ không có điện trở kéo lên bên trong
do đó nguời sử dụng cần thêm vào điện trở kéo lên bên ngoài (xem Hình III.1).

Ở chế độ mặc định (khi reset) thì tất cả các chân của các port (P0 – P3) đuợc cấu
hình là port xuất dữ liệu.


Muốn các chân port của chip 8015 làm port nhập dữ liệu thì ta cần phải đuợc lập
trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit (các chân) của port

truớc khi bắt đầu nhập dữ liệu từ port (vấn đề này đuợc trình bày ở phần kế tiếp).
Các chân trong cùng một port không nhất thiết phải có cùng kiểu cấu hình (port
xuất hoặc port nhập).Nghĩa là trong cùng một port có thể có chân dùng để nhập dữ
liệu, có thể có chân dùng để xuất dữ liệu.Điều này là tùy thuộc vào nhu cầu và mục
đích của nguời lập trình.
Quá trình ghi chân port (xuất dữ liệu ra chân port)

Thao tác ghi chân port.
Quá trình đọc chân port (nhập dữ liệu từ chân port).

Thao tác đọc chân port


Quá trình đọc bộ chốt (kiểm tra dữ liệu tại chân port)

Thao tác đọc bộ chốt
Lưu ý: Việc đọc dữ liệu của bất kỳ một port nào có thể cho ta hai giá trị khác nhau
tùy thuộc vào lệnh mà ta sử dụng để đọc dữ liệu từ port (xem thêm trong phần tập
lệnh). Xảy ra hiện tượng không mong muốn này là do quá trình đọc dữ liệu của chip
8051 gồm hai quá trình khác nhau: quá trình đọc chân port và quá trình đọc bộ chốt.
Quá trình đọc chân port: Khi ta sử dụng các lệnh MOV, ADD,…Dữ liệu nhận
đuợc sau khi thực hiện quá trình đọc là dữ liệu hiện tại ở các chân port.
Quá trình đọc bộ chốt: Khi ta sử dụng các lệnh ANL, ORL, XRL, CPL, INC,
DEC, DJNZ, JBC, CLR bit, SETB bit, MOV bit.Dữ liệu nhận được sau khi thực hiện
quá trình đọc là dữ liệu hiện tại ở các bộ chốt (là các dữ liệu đã được ghi ra port tại
thời điểm truớc đó bởi quá trình ghi chân port), chứ không phải là dữ liệu hiện tại ở
các chân port.Cho nên, nếu tại thời điểm thực hiện quá trình đọc mà dữ liệu tại các
chân port có bị thay đổi đi chăng nữa thì dữ liệu đọc về cũng không được cập nhật.
1.2. Giao tiếp cổng nối tiếp
1.2.1. Cấu trúc cổng nối tiếp

Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có
các ưu điểm sau:
- Khoảng cách truyền xa hơn truyền song song.


- Số dây kết nối ít.
- Có thể truyền không dây dùng hồng ngoại.
- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device).
- Cho phép nối mạng.
- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc.
- Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE
(Data Communication Equipment). DCE là các thiết bị trung gian như MODEM còn
DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển,…
Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền).Các tín
hiệu còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi
là các tín hiệu bắt tay (handshake).Ưu điểm của quá trình truyền dùng tín hiệu bắt tay
là có thể kiểm soát đường truyền.
Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations).
Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark),mức
logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10
mA đến 20 mA.Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch.
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20000 bps nhưng nếu cáp
truyền đủ ngắn có thể lên đến 115200 bps.
Các phương thức nối giữa DTE và DCE:
- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng.
- Bán song công (half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm chỉ
được truyền theo 1 hướng.
- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng.



Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:

Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V).Khi
bắt đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0
đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường
truyền. Dạng tín hiệu truyền mô tả như sau (truyền ký tự A):

Tín hiệu truyền của ký tự ‘A’
Các đặc tính kỹ thuật của chuẩn RS-232 như sau:

Chiều dài cable cực đại

15m

Tốc độ dữ liệu cực đại

20 Kbps

Điện áp ngõ ra cực đại

± 25V

Điện áp ngõ ra có tải

± 5V đến ±
15V

Trở kháng tải


3K đến 7K

Điện áp ngõ vào

±15V

Độ nhạy ngõ vào

±3V

Trở kháng ngõ vào

3K đến 7K


Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,
9600 bps và 19200 bps.
Sơ đồ chân:

Sơ đồ chân cổng nối tiếp
Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả
như hình trên.
Ý nghĩa của các chân mô tả như sau:
D25 D9

Tín

Hướng truyền

Mô tả


hiệu
1

-

-

-

Protected ground: nối đất bảo vệ

2

3

TxD

DTE->DCE

Transmitted data: dữ liệu truyền

3

2

RxD

DCE->DTE


Received data: dữ liệu nhận

4

7

RTS

DTE->DCE

Request to send: DTE yêu cầu truyền dữ
liệu


5

8

CTS

DCE->DTE

Clear to send: DCE sẵn sàng nhận dữ liệu

6

6

DSR


DCE->DTE

Data set ready: DCE sẵn sàng làm việc

7

5

GND

-

8

1

DCD

DCE->DTE

Ground: nối đất (0V)
Data carier detect: DCE phát hiện sóng
mang

20

4

DTR


DTE->DCE

Data terminal ready: DTE sẵn sàng làm
việc

22

9

RI

DCE->DTE

Ring indicator: báo chuông

23

-

DSRD

DCE->DTE

Data signal rate detector: dò tốc độ truyền

24

-

TSET


DTE->DCE

Transmit Signal Element Timing: tín hiệu
định thời truyền đi từ DTE

15

-

TSET

DCE->DTE

Transmitter Signal Element Timing: tín
hiệu định thời truyền từ DCE để truyền dữ
liệu

17

-

RSET

DCE->DTE

Receiver Signal Element Timing: tín hiệu
định thời truyền từ DCE để truyền dữ liệu

18


-

LL

21

-

RL

Local Loopback: kiểm tra cổng
DCE->DTE

Remote Loopback: Tạo ra bởi DCE khi tín
hiệu nhận từ DCE lỗi

14

-

STxD

DTE->DCE

Secondary Transmitted Data

16

-


SRxD

DCE->DTE

Secondary Received Data

19

-

SRTS

DTE->DCE

Secondary Request To Send

13

-

SCTS

DCE->DTE

Secondary Clear To Send

12

-


SDSRD

DCE ->DTE

Secondary Received Line Signal Detector

25

-

TM

9

-

Dành riêng cho chế độ test

10

-

Dành riêng cho chế độ test

Test Mode


11


Không dùng

1.2.2. Truyền thông giữa hai nút
Các sơ đồ khi kết nối dùng cổng nối tiếp:

Kết nối đơn giản trong truyền thông nối tiếp
Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và
thu giống nhau. Khi có dữ liệu đến DTE,dữ liệu này sẽ được đưa vào bộ đệm và tạo
ngắt.
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:

Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực  tác động lên DSR của DTE2
cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM
(ảo). Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết
DTE1 có thể nhận dữ liệu.Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền
khác nhau nên phải thực hiện điều khiển lưu lượng. Quá trinh điều khiển này có thể


thực hiện bằng phần mềm hay phần cứng.Quá trình điều khiển bằng phần mềm thực
hiện bằng hai ký tự Xon và Xoff. Ký tự Xon được DCE gởi đi khi rảnh ( có thể nhận
dữ liệu ). Nếu DCE bận thì sẽ gởi ký tự Xoff. Quá trình điều khiển bằng phần cứng
dùng hai chân RTS và CTS. Nếu DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu
truyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì gởi lại CTS.
1.2.3. Truy xuất trực tiếp thông qua cổng
Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3, COM4
với các địa chỉ như sau:
Tên

Địa chỉ


Ngắt

Vị trí chứa địa chỉ

COM1

3F8h

4

0000h:0400h

COM2

2F8h

3

0000h:0402h

COM3

3E8h

4

0000h:0404h

COM4


2E8h

3

0000h:0406h

Giao tiếp nối tiếp trong máy tính sử dụng vi mạch UART với các thanh ghi cho
trong bảng sau:
Offse DLAB

R/W

Tên

Chức năng

0

W

THR

Transmitter Holding Register (đệm truyền)

0

R

RBR


Receiver Buffer Register (đệm thu)

1

R/W

0

R/W

1

R/W

t
0

1

2

R

BRDL Baud Rate Divisor Latch (số chia byte thấp)
IER

Interrupt Enable Register (cho phép ngắt) Số

BRDH chia byte cao

IIR

Interrupt Identification Register (nhận dạng ngắt)


W

FCR

FIFO Control Register

3

R/W

LCR

Line Control Register (điều khiển đường dây)

4

R/W

MCR

Modem Control Register (điều khiển MODEM)

5

R


LSR

Line Status Register (trạng thái đường dây)

6

R

MSR

Modem Status Register (trạng thái MODEM)

7

R/W

Scratch Register (thanh ghi tạm)

Các thanh ghi này có thể truy xuất trực tiếp kết hợp với địa chỉ cổng (ví dụ như
thanh ghi cho phép ngắt của COM1 có địa chỉ là BACOM1 + 1 = 3F9h.
IIR (Interrupt Identification):
IIR xác định mức ưu tiên và nguồn gốc của yêu cầu ngắt mà UART đang chờ phục
vụ.Khi cần xử lý ngắt, CPU thực hiện đọc các bit tương ứng để xác định nguồn gốc
của ngắt. Định dạng của IIR như sau:
D7

D6

D5


00: Không

Cho phép FIFO 64

có FIFO

byte (trong 16750)

11: Cho
phép FIFO

D4
-

D3

D2

D1

D0

1: Ngắt time-

Xác định

0: Có

out


nguồn gốc

ngắt

(trong 16550) ngắt

1: Không
ngắt

D2D1Ưu tiênTênNguồnD2-D0 bị xóa khi004Đường truyềnLỗi khung, thu đè, lỗi
parity, gián đoạn khi thuĐọc LSR013Đệm thuĐệm thu đầyĐọc RBR102Đệm phátĐệm
phát rỗngĐọc IIR, ghi THR111ModermCTS, DSR, RI, RLSDĐọc MSR(Mức 1 ưu tiên
cao nhất)


IER (Interrupt Enable Register):
IER cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cầm ngắt)
D7

D6

D5

D4

D3

- - POW HBR MODEM


D2

LIN

D1

D0

TxEMPTY RxRDY

E
Cho phép kiểu
công suất thấp

Cho phép khi
THR rỗng

Cho phép khi
lỗi moderm

Cho phép kiểu
nghỉ hibermate

Cho phép khi
lỗi thu, phát

Cho phép khi
RBR đầy

MCR (Modem Control register):

D7

D6

D5

-

-

-

D4
LOOP

Mode
loopback:
Kiểm tra hoạt
động của
UART

D3

D2

OUT

OUT

2


1

D1

D0

RTS DTR

Điều khiển 2 ngõ
ra OUT 1 OUT 2
của UART

Điều khiển tín
hiệu RTS và DTR

MSR (Modem Status Register):
D7

D6

RLSD

RI

D5

D4

D3


D2

D1

D0

RLSD RI

DSR

CTS

DSR CTS

Trạng thái của CD,
RI, DSR và CTS

LSR (Line Status Register):

1: nếu có thay đổi các tín hiệu so với lần
đọc trước
RI:= 1 nếu có xung dương
tại RI


D7
FIE

D6

TSRE

D5

D4

THRE

BI

D3
FE

D2

D1
PE

D0
OE

RxDR

FIE: FIFO Error - sai trong FIFO
TSRE: Transmitter Shift Register Empty - thanh ghi dịch rỗng (=1 khi đã phát 1
ký tự và bị xoá khi có 1 ký tự chuyển đến từ THR.
THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển từ THR
-TSR và bị xoá khi CPU đưa ký tự tới THR).
BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mức logic 0
trong khoảng thời gian dài hơn khoảng thời gian truyền 1 byte và bị xoá khi CPU đọc

LSR)
FE: Frame Error (=1 khi có lỗi khung truyền và bị xoá khi CPU đọc LSR)
PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)
OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệu làm
cho quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR)
RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và bị xoá
khi CPU đọc RBR).
LCR (Line Control Register):
D7

D6

D5

DLAB

SBCB

PS2

D4
PS1

D3
PS0

D2
STB

D1

WLS1

D0
WLS0

DLAB (Divisor Latch Access Bit) = 0: truy xuất RBR, THR, IER, = 1 cho phép
đặt bộ chia tần trong UART để cho phép đạt tốc độ truyền mong muốn.
UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua bộ chia 16 thành
tần số 115,200 Hz. Khi đó, tuỳ theo giá trị trong BRDL và BRDH, ta sẽ có tốc độ
mong muốn. Ví dụ như đường truyền có tốc độ truyền 2,400 bps có giá trị chia
115,200 / 2,400 = 48d = 0030h  BRDL = 30h, BRDH = 00h.


Một số giá trị thông dụng xác định tốc độ truyền cho như sau:
Tốc độ (bps) BRDH

BRDL

1,200

00h

60h

2,400

00h

30h


4,800

00h

18h

9,600

00h

0Ch

19,200

00h

06h

38,400

00h

03h

57,600

00h

02h


115,200

00h

01h

SBCB (Set Break Control Bit) =1: cho phép truyền tín hiệu Break (=0) trong khoảng
thời gian lớn hơn một khung
PS (Parity Select):
PS2 PS1 PS0

Mô tả

X

X

0

Không kiểm tra

0

0

1

Kiểm tra lẻ

0


1

1

Kiểm tra chẵn

1

0

1

Parity là mark

1

1

1

Parity là space

STB (Stop Bit) = 0: 1 bit stop, =1: 1.5 bit stop (khi dùng 5 bit dữ liệu) hay 2 bit stop
(khi dùng 6, 7, 8 bit dữ liệu).
WLS (Word Length Select):
WLS1 WLS0

Độ dài dữ liệu


0

0

5 bit

0

1

6 bit


×