I
- Tổng
quan
chuẩn
RS232
1)
Đặt
vấn
đề
Vấn
đề
giao
tiếp
giữa
PC
và
vi
điều
khiển
rất
quan
trọng
trong
các
ứng
dụng
điều
khiển,
đo
lường...
Ghép
nối
qua
cổng
nối
tiếp
RS232
là
một
trong
những
kỹ
thuật
được
sử
dụng
rộng
rãi
để
ghép
nối
các
thiết
bị
ngoại
vi
với
máy
tính.Nó
là
một
chuẩn
giao
tiếp
nối
tiếp
dùng
định
dạng
không
đồng
bộ,
kết
nối
nhiều
nhất
là
2
thiết
bị
,
chiều
dài
kết
nối
lớn
nhất
cho
phép
để
đảm
bảo
dữ
liệu
là
12.5
đến
25.4m,
tốc
độ
20kbit/s
đôi
khi
là
tốc
độ
115kbit/s
với
một
số
thiết
bị
đặc
biệt.
Ý
nghĩa
của
chuẩn
truyền
thông
nối
tiếp
nghĩa
là
trong
một
thời
điểm
chỉ
có
một
bit
được
gửi
đi
dọc
theo
đường
truyền.[separator]
Có
hai
phiên
bản
RS232
được
lưu
hành
trong
thời
gian
tương
đối
dài
là
RS232B
và
RS232C.
Nhưng
cho
đến
nay
thì
phiên
bản
RS232B
cũ
thì
ít
được
dùng
còn
RS232C
hiện
vẫn
được
dùng
và
tồn
tại
thường
được
gọi
là
tên
ngẵn
gọn
là
chuẩn
RS232
Các
máy
tính
thường
có
1
hoặc
2
cổng
nối
tiếp
theo
chuẩn
RS232C
được
gọi
là
cổng
Com.
Chúng
được
dùng
ghép
nối
cho
chuột,
modem,
thiết
bị
đo
lường...Trên
main
máy
tính
có
loại
9
chân
hoặc
lại
25
chân
tùy
vào
đời
máy
và
main
của
máy
tính.
Việc
thiết
kế
giao
tiếp
với
cổng
RS232
cũng
tương
đối
dễ
dàng,
đặc
biệt
khi
chọn
chế
độ
hoạt
động
là
không
đồng
bộ
và
tốc
độ
truyền
dữ
liệu
thấp.
2)
Ưu
điểm
của
giao
diện
nối
tiếp
RS232
+
Khả
năng
chống
nhiễu
của
các
cổng
nối
tiếp
cao
+
Thiết
bị
ngoại
vi
có
thể
tháo
lắp
ngay
cả
khi
máy
tính
đang
được
cấp
điện
+
Các
mạch
điện
đơn
giản
có
thể
nhận
được
điện
áp
nguồn
nuôi
qua
công
nối
tiếp
3)
Những
đặc
điểm
cần
lưu
ý
trong
chuẩn
RS232
+
Trong
chuẩn
RS232
có
mức
giới
hạn
trên
và
dưới
(logic
0
và
1)
là
+-12V.
Hiện
nay
đang
được
cố
định
trở
kháng
tải
trong
phạm
vi
từ
3000
ôm
-
7000
ôm
+
Mức
logic
1
có
điện
áp
nằm
trong
khoảng
-3V
đến
-12V,
mức
logic
0
từ
+-3V
đến
12V
+
Tốc
độ
truyền
nhận
dữ
liệu
cực
đại
là
100kbps
(
ngày
nay
có
thể
lớn
hơn)
+
Các
lối
vào
phải
có
điện
dung
nhỏ
hơn
2500pF
+
Trở
kháng
tải
phải
lớn
hơn
3000
ôm
nhưng
phải
nhỏ
hơn
7000
ôm
+
Độ
dài
của
cáp
nối
giữa
máy
tính
và
thiết
bị
ngoại
vi
ghép
nối
qua
cổng
nối
tiếp
RS232
không
vượt
qua
15m
nếu
chúng
ta
không
sử
model
+
Các giá
trị
tốc
độ
truyền
dữ
liệu
chuẩn
:
50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400....56600,115200
bps
4)
Các
mức
điện
áp
đường
truyền
RS
232
sử
dụng
phương
thức
truyền
thông
không
đối
xứng,
tức
là
sử
dụng
tín
hiệu
điện
áp
chênh
lệch
giữa
một
dây
dẫn
và
đất.
Do
đó
ngay
từ
đầu
tiên
ra
đời
nó
đã
mang
vẻ
lỗi
thời
của
chuẩn
TTL,
nó
vấn
sử
dụng
các
mức
điện
áp
tương
thích
TTL
để
mô
tả
các
mức
logic
0
và
1.
Ngoài
mức
điện
áp
tiêu
chuẩn
cũng
cố
định
các
giá
trị
trở
kháng
tải
được
đấu
vào
bus
của
bộ
phận
và
các
trở
kháng
ra
của
bộ
phát.
Mức
điện
áp
của
tiêu
chuẩn
RS232C
(
chuẩn
thường
dùng
bây
giờ)
được
mô
tả
như
sau:
+
Mức
logic
0
:
+3V
,
+12V
+
Mức
logic
1
:
-12V,
-3V
Các
mức
điện
áp
trong
phạm
vi
từ
-3V
đến
3V
là
trạng
thái
chuyển
tuyến.
Chính
vì
từ
-
3V
tới
3V
là
phạm
vi
không
được
định
nghĩa,
trong
trường
hợp
thay
đổi
giá
trị
logic
từ
thấp
lên
cao
hoặc
từ
cao
xuống
thấp,
một
tín
hiệu
phải
vượt
qua
quãng
quá
độ
trong
một
thơì
gian
ngắn
hợp
lý.
Điều
này
dẫn
đến
việc
phải
hạn
chế
về
điện
dung
của
các
thiết
bị
tham
gia
và
của
cả
đường
truyền.
Tốc
độ
truyền
dẫn
tối
đa
phụ
thuộc
vào
chiều
dài
của
dây
dẫn.
Đa
số
các
hệ
thống
hiện
nay
chỉ
hỗ
trợ
với
tốc
độ
19,2
kBd
.
Hầu
hết
các
máy
tính
cá
nhân
hiện
nay
đều
được
trang
bị
ít
nhất
là
1
cổng
Com
hay
cổng
nối
tiếp
RS232.
Số
lượng
cổng
Com
có
thể
lên
tới
4
tùy
từng
loại
main
máy
tính.
Khi
đó
các
cổng
Com
đó
được
đánh
dấu
là
Com
1,
Com
2,
Com
3...Trên
đó
có
2
loại
đầu
nối
được
sử
dụng
cho
cổng
nối
tiếp
RS232
loại
9
chân
(DB9)
hoặc
25
chân
(DB25).
Tuy
hai
loại
đầu
nối
này
có
cùng
song
song
nhưng
hai
loại
đầu
nối
này
được
phân
biệt
bởi
cổng
đực
(DB9)
và
cổng
cái
(DB25)
Ta
xét
sơ
đồ
chân
cổng
Com
9
chân:
Trên
là
các
kí
hiệu
chân
và
hình
dạng
của
cổng
DB9
Chức
năng
của
các
chân
như
sau:
+
chân
1
:
Data
Carrier
Detect
(DCD)
:
Phát
tín
hiệu
mang
dữ
liệu
+
chân
2: Receive
Data
(RxD)
:
Nhận
dữ
liệu
+
chân
3
:
Transmit
Data
(TxD)
:
Truyền
dữ
liệu
+
chân
4
:
Data
Termial
Ready
(DTR)
:
Đầu
cuối
dữ
liệu
sẵn
sàng
được
kích
hoạt
bởi
bộ
phận
khi
muốn
truyền
dữ
liệu
+
chân
5
:
Singal
Ground
(
SG)
:
Mass
của
tín
hiệu
+
chân
6
:
Data
Set
Ready
(DSR)
:
Dữ
liệu
sẵn
sàng,
được
kích
hoạt bởi
bộ
truyền
khi
nó
sẵn
sàng
nhận
dữ
liệu
+
chân
7
:
Request
to
Send
:
yêu
cầu
gửi,bô
truyền
đặt
đường
này
lên
mức
hoạt
động
khi
sẵn
sàng
truyền
dữ
liệu
+
chân
8
:
Clear
To
Send
(CTS)
:
Xóa
để
gửi
,bô
nhận
đặt
đường
này
lên
mức
kích
hoạt
động
để
thông
báo
cho
bộ
truyền
là
nó
sẵn
sàng
nhận
tín
hiệu
+
chân
9
:
Ring
Indicate
(RI)
:
Báo
chuông
cho
biết
là
bộ
nhận
đang
nhận
tín
hiệu
rung
chuông
Còn
DB28
bây
giờ
hầu
hết
các
main
mới
ra
đều
không
có
cổng
này
nữa.
Nên
tôi
không
đề
cập
đến
ở
đây.
6)
Quá
trình
dữ
liệu
a)
Quá
trình
truyền
dữ
liệu
Truyền
dữ
liệu
qua
cổng
nối
tiếp
RS232
được
thực
hiện
không
đồng
bộ.
Do
vậy
nên
tại
một
thời
điểm
chỉ
có
một
bit
được
truyền
(1
kí
tự).
Bộ
truyền
gửi
một
bit
bắt
đầu
(bit
start)
để
thông
báo
cho
bộ
nhận
biết
một
kí
tự
sẽ
được
gửi
đến
trong
lần
truyền
bit
tiếp
the
.
Bit
này
luôn
bắt
đầu
bằng
mức
0..
Tiếp
theo
đó
là
các
bit
dữ
liệu
(bits
data)
được
gửi
dưới
dạng
mã
ASCII(
có
thể
là
5,6,7
hay
8
bit
dữ
liệu)
Sau
đó
là
một
Parity
bit
(
Kiểm
tra
bit
chẵn,
lẻ
hay
không)
và
cuối
cùng
là
bit
dừng
-
bit
stop
có
thể
là
1,
1,5
hay
2
bit
dừng.
b)
Tốc
độ
Baud
Đây
là
một
tham
số
đặc
trưng
của
RS232.
Tham
số
này
chính
là
đặc
trưng
cho
quá
trình
truyền
dữ
liệu
qua
cổng
nối
tiếp
RS232
là
tốc
độ
truyền
nhận
dữ
liệu
hay
còn
gọi
là
tốc
độ
bit.
Tốc
độ
bit
được
định
nghĩa
là
số
bit
truyền
được
trong
thời
gian
1
giây
hay
số
bit
truyền
được
trong
thời
gian
1
giây.
Tốc
độ
bit
này
phải
được
thiết
lập
ở
bên
phát
và
bên
nhận
đều
phải
có
tốc
độ
như
nhau
(
Tốc
độ
giữa
vi
điều
khiển
và
máy
tính
phải
chung
nhau
1
tốc
độ
truyền
bit)
Ngoài
tốc
độ
bit
còn
một
tham
số
để
mô
tả
tốc
độ
truyền
là
tốc
độ
Baud.
Tốc
độ
Baud
liên
quan
đến
tốc
độ
mà
phần
tử
mã
hóa
dữ
liệu
được
sử
dụng
để
diễn
tả
bit
được
truyền
còn
tôc
độ
bit
thì
phản
ánh
tốc
độ
thực
tế
mà
các
bit
được
truyền.Vì
một
phần
tử
báo
hiệu
sự
mã
hóa
một
bit
nên
khi
đó
hai
tốc
độ
bit
và
tốc
độ
baud
là
phải
đồng
nhất
Một
số
tốc
độ
Baud
thường
dùng:
50,
75,
110,
150,
300,
600,
1200,
2400,
4800,
9600,
19200,
28800,
38400,
56000,
115200
…
Trong
thiết
bị
họ
thường
dùng
tốc
độ
là
19200
Khi
sử
dụng
chuẩn
nối
tiếp
RS232
thì
yêu
cầu
khi
sử
dụng
chuẩn
là
thời
gian
chuyển
mức
logic
không
vượt
quá
4%
thời
gian
truyền
1
bit.
Do
vậy,
nếu
tốc
độ
bit
càng
cao
thì
thời
gian
truyền
1
bit
càng
nhỏ
thì
thời
gian
chuyển
mức
logic
càng
phải
nhỏ.
Điều
này
làm
giới
hạn
tốc
Baud
và
khoảng
cách
truyền.
c)
Bit
chẵn
lẻ hay
Parity
bit
Đây
là
bit
kiểm
tra
lỗi
trên
đường
truyền.
Thực
chất
của
quá
trình
kiểm
tra
lỗi
khi
truyền
dữ
liệu
là
bổ
xung
thêm
dữ
liệu
được
truyền
để
tìm
ra
hoặc
sửa
một
số
lỗi
trong
quá
trình
truyền
.
Do
đó
trong
chuẩn
RS232
sử
dụng
một
kỹ
thuật
kiểm
tra
chẵn
lẻ.
Một
bit
chẵn
lẻ
được
bổ
sung
vào
dữ
liệu
được
truyền
để
ch
thấy
số
lượng
các
bit
"1"
được
gửi
trong
một
khung
truyền
là
chẵn
hay
lẻ.
Một
Parity
bit
chỉ
có
thể
tìm
ra
một
số
lẻ
các
lỗi
chả
hạn
như
1,3,,5,7,9...
Nếu
như
một
bit
chẵn
được
mắc
lỗi
thì
Parity
bit
sẽ
trùng
giá
trị
với
trường
hợp
không
mắc
lỗi
vì
thế
không
phát
hiện
ra
lỗi.
Do
đó
trong
kỹ
thuật
mã
hóa
lỗi
này
không
được
sử
dụng
trong
trường
hợp
có
khả
năng
một
vài
bit
bị
mắc
lỗi.
Còn
cách
thức
truyền
dẫn.
Phần
này
tôi
không
đề
cập
các
bạn
vui
lòng
xem
trong
giáo
trình.
II
-
Sơ
đồ
ghép
nối
RS232
Có
rất
nhiều
mạch
giao
tiếp
của
RS232
giữa
vi
điều
khiển
hay
các
thiết
bị
khác.
Dưới
đây
là
những
mạch
giao
tiếp
thường
được
dùng.
1)
Mạch
chuẩn
giao
RS232
dùng
IC
Max232
Max232
là
IC
chuyên
dùng
cho
giao
tiếp
giữa
RS232
và
thiết
bị
ngoại
vi.
Max232
là
IC
của
hãng
Maxim.
Đây
là
IC
chay
ổn
định
và
được
sử
dụng
phổ
biến
trong
các
mạch
giao
tiếp
chuẩn
RS232.
Giá
thành
của
Max232
phù
hợp
(12K
hay
10K)
và
tích
hợp
trong
đó
hai
kênh
truyền cho
chuẩn
RS232.
Dòng
tín
hiệu
được
thiết
kế
cho
chuẩn
RS232
.
Mỗi
đầu
truyền
ra
và
cổng
nhận
tín
hiệu
đều
được
bảo
vệ
chống
lại
sự
phóng
tĩnh
điện
(
hình
như
là
15KV).
Ngoài
ra
Max232
còn
được
thiết
kế
với
nguồn
+5V
cung
cấp
nguồn
công
suất
nhỏ.
Mạch
giao
tiếp
như
sau
:

