Website: http://www.docs.vn Email :
[email protected] Tel : 0918.775.368
MỤC LỤC
CHƯƠNG 1
CHƯƠNG 2
GIỚI THIỆU ĐỀ TÀI ....................................................................1
CẤU TRÚC KĨ THUẬT CỦA CÁC LOẠI GIAO DIỆN..............4
A.CẤU TRÚC GIAO DIÊN SONG SONG LPT
1.Giới thiệu chung về giao diện LPT.........................................................................4
2.Cấu trúc giao diện LPT chuẩn Standard...............................................................4
2.1.Cấu trúc -Chức năng..........................................................................................4
2.2.Thông số kĩ thuật................................................................................................8
3.Một số chuẩn khác của giao diện LPT...................................................................8
3.1.Chuẩn Bi-direction.............................................................................................8
3.2.Chuẩn EPP.........................................................................................................8
3.3.Chuẩn ECP.........................................................................................................10
B.CẤU TRÚC GIAO DIỆN NỐI TIẾP RS-232(COM)
1.Giới thiệu chung về giao diện RS-232....................................................................14
2.Cấu trúc giao diện RS-232......................................................................................14
2.1.Cấu trúc-Chức năng...........................................................................................14
2.2.Thông số kĩ thuật................................................................................................15
3.Phương thức truyền thông trong RS-232..............................................................16
4.Các thanh ghi trong giao diện RS-232...................................................................17
CHƯƠNG 3 LẬP TRÌNH CHO CÁC LOẠI GIAO DIỆN................................22
A.LẬP TRÌNH TRAO ĐỔI DỮ LIỆUCHO LPT
1.Thủ thuật phần cứng...............................................................................................22
2.Lập trình...................................................................................................................22
2.1.Giải thuật.............................................................................................................24
2.2.Công cụ lập trình................................................................................................25
2.3.Mã hoá chương trình..........................................................................................25
B.LẬP TRÌNH TRAO ĐỔI DỮ LIỆU CHO RS-232
1.Thủ thuật phần cứng...............................................................................................29
2.Lập trình...................................................................................................................29
2.1.giải thuật..............................................................................................................29
2.2.Mã hoá chương trình..........................................................................................29
C.LẬP TRÌNH CHO CHỨC NĂNG CHAT GIỮA HAI MÁY
1.Giải thuật..................................................................................................................32
2.Lập trình...................................................................................................................33
CHƯƠNG 4 KẾT LUẬN HƯỚNG PHÁT TRIỂN
1.Kết quả đạt được-Hướng phát triển......................................................................35
2.Hướng dẫn sử dụng chương trình..........................................................................37
3.Kết luận.....................................................................................................................38
PHỤ LỤC
1.Code chương trình...................................................................................................39
2.Tài liệu tham khảo...................................................................................................56
CHƯƠNG 1
GIỚI THIỆU ĐỀ TÀI
Hiện nay việc ứng dụng máy tính vào việc xử lý và điều khiển các nguồn
tín hiệu trong kỹ thuật số rất rộng rãi và đem lại lợi ích rất to lớn.Một yếu tố
then chốt trong lĩnh vực này là việc thực hiện giao tiếp giữa máy tính và
thiết bị ngoại vi để thu tín hiệu vào và xuất tín hiệu điều khiển ra, công việc
này dược thực hiện qua các cổng giao tiếp ví dụ:Cổng LPT,cổng COM,khe
cắm PCI,cổng USB với sự trợ giúp của các phần mềm.Hiện nay,có rất nhiều
phần mềm cũng như phần cứng hỗ trợ công việc giao tiếp này do các hãng
lớn trên thế giới phát triển.Tuy nhiên phần lớn trong số đó rất đắt và nhiều
khi không thực sự phù hợp với yêu cầu trong thực tế của chúng ta.Mặt khác
yêu cầu thực tế của nghành điện tử là người thiết kế hệ thống phải nắm vững
về cấu trúc phần cứng cũng như phương thức giao tiếp của các loại giao diện
trên nhằm vận dụng chúng một cách thành thạo vào các yêu cầu thực tế của
mình.
Đứng trước thực tế như vậy chúng em quyết định thực hiện đề tài ”Giao
tiếp máy tính qua các cổng”.Mục đích chúng em mong muốn đạt được khi
tiến hành thực hiện đề tài này là:
-Hiểu rõ cấu trúc và phương thức truyền dữ liệu của hai loại giao diện
LPT và RS-232(COM)
-Xây dựng giải thuật nhằm thực hiện truyền thông giữa hai máy tính
Trên cơ sở đó chúng em sẽ xây dựng một số chương trình tiện ích như:
-Truyền nhận một File dữ liệu giữa hai máy
-Tạo chức năng cho phép Chat giữa hai máy
Do thời gian giành cho đề tài khá ngắn ngủi và phải thực hiện một khối
lượng công việc khá lớn nên các tiện ích của chương trình mà chúng em
định xây dựng sẽ không nhiều mà chúng em chủ yếu tập trung vào việc tìm
hiểu cấu trúc các loại giao diện và xây dựng một giải thuật truyền thông tối
ưu.Trên cơ sở những hiểu biết sâu về cấu trúc các loại giao diện và giải thuật
truyền thông tối ưu thì ta hoàn toàn dễ dàng phát triển các tiện ích phức tạp
hơn.
Nhóm chúng em gồm các thành viên:
-Lê Rô To
-Nguyễn Thu Hằng
Để tiện xây dựng các Menu giao diện cũng như phần giới thiệu trong
chương trình chúng em đặt tên nhóm la nhóm E-Soft
Như đã đề cập ở trên thời gian giành cho đề tài là khá ngắn và lượng
công việc cần giả quyết khá lớn như:Tìm hiểu ngôn ngữ lập trình,Tìm hiểu
cấu trúc các laọi giao diên,Xây dựng cáp truyền mới,Xây dựng giải thuật…
2
Trong đề tài này phần quan trọng nhất và tiêu tốn thời gian nhất là phần tìm
hiểu cấu trúc của các loại giao diện.Trên cơ sở các công việc chính như vậy
nhóm chúng em có sự phân công công việc cơ bản như sau
BẢNG PHÂN CHIA CÔNG VIỆC
I.Giới thiệu về nhóm:
1.Tên nhóm:E-soft Lớp ĐT12-k47
2.Thành viên:
Lê Rô To
Nguyễn Thu Hằng
Bảng phân công
Thành viên
Công việc
Xây dựng tìm hiểu đề tài
Tìm hiểu cấu trúc các giao diện
Xây dựng cáp truyền
Xây dựng các chức năng
Xây dựng giải thuật
Lập
Chương trình chính
Trình Mã thực hiện giao tiếp
hoá Các Menu,giao diện
của chương trình
Viết báo cáo
Lê Rô To
x
x
x
x
x
x
Nguyễn Thu
Hằng
x
x
x
x
x
x
x
3
4
CHƯƠNG 2
CẤU TRÚC KĨ THUẬT CỦA CÁC LOẠI GIAO DIỆN
A.CẤU TRÚC GIAO DIỆN SONG SONG(LPT)
1.Giới thiệu chung về giao diện LPT
Giao diện song song LPT được IBM phát triển bổ sung vào năm 1981 nhằm
khắc phục tốc độ truyền dữ liệu của giao diện tuần tự nối tiếp,nó đã đáp ứng
được nhu cầu giao tiếp giữa máy tính và máy in ma trận điểm,một máy in
thuộc loại hiện đại nhất thời bây giờ.
Từ đó đến nay giao diện này dược phát triển bởi rất nhiều nhà sản xuất với
nhiều chuẩn khác nhau nhằm thực hiện các mục đích giao tiếp khác nhau ví
dụ:chuẩn cơ bản STANDARD,chuẩn hai hướng Bi-direction,chuẩn
EPP,chuẩn ECP.Chính vì việc phát triển với nhiều chuẩn như vậy nên hiện
nay chưa có một chuẩn chính thức cho loại giao diện này,trong các máy tính
tuỳ thuộc nhà sản xuất mà giao diện LPT có thể có một hoặc tất cả các chuẩn
trên. Đây là một hạn chế của giao diện LPT,do đó ta phai tim hiểu các chuẩn
trên.
2.Cấu trúc giao diện LPT chuẩn Standard(spp)
2.1.Cấu trúc - chức năng
-Về cáp truyền thì chiều dài tới hạn là 2m
-Về ổ cắm có hai loại là ổ 36 chân và ổ 25 chân tuy nhiên hiện nay phổ biến
là loại 25 chân nên ta chỉ đề cập đến loại này trong đề tài này.Trong số 25
chân này thì có thể chia làm 3 nhóm chính:Nhóm các chân dữ liệu,nhóm các
chan điều khiển và nhóm các chân trang thái.
• 8 pins dùng để gửi (từ pin số 2 đến số 9) gọi là DATA Port . Dữ liệu trao
đổi qua 8 pin này được gói gọn trong 1 byte.
• 5 pins dùng để hiển thị tình trạng hoạt động của parallel port: đang bận,
đang gởi/nhận thông tin...(các pin số 10-13 và pin số 15) gọi là STATUS
Port. Dữ liệu trao đổi qua 8 pin này dùng 5 bit cao của byte.
• 4 pins dùng để điều khiển gọi là CONTROL Port, là các pin số 1, 14, 16
và 17. Dữ trao đổi qua
pin này dùng 4 bit thấp của byte.
•
Hình2.1.Cấu trúc hình học LPT
5
8 pins còn lại được dùng tùy theo ý người sử dụng. Nếu không được sử dụng
thì chúng sẽ được nối đất
Giao diện song song thực hiện xuất nhập dữ liệu trực tiếp qua các thanh
ghi.Tuy nhiên như đã đề cập ở trên,các chân của cổng LPT được chia làm ba
nhóm rõ rệt do đó mỗi nhóm được liên kết với một thanh ghi,các thanh ghi
này được đánh địa chỉ liên tiếp nhau và đều dược truy nhập qua một địa chỉ
cổng cứng.Trước đây hệ điều hành DOS lại dự tính không gian bộ nhớ cho
4cổng LPT,tuy nhiên hiện nay hầu hết các máy tính thông dụng chỉ có 1
cổng LPT có địa chỉ cơ bản 0x378h.Cách đánh địa chỉ của các cổng này tuỳ
thuộc vào BIOS của máy tính,dưới đây liệt địa chỉ các thanh ghi theo cách
đánh thông dụng nhất:
Số thứ tự cổng
Địa chỉ thanh ghi Địa chỉ thanh ghi Địa chỉ thanh ghi
LPT
dữ liệu
trạng thái
điều khiển
LPT1
3BC
3BD
3BE
LPT2
378
379
37A
LPT3
278
279
27A
LPT4
2BC
2BD
2BE
Bảng2.1. Địa chỉ các thanh ghi
Vị trí các bít trên thanh ghi và các chân tương ứng được minh hoạ trên, ta
thấy rằng 8chân của Data port kết nối đầy đủ với 8 bit của Data
register,5chân của Status port kết nốt với 5 bit cao của Status register,4 chân
của Control port kết nối tới 4 bit thấp của Control register.Chi tiết về các
chân được diễn giải trong bảng dưới đây:
Pin:
D-sub
Signal
1
2
3
4
5
6
7
8
9
10
nStrobe
D0
D1
D2
D3
D4
D5
D6
D7
nAck
11
12
Busy
Paper
End
Function
Strobe D0, D7
Data bit 0
Data bit 1
Data bit 2
Data bit 3
Data bit 4
Data bit 5
Data bit 6
Data bit 7
Acknowledge
( may trigger
interrupt)
Printer busy
Paper
end,empty
(out of paper)
Source
Register
Name Bit#
PC1
PC
PC2
PC2
PC
PC2
PC
PC2
PC2
Printer
Contro
Data
Data
Data
Data
Data
Data
Data
Data
Status
0
0
1
2
3
4
5
6
7
6
Printer
Printer
Status
Status
7
5
Inverted at Pin:
connector CentronIcs
Y
1
N
2
N
3
N
4
N
5
N
6
N
7
N
8
N
9
N
10
Y
N
11
12
6
13
Select
14
nAutoL
F
15
nError(n
Fault)
nInit
16
17
18
nSelectI
n
Gnd
Printer selected
(on line)
Generate
automatic line
feeds after
carriage return
Error
Printer
Status
4
N
13
PC1
Contro
l
1
Y
14
Printer
Status
3
N
32
Initialize
printer (Reset)
Select Printer
PC1
Contro
l
Contro
l
2
N
31
3
Y
36
PC1
Ground return
for nStrobe,D0
19
God
Ground return
for D1, D2
20
God
Ground return
for D3, D4
21
God
Ground return
for D5, D6
22
Gnd
Ground return
for D7, nAck
23
Gnd
Ground return
for nSelectIn
24
Gnd
Ground return
for Busy
25
God
Ground return
for nInit
Chassis Chassis ground
NC
No connection
NC
Signal ground
Nc
+5V
Printer
Setting this bit high allows it to be used as an input (SPP only)
are bidirectional
Bit
0
1
2
3
4
5
Bảng 2.2.Sơ đồ chân theo vị trí
Data Register (Base Address)
Pin: DSignal
Source
Inverted at
sub
Name
connector?
2
Data bit 0
PC
No
3
Data bit 1
PC
No
4
Data bit 2
PC
No
5
Data bit 3
PC
No
6
Data bit 4
PC
No
7
Data bit 5
PC
No
19,20
21,22
23,24
25,26
27,28
33
29
30
17
15,18,34
2Some data ports
Pin:
Centroncis
2
3
4
5
6
7
7
6
8
Data bit 6
PC
No
7
9
Data bit 7
PC
No
Some data ports are bidirectional. (See cotrol register, bit 5 below)
8
9
Status Register (Base Address +1)
Bit
Pin: D- Signal Name
Source
Inverted at
Pin:
sub
connector? Centroncis
3
15
nError
Peripheral
No
32
(nFault)
4
13
Select
Peripheral
No
13
5
12
PaperEnd
Peripheral
No
12
6
10
nAck
Peripheral
No
10
7
11
Busy
Peripheral
Yes
11
Additional bits not available at the connector:
0: may indicate timeout (1=timeout).
1,2: unused.
Control Register (Base Address +2)
Bit
Pin: D- Signal
Source
Inverted at
Pin:
sub
Name
connector? Centroncis
0
1
nStrobe
PC1
yes
1
1
14
nAutoLF
PC1
yes
14
2
16
nInit
PC1
no
31
3
17
nSelectIn
PC1
yes
36
When high, PC can read external input (SPP only).
Additional bits not available at the connector:
4: interrupt enable. 1=IRQs pass from nAck to system’s interrupt
controller. O=IRQs do not pass to interrupt controller.
5: Direction control for bidirectional Data ports. O=outputs disabled; data
port can read external logic voltages.
6,7: unused.
Bảng 2.3.Sơ đồ chân theo khối chức năng
chú thích:
1.Trong các pin trên nếu chân nào bị đảo(Inverted=Y) thì mức logic ra bị
đảo ví dụ ta xuất ra chân này một mức logic 1(U=5v) thi thực tế trên chân
này chỉ là mức logic 0(U=0v)
2.Trong các pin trên thì Source dùng để chỉ hướng dữ liệu:
-Nếu source=pc chân tương ứng chỉ cho phép máy tính xuất tín hệu ra
thiết bị ngoại vi,không cho phép nhận dữ liệu từ bên ngoài qua chân này
8
-Nếu Source=peripheral thì chân tương ứng chỉ cho nhận dữ liệu từ
thiết bị ngoại vi,không cho phép truyền tín hiệu từ máy tính ra ngoài qua
chân này
2.2Thông số kỹ thuật
Chuẩn IEEEE1284 quy định các tham số điện cho giao diện LPT như sau:
-Điện thế mức logic cao(mức 1) nằm trong khoảng 2.4v đến 5v
-Điện thế mức logic thấp(mức 0)nằm trong khoảng -0.5v đến 0.4v
-Dòng điện không vượt quá 14mA
-Tốc độ truyền dữ liệu ra đạt khoảng 50 đến 100 Kbyte/s
3. Một số chuẩn giao tiếp khác của giao diện LPT
3.1 Chuẩn Standard cải tiến(Bi-direction)
Chuẩn Standard cải tiến hay còn gọi là chuẩn Bi-direction-chuẩn hai chiều
Từ thế hệ máy PS/2 của IBM,bộ khuếch đại được ngắt mạch để có thể dùng
cả 8 chân DATA nhận dữ liệu theo chiều ngược lại-chiều từ thiết bị ngoại vi.
Chế độ này cho phép nhận dữ liệu một lần 8 bit thay vì 4 bit như trong chế
độ Standard(Nhận qua 4 chân Status) nên tốc độ nhân dữ liệu được tăng lên.
3.2 Chuẩn song song cải tiến(EPP)
Chuẩn song song cải tiến hay còn gọi là chuẩn EPP(Enhance Parallel Port)
Là một chuẩn khác của LPT,được các hãng Intel,Xircom và Zenith data
systems thiết kế.
Chuẩn này ra đời trước chuẩn IEEE1284, để đáp ứng các yêu cầu về tốc độ
trao đổi dữ liệu cũng như giao tiếp với thiết bị ngoại vi luc bấy giờ.Chuẩn
này được cài đặt trong các vi mạch Chipset của Intel.
Chế độ EPP hỗ trợ bốn chu kì truyền dữ liệu:
*Chu kì ghi dữ liệu
*Chu kì đọc dữ liệu
*Chu kì ghi địa chỉ
*Chu kì đọc địa chỉ
Chính vì hỗ trợ đến bốn chu kì truyền dữ liệu nên chuẩn EPP cần nhiều
thanh ghi hơn và đã bổ sung thêm ba thanh ghi so với chuẩn Standard.
Dưới đây là liệt kê các thanh ghi đó theo cách đánh địa chỉ lệch so vói thanh
ghi cơ bản.Đông thời thuật ngữ định nghĩa các chân cũng khác đi.
Tên thanh ghi Địachỉ Chế độ Đoc/Ghi Ý nghĩa thanh ghi
Base+
Data reg
0
SPP/EPP Ghi
Thanh ghi dữ liệu cơ bản
Status reg
1
SPP/EPP Đọc
Thanh ghi trạng thái cơbản
Control reg
2
SPP/EPP Ghi
Thanh ghi điều khiểncơbản
EPP add reg
3
EPP
Đoc/Ghi Thanh ghi địa chỉ chế độ
EPP.Nó hỗ trợ tạo ra một
chu kì đọc/ghi địa chỉ
9
EPP Data reg
4
EPP
Đọc/Ghi Thanh ghi du liệu chế độ
EPP.Nó hộ trợ tạo ra một
chu kì đọc /ghi dữ liệu
Reserve reg
5-7
EPP
Thanh ghi dự trữ cho nhà
sản xuất làm cổng vào 16
hoặc 32 bit
Bảng 2.4.Địa chỉ -Chức năng thanh ghi chuẩn EPP
Table 5.2 EPP signal definition
SPP signal
EPP signal
Direction
EPP signal description
nSTROBE
nWRITE
Out
Active low, Indicates a
write operation, high for a
read cycle.
nAUTOFEED nDATASTB
Out
Active low, Indicates
DATA_Read or
DATA_Write operation in
progress
nSELECTIN nADDRSTB
Out
Active low, Indicates
ADDRESS_Read or
ADDRESS_Write operation
in progress
nINIT
nRESET
Out
Active low, Peripheral reset
nACK
nINTR
In
Peripheral interrupt. Used
to generate an interrupt to
the host
BUSY
nWAIT
In
Handshake signal. when
low, it indicates that it is
OK to start a cycle (assert
strobe); when high, it
indicates it is OK to end the
cycle (de-assert strobe).
D[s :1]
AD[s :1]
Bidirectional Bidirectional address/data
lines
PE
User define
In
Can be used by peripheral
SELECT
User define
In
Can be used by peripheral
nERROR
User define
In
Can be used by peripheral
Bảng 2.5.Bố trí các tín hiêu trong chế độ EPP
Trong chế độ EPP thì phần cứng tự động quản lý các tín hiệu bắt tay giữa
các chu ki đọc/ghi.Mỗi chu kì đọc ghi trong chế độ EPP xảy ra trong một
10
chu kì đọc ghi của Bus ISA trong máy nhờ vậy ttóc độ truyền được cải thiện
đáng kể,đạt khoảng 500Kbyte-2Mbyte trong một giây.
Các chu kì đọc ghi dữ liệu,địa chỉ trong chế độ EPP có thể mô tả bằng các
giản đồ sau:
Data write cycle
Address write cycle
Data read cycle
Address read cycle
2.3 Chuẩn song song có khả năng mở rông(ECP)
Cổng song song có khả năng mở rông hay còn goi là chuẩn ECP(Extended
Capability Port) được các hãng Hewlett Packard va Microsoft phát triển
nhằm cải thiện tốc độ giao tiếp giữa máy tính và máy in cũng như máy quét
hình…
Chế độ ECP hỗ trợ hai chu kì truyền dữ liệu theo hai hướng:
*Chu kì dữ liệu
*Chu kì lệnh.
Chu kì lệnh được chia thành hai loại:
*Đếm chiều dài chạy(Run-length count)
*Kênh địa chỉ
Giống như EPP,Ecp cũng tổ chức dữ liệu dưới dạng Bus,song Microsoft
đã thiết kế ra cho nó có một số tính năng mà EPP hoặc chuẩn IEEE1284
không đáp ứng như:Mã chiều dài chạy RLE(Run-length encoding),nén dữ
liệu,đệm FIFO hai hướng,DMA và cổng ra vào lập trình được.
RLE cho phép nén dữ liệu thời gian thực đến tỉ lệ 64:1.Phương pháp này
rất thuận lợi cho máy in,máy quét dữ liêu dạng Bitmap và có nhiều dữ liệu
lặp lại
11
Phương pháp định địa chỉ kênh của ECP cũng khác với EPP.Phương pháp
định địa chỉ của ECP cho phép máy tính truy nhập nhiều kênh khác nhau
trên một thiết bị vật lý duy nhất(VD:Máy FAX đa năng,máy in-scane tích
hợp,Modem…).Phương pháp này đã cho phép nhiều chức năng của một máy
đa chức năng giao tiếp với máy tính cùng một lúc thông qua một giao diện
song song duy nhất.
Việc bố trí các đường truyền tín hiệu với chức năng tương ứng cũng có
những khác biệt so với EPP và Standard.
SPP
Pin
ECP Signal
IN/OUT Function
Signal
A low on this line indicates, that
there is valid data at the host.
1 Strobe HostCLK
Out
When this pin is de-asserted, the
+ve clock edge should be used to
shift the data into the device.
2-9 Data 0-7 Data 0-7
In/Out Data Bus. Bi-directional
A low on this line indicates, that
there is valid data at the Device.
10 Ack
PeriphCLK
In
When this pin is de-asserted, the
+ve clock edge should be used to
shift the data into the Host.
When in reverse direction a
HIGH indicates Data, while a
LOW indicates a Command
11 Busy
PeriphAck
In
Cycle.
In forward direction, functions
as PeriphAck.
Paper
When
Low,
Device
12 Out
/ nAckReverse
In
acknowledges Reverse Request.
End
13 Select X-Flag
In
Extensibility Flag
When in forward direction a
HIGH indicates Data, while a
Auto
LOW indicates a Command
14
Host Ack
Out
Linefeed
Cycle.
In reverse direction, functions as
HostAck.
12
Error
15
Fault
/
PeriphRequest
In
16 Initialize nReverseRequest Out
17
Select
Printer
1284 Active
Out
A LOW set by the device
indicates
reverse
data
is
available
A LOW indicates data is in
reverse direction
A HIGH indicates Host is in
1284 Transfer Mode. Taken low
to terminate.
18Ground Ground
GND
Ground
25
Bảng 2.6.Chức năng các đường tín hiệu trong ECP
Address
Base + 0
Port Name
Read/Write
Data Port (SPP)
Write
ECP Address FIFO (ECP
Read/Write
MODE)
Base + 1
Status Port (All Modes)
Read/Write
Base + 2
Control Port (All Modes)
Read/Write
Base + 400h
Data FIFO (Parallel Port FIFO
Read/Write
Mode)
Data FIFO (ECP Mode)
Read/Write
Test FIFO (Test Mode)
Read/Write
Configuration
Register
A
Read/Write
(Configuration Mode)
Configuration
Register
B
Base + 401h
Read/Write
(Configuration Mode)
Extended Control Register (Used
Base + 402h
Read/Write
by all modes)
Bảng2.7. Địa chỉ các thanh ghi của chuẩn ECP
Như vậy ta đã giới thiệu sơ qua về các chuẩn của giao diện LPT,tuy nhiên
trên một máy tính thì không phải lúc nào cúng sẵn sàng đủ các chếđộ
đó.Trên máy tính,do thường chỉ có một cổng LPT nên chế độ của nó thường
được mặc định là chế độ Standard.Khi người dùng muốn sử dụng các chế độ
khác thì phải cài đặt lại cổng.Một bo mạch nếu hỗ trợ chuẩn ECP thì nhà sản
13
xuất sẽ hỗ trợ thêm một thanh ghi mở rộng để phục vụ công việc cài đặt chế
độ hoạt động cho cổng gọi là thanh ghi ECR(Extended Control Register ).Ta
truy nhập vào thanh ghi đó và đặt lại các bit trên đó theo sơ đồ sau:
Bit
Function
7:5
Selects Current Mode of Operation
000 Standard Mode
001 Byte Mode
010 Parallel Port FIFO Mode
011 ECP FIFO Mode
100 EPP Mode
101 Reserved
110 FIFO Test Mode
111 Configuration Mode
4
ECP Interrupt Bit
3
DMA Enable Bit
2
ECP Service Bit
1
FIFO Full
0
FIFO Empty
Bảng 2.8.Các chế độ cài đặt cho LPT qua thanh ghi ECR
14
B.CẤU TRÚC GIAO DIỆN NỐI TIẾP RS-232
1.Giới thiệu chung về giao diện nối tiếp
Ghép nối thiết bị ngoại vi và máy tính qua giao diện nối tiếp là một trong
những kĩ thuật ghép nối được sử dụng rộng rải nhất hiện nay.Tuy nhiên khi
ra đời thì giao diện nối tiếp lại là một chuẩn không chính thức(defactor).Sau
một thời gian lưu hành không chính thức và được chấp nhận bởi nhiều công
ty máy tính và thiết bị đo lường với sự phát triển của nhiều phiên bản khác
nhau,vào năm 1962 IEA(The Electronic Industrial Association) đã ban hành
tiêu chuẩn RS-232(Recommended Standard-232) áp dụng cho cổng nối tiếp
của máy tính.
Hiện nay trên các máy tính thông dụng đều có trang bị cổng nối tiếp chuẩn
RS-232 phục vụ cho mục đích gheps nối thiết bị ngoại vi trong khoảng cách
ngắn,ngoài ra còn có chuẩn nối tiếp RS-485 phục vụ cho việc truyền thông
nối tiếp với khoảng cách lớn.
2.Cấu trúc cổng nối tiếp
2.1.Cấu trúc - chức năng
HIện nay hầu hết các máy tính dều có trang bị cổng nối tiếp,thường có hai
cổng RS-232 được gọi là COM1và COM2.Hai cổng này sử dụng một trong
hai loại đầu nối:25 chân và 9 chân,thông thường COM1 dùng đầu nối 9
chân còn đầu nối 25 chân trang bị cho COM2.
Chức năng và vị trí của các chân trên đầu nối được liệt kê trong bảng sau
D-Type-25 Pin D-Type-9 Pin
Kí hiệu
Tên gọi quốc tế
No.
No.
Pin 2
Pin 3
TD
Transmit Data
Pin 3
Pin 2
RD
Receive Data
Pin 4
Pin 7
RTS
Request To Send
Pin 5
Pin 8
CTS
Clear To Send
Pin 6
Pin 6
DSR
Data Set Ready
Pin 7
Pin 5
SG
Signal Ground
Pin 8
Pin 1
CD
Carrier Detect
Data Terminal
Pin 20
Pin 4
DTR
Ready
Pin 22
Pin 9
RI
Ring Indicator
Bảng 2.8.Tên gọi chuẩn các chân
Thực tế hiện nay việc định nghĩa chức năng các chân trên đầu nối 25 chân là
không hoàn toàn cần thiết nữa vì trên đầu nối 25 chân hiện nay chỉ chính
15
thức sử dụng 9 chân tương tự như đầu mối 9 chân nên ta chỉ cần đưa ra chức
năng các chân trên đầu nối 9 chân
25chân 9 chân Kí hiệu
Chức năng của chân
1
FG
Chân này nối với vỏ máy,tiếp đất
2
3
TD=>
Đường xuất dữ liệu ra
3
2
RD<=
Đường nhận dữ liệu vào
4
7
RTS=>
Xuất tín hiệu báo đã sẵn sàng xuất dữ liệu
5
8
CTS<=
Nhận tín hiệu phản hồi của thiết bị ngoại vi
báo đã sẵn sàng nhận dữ liệu
6
6
DSR<= Hoạt động gần giống như CTS
7
5
SG
Đường đấu đất chung
8
1
DCD<= Phát hiện tín hiệu mang dữ liệu
20
4
DTR=> Hoạt động gần giống vói RTS
22
9
RI<=
Báo rằng thiết bị ngoại vi đã nhận được một
tín hiệu rung chuông từ diện thoại(…)
Bảng 2.9.Chức năng các chân
2.2.Thông số kĩ thuật
Giao diện RS-232 khi ra đời cũng đã từng sử dụng các mức điện áp tương
thích với họ TTL la 0.3-5v để quy định mức logic 0 và 1.Để đáp ứng yêu
cầu về tốc độ và khoảng cách truyền thông hiện nay RS-232 đã được cải tiến
thành các chuẩn RS-232C và RS-232B.
-Đối với chuẩn RS-232B thì:
+Mức logic 1:-3v đến -25v
+Mức logíc 0:+3v đến +25v
-Đối với chuẩn RS-232C thì
+Mức logic 1:-3v đến -12v
+mức logic 0:+3v đến +12v
Tuy nhiên các thông số ở trên là các mức điện áp để máy tính hiểu còn đối
với máy tính thường là sử dụng bộ bơm điện MAX-232 để chuyển mức
nguồn trong máy là 5v sang mức 10v do đó các mức logic của tin hiệu do
máy xuất ra kha chuẩn:Mức 0:+10v và mức 1:-10v
Ngoài các tiêu chuẩn về mức logic thì còn có một số các tiêu chuẩn khác
như: Trở kháng của tải phải nằm trong khoảng 3000 ôm đến 7000 ôm.Tốc
độ đáp ứng điện áp của bộ đệm truyền(Slew rate) phải đạt lớn hơn 30v trên
một micrô giây.
Cáp truyền của RS-232 cho phép dài hơn LPT nhưng không được quá dài
16
3.Phương thức truyền thông
3.1 Phương thức truyền tuần tự các bit dữ liệu
Khác với giao diện song song việc truyền các bit dữ liệu được truyền đồng
thời,trong giao diện nối tiếp các bit dữ liệu được truyền tuần tự.Về phương
diện kỹ thuật phương pháp truyền tuần tự có hai cách là truyền đồng
bộ(Synchronous) và truyền không đồng bộ(Ansynchronous).Chuẩn RS-232
sử dụng phương pháp truyền không đồng bộ.
Hình 2.2.Truyền đồng bộ
Hình 2.3.Truyền không đồng bộ
Như đã thấy trên hình minh hoạ,phương pháp truyền không đồng bộ tự tạo
ra xung đồng hồ cho mình bằng cách đưa vào các bit đánh dấu bắt đầu và kết
thúc một Byte dữ liệu.Bộ truyền gửi một bit Start=0 cho bộ nhận để báo một
quá trình truyền một Byte dữ liệu mới,tiếp đó bộ truyền truyền tuần tự các
bit dữ liệu dưới dạng mã ASCII,rồi đến một bit chẵn lẻ và kết thúc là một
bit 1,1.5 hoặc 2 bit mức cao để báo dừng 1 Byte.Chính vì đặc trưng của
phương pháp này nên cả bộ truyền và bộ nhận phải được đặt ở cùng một
khoảng thời gian bit
17
3.2 Tốc độ Baud
Như ta đề cập ở phần trên trong một chu kì truyền tuần tự một Byte dữ liệu
ngoài các bit mang dữ liệu thì quá trình truyền cần phải sử dụng thêm các bit
như:Bitkhởi đầu,bit kết thúc, bit chẵn lẻ …chính vì thế tốc độ truyền các bit
khác với tốc độ truyền một Byte dữ liệu.
Ví dụ:Ta dùng thêm 3 bit thi nếu ta truyền 10 kí tự trong 1giây nghĩa là ta
truyền được 110 bit trong một giây nhưng nếu ta chỉ tính theo số bit dữ liẹu
truyền được thì chỉ là 80bit trong một giây
Để phân biệt giữa hai tốc độ này người ta đưa ra khái niệm tốc độ Baud là
tốc độ liên quan đến tốc độ mà các phần tử mã hoá dữ liệu được sử dụng để
diễn tả các bit được truyền.
Lúc đó ta có thể tính được thời gian chờ giành cho mỗi bit trên luông truyền
theo công thức sau:
Khoảng thời cho mỗi bit=1/tốc độ baud [s]
Như vậy nếu tốc độ baud càng cao thì thời gian chờ bit càng bé dẫn đến khả
năng bị chồng bit càng cao.
4.Các thanh ghi của chuẩn RS-232
Đối với việc lập trình giao tiếp truy xuất qua cổng thì một điều then chốt là
nắm rõ địa chỉ các thanh ghi và sơ đồ các bit tương ứng giữa các bit trên các
thanh ghi và các chân trên đầu nối.
RS-232 có phương thức giao tiếp giữ liệu hoan toàn khác LPT nên số
lượng các thanh ghi cũng như chức năng các thanh ghi của RS-232 hoàn
toàn khác của LPT.Trong cách đánh địa chỉ thì thường được đánh theo địa
chỉ lệch so với địa chỉ cơ sở.Dưới đây là địa chỉ cơ sở cho 4 cổng COM(Nếu
như trên bo mạch có đủ)
Name
Address
IRQ
COM 1
3F8
4
COM 2
2F8
3
COM 3
3E8
4
COM 4
2E8
3
Bảng2.10. Địa chỉ cơ sở các cổng Com
Trong chuẩn RS-232 có tất cả 9 thanh ghi với địa chỉ và tên gọi quốc tế được
đưa ra dưới đây:
Base Address DLAB Read/Write Abr. Register Name
=0
Write
Transmitter Holding Buffer
+0
=0
Read
Receiver Buffer
=1
Read/Write Divisor Latch Low Byte
+1
=0
Read/Write IER Interrupt Enable Register
18
=1
Read/Write -
Divisor Latch High Byte
Interrupt Identification
Read
IIR
Register
+2
Write
FCR FIFO Control Register
+3
Read/Write LCR Line Control Register
+4
Read/Write MCR Modem Control Register
+5
Read
LSR Line Status Register
+6
Read
MSR Modem Status Register
+7
Read/Write Scratch Register
Bảng 2.11.Địa chỉ các thanh ghi tính theo Base add
Chức năng của các thanh ghi và các bit trên chúng được nêu ra dưới đây.Ta
giữ nguyên phần thuật ngữ tiếng anh để diễn đạt được trọn vẹn ý nghĩa, đối
với chức năng nào liên quan đến phần lập trình ta sẽ giải thích rõ hơn ở phần
sau
Bit Notes
Bit 7 Reserved
Bit 6 Reserved
Bit 5 Enables Low Power Mode (16750)
Bit 4 Enables Sleep Mode (16750)
Bit 3 Enable Modem Status Interrupt
Bit 2 Enable Receiver Line Status Interrupt
Bit 1 Enable Transmitter Holding Register Empty Interrupt
Bit 0 Enable Received Data Available Interrupt
Bảng 2.11.Interrupt Enable Register (IER)-Thanh ghi cho phép ngắt
Bit
Notes
Bits 6 and Bit 6 Bit 7
7
0
0
No FIFO
0
1
FIFO Enabled but Unusable
1
1
FIFO Enabled
Bit 5
64 Byte Fifo Enabled (16750 only)
Bit 4
Reserved
Bit 3
0
Reserved on 8250, 16450
1
16550 Time-out Interrupt Pending
Bits 1 and Bit 2 Bit 1
19
2
0
0
1
1
0
1
Bit 0
0
Modem Status Interrupt
Transmitter Holding Register Empty
1
Interrupt
0
Received Data Available Interrupt
1
Receiver Line Status Interrupt
Interrupt Pending
No Interrupt Pending
Bảng 2.12.Interrupt Identification Register (IIR)-Thanh ghi nhận dạng ngắt
Bits 6
and 7
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit 7
Bit 6
Interrupt Trigger Level
0
0
1 Byte
0
1
4 Bytes
1
0
8 Bytes
1
1
14 Bytes
Enable 64 Byte FIFO (16750 only)
Reserved
DMA Mode Select. Change status of RXRDY &
TXRDY pins from mode 1 to mode 2.
Clear Transmit FIFO
Clear Receive FIFO
Enable FIFO's
Bảng 2.13.First In / First Out Control Register (FCR)
Bit 7
1
Divisor Latch Access Bit
Access to Receiver buffer, Transmitter buffer
0
& Interrupt Enable Register
Bit 6
Set Break Enable
Bits 3, 4 Bit Bit Bit
Parity Select
And 5
5 4 3
X X 0 No Parity
0 0 1 Odd Parity
0 1 1 Even Parity
1 0 1 High Parity (Sticky)
1 1 1 Low Parity (Sticky)
Bit 2
Length of Stop Bit
20