Trang chủ Liên hệ

RS232 là gì và dùng để làm gì?

CÔNG TY TNHH THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN 21/02/2023

Khái niệm cổng truyền thông RS232 ( hay RS-232), chuẩn truyền thông RS232, cổng nối tiếp RS232, thiết bị chuyển đổi tín hiệu từ RS232 sang……rất phổ biến. Đó là một cụm từ bạn có thể nghe khá thường xuyên trong ngành công nghiệp. Hôm nay, MC&TT sẽ giới thiệu tới các bạn khái niệm cơ bản về các vấn đề liên quan tới việc giao tiếp thiết bị qua cổng RS232.

RS232 là gì?

Chuẩn truyền thông RS-232 được phát triển bởi the Electronic Industry Association and the Telecommunications Industry Association (EIA/TIA), là chuẩn truyền thông phổ biến nhất, thường được gọi tắt là RS-232 thay vì EIA/TIA-232-E. 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).

Phiên bản đầu tiên của RS-232 được định nghĩa vào năm 1962, do đó các mức logic được định nghĩa khác với logic TTL. Ở ngõ ra của một mạch lái, mức cao (tương ứng với logic 0) là một điện áp từ +5 đến +15 V, còn mức thấp (tương ứng với logic 1) là một điện áp từ -5 đến -15 V. Tại ngõ vào của một bộ thu, mức cao được định nghĩa là từ +3 đến +15 V (gọi là space), và mức thấp được định nghĩa là từ -3 đến -15 V (gọi là mark).

Để giảm nguy cơ bị nhiễu giữa các tín hiệu kế cận, tốc độ thay đổi (slew rate) được giới hạn tối đa là 30 V/μs, và tốc độ cũng được giới hạn tối đa là 20 kbps (kilobit per second) (giới hạn này hiện đã được nâng lên nhiều lần).

Trở kháng nhìn bởi mạch lái được định nghĩa là từ 3 đến 7 kΩ. Tải dung tối đa của đường truyền cũng được giới hạn là 2500 pF, và như vậy tùy thuộc vào loại cáp mà chiều dài tối đa có thể được xác định từ điện dung trên đơn vị chiều dài của cáp.

Các tín hiệu RS-232 được định nghĩa tại DTE, theo bảng sau (chỉ nói đến các tín hiệu của đầu nối 9 chân)

Chân số Chức năng Chiều thông tin
1 Data Carrier Detect (DCD) Từ DCE
2 Receive Data Line (RD) Từ DCE
3 Transmit Data Line (TD) Đến DCE
4 Data Terminal Ready (DTR) Đến DCE
5 Ground  
6 Data Set Ready (DSR) Từ DCE
7 Request To Send (RTS) Đến DCE
8 Clear To Send (CTS) Từ DCE
9 Ring Indicate (RI)

Từ DCE

Các hệ thống logic hiện nay chủ yếu sử dụng các chuẩn logic TTL hay CMOS, do đó khi cần giao tiếp bằng chuẩn RS-232 sẽ phải dùng các mạch lái và thu (RS-232 driver và receiver, hay RS-232 transceiver) để chuyển đổi giữa TTL/CMOS và RS-232 vật lý. Các bộ transceiver hiện nay thường có sẵn các bơm điện tích (charge pump) để tạo ra các mức áp RS-232 vật lý (phổ biến là +12 V và -12 V) từ một điện áp nguồn đơn cực giá trị nhỏ (5 V hay 3.3 V).

Vì chuẩn RS-232 chỉ dành cho giao tiếp giữa DTE và DCE, do đó khi hai máy tính (là các DTE) cần giao tiếp với nhau thông qua chuẩn RS-232 thì cần phải có các DCE (chẳng hạn như modem) làm trung gian. Các DCE này là các ngoại vi nên có thể giao tiếp trực tiếp với nhau thông qua một chuẩn nào đó.

Hình 1 minh họa đị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 1: Định dạng của một ký tự (character) được truyền theo chuẩn RS-232

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.