Đây
là
mạch
giao
tiếp
1
kênh
dùng
Max232.
Còn
giao
tiếp
2
kênh
thì
tương
tự.
Mạch
này
được
sử
dụng
khá
nhiều
trong
chuẩn
giao
tiếp
RS232.
2)
Mạch
chuẩn
giao
tiếp
RS232
dùng
DS275
Đây
cũng
là
IC
của
hãng
Maxim.
DS275
được
dùng
trong
các
mạch
giao
tiếp
của
chuẩn
RS232
nhưng
do
nó
chỉ
là
bán
song
công
và
dùng
trong
các
thiết
kế
công
suất
nhỏ.

Mạch
giao
tiếp
khá
đơn
giản.
Do
bán
song
công
nên
trong
các
ứng
dụng
ít
được
dùng.
3)
Mạch
chuẩn
giao
tiếp
RS232
dùng
transitor
Mạch
sử
dụng
2
transior
để
giao
tiếp
RS232.

III-
Phần
mền
giao
tiếp
Giao
tiếp
chuẩn
giữa
RS232
và
vi
điều
khiển
phải
thông
qua
phần
mền
giao
diện
để
nhận
biết
được
dữ
liệu
truyền
lên
và
nhận
xuống
như
thế
nào.
Hiện
tại
có
rất
nhiều
cách
lập
trình
giao
tiếp
cho
RS232
với
vi
xử
lý
nhưng
mà
hay
dùng
nhất
là
bộ
công
cụ
Visual
C++.
Bộ
công
cụ
này
lập
trình
giúp
lập
trình
giao
diện
thông
qua
cổng
RS232.Ngoài
bộ
công
cụ
này
còn
có
bộ
công
cụ
của
Delphi
cũng
được
dùng
khá
nhiều.
Trong
trường
hợp
người
dùng
mà
không
biết
lập
trình
giao
diện
thì
có
thể
sử
dụng
công
cụ
trực
tiếp
của
windown.
Đó
là
Hyper
Terminal.
Công
cụ
này
cho
ta
giao
diện
khá
đơn
giản
chỉ
truyền
nhận
dữ
liệu
thông
qua
cổng
RS232.
Đối
với
Win
XP
thì
các
bạn
có
thể
vào
đây
để
lấy
nó
ra
:
Start/All
Program/Accessories/communations/Hyper
Terminal/.
Thiết
lập
thông
số
quan
trọng
là
ok.
Bộ
công
cụ
Hyper
Terminal
có
giao
diện
khá
cổ
điện
nên
người
dùng
khó
kiểm
soát
được
dữ
liệu
truyền
lên
nhận
xuống
như
thế
nào.
Do
vậy
trên
mạng
bây
giờ
có
bộ
công
cụ
lập
trình
sẵn
cho
giao
tiếp
cổng
com.
Đó
là
phần
mền
Terminal
(
download
tại
hội
quán).
Phần
mền
này
có
giao
diện
khá
hơn
Hyper
Terminal
nhưng
nó
chỉ
có
box
nhận
dữ
liệu
và
truyền
dữ
liệu.
Các
bạn
có
thể
tham
khảo!
Ý kiến bạn đọc