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
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Bộ Môn Điện Tử Viễn Thông
Trang 21 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
Trang 3
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ểnthiết bị ngoại vi qua cổng song song (cổng LPT)
Trang 4 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ềnhạ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ậycũng có những ứng dụng đòi hỏi phải truyền trên khoảng cách xa hơn Trongtrường hợp đó ta phải nghĩ ngay đến khả năng ghép nối khác (như ghép nối qua
Trang 51.1 Các ph ương pháp giao tiếp:
a) Định nghĩa cổng song song:
- 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ủaloại giao diện này là dựng để giao tiếp với mỏy in, modems, keyboards và mànhỡ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ềnmột bớt một ở một thời điểm(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à đườngInput để đạt giao tiếp với tốc độ cao với mỏy scaner,thiết bị và cỏc thiết bị khỏcgửi dữ liệu tới PC
B) Giao tiếp qua cổng Print ( Cổng 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ệugiữa máy tính và máy in Khác với cách giao tiếp qua Port Com, ở cáchgiao 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 8châ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íchvơi mức TTL Hơn nữa, người lập trình có thể điều khiển cho phép hoặckhông cho phép các tín hiệu tạo Interrupt từ ngõ vào nên việc giao tiếp đơngiản và dễ dàng Tuy nhiên, giao tiếp với mức logic TTL nên khoảng cáchtruyền bị hạn chế so với cách truyền qua Port Com, đồng thời cáp truyềncũng phức tạp hơn Đó là nhược điểm của cách giao tiếp này
Trang 6Cæ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à CPUdù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ạigiao 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ítmộ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ềumáy tính mới hơn, 8 đường ra có thể thực hiện chức năng như là đường Input để đạtgiao 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ớiPC
- 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ứcIRQ (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:
Trang 73BCh, 3BDh, 3EEh
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 5thanh ghi tại địa chỉ Base address + 3 tới Base address + 7, còn ECP thêm 3 thanh ghitạ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 bytehoặ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ùngbở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ácthiế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 songsong 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ổngsong 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
Trang 8II 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épnối với máy in Sơ đồ ghép nối song song như hình sau:
Trang 9- 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:
Trang 10+ 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êucầ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
+ 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
-Với số lượng đường dẫn nhiều, một số phộp thử trở nờn đặc biệt đơn giản Điểmđỏng chỳ ý là khi tiến hành ghộp nối cổng song song cần hết sức thận trọng Do cỏcđường dẫn tương thớch TTL khụng được bảo vệ chống quỏ tải, nờn khi tiến hành ghộpnối ta cần chứ ý tới những quy tắc an toàn sau đõy:
- Thiết bị chỉ được phộp đấu nối với cổng song song khi mỏy tớnh ở trạng thỏi ngắtđiện
-Cỏc lối ra khụng được phộp ngắn mạch hoặc đấu nối với cỏc lối ra khỏc và cỏc lối
ra khụng được phộp nối với cỏc nguồn tớn hiệu điện ỏp khụng biết rừ thụng số
- 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.
Trang 11Cổ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ầnlượt như sau:
Đị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, địachỉ 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:
Trang 12Đị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:
Trang 13Thanh ghi điều khiển máy in:
- - 15
-13 12
10 11
Chân số
X X
SELE CT
PAPER EMPTY
BU SY
Tín hiệu máy
in
0 1 2 3
4 5
6 7
Thứ tự bít
- - 15
-13 12
10 11
Chân số
X X
SELE CT
PAPER EMPTY
BU SY
Tín hiệu máy
in
0 1 2 3
4 5
6 7
Thứ tự bít
Trang 14x: 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
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
SELECTIN INIT AUTOFEEDSTROBE
1 14
16 17
-
- Chân số
-IR
Q Ena ble
DI R X X
Tín hiệu máy
in
0 1
2 3
4 5
6 7 Thứ tự bít
Trang 15trê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 đặtsẵ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 saithì 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ư:
PAGE DOWN KEY
Đố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:
Trang 17Hì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ácmá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 đượccấ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ềmdù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ủacổ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ậccao 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 tuyrằng tốc độ truy nhập có thấp hơn đôi chút
Trang 18Trao đổ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 songsong cú thể được trao đổi Sau đú sẽ quyết định đọc dữ liệu trong thanh ghinà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ổngsong 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:
Trang 19- 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:
Trang 20- 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:
Trang 212.4.2 sơ đồ truyền bằng cổng hồng ngoại thông qua LPT
Trang 22+>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:
Trang 23Sơ đồ nguyên lýCode viết bằng ngôn ngữ C
/*dung led 7 thanh cathode chung (a la LSB, dp la MSB)*/
Trang 24• 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
Trang 25Bả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ệuqua 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ùngkhô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