Chuẩn này quy định ghép nối về cơ khí, điện và lôgic giữa một thiết bị đầu cuối số liệu DTE Data Terminal Equipment:PC và thiết bị thông tin số liệu DCE Data Communication Equipment: M
Trang 1SERIAL PORT
I - GIỚI THIỆU CỔNG RS-232:
Là dùng dây dẫn hoặc trung gian khác như công nghệ không dây, để kết nối các máy tính hoặc là kết nối các thiết bị kết nối qua PC Khoảng cách có thể rất ngắn vài cm đến hàng ngàn km, thời
gian có thể 1 giây có khi đến hàng 1
tuần Các điểm kết nối vào mạng có thể
là 2 hoặc nhiều điểm
Trang 2SERIAL PORT
Chu n RS-232 ch có th k t n i nhi u nh t 2 ẩ ỉ ể ế ố ề ấ
thi t b , v i kho ng cách dài nh t là 50-100 ế ị ớ ả ấ
feet( 12,7->25,4 m), t c 20k bit/số độ
Chu n RS-485 có th k t n i t i a là 32 thi t ẩ ể ế ố ố đ ế
b , kho ng cách dài h n t i a là 4000feet( 1016 ị ả ơ ố đ
m-> h n 1km) g p 40 l n RS-232 T c cao ơ ấ ầ ố độ
10 mega bit/s
Trang 3SERIAL PORT
Chu n IrDA( Inared Data Asociation) dùng các ẩ
UART gi ng nhau và nh d ng d li u gi ng ố đị ạ ữ ệ ố
nh RS-232 nh ng có thêm b gi i mã D li u ư ư ộ ả ữ ệ
truy n t ngu n phát h ng ngo i n các thi t ề ừ ồ ồ ạ đế ế
b không giây Giao di n này r t là có ích cho các liên ị ệ ấ
Trang 4SERIAL PORT
Chu n MIDI( Musical instrument digital ẩ
interface): giao di n s hóa các d ng c âm nh c ệ ố ụ ụ ạ
Chu n này dùng dòng 5mA, t c 31,5k bit/sẩ ố độ
Microwire, I2C,SPI là các chu n n i ti p ng ẩ ố ế đồ
b , dùng trong các liên k t ng n Nhi u vdk có 1 ộ ế ắ ề
ho c nhi u chu n này.ặ ề ẩ
USB( Universial Serial Bus) và Fireware( chu n ẩ
IEEE-1384) là chu n m i, t c cao, thông minh ẩ ớ ố độ
k t n i v i PC và các PC khác, thi t b ngo i vi ế ố ớ ế ị ạ
Trang 5SERIAL PORT
Ethernet là các chu n m ng g n g i th ng dùng ẩ ạ ầ ũ ườ
trong nhi u m ng T c cao nh ng yêu c u ề ạ ố độ ư ầ
ph n c ng và ph n m m khá ph c t p, t h n ầ ứ ầ ề ứ ạ đắ ơ
nhi u so v i các chu n khác.ề ớ ẩ
Chu n máy in Cenntronics(IEEE-1284) M i pc ẩ ọ
u có chu n này T c truy n cao qua cáp
đều có chu n này T c truy n cao qua cáp ẩ ố độ ề
c ng d ng v i các máy quét, các thi t b l u
Trang 6không ng b đồ ộ đượ đ ềc i u khi n b i các ể ở
UART M i c ng Com có th có giao di n RS-ỗ ổ ể ệ
232, RS – 485
M i PC có th có các d ng khác nhau c a các c ng ỗ ể ạ ủ ổ
n i ti p nh USB, Firewire, và I2C nh ng chúng ố ế ư ư
dùng các giao th c khác nhau và yêu c u các thành ứ ầ
ph n khác nhau ầ
Trang 7này không t , d dàng l p trình, cho phép cáp đắ đỏ ễ ậ
dài,và d dùng k t h p v i các thi t b vi i u ễ ế ợ ớ ế ị đ ề
khi n r ti n, các máy tính c ể ẻ ề ũ
Trang 8SERIAL PORT
Nh c ngUSB ã ư ổ đ đượ ử ục s d ng r ng rãi, các b ộ ộ
chuy n i s n sàng chuy nUSB thành c ng ể đổ ẵ để ể ổ
RS-232 ho c RS – 285 B chuy n i s k t ặ ộ ể đổ ẽ ế
n i v i c ng USB c a PC và chuy n i gi a ố ớ ổ ủ ể đổ ữ
USB và các giao di n khác Thi t l p r t n gi n ệ ế ậ ấ đơ ả
Trang 9SERIAL PORT
II- KHÁI QUÁT V PHỀ ƯƠNG TH C GIAO Ứ
TI P CHU N RS-232 :Ế Ẩ
Các ghép nối của máy tính cho trao đổi nối tiếp đều theo tiêu chuẩn RS-232 của EIA (Electronic Industries Association) hoặc của CCITT ở châu âu Chuẩn này quy định ghép nối về cơ khí, điện và
lôgic giữa một thiết bị đầu cuối số liệu DTE (Data Terminal Equipment):PC
và thiết bị thông tin số liệu DCE (Data Communication Equipment): MODEM.
Trang 10SERIAL PORT
Ghép nối nối tiếp cho phép trao đổi thông tin giữa các thiết bị từng bit một Dữ liệu được gửi theo các nhóm bit tạo thành một khung dữ liệu, mỗi khung là một byte hay một từ Mỗi khung dữ liệu được cấu tạo từ các bit số liệu cơ bản (các bit thông tin và kiểm tra chẳn lẽ)
Bit chẳn lẽ kiểm tra lỗi xuất hiện trên
đường truỵền Thêm vào phía trước khung dữ liệu một bit khởi động START (có mức lôgic 0) và phía sau một hay nhiều bit
dừng STOP (có mức lôgic 1)
Trang 11chuyển tiếp trên đường dây liên lạc.
Tốc độ truyền dữ liệu được tính theo
baud, đặt theo tên nhà toán học Pháp
J.M.E BAUDOT Số Baud là số lần thay đổi tín hiệu trong một giây
Trang 12SERIAL PORT
Phần quan trọng nhất của cổng nối tiếp là chip
UART (Universal Asyncronous
Receive/Transmiter) Chip này hoàn toàn nắm
quyền điều khiển quá trình phân chia dữ liệu song song trong máy tính thành dạng nối tiếp và có thể chuyển dữ liệu nối tiếp trở lại dạng song song, phổ biến nhất là vi mạch 8250
Trang 13SERIAL PORT
Trang 14SERIAL PORT
Trang 15SERIAL PORT
Trang 16SERIAL PORT
Ý nghĩa các tín hiệu quan trọng được giải
thích sau đây:
RTS: máy tính phát tín hiệu này ra thiết bị
ngoại vi báo chuẩn bị truyền dữ liệu
CTS: tín hiệu này đến từ thiết bị ngoại vi
báo đã sẵn sàng nhận dữ liệu
RTS và CTS là hai tín hiệu bắt tay giữa
máy tính và thiết bị ngoại vi
Trang 17SERIAL PORT
DSR: thiết bị ngoại vi báo về máy tính tín hiệu này sau khi khởi động thành công và sẵn sàng hoạt động
DTR: tín hiệu này do máy tín báo ra thiết
bị ngoại vi dùng để khởi động hay đóng
mạch điện thiết bị ngoại vi
DSR và DTR có trách nhiệm chuẩn bị kết
Trang 18SERIAL PORT
Mọi tín hiệu giữa -3v và +3v đều không
có ý nghĩa
Vì tín hiệu bên trong máy tính chỉ có điện
Trang 19SERIAL PORT
Vi mạch này chỉ cần nguồn nuôi 5V Bộ bơm điện tích bên trong vi mạch có khả năng tạo tín hiệu +10V và -10V từ 5V Vi mạch này có 2 bộ chuyển mức tín hiệu
cho mỗi chiều
Trang 21SERIAL PORT
Gửi dữ liệu nối tiếp :
Trong một liên kết nối tiếp, nơi gửi dữ liệu sẽ gửi từng bit một ở mỗi thời điểm nối Tiếp
nhau Một liên kết nối tiếp chỉ có 2 thiết bị thì phải có đường dẫn dành cho mỗi chiều
truyền hoặc là nó chỉ có 1 đường dẫn được chia sẻ bởi cả 2 thiết bị với thoả thuận của 2 thiết bị này
Trang 22SERIAL PORT
Khi mà có 3 ho c nhi u thi t b , t t c các thi t ặ ề ế ị ấ ả ế
b này th ng dùng chung m t ị ườ ộ đường d n, và ẫ
giao th c m ng quy t nh xem thi t b nào có ứ ạ ế đị ế ị
kh o v th i gian i u khi n ả ề ờ để đ ề ể đường
truy n d li u N i truy n và n i nh n dùng xung ề ữ ệ ơ ề ơ ậ
ng h quy t nh khi nào g i và khi nào
đồng h quy t nh khi nào g i và khi nào ồ để ế đị ử
c m i bít
đọ ỗc m i bít
đọ ỗ
Trang 23SERIAL PORT
Định d ng ạ đồng b :ộ
Trong truy n ng b , m i thi t b dùng m t ề đồ ộ ọ ế ị ộ
Trang 24SERIAL PORT
Định d ng không ạ đồng b :ộ
Trong truy n không ng b , liên k t không bao ề đồ ộ ế
g m ồ đường xung ng h , b i vì m i i m đồ ồ ở ỗ đ ể
u cu i c a liên k t ã có xung ng h cho
đầu cu i c a liên k t ã có xung ng h cho ố ủ ế đ đồ ồ
Trang 25SERIAL PORT
M i byte truy n i bao g m bít Start ng ỗ ề đ ồ để đồ
b ng h và m t ho c nhi u bít Stop cho tín ộ đồ ồ ộ ặ ề
hi u k t thúc vi c truy n trong m i m t t ệ ế ệ ề ỗ ộ ừ
c truy n i C ng RS-232 trong PC dùng được truy n i C ng RS-232 trong PC dùng ề đ ổ
nh d ng không ng b giao ti p v i
định d ng không ng b giao ti p v i ạ đồ ộ để ế ớ
modems (thi t b mã hoá, gi i mã d li u) và các ế ị ả ữ ệ
thi t b khác ế ị
Trang 26b t tay( handshaking), b m( buffering), ắ ộ đệ
ho c nhi u cách trong s nh ng cách này.ặ ề ố ữ
Trang 27SERIAL PORT
B t tay ( handshaking):ắ
V i tín hi u b t tay, máy phát có th xác nh khi ớ ệ ắ ể đị
nào máy tính này ph i truy n d li u và máy nh n có ả ề ữ ệ ậ
th bi t khi nào nó s n sàng nh n d li u Tín ể ế ẵ ậ ữ ệ
hi u có th bi n i qua RS-232 ho c RS-485 ệ ể ế đổ ặ
theo giao th c chu n ho c giao th c qui c.ứ ẩ ặ ứ ướ
Trang 28SERIAL PORT
B t tay v ph n c ng:ắ ề ầ ứ
N i nh n a ra dòng m c cao khi s n sàng ơ ậ đư ứ ẵ
nh n d li u, và n i truy n ch tín hi u này ậ ữ ệ ơ ề ờ ệ
tr c khi truy n d li u N i nh n có th a ướ ề ữ ệ ơ ậ ể đư
cho n i truy n d ng quá trình g i d li u.ơ ề ừ ử ữ ệ
Trang 29chúng B m có th có ích cho phía truy n, n i ộ đệ ể ề ơ
Trang 30SERIAL PORT
Th m dò và ng t:ă ắ
S ki n gây ra c ng n i ti p bao g m khi ự ệ ở ổ ố ế ồ
truy n và nh n d li u, thay i tín hi u b t ề ậ ữ ệ đổ ệ ắ
tay, và g i , nh n thông i p l i Có hai cách cho ử ậ đ ệ ỗ
ng d ng phát hi n và gây ra nh ng s ki n này
ứng d ng phát hi n và gây ra nh ng s ki n này.ụ ệ ữ ự ệ
Trang 31SERIAL PORT
Cách th nh t là có ch ng trình t ng nh y ứ ấ ươ ự độ ả
t i các chu i s ki n ớ ỗ ự ệ đượ ắc s p x p tr c khi ế ướ
chu kì ho c phát ra tín hi u tìm ki m khi nào m t ặ ệ ế ộ
s ki n x y ra D ng l p trình này g i là l p ự ệ ả ạ ậ ọ ậ
trình th t c, và không dùng ng t ph n c ng ủ ụ ắ ầ ứ
Trang 32SERIAL PORT
Thừa nhận( Actknowledgments):
Một vài liên kết có các nút chấp nhận mệnh lệnh
mà không có một phản ứng nào, nhưng bình
thường nó sẽ có ích cho nút nhận để cho bên
truyền biết rằng một thông điệp đã truyền qua, thậm chí nếu bên nhận không có một thông tin nào phản hồi
Trang 33SERIAL PORT
Ki m tra l i (Error Checking):ể ỗ
Bên nh n có th dùng Error- Checking ki m ậ ể để ể
tra r ng m i d li u n úng ích Cách ằ ọ ữ ệ đế đ đ để
ki m tra thông i p l i bao g m g i d li u ể đ ệ ỗ ồ ử ữ ệ
b n sao và byte ki m tra l i ả ể ỗ
M t d ng n gi n ki m tra l i n gi n là dùng ộ ạ đơ ả ể ỗ đơ ả
d li u b n sao Bên truy n g i m i thông i p ữ ệ ả ề ử ỗ đ ệ
2 l n và bên nh n ki m tra xác nh r ng 2 ầ ậ ể để đị ằ
thông i p này u gi ng nhau trong c 2 l n đ ệ đề ố ả ầ
Trang 34SERIAL PORT
GI I THI U I U KHI N ACTIVEX Ớ Ệ Đ Ề Ể
MSCOMM :
Các c tính c a MSComm: đặ ủ
Nh ng tính ch t c a MSComm liên quan n ữ ấ ủ đế
Trang 35SERIAL PORT
CommID: tr l i handles ng nh t t i thi t b ả ạ đồ ấ ớ ế ị
truy n thông có ki u Long Tính ch t này không có ề ể ấ
lúc thi t k mà ch có khi thi hành, thu c tính này là ế ế ỉ ộ
ReadOnly
CommPort: d ng object.CommPort = value ạ
Value là ch s c a c ng Com có giá tr t 1 -> 16 và ỉ ố ủ ổ ị ừ
m c nh có giá tr =1.C n ph i thi t l p thông ặ đị ị ầ ả ế ậ
s này tr c khi m c ng S có l i error 68 ố ướ ở ổ ẽ ỗ
(Device unavailable) n u nh không m ế ư ở được
c ng này.ổ
Trang 36SERIAL PORT
InBuferSize: thi t l p ho c tr l i kích th c ế ậ ặ ả ạ ướ
c a b m nh n, tính =byte M c nh là 1024 ủ ộ đệ ậ ặ đị
byte Không được nh m l n v i c tính ầ ẫ ớ đặ
InBufferCount là s byte ang ch trong b ố đ ờ ộ
m
đệ
InputLen : object.InputLen [ = value ] thi t l p ế ậ
ho c tr l i s byte m i l n thu c tính Input ặ ả ạ ố ỗ ầ ộ
thu c tính Input s c h t n i dung c a b ộ ẽ đọ ế ộ ủ ộ
đệm khi nó được dùng
Trang 37SERIAL PORT
InputMode: object.InputMode [ = value ] Value =
0 hay = comInputModeText dữ liệu nhận được
dạng văn bản kiểu kí tự theo chuẩn ANSI Dữ liệu nhận được sẽ là một string
Value=1 hay = comInputModeBinary dùng nhận mọi kiểu dữ liệu như kí tự điều khiển nhúng,
kí tự NULL, Giá trị nhận được từ Input sẽ là một mảng kiểu Byte.
Trang 38SERIAL PORT
NullDiscard: object.NullDiscard [ = value ] tính
ch t này quy t nh kí t tr ng có ấ ế đị ự ố được truy n ề
t c ng n b m nh n hay không N u ừ ổ đế ộ đệ ậ ế
value= True kí t này không ự được truy n value ề
= false kí t tr ng s ự ố ẽ được truy n Kí t ề ự
tr ng ố đượ địc nh nghía theo chu n ASCII là kí ẩ
ParityReplace: thi t l p và tr l i kí t thay ế ậ ả ạ ự
th kí t không úng trong l i gi ng nhau.ế ự đ ỗ ố
Trang 39value ] value = true c ng m =false c ng óng ổ ở ổ đ
và xóa toàn b d li u trong b m nh n và ộ ữ ệ ộ đệ ậ
truy n ề
RthresHold: object.Rthreshold [ = value ] value
ki u s nguyên Thi t l p s kí t nh n ể ố ế ậ ố ự ậ được
tr c khi gây lên s ki n comEvReceive M c ướ ự ệ ặ
nh =0 t c là không có s ki n OnComm khi
định =0 t c là không có s ki n OnComm khi ứ ự ệ
nh n ậ đượ ữ ệc d li u Thi t l p = 1 t c là s ki n ế ậ ứ ự ệ
OnComm x y ra khi b t kì kí t nào b thay th ả ấ ự ị ế
trong b m nh n.ộ đệ ậ
Trang 40SERIAL PORT
Settings: object.Settings [ = value ] thi t l p ế ậ
ho c tr l i các thông s t n s baud, bít d ặ ả ạ ố ầ ố ữ
li u, bít ch n l , bít stop N u Value không có giá ệ ẵ ẻ ế
tr khi m s gây ra l i 380 (Invalid property ị ở ẽ ỗ
Các giá tr c a P: E( even), M: mark, N: none (m c ị ủ ặ
nh), O: old, S: Space D:có giá tr t 4-> 8 (m c
định), O: old, S: Space D:có giá tr t 4-> 8 (m c ị ừ ặ
nh) S: s bít stop có giá tr 1, 1.5, 2
định) S: s bít stop có giá tr 1, 1.5, 2.ố ị
Trang 41SERIAL PORT
SThreshold: thi t l p và và tr l i s kí t nh ế ậ ả ạ ố ự ỏ
nh t ấ được cho phép trong b m g i ộ đệ ử để
x y ra s ki n OnComm = comEvSend Theo ả ự ệ
m c nh giá tr này = 0 t c là khi truy n s ặ đị ị ứ ề ẽ
không gây ra s ki n OnComm N u thi t l p ự ệ ế ế ậ
thông s này =1 thì s ki n OnComm x y ra khi ố ự ệ ả
b m truy n r ng S ki n OnComm = ộ đệ ề ỗ ự ệ
comEvSend ch x y ra khi mà s kí t trong b ỉ ả ố ự ộ
m truy n nh h n ho c = Sthreshold N u
đệm truy n nh h n ho c = Sthreshold N u ề ỏ ơ ặ ế
s kí t trong b m này luôn l n h n ố ự ộ đệ ớ ơ
Sthreshold thì s ki n này không th x y raự ệ ể ả
Trang 42EOFEnable: object.EOFEnable [ = value ] quy tế
gây lên s ki n này.gây lên s ki n này.ự ệự ệ
Trang 43SERIAL PORT
InBufferCout: tr l i s kí t ang có trong b ả ạ ố ự đ ộ
m nh n B n có th xoá b m nh n b ng
đệm nh n B n có th xoá b m nh n b ng ậ ạ ể ộ đệ ậ ằ
cách t thu c tính này =0 Không nh m v i đặ ộ ầ ớ
thu c tính InBufferSize là t ng kích th c c a ộ ổ ướ ủ
b m nh n.ộ đệ ậ
Input: nh n và xoá d li u trong b m nh n ậ ữ ệ ộ đệ ậ
N u InputMode là comInputModeText thì giá tr ế ị
tr v s là m t xâu t c có ki u String, d li u ả ề ẽ ộ ứ ể ữ ệ
d ng text trong m t bi n ki u Variant N u ạ ộ ế ể ế
InputMode = comInputModeBinary thì thu c ộ
tính này s tr l i d li u d ng nh phân d i ẽ ả ạ ữ ệ ạ ị ướ
d ng m t m ng ki u byte trong m t bi n ạ ộ ả ể ộ ế
Variant
Trang 44Output: ghi d li u vào b m truy n có th ữ ệ ộ đệ ề ể
truy n ki u text ho c ki u nh phân N u ề ể ặ ể ị ế
truy n b ng ki u text thì cho m t bi n Variant ề ằ ể ộ ế
= ki u String, n u truy n ki u nh phân thì cho ể ế ề ể ị
cho Output= variant = m t m ng ki u Byte.ộ ả ể
Trang 45SERIAL PORT
B t tay ( handshaking):ắ
Break : thi t l p ho c xoá tín hi u object.Break ế ậ ặ ệ
[= value] value = true ho c false Khi set ặ
value=
Trang 46CTSHolding: quyết định khi nào bạn gửi dữ liệu bằng cách truy vấn trạng thái đường Clear To
Send (CTS) Thông thường tín hiệu CTS được
gửi từ modem tới máy tính kết nối với nó để báo rằng đang quá trình truyền dữ liệu
Trang 47SERIAL PORT
CTSHolding: qu t nh khi nào b n g i d li u ế đị ạ ử ữ ệ
b ng cách truy v n tr ng thái ằ ấ ạ đường Clear To
Send (CTS) Thông th ng tín hi u CTS ườ ệ được
g i t modem t i máy tính k t n i v i nó báo ử ừ ớ ế ố ớ để
r ng ang quá trình truy n d li u ằ đ ề ữ ệ
Trang 48SERIAL PORT
+ DTREnable: tính chất này quyết định khi nào
cho phép đường Data Terminal Ready (DTR)
trong truyền thông Tín hiệu DTR gửi từ máy tính tới modem để báo rằng máy tính sẵn sàng là nơi nhận dữ liệu Khi DTREnable = true thì đường
Data Terminal Ready set lên cao khi cổng mở, và thấp khi cổng đóng Nếu DTREnable = false thì đường đó luôn mức thấp
Trang 49SERIAL PORT
Handshaking: thiết lập và trả lại giao thức bắt tay
phần cứng object.Handshaking [ = value ].
Các giá trị của value:
comNone (0) (Default) No handshaking
comXOnXOff (1) XON/XOFF handshaking.
comRTS (2) RTS/CTS (Request To Send/Clear
To Send) handshaking
comRTSXOnXOff (3) Both Request To Send and XON/XOFF handshaking
Trang 50SERIAL PORT
RTSEnable: qu t nh khi nào cho phép ế đị đường
Request To Send (RTS), Tín hi u RTS t máy ệ ừ
tính t i modem yêu c u ớ để ầ được try n d li u ề ữ ệ
Khi RTSEnable = true thì đường RTS m c cao ứ
khi c ng m , tích m c th p khi c ng óng Và ổ ở ứ ấ ổ đ
hi n nhiên khi RTSEnable thì ể đường RTS luôn
m c th p.RTS dùng trong RTS/CTS hardware ứ ấ
handshaking RTSEnable cho phép b n dò ạ
ng RTS khi c n bi t tình tr ng c a đường RTS khi c n bi t tình tr ng c a ầ ế ạ ủ
ng này
đường này
đườ
Trang 51SERIAL PORTMạng 485
Chuẩn RS232 dùng đường truyền không
cân bằng vì các tín hiệu lấy chuẩn là GND chung nên dễ bị ảnh hưởng của nhiễu làm tốc độ và khoảng cách truyền bị giới hạn
Khi muốn tăng khoảng cách truyền, môt
phương pháp có thể sử dụng là dùng 2 dây truyền vi sai vì lúc này 2 dây có cùng đặc
tính nên sẽ loại trừ được nhiễu chung