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

Bài giảng môn điện tử viễn thông - Tìm hiểu về cổng LPT pps

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 (744.64 KB, 25 trang )

KHOA CÔNG NGHỆ THÔNG TIN
Bộ Môn Điện Tử Viễn Thông
&
Báo Cáo Kết Quả Nghiên Cứu
LỚP : Lập trình chuyên dụng trong ĐTVT-2-10 (N04)
Giảng viên: NGÔ THỊ VINH
Thái nguyên 2-2011
1
Môn :
lẬP TRÌNH CHUYÊN DỤNG TRONG ĐTVT
Chủ đề:
Tìm hiểu về cổng LPT-Line Printer Terminal
Các thành viên trong nhóm
1. Nguyễn Chung Lực ĐTVT-K8B (nhóm trưởng)
2. Thân Văn Khương ĐTVT-K8B
3. Lê Văn Tiến ĐTVT-K8B
4. Nguyễn Thị Hường ĐTVT-K8A
5. Mạc Văn Dũng ĐTVT-K8B

2
1. Mục Đích chung
- Trong thời đại công nghiệp hóa hiện đại hóa hiện nay, máy tính đã thiết bị phổ
biến được sử dụng với rất nhiều những lĩnh vực với những mục đích khác nhau
(soạn thảo văn bản, tính toán, thiết kế, giả lập hoạt động của một số vấn đề thực tế,
đo đạc, điều khiển các thiết bị…). Máy tính có ứng dụng nhiều như vậy do nó có
thể ghép nối với các thiết bị ngoại vi (máy in, modem, một số mạch điều khiển…).
Các thiết bị ngoại có thể kết nối với máy tính thông qua cổng nối tiếp (Serial port),
cổng song song (Paralell port), cổng RS-232, cổng COM, cổng USB.
Trong chủ đề này, ta chỉ nghiên cứu quá trình xuất nhập,và ứng dụng điều khiển
thiết bị ngoại vi qua cổng song song (cổng LPT).
3


Phần I:Tổng Quan Về LPT:
• MỨC ĐIỆN ÁP CỔNG

- Đều sử dụng mức điện áp tương thích TTL(Transiztor - Transiztor - Logic)
0v → +5v trong đó:
+> 0v là mức logic LOW.
+> 2v → +5v là mức logic HIGH.

- Vì vậy khi ghép nối với cổng này ta chỉ ghép nối những thiết bị ngoại vi có mức
điện áp tương thích TTL. Nếu thiết bị ngoại vi không có mức điện áp tương thích
TTL thì ta áp dụng biện pháp ghép mức hoặc ghép phải cách ly qua bộ ghép nối
quang.
• KHOẢNG CÁCH GHÉP NỐI
- Khoảng cách cực đại giữa thiết bị ngoại vi và máy tính ghép qua cổng song
song thường bị hạn chế
- Lý do là hiện tượng cảm ứng giữa các đường dẫn và điện dung kí sinh hình
thành giữa các đường dẫn có thể làm biến dạng tín hiệu. Khoảng cách giới hạn cực
đại là 8m .Thôngthường chỉ 1,5 đến 2m vì lí do an toàn dữ liệu.
• TỐC ĐỘ TRUYỀN DỮ LIỆU
- Tốc độ truyền dữ liệu qua cổng song song phụ thuộc vào phần cứng được sử
dụng. Trên lý thuyết tốc độ có thể đạt đến 1Mb/s nhưng với khoảng cách truyền
hạn chế trong phạm vi 1m.

- Với nhiều mục đích sử dụng thì khoảng cách này hoàn toàn thỏa đáng, tuy vậy
cũng có những ứng dụng đòi hỏi phải truyền trên khoảng cách xa hơn. Trong
trường hợp đó ta phải nghĩ ngay đến khả năng ghép nối khác (như ghép nối qua
cổng RS232).
4
1.1. Các ph ng pháp giao tiếp:
a) nh ngha cng song song:

