Tổng quan về giao tiếp RS232

Giao tiếp RS232 là một trong những chuẩn giao tiếp truyền thông điều khiển và truyền dữ liệu giữa các thiết bị điện tử. Được phát triển vào những năm 1960, chuẩn giao tiếp RS232 đã trở thành một trong những chuẩn giao tiếp phổ biến nhất và đã được sử dụng trong rất nhiều ứng dụng khác nhau, từ máy tính cá nhân cho đến các hệ thống điều khiển công nghiệp. 

1. Tổng quan về RS232

RS232 là kiểu dạng tín hiệu kết hợp DTE (data terminal equipment) giống như thiết bị đầu cuối của máy tính và DCE (data communication equipment hoặc data circuit-terminating equipment). Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.

Nhờ tính đơn giản, khả năng chống nhiễu của các cổng nối tiếp cao, thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện, các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua cổng nối tiếp nên chuẩn RS232 vẫn còn được sử dụng quá trình phát triển các chuẩn giao tiếp mới hơn như RS422 hay RS485, Ethernet,…

Hình 1. Đầu cái RS232 DB9 (DCE).

Hình 2. Đầu đực RS232 DB9 (DTE).

2. RS232 là gì?

Trong quá trình phát triển thì có rất nhiều dòng theo chuẩn EIA (như RS232 (1960), RS232A (1963), RS232B (1965), RS232C (1969),…) nhưng có 2 dòng RS232 thông dụng được lưu hành trong thời gian tương đối dài là RS232B (DB25; đầu cắm 25 chân) và RS232C(DB9; đầu cắm 9 chân).Nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngắn gọn là chuẩn RS232.

Chuẩn này chỉ đề cập đến việc truyền dữ liệu nối tiếp giữa một host (DTE-Data Terminal Equipment) và một ngoại vi (DCE-Data Circuit-Terminating Equipment) kết nối dữ liệu theo kiểu nhập điểm-điểm (master-slave). Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là cổng Com. RS232 sử dụng phương thức truyền thông không đối xứng các mức điện áp tương thích TTL để mô tả các mức logic 0 và 1, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất.

3. Các phương thức truyền của chuẩn RS232

Do trong tiêu chuẩn RS232, đường truyền Tx và đường nhận Rx được tách biệt với nhau, việc trao đổi dữ liệu có thể diễn ra ở chế độ bán song công, song công hoàn toàn và đơn công. Nó phụ thuộc vào giao thức truyền được sử dụng.

  • Chế độ song công hoàn toàn cho phép trao đổi dữ liệu liên tục trên cả hai đường truyền. Nói cách khác, đó là đường truyền đồng thời hai chiều, DTE1 – DTE2 và DTE2 – DTE1 cùng một lúc.
  • Bán song công, tức là truyền hai chiều không đồng thời, ví dụ: đầu tiên là DTE1 – DTE2, sau đó là DTE2 – DTE1. Vì vậy, giao tiếp khi chúng ta có, ví dụ, một câu hỏi và sau đó là một câu trả lời (như trong trường hợp của giao thức Modbus).

Mặt khác, Simplex là chế độ mà thiết bị chỉ có thể truyền hoặc chỉ nhận dữ liệu. Chỉ DTE1 chuyển tiếp dữ liệu tới DTE2 hoặc chỉ DTE2 chuyển tiếp dữ liệu tới DTE1

RS-232 có một số lượng lớn các đường truyền đồng bộ hóa, chủ yếu được sử dụng trong quá trình giao tiếp với modem. Do đó, khi thực hiện giao tiếp theo tiêu chuẩn RS232, chúng ta có thể sử dụng một số biến thể của kết nối thiết bị.

4. Cấu tạo cổng của chuẩn giao tiếp RS232

Cổng RS232 trên thị trường có 2 loại cổng DB9 có 9 chân hay còn gọi là cổng COM và loại còn lại sử dụng 25 chân. Tùy vào dòng máy mà chúng ta có sự chọn lựa cho phù hợp. Nhưng hiện tại thì DB9 9 chân được chế tạo để thuận tiện cho các thiết bị kết nối với nhau.

