Giao tiếp máy tính qua các cổng

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ú

doc57 trang | Chia sẻ: huyen82 | Lượt xem: 3262 | Lượt tải: 1download
Tóm tắt tài liệu Giao tiếp máy tính qua các cổng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 C HƯƠ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…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 Lê Rô To Nguyễn Thu Hằng Xây dựng tìm hiểu đề tài x x Tìm hiểu cấu trúc các giao diện x x Xây dựng cáp truyền x Lập Trình Xây dựng các chức năng x x Xây dựng giải thuật x x Mã hoá Chương trình chính thực hiện giao tiếp x Các Menu,giao diện của chương trình x Viết báo cáo x x 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 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 LPT Địa chỉ thanh ghi dữ liệu Địa chỉ thanh ghi trạng thái Địa chỉ thanh ghi đ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 Function Source Register Inverted at connector Pin: Centron-Ics 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 14 nAutoLF Generate automatic line feeds after carriage return PC1 Control 1 Y 14 15 nError(nFault) Error Printer Status 3 N 32 16 nInit Initialize printer (Reset) PC1 Control 2 N 31 17 nSelectIn Select Printer PC1 Control 3 Y 36 18 Gnd Ground return for nStrobe,D0 19,20 19 God Ground return for D1, D2 21,22 20 God Ground return for D3, D4 23,24 21 God Ground return for D5, D6 25,26 22 Gnd Ground return 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 3 5 Data bit 3 PC No 5 4 6 Data bit 4 PC No 6 5 7 Data bit 5 PC No 7 6 8 Data bit 6 PC No 8 7 9 Data bit 7 PC No 9 Some data ports are bidirectional. (See cotrol register, bit 5 below) Status Register (Base Address +1) Bit Pin: D-sub Signal Name Source Inverted at connector? Pin: Centroncis 3 15 nError (nFault) Peripheral No 32 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-sub Signal Name Source Inverted at 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ừ 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ỉ Base+ Chế độ Đoc/Ghi Ý nghĩa thanh ghi 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ỉ 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 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 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. 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 there is valid data at the Device. When this pin is de-asserted, the +ve clock edge should be used to shift the data into the Host. 11 Busy PeriphAck In When in reverse direction a HIGH indicates Data, while a LOW indicates a Command Cycle. In forward direction, functions as PeriphAck. 12 Paper Out / End nAckReverse In When Low, Device acknowledges Reverse Request. 13 Select X-Flag In Extensibility Flag 14 Auto Linefeed Host Ack Out When in forward direction a HIGH indicates Data, while a LOW indicates a Command Cycle. In reverse direction, functions as HostAck. 15 Error / Fault PeriphRequest In A LOW set by the device indicates reverse data is 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 Test FIFO (Test Mode) Read/Write Configuration Register A (Configuration Mode) Read/Write Base + 401h Configuration Register B (Configuration Mode) Read/Write Base + 402h Extended Control Register (Used by all modes) Read/Write 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 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 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 No. D-Type-9 Pin No. Kí hiệu Tên gọi quốc tế 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 Pin 20 Pin 4 DTR Data Terminal 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 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 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 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 =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 + 2 - Read IIR Interrupt Identification Register - 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 7 Bit 6 Bit 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 2 Bit 2 Bit 1 0 0 Modem Status Interrupt 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 Bảng 2.13.First In / First Out Control Register (FCR) Bit 7 1 Divisor Latch Access Bit 0 Access to Receiver buffer, Transmitter buffer & Interrupt Enable Register Bit 6 Set Break Enable Bits 3, 4 And 5 Bit 5 Bit 4 Bit 3 Parity Select 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 0 One Stop Bit 1 2 Stop bits for words of length 6,7 or 8 bits or 1.5 Stop Bits for Word lengths of 5 bits. Bits 0 And 1 Bit 1 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 Bảng 2.16.Modem Control Register (MCR)-Thanh ghi điều khiển modem Bit Notes Bit 7 Carrier Detect Bit 6 Ring Indicator Bit 5 Data Set Ready Bit 4 Clear To Send Bit 3 Delta Data Carrier Detect Bit 2 Trailing Edge Ring Indicator Bit 1 Delta Data Set Ready Bit 0 Delta Clear to Send Bảng 2.17.Modem Status Register (MSR)-Thanh ghi trạng thái modem CHƯƠNG 3 LẬP TRÌNH CHO CÁC GIAO DIỆN A.LẬP TRÌNH CHO GIAO DIỆN LPT Như đã giới thiệu về các chuẩn của giao diện LPT,Trong các chế độ EPP,ECP,Bi-direction hỗ trợ đường truyền hai hướng trên 8 chân Data rất thuận tiện cho việc lập trình.Ta có thể trao đổi một lần 8 bit qua đương Data,song ta thấy rằng không phải bo mạch nào cũng hỗ trợ đủ hết các chuẩn,Chỉ có chuẩn Standard là chuẩn chung có trên tất cảc các bo mạch.Vì thế để đảm bảo tính tương thích cho mọi máy tính của phần mềm ta sẽ lựa chọn lập trình cho cổng LPT ở chế độ Standard. 1. Thủ thuật phần cứng Để giao tiếp máy tính với máy tính thì phải đảm bảo cho máy cả hai kkhả năng là truyền và nhận tín hiệu.Mặt khác ta thấy rằng trong chế độ Standard Thi 8 đưòng truyền Data,4 chân Control chỉ là đường truyền dữ liệu một hướng(xuất ra),con 5 chân trang thái(khối Status) thì có khả năng nhận vào.Trong thực tế việc giao tiếp hai máy tính chỉ cần kiểm soát đựoc dòng dữ liệu vào,ra nên ta không cần sử dụng hết các chân trạng thái cho mục đích kiểm soát dữ liệu.Ta quyết định sẽ sử dụng bốn chân trang thái để phục vụ cho việc nhận dữ liệu còn một chân còn lại dùng cho quá trình bắt tay giữa hai máy(Shake hand).Ta nối 4 chân ứng vói 4 bit cao nhất trên thanh 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à ._.

Các file đính kèm theo tài liệu này:

  • doc24794.doc
Tài liệu liên quan