CHƯƠNG 2 TRUYỀN THÔNG QUA CỔNG nối TIẾP

29 391 0
CHƯƠNG 2 TRUYỀN THÔNG QUA CỔNG 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 II: Truyền Thông Qua Cổng Nối Tiếp I Vài nét nguồn gốc : Sau thời gian lưu hành không thức, đến năm 1962, Hiệp hội Nhà Công nghiệp Điện Tử (EIA: The Electronics Industries Association) ban hành tiêu chuẩn RS-232 áp dụng cho cổng nối tiếp Các chữ RS viết tắt từ Recommended Standard(Tiêu chuẩn giới thiệu) Có phiên RS-232 lưu hành thời gian tương đối dài RS232B va RS-232C Cho đến RS-232C tồn mà quen gọi RS-232 Ngày nay, hầu hết máy tính trang bò hai cổng nối tiếp RS-232, tất có khả sử dụng RS-232, khả tùy chọn từ nhà sản xuất máy tính từ phía người sử dụng máy tính Từ chuẩn RS232 ban đầu EIA đă phát hành thêm nhiều chuẩn truyền thông khác mang họ RS RS-422, RS-423, RS-485, giao diện có ưu nhược khác mà tùy theo điều kiện sản xuất mà có áp dụng khác Do tất chuẩn tồn song song II Đặc tính chuẩn RS-232C, RS-422, RS-423, RS-485 : Bảng thông số: Thông số Cable Length(max) Baud Rate (tốc độ baud) RS-232 15m (50ft) 20Kbps/15m Mode Unbalanced Driver No Receiver No Logic Logic Communiy Cable/Signal (Cáp /tín 1 +5+15 -5-15 2V RS-422 1.2km (4000ft) 10Mbps/12m 1Mbps/120m 100Kbps/1.2m Balance Differential 10 +2+5 -2-5 1.8V RS-423 1.2km (4000ft) 100Kbps/9m 10Kbps/90m 1Kbps/1.2m Unbalanced Differential 10 +3.6+6 -3.6-6 3.4V RS-485 1.2km (4000ft) 10Mbps/12m 1Mbps/120m 100Kbps/1.2km Balance Differential 32 32 +1.5+5 -1.5-5 1.3V hiệu) Methode (Phương thức) Short circuit Current Simplex Half-Duplex Full- Duplex 500mA Simplex Half-Duplex Full- Duplex 150mA Simplex Half-Duplex Full- Duplex 150mA Simplex Half-Duplex Full- Duplex 150mA Chuẩn RS-232C : Là chuẩn EIA ( Electronics Industries Association ) nhằm đònh nghóa giao điện vật lý DTE ( Data terminal Equipment : thiết bò đầu cuối liệu ) DCE ( Data Communications Equipment : thiết bò cuối kênh liệu ) (ví dụ máy tính modem) Chuẩn sử dụng đầu nối 25 chân, nhiên có số chân cần thiết cho việc liên kết Về phương diện điện, chuẩn quy đònh mức logic mức logic tương ứng với mức điện áp nhỏ –3V lớn +3V Tốc độ đường truyền không vượt 20Kb/sản phẩm với khoảng cách 15m  Chuẩn RS-232 chấp nhận phương thức truyền song công (full-duplex)  Một yêu cầu quan trọng RS-232 thời gian chuyển từ mức logic sang mức logic khác không vượt 4% thời gian tồn bit Giả sử với tốc độ truyền 19200 baud thời gian chuyển mức logíc phải nhỏ 0.04/19200=2.1µs,điều làm giới hạn chiều dài đường truyền Với tốc độ 19200 baud ta có truyền tối đa 50ft (Gần 15.24m) Stop bit Start bit +12V -12V D0 D1 D2 D3 D4 D5 D6 D7 1 0 1 Một vấn đề cần lưu ý sử dụng RS-232 mạch thu phát không cân ( đơn cực, tức điện áp vào so với đất ) Chuẩn RS-489 RS-423A : Vào năm 1978-1979, EIA đưa chuẩn giao tiếp để khắc phục nhượt điểm RS-232 RS-444 ( cân ) RS423 (không cân bằng) Sự chọn lựa truyền cân không cân đònh tốc độ truyền tín hiệu Khi tốc độ truyền vượt 20Kbps hầu hết mạch sử dụng truyền cân bằng, ngược lại ta sử dụng truyền không cân Với chuẩn RS-449, tốc độ truyền 20Kbps Với chuẩn RS-423, tốc độ truyền lên tới 100Kbps khoảng cách truyền lên đến 1km Tiêu chuẩn sử dụng IC kích phát, thu MC3488 MC3486 Chuẩn RS-422A : Một cải tiến chuẩn RS-232 chuẩn RA-422A Với chuẩn độ lợi gia tăng sử dụng việc truyền tín hiệu sai biệt ( Differential data ) đường truyền cân Một liệu sai biệt yêu cầu hai dây, cho liệu không đảo (noninverted ), cho liệu đảo( inverted ) Dữ liệu truyền đường dây cân bằng, thường cặp dây xoắn với điện trở đầu cuối Một IC lái ( Driver ) biến đổi mức logic thông thường thành cặp tín hiệu sai biệt để truyền Một phận biến đổi tín hiệu sai biệt ngược lại thành mức logíc Dữ liệu nhận phần khác tín hiệu không đảo ( A ) tín hiệu đảo ( A ) Chú ý không cần nối đất thiết bò thu thiết bò phát Các IC lái RS-422A hầu hết hoạt động với điện áp nguồn +5V chip logic Với chuẩn tốc độ truyền, khoảng cách truyền cải thiện nhiều Chuẩn RS-485 : Giao tiếp EIA RS_485 dựa chuẩn RS-422A , cải tiến chuẩn Đặc tính điện giống RS_422A RS-485 chuẩn truyền vi sai, sử dụng hai dây cân bằng, đạt tốc độ 10Mbps chiều dài truyền thông lên tới 4000 feet (khoảng 1.2km) Điện áp vi sai ngõ khoảng +1.5 đến +5V logic “0” va từ –3V đến –1.5V cho mức logic “1” Một khác biệt quan trọng RS-485 cung cấp đến 32 drivers Và 32 reicever đường truyền Điều cho phép tạo mạng cục Để có khả ngõ driver RS-485 ngõ trạng thái Nó mức tổng trở cao để bus không bò chập có driver truyền Card giao tiếp RS_485 với PC chế tạo sẳn sử dụng kết nối DB9 chuẩn RS-422A Trên car có tín hiệu điều khiển để treo ngõ driver lên mức tổng trở cao nhường đường truyền cho driver khác Thông thường người ta dùng tín hiệu DTR để làm việc đường tín DTR không dùng để giao tiếp bên Đồng thời giao thức mềm đựơc sử dụng để xác đònh đòa driver phép truyền thời điểm, driver trạng thái tổng trở cao Chuẩn RS-485 thường dùng mạng có quan hệ Master-Slave Chỉ có trạm Master ( điều khiển mạng ), trạm khác Slave Master tryuyền lúc nào, đònh Slave giao tiếp với thời điểm Slave truyền nhận lệnh thích hợp từ Master Mỗi Slaver có đòa đường truyền không phép truyền không Master yêu cầu III Các phương pháp truyền thông : Đơn công :( Simplex Communication ) truyền thông chiều, liệu truyền theo chiều từ máy tính tới thiết bò ngoại vi mà chiều ngược lại  Khối liệu Máy tính Ngoại vi Bán song công: ( Full-duplex Communication ) thông tin truyền theo hai bước Bước thông tin truyền từ máy tính đến ngoại vi Bước hai nhận liệu từ ngoại vi đến máy tính Cho phép truyền hai chiều Bước 1-phát  CRC Khối liệu ACK/NAK Máy tính  Bước 2-thu Ngoại vi Song công : (Full-duplex Communication ) phát thu đồng thời Để thực việc thông tin cần có nghi thức điều khiển : o ACK ( Acknowledge ) tín hiệu báo xác nhận, máy thu xác nhận liệu truyền o NAK ( Not Acknowledge ) máy thu gởi tín hiệu không xác nhận liệu sai o CRC ( Cyclic Redundence Check ) kiểm tra dư thừa chu kỳ Sử dụng thông tin thừa để phát sửa lỗi Ví dụ dùng ba phần tử thực chức năng, đầu phần tử khác đầu hai phần từ lại phát sai phải loại bỏ RCR Khối Ack Khối liệu RCR CRC Khối Khối liệu Phát thu  Ack CRC  Máy tính Ngoại vi  Truyền thông : Hầu hết máy tính lưu trữ thao tác lưu trữ liệu theo kiểu song song Nghóa gởi byte từ phận tới phận khác máy tính, truyền bít mà truyền đồng thời nhiều bít mạch dây song song Số bit gởi lúc thay đổi tuỳ theo loại máy tính khác thường bội Vì máy tính làm việc thường nhiều byte lúc, byte Nhưng truyền thông từ máy tính đến máy tính khác hay thiết bò ngoại vi làm tuần tự, liệu gởi bit Bộ giao tiếp nhận byte mạch dây song song gởi bít cách riêng biệt Dữ liệu đường truyền trạng thái điện dương( MARK ) điện âm ( SPACE ) Bất kỳ liệu truyền nào, trước tiên phải chuyển thành dãy thứ tự MARK SPACE, MARK tương ứng với logic 1, SPACE tương ứng với logic Có hai hình thức truyền thông  Truyền thông bất đồng : ( Asynchronous Communication ) Ký tự truyền theo Frame, frame gồm start bit, bít liệu ký tự truyền, parity bit ( để kiểm tra lỗi đường truyền), stop bit Xử lý truyền nhận liệu theo phương thức sử dụng vi mạch thu phát không đồng vạn UART ( Universal Asynchronous Receiver Transmitter ) Nhượt điểm phương pháp tốc độ truyền chậm phải truyền thêm bit start , bit stop, parity Muốn loại bỏ bit để nâng cao số bit liệu truyền, người ta sử dụng phương thức truyền liệu đồng (Synchronous ) Chiều dòng liệu Luôn mức thấp Luôn mức cao          Start D0 D1 D2 D3 D4 D5 D6 D7 Parity Stop Stop Trạng thái o Hình vẽ minh họa giao thức truyền liệu không đồng ( Asynchronouns Transmission Protocol) Nếu kênh truyền ký tự truyền , mức cao Khi có ký tự truyền, kênh truyền hạ xuống mức thấp ( Start bit ) để báo cho phía thu có ký tự truyền tới, tiếp bít ký tự ( 5,6 ,7 hay bit – ví dụ bit ) o Để kiểm tra lỗi đường truyền người ta sử dụng bít chẳn lẻ ( parity bit ), tức kiểm tra chẳn lẻ số bit Nếu kiểm tra chẳn, nghóa tổng số bit ký tự ( từ D0  D7 ) bít chẳn lẻ phải chẳn Ngược lại kiểm tra số bit ký tự lẻ bit chẳn lẻ phải lẻ Bit stop sử dụng để báo cho phía thu biết việc truyền ký tự kết thúc Số bit stop thường dùng 1, 1.5, bit Như phương pháp truyền bất đồng bộ, bit liệu đóng khung với bit start, stop, bit parity tạo thành Frame  Truyền thông đồng : ( Synchronous communications ) Phương thức truyền không dùng bít start, stop để đóng khung ký tự mà chèn ký tự đặc biệt SYN ( Synchronization ), EOT ( End of Transmission ) cờ liệu người sử dụng để báo hiệu cho người nhận liệu biết liệu đến Truyền thông đồng thường tiến hành với tốc độ 4800bps, 9600bps chí cao Trong phương pháp này, đồng bộ, Modem tiếp tục gởi ký tự để trì đồng bộ, lúc không phát liệu Một ký tự ‘IDLE’ gởi liệu phát Phương pháp truyền đồng khác phương pháp truyền bất đồng khoảng thời gian truyền hai ký tự giống Truyền đồng đòi hỏi xung clock máy thu phát phải trì đồng khoảng thời gian dài Trong phương pháp truyền đồng ký tự truyền kèm theo ký tự đồng SYN (mã ASCII 22 ) Xử lý truyền nhận vi mạch USART ( Universal Synchronous Asynchronous Receiver Transmitter ), vi mạch cho phép hoạt động hai chế độ truyền SOH Header SXT Text EXT BCC o o o o o o Thông tin điều khiển liệu SOH (Start of header ) : Phần bắt đầu đơn vò thông tin chuẩn SXT ( Start of text ) : Chỉ kết thúc header bắt đầu phần liệu EXT (End of text ): ký tự kết thúc phần liệu hay văn BCC ( Block check character ) : ký tự kiểm tra khối TEXT : thân liệu hay văn HEADER : phần đầu CHƯƠNG III: Vi mạch UART ( Universal Asynchronous Receiver ) 8250A, 16450 I Đòa Port IRQ’s: Bảng đòa PORT tiêu chuẩn : trình bày : Tên Đòa IRQ COM 3F8H COM 2F8H COM 3E8H COM4 2E8H Ở bảng đòa chuẩn Nếu có vấn đề thu phát sử đòa cổng Com xem từ vùng hệ thống BIOS Bảng đòa cổng Com vùng liệu BIOS : trình bày Đòa 0000:0400 0000:0402 0000:0404 0000:0406 Chức Đòa Com Đòa cua Com Đòa cua Com Đòa cua Com Bảng trình bày cổng Com mà tìm thấy vùng liệu BIOS PC Mỗi đòa gồm hai Byte II Tổng quan : Vi mạch 8250A ( 16450 ) Intel UART dùng rộng rãi PC UART 8250A có chức sau:  Biến đổi liệu song song từ CPU thành dạng nối tiếp để truyền đi, đồng thời thu dòng liệu nối tiếp đổi chúng thành ký tự song song Sau gởi đến vi xử lý (µp)  Thêm bit Start, stop, parity vào ký tự trước phát tách bit khỏi ký tự nhận  Bảo đãm bit kỳ tự truyền với tốc độ lập trình trước, kiểm tra để phát lỗi tương ứng : lỗi ký tự, lỗi parity o Set tín hiệu bắt tay phần cứng thích hợp cho biết trạng thái tín hiệu Các ghi UART :  Các ghi điều khiển (Control Register : CR ) nhận lệnh từ CPU o Thanh ghi điều khiển đường truyền ( Line Control Register : LCR ): dùng để đặt thông số truyền o Thanh ghi điều khiển Modem ( Mode Control Register : MCR ) : điều khiển tín hiệu bắt tay gởi từ UART o Thanh ghi cho phép ngắt ( Interrupt Enable Register : IER ) :  Thanh ghi trạng thái ( Status Register : SR ) : thông báo cho CPU biết hoạt động UART o Thanh ghi trạng thái đường truyền ( Line Status Register : LSR ) : chứa thông tin truy xuất liệu o Thanh ghi trạng thái Modem ( Modem Status Register : MSR ) : chứa thông tin trạng thái đường bắt tay o Thanh ghi đònh danh ngắt ( Interrupt Identification Register : IIR ) : chứa thông tin trạng thái ngắt gởi đến  Thanh ghi đệm ( Buffer Register : BR ) : phục vụ cho việc trao đổi liệu o Thanh ghi giữ phát ( Transmitter Holding Register : THR ) : giữ liệu trước phát o Thanh ghi đệm thu ( Receiver Buffer Register : RBR ) : giữ kí tự thu sau o Ở bảng đòa ( 2F8H, 3F8H, 2E8H, 3E8H ) tuỳ theo cách chọn người lập trình Đòa DLAB A2 +0 A1 A0 Chọn 0 Thanh ghi đệm thu (RBR ), ghi giữ phát (THR) +1 +0 1 0 0 0 1 Thanh ghi cho phép tạo yêu cầu ngắt (IER) Thanh ghi cho số chia phần thấp (LSB) Thanh ghi cho số chia phần cao (MSB) X X X X X 0 1 1 0 1 1 Thanh ghi nhận dạng nguồn gốc yêu cầu ngắt(IIR) Thanh ghi điều khiển đường dây (LCR ) Thanh ghi điều khiển Modem (MCR ) Thanh ghi trạng thái đường dây(LSR ) Thanh ghi trạng thái Modem ( MSR ) Thanh ghi nháp (dành cho CPU, sử dụng ) +1 +2 +3 +4 +5 +6 +7 • Trong bảng bạn phải ý cột DLAB Khi DLAB đặt lên ‘0’ hoặc’1’ vài ghi thay đổi Có thể thấy này, UART cho phép 12 ghi, có port đòa DLAB dùng truy cập bit chốt chia, DLAB đặt lên’1’ ghi điều khiển đường truyền (bit thứ cùa ghi này), hai ghi trở nên có giá trò ( Divisor Latch Low Byte : ‘Reg+0’, Divisor Latch High Byte : ‘Reg +1’ ), sau dùng hai ghi dùng cho việc đặt tốc độ truyền thông Ví dụ sau : Tốc độ ( Baud ) 50 300 600 2400 4800 9600 19200 38400 57600 115200 Divisor 2304 384 192 48 24 12 Byte chốt chia cao(DLHB) Byte chốt chia thấp(DLLB) 09H 01H 00H 00H 00H 00H 00H 00H 00H 00H 00H 80H C0H 30H 18H 0CH 06H 03H 02H 01H Vi mạch 8250A thể hình vẽ dưới: Vi mạch 8250A có tín hiệu chọn chip để tạo điều kiện thuận lợi cho người sử dụng việc giải mã đòa Các chân đòa A1, A2, A0, giúp ta chọn ghi bên UART ( xem bảng dưới) D0…D7 Đệm bus liệu Đệm phát A0 A1 A2 A0 WR CS2 Logic điều khiển ghi đọc CS CS1 Điều khiển Thu Phát Và modem Master Xtal Baud − out RxClk Out1 RST CTS Out DTR DSR RLSD RI Đệm thu INTRPT Bảng chọn ghi vi mạch 8250A X-tal chân để cắm thạch anh dùng cho mạch dao động bên 8250A Trong trường hợp sử dụng tín hiệu đồng hồ chuẩn từ bên ta đưa xung đồng hồ vào chân X-tal bỏ lửng chân X-tal Chân RLSD ( receiver line signal detect ) chân tìm thấy sóng mang ( CD DCD cho tiêu chuẩn RS-232C Syndet 8251A ), tức thiết lập đường truyền Tín hiệu RI ( Ring indicator ), tín hiệu chuẩn RS-232C, để modem thông báo có xung réo chuông Tín hiệu INTRPT tín hiệu yêu cầu ngắt CPU Các đầu o Bit 2=1, có lỗi parity, bit xoá CPU đọc ghi LSR o Bit 1=1, thu không đủ nhanh ( lỗi thu đè), bit xoá CPU đọc ghi LSR o Bit =1, nhận ký tự để ghi đệm (RBR), bit xoá CPU đọc ghi RBR Thanh ghi trạng thái modem ( Modem Status Register : MSR) : Thanh ghi gọi ghi trạng th vào từ trang thía RS-232C cho biết trạng thái thời tín hiệu điều khiển modem từ đường dây CHƯƠNG V: Giao Tiếp Máy Tính Với Vi Xử Lý I Truyền nhận qua cổng nối tiếp : Việc truyền nhận qua cổng nối tiếp thực UART Nguyên tắc cho chip UART hoạt động sau:  Để truyền ký tự, ký tự đưa vào ghi đợi truyền ( Transmit Holding Register ), sau đưa qua ghi dòch phát ( transmit Shift Register ) Sau ký tự trước truyền xong, bit ký tự đươcï truyền dòch vào kênh liệu  Khi nhận ký tự, bit nạp vào ghi dòch thu ( Transmit Shift Register), sau chúng đưa vào ghi liệu thu ( Receive Data Register ) sau loại bỏ bit start, stop, parity  Để thực việc truyền liệu qua cổng nối tiếp ta phải thực bước sau: o Chọn cổng truyền Com 1, hay Com Đòa Com thường 3F8H, Com 2E8H Đối với số loại máy tính đòa cổng Com vào BIOS để set lên, nên viết chương trình truyền cần vào BIOS để xem đòa cổng Com cụ thể Nếu ta chọn COM 3F8 H, Com 2F8 H đòa ghi khác là: Thanh ghi Data register Interrupt enable register Interrupt identification register Line control register Modem control register Line status register Modem control register o Đặt tốc độ baud Đòa Com 3F8H 3F9H 3FAH 3FBH 3FCH 3FDH 3FEH Đòa Com 2F8H 2F9H 2FAH 2FBH 2FCH 2FDH 2FEH o Đặt cấu hình truyền : data bit, stop bit, parity (em chọn bit data, bit stop, parity) o Cho phép ngắt sử dụng  Để thực việc truyền liệu trước hết phải khởi động cổng COM, sau thực việc truyền phát với chương trình truyền phát trình bày dược viết theo kiểu API: o Chương trình khởi động cổng COM: Chọn Com với đia 2F8H để thực việc truyền liệu Cần ý đến Bit DLAB (………………………………………………………………………….) const pathsl ='c:\my documents\delphi\'; com2=$2F8; Reg2F8=com2+0; Reg2F9=com2+1; Reg2FA=com2+2; Reg2FB=com2+3; Reg2FC=com2+4; Reg2FD=com2+5; (………………………………………………………………………….) procedure Tform2.Initcom; begin xuat(Reg2FB,$80);{DLAP=1} xuat(Reg2F8,$30);{baudrate=2400} xuat(Reg2F9,$00);{khong su dung ngat} xuat(Reg2FB,$03);{8 bit data, bit stop, no parity} end; (………………………………………………………………………….) o Nhập liệu với hàm nhập viết pascal (………………………………………………………………………….) function Tform2.nhap(addr:word):byte; var TEMP : byte; begin asm PUSH Ax PUSH DX MOV DX,addr IN AL,DX MOV TEMP,AL POP AX POP Dx end; (………………………………………………………………………….) Xuất liệu với hàm xuat: (………………………………………………………………………….) procedure Tform2.xuat(addr:word;data:byte); begin asm PUSH AX PUSH DX MOV DX,addr MOV AL,DATA OUT DX,AL POP AX POP DX end; end; (………………………………………………………………………….) o Trong việc truyền liệu sử dụng tín hiệu RTS, CTS … cần phải viết chương trình cho chúng Trong việc truyền tín hiệu cho đề tài em có sử dụng tín hiệu RTS, viết sau: (………………………………………………………………………….) o procedure Tform2.setRTS; var a: byte; begin a:=nhap(Reg2FC); a:=a or $02; xuat(Reg2FC,a); end; procedure Tform2.RESETRTS; var a : byte; begin a:=nhap(Reg2FC); a:=a and $FD; xuat(Reg2FC,a); end; (………………………………………………………………………….)  Có hai phương pháp để điểu khiển việc thu phát liệu qua UART: phương pháp hỏi vòng phương pháp tạo trình điều khiển tạo ngắt Phương pháp hỏi vòng chờ liệu nhận xong phát xong, tốc độ chậm khoảng 34.8 Kbps o Phát ký tự: Với phương pháp hỏi vòng, gởi ký tự ta phải kiểm tra xem ghi đợi truyền có rỗng hay không cách xem Bit ghi LSR ( Line Status Register ) có hay không Chương trình viết cụ thể Delphi 5.0 sau: (…………………………………………………………) repeat test3:=nhap(Reg2FD); application.ProcessMessages; until (test3 and $40)=$40; xuat(Reg2F8,t); (…………………………………………………………) o Để thu ký tự : Để biết có ký tự vào hay chưa kiểm bit ghi LSR ( Line Status Register ) Nếu ‘1’ có ký tự nhận vào Với chương trình cụ thể viết sau: (………………………………………………………………………….) repeat begin test6:=nhap(Reg2FD); test6:=test6 and $01; end; until (test6=$01); (………………………………………………………………………….)  Tuy nhiên ta sử dụng nhũng cách khác để thực việc truyền liệu với phương pháp đơn giản giải thuật Sau phương pháp sử dụng mà em tham khảo giáo trình Lập trình ghép nối máy tính Windows tác giả Ngô Diên Tập Để thực việc mở cổng Com ta việc gõ lệnh đơn giản OpenCom(pchar(‘còm:9600,N,8,1’)); Để truyền liệu đi: SendByte(); Để nhận liệu về: Temp:=ReadByte; Xuất trực tiếp đường dẫn DTR(); RTS(); … Dể thực nhũng lệnh Delphi phải có tệp tin tài nguyên hỗ trợ có tên port.dll tác giả cung cấp Sau ta phải soạn unit (được dẫn rõ giáo trình) để giúp Delphi nhận tài nguyên Hơi rắc rối tý mà bù lại ta gặp nhiều thuận lợi lập trình Trong luận văn này, em sử dụng phương pháp khác dùng MSComm Phương pháp lập trình đơn giản hỗ trợ mạnh nhiều người sử dụng Trong Visual Basic MSComm nhà lập trình cung cấp sẵn Còn Delphi muốn sử dụng ta phải” dùng ké” tài nguyên VB cách copy têp tin “mscom.ocs” vào system Window sau vào Component Delphi để khai báo Về phương pháp khai báo sử dụng đươc trình bày cụ thể phần phụ lục em II Các phương pháp kết nối : Kết nối máy tính với Kit vi xử lý: Khi máy tính giao tiếp với kít vi xử lý ta dùng RS-232 đủ , cho phép chuyển đổi từ +12V đến +5V phù hợp với nguồn cung cấp cho kit vi xử lý Nhưng điểm hạn chế phương pháp khoảng cách truyền ngắn , tối đa 15 m Biểu diễn giao tiếp hình : RS-232 Kit vi xử lý Kết nối máy tính với N (tối đa N=32) kít vi xử lý :  Để kết nối máy tính với nhiều vi xử lý phải thực bước chuyển đổi sau : o Chuyển đổi từ chuẩn RS-232 sang RS-485 để truyền tín hiệu khoảng cách lớn khoảng 1.2km o Chuyển đổi từ RS-485 sang RS-485 sang TTL để phù hợp với áp vào vi xử lý  Mức điện áp: o RS-232 truyền theo kiểu không cân ( áp lệch so với đất ) o RS-485 truyền theo kiểu cân ( điện áp sai lệch hai dây) o RS-232 : -3V  -12V : mức logic +3V +12V :mức logic o RS-485 : VA –Vb = -1.5V -5V : mức logic VA –VB= +1.5V+5V : mức logic  Hình vẽ minh họa : RS232/RS485 RS-485 Kít vi xử lỳ RS-485 Kít vi xử lý CHƯƠNG VI : Chuẩn RS-485 Giới thiệu: Khi hệ thống cần truyền khối thông tin nhỏ khoảng cách xa, thông thường người ta chọn RS-485 Mạng sử dụng chuẩn RS-485 đa dạng: ta giao tiếp PC với nhau, PC với Vi Xử Lý , thiết bò truyền thông nối tiếp bất đồng Khi so sánh với Ethernet giao diện truyền thông theo chuẩn khác giao diện RS-485 đơn giản giá thành thấp nhiều Theo nhận đònh em ( truyền khối liệu nhỏ ) chuẩn RS-485 linh động Ta chọn số lượng điều khiển ( Master ), nhận ( Slave ), chiều dài cáp, tốc độ truyền, số node cần giao tiếp, tiết kiệm lượng Một số đặt điểm RS-485: Giá thành thấp: Các điều khiển ( Driver ) nhận ( Receiver ) không đắt yêu cầu cung cấp nguồn đơn +5V để tạo mức điện áp vi sai tối thiểu 1.5V ngỏ vi sai Khả mạng: RS-485 giao diện đa điểm ( multi-drop ), có nhiều Driver Receiver, số Receiver lên đến 256 ngõ vào Receiver có trở kháng vào cao  Khả kết nối: RS-485 truyền xa 1200m, tốc độ lên đến 10Mbps Nhưng thông số không xảy lúc Khi tốc độ truyền tăng tốc độ baud giảm xuống Ví dụ: tốc độ 90Kbps khoảng cách 1200m, 1Mbps khoảng cách 120m, với tốc độ 10Mbps khoảng cách 15m Giải thích số đặc tính RS-485 :  Các đường truyền cân không cân bằng: Sở dỉ RS-485 truyền khoảng cách lớn chúng sử dụng đường truyền cân Mỗi tín hiệu truyền cặp dây, với mức điện áp dây âm điện áp bù dây Receiver đáp ứng phần hiệu mức điện áp, minh hoạ hình dưới: A B VA o VB o GND Hình: Đường truyền cân Vin GND Hình: Đường truyền không cân Một thuận lợi lớn RS-485 khả chống nhiễu tốt Một thuật ngữ khác đường truyền tín hiệu dạng vi sai tín hiệu TIA/EIA – 485 đònh hai đường vi sai A B Tại điều khiển ( Driver ) VA > VB mức logic đầu vào cao, ngïc lại V A < VB mức logic đầu vào thấp Tại nhận ( Receiver ) V A > VB mức logic đầu cao ngược lại Đối với Receiver đầu vào phải nằm tầm –7V ÷ + 12 V Mức áp vi sai đầu vào tối đa - 6V ≤ VA – VB ≤ +6V  Tại dùng đường truyền cân có lợi : Đường truyền cân có ưu điểm hai đường tín hiệu mang dòng gần ngược dấu Điều giúp giảm nhiễu đøng truyền hầu hết điện áp nhiễu điều tăng hay giản điều hai đường truyền Bất kì điện áp nhiễu tác động lên dây điều bò triệt tiêu điện áp bù dây Đường nhiễi dây khác cáp bên Một nhận cân nhận tín hiệu cần truyền, loại bỏ tín hiệu nhiễu giảm nhiều tín hiệu nhiễu Ngược lại, giao tiếp không cân bằng, nhận phát mức điện áp dây tín hiệu đất Khi có nhiễu chúng tác động đến mạch, gặp mội trường có nhiễu lớn chúng gây sai lệch mức logic →mạch hoạt động sai Một ưu điểm khác đường truyền cân triệt tiêu phần điện áp tiềm tàng phát nhận Trong kết nối khoảng cách lớn, điện Driver Reciver khác nhiều vôn đường truyền không cân bằng, điện đất khác làm cho Receiver không đọc đầu vào Còn đường truyền cân chúng không quan tâm đến điện đất đọc phần điện hiệu hai dây truyền tín hiệu Trong thực tế, thành phần RS-485 phù hợp với chênh lệch đất đònh Một cách để triệt tiêu giảm bớt vấn đề cô lập mạng Nguyên tắc hoạt động RS-485 : a) Mức áp yêu cầu: Giao tiếp RS – 485 điển hình sử dụng nguồn cung cấp đơn +5V mức logic đầu phát đầu thu mức TTL hay mức CMOS, để có mức thích hợp VA – VB ≥ 1.5V Điện áp đầu đất không xác đònh việc trừ mà mode điện áp chung phải nằm tầm ±7V Nếu giao tiếp cân cách hoàn hảo đầu offset nửa với nguồn cung cấp Bất cân làm tăng hay giảm mức offset Hình bên áp A B điều khiển RS-485 Biên độ đầu gần 3V thay đổi từ +1 ÷ +4V –1V ÷ -4V so với đất Nguồn cung cấp cho điều khiển +5V A B Ngỏ phát RS-485 Hình bên mức điện áp vi sai dây A B đầu Driver Biên độ đỉnh đỉnh áp 6V gấp hai lần biên độ đỉnh đỉnh điện áp đường dây Ngỏ vi phân phát RS-485 Nếu đầu đóng mở trước đầu khác điện áp đầu vi sai đóng mở chậm điều giới hạn tốc độ truyền mạng Thời gian lệch ( Skew ) khoảng thời gian đóng mở chênh lệch đầu Các Driver RS-485 thiết kế cho tối thiểu thời gian lệch Tại Receiver, điện áp đầu vào A B cần 200mV Nếu V A - VB ≥ 0.2V đầu thu đọc mức logic 1, ngược lại mức logic điện áp vi sainày < 0,2V mức logic không xác đònh Sự khác điện áp Driver Receiver giới hạn nhiễu cho phép 1,3V điện áp vi sai yếu bò nhiễu kí sinh khoảng 1,3 V đầu thu nhận mức logic Trong hầu hết mạng, điện áp đầu phát lớn 1,5V Do giới hạn nhiễu lớn Một Driver cần cấp nguồn 3V có áp vi sai đầu 1,5 V TIA/EIA – 485 đònh nghóa : B > A → mức 1; A > B → mức Sử dụng đònh nghóa chip giao tiếp RS-485 làm ngược lại b) Dòng yêu cầu: Dòng tổng RS-485 thay đổi theo trở kháng vào thành phần mạng gồm: phát, đầu thu, cáp thành phần đầu cuối Trở kháng phát thấp trở kháng cáp thấp cho phép việc đóng mở nhanh bảo đảm thu nhận tín hiệu với tốc độ cao Nếu trở kháng đầu thu cao làm giảm dòng mạng kéo dài tuổi thọ nguồn Việc sử dụng thành phần đầu cuối có lợi dòng mạng Khi thành phần đầu cuối trở kháng vào thu ảnh hưởng lớn điện trở tổng nối tiếp Tổng trở kháng vào thay đổi theo thu trở kháng vào chúng Một phát RS-485 lái đến 32 đơn vò tải TIA/EIA – 485 xác đònh đơn vò tải dạng dòng yêu cầu Một thu tương đương đơn vò tải, mà tải không kéo nhiếu lượng dòng xác đòmh đầu vào điện áp xác đònh theo tiêu chuẩn Khi áp đầu thu 12V đơn vò tải – Bộ thu không kéo nhiều 1mA Để đạt yêu cầu thu phải có điện trở đầu vàu 12 KΩ, mắc đầu vi sai với V cc hay GND tùy thuộc vào chiều dòng điện Nếu thêm thu điện trở tương 6000 Ω Nếu có 32 đơn vò tải R tương đương 375Ω Chuyển đổi sang TTL: a) Song công ( Full-Duplex ): RS-485 thiết kế để dùng cho hệ thống nhiều node ( multi-drop) Hầu hết mạng RS-485 bán song công sử dụng nhiều phát thu, chia đường truyền tín hiệu Nhưng sử dụng RS-485 dạng song công, hướng có đường truyền tín hiệu riêng Việc chuyển đổi mạng RS-232 sang RS-485 song công dễ dàng thực phần mềm Với mạng loại ta sử dụng SN75179B hai đầu phát thu Mạng gồm phát dùng chuyển đổi 5V TTL sang RS-485 thu dùng chuyển RS-485 sang 5V TTL Đây giải pháp đơn giản ta muốn tạo mạng song công, khoảng cách xa vi điều khiển Các chip giao tiếp RS-485 nhỏ hơn, đơn giản rẻ việc chuyển đổi sang RS-232 NODE NODE O O O NODE O O O NODE O O Hình 1.5: Kết nối song công nhiều node Trong mạng gồm có chủ tớ, node chủ dùng để điều khiển mạng cho phép việc thu phát thành phần khác Một cặp dây dùng để nối phát chủ với thu tớ, cặp dây khác nối phát tớ với thu chủ Tất tớ phải thông tin từ chủ để biết cho phép Việc đònh đòa tớ xác đònh cặp dây đối lặp Thuận lợi phương pháp tiết kiệm thời gian cho tớ chúng không đọc thông tin trả lời tớ khác Nếu tất node chia đường liệu tớ phải đọc tất thông tin lưu thông đường mạng để lấy thông tin từ chủ gởi tới b) Bán song công: Rất nhiều mạng dùng kết nối 485 bán song công với nhiếu phát thu chia đường tín hiệu Khi mạng có hay nhiều node thời điểm có node thu hay phát Việc sử dụng đường truyền tín hiệu thuận lợi có thiết bò ( chủ, tớ ) node thu phát lúc mà không sợ có xung đột Nhưng có nhiều phát cặp dây đảm bảo đường truyền tín hiệu “ rỗng”(free) phát cần truyền Trên vi điều khiển cho phép xây dựng bit port đầu vào hay đầu ra, gởi hay nhận bit đơn , tái tạo lại bit cần thiết Chúng ta làm điều để sử dụng số bit port sử dụng bán song công để tiết kiệm dây +5V 75176BP SERIAL IN SERIAL OUT DI RO RE DE A B 120 CONTROL OUT +VCC GND +5V 75176BP SERIAL IN SERIAL OUT DI RO RE DE A B CONTROL OUT +VCC GND +5V 75176BP SERIAL IN SERIAL OUT DI RO RE DE A B 120 CONTROL OUT +VCC GND Hình 1.6: Kết nối bán song công Chip bao gồm phát dùng đổi mức logic TTL sang RS-485 thu dùng chuyển RS-485 sang mức TTL chip có đầu vào cho phép Không giống SN75179B chip có cặp chân RS-485 chân cho phép vào, dùng xác đònh liệu phát hay tu tích cực Khi đầu vào cho phép phát mức thấp ngõ phát trạnh thái tổng trở cao Khi đầu vào cho phép thu mức cao đầu thu trạng thái tổng trở cao Kết nối mạng phương thức truyền: Đặc điểm mạng dùng chuẩn RS-485 phải chung mass, mức điện áp chung: -7 ÷ +12v a Dạng kết nối tổng quát: Hình bên mô tả cách kết nối tổng quát, node có chip thu phát SN75176B ( tương tự Max485, LTC485, DS3695 ) Mạch có điện trở 120 Ω nối song song với ngõ vào, vi sai ( chân 6-7 ), hai diện trở 560 Ω kéo lên Với cách kết nối để truyền data từ điều (Master) đến thiết bò chấp hành ( Slave ) ta phải set chân 2-3 lên mức cao, tương tự Slave gởi Message Master, chân 2-3 phải lên mức cao Còn nhận Message ta phải set chân 2-3 xuống thấp Hình 1.7: Dạng kết nối tổng quát mạng dùng chuẩn RS-485 b Kết nối tự động : Vấn đề: thiết kế mạng dùng chuẩn RS-485, tất node chia đường data, thời điểm có điều khiển hoạt động Tức trước node phát node khác không phát Hình cho ta cách kết nối tự động không cần phải set chân 2-3 phát Hình 1.8: Kết nối tự động Với mạch hình ta viết chương trình điều khiển, ta không cần phải chốt điều khiển, dùng 75176B kết hợp với 555, cho ta thời gian delay đủ để điều hoạt động ( Enable ) điều khiển khác không hoạt động ( Disable ) Giải thích cụ thể nguyên lý hoạt động mạch trên, đề cập phần thiết kế mạch Việc cho phép điều khiển ( Driver ): Một việc quan trọng sử dụng mạng bán song công việc điều khiển cho phép điều khiển ( phát ) Khi phát chuyển cho phép thực xong việc chuyển data Sau không cho phép trước node khác thực việc phát Hình 1.9: Tín hiệu cho phép phát byte data phát [...]... COM: Chọn Com 2 với đia chỉ 2F8H để thực hiện việc truyền dữ liệu Cần chú ý đến Bit DLAB (………………………………………………………………………….) const pathsl ='c:\my documents\delphi\'; com2=$2F8; Reg2F8=com2+0; Reg2F9=com2+1; Reg2FA=com2 +2; Reg2FB=com2+3; Reg2FC=com2+4; Reg2FD=com2+5; (………………………………………………………………………….) procedure Tform2.Initcom; begin xuat(Reg2FB,$80);{DLAP=1} xuat(Reg2F8,$30);{baudrate =24 00} xuat(Reg2F9,$00);{khong... RS -23 2C vì nó cho biết trạng thái hiện thời của các tín hiệu điều khiển modem từ đường dây CHƯƠNG V: Giao Tiếp Máy Tính Với Vi Xử Lý I Truyền nhận qua cổng nối tiếp : Việc truyền nhận qua cổng nối tiếp được thực hiện bởi UART Nguyên tắc cho chip UART hoạt động như sau:  Để truyền đi một ký tự, đầu tiên ký tự đó sẽ được đưa vào thanh ghi đợi truyền ( Transmit Holding Register ), sau đó được đưa qua. .. Đòa chỉ Com 2 2F8H 2F9H 2FAH 2FBH 2FCH 2FDH 2FEH o Đặt cấu hình truyền : data bit, stop bit, parity (em chọn 8 bit data, 1 bit stop, không có parity) o Cho phép ngắt nếu sử dụng  Để thực hiện việc truyền dữ liệu trước hết chúng ta phải khởi động cổng COM, sau đó thực hiện việc truyền phát với chương trình truyền và phát trình bày ở dưới đây dược viết theo kiểu API: o Chương trình khởi động cổng COM:... pháp kết nối : 1 Kết nối máy tính với một Kit vi xử lý: Khi máy tính giao tiếp với một kít vi xử lý thì ta chỉ dùng RS -23 2 là đủ , vì nó cho phép chuyển đổi từ +12V đến +5V phù hợp với nguồn cung cấp cho kit vi xử lý Nhưng điểm hạn chế của phương pháp này là khoảng cách truyền ngắn , tối đa chỉ 15 m Biểu diễn giao tiếp ở hình dưới : RS -23 2 Kit vi xử lý 2 Kết nối máy tính với N (tối đa N= 32) kít vi... liệu qua cổng nối tiếp ta phải thực hiện các bước sau: o Chọn cổng truyền Com 1, hay Com 2 Đòa chỉ của Com 1 thường là 3F8H, còn Com 2 là 2E8H Đối với một số loại máy tính thì đòa chỉ của cổng Com có thể vào BIOS để set lên, nên khi viết chương trình truyền cần vào BIOS để xem đòa chỉ cổng Com cụ thể Nếu ta chọn COM 1 là 3F8 H, Com 2 là 2F8 H thì đòa chỉ các thanh ghi khác là: Thanh ghi Data register... RS -23 2 : -3V  -12V : mức logic 1 +3V +12V :mức logic 0 o RS-485 : VA –Vb = -1.5V -5V : mức logic 1 VA –VB= +1.5V+5V : mức logic 0  Hình vẽ minh họa : RS2 32/ RS485 RS-485 Kít vi xử lỳ RS-485 Kít vi xử lý CHƯƠNG VI : Chuẩn RS-485 1 Giới thiệu: Khi hệ thống cần truyền một khối thông tin nhỏ ở khoảng cách xa, thông thường người ta chọn RS-485 Mạng sử dụng chuẩn RS-485 rất đa dạng: ta có thể giao tiếp. .. năng kết nối: RS-485 có thể truyền xa 120 0m, tốc độ lên đến 10Mbps Nhưng 2 thông số này không xảy ra cùng lúc Khi tốc độ truyền tăng thì tốc độ baud giảm xuống Ví dụ: khi tốc độ là 90Kbps thì khoảng cách là 120 0m, 1Mbps thì khoảng cách là 120 m, còn với tốc độ 10Mbps thì khoảng cách chỉ còn 15m 3 Giải thích một số đặc tính RS-485 :  Các đường truyền cân bằng và không cân bằng: Sở dỉ RS-485 có thể truyền. .. Trong việc truyền dữ liệu nếu sử dụng các tín hiệu RTS, CTS … thì chúng ta cần phải viết chương trình cho chúng Trong việc truyền tín hiệu cho đề tài của em có sử dụng tín hiệu RTS, được viết như sau: (………………………………………………………………………….) o procedure Tform2.setRTS; var a: byte; begin a:=nhap(Reg2FC); a:=a or $ 02; xuat(Reg2FC,a); end; procedure Tform2.RESETRTS; var a : byte; begin a:=nhap(Reg2FC); a:=a and... thiết bò nào truyền thông nối tiếp bất đồng bộ Khi so sánh với Ethernet và những giao diện truyền thông theo những chuẩn khác thì giao diện RS-485 đơn giản và giá thành thấp hơn nhiều Theo nhận đònh của em ( đối với truyền khối dữ liệu nhỏ ) thì chuẩn RS-485 rất linh động Ta có thể chọn số lượng bộ điều khiển ( Master ), bộ nhận ( Slave ), chiều dài cáp, tốc độ truyền, số node cần giao tiếp, và rất... N= 32) kít vi xử lý :  Để kết nối máy tính với nhiều vi xử lý chúng ta phải thực hiện các bước chuyển đổi sau : o Chuyển đổi từ chuẩn RS -23 2 sang RS-485 để có thể truyền tín hiệu trên khoảng cách lớn khoảng 1.2km o Chuyển đổi từ RS-485 sang RS-485 sang TTL để phù hợp với áp vào của vi xử lý  Mức điện áp: o RS -23 2 truyền theo kiểu không cân bằng ( áp lệch so với đất ) o RS-485 truyền theo kiểu cân bằng ... documentsdelphi'; com2=$2F8; Reg2F8=com2+0; Reg2F9=com2+1; Reg2FA=com2 +2; Reg2FB=com2+3; Reg2FC=com2+4; Reg2FD=com2+5; (………………………………………………………………………….) procedure Tform2.Initcom; begin xuat(Reg2FB,$80);{DLAP=1}... thía RS -23 2C cho biết trạng thái thời tín hiệu điều khiển modem từ đường dây CHƯƠNG V: Giao Tiếp Máy Tính Với Vi Xử Lý I Truyền nhận qua cổng nối tiếp : Việc truyền nhận qua cổng nối tiếp thực... việc truyền liệu qua cổng nối tiếp ta phải thực bước sau: o Chọn cổng truyền Com 1, hay Com Đòa Com thường 3F8H, Com 2E8H Đối với số loại máy tính đòa cổng Com vào BIOS để set lên, nên viết chương

Ngày đăng: 16/11/2015, 11:12

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

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

Tài liệu liên quan