- Cng song song( Parallel Port) l tp hp cỏc ng tớn hiu m vi x lớ hoc l
CPU dựng trao i d liu vi cỏc thit b, thnh phn khỏc. in hỡnh nht ca
loi giao din ny l dựng giao tip vi mỏy in, modems, keyboards v mn
hỡnh, Cng song song truyn nhiu bớt mt ln, trong khi cng ni tip ch truyn
mt bớt mt mt thi im(cú th truyn 2 chiu cựng mt thi im).
- Cng song song ca PC ban u cú 8 ng ra, 5 ng vo v 4 ng vo
ra. Nhng ng ny l giao tip vi nhiu dng ca cỏc thit b ngoi vi.
nhiu mỏy tớnh mi hn, 8 ng ra cú th thc hin chc nng nh l ng
Input t giao tip vi tc cao vi mỏy scaner,thit b v cỏc thit b khỏc
gi d liu ti PC.
B) Giao tip qua cng Print ( Cng mỏy in):
- IBM PC cho phép sử dụng đến 3 cổng song song có tên là LP1,
LP2,LPT3 và LP4. Kiểu giao tiếp song song đợc dùng để truyền dữ liệu
giữa máy tính và máy in. Khác với cách giao tiếp qua Port Com, ở cách
giao tiếp này dữ liệu đợc truyền song song cùng một lúc 8 bit. Vì thế nó có
thể đạt tốc độ cao. Connector của Port này có 25 chân bao gồm 8
chân dữ liệu và các đng tín hiệu bắt tay (Handshaking). Tất cả các
đờng Data và tín hiệu điều khiển đều ở mức logic hoàn toàn tơng thích
vơi mức TTL. Hơn nữa, ngi lập trình có thể điều khiển cho phép hoặc
không cho phép các tín hiệu tạo Interrupt từ ngõ vào nên việc giao tiếp đơn
giản và dễ dàng. Tuy nhiên, giao tiếp với mức logic TTL nên khoảng cách
truyền bị hạn chế so với cách truyền qua Port Com, đồng thời cáp truyền
cũng phức tạp hơn. Đó là nhc điểm của cách giao tiếp này.
5
Cæng m¸y in LPT - Line Printer Terminal
1.2. Sơ đồ giao tiếp qua cổng máy in
+ Khái niệm: Cổng song song, cổng cái, cổng máy in - LPT viết tắt từ Line Printer
Terminal.
-Cổng song song( Parallel Port) là tập hợp các đường tín hiệu mà vi xử lí hoặc là CPU
dùng để trao đổi dữ liệu với các thiết bị, thành phần khác. Điển hình nhất của loại

giao diện này là dùng để giao tiếp với máy in, modems, keyboards và màn hình,
Cổng song song truyền nhiều bít một lần, trong khi cổng nối tiếp chỉ truyền một bít
một ở một thời điểm (nhưng có thể truyền 2 chiều ở cùng một thời điểm).
- Cổng song song của PC ban đầu có 8 đường ra, 5 đường vào và 4 đường vào ra.
Những đường này là đủ để giao tiếp với nhiều dạng của các thiết bị ngoại vi. Ở nhiều
máy tính mới hơn, 8 đường ra có thể thực hiện chức năng như là đường Input để đạt
giao tiếp với tốc độ cao với máy scaner, thiết bị và các thiết bị khác gửi dữ liệu tới
PC.
- Cổng song song đã được thiết kế như là một cổng máy in.
- Cổng song song dùng nhiều tài nguyên của hệ thống. Tất cả các cổng dùng một
dãy địa chỉ, cho dù số lượng và vị trí của các địa chỉ thay đổi. Nhiều cổng có một mức
IRQ (Interrupt request) xác định, và các cổng ECP có thể có một kênh DMA xác
định. Các tài nguyên dành cho một cổng không thể dùng cho các thành phần khác của
hệ thống, các cổng song song khác.
+ Địa chỉ (Addressing)
Cổng song song chuẩn dùng ba địa chỉ liền nhau, thường là một trong 3 dãy sau:
6
3BCh, 3BDh, 3EEh
378h, 379h, 37Ah
278h, 279h, 27Ah
- Địa chỉ đầu tiên trong dãy là địa chỉ gốc (base address) của Port thương được gọi
là địa chỉ thanh ghi Dữ liệu (Data register) hoặc là địa chỉ của cổng.
Địa chỉ thứ 2 là địa chỉ của thanh ghi trạng thái (Status register).
Địa chỉ thứ 3 là địa chỉ của thanh ghi Điều khiển (Control register).
Các cổng EPP và cổng ECP dành một số địa chỉ bổ sung cho mỗi cổng. EPP thêm 5
thanh ghi tại địa chỉ Base address + 3 tới Base address + 7, còn ECP thêm 3 thanh ghi
tại địa chỉ base address + 400h tới base address + 402h.
+Các ngắt (Interrupts)
-Phần lớn các cổng song song có khả năng phát hiện tín hiệu ngắt từ thiết bị ngoại
vi. Thiết bị ngoại vi có thể dùng ngắt để thông báo rằng đã sẵn sàng để nhận byte

