Chương 4 giao tiếp nối tiếp

18 154 1
Chương 4 giao tiếp nối tiếp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa CHƯƠNG 4: GIAO TIẾP NỐI TIẾP I Cổng nối tiếp I.1 Cấu trúc cổng nối tiếp Cổng nối tiếp sử dụng để truyền liệu hai chiều máy tính ngoại vi, có ưu điểm sau: - Khoảng cách truyền xa truyền song song - Số dây kết nối - Có thể truyền không dây dùng hồng ngoại - Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device) - Cho phép nối mạng - Có thể tháo lắp thiết bị lúc máy tính làm việc - Có thể cung cấp nguồn cho mạch điện đơn giản Các thiết bị ghép nối chia thành loại: DTE (Data Terminal Equipment) DCE (Data Communication Equipment) DCE thiết bị trung gian MODEM DTE thiết bị tiếp nhận hay truyền liệu máy tính, PLC, vi điều khiển, …Việc trao đổi tín hiệu thông thường qua chân RxD (nhận) TxD (truyền) Các tín hiệu lại có chức hỗ trợ để thiết lập điều khiển trình truyền,được gọi tín hiệu bắt tay (handshake).Ưu điểm trình truyền dùng tín hiệu bắt tay kiểm soát đường truyền I.2 Chuẩn RS232 Chuẩn RS-232 lần giới thiệu vào năm 1962 hiệp hội kỹ thuật điện tử EIA (Electronics Industries Association – Hiệp hội công nghiệp điện tử) chuẩn giao tiếp truyền thông máy tính thiết bị ngoại vi (Modem, máy vẽ, mouse, máy tính khác, PLC…) RS-232A (năm 1963), RS-232B (năm 1965), RS-232C (năm 1969) chuẩn RS-232 có sửa đổi Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 43 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Cổng giao tiếp RS-232 giao diện phổ biến rộng rãi nhất, giống cổng máy in, cổng nối tiếp sử dụng rổng rãi cho mục đích đo lường điều khiển Tín hiệu truyền nối chuẩn RS-232 EIA ( Electronics Industry Associations ) Chuẩn RS-232 quy định mức logic ứng với điện áp từ -3V đến -25V (mark), mức logic ứng với điện áp từ 3V đến 25V (space) có khả cung cấp dòng từ 10 mA đến 20 mA Ngoài ra, tất ngõ có đặc tính chống chập mạch Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps cáp truyền đủ ngắn lên đến 115.200 bps Các phương thức nối DTE DCE: - Đơn công (simplex connection): liệu truyền theo hướng - Bán song công ( half-duplex): liệu truyền theo hướng, thời điểm truyền theo hướng - Song công (full-duplex): số liệu truyền đồng thời theo hướng Định dạng khung truyền liệu theo chuẩn RS-232 sau: Khi không truyền liệu, đường truyền trạng thái mark (điện áp -10V) Khi bắt đầu truyền, DTE đưa xung Start (space: 10V) sau truyền từ D0 đến D7 Parity, cuối xung Stop (mark: -10V) để khôi phục trạng thái đường truyền Dạng tín hiệu truyền mô tả sau (truyền ký tự A): Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 44 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Hình 4.1 – Tín hiệu truyền ký tự ‘A’ Các đặc tính kỹ thuật chuẩn RS-232 sau: Các tốc độ truyền liệu thông dụng cổng nối tiếp là: 1200 bps, 4800 bps, 9600 bps 19200 bps Sơ đồ chân: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 45 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Cổng COM có hai dạng: đầu nối DB25 (25 chân) đầu nối DB9 (9 chân) mô tả hình 4.2 Ý nghĩa chân mô tả sau: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 46 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa I.3 Truyền thông hai nút Các sơ đồ kết nối dùng cổng nối tiếp: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 47 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Hình 4.3 – Kết nối đơn giản truyền thông nối tiếp Khi thực kết nối trên, trình truyền phải bảo đảm tốc độ đầu phát thu giống Khi có liệu đến DTE, liệu đưa vào đệm tạo ngắt Ngoài ra, thực kết nối hai DTE, ta dùng sơ đồ sau: Hình 4.4 – Kết nối truyền thông nối tiếp dùng tín hiệu bắt tay Khi DTE1 cần truyền liệu cho DTR tích cực Æ tác động lên DSR DTE2 cho biết sẵn sàng nhận liệu cho biết nhận sóng mang MODEM (ảo) Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS DTE2 cho biết DTE1 nhận liệu Khi thực kết nối DTE DCE, tốc độ truyền khác nên phải thực điều khiển lưu lượng Quá trinh điều khiển thực phần mềm hay phần cứng Quá trình điều khiển phần mềm thực hai ký tự Xon Xoff Ký tự Xon DCE gởi rảnh (có thể nhận liệu) Nếu DCE bận gởi ký tự Xoff Quá trình điều khiển Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 48 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa phần cứng dùng hai chân RTS CTS Nếu DTE muốn truyền liệu gởi RTS để yêu cầu truyền, DCE có khả nhận liệu (đang rảnh) gởi lại CTS u 1F 13 C 16 C O M on PC C 10uF C 15 10uF 10 T1O U T R IN VC C T IN R 1O U T C 1+ 11 12 V+ V- C 1- C 10uF G N D T2O U T R 2O U T R IN T IN C 2+ C C 2- 9 13 14 C C C C C C C C /T O S O /T C K I /T O S I/C C P /C C P /S C K /S C L /S D I/S D A /S D O /T X/C K /R X/D T R R R R R R R R D D D D D D D D /P /P /P /P /P /P /P /P S S S S S S S S P P P P P P P P M C LR 11 VD D 2 2 2 R R R R R R R R R B /IN T R B1 R B2 R B /P G M R B4 R B5 R B /P G C R B /P G D R E /R D /A N R E /W R /A N R E /C S /A N R A /A N R A /A N R A /A N /V R E F -/C V R E R A /A N /V R E F R A /T C K I/C O U R A /A N /C O U F + T T 3 3 3 4 9 10 O S C /C L K IN O S C /C L K O U T 31 VSS M A X232 10uF VSS 1 1 2 2 12 VC C VD D 32 Sơ đồ kết nối: P IC F 7 A I.4 Truy xuất trực tiếp thông qua cổng Các cổng nối tiếp máy tính đánh số COM1, COM2, COM3, COM4 với địa sau: Giao tiếp nối tiếp máy tính sử dụng vi mạch UART với ghi cho bảng sau: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 49 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Các ghi truy xuất trực tiếp kết hợp với địa cổng (ví dụ ghi cho phép ngắt COM1 có địa BACOM1 + = 3F9h * IIR (Interrupt Identification): IIR xác định mức ưu tiên nguồn gốc yêu cầu ngắt mà UART chờ phục vụ Khi cần xử lý ngắt, CPU thực đọc bit tương ứng để xác định nguồn gốc ngắt Định dạng IIR sau: * IER (Interrupt Enable Register): Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 50 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa IER cho phép hay cấm nguyên nhân ngắt khác (1: cho phép, 0: cầm ngắt) FIE: FIFO Error – sai FIFO TSRE: Transmitter Shift Register Empty – ghi dịch rỗng (=1 phát ký tự bị xoá có ký tự chuyển đến từ THR THRE: Transmitter Holding Register Empty (=1 có ký tự chuyển từ THR – TSR bị xoá CPU đưa ký tự tới THR) BI: Break Interrupt (=1 khicó gián đoạn truyền, nghĩa tồn mức logic khoảng thời gian dài khoảng thời gian truyền byte bị xoá CPU đọc LSR) Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 51 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa FE: Frame Error (=1 có lỗi khung truyền bị xoá CPU đọc LSR) PE: Parity Error (=1 có lỗi parity bị xoá CPU đọc LSR) OE: Overrun Error (=1 có lỗi thu đè, nghĩa CPU không đọc kịp liệu làm cho trình ghi chồng lên RBR xảy bị xoá CPU đọc LSR) RxDR: Receiver Data Ready (=1 nhận ký tự đưa vào RBR bị xoá CPU đọc RBR) DLAB (Divisor Latch Access Bit) = 0: truy xuất RBR, THR, IER, = cho phép đặt chia tần UART phép đạt tốc độ truyền mong muốn UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua chia 16 thành tần số 115,200 Hz Khi đó, tuỳ theo giá trị BRDL BRDH, ta có tốc độ mong muốn Ví dụ đường truyền có tốc độ truyền 2,400 bps có giá trị chia 115,200 / 2,400 = 48d = 0030h => BRDL = 30h, BRDH = 00h Một số giá trị thông dụng xác định tốc độ truyền cho sau: SBCB (Set Break Control Bit) =1: cho phép truyền tín hiệu Break (=0) khoảng thời gian lớn khung PS (Parity Select): Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 52 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa STB (Stop Bit) = 0: bit stop, =1: 1.5 bit stop (khi dùng bit liệu) hay bit stop (khi dùng 6, 7, bit liệu) WLS (Word Length Select): II Truyền thông nối tiếp dùng ActiveX II.1 Giới thiệu MSComm Việc truyền thông nối tiếp Windows thực thông qua ActiveX có sẵn Microsoft Comm Control ActiveX dược lưu trữ file MSCOMM32.OCX Quá trình có hai khả thực điều khiển trao đổi thông tin:  Điều khiển kiện: Truyền thông điều khiển kiện phương pháp tốt trình điều khiển việc trao đổi thông tin Quá trình điều khiển thực thông qua kiện OnComm  Hỏi vòng: Quá trinh điều khiển phương pháp hỏi vòng thực thông qua kiểm tra giá trị thuộc tính CommEvent sau chu kỳ để xác định xem có kiện xảy hay không Thông thường phương pháp sử dụng cho chương trình nhỏ ActiveX MsComm bổ sung vào Visual Basic Project thông qua menu Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 53 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Project > Components: Bổ sung đối tượng MsComm vào VBP Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 54 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Biểu tượng MsComm: thuộc tính mô tả sau: Các thuộc tính đối tượng MSComm II.2 Các thuộc tính cài đặt MSComm Visual Basic Settings: Xác định tham số cho cổng nối tiếp Cú pháp: MSComm1.Settings = ParamString MSComm1: tên đối tượng ParamString: chuỗi có dạng sau: "BBBB,P,D,S" BBBB: tốc độ truyền liệu (bps) giá trị hợp lệ là: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 55 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa D: số bit liệu (4, 5, 6, hay 8), mặc định bit S: số bit stop (1, 1.5, 2) VD: MSComm1.Settings = "9600,O,8,1" xác định tốc độ truyền 9600bps, kiểm tra parity chẵn với bit stop bit liệu CommPort: Xác định số thứ tự cổng truyền thông, cú pháp: MSComm1.CommPort = PortNumber PortNumber giá trị nằm khoảng từ - 99, mặc định VD: MSComm1.CommPort = xác định sử dụng COM1 PortOpen: Đặt trạng thái hay kiểm tra trạng thái đóng / mở cổng nối tiếp Nếu dùng thuộc tính để mở cổng nối tiếp phải sử dụng trước thuộc tính Settings CommPort Cú pháp: MSComm1.PortOpen = True | False Giá trị xác định True thực mở cổng False để đóng cổng đồng thời xoá nội dung đệm truyền, nhận VD: Mở cổng COM1 với tốc độ truyền 9600 bps Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 56 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa MSComm1.Settings = "9600,N,8,1" MSComm1.CommPort = MSComm1.PortOpen = True II.2 Các thuộc tính dự liệu MSComm Visual Basic: Input: Nhận chuỗi ký tự xoá khỏi đệm Cú pháp: InputString = MSComm1.Input Thuộc tính kết hợp với InputLen để xác định số ký tự đọc vào Nếu InputLen = đọc toàn liệu có đệm InBufferCount: Số ký tự có đệm nhận Cú pháp: Count = MSComm1.InBufferCount Thuộc tính dược dùng để xoá đệm nhận bắng cách gán giá trị MSComm1.InBufferCount = InBufferSize: Đặt xác định kích thước đệm nhận (tính byte) Cú pháp: MSComm1.InBufferCount = NumByte Giá trị măc định 1024 byte Kích thước đệm phải đủ lớn để tránh tình trạng liệu II.4 Các thuộc tính xuất liệu MSComm Visual Basic Bao gồm thuộc tính Output, OutBufferCount OutBufferSize, chức thuộc tính giống thuộc tính nhập CDTimeout: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 57 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Đặt xác định khoảng thời gian lớn (tính ms) từ lúc phát sóng mang lúc có liệu Nếu khoảng thời gian mà chưa có liệu gán thuộc tính CommEvent CDTO (Carrier Detect Timeout Error) tạo kiện OnComm Cú pháp: MSComm1.CDTimeout = NumTime  DSRTimeout: Xác định thời gian chờ tín hiệu DSR trước xảy kiện OnComm  CTSTimeout: Đặt xác định khoảng thời gian lớn (tính ms) đợi tín hiệu CTS trước đặt thuộc tính CommEvent CTSTO tạo kiện OnComm Cú pháp: MSComm1.CTSTimeout = NumTime  CTSHolding: Xác định có tín hiệu CTS hay chưa, tín hiệu dùng cho trình bắt tay phần cứng (cho biết DCE sẵn sàng nhận liệu), trả giá trị True hay False  DSRHolding: Xác định trạng thái DSR (báo hiệu tồn DCE), trả giá trị True hay False  CDHolding: Xác định trạng thái CD, trả giá trị True hay False  DTREnable: Đặt hay xoá tín hiệu DTR để báo tồn DTE Cú pháp: MSComm1.DTREnable = True | False  RTSEnable: Đặt hay xoá tín hiệu RTS để yêu cầu truyền liệu đến DTE Cú pháp: MSComm1.RTSEnable = True | False  NullDiscard: Cho phép nhận ký tự NULL (rỗng) hay không (= True: cấm) Cú pháp: MSComm1.NullDiscard = True | False Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 58 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa  SThreshold: Số byte đệm truyền làm phát sinh kiện OnComm Nếu giá trị không tạo kiện OnComm Cú pháp: MSComm1.SThreshold = NumChar HandShaking: Chọn giao thức bắt tay thực truyền liệu Cú pháp: MSComm1.HandShaking = Protocol Các giao thức truyền bao gồm:  CommEvent: Trả lại lỗi truyền thong hay kiện xảy cổng nối tiếp Các kiện: Các lỗi truyền thông: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 59 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa II.5 Sự kiện OnComm Sự kiện OnComm xảy giá trị thuộc tính CommEvent thay đổi.Các thuộc tính RThreshold SThreshold = cấm kiện OnComm thực nhận hay gởi liệu Thông thường, SThreshold = RThreshold = Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 60 ... đồ kết nối dùng cổng nối tiếp: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 47 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh Hoa Hình 4. 3 – Kết nối đơn giản truyền thông nối tiếp Khi... có hai dạng: đầu nối DB25 (25 chân) đầu nối DB9 (9 chân) mô tả hình 4. 2 Ý nghĩa chân mô tả sau: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 46 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị... truyền liệu thông dụng cổng nối tiếp là: 1200 bps, 48 00 bps, 9600 bps 19200 bps Sơ đồ chân: Mạch Quang Báo Giao Tiếp Máy Tính Dùng Pic16F877A 45 Chương 4: Giao Tiếp Nối Tiếp GVHD: Đinh Thị Thanh

Ngày đăng: 06/09/2017, 23:23

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan