Thiết kế mạng giám sát và điều khiển MC68HC11 dùng RS 485
Trang 1MỤC LỤC
CHƯƠNG I GIỚI THIỆU 5
I TỔNG QUAN 5
II GIỚI THIỆU SƠ LƯỢC NỘI DUNG 5
III SƠ BỘ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN : 6
CHƯƠNG II CHUẨN TRUYỀN THÔNG RS232,RS422/485& ADAPTER CHUYỂN ĐỔI RS232–RS485 7
I GIỚI THIỆU: 7
I.1 RS232 7
I.2 RS-422/485 8
CHƯƠNG III MẠNG TRUYỀN THÔNG 23
I KÊNH TRUYỀN THÔNG 23
I.1 Khái niệm 23
I.2 Phân loại kênh: 23
I.3 Băng thông và tốc độ bit 23
I.4 Kênh thuê riêng (leased line) và kênh quay số (dial-up) 23
I.5 Điều chế tín hiệu 24
I.6 Các kỹ thuật điều chế 24
I.7 Sự đồng bộ trong điều chế số 24
I.8 Kiểu truyền 24
I.9 Truyền dữ liệu 24
I.10 Truyền thông kiểu nối tiếp bất đồng bộ 30
I.11 Truyền nối tiếp đồng bộ 31
II NETWORK PROGRAMMING 32
II.1 Các giao thức quản lý mạng 33
II.2 Định địa chỉ (Addressing) 37
II.3 Xác định thời gian truyền (Transmitter Enable Timing) 40
CHƯƠNG IV GIỚI THIỆU 68HC11 41
I GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN 41
I.1 Microcontroller Motorola MC68HC11 41
I.2 Đơn vị xử lý trung tâm (CPU) 44
I.3 Các mode định vị địa chỉ 46
I.4 Tập lệnh của họ MC68HC11 47
II CẤU HÌNH VÀ CÁC CHẾ ĐỘ HOẠT ĐỘNG 47
II.1 Các chế độ hoạt động 47
II.2 Các thanh ghi điều khiển 48
III XUẤT NHẬP SONG SONG 53
III.1 PORT A 53
Trang 2III.2 PORT B 54
III.3 PORT C 54
III.4 PORT D 54
III.5 PORT E 55
IV HỆ THỐNG TRUYỀN NỐI TIẾP 55
IV.1 Hệ thống SCI trong MC68HC11 : 55
IV.2 Các thanh ghi SCI và các bit điều khiển 56
V BỘ ĐẾM THỜI GIAN LẬP TRÌNH 60
V.1 Bắt giữ ngõ vào 61
V.2 So sánh ngõ ra 61
V.3 Các thanh ghi trong bộ đếm thời gian 61
VI RESET VÀ INTERRUPT 64
VI.1 Reset 64
VI.2 Hệ thống ngắt của vi xử lý MC68HC11 (interrupt) 66
VI.3 Sử dụng ngắt Reset và các vectơ ngắt khác của MCU68HC11 68 CHƯƠNG V THIẾT KẾ MẠCH VÀ LẬP TRÌNH 71
I MẠCH RS485 : 71
I.1 Giới thiệu SN75176: 71
I.2 Điều khiển phát data trên RS485 72
Phương pháp định thời theo hướng bít 73
I.3 Điều khiển nhận trên RS485 75
II CHƯƠNG TRÌNH THU THẬP DỮ LIỆU TỪ CÁC BOARD 78
II.1 Chương trình trên Vi xử lý 78
II.2 Chương trình trên PC 83
II.3 Kết quả thực hiện : 84
III DỮ LIỆU THU THẬP 87
III.1 Tính tốc độ động cơ 87
III.2 Chương trình đếm sản phẩm 91
III.3 Một số chương trình điều khiển đơn giản từ PC 91
KẾTLUẬN 107
PHỤ LỤC A CHƯƠNG TRÌNH MÁY TÍNH 109
B CHƯƠNG TRÌNH VI XỬ LÝ 117
C DATASHEETS 133
D TÀI LIỆU THAM KHẢO .134
Trang 3CHƯƠNG I GIỚI THIỆU
I TỔNG QUAN
• Tên đề tài : THIẾT KẾ MẠNG GIÁM SÁT VÀ ĐIỀU KHIỂN MC68HC11
DÙNG RS485
• Yêu cầu đề tài :
! Đề tài được thực hiện nhằm giám sát thu thập dữ liệu và điều khiển dữ liệu từ trung tâm thông qua mạng RS485
! Ứng dụng nguyên lý mới nghiên cứu về truyền thông RS485 trong thiết kế và lắp đặt mạng truyền thông nối tiếp (Bit oriented timing scheme)
! Các hệ thống hiện đại ngày nay có độ tin cậy cao đều dùng Họ vi điều khiển khá mạnh của Motorola
MC68HC-• Mục đích và cách giải quyết :
! Xây dựng qui trình lập mạng trên các bộ EVBU MC68HC11 cũng như các bộ vi điều khiển khác
thời theo hướng bit) trong thiết kế mạch chuyển đổi RS232C-RS485
! Thực hiện kiểm tra điều khiển và giám sát các kết quả lập mạng (phương thức truyền nhận, xử lý và điều chỉnh dữ liệu thu thập từ trên
máy tính, …)
II GIỚI THIỆU SƠ LƯỢC NỘI DUNG
Luận văn tốt nghiệp bao gồm 4 chương :
Chương 1 giới thiệu tổng quan và tóm tắt sơ lược nội dung từng mục trong luận văn Tiếp đó, Chương 2 sẽ trình bày một số lý thuyết về các chuẩn truyền thông RS232, RS422 và đặc biệt là RS485, các vấn đề liên quan đến tín hiệu vi sai, trở kháng, yêu cầu kỹ thuật, … trong thiết kế và lắp đặt hệ thống mạng RS485 Chương 3 giới thiệu các khái niệm chung về mạng truyền thông, giao thức truyền nhận, cách kiểm soát và xử lý sai số, các quy trình quản lý địa chỉ, thời gian… khi truyền dữ liệu Chương 4 sẽ trình bày cấu trúc họ vi điều khiển MC68HC11 bao gồm các thanh ghi chính, các đặc điểm xuất nhập I/O, hoạt động củabộ truyền phát nối tiếp và hệ thống Timer cũng như chi tiết cách sử dụng các ngắt ở các chế độ làm việc khác nhau của MCU Chương 5, được thực hiện dựa trên cơ sở các chương trên, bao gồm quá trình thiết kế và thi công mạch chuyển đổi RS232-RS485, các phương pháp điều khiển việc truyền nhận data, toàn bộ các lưu đồ giải thuật lập trình mạng theo giao thức Master/Slave, cách xử lý và thu thập dữ liệu dữ liệu từ
Trang 4hiện được, hướng phát triển đề tài Bên cạnh đó, chi tiết các chương trình Assembler, Visual Basic cũng như một số datasheet của các linh kiện sử dụng trong đề tài có thể tham khảo trong phần Phụ lục của luận văn Cuối Phụ lục là các tài liệu đã tham khảo trong quá trình thực hiện đề tài, một số địa chỉ các Website liên quan đến truyền thông nối tiếp, RS485 và họ Vi điều khiển 68HC11
• Luận văn đã thực hiện và giải quyết được các vấn đề sau :
! Thiết kế hoàn chỉnh mạch chuyển đổi RS232-RS485 theo nguyên lý mới
! Mạng thu thập dữ liệu theo giao thức đề ra
! Điều khiển dữ liệu theo yêu cầu
• Một số lý thuyết và ví dụ có thể áp dụng và phát triển qua đề tài này :
! Đề tài có thể áp dụng và phát triển thành một hệ thống SCADA thực thụ, thu thập và xử lý dữ liệu có khối lượng lớn
! Với nhiều đầu vào (từ các node), có thể áp dụng lý thuyết điều khiển mờ, nơron, lấy số liệu từ mạng để xây dựng các cơ sở dữ liệu cho đối tượng
! Bằng cách thu thập nhiều dữ liệu từ các node khác nhau, trung tâm điều khiển (máy tính) có thể phối hợp các số liệu này để đưa ra những lệnh điều khiển hoặc các thông báo quan trọng, đặc biệt trong lĩnh vực mà độ chính xác của các quyết định đưa ra đòi hỏi dựa trên những thông số nhận được như sản xuất, đo đạc…
! Nếu phối hợp thêm với các hệ thống điện thoại và vô tuyến (modem) tạo thành hệ thống mạng nhiều cấp độ, đề tài có thể áp dụng trong hệ thống thu thập dữ liệu phân tán (distributed system) đi vào các lĩnh vực ứng dụng rộng rãi như dự báo thời tiết, điều khiển thủy lợi, quản lý hệ thống điện dân dụng…
Mô hình mạng thu thập dữ liệu phân tán
Thiết bị thu thập số liệu dùng RS485
TB đo 1
TB đo 2
R S C ST R R D T DC D
T A L K / D A T A T A L K Modem
R S C ST R R D T DC D
T A L K / D A T A T A L K Modem
Máy thu phát
Điện thoại
Thiết bị thu thập số liệu dùng RS485
TB đo 1
TB đo 2
R S C S TR R D TD C D TAL K / D A TA TAL K Modem
R S C S T R R D T DC D
T A L K / D A T A T A L K Modem
Máy thu phát
Điện thoại
Máy thu phát
Điện thoại
R S C S T R R D T DC D
T A L K / D A T A T A L K Modem
R S C S T R R D T DC D
T A L K / D A T A T A L K Modem
Hệ thống tin học trung tâm
Trang 5CHƯƠNG II CHUẨN TRUYỀN THÔNG
RS232, RS422/485 & ADAPTER CHUYỂN ĐỔI RS232–RS485
I GIỚI THIỆU:
I.1 RS232
" Chuẩn RS-232C lần đầu tiên được giới thiệu vào năm 1962 do hiệp hội kỹ thuật điện tử EIA như là chuỗi giao tiếp truyền thông giữa máy tính và một thiết bị ngoại vi (modem, máy tính khác, máy vẽ, mouse …)
" Cổng giao tiếp RS-232C là giao diện phổ biến rộng rãi nhất Máy tính PC thường dùng chuột cho cổng COM1, COM2 để trống cho các ứng dụng khác Cùng với cổng máy in, cổng nối tiếp RS-232C được sử dụng rất thuận tiện cho các mục đích đo lường và điều khiển
" Việc truyền dữ liệu qua RS-232C được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi nối tiếp nhau trên một đường truyền dẫn Trước hết ,
vì loại truyền này có thể dùng cho những khoảng cách lớn hơn do khả năng gây nhiễu nhỏ đáng kể so với dùng cổng song song Mặt khác, việc dùng cổng song song có một nhược điểm đáng kể là cáp truyền dùng quá nhiều sợi và vì vậy làm tăng chi phí Hơn nữa, tín hiệu nằm trong khoảng 0-5V không thích hợp với khoảng cách lớn
" Tốc độ baud của RS232 thông thường có giá trị : 300, 1200, 4800, 9600,
19200 baud
1 8 DCD – Data Carrier Detect (ngõ vào)
2 3 RXD – Receive Data ( ngõ vào)
3 2 TXD – Transmit Data( ngõ ra)
4 20 DTR – Data Terminal Ready ( ngõ ra)
5 7 GND – Ground ( nối đất)
6 6 DSR – Data Set Ready ( ngõ vào
7 4 RTS – Request To Send ( ngõ ra)
8 5 CTS – Clear To Send ( ngõ vào)
9 22 RI – Ring Indicator( ngõ ra)
Sắp xếp chân của cổng nối tiếp ở máy tính
" Mức tín hiệu nhận và truyền qua chân RXD và TXD thông thường nằm trong khoảng –12V đến +12V, mức logic tín hiệu được đảo ngược lại.Mức điện áp
Trang 6" Ở trạng thái tĩnh trên đường vẫn có điện áp –12V, một bít khởi động (startbit) sẽ mở đầu cho việc truyền dữ liệu, tiếp sau đó là đến các bit dữ liệu; trong đó các bit có giá trị thấp được gửi trước tiên Số các bit dữ liệu thay đổi giữa 5 và
8 Cuối cùng là một bit dừng (stop bit) đặt lại trạng thái lối ra (-12V)
" Một trong những yêu cầu quan trọng của RS-232 là thời gian chuyển từ mức logic này tới một mức logic khác không vượt quá 4% thời gian 1 bit Vì thế, ở tốc độ 19200 baud, thời gian chuyển mức logic phải nhỏ hơn 0.04/19200=2,1µs Chính vấn đề này làm giới hạn chiều dài đường truyền Với tốc độ truyền 19200 baud ta có thể truyền xa nhất là 50ft (khoảng 15m)
" Một trong những vấn đề quan trọng cần chú ý khi sử dụng là RS-232C là mạch thu phát không cân bằng (single ended - đơn cực) Điều này có nghĩa là tín hiệu vào ra được so với đất Vì vậy, nếu điện thế tại hai điểm đất của hai mạch thu phát không bằng nhau thì sẽ có dòng điện chạy trên trên dây đất Kết quả là sẽ có áp rơi trên dây đất ( V=I.R) sẽ làm suy yếu tín hiệu
" Nếu truyền tín hiệu đi xa, điện trở R sẽ tăng dẫn đến áp rơi trên đất sẽ lớn dần đến lúc tín hiệu logic sẽ rơi vào vùng không xác định và mạch thu sẽ không đúng dữ liệu được truyền từ mạch phát Đây cũng là một trong những nguyên nhân giới hạn đường truyền ở chuẩn RS232
I.2 RS-422/485
I.2.1 Giới thiệu
Khi thực hiện thông tin ở tốc độ cao, hoặc qua một khoảng cách lớn trong môi trường thực, phương pháp đơn cực (single-ended) thường không thích hợp Việc truyền dẫn dữ liệu vi sai (hay tín hiệu vi sai cân bằng) cho kết quả tốt hơn trong phần lớn trường hợp Tín hiệu vi sai có thể loại bỏ ảnh hưởng do sự thay đổi khi nối đất và giảm nhiễu có thể xuất hiện như điện áp chung trên mạng
Trang 7RS422 được thiết kế dùng cho khoảng cách và tốc độ Baud rates lớn hơn so với RS232, mức tín hiệu có thể lên đến 100K bit/giây và khoảng cách có thể đạt 4000ft RS422 cũng có thể tạo thành mạng multi-drop network với một bộ truyền và khoảng 10 bộ nhận
Tuy nhiên, đối với một mạng multi-network thực sự gồm nhiều mạch phát và nhận cùng nối vào một đường dây bus chung, mỗi node đều có thể phát và nhận data thì RS485 đáp ứng các yêu cầu này Chuẩn RS485 cho phép 32 mạch truyền và mạch nhận cùng nối vào đường dây bus đơn (với bộ repeater tự động và các bộ truyền/nhận trở kháng cao, giới hạn này có thể mở rộng lên đến 256 node trên một mạng) Bên cạnh đó, RS485 còn có thể chịu được các xung đột data (data collision) và các điều kiện lỗi trên đường truyền
Để giải quyết vấn đề xung đột data thường xuất hiện trên mạng multi-drop network, các đơn vị phần cứng (converters, repeaters, micro-processor controls) được thiết kế để luôn duy trì ở trạng thái nhận cho đến khi chúng đã sẵn sàng truyền data Một node master sẽ kích khởi một yêu cầu truyền đến một slave node bằng cách định địa chỉ node đó Phần cứng phát hiện bit start của ký tự được truyền và tự động cho phép bộ truyền làm việc Sau khi một ký tự được truyền , phần cứng sẽ trở về trạng thái nhận sau một vài micro giây Khi có ký tự mới cần gửi, bộ truyền sẽ tự động được kích lại Như vậy, một slave node được định địa chỉ có thể đáp ứng ngay lập tức mà không cần thực hiện một khoảng delay dài để tránh xung đột
Những ưu điểm của RS485 so với RS232 :
• Chi phí thấp Bộ truyền và bộ nhận thường không quá đắt và chỉ đòi hỏi một
nguồn đơn +5V (hoặc thấp hơn) để tạo ra mức áp tối thiểu là 1,5V tại ngõ ra vi sai Ngược lại, ngõ ra tối thiểu của RS232 là 5V cần một nguồn cung cấp kép hoặc một chip có chi phí đáng kể để tạo ra các nguồn này
• Khả năng nối mạng Thay vì giới hạn ở 2 đơn vị, RS485 là giao diện có thể
cung cấp cho việc kết nối có nhiều bộ truyền và nhận.Với bộ nhận có trở kháng cao kết hợp với bộ repeater, RS485 có thể cho kết nối lên đến 256 node
RS232 có giới hạn từ 50 đến 100 feet
• Tốc độ nhanh RS485 có thể cho tốc độ lên đến 10 Megabits/giây
Trang 10I.2.2 Đường dây cân bằng và bất cân bằng:
Yếu tố chính cho phép RS485 có thể truyền qua một khoảng cách dài là việc dùng đường dây cân bằng(vi sai) Mỗi tín hiệu được truyền trên một cặp dây, với điện áp trên mỗi dây bằng với phần âm của điện áp trên dây còn lại Bộ nhận đáp ứng theo chênh lệch giữa các điện áp Đường dây vi sai còn có một ưu điểm lớn là khả năng loại nhiễu của nó
Ngược lại, RS232 dùng dây bất cân bằng hay đơn cực (single ended), bộ nhận đáp ứng theo sự khác biệt giữa mức điện áp tín hiệu và đường dây đất dùng chung (một giao diện bất cân bằng có thể có nhiều dây đất-ground, nhưng tất cả đều được nối lại với nhau)
Chuẩn TIA/EIA-485 gọi hai đường dây vi sai là A và B Tại bộ truyền, tín hiệu vào có mức logic TTL “high” sẽ làm mức áp trên dây A dương hơn trên dây
B, và mức logic “low” sẽ làm điện áp trên dây B dương hơn dây A Tại bộ nhận, nếu mức điện áp dây A dương hơn dây B, mức logic TTL xuất ra sẽ là mức high, ngược lại sẽ là mức low
So với mức điện áp đất, mỗi tín hiệu vào phải nằm trong tầm từ –7V đến +12V Điều này cho phép bộ truyền và bộ nhận có thể nối đất khác nhau Mức điện áp vi sai lớn nhất phải không được lớn hơn ±6V
Đường dây cân bằng ổn định vì hai dây tín hiệu mang dòng xấp xỉ bằng và ngược nhau Điều này sẽ giảm nhiễu nhận được vì phần lớn điện áp nhiễu chênh lệch nhau không nhiều trên hai dây Bất cứ tín hiệu nhiễu nào xuất hiện trên đường dây này sẽ bị triệt tiêu bởi một điện áp ngược lại trên dây kia Tại bộ nhận cân bằng, tín hiệu truyền được nhận với nhiễu đã bị triệt tiêu hoặc đã giảm đi phần lớn Ngược lại, trong giao diện bất cân bằng, bộ nhận phát hiện điện áp sai biệt giữa
Trang 11đường dây tín hiệu và đất Khi nhiều tín hiệu dùng chung một dây đất, dòng quay về trên mỗi dây sẽ làm giảm điện áp trên dây đất dùng chung này
Một thuận lợi khác trên đường dây cân bằng là chúng tránh được (trong một giới hạn nào đó) sự chênh lệch điện thế trên dây đất giữa bộ truyền và bộ nhận Trong một liên kết dài, điện thế đất tại bộ truyền và bộ nhận có thể chênh nhau đến vài volt Đối với đường dây bất cân bằng, điều này có thể làm bộ nhận đọc sai tín hiệu vào, nhưng đối với đường dây cân bằng, sự chênh lệch này không ảnh hưởng gì bởi bộ nhận chỉ phân biệt mức logic trên đầu vào dựa vào sự khác biệt điện áp giữa hai đường dây tín hiệu
Trên thực tế, các linh kiện RS485 chỉ chịu được sự chênh lệch điện áp giữa các đất trong giới hạn chỉ định trong datasheet Một cách khác để khử hoặc giảm vấn đề điện áp đất này là cách ly đường kết nối để điện thế đất của bộ truyền và bộ nhận không bị ảnh hưởng lẫn nhau
I.2.3 Yêu cầu về điện áp :
Giao diện RS485 chỉ dùng một nguồn đơn 5V, nhưng đây không phải là mức logic tại bộ truyền và bộ nhận Với một ngõ ra theo tiêu chuẩn , điện áp giữa đầu A và B phải ít nhất là 1,5 V
Mức điện áp giữa một đầu ra và đất thường không xác định nhưng mức điện áp mode dùng chung (common-mode voltage) phải nằm trong khoảng ±7V Nếu giao diện đạt được sự cân bằng hoàn hảo, mức offset sẽ bằng một nửa tầm điện áp nguồn Bất cứ sự không cân bằng nào có thể làm tăng hoặc giảm mức offset này
Tại bộ nhận RS485, tầm vi sai đầu vào A và B chỉ cần trên 0.2V tức 200mV Nếu áp tại A lớn hơn B 0.2V, bộ nhận sẽ hiểu đây là mức logic 1, ngược lại sẽ hiểu là mức logic 0 Nếu chênh lệch giữa A và B nhỏ hơn 0.2V, mức logic sẽ không được xác định
Sự khác nhau về yêu cầu điện áp tại bộ truyền và bộ nhận tạo ra độ giới hạn nhiễu (noise margin) khoảng 1.3V, tín hiệu vi sai có thể méo dạng hoặc có xung nhiễu bằng 1.3V và tại bộ nhận vẫn nhận được đúng mức logic Giới hạn nhiễu này tuy nhỏ hơn so với ở RS232 nhưng ta nên nhớ rằng tín hiệu vi sai của RS485 đã được triệt tiêu phần lớn nhiễu từ khi mới bắt đầu
Trang 12I.2.4 Yêu cầu về dòng:
Dòng điện trong nối kết RS485 thay đổi tùy theo trở kháng của các linh kiện trên liên kết, các linh kiện này bao gồm bộ truyền, cáp, bộ nhận và các trở kháng đầu cuối Trở kháng ngõ ra thấp và cáp có điện trở nhỏ cho phép tốc độ nhanh và bảo đảm bộ nhận nhận được tín hiệu lớn nhất có thể Trở kháng thấp tại bộ nhận giảm dòng điện trong liên kết và tăng tuổi thọ pin (nếu liên kết dùng nguồn pin)
Điện trở đầu cuối khi được dùng có ảnh hưởng nhiều nhất đến dòng tiêu thụ trong liên kết Nhiều liên kết RS485 dùng điện trở 120 Ohm trên đường dây vi sai tại hai đầu cuối của kết nối Sự kết hợp song song hai điện trở này là 60 Ohm Với liên kết ngắn, tốc độ chậm, nếu không mắc hai điện trở này sẽ giảm được công suất tiêu thụ
Khi không dùng điện trở đầu cuối, trở kháng vào của bộ nhận sẽ ảnh hưởng nhiều nhất đến tổng trở nối tiếp Tổng trở kháng vào thay đổi tùy theo số lượng các bộ nhận và trở kháng vào của chúng
Một bộ truyền RS485 có thể lái đến 32 tải đơn vị (unit load) Chuẩn TIA/EIA-485 định nghĩa một tải đơn vị dựa theo dòng điện Một bộ nhận tải đơn vị sẽ tiêu thụ dòng không quá giá trị chỉ định tại điện áp vào lớn nhất Với điện áp vào bộ nhận là 12V so với đất, một bộ nhận có tải đơn vị sẽ tiêu thụ dòng không quá 1mA Khi điện áp này là -7V, dòng tiêu thụ không quá -0.8mA Để thỏa mãn yêu cầu này, bộ nhận phải có trở kháng vào là ít nhất là 12,000 Ohm giữa mỗi đầu vào vi sai và nguồn hoặc đất, tùy theo chiều dòng điện
Với một bộ nhận tương đương tải đơn vị, trở kháng trên mỗi đầu vào là 12,000 Ohm (chú ý, đây là trở kháng từ một đầu vào với đất hoặc nguồn, không
Trang 13phải là trở kháng giữa hai đầu vào) Nếu có hai bộ nhận, trở kháng song song sẽ là
6000 Ohm Khi số bộ nhận lên 32, trở kháng song song kết hợp của các đầu vào sẽ chỉ còn 375 Ohm
Trở kháng vào có thể được tăng lên nếu dùng các bộ nhận bằng một phần tải đơn vị Chẳng hạn, trở kháng vào của một bộ nhận bằng 1/8 tải đơn vị là 96,000 Ohm, tổng trở kháng song song của 32 bộ là 3000 Ohm, các bộ nhận này có tốc độ chậm hơn các bộ nhận khác, mặc dù có một số, chẳng hạn MAX3088, hỗ trợ tốc độ lên đến 10Mbps
I.2.5 Tốc độ
Một liên kết RS485 có thể cho tốc độ lên đến 10Mbps hoặc dài tới 4000 feet nhưng hai chỉ số này không đi kèm nhau Đường cáp càng dài có tốc độ càng chậm Trên khoảng cách dài, điện dung của dây làm chậm sự chuyển đổi tín hiệu (signal transition)
Tại tốc độ 90 kps, RS485 và RS422 cho phép độ dài cáp truyền lên 4000 feet Với tốc độ nhanh hơn, giới hạn lớn nhất có thể được của dây cáp sẽ giảm xuống, khoảng 400 feet ở 1Mbps và 50 feet tại 10 Mbps
I.2.6 Full duplex
Giao diện RS485 được thiết kế để sử dụng trong hệ thống có nhiều node, với một hoặc nhiều bộ truyền hoặc nhận Phần lớn các kết nối RS485 đều là bán song công, trong đó bộ truyền và nhận dùng chung một đường tín hiệu Tuy nhiên, ta cũng có thể dùng RS485 dưới dạng song công, mỗi hướng truyền dùng một đường tín hiệu riêng Đây là giải pháp đơn giản khi ta muốn tạo một kết nối dài, song
Trang 14hơn và rẻ hơn so với RS232 Thuận lợi của cách kết nối này là nó tiết kiệm thời gian cho các slave (bộ nhận) vì chúng không phải đọc tín hiệu trả lời (master) từ các slave được hỏi Tuy nhiên, nếu dùng đường dây dài, chi phí sẽ tăng đáng kể
I.2.7 Half Duplex
Nhiều liên kết RS485 ở dạng bán song công, với nhiều bộ nhận và truyền dùng chung một đường tín hiệu Khi một liên kết có 3 node hoặc nhiều hơn, ta chú
ý rằng chỉ có một đường tín hiệu và chỉ có một node được truyền tại mỗi thời điểm
Do đó cần bảo đảm đường truyền đang ở trạng thái free khi một node muốn truyền
I.2.8 Mạch bảo vệ bên trong
Trong kết nối bán song công, chỉ có một bộ truyền được cho phép tại một thời điểm nhưng cho dù được thiết kế cẩn thận đến đâu, vẫn có thể có trường hợp tại một thời điểm nào đó hai hoặc nhiều bộ truyền đều được enable cùng một lúc Khi điều này xảy ra, nếu các driver kéo đường dây theo các trạng thái ngược nhau, tín hiệu trên đường dây sẽ ở mức logic không xác định, hiện tượng này gọi là sự tranh chấp trên đường dây (line contention)
Tất cả các chip RS485 đều có giới hạn dòng (curent limiting) và tự động shutdown do quá nhiệt (thermal shutdown) để bảo vệ chip nếu có nhiều hơn một bộ nhận được cho phép cùng lúc Giới hạn dòng hạn chế dòng ra của bộ truyền Theo chuẩn TIA/EIA-485 mức giới hạn này phải dưới 250mA Nếu ngõ ra output tiếp tục đưa ra dòng cao, nhiệt độ của chip sẽ tăng lên và cuối cùng mạch bảo vệ quá nhiệt bên trong chip sẽ chuyển ngõ ra sang trạng thái trở kháng cao(high-impedance state) Điều này cũng đồng nghĩa với việc ngõ ra sẽ không thể sử dụng cho tới khi nó được hạ nhiệt, nhưng bảo đảm linh kiện sẽ không bị hư
Trang 15Typical RS485 two wire network
Trang 16I.2.9 Đường dây dài và ngắn (Long and Short Lines)
Một liên kết RS485 có thể là đường dây dài hoặc ngắn, khái niệm dài hay ngắn không đề cập đến chiều dài vật lý mà muốn nói đến khoảng thời gian yêu cầu để một tín hiệu truyền trên đường dây đến bộ nhận Thời gian này thay đổi theo chiều dài dây, tần số sóng mang và tốc độ của tín hiệu
Khi đường dây ngắn và tần số thấp, thời gian yêu cầu để tín hiệu truyền trên
đường dây ít ảnh hưởng đến chất lượng tín hiệu, và đường dây được gọi là short
line Nói chung, short line có thể hiểu là dây dẫn hoàn hảo, có trở kháng bằng zero
Khi ngõ ra chuyển đổi trạng thái, ta có thể chắc rằng tại đầu cuối của kết nối nhận được ngay lập tức mức tín hiệu đúng
Khi đường dây là dài và tần số lớn, thời gian để một tín hiệu truyền trên dây
mang ý nghĩa quan trọng Đường dây lúc này được gọi là long line hay transmision
line Trên đường dây dài (long line) các linh kiện thích hợp tại đầu cuối sẽ bảo đảm
bộ nhận nhận được tín hiệu đúng bằng cách giảm điện áp phản xạ (reflected voltage) trên đường dây
Theo nguyên tắc chung, một kết nối là đường dây dài nếu thời gian lên (rise time) của tín hiệu nhỏ hơn 4 lần thời gian delay một chiều (one-way cable delay) Thời gian delay một chiều, one-way delay, được định nghĩa là thời gian để tín hiệu truyền từ driver đến receiver Hay nói cách khác, nếu one-way cable delay lớn hơn 1/4 rise time (giá trị phân số này có thể thay đổi, một số tài liệu dùng 1/2 hoặc 1/4 ),
ta có đường dây dài RS232 luôn được coi là short line do sự giới hạn chiều dài
đường truyền và tốc dộ thấp Giá trị này có thể tính bằng cách lấy độ dài dây chia cho tốc độ truyền của tín hiệu Đối với dây cáp đồng tốc độ truyền của tín hiệu điện bằng 2/3 hoặc 3/4 tốc độ ánh sáng, khoảng từ 200 triệu m/s (hay 8 inches/ns) đến 225 triệu m/s (9 inches/ns) Sau đây là một số thời gian delay một chiều theo các độ dài cable khác nhau
One-way delay (µs) 0.003 0.015 0.15 1.5 15 Nếu thời gian lên của tín hiệu không được biết, có một cách khác để xác định đường dây là dài hay ngắn là so sánh độ rộng ngắn nhất có thể của một bit với one-way delay Nếu độ rộng bít lớn hơn 40 lần thời gian delay, bất cứ sự phản xạ nào cũng sẽ xác lập về 0 trước khi bộ nhận đọc các bit
Nếu dùng SN75176, thời gian lên ( tra trong datasheet) là :
tPLH = 21 ns (typical) hoặc 35 ns (maximum)
Trang 17I.2.10 Line terminations
Mỗi transmission line tức long line đều có một trở kháng đặc tính (character
impedance) Giá trị này thay đổi tuỳ theo bán kính dây, khoảng cách với các dây khác trong một đường cáp và dạng cách ly (insulation) Nó là hằng số với chiều dài dây
Trở kháng đặc tính là một thông số quan trọng vì ban đầu bộ nhận sẽ xem transmission line như là một tải (bằng với trở kháng đặc tính của dây) Tải này sẽ quyết định dòng chạy trong dây khi điện áp được cấp hay khi ngõ ra chuyển đổi trạng thái Nếu tải của bộ nhận hoà hợp với trở kháng đặc tính, tín hiệu được truyền sẽ rơi trên đầu cuối với độ méo dạng được giảm đi tối thiểu do sự phản xạ về áp cũng như dòng đã ở trạng thái xác lập Nếu hai giá trị này không bằng nhau, sự phản xạ sẽ xảy ra, tín hiệu được truyền đi sẽ không được hấp thụ đầy đủ tại bộ nhận, một phần sẽ bị phản xạ lại trên đường dây Điều này sẽ làm bộ nhận đọc sai mức logic cần thiết
Trong tất cả các trường hợp, sự phản xạ xảy ra rất nhanh, trong suốt và ngay sau khi ngõ ra chuyển đổi trạng thái Chỉ có sự khác biệt là trên đường dây dài sự phản xạ xảy ra lâu hơn và đủ để bộ nhận đọc sai mức logic Đối với đường dây
ngắn (short line), sự phản xạ nhanh chóng kết thúc và không ảnh hưởng đến mức
logic cần nhận
Để tránh trường hợp này ta cần hoà hợp trở kháng, tức làm cho trở kháng đặc tính của dây bằng với trở kháng đầu vào của bộ nhận Để thực hiện việc hoà hợp trở kháng, có nhiều cách khác nhau nhưng cách thường dùng nhất là mắc một điện trở bằng với trở kháng đặc tính (thường có giá trị 120 Ohm hoặc 100 Ohm) nối giữa hai đường dây vi sai (parallel termination) Khi có hai hoặc nhiều hơn driver cùng chia sẻ một cặp dây, mỗi đầu cuối của liên kết được mắc một điện trở 120 Ohms, cho dù có bao nhiêu node trên đường dây, chỉ nên có không quá 2 điện trở đầu cuối (RT) Tuy nhiên, việc dùng các điện trở này cũng làm tăng tải trên đường dây, mạch lắp đặt phức tạp hơn, làm thay đổi điện áp phân cực và việc kiểm tra hệ thống cũng trở nên khó khăn hơn
Trang 18Để quyết định có nên dùng các trở kháng đầu cuối hay không tùy thuộc vào chiều dài cáp và tốc độ truyền dữ liệucủa hệ thống Như ở trên ta đã thấy, đối vơi
short line, việc hoà hợp tải là không cần thiết bởi sự phản xạ không có ảnh hưởng
nhiều đến tín hiệu truyền Bên cạnh đó, ta cũng tiết kiệm năng lượng và mạch kết nối cũng sẽ đơn giản hơn
I.2.11 Mạch phân cực (Biasing)
Một mạng RS485 phải được thiết kế sao cho chỉ có một node đóng vai trò là driver được cho phép tại mỗi thời điểm Để thực hiện điều này, mỗi node muốn truyền phải đợi cho đến khi node truyền trước đó hoàn thành việc truyền dữ liệu và đã được disable Như vậy chắc chắn có một khoảng thời gian nào đó tất cả driver đều bị cấm (disable)
Nếu không có bộ truyền nào được phép, mức tín hiệu tại đầu vào bộ nhận có thể ở trạng thái không xác định Nếu bộ nhận phát hiện mức logic 0, nó sẽ hiểu đó là bit Start và cố gắng đọc một byte Do đó, cần giữ mạng RS485 ở trạng thái
“iddle” ( tức mức 1, VA > VB ) trong thời gian không có driver nào được enable
Phần lớn các chip RS485 đều có mạch phân cực bên trong nhằm giữ điện áp tại A luôn dương hơn điện áp tại B khi không có driver nào thực hiện việc truyền dữ liệu, tuy nhiên khi mắc thêm điện trở đầu cuối, chức năng này bị mất tác dụng Một mạch phân cực tiêu biểu bên trong chip gồm 1 điện trở 100K kéo dây A lên nguồn và một điện trở 100 K kéo dây B xuống đất Nếu mắc thêm một điện trở 120 Ohm giữa hai dây A và B , áp rơi trên điện trở này sẽ bằng :
120 x 5V/(2x100K +120) ≈ 3mV << 200 mV
Trang 19Một trong các phương pháp để giải quyết vấn đề này là mắc các điện trở nhỏ hơn song song với mạch phân cực bên trong sao cho phần điện áp nối tiếp rơi trên điện trở đầu cuối lớn hơn 200 mV
Các điện trở phân cực (biasing resistor) và liên kết song song giữa điện trở đầu cuối và trở kháng vào của bộ nhận tạo nên một bộ phân áp Điện trở phân cực lấy giá trị 470 Ohm hoạt động khá tốt với mọi liên kết dùng hai điện trở đầu cuối có 32 tải đơn vị và xài nguồn 5V Điện trở phân cực nhỏ hơn sẽ tăng độ dự trữ nhiễu (noise margin) nhưng cũng làm tăng công suất tiêu thụ Nếu dùng điện trở đầu cuối lớn hơn 120 Ohm, các điện trở phân cực có thể lấy giá trị lơn hơn một chút, chẳng hạn, một mạng RS485 dùng RT = 150 Ohms có thể dùng điện trở phân cực bằng 560 Ohm Với mạch phân cực như trên, nếu mắc thêm một điện trở 120 Ohm giữa hai dây A và B, điện áp rơi trên điện trở này ở trạng thái iddle là :
VT ≤ 120 x 5V /(2x470 +120) ≈ 566 mV ( giá trị thực đo được gần 400 mV)
I.2.12 Cáp xoắn (Twisted-pair Cable)
Một trong các phương pháp giảm ảnh hưởng của nhiễu là dùng cặp cáp xoắn để nối kết mạng giữa các node Trên một cặp dây xoắn, mỗi nút xoắn sẽ làm thay đổi vị trí dây, bất cứ nhiễu từ nào sinh ra trên một dây này sẽ bị triệt tiêu bởi một nhiễu bằng và có giá trị ngược lại trên đường dây kia ở nút xoắn kế tiếp
Trường từ sinh ra trong mạch tỉ lệ với khoảng cách giữa các dây dẫn, nếu xoắn hai dây thật chặt với nhau sẽ giảm khoảng cách này và do đó cũng làm giảm trường từ và lượng nhiễu sinh ra Với cáp chứa hai cặp dây xoắn, một cặp có thể dùng cho tín hiệu RS485 và cặp còn lại nối đất
I.2.13 Ground in a differential link
Trang 20Dòng điện trong đường dây cân bằng RS485 xấp xỉ nhau (nearly, but not exactly, equal) Dòng điện trong dây đất có thể rất nhỏ nhưng không bằng zero Nếu không nối đất, dòng trả về phải tiêu tán ở đâu đó và có thể sự phát xạ năng lượng sẽ tạo nên hiệu ứng EMI
Trong một vài kết nối RS485, tất cả các node và ngay cả chính liên kết đều dùng chung một dây đất Một số kết nối cách ly liên kết và node Trong cả hai trường hợp, tất cả driver và receiver của mạng đều nên nối chung dây đất (cho dù các dây đất này ở các nguồn khác nhau) Cáp RS485 sẽ có một dây nối các ground của các node với nhau hoặc nguồn cung cấp cho các node sẽ dùng chung đất, có thể dùng dây mắc chung hoặc qua earth ground Trong liên kết ngắn (short link), nhiều node có thể được cấp điện từ một nguồn chung,
Nếu mỗi node dùng nguồn cung cấp từ các hệ thống khác nhau, điện thế trên đường dây đất của mỗi node có thể chênh lệch nhau, một điện trở 100 Ohm 0,5W mắc giữa đất của node và dây đất của liên kết sẽ bảo vệ linh kiện mạng bằng cách hạn dòng trên đường dây đất trong trường hợp điện thế đất thay đổi
Trang 21CHƯƠNG III MẠNG TRUYỀN THÔNG
I Kênh truyền thông
I.1 Khái niệm
Kênh truyền thông đơn giản là một đường vật lý dùng để kết nối hai thiết bị truyền thông (Data Terminal Equipment - DTE), đường này có thể là cáp điện, cáp quang hoặc vô tuyến
I.2 Phân loại kênh:
Về cơ bản kênh truyền thông có thể được chia ra thành hai loại kênh truyền tín hiệu tương tự (analog) và kênh truyền tín hiệu số (digital)
Tín hiệu số truyền trong kênh truyền có thể được mã hoá và truyền đi nguyên dạng dữ liệu ban đầu mà không qua điều chế, khi đó ta có truyền dữ liệu dải nền (baseband transmission) Mặt khác, tín hiệu số có thể được điều chế bằng sóng mang cao tần để truyền đi trong miền tần số cao sử dụng các kỹ thuật điều chế số như ASK (điều chế theo biên độ), FSK(điều chế theo tần số), PSK(điều chế theo pha),…
I.3 Băng thông và tốc độ bit
Mỗi kênh được thiết kế gắn liền với loại tín hiệu mà nó đảm nhận việc truyền tải, chẳng hạn kênh truyền hình sẽ truyền tín hiệu hình ảnh, kênh điện thoại chỉ truyền tín hiệu tiếng nói Đối với kênh analog, việc định nghĩa băng thông khá rõ ràng, đó là khoảng cách giữa tần số thấp nhất với tần số cao nhất của tín hiệu mà nó truyền đi Ví dụ, kênh điện thoại có khả năng truyền tín hiệu tiếng nói có tần số từ 0 Hz đến 4000 Hz nên nó có băng thông là 4KHz
Đối với kênh truyền tín hiệu số, người ta thường quan tâm đến tổng số bit thông tin được truyền đi trong một giây Đại lượng này được gọi là tốc độ truyền dữ liệu của kênh Tốc độ truyền dữ liệu và băng thông của một kênh có liên quan tỷ lệ thuận với nhau, tuy nhiên chúng còn tuỳ thuộc vào kỹ thuật điều chế
I.4 Kênh thuê riêng (leased line) và kênh quay số (dial-up)
Đối với các kết nối tạm thời giữa hai đầu truyền tin, người ta dùng cơ chế quay số, còn gọi là kênh dùng chung Người có yêu cầu kết nối sẽ thực hiện việc quay số đến nhà cung cấp dịch vụ và được bộ chuyển mạch (tại tổng đài) dò tìm một kênh còn rãnh để cung ứng, sau khi phiên kết nối chấm dứt, kênh truyền sẽ được trả về trạng thái tự do, sẳn sàng phục vụ cho cuộc kết nối khác Khác với kênh quay số là kênh thuê riêng; kênh này được thiết lập một lần và dùng cho kết nối thường xuyên 24 giờ mỗi ngày
Trang 22I.5 Điều chế tín hiệu
Khi muốn truyền thông tin từ một điểm này tới một điểm khác, tín hiệu cần phải được điều chế nhờ sóng mang qua một trong các kỹ thuật điều chế thích hợp Thực chất là sóng mang chỉ truyền đi bản mã của tín hiệu chứ không phải là tín hiệu thực sự và như vậy bên nhận chỉ nhận được bản mã này và suy đoán để tạo ra bản sao của tín hiệu thực
I.6 Các kỹ thuật điều chế
I.6.1 Điều biên (AM – Amplitude Modulation)
Kỹ thuật điều biên làm việc dựa trên nguyên tắc làm biến thiên biên độ sóng mang để mã hoá tín hiệu, tạo thành 1 hoặc 2 đường bao đối xứng Kỹ thuật này thường dùng trong phát thanh với dãi tần trung bình
I.6.2 Điều tần (FM – Frequency Modulation)
Kỹ thuật điều tần dùng sự biến thiên tần số của sóng mang để mã hoá tín hiệu Một số modem làm việc theo nguyên tắc điều tần để chuyển thông tin máy tính thành tín hiệu tương tự thuộc dải phổ tiếng nói
I.6.3 Điều pha (PM – Phase Modulation)
Phương pháp điều pha hoạt động theo nguyên tắc thay đổi pha của sóng mang theo sự biến thiên của tín hiệu Phương pháp PM thường được ứng dụng trong kỹ thuật truyền hình mày analog
Sự đồng bộ trong điều chế số cũng như truyền dữ liệu là vô cùng quan trọng nhằm bảo đảm cho bên thu nhận được thông tin một cách chính xác và như vậy phải có một sự nhịp nhàng ăn khớp giữa bên phát và bên thu Việc này được thực hiện bằng nhiều cách tuỳ thuộc vào phương thức truyền Chẳng hạn đối với truyền đồng bộ hướng bit, bên phát sẽ xen bit đồng bộ vào chuỗi bit thông tin, đối với truyền thông đồng bộ hướng ký tự, sự đồng bộ được thực hiện bằng cách truyền đi những ký tự SYN; đối với truyền dị bộ nối tiếp, bên phát sẽ gắn thêm các bit start và stop vào từ mã (code)
Về cơ bản có thể nói có hai kiểu truyền dữ liệu nối tiếp và song song Với kiểu truyền song song, nhiều bit thông tin đi đồng thời trên nhóm đường dây vật lý hoặc nhóm kên logic trong khi đối với kiểu truyền nối tiếp các bit thông tin được truyền tuần tự trên 1 đường dây hoặc 1 kênh
I.9 Truyền dữ liệu
I.9.1 Khái niệm
Trang 23Cấu hình tiêu biểu của hệ thống truyền dữ liệu bao gồm:
! Máy host, còn gọi là máy tính chủ, có thể là một PC, một máy mainframe hoặc minicomputer có nhiệm vụ cung cấp dữ liệu hoặc tài nguyên khác cho đầu cuối Kiểu kết nối giữa máy chủ và máy tính trong mạng thường dùng theo kiểu kết nối xa qua cáp, vô tuyến
! Máy tính nhận - trạm làm việc là một PC, một workstation hay một terminal, lấy dữ liệu hoặc lấy kết quả tính toán từ máy tính chủ
I.9.2 Protocol
Dữ liệu khi truyền giữa các máy tính phải được đóng gói theo một cách thức xác định nào đó để nơi thu và nơi phát có thể thống nhất hiểu nhau mà thu phát dữ liệu Cách thức truyền tin, đóng gói dữ liệu được gọi là giao thức truyền thông tin (hay còn gọi là Protocol)
Protocol có thể xem là một bộ các qui ước ràng buộc về trao đổi thông tin Khi cài đặt nó có thể là một driver hoặc một đoạn mã trong firmware, hay trong chương trình ứng dụng
Tổng quát, protocol có 4 tác vụ cơ bản :
o Request : yêu cầu thực hiện một thao tác
o Indication : Thông báo đã nhận được một sự kiện đang chờ xử lý
o Reponse : Trả lời rằng chấp nhận hoặc không chấp nhận đối với yêu cầu sự kiện xử lý
o Confirm : Báo cáo rằng bên kia (hoặc lớp khác) đã phúc đáp yêu cầu
Các tác vụ cơ bản của một giao thức
Hai kiểu liên lạc của Protocol:
Hoạt động của protocol được chia thành hai loại, đó là liên lạc không kết nối (connectionles) và liên lạc hướng kết nối (connection oriented)
Đối với các protocol không kết nối, việc truyền dữ liệu rất đơn giản, chỉ cần truyền các gói dữ liệu đến nơi mà nó quan hệ trực tiếp mà không cần biết gói sẽ đi đường nào và dĩ nhiên trên gói dữ liệu đó có chứa địa chỉ nơi nhận Thao tác truyền
Trang 24tin như thế giống như một người đem bức thư tới bưu điện gần nhà để gởi cho một người ở xa
Đối với các protocol có kết nối, việc trao đổi dữ liệu tiến hành cẩn thận hơn Đầu tiên là gởi yêu cầu kết nối vơi bên đối phương, kế tiếp là thủ tục bắt tay (handshaking) và sau đó là trao đổi thông tin Cuối cùng là thủ tục kết thúc kết nối Tiến trình này tương tự như một người gọi điện thoại để trao đổi thông tin với người
ở xa Các bước của tiến trình liên lạc hướng kết nối xảy ra theo mô tả sau :
Connection ReponseConnection Confirm
Bước 1 : Kết nối và bắt tay (quay số và nhấc máy)
Bước 2 : Truyền dữ liệu (nói chuyện, trao đổi)
Bước 3 : Chấm dứt kết nối (cúp máy)
Mô tả protocol có kết nốiTóm lại, giao thức truyền thông tin là một tập hợp các qui định về thủ tục truyền thông như độ dài gói dữ liệu, phương thức kiểm lỗi, kiểu truyền thông, phương pháp điều khiển luồng … được cài đặt tại máy chủ và máy tính nhận hoặc các thiết bị mạng dưới dạng phần mềm ứng dụng
I.9.3 Cơ sở truyền dữ liệu
Trang 25! Từ mã (code word) là một chuỗi bit mã hóa dạng nhị phân cho một đơn
vị thông tin là ký tự Tập hợp các đơn vị thông tin được mã hoá theo một quy luật xác định tạo ra bộ mã Trông truyền thông, bộ mã hay gặp là bộ mã ASCII
! Byte là sự kết hợp 8 bit liên tục mà đôi khi còn gọi là octet hay octave Đây là một đơn vị bộ nhớ, còn được gọi là ô nhớ trong bộ nhớ máy tính Các kiểu đường truyền
! Đơn công (Simplex Communication) :
Là kiểu truyền thông một chiều Dữ liệu chỉ có thể truyền đi theo một chiều từ thiết bị này sang thiết bị khác mà không có chiều ngược lại Phương pháp này được áp dụng nhiều trong mạng nhắn tin paging, các hệ thống broadcast như phát thanh, truyền hình
! Bán song công (Half Duplex Communication ) :
Kiểu này cho phép hai đầu truyền tin có thể thu và phát thông tin trên cùng một kênh truyền vật lý nhưng hai quá trình không được phép xảy ra đồng thời,tại một thời điểm chỉ có một node truyền và một node nhận
! Song công (Full Duplex Communication ) :
Đây là kiểu truyền thông trong đó hai quá trình thu và phát có thể xảy ra đồng thời trên cùng một kênh truyền vật lý, dữ liệu được phép truyền đồng thời giữa hai thiết bị Kiểu truyền thông này thường được ứng dụng trong mạng điện thoại
I.9.4 Kiểm soát sai số
Trang 26Kiểm soát sai số là quá trình kiểm tra tính chính xác của dữ liệu truyền của giao thức Có nhiều phương pháp để kiểm tra sai số như kiểm tra chẳn lẻ, kiểm tra checksum, kiểm tra CRC…
Kiểm tra chẳn lẻ thường thấy trong truyền thông máy tính, một bit parity được truyền theo các bit data, việc kiểm tra được thực hiện bằng cách so sánh kết quả tổng các bit 1 trong data là chẳn hay lẻ với bit parity được gởi kèm
Đối với kiểm tra checksum, có nhiều cách khác nhau, checksum có thể bằng byte thấp hoặc có thể là bù 1 của tổng các byte dữ liệu Giả sử nếu 2 byte dữ liệu là $F1 và $A2 được truyền đi, tổng của hai byte này sẽ là $193, checksum gởi đi có thể là $93 hoặc $6C (là bù 1 của $193) Tại node nhận, nếu byte thấp của tổng các byte dữ liệu nhận được bằng checksum gửi xuống (nếu truyền đi checksum là
$93) hoặc nếu cộng byte này với checksum (nếu truyền đi checksum là $6C) và 1 có kết quả bằng 0 thì dữ liệu được xem là đúng
Phương pháp kiểm tra CRC được xem như một trong những phương pháp kiểm soát sai số có độ tin cậy cao nhất nhưng cũng phức tạp nhất Phương pháp này định nghĩa các đa thức bậc cao như sau:
Giả sử P(x) là đa thức dữ liệu bậc n biểu diễn chuỗi dữ liệu n+1 bit (thường là một frame) Ví dụ chuỗi 11 bit 10110010110 được biểu diễn bằng đa thức:
! Lấy P(x) chia cho G(x) theo kiểu modulo 2, kết quả phần dư R(x) là một
đa thức bậc thấp hơn bậc của G(x)
! Thêm m-1 bit 0, với m là bậc của G(x) vào sau P(x) ta được P1(x) có bậc n+m-1
! Cộng P1(x) với R(x) theo kiểu cộng đại số ta được đa thức Pc(x) là thông tin truyền đi
Bên nhận sau khi nhận được gói thông tin Pc(x) sẽ kiểm tra sai số bằng cách chia Pc(x) cho G(x) theo kiểu modulo 2, nếu phần dư của phép chia là 0 thì xem như dữ liệu truyền đi an toàn
Tuy nhiên độ tin cậy của phương pháp này không đạt được 100% như mong muốn vì trong một số trường hợp CRC không phát hiện được lỗi Độ tin cậy còn tuỳ thuộc vào bậc của đa thức sinh Sau đây là một ví dụ minh họa cho phương pháp CRC:
Trang 27! Dữ liệu cần truyền là 1011101 , tức P(x) = x + x + x + x + 1
! Chọn đa thức sinh là G(x) = x2 + 1 (tức 101)
! Thực hiện phép chia modulo -2 tìm R(x)
1011101-101
11-101000110
Như vậy phần dư là 11, tức R(x) = x+1, dữ liệu truyền sẽ là
000 Như vậy chuỗi bit được truyền nhận chính xác; ngược lại giả sử trong quá trình truyền, bit 1 bị sai, tức dữ liệu nhận được là 101110101, thay vì 101110111 phép kiểm tra như sau :
101110101
-101
000110
-101000110-101
0011 Tuy nhiên trong một số trường hợp chẳng hạn cả bit 0 và bit 2 đều sai tức dữ liệu nhận được là 101110010, thay vì 101110111 thì phép kiểm tra sẽ không phát hiện được :
Trang 28000110-101000101-101
000 Có nhiều tên gọi phương pháp CRC tuỳ thuộc vào bậc của G(x) Ví dụ bậc của G(x) là 12 , ta gọi là CRC-12, nếu bậc G(x) là 32 , ta gọi là CRC-32 Một số các chuẩn đa thức sinh thường được chọn như sau:
I.10 Truyền thông kiểu nối tiếp bất đồng bộ
Dữ liệu được truyền giữa hai đầu truyền thông theo kiểu nối tiếp từng bit, nhưng nội tại trong bản thân thiết bị đầu cuối, ví dụ từ CPU đến vi mạch truyền thông UART, thì quá trình truyền dữ liệu lại ở dạng song song Như vậy cần thiết phải có một quá trình biến đổi dữ liệu từ dạng truyền song song sang nối tiếp và ngược lại
I.10.1 Nguyên tắc đồng bộ bit
Quá trình đồng bộ bit xảy ra khi bắt đầu có dữ liệu đến Bình thường nếu không có dữ liệu đến, đường dây sẽ ở mức logic cao (bit 1) còn gọi là trạng thái idle Khi 1 byte được truyền thì startbit (mức logic 0) sẽ đi trước, như vậy đường dây từ mức logic cao chuyển xuống mức logic thấp sẽ kích vào một bộ đếm counter làm nó hoạt động Bộ counter bắt đầu đếm với giá trị ban đầu là n/2, sau khi đếm tới n thì mạch lấy mẫu bắt đầu hoạt động để lấy dữ liệu tại điểm giữa của bit-cell đến Sau đó bộ counter sẽ được đặt lại giá trị zero và quá trình đếm sẽ được tiếp tục diễn ra như thế
I.10.2 Nguyên tắc đồng bộ byte
Việc đồng bộ byte khá đơn giản, vấn đề là làm thế nào để bên thu và bên phát thống nhất với nhau về số bit trong 1 ký tự, số stop-bit, số start-bit, có bit chẳn lẽ hay không và nếu có thì kiểm tra chẳn hay kiểm tra lẻ, theo bit 0 hay theo bit1… Quá trình này sẽ gắn liền với việc đồng bộ khung khi truyền dữ liệu
I.10.3 Nguyên tắc đồng bộ khung
Trang 29Thông thường dữ liệu không phải truyền riêng lẻ từng byte mà chúng được truyền đi từng khối n byte dưới dạng frame, packet hay segment Có hai dạng dữ liệu là ASCII (chỉ chứa các ký tự in được) và dạng nhị phân (chứa mọi ký tự) Với dữ liệu loại ASCII, việc đồng bộ khung khá đơn giản, chỉ cần qui ước một ký tự nào đó đóng vai trò ký tự đầu khung và một ký tự cuối khung Thông thường 2 ký tự STX (Start of Text character) và ETX (End of Text character) có sẵn trong bảng ASCII chuẩn đảm nhận chức năng này
Các byte dữ liệu
I.11 Truyền nối tiếp đồng bộ
Một điểm khác cơ bản giữa truyền đồng bộ so với bất đồng bộ là truyền đồng bộ không có startbit và stopbit đi kèm theo từ mã Nguyên tắc của truyền đồng bộ là xen vào các xung đồng bộ vào chung với thông tin lúc mã hoá để truyền
đi Có hai cách truyền đồng bộ là đồng bộ hướng bit (bit oriented) và đồng bộ hướng ký tự (character oriented)
I.11.1 Truyền đồng bộ hướng ký tự :
Phương pháp này định nghĩa một số ký tự điều khiển như ký tự đồng bộ (SYN), ký tự bắt đầu văn bản (STX), ký tự kết thúc văn bản (ETX)
Trang 30ETX Dữ liệu STX SYN SYN SYN Nguyên tắc lấy đồng bộ như sau : đầu tiên có thông tin đến trên đường dây, bên thu bắt đầu dò tìm ký tự SYN (có giá trị 01101000) bằng cách đặt đồng bộ bit, qua đó lần lượt lấy 8 bit liên tiếp và so sánh với từ mã của bộ ký tự SYN Sau khi tim được ký tự SYN, tức đã đạt được đồng bộ ký tự, bên thu sẽ nhận từng byte và
so sánh với các ký tự điều khiển như STX, ETX … nhằm phân biệt ký tự điều khiển và dữ liệu
Đối với truyền tập tin binary, các ký tự DLE được thêm vào trước STX, ETX và nhân đôi ký tự DLE có mặt trong dữ liệu trước khi truyền Quá trình tìm ký tự đồng bộ và loại bỏ các ký tự điều khiển cũng diễn ra tương tự
I.11.2 Truyền đồng bộ hướng bit
Phương pháp này không định nghĩa các ký tự điều khiển như SYN, ETX … mà đưa ra 1 chuỗi 8 bit điều khiển gọi là cờ có giá trị 01111110 Dữ liệu được truyền liên tục thành 1 chuỗi bit dài Để tránh nhầm lẫn giữa dữ liệu và cờ, nếu xét thấy dữ liệu có xuất hiện 5 bit 1 liên tục, bên phát sẽ xen bit 0 vào trước khi truyền đi Thành phần dữ liệu bắt đầu bằng cờ mở và kết thúc bằng cờ đóng có giá trị giống nhau
1
1 1 1 1 0 1 1 1 1 1 0 dữ liệu
cờ đóngcờ mở
đường dây ở mức
logic cao (iddle)
Việc lập chương trình cho một liên kết nối tiếp trở nên phức tạp khi có hơn
3 node cùng nối vào đường truyền Mỗi node cần biết khi nào có thể truyền dữ liệu và khi nào dữ liệu truyền đến là dành cho nó
Một trong các vấn đề cần quan tâm là làm sao mạng quản lý được đường thông tin của nó Có nhiều dạng mạng khác nhau và cũng có nhiều cách lập trình chúng, nhưng phần lớn đề có chung các đặc điểm sau :
• Mỗi node đều có thể truyền và nhận
• Chỉ có một node được truyền tại một thời điểm
• Mỗi node cần nhận biết và trả lời đối với message dành cho nó và bỏ qua (ignore) các message khác
• Node truyền phát hiện khi nào message được gửi đi không được nhận hay không hiểu bởi node nhận và phải có hành động thích hợp
Các bước khi trao đổi một thông điệp ( message) :
Trang 31Ngay cả trong một mạng đơn giản nhất , ta cũng cần bảo đảm tất cả các message được truyền đi sẽ đến đúng địa chỉ cần nhận và node nhận sẽ chỉ trả lời với message dành cho nó
Giả sử Node 1 muốn truyền một thông điệp cho Node 2 Khi đó,
Node 1 phải:
! Cho phép bộ truyền hoạt động (Enable its network driver)
! Gửi địa chỉ của node nhận (Send the address of the node it wants to talk to)
! Gửi message ( Send message)
! Cấm bộ truyền của mình và chờ trả lời (Disble its network driver and wait for a response)
Node 2 phải :
! Đọc dữ liệu đến (Read incoming data)
! Nhận biết địa chỉ được gửi (Recognize its address)
! Đọc message kèm theo (Read the message that follows)
! Nhận biết khi nào message kết thúc (Recognize when the message has ended)
! Thực hiện các công việc được yêu cầu (Take the requested action)
! Chuẩn bị trả lời (Prepare its response)
! Cho phép bộ truyền hoạt động (Enable its network driver)
! Gửi trả lời (Send the response)
! Cấm bộ truyền (disable its driver) và trở về trạng thái lắng nghe( listen state)
Tiếp đó Node 1 sẽ :
! Đọc đáp ứng gửi về (Read the incoming response)
! Thực hiện công việc được yêu cầu (Take any required action)
! (Có thể) cho phép bộ truyền để thực hiện công việc tương tự đối với node kế tiếp (Enable its driver in preparation for polling the next node) Trong cùng thời điểm đó, tất cả các node khác phải:
! Đọc tất cả các dữ liệu đến (Read all incoming data)
! Nhận biết được các thông tin không dành cho chúng
II.1 Các giao thức quản lý mạng
Có nhiều lựa chọn đối với các giao thức hay các quy tắc để thực hiện các công việc trên Một vài trong số đó là Chủ/Tớ (Master/Slave), Chuyển thẻ bài(Token passing) và Phát hiện xung đột (Collision detecting)
Trang 32II.1.1 Giao thức Chủ / Tớ (Master/Slave)
Slave 1 trả lời
Hoạt động của giao thức Master/Slave
Trang 33Master/Slave là giao thức đơn giản nhất Một node được thiết kế là Master và sẽ chịu trách nhiệm điều khiển toàn bộ đường thông tin mạng Để bảo đảm mọi node đều có thể phát, Master sẽ dùng hình thức hỏi vòng, lần lượt gửi thông điệp đến từng Slave, trong thông điệp có thể chỉ là một Acknowledge đơn giản, một data theo yêu cầu, một thông báo lỗi hay bất cứ thông tin nào khác Một Slave sẽ chỉ truyền message sau khi được Master yêu cầu Bất cứ message nào muốn truyền từ Slave này đến Slave khác đều phải qua Master
Bất lợi chính của giao thức này là thời gian delay, mỗi node phải chờ được hỏi nếu muốn truyền và không thể truyền trước khi được hỏi Tùy theo mục đích và tốc độ của mạng mà thời gian delay này dài hay ngắn, có thể không gây ra vấn đề gì hoặc trở nên quá dài trong thực tế
Lấy ví dụ, một mạng có một Master (node 1) và 9 Slave (node 2-10) Master sẽ hỏi các node theo trình tự, giả sử mỗi lần hỏi mất 10 giây Nếu Node 2 phát hiện một tình huống khẩn cấp (emergency condition) và cần phải báo cho Master biết để có thao tác thích hợp ngay lập tức, nó phải chờ 90 giây tức 1,5 phút trước khi được Master hỏi
II.1.2 Chuyển thẻ bài (Token passing)
Giao thức Token passing tránh được tình trạng chỉ có một Master và cho phép bất cứ node nào đều có thể thực hiện việc điều khiển mạng Node đang điều khiển sẽ giữ một thẻ bài(token) Chỉ có một node tại một thời điểm được giữ thẻ Node nào đang giữ thẻ được quyền phát dữ liệu Khi đã phát hết dữ liệu hoặc không còn gì để phát, node sẽ gởi token sang node kế tiếp
Trang 34Giao thức mạng phải xác định làm thế nào một node biết mình có giữ thẻ hay không cũng như làm thế nào để đưa thẻ cho node khác Thẻ bài(token) có thể chỉ là một bit được dành riêng hoặc một biến trong mỗi node sẽ được set hoặc xoá để chỉ ra rằng node đó có giữ thẻ hay không Việc luân chuyển token tới các node trong mạng theo một trật tự định trước Trật tự này có thể theo đúng thứ tự vật lý của các trạm trong mạng, hay theo trật tự logic đã được đặt trước cho các mạng có topology là bus hay star
Khi một node muốn chuyển thẻ cho một node khác , nó sẽ bỏ thẻ đang giữ (bằng cách set bit token, chẳng hạn) và gửi một thông điệp báo node kia rằng đến lượt nó giữ thẻ Lúc đó node này sẽ thực hiện bất cứ thao tác gì nó muốn và lại chuyển thẻ bài cho node kế tiếp
Giao thức này cho phép bất cứ node nào đều có thể giao tiếp trực tiếp với các node khác Nhưng nó vẫn chưa thể cho phép một node có thể thực hiện ngắt khi có thông điệp khẩn cấp, trừ phi node này đang giữ thẻ bài khi ermergency xảy
ra
II.1.3 Collision Detecting
Giao thức Collision Detecting, thường được biết như là phương pháp truy nhập đa cảm biến sóng mang (CSMA/CD–Carrier Sense Multiple Access/Collision Detection, CSMA/CA – Collision Avoidance), cho phép bất cứ node nào đều có thể truyền khi đường truyền đang trống Nếu có hơn 2 node cố gắng truyền tại một thời điểm, ngoại trừ một node, các node khác còn lại phải phát hiện có xung đột, dừng truyền dữ liệu và sẽ thử lại sau một thời gian delay
Trang 35toàn mạng biết là có tranh chấp đường truyền Sau đó A và B sẽ chờ một khoảng thời gian có thể là ngẫu nhiên hoặc được ấn định trước rồi phát lại thông tin của mình
Tuy nhiên, việc viết chương trình để phát hiện xung đột không phải lúc nào cũng dễ dàng Bên cạnh đó phần cứng của mạng phải có khả năng chịu được tình trạng nhiều driver được cho phép cùng một lúc
Một cách để phát hiện xung đột là cho node gửi đọc về những gì mà nó đã gửi Nếu dữ liệu đọc về giống như dữ liệu gửi đi, có nghĩa là không có có xung đột và việc truyền có thể tiếp tục Nếu khác nhau, có nghĩa là sự xung đột đang xảy ra hay một node nào đó đang truyền Lúc đó node này sẽ chuyển sang chế độ delay và sẽ thử truyền lại sau đó
Khả năng giao thức hoạt động tốt như thế nào tùy thuộc vào việc thiết lập thời gian delay cần thực hiện khi có xung đột Các node khác nhau sẽ dùng thời gian delay khác nhau, có thể dùng giá trị ngẫu nhiên hay cố định Nếu không, các node sẽ thử lại cùng lúc và cuối cùng chẳng có node nào truyền được
Node nhận cũng phải nhận biết và ignore những lần truyền thất bại Các lần thử này nói chung nên dài đủ để node nhận biết có xung đột xảy ra hay không
Một số lý do làm cho RS485 không phù hợp với giao thức phát hiện xung đột Các driver RS485 được sử dụng trong liên kết sao cho chỉ có một driver được phép tại một thời điểm Nếu có nhiều hơn 2 driver được enable, các chip có mạch bảo vệ bên trong sẽ giới hạn dòng ra và thậm chí disable cả ngõ ra Bên cạnh đó, RS485 dùng chuẩn truyền thông bất đồng bộ, phần mềm thường không có cách nào kiểm tra từng bít nhận được, vì vậy việc phát hiện xung đột theo từng bit là không thể
II.2 Định địa chỉ (Addressing)
Việc lập trình mạng cũng yêu cầu phải quản lý địa chỉ Mỗi node được gán một địa chỉ riêng Mỗi thông điệp phải có kèm theo địa chỉ của node nhận sao cho các node có thể nhận biết được khi nào thông điệp là dành cho mình
II.2.1 Gán địa chỉ(Assigning)
Cách rõ ràng nhất để định địa chỉ là gán mỗi node một địa chỉ số (numberic address) Địa chỉ có thể là một byte hoặc một phần nào đó của byte Các byte này có thể là các ký tự ASCII ( 41H cho node A, 42H cho node B) hoặc có thể là bất cứ giá trị nào (từ 0 cho đến FFH)
Nếu số node không quá 128 node , ta có thể không cần dùng tới một byte để phân biệt từng node Sẽ có một số bit dành cho địa chỉ, phần còn lại có thể dành cho các ứng dụng khác Ví dụ, trong một mạng có 32 node, bit 0 đến bit 4 có thể
Trang 36dành cho việc định địa chỉ, bit 5 đến bit 7 sẽ mã hóa lệnh hay mang các thông tin khác
II.2.2 Phát hiện địa chỉ (Detecting)
Một khó khăn khi gửi đi một địa chỉ là làm sao cho các node có thể phân biệt đâu là byte chứa địa chỉ đâu là byte chứa các thông tin khác hoặc khi nào bắt đầu một message mới Có một số giải pháp sau
• Các địa chỉ sẽ là các giá trị không bao giờ xuất hiện trong dữ liệu
• Mạng có thể dùng một dạng format xác định cho message được gửi để tất cả các node biết được khi nào message kết thúc
• Việc truyền thông có thể dùng bit thứ 9 để chỉ khi nào một byte chứa dữ liệu hay địa chỉ
Sau đây là một số cách định địa chỉ khác nhau:
II.2.3 Dành riêng vùng địa chỉ (Reserving Address Values)
Một cách để phân biệt địa chỉ và dữ liệu là dành riêng một số byte cho việc định địa chỉ Cách này làm bộ nhận dễ dàng nhận biết được địa chỉ từ một thông điệp được gửi nhưng cũng làm giới hạn nội dung thông tin trong message Các byte nhị phân trong message phải không trùng với các byte địa chỉ nếu không node khác sẽ hiểu thông tin đang được gửi cho mình
Để tránh trường hợp này tất cả dữ liệu nhị phân được gửi dưới dạng mã ASCII Bất cứ giá trị nhị phân nào cũng sẽ chỉ dùng các mã ASCII từ 30H đến 39H (cho các số từ 0 đến 9) và 41H đến 46H (từ A-F)
Như vậy, ta chỉ dùng 16 byte để chỉ thị bất cứ các số nhị phân từ 0 đến F, còn lại rất nhiều byte khác dành cho địa chỉ, lệnh hay các ứng dụng khác
Tuy nhiên, phương pháp này có hai nhược điểm : nó đòi hỏi nhiều thời gian hơn để xử lí và truyền data Mỗi node khi truyền phải chuyển tất cả dữ liệu nhị phân thành dạng mã ASCII, và node nhận sẽ phải chuyển ngược lại Một byte nhị phân sẽ mã hóa thành 2 byte mã ASCII, mỗi byte cho mỗi số Ví dụ byte 1AH sẽ chuyển thành 2 byte 31H (cho ký tự 1) và 41H (cho ký tự A) Điều này cũng có nghĩa là thời gian truyền đi cũng sẽ kéo dài gấp đôi
Tuy nhiên chính sự đơn giản có thể dễ dàng phân biệt data và địa chỉ mà phương pháp này trở nên phổ biến trong các mạng cho phép tăng thêm thời gian để gửi và chuyển đổi data
II.2.4 Dùng kiểu Format xác định
Trong phương pháp này, địa chỉ và dữ liệu được gán vào những vị trí đã định trước trong message Ví dụ, một message có 8 byte có thể bao gồm một byte địa chỉ và 7 byte dữ liệu Khi một node nhận một byte, nó sẽ kiểm tra xem nếu byte
Trang 37này bằng địa chỉ của nó Nếu đúng, nó sẽ đọc và xử lý 7 byte data tiếp theo, sau đó nó sẽ chờ byte địa chỉ kế tiếp để kiểm tra Nếu không bằng, node này sẽ đếm và bỏ qua 7 byte theo sau trước khi kiểm tra địa chỉ mới
Sự phức tạp của phương pháp này là mọi node đều phải kiểm tra tất cả các byte được gửi đến để biết khi nào đoạn message kết thúc Nếu node vì lý do nào đó bỏ mất một byte, mọi việc sẽ trở nên lẫn lộn vì node này không biết khi nào địa chỉ mới bắt đầu
Để tránh trường hợp này, ta có thể dùng một byte để báo bắt đầu đoạn tin tryền ( Start of Transmission) và một byte để báo kết thúc (End of Transmission) Theo quy ước những giá trị này là 02H (Control+B) cho Start of Transmission và 03H (Control+C) đối với End of Transmission
II.2.5 Dùng định dạng 9-bit (9-bit Format)
Ngoài hai phương pháp trên, có một cách khác để phân biệt data và địa chỉ là dùng kiểu định dạng 9 bit, trong cách này phần cứng sẽ thực hiện phần lớn công việc cần thiết Bit thứ 9 sẽ dùng để phân biệt một byte là data (nếu bit này bằng 0) hay địa chỉ (nếu bằng 1)
Một số vi điều khiển có sẵn chức năng sử dụng bit thứ 9 để phát hiện địa chỉ Port nối tiếp sẽ gửi và nhận 1 ký tự có 11 bit( bao gồm bit Start, 8 bit data, một bit thứ 9, và bit Stop) Bit thứ 9 sẽ set lên 1 để chỉ địa chỉ và 0 cho data
Microcontroller kiểm tra tất cả data nhận được, không làm gì nếu bit thứ 9 của mỗi ký tự bằng không Khi bit thứ 9 bằng 1, vi điều khiển so sánh các bit 0 đến bit 7 với địa chỉ được gán (hoặc lưu trong bộ nhớ) Nếu bằng, nó sẽ nhảy đến một chương trình con để đọc và thực hiện các công việc cần thiết trên các byte data tiếp theo
II.2.6 Các thông tin khác (Other Information in Messages)
Bên cạnh địa chỉ node và dữ liệu gửi đi, một message có thể chứa thêm các dạng thông tin khác như sau
• Nếu messages không có kích thước cố định, mỗi message có thể có thêm một byte để chỉ chiều dài message
• Để kiểm tra lỗi, một byte sẽ chứa checksum hay một giá trị nào đó để phát hiện error
• Message có thể chứa địa chỉ của node cần gửi đến
• Các thông tin khác như dạng data gửi đi (Binary hay ACSCII …), thời gian gửi hoặc bất cứ thông tin gì để bộ nhận biết thêm về message
Trong một frame định trước, các thông tin này thường nằm trong phần đầu (header), khối data ở giữa và cuối cùng có thể là byte checksum hay CRC
Trang 38II.3 Xác định thời gian truyền (Transmitter Enable Timing)
Trong liên kết bán song công, chỉ có một driver được cho phép tại một thời điểm Khi có 2 node muốn trao đổi thông tin, để bảo đảm hai driver sẽ không cho phép cùng lúc , các node này phải thực hiện hai nguyên tắc sau:
• Sau khi truyền data, driver sẽ được disable ngay lập tức nhằm cho phép node nhận có thể enable bộ truyền của mình và phát thông điệp trả lời
• Sau khi nhận data, cần có một khoảng delay trước khi cho phép truyền để bảo đảm node gửi đã disable driver của mình
Hai thao tác này có liên quan lẫn nhau Khoảng delay chờ trước khi cho phép bộ truyền của node này hoạt động phụ thuộc vào khoảng thời gian node cuối cùng cấm bộ truyền của mình Bên cạnh đó, nó còn phụ thuộc cách hoạt động của RS485
Trang 39CHƯƠNG IV GIỚI THIỆU 68HC11
I GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN
I.1 Microcontroller Motorola MC68HC11
I.1.1 Các thành viên thuộc họ MC68HC11
Vào năm 1985, Motorola đã phát triển bộ vi điều khiển 68HC11 tương thích với bộ vi xử lý 6800 Bộ vi điều khiển 68HC11 là đơn vị điều khiển 8 bit sử dụng công nghệ bán dẫn đế oxit kim loại mật độ cao HCMOS (High Density Complementary Metal Oxide Semiconductor) có cấu tạo phức tạp với nhiều dạng bộ nhớ và ngoại vi on-chip Với công nghệ cao đó, MC68HC11 có kích thước nhỏ bé, tốc độ cao, tiêu thụ năng lượng thấp và khả năng chống nhiễu cao
I.1.2 Cấu trúc phần cứng và cấu tạo chân của MC68HC11
! Cấu trúc phần cứng:
Họ vi xử lý 68HC11 có nhiều phiên bản khác nhau có cấu trúc phần lớn tương tự nhau chỉ khác nhau ở bộ nhớ ROM,RAM
• MC68HC11 CPU (đơn vị xử lý trung tâm)
• Có EEPROM on-chip (512byte, 640 byte,2K,4K,8K,12K và 32K tuỳ loại )
• Có RAM on-chip (0.5-1Kbyte)
• Hệ thống thời gian 16 bit
• Mạch ngắt quãng thời gian thực (Real-Time Interrupt)
• Hệ thống COP (Computer Operation Property Watchdog)
• Giao tiếp ngoại vi nối tiếp đồng bộ SPI (Sychronous Serial Pripheral Interface)
• Giao tiếp ngoại vi nối tiếp bất đồng bộ SCI (Asynchronous Serial Communication Interface)
• Hệ thống chuyển đổi A/D 8 kênh với độ phân giải 8 bit
• Các Port xuất nhập đa dụng
Mô tả chân
• Chân cấp nguồn (VDD và VSS)
Nguồn được cung cấp cho MCU thông qua các chân này VDD là chân nguồn vào dương có thể tuỳ chọn, thông thường là nguồn 5V và chân VSS được nối mass MC68HC11 thường sử dụng nguồn điện cung cấp đơn
• Các chân chọn Mode (MODB/VSTBY và MODA/ LIR ):
Trang 40MCU sẽ chọn Mode hoạt động cho phần cứng từ các mức logic trên các chân MODA và MODB khi MCU đang ở trạng thái reset và nó sẽ hoạt động như một tín hiệu ngõ ra khi MCU không ở chế độ reset
Sau khi đã chọn chế độ hoạt động, chân LIR (Load Instruction Register) là ngõ ra tích cực mức thấp LIR ở trạng thái tích cực chỉ ra rằng việc thực hiện lệnh đã bắt đầu Mỗi lệnh được CPU thực hiện trong nhiều chu kỳ xung clock LIR sẽ
xuống mức thấp trong chu kỳ E-clock đầu tiên của mỗi lệnh, trong chu kỳ này mã lệnh được nạp vào thanh ghi lệnh
VSTBY dùng để cung cấp nguồn dự phòng để duy trì nội dung của RAM khi mất nguồn VDD
• Chân RESET: ( RESET )
Chân RESET : tính hiệu điều khiển 2 chiều, tích cực mức thấp
Khi hoạt động như tín hiệu vào, RESET sẽ khởi động lại MCU (reset bên
ngoài)
Khi hoạt động như là tín hiệu ra, mức tích cực của RESET chỉ ra rằng có sai hỏng xảy ra bên trong MCU Sai hỏng này được phát hiện bởi mạch kiểm tra xung clock (clock monitor) hay hệ thống COP
• Các chân dao động thạch anh và clock: (EXTAL, XTAL, E):
Các chân dao động EXTAL và XTAL có thể sử dụng với mạch dao động bộ lái tinh thể thạch anh bên ngoài hoặc nối với 1 nguồn phát xung clock tương thích với họ CMOS Dao động đưa vào hai chân này sẽ điều khiển một mạch phát xung clock bên trong MCU, xung clock này gọi là E-clock Tần số được cấp cho các chân này bằng 4 lần tốc độ xung E-clock mong muốn
Ngõ ra E-clock (E): chân E này được nối các ngõ ra với E-clock được phát từ bên trong Tín hiệu từ chân E được dùng làm chuẩn thời gian Tần số ngõ ra bằng
¼ lần tần số ngõ vào các chân XTAL và EXTAL Khi ngõ ra E-clock ở mức thấp, một công việc xử lý đang diễn ra ở bên trong Khi nó ở mức cao, dữ liệu đang được truy xuất
Tất cả các xung clock, kể cả E-clock đều ngừng hoạt động khi MCU ở chế độ STOP
• Chân ngắt:
Hệ thống ngắt của MC68HC11 có 2 đường ngắt ngoại vi là XIRQ và IRQ: Chân yêu cầu ngắt (IRQ): IRQ là ngõ vào yêu cầu ngắt quãng bất đồng bộ với MCU, tác động sườn xuống hoặc tác động mức thấp tuỳ theo ta lập trình thanh ghi OPTION IRQ luôn tác động theo mức sau reset