hoặc có một byte để truyền.
- Để dùng ngắt, cổng song song phải có một mức yêu cầu ngắt (Interrupt request -
IRQ) xác định
-Theo qui ước LPT1 dùng IRQ7 và LPT2 dùng IRQ5. Thế nhưng IRQ5 được dùng
bởi nhiều card âm thanh, và bởi vì các mức IRQ không được dùng bởi các thành phần
hệ thống nào rất là hiếm trong hệ thống, thậm chí IRQ7 có thể được dành cho các
thiết bị khác. Một vài cổng cho phép chọn các mức IRQ khác 2 mức trên.
-Rất nhiều driver máy in hoặc nhiều ứng dụng và thiết bị khác truy nhập cổng song
song không yêu cầu ngắt cổng song song. Nếu không chọn mức báo ngắt cho cổng
song song thì cổng này vẫn hoạt động trong hầu hết các trường hợp rất là hiệu quả và
bạn có thể dành mức báo ngắt IRQ cho công việc khác.
Công dụng: Thường dành riêng cho cắm máy in. Tuy nhiên đối với những máy in thế
hệ mới hầu hết cắm vào cổng USB thay vì cổng COM hay LPT.
Nhận dạng: Là cổng dài nhất trên mainboard.
7
II. Cấu tạo và nguyên lý cổng LPT
2.1. Sơ đồ,chức năng của các chân:
-Cổng LPT là loại cổng rất dễ sử dụng.Thông thường loại cổng này chỉ dùng để ghép
nối với máy in. Sơ đồ ghép nối song song như hình sau:
8
- Cổng LPT là loại cổng song song gồm có 4 đường điều khiển, 5 đường trạng thái
và 8 đường dữ liệu. Các chân trong cổng như sau:
9
+ Chân số 1(STROBE): Chân ra, khi máy tính đa tín hiệu này ra thì nó báo cho máy in
đọc dữ liệu vào để in. Xung tác động ở mức thấp.
+ Chân 2 - 9 (DATA): Các chân ra dữ liệu của máy tính.
+ Chân 10 ( ACK): Chân vào để báo cho máy tính biết là dữ liệu đã nhận đ ợc và yêu
cầu máy tính gởi dữ liệu tiếp theo.
+ Chân 11 (BUSY): Chân vào để báo cho máy tính biết là máy in đang bận không thể
nhận tiếp dữ liệu từ máy tính gởi ra. Chân này tác động ở mức cao.

+ Chân 12 (PE): Chân vào để báo cho máy tính biết là máy in hết giấy. Chân này tác
động ở mức cao.
+ Chân 13 (SLCT): Chân vào để báo máy tính đang ở trạng thái lựa chọn.
Chân này tác động ơ mức cao.
+ Chân 14 (AUTOFEED): Chân ra tác động ở mức thấp. Khi tác động thì máy tự động
dịch thêm một dòng sau khi in.
+ Chân 15 (ERROR): Chân vào tác động mức thấp để báo máy in đang bị lỗi.
+ Chân 16 (INIT): Chân ra tác động mức thấp để đặt lại máy in.
+ Chân 17 (SLCTIN): Chân ra tác động mức thấp để báo máy in đa dữ liệu vào.
+ Chân 18 - 25 (GND): Là chân nối mass
-Vi s lng ng dn nhiu, mt s phộp th tr nờn c bit n gin. im
ỏng chỳ ý l khi tin hnh ghộp ni cng song song cn ht sc thn trng. Do cỏc
ng dn tng thớch TTL khụng c bo v chng quỏ ti, nờn khi tin hnh ghộp
ni ta cn ch ý ti nhng quy tc an ton sau õy:

