Website: http://www.docs.vn Email : [email protected] Tel : 0918.775.368
MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI ........................................................................1
CHƯƠNG 2 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
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
đượ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
connector
Pin:
Centron-
Name Bit#
1 nStrobe Strobe D0, D7 PC1 Contro 0 Y 1
2 D0 Data bit 0 PC Data 0 N 2
3 D1 Data bit 1 PC2 Data 1 N 3
4 D2 Data bit 2 PC2 Data 2 N 4
5 D3 Data bit 3 PC Data 3 N 5
6 D4 Data bit 4 PC2 Data 4 N 6
7 D5 Data bit 5 PC Data 5 N 7
8 D6 Data bit 6 PC2 Data 6 N 8
9 D7 Data bit 7 PC2 Data 7 N 9
10 nAck Acknowledge
( may trigger
interrupt)
Printer Status 6 N 10
11 Busy Printer busy Printer Status 7 Y 11
12 Paper
End
Paper end,empty
(out of paper)
Printer Status 5 N 12
13 Select Printer selected
(on line)
Printer Status 4 N 13
6
14 nAutoLF Generate
automatic line
feeds after
for D7, nAck
27,28
23 Gnd Ground return
for nSelectIn
33
24 Gnd Ground return
for Busy
29
25 God Ground return
for nInit
30
Chassis Chassis ground 17
NC No connection 15,18,34
NC Signal ground
Nc +5V Printer
Setting this bit high allows it to be used as an input (SPP only) 2Some data ports are
bidirectional
Bảng 2.2.Sơ đồ chân theo vị trí
Data Register (Base Address)
Bit Pin: D-
sub
Signal
Name
Source Inverted at
connector?
Pin:
Centroncis
0 2 Data bit 0 PC No 2
1 3 Data bit 1 PC No 3
2 4 Data bit 2 PC No 4
connector?
Pin:
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
-Nếu Source=peripheral thì chân tương ứng chỉ cho nhận dữ liệu từ
8
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
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ỉ
EPP Data reg 4 EPP Đọc/Ghi Thanh ghi du liệu chế độ
9
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
*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
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
11
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.
Pin
SPP
Signal
ECP Signal IN/OUT Function
1 Strobe HostCLK Out
A low on this line indicates, that
there is valid data at the host.
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
10 Ack PeriphCLK In
A low on this line indicates, that
Fault
PeriphRequest In A LOW set by the device
indicates reverse data is
12
available
16 Initialize nReverseRequest Out
A LOW indicates data is in
reverse direction
17
Select
Printer
1284 Active Out
A HIGH indicates Host is in
1284 Transfer Mode. Taken low
to terminate.
18-
25
Ground Ground GND Ground
Bảng 2.6.Chức năng các đường tín hiệu trong ECP
Address Port Name Read/Write
Base + 0 Data Port (SPP) Write
ECP Address FIFO (ECP
MODE)
Read/Write
Base + 1 Status Port (All Modes) Read/Write
Base + 2 Control Port (All Modes) Read/Write
Base + 400h Data FIFO (Parallel Port FIFO
Mode)
Read/Write
Data FIFO (ECP Mode) Read/Write
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
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
14
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
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
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
16
Khác với giao diện song song việc truyền các bit dữ liệu được truyền đồng
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
=0 Write - Transmitter Holding Buffer
=0 Read - Receiver Buffer
=1 Read/Write - Divisor Latch Low Byte
+ 1
=0 Read/Write IER Interrupt Enable Register
=1 Read/Write - Divisor Latch High Byte
18
+ 2 - Read IIR
Interrupt Identification
Register
Bit 3 0 Reserved on 8250, 16450
1 16550 Time-out Interrupt Pending
Bits 1 and
2
Bit 2 Bit 1
0 0 Modem Status Interrupt
19
0 1
Transmitter Holding Register Empty
Interrupt
1 0 Received Data Available Interrupt
1 1 Receiver Line Status Interrupt
Bit 0 0 Interrupt Pending
1 No Interrupt Pending
Bảng 2.12.Interrupt Identification Register (IIR)-Thanh ghi nhận dạng ngắt
Bits 6
and 7
Bit 7 Bit 6 Interrupt Trigger Level
0 0 1 Byte
0 1 4 Bytes
1 0 8 Bytes
1 1 14 Bytes
Bit 5 Enable 64 Byte FIFO (16750 only)
Bit 4 Reserved
Bit 3
DMA Mode Select. Change status of RXRDY &
TXRDY pins from mode 1 to mode 2.
Bit 2 Clear Transmit FIFO
Bit 1 Clear Receive FIFO
Bit 0 Enable FIFO's
Bit
0
Word Length
0 0 5 Bits
0 1 6 Bits
1 0 7 Bits
1 1 8 Bits
Bảng 2.14.Line Control Register (LCR)-Thanh ghi điều khiển đườngtruyền
Bit Notes
Bit 7 Error in Received FIFO
Bit 6 Empty Data Holding Registers
Bit 5 Empty Transmitter Holding Register
Bit 4 Break Interrupt
Bit 3 Framing Error
Bit 2 Parity Error
Bit 1 Overrun Error
Bit 0 Data Ready
Bảng 2.15.Line Status Register (LSR)-Thanh ghi trạng thái đường truyền
Bit Notes
Bit 7 Reserved
Bit 6 Reserved
Bit 5 Autoflow Control Enabled (16750 only)
Bit 4 LoopBack Mode
Bit 3 Aux Output 2
Bit 2 Aux Output 1
Bit 1 Force Request to Send
Bit 0 Force Data Terminal Ready
21
Bảng 2.16.Modem Control Register (MCR)-Thanh ghi điều khiển modem
Bit Notes
ghi trạng thái(11,10,12,13) ở một đầu cáp truyền vào 4 chân ứng với 4 bit
thấp nhất của thanh ghi dữ liệu (2,3,4,5) ở đầu kia của cáp truyền.Còn chân
15(Error) đựoc nối vào chân 1(Strobe) trên khối Control.
Bằng cách đấu lại cáp truyền như trên trong mỗi chu kì trao đổi dữ liệu ta
có thể trao đổi được 4bit .Đặc biệt nhờ ta sử dụng 2chân Strobe(Control) và
Error(Status) làm tín hiệu bắt tay nên tạo ra được sự bắt tay ”phần cứng” gữa
các chu kì truyền nên sẽ tránh được việc “Chồng bit”giữa các chu ki trao đổi
dữ liệu
Trong khi thực hiện đấu nối lại cáp truyền ta đã thực hiện đấu nối đối xứng,
do đó nó cho phép ta thực hiện truyền và nhận với cùng một đầu cáp mà
không phải thực hiện cắm lại cáp khi thay đổi chức năng của máy.Như vậy
vói cách đấu cáp như trên ta đã tạo được một cáp truyền hai chiều và ta
không cần phải phân biệt vai trò Master,Slave theo cáp truyền.Trong phần
lập trình ta chỉ quy định Master và Slave là để biểu thị máy đó đang truyền
dữ liệu(Transformer) hay đang nhậnh dữ liệu(Reciever) chứ không hề mang
một ý nghĩa nào khác.
23
Hình 3.1.Sơ đồ đấu lại cáp truyền
2. Lập trình
2.1 giải thuật
24
Để tạo ra một chu kì truyền dữ liệu có bắt tay phần cứng ta có thể tiến hành
theo cách truyền “hỏi đáp giữa hai máy tính”.Ta quy ước máy truyền dữ liệu
là máy Master,máy nhận dữ liệu là máy Slave:
2.2 Công cụ lập trình
Ngôn ngữ lập trình ta lựa chọn là ngôn ngữ lập trình C.Đây là một ngôn ngữ
lập trình hướng chức năng,khá dễ sử dụng và nó hỗ trợ việc lập trình hệ
thống tốt,là một ngôn ngữ đuợc lụa chọn nhiều cho việc lập trình hệ thống
và điều khiển.
Giao diện LPT thực hiện giao tiếp trực tiếp qua các thanh ghi do đó khi thực