D25

D9

Tín hiệu

Hướng truyền

Mô tả

1

Protected groud: nối đất bảo vệ

2

3

TxD

DTE ->DCE

Transmitter Data: dữ liệu truyền

3

2

RxD

DCE ->DTE

Received Data: dữ liệu nhận.

4

7

RTS

DTE ->DCE

Request To Send: DTE yêu cầu truyền dữ liêu

5

8

CTS

DCE ->DTE

Clear To Send: DCE sẵn sàng nhận dữ liệu

6

6

DSR

DCE ->DTE

Data Set Ready: DTE sẵn sàng làm việc

7

5

GND

Ground: nối đất (0V)

8

1

DCD

DCE ->DTE

Data Carier Detect: DCE phát hiện sóng mang Data

20

4

DTR

DTE ->DCE

Data Terminal Ready: DTE sẵn sàng làm việc

22

9

RI

DCE ->DTE

Ring Indicator: báo chuông

23

DSRD

DCE ->DTE

Data Signal Rate Detector: dò tốc độ truyền

24

TSET

DTE ->DCE

Transmitter Signal Eletment Timing: Tin hiệu định thời truyền đi từ DTE

15

TSET

DCE ->DTE

Transmitter Signal Eletment Timing: Tín hiệu định thời truyền từ DCE để truyền dữ liệu

17

RSET

DCE ->DTE

Receiver Signal Element Timing: Tín hiệu định thời truyền từ DCE để truyền dữ liệu

18

LL

DCE ->DTE

Local Loopback: Kiểm tra cống

21

RL

DCE ->DTE

Remote Loopback: Tạo ra bởi DCE khi tín hiệu nhân từ DCE lỗi

14

STxD

DTE ->DCE

Dây truyền thứ cấp

16

SRxD

DCE ->DTE

Dữ liệu đã nhận thứ cấp

19

SRTS

DTE ->DCE

Yêu cầu phụ để gửi

13

SDSRD

DCE ->DTE

Xóa phụ để gửi

12

TM

DCE ->DTE

Bộ dò tín hiệu đường dây nhân thứ cấp

25

Chế độ kiểm tra

9

Dành riêng cho chế độ test

10

Dành riêng cho chế độ test

11

Không dùng

5. Chuẩn giao tiếp RS232 là gì? Hoạt động như thế nào?

5.1. Hoạt động của giao tiếp RS232

Hình 3. Kết nối giữ thiết bị DCE và DTE.

RS232 hoạt động theo cách tương tác 2 loại: thiết bị đầu cuối xử lý dữ liệu số (DTE) & Thiết bị truyền dữ liệu (DCE) có các chân như TXD, RXD và RTS & CTS. DCE là các thiết bị trung gian như MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển,… Việc trao đổi tín hiệu thông thường qua 2 chân RXD (nhận) và TXD (truyền).

Hình 4. Hình ảnh 2 đầu cắm đực và cái của DB9.

Nguồn DTE, RTS tạo yêu cầu gửi dữ liệu. Sau đó từ phía bên kia DCE, CTS, xóa đường dẫn nhận dữ liệu. Sau khi xóa một đường dẫn, nó sẽ đưa ra tín hiệu cho RTS của nguồn DTE để gửi tín hiệu. Sau đó, các bit được truyền từ DTE đến DCE. Bây giờ một lần nữa từ nguồn DCE, yêu cầu có thể được tạo bởi RTS và CTS của nguồn DTE sẽ xóa đường dẫn nhận dữ liệu và đưa ra tín hiệu để gửi dữ liệu.

Hình 5. Khung truyền dữ liệu của RS232.

Trong viễn thông, quá trình gửi dữ liệu tuần tự qua một bus máy tính được gọi là giao tiếp nối tiếp, có nghĩa là dữ liệu sẽ được truyền từng bit một bằng một cặp dây. Trong khi giao tiếp song song, dữ liệu được truyền theo byte (8 bit) hoặc ký tự hoặc bus tại một thời điểm. Giao tiếp nối tiếp chậm hơn so với giao tiếp song song nhưng được sử dụng để truyền dữ liệu dài do chi phí thấp hơn.