- Thit b ch c phộp u ni vi cng song song khi mỏy tớnh trng thỏi ngt
in.
-Cỏc li ra khụng c phộp ngn mch hoc u ni vi cỏc li ra khỏc v cỏc li
ra khụng c phộp ni vi cỏc ngun tớn hiu in ỏp khụng bit rừ thụng s.
10
- Các lối vào chỉ được phép tiếp nhận điện áp giữa 0V và 5V.
2.2. Địa chỉ các thanh ghi.
Cổng LPT có ba thanh ghi có thể truyền dữ liệu và điều khiển máy in. Địa chỉ cơ sở
của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4 được lưu trữ
trong vùng dữ liệu của BIOS.
- Thanh ghi dữ liệu được định vị ở offset 00h.
- Thanh ghi trạng thái ở 01h.
- Thanh ghi điều khiển ở 02h.
Thông thường, địa chỉ cơ sở của LPT1 là 378h. Do đó, địa chỉ của các thanh nghi lần
lượt như sau:


Thanh ghi dữ liệu 378h
Thanh ghi trạng thái 379h
Thanh ghi điều khiển 37Ah
11
Địa chỉ cơ sở của cổng LPT2:
Với các địa chỉ LPT3, LPT4 đều tương tự. Tuy nhiên trong một số trường hợp, địa
chỉ của cổng LPT có thể khác do quá trình khởi động của BIOS. BIOS sẽ lưu trữ các
địa chỉ này như sau:
Địa chỉ Chức năng
0000h:0408h Địa chỉ cơ sở của LPT1
0000h:040Ah Địa chỉ cơ sở của LPT2
0000h:040Ch Địa chỉ cơ sở của LPT3
Định dạng các thanh ghi như sau:
Thanh ghi dữ liệu 278h
Thanh ghi trạng thái 279h
Thanh ghi điều khiển 27Ah
12
Thứ tự bít 7 6 5 4 3 2 1 0
Tín hiệu máy in D7 D6 D5 D4 D3 D2 D1 D0
Chân số 9 8 7 6 5 4 3 2
Thanh ghi trạng thái máy in (chỉ đọc):
1513121011Chân số
XX
SELE
CT
PAPER
EMPTY
BU
SY

Tín hiệu máy
in
01234567Thứ tự bít
ACK
ERROR
IRQ
1513121011Chân số
XX
SELE
CT
PAPER
EMPTY
BU
SY
Tín hiệu máy
in
01234567Thứ tự bít
13
Thanh ghi điều khiển máy in:
x: không sử dụng
IRQ Enable: yêu cầu ngắt cứng; 1 = cho phép; 0 = không cho phép
14
SELECTIN
INIT
AUTOFEED
STROBE
1141617 Chân số
IR
Q
Ena

ble
DI
R
XX
Tín hiệu máy
in
01234567Thứ tự bít
Chú ý rằng chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi trạng thái,
các bit , SELECTIN , AUTUFEED và STROBE được đưa qua cổng đảo trước khi đưa
ra các chân của cổng máy in.
- Thông thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm hơn
PC nhiều nên các đường ACK, BUSY
STR được sử dụng cho kỹ thuật bắt tay. Khởi đầu, PC đặt dữ liệu lên bus sau đó kích
hoạt đường STR xuống mức thấp để thông tin cho máy in biết rằng dữ liệu đã ổn định
trên bus. Khi máy in xử lý xong dữ liệu, nó sẽ trả lại tín hiệu ACK xuống mức thấp để
ghi nhận. PC đợi cho đến khi đường BUSY từ máy in xuống thấp (máy in không bận)
thì sẽ đưa tiếp dữ liệu lên bus.
2.3.Thiết lập cổng LPT trên BIOS
Như chúng ta đã biết,các máy tính được nhà sản xuất đưa vào 4 công LPT là
:LPT1,LPT2,LPT3,LPT4. Nhưng do yêu cầu cần phải thiết kế thật nhỏ gọn nên người thiết
kế chỉ đưa ra 1 cổng ra ngoài để sử dụng còn 3 cổng còn lại được thiết kế trong Mainboard,
vì vậy việc thiết lập địa chỉ cổng LPT trong BIOS cũng đã được các nhà sản suất cài đặt
sẵn(mặc định là đưa cổng LPT1 có địa chỉ là 378h ra sử dụng).Vậy nếu chúng ta thiết lập sai
thì việc truy xuất dữ liệu sẽ không chính xác và những lập trình ứng dụng sẽ không thực hiện
được.Sau đây là cách thiết lập địa chỉ cổng LPT trên BIOS:
Bước 1: Chúng ta khởi động máy tính Bạn sẽ thấy trên màn hình sẽ có câu thông báo gợiý
cho bạn bấm phím nào để vàođược CMOS như:
Press <F2> to enter BIOS setup
Đối với một số máy cũ hay máy bộ, có thể phải nhấn tổ hợp phím khác như:
• CTRL + ALT + ESC