Như có thể thấy, việc đồng bộ xung clock giữa phía thu và phía phát được thực hiện ở mỗi start bit cho mỗi ký tự được truyền. Do đó, trong trường hợp xấu nhất là truyền 12 bit (1 start bit, 8 bit dữ liệu, 1 parity bit, và 2 stop bit), chúng ta có thể chấp nhận việc lệch giá trị xung clock giữa phía thu và phía phát tối đa là khoảng 3% (tại bit cuối cùng sẽ bị lệch 11×3 = 33%). Do đó, chúng ta không nhất thiết phải sử dụng các bộ dao động thật chính xác để tạo xung clock cho các bộ thu phát RS-232. Hay nói cách khác, chúng ta không cần độ sai lệch xung clock là 0% đối với giao tiếp RS-232.

Đ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. Tuy nhiên, nếu phần cứng của thiết bị không hỗ trợ giao tiếp RS-232, chúng ta có thể sử dụng một UART ngoài hay sử dụng phần mềm để giả lập một UART (kỹ thuật này thường được gọi là bit-banging).

Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và RS232C. Nhưng cho đế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. 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. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường…Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp.

Ưu điểm của RS232 là gì

Những đặc điểm cần lưu ý trong chuẩn RS232

Các mức điện áp đường truyền

RS232 sử dụng phương thức truyền thông không đối xứng, 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. Do đó ngay từ đầu tiên ra đời nó đã mang vẻ lỗi thời của chuẩn TTL, nó vẫn sử dụng các mức điện áp tương thích TTL để mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được đấu vào bus của bộ phận và các trở kháng ra của bộ phát.

Mức điện áp của tiêu chuẩn RS232C ( chuẩn thường dùng bây giờ) được mô tả như sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V

Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ – 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thơì gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd.

Cổng RS232 trên PC

Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng Com hay cổng nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại main máy tính. Khi đó các cổng Com đó được đánh dấu là Com 1, Com 2, Com 3…Trên đó có 2 loại đầu nối được sử dụng cho cổng nối tiếp RS232 loại 9 chân (DB9) hoặc 25 chân (DB25). Tuy hai loại đầu nối này có cùng song song nhưng hai loại đầu nối này được phân biệt bởi cổng đực (DB9) và cổng cái (DB25).

Ta xét sơ đồ chân cổng Com 9 chân:

Chức năng của các chân như sau:

Còn DB25 bây giờ hầu hết các main mới ra đều không có cổng này nữa. Nên tôi không đề cập đến ở đây.

Quá trình truyền dữ liệu

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, 1,5 hay 2 bit dừng.

Tốc độ Baud

Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc độ bit. Tốc độ bit được định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit truyền được trong thời gian 1 giây. Tốc độ bit này phải được thiết lập ở bên phát và bên nhận đều phải có tốc độ như nhau ( Tốc độ giữa vi điều khiển và máy tính phải chung nhau 1 tốc độ truyền bit)

Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền.Vì một phần tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud là phải đồng nhất.

Một số 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.

Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. Điều này làm giới hạn tốc Baud và khoảng cách truyền.

Bit chẵn lẻ  hay Parity bit

Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi khi truyền dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ.

Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các bit “1” được gửi trong một khung truyền là chẵn hay lẻ.

Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9… Nếu như một bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi.

Trong nhiều năm, RS232 là một tiêu chuẩn trong công nghiệp. Ngày nay, USB và Ethernet đã bắt đầu loại bỏ chuẩn giao tiếp nối tiếp cũ này. Tuy nhiên, với sự trợ giúp của các bộ chuyển đổi tín hiệu, các thiết bị vẫn có thể nói chuyện với nhau bằng các tiêu chuẩn mới và cũ.

Hãy nhớ rằng RS232 chỉ đơn giản là một hình thức truyền thông nối tiếp, hoặc một cách để truyền dữ liệu. Cáp DB9 tiêu chuẩn có lẽ là cáp được sử dụng nhiều nhất cho ứng dụng này.

Chúng tôi hy vọng điều này hữu ích cho các bạn!

Bài viết liên quan