Hình 6. Kết nối dữ liệu truyền và nhận của TXD và RXD.

Truyền dữ liệu không đồng bộ – Chế độ trong đó các bit dữ liệu không được đồng bộ hóa bởi xung đồng hồ. Xung đồng hồ là tín hiệu được sử dụng để đồng bộ hóa hoạt động trong một hệ thống điện tử.

Truyền dữ liệu đồng bộ – Chế độ trong đó các bit dữ liệu được đồng bộ hóa bởi xung đồng hồ.

Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy nên tại một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit bắt đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếp the . Bit này luôn bắt đầu bằng mức 0. Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới dạng mã ASCII (có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là một Parity bit (Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng – bit stop có thể là 1, 3, 5 hoặc 2 bit dừng.

Hình 7. Các bit dữ liệu của cổng giao tiếp RS232.

Nổi tiếng nhất trong số các giao thức này là Giao thức nối tiếp không đồng bộ sử dụng các bit start-stop. Cũng cần lưu ý rằng các công ty sản xuất mạch tích hợp đã sản xuất các mạch có khả năng xử lý trực tiếp với cổng RS-232 và trong số các mạch được sử dụng phổ biến trong lĩnh vực này là mạch do Khi nhận, bộ thu phải được đặt ở trạng thái tìm kiếm các ký tự đồng bộ hóa (Chế độ săn) và khi tìm thấy các ký tự này, quá trình chuyển đổi sang nhận thông tin sẽ diễn ra.

5.2. Truyền trực tiếp

Hình 8. Sơ đồ kết nối chân giữ DTE và DCE.

Định dạng của một ký tự (character) được truyền theo chuẩn RS-232. Ở trạng thái nghỉ, các đường dữ liệu RS-232 ở trạng thái mark. Một ký tự luôn bắt đầu bằng một start bit (là một space), sau đó các bit được truyền theo thứ tự bit từ thấp đến cao (bit thấp nhất được truyền trước tiên), tiếp đến là một parity bit (nếu có), và cuối cùng là một hay nhiều stop bit (là một mark). Phổ biến nhất là định dạng 8N1, nghĩa là 8 bit dữ liệu, không có parity, và 1 stop bit.

Hình 9. Ví dụ định dạng kí tự dãy bit của RS232.

Việc đọc một bit được truyền đến thường được thực hiện tại giữa bit, do đó các bộ thu và phát thường sử dụng xung clock bằng 16 lần tốc độ baud (số bit truyền được trong mỗi giây trên một đường tín hiệu). Bộ thu sẽ dò start bit, và sẽ đọc bit đầu tiên sau 24 chu kỳ xung clock khi đã phát hiện được start bit, các bit sau đó sẽ được đọc sau mỗi 16 chu kỳ xung clock.Đa số các DTE và các DCE đều có các bộ truyền nhận bất đồng bộ đa dụng (UART-Universal Asynchronous Receiver/Transmitter) ở dạng module phần cứng, do đó chúng ta thường không cần quan tâm đến các thao tác cấp thấp trong việc sử dụng giao tiếp RS-232.

Hình 10. Kết nối các thiết bị DTE và DCE bằng cáp thẳng.

Các chân trong DTE và DCE được thiết lập sao cho phải sử dụng cáp 1:1, tức là khi chân X được kết nối ở một đầu với chân X ở đầu kia và không có giao điểm. dữ liệu được truyền ở đầu “2” và “DCE” nhận dữ liệu ở đầu “2”, và “DTE” nhận dữ liệu ở đầu “3” trong khi “DCE” gửi ở đầu 2, và điều này làm cho việc xây dựng cáp dữ liệu Nối tiếp “RS232” dễ dàng hơn nhiều.Và giống như các hệ thống dữ liệu khác nhau sử dụng các mức kết nối khác nhau khi sử dụng “RS232”, vì một số hệ thống truyền dữ liệu mà không cần bất kỳ kết nối có dây nào và các hệ thống này có thể sử dụng các mã chương trình như “X-ON / X-OFF, ACK, NAK”, và rằng Để cung cấp kết nối cần thiết, các hệ thống này yêu cầu cáp dữ liệu nối tiếp bao gồm các đường truyền và nhận dữ liệu ngoài đường dây cố định

Hình 11. Mô phỏng quá trình truyền 1 kí tự ASCII.

5.3. Cấu trúc dữ liệu được truyền trong RS-232

Hình 12. Tổng quát truyền dữ liệu trong RS232.

Bit bắt đầu (start bit) – bit cho biết bắt đầu truyền thường bằng 0.

Bit dữ liệu (data bits) – 5, 6, 7 hoặc 8 bit dữ liệu. Bit đầu tiên là bit ít quan trọng nhất.

Bit chẵn lẻ (bit chẵn lẻ) – một bit dùng để kiểm tra tính chẵn lẻ. Nó được sử dụng để phát hiện lỗi. Nó có thể chấp nhận các giá trị sau:

  • Tính chẵn lẻ (EVEN) nhận giá trị sao cho số lượng đơn vị trong thông báo là số chẵn.
  • Độ lẻ (ODD) chấp nhận một giá trị sao cho số lượng đơn vị trong tin nhắn là số lẻ.
  • Luôn là 1 (MARK), bit chẵn lẻ sẽ luôn là 1.
  • Luôn là 0 (SPACE), bit chẵn lẻ sẽ luôn là 0.
  • Không được sử dụng (NONE).
  • Bit dừng (stop bit) là bit báo hoàn thành việc truyền thông báo và có thể nhận các giá trị 1, 1,5 (Data bit = 5), 2.
  • Kết nối DTE-DTE, DCE-DCE.

Hình 13. Kết nối DTE-DTE sử dụng cáp chéo.

Nếu chúng ta muốn sử dụng cơ chế kiểm soát luồng phần cứng, chúng ta cần biết những thiết bị nào chúng ta muốn kết nối. Khi kết nối thiết bị DTE (PC) với DCE (Modem) chúng ta nên sử dụng cáp thẳng. Nếu chúng ta kết nối DTE (PC) – DTE (PC) hoặc DCE (Modem) – DCE (Modem) thì chúng ta sử dụng cáp chéo.

Chúng ta thường cần kết nối một máy tính với một máy tính khác ở gần nó để đảm bảo việc trao đổi thông tin giữa chúng. Các cổng RS-232 đã cung cấp một trong những cách để đảm bảo điều này. Khoảng cách giữa hai thiết bị phụ thuộc vào tốc độ truyền thông tin và loại cáp được sử dụng. Ở tốc độ 9600 bPS, khoảng cách đạt tới 17 mét khi sử dụng cáp thông thường, nhưng nếu sử dụng cáp chất lượng cao, khoảng cách có thể đạt tới 50 mét (chúng tôi đã đề cập trước đó rằng tiêu chuẩn ban đầu chỉ định khoảng cách này là 8 mét và tốc độ tối đa là 20000 bPS, nhưng những con số này gần đây đã bị vượt quá rất nhiều.

Chúng ta sẽ nhận thấy rằng cáp chéo đã thay thế modem và do đó được gọi là Modem ảo hoặc Modem không. Ngoài ra, việc không có modem thực và việc sử dụng đường truyền không đồng bộ cho phép chúng ta đơn giản hóa quy trình kết nối trở thành như trong Hình 10. Nó cũng có thể được đơn giản hóa hơn nữa miễn là việc truyền không đồng bộ trở thành như trong Hình 11. Nó nên cũng cần lưu ý rằng chúng tôi cần phần mềm phù hợp để bảo mật quá trình truyền thông tin giữa hai máy tính Được kết nối bằng cáp chéo, phần mềm này thực hiện các giao thức tiêu chuẩn như: Zmodem, Xmodem và các giao thức khác.

Hình 14. Kết nối DCE-DCE bằng cáp trống.

Điều này được thực hiện theo cách tương tự như liên kết một DTE với một DTE liền kề

Hình 15. Kết nối DTE – DTE bằng cáp rời.

6. Cấu hình của cổng RS232 như thế nào?

  • Cấp điện áp: RS232 cũng được sử dụng như mức nối đất & 5V. Nhị phân 0 hoạt động với điện áp +5V đến +15Vdc, được gọi là “ON” (mức điện áp cao) trong khi nhị phân 1 hoạt động với điện áp -5V đến -15VDC. Nó được gọi là “OFF” (mức điện áp thấp).

Mạch dữ liệu

Mạch điều khiển

Vôn

0 (dấu cách)

Khẳng định

+3 đến 15V

1 (dấu)

Deasseted

-15 đến -3V

  • Mức điện áp tín hiệu nhận được: Nhị phân 0 hoạt động trên các điện áp tín hiệu nhận được +3V đến +13 VDC & mức nhị phân 1 hoạt động với điện áp -3V đến -13 VDC. Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến.
  • Trở kháng đường truyền: Trở kháng của dây lên tới 3W ¸ 7W, chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12,5 đến 25,4m.
  • Tốc độ truyền nhận dữ liệu cực đại là 100kbps
  • Điện áp hoạt động: Tối đa 250VAC.
  • Dòng định mức: Tối đa 3 Amps.
  • Cách điện: 1000 VAC.
  • Điện dung: < 2500pF.
  • Trở kháng tải trong phạm vi từ 3kW – 7kW.
  • Tốc độ xoay: Tốc độ thay đổi của các mức tín hiệu được gọi là tốc độ xoay. Với tốc độ xoay lên tới 30V/ms và tốc độ bit tối đa sẽ là 20 kbps.
  • Tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 56000, 115200… Trong thiết bị họ thường dùng tốc độ là 19200.
  • Tốc độ truyền dữ liệu: tốc độ 20 kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt.

7. Ưu điểm và nhược điểm của RS232

7.1. Ưu điểm

  • RS232 phổ biến, dễ kiếm và chi phí rẻ.
  • Kết nối giao tiếp đơn giản.
  • Tốc độ truyền khá nhanh.
  • Khả năng chống nhiễu tốt.
  • Có thể tháo lắp nóng.
  • Có thể cấp nguồn cho thiết bị luôn.
  • Dễ dàng sử dụng trong các hệ thống điện tử dựa trên vi điều khiển
  • Đủ để thêm một bộ chuyển đổi điện áp không quá phức tạp
  • Là cầu nối giữa hai hệ thống điện tử trong một khoảng cách ngắn.

Hình 16. Ví dụ thực tế của RS232.

7.2. Hạn chế RS232

  • Tốc độ truyền dữ liệu khá chậm so với các thiết bị hiện nay (20 kbit/s), trong quá trình truyền không đồng bộ. Do đó, trong bảng phát triển CPLD, tốc độ truyền của chương trình tích hợp chỉ có thể là 19200.
  • Khả năng kết nối với các thiết bị hạn chế hơn so với các cổng mới.
  • Chiều dài tối đa của cáp là khoảng 25 mét điện trở dây và sụt điện áp trở thành một vấn đề với cáp dài.
  • Mang nét lỗi thời của chuẩn giao tiếp TTL, mức tín hiệu của giao diện cao và chip của mạch giao diện dễ bị hỏng và do không tương thích với mức TTL nên cần có mạch chuyển đổi mức.
  • Giao diện sử dụng đường tín hiệu và đường hồi tín hiệu để tạo thành dạng truyền dẫn chung, đường truyền chung này dễ bị nhiễu ở chế độ chung.

8. Các ứng dụng sử dụng giao thức RS232

PLC sử dụng giao tiếp truyền thông này để giao tiếp 1 : 1 với các thiết bị ngoại vi, module khác hoặc thậm chí với PLC khác (DTE-DCE, DTE-DTE, DCE-DCE) bằng cáp đảo chiều hoặc model null.

Các module này có thể là bất kỳ thứ gì cũng sử dụng RS232, chẳng hạn như giao diện người vận hành hoặc HMI, máy tính, bộ điều khiển và trình điều khiển động cơ, robot hoặc một số loại hệ thống thị giác.