TÌM HIỂU VỀ CỔNG SONG SONG _CHƯƠNG TRÌNH CHAT QUA CỔNG LPT
Trang 2MỤC LỤC Phần I: TÌM HIỂU VỀ CỔNG SONG SONG
1 Các loại cổng song song
2 Khoảng cách và tốc độ
3 Các cổng và các thanh ghi
4 Các chế độ hoạt động
5 Các ngắt
6 Các kênh truy nhập bộ nhớ trực tiếp (DMA chanels)
Phần II: CHƯƠNG TRÌNH CHAT QUA CỔNG LPT
1 Mô tả bài toán
2 Các yêu cầu của hệ thống
3 Nguyên tắc kiểm tra kết nối
4 Nguyên tắc truyền dữ liệu
5 Một số chức năng của chương trình
Trang 3Phần I: TÌM HIỂU VỀ CỔNG SONG SONG
1 Các loại cổng song song
Cổng song song có 2 loại:
+ Cổng có ổ cắm 36 chân + Cổng có ổ cắm 25 chân Ngày nay, loại ổ cắm 36 chân không còn được sử dụng, hầu hết các máy tính PC đều trang bị cổng song song 25 chân nên ta chỉ cần quan tâm đến loại 25 chân
Cổng LPT loại 25 chân Sau đây là chức năng của các đương dẫn tín hiệu:
+ Strobe (1): Với một mức logic thấp ở chân này, máy tính thông báo cho máy in
biết có một byte đang sẵn sàng trên các đường dẫn tín hiệu để được truyền
+D0 đến D7: Các đường dẫn dữ liệu.
+ Acknowledge: với một mức logic thấp ở chân này, máy in thông báo cho máy
tính biết là đã nhận được kí tự vừa gửi và có thể tiếp tục nhận
+ Busy (bận – 11): máy in gửi đến chân này mức logic cao trong khi đang đón
nhận hoặc in ra dữ liệu để thông báo cho máy tính biết là các bộ đệm trong máy
Trang 4tính biết là các bộ đệm trong máy tính đã bị đầy hoặc máy in trong trạn thái Off-line
+ Paper empty (hết giấy – 12): Mức cao ở chân này có nghĩa là giấy đã dùng hết + Select (13): Một mức cao ở chân này, có nghĩa là máy in đang trong trạng thái
kích hoạt (On-line)
+ Auto Linefeed (tự nạp dòng): Có khi còn gọi là Auto Feed Bằng một mức thấp ở
chân này máy tính PC nhắc máy in tự động nạp một dòng mới mỗi khi kết thúc một dòng
+ Error (có lỗi): Bằng một mức thấp ở chân này, máy in thông báo cho máy tính là
đã xuất hiện một lỗi, chẳng hạn kẹt giấy hoặc máy in đang trong trạng thái Off-Line
+ Reset (đặt lại): Bằng một mức thấp ở chân này, máy in được đặt lại trạng thái
được xác định lúc ban đầu
+Select Input: bằng một mức thấp ở chân này, máy in được lựa chọn bởi máy tính.
Qua cách mô tả chức năng của từng tín hiệu riêng lẻ ta có thể nhận thấy các đương dẫn dữ liệu có thể chia thành 3 nhóm:
- Các đường dẫn tín hiệu, xuất ra từ máy tính PC và điều khiển máy tính, được gọi
là các đường dẫn điều khiển
- Các đường dẫn tín hiệu, đưa các thông tin thông báo ngược lại từ máy in về máy tính, được gọi là các đường dẫn trạng thái
- Đường dẫn dữ liệu, truyền các bit riêng lẻ của các ký tự cần in
-> Từ cách mô tả các tín hiệu và mức tín hiệu ta có thể nhận thấy là: các tín hiệu Acknowledge, Auto Linefeed, Error, Reset và Select Input kích hoạt ở mức thấp Thông qua chức năng của các chân này ta cũng hình dung được điều khiển cổng máy in
Đáng chú ý là 8 đường dẫn song song đều được dùng để chuyển dữ liệu từ máy tính sang máy in Trong những trường hợp này, khi chuyển sang các ứng dụng để
Trang 5thực hiện nhiệm vụ đo lường ta phải chuyển dữ liệu từ mạch ngọai vi vào máy tính
để thu thập và xử lý
2 Khoảng cách và tốc độ
Khoảng cách cực đại giữa cổng song song máy tính PC và thiết bị ngọai vi bị hạn chế vì điện dung kí sinh và hiện tượng cảm ứng giữa các đường dẫn có thể làm biến dạn tín hiệu Khoảng cách giới hạn là 8m, thông thường chỉ cỡ 1,5 – 2 m Khi khoảng cách ghép nối trên 3m nên xoắn các đường dây tín hiệu với đường nối đất theo kiểu cặp dây xoắn hoặc dùng loại cáp dẹt nhiều sợi trong đó mỗi đường dẫn
dữ liệu điều nằm giữa hai đường nối mass
Tốc độ truyền dữ liệu qua cổng song song phụ thuộc vào linh kiện phần cứng được sử dụng Trên lý thuyết tốc độ truyền đạt giá trị 1 Mbit/s, nhưng với khoảng cách truyền bị 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 Nếu cần truyền trên khoảng cách xa hơn, ta nên nghĩ đến khả năng truyền qua cổng nối tiếp hoặc USB Một điểm cần lưu ý là: việc tăng khoảng cách truyền dữ liệu qua cổng song song không chỉ làm tăng khả năng gây lỗi đối với đường dữ liệu được truyền mà còn làm tăng chi phí của đường dẫn
3 Các cổng và các thanh ghi
Cổng song song 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 Thông thường, địa chỉ cơ sở của LPT1 là 378h, LPT2 là 278h, do đó địa chỉ của thanh ghi trạng thái là 379h hoặc 279h và địa chỉ thanh ghi điều khiển là 37Ah hoặc 27Ah
Trang 6Các địa chỉ này ta có thể đặt lại trong hệ thống.
Sơ đồ các chân và các bit của thanh ghi
Thanh ghi dữ liệu Thanh ghi trạng thái Thanh ghi Điều khiển Chân 9: D7 Chân 10: S6 Chân 1: C0
Chân 8: D6 Chân 11: S7 Chân 14: C1
Chân 7: D5 Chân 12: S5 Chân 16: C2
Chân 6: D4 Chân 13: S4 Chân 17: C3
Chân 5: D3 Chân 15: S3
Chân 4: D2
Chân 3: D1
Chân 2: D0
4 Các chế độ hoạt động
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 Bao gồm 5 chế độ hoạt động như sau:
- Chế độ tương thích (compatibility).
- Chế độ nibble.
- Chế độ byte.
- Chế độ EPP (Enhanced Parallel Port).
- Chế độ ECP (Extended Capabilities Port).
-> 3 chế độ đầu tiên sử dụng cổng song song chuẩn (SPP – Standard Parallel Port) trong khi đó chế độ 4, 5 là chế độ mở rộng, cần thêm phần cứng để cho
phép hoạt động ở tốc độ cao hơn cụ thể như sau:
a Original( SPP): dạng chuẩn SPP - Standard Parallel Port : cổng song song
chuẩn
Trang 7Cổng song song trong các máy PC cổ điển thiết kế dựa trên một giao diện máy
in vẫn đang tồn tại là Centronic SPP có thể truyền 8 bít một lần tới thiết bị ngoại
vi, dùng giao thức giống như được dùng trong giao diện Centronic gốc SPP không
có đường nhận dữ liệu rộng 1 byte, nhưng khi truyền từ PC tới thiết bị ngoại vi, SPP có thể dùng Nibble Mode để truyền mỗi lần 4 bít Nibble Mode thì chậm nhưng đã trở thành phổ biến như là một cách để dùng cổng song song cho Input
b Dạng PS/2 ( Vào ra 2 chiều đơn giản - Simple Bidirectional)
Một sự cải tiến sớm cho cổng song song là cổng dữ liệu vào ra 2 chiều( Bidirectional Port) được đưa ra trong máy tính IBM: dạng PS/2 Cổng vào/ra cho phép một thiết bị ngoại vi truyền 8 bít một lần tới PC Nhóm PS/2 bao gồm các cổng song song có một cổng dữ liệu vào ra nhưng không hỗ trợ các mode EPP hoặc ECP( sẽ giới thiệu dưới đây)
c EPP( enhanced parallel port - cổng song song nâng cao): là cổng được phát
triển ban đầu bởi nhà sản xuất chip Intel Như một cổng dạng PS/2, các đường dữ liệu là các đường vào ra Một EPP có thể đọc hoặc ghi 1 byte dữ liệu trong một chu
kì của bus mở rộng ISA hoặc 1 micro giây, bao gồm bắt tay, trong khi với SPP hoặc PS/2 thì cần 4 chu kì Một EPP có thể chuyển đổi chiều nhanh chóng, vì thế
nó rất là hiệu quả khi dùng với đĩa hoặc là thiết bị dài và các thiết bị khác truyền
dữ liệu trong cả 2 chiều Một EPP có thể dùng thay cho SPP và một vài EPP có thể dùng thay cho cổng dạng PS/2
d ECP(Extended capabilities port - cổng có khả năng mở rộng) được đưa ra lần
đầu tiên bởi Hewlett Packard và Microsoft Giống với EPP, ECP cũng có các đường dữ liệu vào ra và có thể truyền dữ liệu ở tốc độ của bus ISA ECP có bộ đệm và hỗ trợ DMA( direc memory access – truy cập bộ nhớ trực tiếp) truyền và
Trang 8nén dữ liệu Các bộ truyền nhận kiểu ECP rất hữu ích cho printer, và các thiết bị ngoại vi khác truyền các khối dữ liệu lớn Một ECP có thể dùng như là một cổng SPP hoặc PS/2 và nhiều ECP có thể dùng thay cho cổng EPP rất tốt
5 Các ngắt
+ 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 ứng dụng và thiết bị 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à có thể dành mức báo ngắt IRQ cho công việc khác
6 Các kênh truy nhập bộ nhớ trực tiếp (DMA chanels)
DMA : direct memory access
Các cổng ECP có thể truy nhập bộ nhớ trực tiếp (DMA) đối với dữ liệu tại cổng song song Khi DMA trao đổi dữ liệu thì CPU không cần kiểm soát đường truyền và có thể làm các công việc khác vì thế trao đổi dữ liệu bằng DMA làm tăng khả năng hoạt động cho toàn bộ hệ thống Yêu cầu để dùng DMA là các cổng này phải có kênh DMA xác định, thay đổi từ 0 đến 3
Trang 9Phần II: CHƯƠNG TRÌNH CHAT QUA CỔNG LPT
1 Mô tả bài toán
+ Chương trình Chat qua cổng LPT là chương trình thực hiện Chat giữa 2 máy tính được nối với nhau qua cổng LPT (Cổng song song)
+ Các thông điệp được gửi và nhận qua cổng LPT
+ Chương trình được viết bằng ngôn ngữ Visual Basic
2 Các yêu cầu của hệ thống
+ Chương trình thực hiện giao tiếp qua cổng LPT ở chế độ EPP ( enhanced parallel port - cổng song song nâng cao)
Thiết lập chế độ EPP + Chế độ EPP được thiết lập trong BIOS Để thiết lập chế độ này bạn vào BIOS chọn “Integrated Peripherals -> Parallel Port Mode” chọn EPP (thiết lập này đối với cả 2 PC)
+ Trong chế độ EPP máy gửi muốn gửi tin thì bit điều khiển C5 phải được thiết lập là C5 = 0 Máy nhận phải thiết lập là C5 = 1
Sơ đồ dây nối giữa 2 máy tính như sau:
Trang 10chân 10 chân 1
chân 11,13,16 chân nối đất (GR)
chân nối đất (GR) chân 11,13,16
3 Nguyên tắc kiểm tra kết nối
+ Như ta đã biết thanh ghi trạng thái (379H) là thanh ghi chỉ đọc Theo cách nối dây như trên, các chân điểu khiển được nối với các chân trạng thái, khi PC1 thay đổi giá trị thanh ghi điều khiển thì ở PC2 thanh ghi trạng thái sẽ thay đổi Dựa vào sự thay đổi của thanh ghi trạng thái mà ta có thể biết được
có yêu cầu kết nối đến hay không
+ Tương tự như thế khi PC2 nhận được yêu cầu kết nối của PC1 cũng sẽ thay đổi giá trị thanh ghi điều khiển làm thay đổi giá trị của thanh ghi trạng thái của PC1
+ giao thức kết nối được mô tả như sau:
Trang 114 Nguyên tắc truyền dữ liệu
+ Như đã nói ở trên Chế độ EPP có thể truyền và nhận 8 Bit một lúc Theo
đó ta sử dụng thanh ghi dữ liệu (8bit) để truyền tín hiệu
+ Để thực hiện ở chế độ EPP thì máy gửi dữ liệu phải thiết lập giá trị của bit C5 = 0
+ Cũng như nguyên tắc kiểm tra kết nối, chương trình sẽ đọc giá trị của thanh ghi trạng thái để đưa ra hành động trao đổi dữ liệu
+ Ban đầu máy cần gửi dữ liệu thay đổi giá trị của thanh ghi điểu khiển làm giá trị của thanh ghi trạng thái ở máy nhận bị thay đổi (hỏi xem máy nhận có sẵn sàng nhận dữ liệu hay không?) máy nhận sẽ thay đổi giá trị của thanh ghi điều khiển để trả lời máy gửi là có thể nhận được dữ liệu hay không + Khi máy gửi nhận được tín hiệu trả lời từ máy nhận là có thể nhận dữ liệu, máy gửi bắt đầu truyền dữ liệu qua thanh ghi dữ liệu (378H)
+ Nguyên tắc của việc truyền dữ liệu qua thanh ghi 378H như sau:
Trang 12Máy gửi sẽ gửi đi từng kí tự một và máy nhận cũng nhận từng kí tự và ghép
là thành chuỗi cần gửi Ban đầu máy gửi gửi đi kí tự đầu tiên và chờ máy nhận trả lời là đã nhận được thì mới gửi kí tự tiếp theo (đọc ở thanh ghi trạng thái)
+ Khi máy gửi gửi hết chuỗi cần gửi thì sẽ gửi ra giá trị cuối cùng là 255 (Dec) Khi máy nhận nhận được giá trị 255 thì kết thúc nhận dữ liệu và hiển thị chuỗi vừa nhận được
+ Cách truyền dữ liệu: như ta đã biết, thanh ghi dữ liệu là thanh ghi 8 bit, vậy ta có thể thay đổi giá trị từ 0 đến 255
+ Để gửi 1 kí tự, ta sử dụng bảng mã ASCII, tìm xem kí tự đó ở vị trí bao nhiêu và gửi số vị trí đó Bên máy nhận, khi nhận được 1 giá trị (0 - 255) sẽ tìm trong bảng mã ASCII xem ở vị trí đó là kí tự gì và ghép kí tự đó vào chuỗi nhận
+ Do ta chỉ gửi được từ 0 đến 255 mà một số kí tự tiếng việt có giá trị ngoài khoảng đó nên ta thực hiện mã hóa lại Thay kí tự tiếng việt vào vị trí của những kí tự không dùng đến trong khoảng 0 – 255
+ giao thức truyền dữ liệu được mô tả như sau:
Trang 13giao thức truyền dữ liệu
Trang 145 Một số chức năng của chương trình
- Chương trình có thể kiểm tra kết nối trước khi vào Chat
- Chương trình Chat có một số chức năng như:
+ Chọn màu chữ, kiểu chữ, cỡ chữ…
+ Chọn biểu tượng mặt cười, Buzz…
+ Chọn hình nền Chat và hình nền khung Chat
+ Lưu và đọc lại nội dung Chat
+ Giới thiệu về chương trình và nhóm 6
+ Hiển thị trạng thái truyền dữ liệu và ngày giờ hệ thống
a Kiểm tra kết nối
Trang 16b Chương trình chat chính
Trang 17c Chọn hình ảnh nền khung Chat
d Chọn hình nền Chat
Trang 18e Chọn biểu tượng mặt cười
f Chọn màu chữ, kiểu chữ, cỡ chữ
Trang 19g Các form giới thiệu (giới thiệu chương trình, giới thiệu nhóm 6)
HẾT