• CTRL + ALT + INS
• CTRL + ALT + ENTER
• CTRL + ALT + S
• PAGE UP KEY
• PAGE DOWN KEY
15
Đối với máy tính thông thường thì khi vừa bật máy bạn sẽ vào CMOS bằng cách bấm
vào một trong những phím sau:
• F1
• F2
• ESC
• DEL hay Delete
• F10
• BIOS c

Hình1.10
Bước 2: Chúng ta trỏ đến Onboard Parallel Port(Cổng song song), để thiết lập địa chỉ
cổng LPT cho máy. Như đã nhìn thấy trên hình địa chỉ cổng LPT trên máy tính đã
được thiết lập sẵn là 378/IRQ7-thường là cổng LPT1(tùy vào từng loại máy).
16
Hình 1.11
Bước 3: Trên hình là các địa chỉ của các cổng LPT trên máy tính, chúng ta sẽ phải
chọn địa chỉ cổng mà máy tính đã thiết lập sẵn từ ban đầu. Ở loại máy tính mà chúng
ta đang nghiên cứu trên hình thì dòng máy này chỉ có 3 cổng LPT nhưng thường các
máy tính là có 4 cổng( 1 cổng được đưa ra ngoài để sử dụng còn 3 cổng còn lại được
cấu tạo trong Mainboard).
2.4.Kỹ thuật lập trình ghép nối qua cổng LPT:
- Đây là nhiệm vụ mà bất kỳ khi nào muốn viết mới hoặc sửa đổi một phần mềm
dùng cho mạch ghép nối với cổng song song đều phải nghĩ cách giải quyết. Câu hỏi
đặt ra là làm thế nào để đọc được các tín hiệu điện trên các đường dẫn tín hiệu của

cổng song song hoặc để xuất dữ liệu ra các đường dẫn này.
- Việc truy nhập trực tiếp lên các giao diện của máy tính PC, cụ thể là lên các
đường dẫn riêng lẻ được tiến hành thuận lợi nhất là bằng hợp ngữ, Các ngôn ngữ bậc
cao như C cũng có những lệnh đơn giản để thực hiện việc truy nhập lên các cổng tuy
rằng tốc độ truy nhập có thấp hơn đôi chút.
17
Trao đổi dữ liệu qua cổng LPT
 Trước hết ta cần biết địa chỉ của các cổng mà qua đó các giao diện song
song có thể được trao đổi. Sau đó sẽ quyết định đọc dữ liệu trong thanh ghi
nào hoặc xuất dữ liệu ra thanh ghi nào ?

 Turbo C++ cung cÊp 2 hµm cã thÓ dïng ®Ó trao ®æi d÷ liÖu qua cæng
song song:

Hµm nhËp d÷ liÖu theo byte
unsigned char inportb(int portadd)
int inp(unsigned portadd)
Hµm xuÊt d÷ liÖu theo byte
void outportb(int portadd, unsigned char giatri)
int outp(unsigned portadd, int giatri)
C¸c hµm inportb vµ outportb n»m trong th viÖn <dos.h>. C¸c hµm inp
vµ outp n»m trong th viÖn <conio.h>.
• §Ó xuÊt d÷ liÖu ra qua 8 ®êng dÉn d÷ liÖu:
outportb(0x378,d÷ liÖu); //d÷ liÖu xuÊt ra lµ c¸c sè nguyªn tõ 0 tíi 255.
• §Ó xuÊt d÷ liÖu ra qua 4 ®êng dÉn ®iÒu khiÓn:
outportb(0x37A, dl ^ 11); //d÷ liÖu lµ c¸c sè nguyªn tõ 0 ®Õn 15
• §Ó nhËp d÷ liÖu vµo qua 4 ®êng dÉn ®iÒu khiÓn:
outportb(0x37A, 15 ^ 11);
delay(1);
dl = inportb(0x37A) &15^ 11;

• §Ó nhËp d÷ liÖu vµo qua 5 ®êng dÉn tr¹ng th¸i:
dl = inportb(0x379) & 248 ^ 128;
18
2.4.1 Ứng dụng giao tiếp với máy tính qua LPT
- Quá trình giao tiếp với cổng song song dùng 2 chế độ: chế độ chuẩn SPP và chế
độ mở rộng. Việc giao tiếp ở chế độ chuẩn mô tả như sau.Sơ đồ chân kết nối mô tả
như sau:

19
- Ngoài ra, việc kết nối giữa 2 máy tính sử dụng cổng song song có thể dùng chế độ
mở rộng, chế độ này cho phép giao tiếp với tốc độ cao hơn.Sơ đồ chân kết nối mô tả
như sau:
20
2.4.2. sơ đồ truyền bằng cổng hồng ngoại thông qua LPT
1.3.3. ứng dụng do nhóm nghiên cứu
Yêu cầu: lập trình bằng ngôn ngữ C điều khiển led 7 thanh hiển thị số từ 0 đến 9.
chuẩn bị:
+>1 led 7 đoạn cathode chung
21
+>8 điện trở 330 ohm
+> cáp nối usb=> LPT (cho laptop không có cổng LPT)
Thiết kế mạch mô phỏng:
22
Sơ đồ nguyên lý
Code viết bằng ngôn ngữ C
/*dung led 7 thanh cathode chung (a la LSB, dp la MSB)*/
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#define portadd 0x378

void main()
{
outportb(portadd,0x3F); //hien so 0
delay(1000);
outportb(portadd,0x6); //hien so 1
delay(1000);
outportb(portadd,0x5B); //hien so 2
delay(1000);
outportb(portadd,0x4F); //hien so 3
delay(1000);
outportb(portadd,0x66); //hien so 4
delay(1000);
outportb(portadd,0x6D); //hien so 5
delay(1000);
outportb(portadd,0x7D); //hien so 6
delay(1000);
outportb(portadd,0x7); //hien so 7
delay(1000);
outportb(portadd,0x7F); //hien so 8
23
delay(1000);
outportb(portadd,0x6F); //hien so 9
delay(1000);
outportb(portadd,0); // Xoa du dieu cong LPT
}
• Trong ví dụ ta dùng led 7 đoạn cathode chung(a là LSB, dp là MSB)
LED cathode chung
- Đối với led cathode chung thì cổng COM luôn ở mức 0. Muốn sáng led thì tương
ứng các chân tương ứng từ a =>f,dp sẽ ở mức logic 1
24

Bảng mã của led cathode chung(a là LSB, dp là MSB)
Kết Luận:
Cổng LPT (paralell port) là cổng song song dễ sử dụng. Trong 25 chân tín hiệu, cổng
có 8 chân dữ liệu, 4 chân điều khiển, 4 chân trạng thái. Nên việc xuất nhập dữ liệu
qua cổng trở nên dễ dàng. Chính vì vậy, nó có thể sử dụng cả cho những người dùng
không chuyên nghiệp.
Tuy nhiên, tốc độ truyền của cổng không cao và khoảng cách truyền không lớn.
Nên cổng chỉ có thể giao tiếp với các thiết bị ngoại vi ở gần.Và ngày nay,chúng ta sử
dụng giao tiếp thông qua cổng USB-nhanh hơn và tiện dụng hơn.
Do trình độ và thời gian nghiên cứu tìm hiểu có hạn,chúng em rất mong được sự góp
ý của thầy cô và các bạn để bài Seminar đạt chất lượng tốt hơn!
Xin chân thành cảm ơn!

Thái Nguyên 2/2011
25

×