Cổng com trông như thế nào? cổng COM. Ghép nối thiết bị với PC. Lập trình

Ban đầu, khi chúng xuất hiện những máy tính cá nhân, cùng với chúng là một số loại không quá phức tạp nhưng hoạt động khá thành công khi kết hợp với tất cả các giao diện nạp, cổng hoặc mạch khác. Cổng từ biểu thị phương thức truyền dữ liệu. Nó giống như một tế bào trí nhớ. Chỉ thông tin được ghi vào RAM và vẫn ở đó miễn là một số chương trình cần đến nó, cho đến khi chương trình đó xử lý nó (hoặc bản thân chương trình đó vẫn được ai đó trên máy tính cần đến).

Cổng và bộ nhớ

Nghĩa là, chương trình sẽ đọc dữ liệu từ bộ nhớ vào bộ xử lý, làm điều gì đó với nó, có thể nhận một số dữ liệu mới từ thông tin này và nó sẽ ghi vào một vị trí khác. Hoặc bản thân cái đã cho sẽ được viết lại ở một nơi khác. Trong mọi trường hợp, trong bộ nhớ, thông tin đã từng được ghi lại có thể được đọc hoặc xóa. Phòng giam trông giống như một cái rương đứng dựa vào tường. Và tất cả bộ nhớ đều bao gồm một ô, mỗi ô có địa chỉ riêng. Giống như những chiếc rương xếp thành hàng dựa vào tường dưới tầng hầm của một hiệp sĩ keo kiệt.

Chà, bạn cũng có thể tưởng tượng một cổng như một ô. Chỉ một một tế bào như vậyở phía sau có một cửa sổ dẫn ra đâu đó sau bức tường. Bạn có thể viết thông tin vào đó và thông tin sẽ lấy nó và bay ra khỏi cửa sổ, mặc dù trong một thời gian, nó sẽ vẫn ở trong ô giống như cách trong một ô thông thường bộ nhớ truy cập tạm thời.

Hoặc ngược lại, thông tin có thể “bay” vào ô cổng từ cửa sổ. Bộ xử lý sẽ nhìn thấy điều này và đọc thông tin mới xuất hiện này. Và anh ấy sẽ đưa nó vào hoạt động - anh ấy sẽ viết lại nó ở đâu đó, tính toán lại nó cùng với một số dữ liệu khác. Nó thậm chí có thể ghi nó vào một ô khác. Hoặc đến một cổng di động khác, khi đó thông tin nhận được qua cổng đầu tiên có thể “bay đi” vào cửa sổ của cổng thứ hai - đó là cách bộ xử lý quyết định. Chính xác hơn, chương trình tại thời điểm này ra lệnh cho bộ xử lý và xử lý dữ liệu được ghi trong bộ nhớ và đến từ các cổng.

Đơn giản và đẹp. Các cổng này ngay lập tức được gọi là - cổng đầu vào-đầu ra. Thông qua một số trong số họ, dữ liệu được gửi đi đâu đó, thông qua những người khác, dữ liệu được nhận từ đâu đó.

Chà, sau đó chuyển động bắt đầu theo một vòng tròn. Có một thiết bị, và có một thiết bị khác. Và bây giờ có một chuỗi ký tự, mỗi ký tự bao gồm các bit nhị phân riêng lẻ và chuỗi này cần được truyền đi. Làm thế nào để chuyển? Bạn có thể truyền ngay lập tức toàn bộ ký tự dọc theo một dòng gồm 8 dây - một dây = một bit, sau đó là mã của một ký tự khác, rồi đến thứ ba, v.v. cho đến khi bạn truyền toàn bộ chuỗi.

Và có thể mở ra từng bit không phải trong không gian (thông qua dây dẫn), mà theo thời gian: đầu tiên truyền một bit của ký hiệu, sau đó là bit thứ hai, v.v. tám lần. Rõ ràng là trong trường hợp thứ hai, cần có một số phương tiện bổ sung để diễn giải các biểu tượng theo cách này kịp thời.

Song song và nối tiếp

Và tốc độ truyền sẽ khác nhau:

Hóa ra mỗi lựa chọn đều có ưu điểm nhưng cũng có nhược điểm.

  1. Việc truyền tám bit cùng một lúc sẽ nhanh hơn (nghĩa là từng byte một), nhưng bạn cần số dây nhiều hơn tám lần
  2. Việc truyền từng bit một chỉ cần một lần truyền thông tin nhưng sẽ chậm hơn 8 lần.

Vì vậy, trong trường hợp đầu tiên, họ gọi truyền song song và trong trường hợp thứ hai - nối tiếp.

Giao diện cổng

Và toàn bộ hệ thống truyền tải như vậy - trong trường hợp này theo cách này, trong trường hợp khác - như thế này, gọi là giao diện. Một giao diện là song song, giao diện còn lại là nối tiếp. Gần như giống nhau, cổng, cái này song song, cái kia nối tiếp.

Khái niệm cổng khác với khái niệm “giao diện” như thế nào? Trong công nghệ hiện đại, từ ngữ không chỉ xuất hiện mà còn phát triển và nhận được “giáo dục”. Và cũng giống như con người, họ có thể trở thành những chuyên gia hẹp hòi, hoặc có thể trở thành “nghiệp dư”. Đây là một từ nghiệp dư điển hình - "giao diện". Bởi vì nó là “cái nút cho mọi lỗ”. Các giao diện là:

Và ý nghĩa của từ này là cái gì đó ở giữa cái gì đó. Inter - giữa, mặt - mặt. Nó trở nên rất đẹp, đó là lý do tại sao nó được sử dụng ở mọi nơi. Ví dụ: giao diện người dùng của hệ thống Windows là giao diện trên màn hình của hệ thống, được thiết kế để giao tiếp với một người.

Và nó bao gồm một hình ảnh được vẽ trên màn hình + quy tắc hoạt động của từng thành phần của hình ảnh (ví dụ: nhấp chuột vào nút trên màn hình - nó sẽ được nhấn) + quy tắc phản hồi của từng thành phần và toàn bộ hệ thống + tất cả phần cứng tham gia vào cuộc đối thoại (chuột, bàn phím, màn hình) + tất cả các chương trình cung cấp cuộc đối thoại từ phía toàn bộ hệ thống và từ phía các thiết bị riêng lẻ (trình điều khiển).

Họ không đề cập đến con người đó, nhưng vì anh ta cũng là một phần của sự tương tác nên anh ta phải có kiến ​​thức và kỹ năng để làm việc trong hệ thống, và để làm được điều này thì phải có các chương trình đào tạo, hệ thống trợ giúp... Và từ tất cả những điều này, một vẻ đẹp và từ có năng lực phát sinh: giao diện.

Trong chủ đề của chúng tôi, giao diện có nghĩa là mọi thứ đơn giản hơn một chút.

Đây là phương tiện chuyển giao phần cứng + phần mềm + quy tắc chuyển giao. Phần cứng - dễ hiểu. Nhưng phần mềm trên máy tính và trong các phương tiện truyền thông hiện đại luôn hiện diện ở mọi nơi. Nó thậm chí còn xảy ra: đầu tiên, một chức năng nào đó được tạo ra trên một số cơ sở phần cứng, chức năng này không được thực thi ngay lập tức, nhưng sử dụng các chương trình được viết đặc biệt. Và các chương trình đều có thể tùy chỉnh.

Và dần dần, khi chức năng (hoặc khối chức năng) mới hoạt động, các chương trình “tạo ra” nó - và chúng khác với phần cứng ở chỗ chúng có thể được cấu hình dễ dàng - được đưa đến trạng thái cấu hình tối ưu nào đó. Tức là không cần phải cấu hình nữa. Và khi đó chương trình trong phiên bản mới của khối chức năng có thể được thay thế bằng phần mềm thay thế dựa trên phần cứng. Ví dụ: “khâu” một thiết bị hoạt động tối ưu chương trình được điều chỉnh tốt vào bộ nhớ vĩnh viễn. Hoặc nghĩ ra một mạch logic đặc biệt sẽ thực hiện chính xác điều tương tự mà một chương trình được cấu hình tối ưu đã làm - mà không né tránh và đôi khi quên tất cả các cài đặt hữu ích của nó.

Đó là lý do tại sao giao diện thường được gọi như thế này - phần mềm và phần cứng.

Cần có các quy tắc truyền tải để đảm bảo rằng những điều giống nhau được hiểu (và xử lý) theo cùng một cách ở cả hai đầu của sự tương tác. Có phải chúng ta đang nói về việc truyền xung lực? Điều này có nghĩa là các xung phải hoàn toàn giống nhau.

Ví dụ: để 1 bit có dạng điện áp giảm +12 hoặc +15 volt từ 0. Và để nó ở dạng hình chữ nhật, hoặc một chùm sắc nét - đỉnh của nó phải không nhỏ hơn + 5 volt, và không thực sự cần thiết phải đưa ra giới hạn trên, chẳng hạn. Điều này là do khi truyền xung qua một khoảng cách nào đó, tín hiệu điện có xu hướng yếu đi và “bị nhòe”.

Nếu đúng 12 volt được gửi từ một đầu, thì 3 volt có thể đến đầu kia và điều này có thể được hệ thống thu hiểu đơn giản là nhiễu trên đường dây và thông tin truyền đi sẽ bị mất.

Ý nghĩa của xung động cũng nên được hiểu theo cách tương tự. Và sự thúc đẩy có thể mang tính thông tin, dịch vụ, đồng bộ hóa. Và nói chung, chẳng hạn, không phải xung lực, mà chỉ đơn giản là điện áp không đổi. Có thể được sử dụng ở đầu kia để cấp nguồn cho một thiết bị nhỏ.

Và bản thân các dây đã được thảo luận ngay từ đầu cũng nên được hiểu như nhau. Ở đây phải nói ngay rằng không bao giờ có chuyện chỉ có một sợi dây. Ngay cả điện thoại cũng có hai dây trong cáp, nhưng thông thường cáp phải có bốn dây. Và giao diện dữ liệu luôn có nhiều dây dẫn. Một số trong số đó là thông tin, một số là dịch vụ. Và đây là điều cần được công nhận như nhau ở cả hai đầu của sự tương tác. Và dây được công nhận là? Theo màu sắc nếu ở cáp và theo vị trí nếu ở các điểm tiếp xúc kết nối.

Cảng là một từ đơn giản và cũng không hoàn toàn rõ ràng. Nhưng ý nghĩa thì tương tự: cái gì đó được tải lên cái gì đó và gửi đi đâu đó. Hoặc ngược lại, một cái gì đó chấp nhận một cái gì đó và dỡ bỏ một cái gì đó từ nó. Ý nghĩa gần giống như giao diện phần cứng-phần mềm, nhưng có phần ngắn gọn hơn. Và chặt chẽ hơn, như trong hải quân (“Họ sẽ nói với bạn - đừng tranh cãi... nhưng chúng tôi không tranh cãi…”). Chỉ có điều tín hiệu của chúng tôi truyền đi không phải bằng đường biển mà bằng cáp.

Sơ đồ chân của các đầu nối cổng COM

Sơ đồ chân không có kết nối Tuy nhiên, với sự đóng đinh, giống như những sợi dây chạy tự do trong một vỏ cáp, chúng được tháo rời thành các cạnh và hàn cứng vào các chân của chúng, tương tự như việc đóng đinh. Pin, trong tiếng Anh là “pin”, pin, do đó pinout, từ này đã là một biệt ngữ “thân thiện với tiếng Anh” trong giao tiếp máy tính. Nó có nghĩa là nối dây vào các chân trên đầu nối.

Hình dạng của đầu nối, thứ tự nối dây (chân) trong đó, mục đích của từng chân, cũng như định mức điện áp và ý nghĩa của các tín hiệu trong mỗi chân - đây là một phần của giao diện. Thông thường, tất cả thông tin này được biên soạn thành một tài liệu riêng gọi là thông số cổng. Thật là một dấu hiệu một trang đơn giản và rõ ràng. Trong các loại giao diện khác, những thứ như thế này có thể được gọi là “giao thức”. Và ở đây họ chỉ đơn giản gọi nó là “pinout”.

Cổng COM nối tiếp

Cổng COM của máy tính là kết nối tầm xa giữa một tổ hợp máy tính. Không giống như các cổng và cáp song song dẫn đến các thiết bị “nặng” - máy in, máy quét, cổng Com kết nối các thiết bị “nhẹ” với máy tính – chuột, modem. Giao diện giữa máy tính với máy tính đầu tiên (thông qua “modem rỗng”). Hơn nữa, Mạng cục bộ lan rộng từ khi nào và chuột bắt đầu được kết nối thông qua cùng một đầu nối với bàn phím - cổng ps/2 (pe-es-in một nửa) - cổng com bằng cách nào đó đã bị lãng quên.

Sự hồi sinh đến với sự ra đời của giao diện nối tiếp USB. Vậy hóa ra đó là một chuyển động theo vòng tròn. Giờ đây, trên USB, ngoài ổ đĩa flash, bạn có thể tìm thấy cả chuột USB và bàn phím USB. Máy in, máy quét, modem - tất cả các thiết bị ngoại vi giờ đều có trên USB, tôi đã quên mất những sợi cáp LTP song song dày và chắc chắn, phải vặn hai bên bằng 2 bu lông. Và có hai dây tín hiệu trong những chiếc USB này (thực ra có một kênh, một tín hiệu trực tiếp, tín hiệu kia giống nhau - nghịch đảo) và hai - nguồn điện và vỏ.

Có một số cổng COM nối tiếp trước đó. Nhỏ nhất - và phổ biến nhất Cổng 9 chân (D9), nơi kết nối hầu hết các thiết bị: chuột, modem, cáp null-modem. Các tiếp điểm được sắp xếp thành hai hàng, 5 và 4 liên tiếp, tạo thành hình thang. Do đó có tên D9. Trên "mẹ" việc đánh số đi từ trái sang phải và từ trên xuống dưới:

1 2 3 4 5

Đấu dây cổng COM, cổng RS232, 9 chân.

chỉ định Kiểu Sự miêu tả
1 DCD Cổng vào Mức độ cao từ modem khi nhận được modem của nhà mạng đối tác
2 RxD Cổng vào Xung dữ liệu đến
3 TxD Lối ra Xung dữ liệu đi
4 DTR Lối ra Mức cao (+12V) cho biết máy tính đã sẵn sàng nhận dữ liệu. Chuột được kết nối đã sử dụng chân này làm nguồn điện
5 GND Tổng quan Trái đất
6 DSR Cổng vào Thiết bị đã sẵn sàng truyền dữ liệu
7 RTS Lối ra Sự sẵn sàng đáp ứng của thiết bị đối tác
8 CTS Cổng vào Sẵn sàng nhận dữ liệu từ đối tác
9 R.I. Cổng vào Tín hiệu thông báo cho máy tính về cuộc gọi đến mà modem nhận được từ đường dây liên lạc

Mô tả giao diện RS-232, định dạng của các đầu nối được sử dụng và mục đích của các chân, ký hiệu tín hiệu, giao thức trao đổi dữ liệu.

mô tả chung

Giao diện RS-232, được gọi chính thức là "EIA/TIA-232-E", nhưng được biết đến nhiều hơn với tên giao diện "cổng COM", trước đây là một trong những giao diện phổ biến nhất trong công nghệ máy tính. Nó vẫn được tìm thấy trên máy tính để bàn, bất chấp sự ra đời của các giao diện nhanh hơn và thông minh hơn như USB và FireWare. Ưu điểm của nó theo quan điểm của những người nghiệp dư vô tuyến bao gồm tốc độ tối thiểu thấp và dễ dàng thực hiện giao thức trong một thiết bị tự chế.

Giao diện vật lý được triển khai bởi một trong hai loại đầu nối: DB-9M hoặc DB-25M, loại thứ hai thực tế không được tìm thấy trong các máy tính được sản xuất hiện nay.

Phân bổ chân của đầu nối 9 chân


Phích cắm 9 chân loại DB-9M
Đánh số tiếp điểm ở phía chân cắm
Hướng của tín hiệu được chỉ định tương ứng với máy chủ (máy tính)
Liên hệ Tín hiệu Phương hướng Sự miêu tả
1 đĩa CD Cổng vào Đã phát hiện nhà cung cấp dịch vụ
2 RXD Cổng vào Dữ liệu đã nhận
3 TXD Lối ra Dữ liệu được truyền
4 DTR Lối ra Máy chủ đã sẵn sàng
5 GND - Dây chung
6 DSR Cổng vào Thiết bị đã sẵn sàng
7 RTS Lối ra Máy chủ đã sẵn sàng truyền
8 CTS Cổng vào Thiết bị đã sẵn sàng để nhận
9 R.I. Cổng vào Đã phát hiện cuộc gọi

Phân bổ chân của đầu nối 25 chân

Liên hệ Tín hiệu Phương hướng Sự miêu tả
1 CÁI KHIÊN. - Màn hình
2 TXD Lối ra Dữ liệu được truyền
3 RXD Cổng vào Dữ liệu đã nhận
4 RTS Lối ra Máy chủ đã sẵn sàng truyền
5 CTS Cổng vào Thiết bị đã sẵn sàng để nhận
6 DSR Cổng vào Thiết bị đã sẵn sàng
7 GND - Dây chung
8 đĩa CD Cổng vào Đã phát hiện nhà cung cấp dịch vụ
9 - - Dự trữ
10 - - Dự trữ
11 - - Không được sử dụng
12 SCD Cổng vào Đã phát hiện nhà cung cấp dịch vụ số 2
13 SCTS Cổng vào Thiết bị đã sẵn sàng nhận số 2
Liên hệ Tín hiệu Phương hướng Sự miêu tả
14 STXD Lối ra Dữ liệu được truyền #2
15 TRC Cổng vào Đồng hồ máy phát
16 SRXD Cổng vào Dữ liệu đã nhận #2
17 RCC Cổng vào Đồng hồ máy thu
18 LLOOP Lối ra Vòng lặp cục bộ
19 SRTS Lối ra Máy chủ sẵn sàng truyền số 2
20 DTR Lối ra Máy chủ đã sẵn sàng
21 RLOOP Lối ra Vòng ngoài
22 R.I. Cổng vào Đã phát hiện cuộc gọi
23 DRD Cổng vào Tốc độ dữ liệu được xác định
24 TRCO Lối ra Đồng hồ máy phát bên ngoài
25 BÀI KIỂM TRA Cổng vào Chê độ kiểm tra

Từ các bảng, có thể thấy rằng giao diện 25 chân được phân biệt bằng sự hiện diện của kênh nhận-truyền thứ hai chính thức (tín hiệu được chỉ định là “# 2”), cũng như nhiều tín hiệu điều khiển và điều khiển bổ sung. Tuy nhiên, thông thường, mặc dù có đầu nối "rộng" trong máy tính nhưng các tín hiệu bổ sung không được kết nối với nó.

Đặc điểm điện từ

Mức logic máy phát:"0" - từ +5 đến +15 Vôn, "1" - từ -5 đến -15 Vôn.

Mức logic máy thu:"0" - trên +3 Vôn, "1" - dưới -3 Vôn.

Trở kháng đầu vào của máy thu ít nhất là 3 kOhm.

Các đặc điểm này được tiêu chuẩn xác định là tối thiểu, đảm bảo khả năng tương thích của các thiết bị, tuy nhiên, các đặc tính thực tế thường tốt hơn nhiều, một mặt, cho phép cấp nguồn cho các thiết bị năng lượng thấp từ cổng (ví dụ: nhiều dữ liệu tự chế cáp cho điện thoại di động được thiết kế theo cách này) và mặt khác để cung cấp cho cổng đầu vào đảo ngược Mức TTL thay vì tín hiệu lưỡng cực.

Mô tả các tín hiệu giao diện chính

đĩa CD- Thiết bị đặt tín hiệu này khi phát hiện sóng mang trong tín hiệu thu được. Thông thường, tín hiệu này được sử dụng bởi các modem, do đó thông báo cho máy chủ rằng họ đã phát hiện thấy một modem đang hoạt động ở đầu bên kia của đường dây.

RXD- Đường dây cho máy chủ nhận dữ liệu từ thiết bị. Được mô tả chi tiết trong phần “Giao thức trao đổi dữ liệu”.

TXD- Đường truyền dữ liệu từ máy chủ tới thiết bị. Được mô tả chi tiết trong phần “Giao thức trao đổi dữ liệu”.

DTR- Máy chủ đặt tín hiệu này khi sẵn sàng trao đổi dữ liệu. Trên thực tế, tín hiệu được thiết lập khi cổng được mở bởi chương trình truyền thông và vẫn ở trạng thái này miễn là cổng được mở.

DSR- Thiết bị đặt tín hiệu này khi được bật và sẵn sàng liên lạc với chủ nhà. Tín hiệu này và tín hiệu trước đó (DTR) phải được đặt để trao đổi dữ liệu.

RTS- Máy chủ đặt tín hiệu này trước khi bắt đầu truyền dữ liệu đến thiết bị, đồng thời cũng báo hiệu rằng nó đã sẵn sàng nhận dữ liệu từ thiết bị. Được sử dụng để kiểm soát phần cứng trao đổi dữ liệu.

CTS- Thiết bị đặt tín hiệu này để phản hồi lại thiết lập của máy chủ trước đó (RTS) khi nó sẵn sàng nhận dữ liệu (ví dụ: khi dữ liệu trước đó do máy chủ gửi được modem chuyển sang đường truyền hoặc có dung lượng trống trong bộ đệm trung gian).

R.I.- Thiết bị (thường là modem) đặt âm báo này khi nhận cuộc gọi từ hệ thống từ xa, chẳng hạn khi nhận cuộc gọi điện thoại nếu modem được cấu hình để nhận cuộc gọi.

Giao thức truyền thông

Trong giao thức RS-232, có hai phương pháp điều khiển trao đổi dữ liệu: phần cứng và phần mềm, cũng như hai chế độ truyền: đồng bộ và không đồng bộ. Giao thức cho phép bạn sử dụng bất kỳ phương pháp điều khiển nào kết hợp với bất kỳ chế độ truyền nào. Cũng có thể hoạt động mà không cần kiểm soát luồng, điều đó có nghĩa là máy chủ và thiết bị luôn sẵn sàng nhận dữ liệu khi thiết lập liên lạc (tín hiệu DTR và DSR được thiết lập).

Phương pháp kiểm soát phần cứngđược thực hiện bằng tín hiệu RTS và CTS. Để truyền dữ liệu, máy chủ (máy tính) đặt tín hiệu RTS và đợi thiết bị đặt tín hiệu CTS, sau đó bắt đầu truyền dữ liệu miễn là tín hiệu CTS được đặt. Tín hiệu CTS được máy chủ kiểm tra ngay trước khi byte tiếp theo bắt đầu được truyền, do đó, một byte đã bắt đầu được truyền sẽ được truyền đầy đủ, bất kể giá trị CTS. Ở chế độ trao đổi dữ liệu bán song công (thiết bị và máy chủ lần lượt truyền dữ liệu, ở chế độ song công hoàn toàn, chúng có thể thực hiện việc này đồng thời), việc máy chủ loại bỏ tín hiệu RTS có nghĩa là nó chuyển sang chế độ nhận.

Phương pháp điều khiển phần mềm bao gồm các truyền dẫn dừng đặc biệt bên nhận (ký tự có mã 0x13, gọi là XOFF) và truyền tiếp tục (ký tự có mã 0x11, gọi là XON). Khi nhận được các ký tự này, bên gửi phải dừng truyền hoặc tiếp tục truyền lại (nếu có dữ liệu đang chờ truyền). Phương pháp này đơn giản hơn về mặt triển khai phần cứng, nhưng cung cấp phản hồi chậm hơn và do đó yêu cầu thông báo trước cho máy phát khi không gian trống trong bộ đệm nhận giảm xuống một giới hạn nhất định.

Chế độ truyền đồng bộ ngụ ý trao đổi dữ liệu liên tục khi các bit nối tiếp nhau mà không có sự tạm dừng bổ sung ở một tốc độ nhất định. Chế độ này là cổng COM không được hỗ trợ.

Chế độ truyền không đồng bộ thực tế là mỗi byte dữ liệu (và bit chẵn lẻ, nếu có) được “bọc” bằng một chuỗi đồng bộ hóa gồm một bit bắt đầu bằng 0 và một hoặc nhiều bit dừng. Sơ đồ luồng dữ liệu ở chế độ không đồng bộ được thể hiện trong hình.

Một trong những thuật toán vận hành máy thu khả thi Kế tiếp:

  1. Đợi mức tín hiệu nhận "0" (RXD trong trường hợp máy chủ, TXD trong trường hợp thiết bị).
  2. Đếm một nửa thời lượng bit và kiểm tra xem mức tín hiệu có còn "0" không
  3. Đếm toàn bộ thời lượng của bit và ghi mức tín hiệu hiện tại vào bit dữ liệu có trọng số thấp nhất (bit 0)
  4. Lặp lại bước trước cho tất cả các bit dữ liệu còn lại
  5. Đếm toàn bộ thời lượng của bit và mức tín hiệu hiện tại, sử dụng nó để kiểm tra khả năng thu chính xác bằng cách sử dụng kiểm tra tính chẵn lẻ (xem bên dưới)
  6. Đếm toàn bộ thời lượng của bit và đảm bảo rằng mức tín hiệu hiện tại là “1”.

Đôi khi bạn phải giải quyết vấn đề kết nối thiết bị điện tử với máy tính, có thể chỉ đơn giản là trao đổi dữ liệu hoặc điều khiển từ xa. Bài viết này mô tả cách thực hiện điều này bằng cách sử dụng cổng nối tiếp. Ưu điểm chính của nó là giao diện lập trình Windows (API) tiêu chuẩn cho phép điều khiển trực tiếp các dòng đầu ra, kiểm soát trực tiếp chúng và có chức năng chờ một số sự kiện liên quan đến cổng COM. Ngoài ra, tiêu chuẩn RS-232, theo đó các cổng COM được tạo ra, cho phép kết nối và ngắt kết nối cáp trong khi thiết bị đang hoạt động (phích cắm nóng).

Sự miêu tả

Cổng COM (cổng nối tiếp)– giao diện hai chiều truyền dữ liệu ở dạng nối tiếp (từng bit) thông qua giao thức RS-232. Đây là giao thức khá phổ biến được sử dụng để kết nối một thiết bị (ví dụ: máy tính) với các thiết bị khác thông qua dây dài tới 30 m. Các mức tín hiệu logic ở đây khác với các mức tín hiệu tiêu chuẩn: một mức logic là từ +5 đến +15V, mức 0 logic là từ -5 đến -15V, yêu cầu các biến đổi mạch bổ sung nhưng mang lại khả năng chống nhiễu tốt.

Hãy xem xét đầu nối 9 chân (DB-9M). Dưới đây là sơ đồ chân của nó:

Ghim số. Tên Đặc tính của tín hiệu Tín hiệu
1 DCD Đầu vào Phát hiện sóng mang dữ liệu
2 RxD Ngày nghỉ Chuyển dữ liệu
3 TxD Đầu vào Nhận dữ liệu
4 DTR Ngày nghỉ Thiết bị đầu cuối dữ liệu đã sẵn sàng
5 GND - Đất
6 DSR Đầu vào Bộ dữ liệu đã sẵn sàng
7 RTS Ngày nghỉ Yêu cầu để gửi
8 CTS Đầu vào Xóa để gửi
9 R.I. Đầu vào Chỉ báo vòng

Chúng ta sẽ quan tâm nhất đến các chân 2 (truyền dữ liệu), 3 (nhận dữ liệu) và 5 (mặt đất). Đây là mức tối thiểu được đặt cho giao tiếp hai chiều giữa các thiết bị.

Tôi sẽ không tập trung vào mô tả chi tiết về giao thức. Đối với điều này có GOST, v.v. Vì vậy, chúng ta sẽ đi xa hơn và nói về cách kiểm soát con thú này.

Ứng dụng

Như đã đề cập, các cấp độ LAN RS-232 khác với các cấp độ TTL tiêu chuẩn. Vì vậy, chúng ta cần bằng cách nào đó chuyển đổi các giá trị điện áp. Những thứ kia. tạo 5V từ +15V và 0V từ -15V (và ngược lại). Một cách (và có lẽ là đơn giản nhất) là sử dụng chip MAX232 đặc biệt. Thật dễ hiểu và có thể chuyển đổi đồng thời hai tín hiệu logic.

Dưới đây là sơ đồ bao gồm của nó:


Tôi nghĩ sẽ không có khó khăn gì. Đây là một trong những phương án sử dụng con chip này: truyền dữ liệu từ vi điều khiển sang máy tính và ngược lại. Tín hiệu truyền đi đến chân T x IN ở một bên và trên R x VÀO mặt khác. Tín hiệu đầu vào được lấy từ T x NGOÀI và R x OUT tương ứng.

Lập trình

Đầu tiên, hãy nói về các cổng lập trình ở mức độ thấp. Điều này sẽ đúng hơn. Tôi đã tốn rất nhiều công sức để tìm hiểu giao diện này cho đến khi bắt đầu đi sâu vào nguyên lý hoạt động của nó ở mức độ thấp hơn so với việc truyền ký tự đơn giản. Nếu điều này rõ ràng thì sẽ không có vấn đề gì với các ngôn ngữ cấp cao.

Dưới đây là địa chỉ của các cổng COM mà chúng ta sẽ phải làm việc với:

Tên cổng Địa chỉ IRQ
COM 1 3F8h 4
COM 2 2F8h 3
COM 3 3E8h 4
COM 4 2E8h 3

Họ có thể khác nhau. Bạn có thể đặt các giá trị trong cài đặt BIOS. Đây là những địa chỉ cơ sở. Địa chỉ của các thanh ghi chịu trách nhiệm vận hành các cổng sẽ phụ thuộc vào chúng:

Địa chỉ DLAB Đọc viết Viết tắt Tên đăng ký
+ 0 =0 Viết Bộ đệm giữ máy phát
=0 Đọc Bộ đệm nhận
=1 Đọc viết Chốt chia số Byte thấp
+ 1 =0 Đọc viết IER Ngắt Cho phép Đăng ký
=1 Đọc viết Byte cao chốt chia
+ 2 - Đọc IIR Đăng ký nhận dạng ngắt
- Viết FCR Đăng ký kiểm soát FIFO
+ 3 - Đọc viết LCR Thanh ghi điều khiển dòng
+ 4 - Đọc viết MCR Đăng ký điều khiển modem
+ 5 - Đọc LSR Đăng ký trạng thái dòng
+ 6 - Đọc MSR Đăng ký trạng thái modem
+ 7 - Đọc viết Đăng ký cào

Cột đầu tiên là địa chỉ của thanh ghi so với cột cơ sở. Ví dụ: đối với COM1: địa chỉ thanh ghi LCR sẽ là 3F8h+3=3FB. Cột thứ hai là bit DLAB (Divisor Latch Access Bit), xác định các mục đích khác nhau cho cùng một thanh ghi.. Tức là. nó cho phép bạn vận hành 12 thanh ghi chỉ bằng 8 địa chỉ. Ví dụ: nếu DLAB=1, thì bằng cách truy cập địa chỉ 3F8h, chúng ta sẽ đặt giá trị byte thấp của bộ chia tần số bộ tạo xung nhịp. Nếu DLAB = 0 thì khi truy cập vào cùng một địa chỉ, byte được truyền hoặc nhận sẽ được ghi vào thanh ghi này.

Đăng ký “không”

Nó tương ứng với các thanh ghi để nhận/truyền dữ liệu và thiết lập hệ số phân tần của máy phát. Như đã đề cập ở trên, nếu DLAB = 0 thì thanh ghi được sử dụng để ghi dữ liệu đã nhận/truyền, nhưng nếu nó bằng 1 thì giá trị byte thấp của bộ chia tần số bộ tạo xung nhịp được đặt. Tốc độ truyền dữ liệu phụ thuộc vào giá trị của tần số này. Byte cao của bộ chia được ghi vào ô nhớ tiếp theo (tức là đối với cổng COM1, nó sẽ là 3F9h). Dưới đây là sự phụ thuộc của tốc độ truyền dữ liệu vào hệ số chia:

Đăng ký cho phép ngắt (IER)

Nếu DLAB=0 thì nó được sử dụng làm thanh ghi để kiểm soát các ngắt từ bộ điều hợp không đồng bộ; nếu DLAB=1 thì byte cao của bộ chia tần số bộ tạo xung nhịp được đặt trong đó.

Đăng ký nhận dạng ngắt (IIR)

Ngắt là sự kiện dừng việc thực thi chương trình chính và bắt đầu thực hiện chương trình ngắt. Thanh ghi này xác định loại ngắt xảy ra.

Thanh ghi điều khiển dòng (LCR)

Đây là thanh ghi điều khiển

Bit 7 1 Bit truy cập chốt chia – thiết lập tốc độ trao đổi dữ liệu
0 Chế độ bình thường (điều khiển ngắt, nhận/truyền dữ liệu)
Bit 6 Mô phỏng ngắt dòng (gửi một chuỗi nhiều số 0)
Bit 3 – 5 Bit 5 Bit 4 Bit 3 Lựa chọn chẵn lẻ
X X 0 Không có chẵn lẻ
0 0 1 Chẵn lẻ lẻ
0 1 1 Chẵn lẻ
1 0 1 Tính chẵn lẻ cao (Dính)
1 1 1 Tính chẵn lẻ thấp (Dính)
Bit 2 Số lượng bit dừng
0 1 bit dừng
1 2 bit dừng cho 6,7 hoặc 8 bit dữ liệu hoặc 1,5 bit dừng cho 5 bit dữ liệu.
Bit 0 và 1 Bit 1 Bit 0 Số bit dữ liệu
0 0 5 bit
0 1 6 bit
1 0 7 bit
1 1 8 bit

Kiểm tra tính chẵn lẻ liên quan đến việc truyền thêm một bit - bit chẵn lẻ. Giá trị của nó được đặt sao cho tổng số số 1 (hoặc số 0) trong một gói bit là chẵn hoặc lẻ, tùy thuộc vào cài đặt của các thanh ghi cổng. Bit này được sử dụng để phát hiện các lỗi có thể xảy ra trong quá trình truyền dữ liệu do nhiễu trên đường truyền. Thiết bị nhận tính toán lại tính chẵn lẻ của dữ liệu và so sánh kết quả với bit chẵn lẻ nhận được. Nếu tính chẵn lẻ không khớp thì dữ liệu được coi là được truyền có lỗi.

Bit dừng cho biết kết thúc truyền dữ liệu.

Thanh ghi điều khiển modem (MCR)

Thanh ghi điều khiển modem.

Chút Nghĩa
0 dòng DTR
1 dòng RTS.
2 Dòng OUT1 (dự phòng)
3 Dòng OUT2 (dự phòng)
4 Chạy chẩn đoán khi đầu vào của bộ điều hợp không đồng bộ bị chập mạch với đầu ra của nó.
5-7 Bằng 0

Thanh ghi trạng thái dòng (LSR)

Một thanh ghi xác định trạng thái của dòng.

Chút Nghĩa
0 Dữ liệu đã nhận và sẵn sàng để đọc, tự động đặt lại khi dữ liệu được đọc.
1 Lỗi tràn. Một byte dữ liệu mới đã được nhận, nhưng byte dữ liệu trước đó vẫn chưa được chương trình đọc. Byte trước đó bị mất.
2 Lỗi chẵn lẻ, được xóa sau khi đọc trạng thái dòng.
3 Lỗi đồng bộ hóa.
4 Đã phát hiện yêu cầu ngắt truyền "BREAK" - một chuỗi số 0 dài.
5 Thanh ghi giữ máy phát trống và một byte mới có thể được ghi vào nó để truyền.
6 Thanh ghi dịch chuyển máy phát trống. Thanh ghi này nhận dữ liệu từ thanh ghi giữ và tuần tự hóa nó để truyền đi.
7 Hết thời gian (thiết bị không được kết nối với máy tính).

Thanh ghi trạng thái modem (MSR)

Thanh ghi trạng thái modem.

Được rồi, mọi chuyện đã kết thúc rồi. Bằng cách vận hành các thanh ghi này, bạn có thể giao tiếp trực tiếp với cổng COM và điều khiển việc truyền và nhận dữ liệu. Nếu không muốn mày mò về bộ nhớ, bạn có thể sử dụng các thành phần có sẵn cho nhiều môi trường lập trình khác nhau: C++, VB, Delphi, Pascal, v.v. Chúng mang tính trực quan nên tôi nghĩ không cần thiết phải tập trung vào chúng ở đây.

THR - thanh ghi dữ liệu trung gian máy phát(chỉ ghi) Dữ liệu được ghi vào thanh ghi sẽ được chuyển đến thanh ghi dịch đầu ra (khi nó rảnh), từ đó nó sẽ được xuất ra khi có tín hiệu kích hoạt CTS. Bit 0 được truyền (và nhận) trước tiên. Nếu độ dài gửi nhỏ hơn 8 bit thì các bit quan trọng nhất sẽ bị bỏ qua.
RBR - nhận thanh ghi đệm dữ liệu(chỉ đọc) Dữ liệu nhận được bởi thanh ghi dịch đầu vào được đặt vào thanh ghi RBR, từ đó bộ xử lý có thể đọc được chúng. Nếu tại thời điểm nhận được ký tự tiếp theo mà ký tự trước đó chưa được đọc từ thanh ghi thì lỗi tràn sẽ được ghi lại. Khi độ dài gửi nhỏ hơn 8 bit, các bit quan trọng nhất trong thanh ghi có giá trị bằng 0.
DLL - thanh ghi byte thấp chia tần số.
DLM - thanh ghi byte cao chia tần số. Số chia được xác định theo công thức D=115200/V, trong đó V là tốc độ truyền, bit/s. Tần số xung nhịp đầu vào là 1,8432 MHz được chia cho một hệ số nhất định để tạo ra tốc độ dữ liệu gấp 16 lần.
IER - đăng ký cho phép ngắt. Giá trị bit bằng 1 cho phép ngắt từ nguồn tương ứng.
Đăng ký bài tập bit IER:
* bit = 0 - không được sử dụng;
*bit 3 - Mod_IE- bằng cách thay đổi trạng thái của modem (bất kỳ dòng nào CTS, DSR, RI, DCD);
* bit 2 - RxL_IE- do ngắt dòng/lỗi;
*bit 1 - TxD_IE- sau khi hoàn tất việc chuyển giao;
*bit 0 - RxD_IE- khi nhận được một ký tự (ở chế độ FIFO - gián đoạn thời gian chờ).
IIR - thanh ghi nhận dạng ngắt và dấu hiệu chế độ FIFO(chỉ để đọc). Để đơn giản hóa việc phân tích phần mềm, UART tổ chức các yêu cầu ngắt nội bộ theo hệ thống ưu tiên bốn cấp. Thứ tự ưu tiên (giảm dần): trạng thái đường truyền, nhận ký tự, giải phóng thanh ghi máy phát, trạng thái modem. Khi điều kiện ngắt xảy ra, UART sẽ trỏ đến nguồn có mức ưu tiên cao nhất cho đến khi nó được xóa bằng thao tác tương ứng. Chỉ sau đó, một yêu cầu sẽ được đưa ra cho biết nguồn tiếp theo. Mục đích của các bit thanh ghi được mô tả dưới đây: IIR.
* Bits - dấu hiệu của chế độ FIFO:
11 chế độ FIFO 16550A;
10 - Chế độ FIFO 16550;
00 - bình thường.
* Bit - không được sử dụng.
* Bit 3 - ngắt thời gian chờ nhận ở chế độ FIFO (có các ký tự được đọc trong bộ đệm).
* Bit - lý do ngắt có mức ưu tiên cao nhất (ở chế độ bình thường, không phải chế độ FIFO):
11 - lỗi/ngắt dòng, thiết lập lại được thực hiện bằng cách đọc thanh ghi trạng thái dòng;
10 - nhận được ký hiệu, việc đặt lại được thực hiện bằng cách đọc dữ liệu;
01 - ký tự được truyền (đăng ký THR trống), việc thiết lập lại được thực hiện bằng cách ghi dữ liệu;
00 - thay đổi trạng thái modem; Việc đặt lại được thực hiện bằng cách đọc thanh ghi trạng thái modem.
* Bit 0 là dấu hiệu của yêu cầu ngắt không được phục vụ (1 - không có yêu cầu, 0 - có yêu cầu).
Trong chế độ FIFO, nguyên nhân gây ra ngắt được xác định bằng .
* O11 - lỗi/ngắt dòng. Việc đặt lại được thực hiện bằng cách đọc thanh ghi trạng thái dòng.
* 010 - ký tự được chấp nhận. Việc đặt lại được thực hiện bằng cách đọc thanh ghi dữ liệu của máy thu
* 110 - chỉ báo thời gian chờ (trong khoảng thời gian ký tự gấp 4 lần, không có một ký tự nào được truyền hoặc nhận, mặc dù có ít nhất một ký tự trong bộ đệm). Việc đặt lại được thực hiện bằng cách đọc thanh ghi dữ liệu của máy thu.
*001 - đăng ký THR trống Việc đặt lại được thực hiện bằng cách ghi dữ liệu.
* 000 - thay đổi trạng thái modem ( CIS, DSR, RI hoặc DCD). Việc thiết lập lại được thực hiện bằng cách đọc thanh ghi MSR.
FCR - Thanh ghi điều khiển FIFO(chỉ để ghi âm). Mục đích của các bit thanh ghi được mô tả dưới đây: FCR:
* Chút ít - ITL(Mức kích hoạt ngắt) - Mức lấp đầy bộ đệm FIFO tại đó ngắt được tạo ra:
00 - 1 byte (mặc định);
01 - 4 byte;
10 - 8 byte;
11 - 14 byte.
*Bit được bảo lưu.
* Bit 3 - cho phép hoạt động DMA.
* Bit 2 - THIẾT LẬP LẠI(Đặt lại FIFO của bộ phát) - đặt lại bộ đếm bộ phát FIFO (bằng cách ghi một; thanh ghi dịch chuyển không được đặt lại).
* Bit 1 - THIẾT LẬP LẠI(Đặt lại FIFO bộ thu) - đặt lại bộ đếm bộ thu FIFO (bằng cách viết một; thanh ghi dịch chuyển không được đặt lại).
* Bit 0 - TRIFFOE(Truyền và nhận FIFO Enable) - bật (theo đơn vị) chế độ FIFO cho máy phát và máy thu. Khi thay đổi chế độ, bộ đệm FIFO sẽ tự động bị xóa.
LCR - thanh ghi điều khiển dòng(cài đặt tham số kênh). Mục đích của các bit thanh ghi được mô tả dưới đây: LCR.
* Bit 7 - DLAB(Bit truy cập chốt chia) - kiểm soát quyền truy cập vào bộ chia tần số.
* Bit 6 - BRCON(Điều khiển ngắt) - tạo ngắt dòng (gửi số 0) khi BRCON=1.
* Bit 5 - STICPAR(Chẵn lẻ dính) - buộc phải hình thành bit chẵn lẻ:
0 - bit điều khiển được tạo theo tính chẵn lẻ của ký hiệu đầu ra;
1 - giá trị không đổi của bit điều khiển: khi NGAY LẬP TỨC=1 - không, với NGAY LẬP TỨC=0 - độc thân.
* Bit 4 - NGAY LẬP TỨC(Chọn chẵn lẻ) - lựa chọn loại điều khiển: 0 - lẻ, 1 - chẵn.
* Bit 3 - PAREN(Bật tính chẵn lẻ) - độ phân giải bit điều khiển:
1 - bit điều khiển (chẵn lẻ hoặc hằng số) được bật;
0 - bit điều khiển bị vô hiệu hóa.
* Bit 2 - DỪNG(Stop Bits) - số lượng bit dừng:
0 - 1 bit dừng;
1 - 2 bit stop (đối với mã 5 bit, bit stop sẽ dài 1,5 bit).
* Chút ít - SERIALDB(Bit dữ liệu nối tiếp) - số bit dữ liệu:
00 - 5 bit;
01-6 bit;
10 - 7 bit;
11 - 8 bit.
MCR - thanh ghi điều khiển modem. Mục đích của các bit thanh ghi được mô tả dưới đây: MCR.
* Bit = 0 - dành riêng.
* Bit 4 - LME(Bật chế độ vòng lặp) - bật chế độ chẩn đoán:
0 - chế độ bình thường;
1 - chế độ chẩn đoán (xem bên dưới).
* Bit 3 - I E.(Bật ngắt) - cho phép ngắt bằng đầu ra bên ngoài NGOÀI2 MSR.7:
0 - ngắt bị vô hiệu hóa;
1 - ngắt được kích hoạt.
* Bit 2 - OUT1C(Điều khiển bit OUT1) - điều khiển tín hiệu đầu ra 1 (không được sử dụng); trong chế độ chẩn đoán, nó nhập vào đầu vào MSR.6.
* Bit 1 - RTSC(Yêu cầu gửi điều khiển) - điều khiển đầu ra RTS; trong chế độ chẩn đoán, nó nhập vào đầu vào MSR.4:
0 - hoạt động (-V);
1 - thụ động (+V).
* Bit 0 - DTRC(Kiểm soát sẵn sàng đầu cuối dữ liệu) - kiểm soát đầu ra DTR; trong chế độ chẩn đoán, nó nhập vào đầu vào MSR.5:
0 - hoạt động (-V);
1 - thụ động (+V).
LSR - thanh ghi trạng thái dòng(chính xác hơn là trạng thái của bộ thu phát). Mục đích của các bit thanh ghi LSR được mô tả dưới đây.
* Bit 7 - FIFOE(Trạng thái lỗi FIFO) - lỗi trong dữ liệu nhận được ở chế độ FIFO (bộ đệm chứa ít nhất một ký tự nhận được có lỗi định dạng, lỗi chẵn lẻ hoặc bị ngắt). Ở chế độ không phải FIFO, nó luôn bằng 0.
* Bit 6 - CÁM DỖ(Trạng thái trống của máy phát) - thanh ghi máy phát trống (không có dữ liệu để truyền trong thanh ghi dịch hoặc thanh ghi đệm THR hoặc FIFO).
* Bit 5 - THỨ BA(Thanh ghi giữ máy phát trống) - thanh ghi máy phát sẵn sàng nhận một byte để truyền. Ở chế độ FIFO, chỉ ra rằng không có ký tự nào trong bộ đệm truyền FIFO. Có thể là một nguồn gây gián đoạn.
* Bit 4 - BD(Đã phát hiện ngắt) - chỉ báo ngắt dòng (đầu vào máy thu ở trạng thái 0 không ít hơn thời gian ký hiệu được gửi).
* Bit 3 - F.E.(Lỗi đóng khung) - lỗi khung (bit dừng không chính xác).
* Bit 2 - NỐT RÊ(Lỗi chẵn lẻ) - kiểm tra lỗi bit (chẵn lẻ hoặc cố định).
* Bit 1 - OE(Lỗi tràn) - tràn (mất ký tự). Nếu quá trình nhận ký tự tiếp theo bắt đầu trước khi ký tự trước đó được dỡ khỏi thanh ghi dịch sang thanh ghi đệm hoặc vào thanh ghi FIFO thì ký tự trước đó trong thanh ghi dịch sẽ bị mất.
* Bit 0 - DR(Receiver Data Ready) - dữ liệu đã nhận đã sẵn sàng (trong bộ đệm DHR hoặc FIFO). Đặt lại - bằng cách đọc máy thu.
Chỉ báo lỗi - bit - được đặt lại sau khi đọc thanh ghi LSR. Trong chế độ FIFO, các cờ lỗi được lưu trữ trong bộ đệm FIFO cùng với mỗi ký tự. Trong thanh ghi, chúng được thiết lập (và gây ra gián đoạn) tại thời điểm ký tự nhận được bị lỗi nằm ở đầu FIFO (đầu tiên trong hàng đợi được đọc). Trong trường hợp ngắt dòng, chỉ có một ký tự “ngắt” được nhập vào FIFO và UART chờ phục hồi và bit bắt đầu tiếp theo. MSR- thanh ghi trạng thái modem. Mục đích của các bit thanh ghi được mô tả dưới đây: MSR:
* Bit 7 - DCD(Phát hiện nhà cung cấp dữ liệu) - trạng thái đường truyền DCD:
0 - hoạt động (-V);
1 - thụ động (+V).
* Bit 6 - R.I.(Chỉ báo vòng) - trạng thái đường dây R.I.:
0 - hoạt động (-V);
1 - thụ động (+V).
* Bit 5 - DSR(Bộ dữ liệu đã sẵn sàng) - trạng thái dòng DSR:
0 - hoạt động (-V);
1 - thụ động (+V).
* Bit 4 - CTS(Xóa để gửi) - trạng thái dòng CTS:
0 - hoạt động (-V);
1 - thụ động (+V).
* Bit 3 - DDCD(Phát hiện sóng mang dữ liệu Delta) - thay đổi trạng thái DCD.
* Bit 2 - TERI(Chỉ báo Trailing Edge Of Ring) - sự phân rã của phong bì R.I.(kết thúc cuộc gọi).
* Bit 1 - DDSR(Bộ dữ liệu Delta đã sẵn sàng) - thay đổi trạng thái DSR.
* Bit 0 - DCTS(Delta Clear To Send) - thay đổi trạng thái CTS.
Dấu hiệu thay đổi (bit) được đặt lại khi thanh ghi được đọc.
SRC - sổ đăng ký làm việc(8 bit), không ảnh hưởng đến hoạt động của UART, được dùng để lưu trữ dữ liệu tạm thời (không có sẵn trong 8250).
TRONG chế độ chẩn đoán(Tại LME=1) một “sơ khai” nội bộ được tổ chức bên trong UART:
* đầu ra máy phát được chuyển sang trạng thái logic;
* đầu vào máy thu bị tắt; * đầu vào DSR, CTS, RIDCD bị ngắt kết nối khỏi các đường đầu vào và được điều khiển nội bộ bằng các bit DTRC, RTSC, OUT1C, TỨC LÀ;
* đầu ra điều khiển modem được chuyển sang trạng thái thụ động (số 0 logic).
Dữ liệu đã truyền ở dạng nối tiếp sẽ được nhận ngay lập tức, cho phép bạn kiểm tra kênh dữ liệu nội bộ của cổng (bao gồm cả thanh ghi thay đổi) và xử lý ngắt, cũng như xác định tốc độ của UART.

Việc truyền dữ liệu từ bộ xử lý trung tâm đến bất kỳ thiết bị ngoại vi nào và ngược lại được điều khiển bằng cách đặt yêu cầu ngắt IRQ...

Ngắt và địa chỉ

Việc truyền dữ liệu từ bộ xử lý trung tâm sang bất kỳ thiết bị ngoại vi nào và ngược lại được điều khiển bằng cách đặt yêu cầu ngắt (IRQ) và địa chỉ I/O. Đối với thiết bị ngoại vi bên ngoài, yêu cầu ngắt và địa chỉ I/O được gán cho cổng mà nó được kết nối.

Chính từ “yêu cầu ngắt” chỉ ra rằng CPU đang bị gián đoạn và đang được hướng dẫn xử lý dữ liệu đến từ một số thiết bị. Tổng cộng có 16 ngắt - từ 0 đến 15. Tất cả các cổng nối tiếp và song song thường yêu cầu yêu cầu ngắt riêng, ngoại trừ COM1 và COM3, cũng như COM2 và COM4, ​​​​thường có yêu cầu ngắt chung.

Đối với mỗi cổng, bạn cần chỉ định một địa chỉ I/O duy nhất, tương tự như hộp thư dành cho thư từ đến địa chỉ CPU, trong đó nó được lưu trữ cho đến khi được xử lý. Nếu bất kỳ yêu cầu ngắt hoặc địa chỉ I/O nào được nhiều thiết bị sử dụng cùng lúc thì không có thiết bị nào trong số đó hoạt động bình thường và thậm chí có thể đóng băng PC.

Nếu có vấn đề với một cổng, hãy kiểm tra xem các yêu cầu ngắt và địa chỉ I/O nào được gán cho cổng đó.

Bảng điều khiển - Hệ thống - Thiết bị - Cổng COM và LPT

Nếu bạn nhìn thấy một vòng tròn màu vàng có dấu chấm than bên trong trước bất kỳ dòng nào, bạn có thể tìm ra nguyên nhân gây ra “sự can thiệp”. Với dòng được tô sáng, nhấp vào "Thuộc tính - Tài nguyên". Trong trường "Danh sách các thiết bị xung đột", hãy tìm nguyên nhân gây ra xung đột. Nếu hóa ra đó là một bo mạch cũ nào đó không hỗ trợ Plug & Play, nó sẽ được liệt kê là “Thiết bị không xác định”.

Để giải quyết sự cố, hãy thay đổi yêu cầu ngắt hoặc địa chỉ I/O cho một trong các thiết bị vi phạm. Nếu cổng nằm trên bo mạch hệ thống, hãy sử dụng chương trình Thiết lập Hệ thống (BIOS) để thực hiện việc này.

Để vào Cài đặt hệ thống trong khi khởi động PC, hãy nhấn phím “Xóa”, “F1” hoặc phím khác - tìm hiểu trong tài liệu hệ thống. Trong nhiều chương trình thiết lập, bạn có thể chỉ định yêu cầu ngắt và địa chỉ I/O (đặt tài nguyên) cho từng cổng cụ thể, ghi đè các cổng cũ.

Tìm một yêu cầu ngắt hoặc địa chỉ I/O không được sử dụng.

Control Panel - Hệ thống - Thiết bị - Máy tính

Bạn sẽ thấy một danh sách đầy đủ các tài nguyên được áp dụng. Nếu không có yêu cầu ngắt nào không được sử dụng, hãy thử tắt cổng không sử dụng bằng Thiết lập Hệ thống.

Sau đó...

Hệ thống - Thiết bị - Thiết bị xung đột - Tài nguyên

Tắt tính năng Auto Setup. Trong cửa sổ "Danh sách tài nguyên", chọn loại tài nguyên, nhấp vào nút "Thay đổi" và trong trường "Giá trị", chỉ định giá trị yêu cầu ngắt mới (chưa sử dụng) hoặc địa chỉ I/O.

Cài đặt thông số cổng song song

Cổng song song được viết tắt là LPT. Máy tính tự động gán địa chỉ LPT1 đến LPT3 cho từng cổng song song được phát hiện.

Nếu bạn cài đặt cổng song song thứ hai, hãy đảm bảo rằng nó không sử dụng yêu cầu ngắt hiện có. Trên một số máy tính, LPT1 và LPT2 sử dụng IRQ7 theo mặc định. Sử dụng Trình quản lý Thiết bị, đặt IRQ5 cho LPT2. Nếu điều này là không thể, hãy sử dụng chương trình CMOS Setup trong hệ thống của bạn.

Cài đặt tài nguyên cổng song song tiêu chuẩn

cổng LPT Yêu cầu ngắt Địa chỉ vào/ra
LPT1 IRQ7 ZVS
LPT2 IRQ7 378
LPT3 IRQ5 278

Cài đặt thông số cổng nối tiếp

Mỗi cổng nối tiếp được xác định bởi một trong tám địa chỉ COM có thể có - COM1, COM2, v.v., mỗi cổng có địa chỉ I/O duy nhất và yêu cầu ngắt.

Hãy cẩn thận khi cài đặt thiết bị yêu cầu cổng COM vào PC của bạn. Cổng COM1 và COM2 có địa chỉ I/O tiêu chuẩn và các yêu cầu ngắt không được thay đổi ở bất kỳ đâu (thường chỉ có thể thay đổi trong chương trình Setup CMOS trên PC của bạn). Nếu bạn cần gán cổng COM1 hoặc COM2 cho một thiết bị mới thì khi khởi động PC, hãy vào chương trình Thiết lập và tắt cổng nối tiếp được gán cho COM1 hoặc COM2, hoặc nếu bạn cần xóa cài đặt tương ứng cho đã thêm thiết bị, thay đổi yêu cầu ngắt và địa chỉ xác định I/O của nó

Lưu ý rằng tất cả các địa chỉ I/O tiêu chuẩn chỉ sử dụng ngắt thứ ba và thứ tư. Vì hai thiết bị không nên chia sẻ cùng một yêu cầu ngắt, hãy thử ánh xạ các thiết bị bên ngoài mới tới cổng COM3 qua COM3 bằng cách đặt thủ công các yêu cầu ngắt và địa chỉ I/O bằng Trình quản lý Thiết bị (hộp thoại "Thuộc tính: Hệ thống").

Cài đặt tài nguyên cổng nối tiếp tiêu chuẩn

cổng COM Yêu cầu ngắt Địa chỉ vào/ra
COM1 IRQ4 3F8
COM2 IRQ3 2F8
COM3 IRQ4 ZE8
COM4 IRQ3* 2E8
COM5 IRQ4* ZEO
COM6 IRQ3* 2EO
COM7 IRQ4* 338
COM8 IRQ3* 238

*Có thể được cài đặt bằng Trình quản lý thiết bị Windows 9x (Thuộc tính: Hệ thống)

Tối ưu hóa cổng nối tiếp

Máy tính có một hoặc hai cổng nối tiếp 9 chân tích hợp, thường nằm ở mặt sau máy tính. Sử dụng cổng như vậy, chỉ có thể truyền 1 bit dữ liệu trên một đơn vị thời gian, trong khi thông qua cổng song song - 8 bit. Tốc độ của cổng nối tiếp phụ thuộc vào bộ thu phát không đồng bộ phổ quát (UART), bộ thu phát này chuyển đổi luồng dữ liệu song song đi qua bus PC thành luồng một bit.

Thông thường, các PC hiện đại có kiểu 16550 UART. Trong trường hợp này, thông lượng tối đa là 115 kbps, cung cấp đủ băng thông cho hầu hết các thiết bị nối tiếp. Các mẫu UART cũ hơn 16450 và 8250 không còn có thể đáp ứng được nhiệm vụ này. Nhưng đôi khi hiệu suất của UART 16550 có thể không đủ vì một số modem analog xử lý dữ liệu nén ở tốc độ 230 kbps và bộ điều hợp ISDN - lên tới 1 Mbps. Vì vậy, nếu bạn cần tốc độ truyền dữ liệu cao hơn, hãy mua thẻ mở rộng với model 16750 UART có khả năng chạy ở tốc độ 921 kbps.

Làm việc với các cổng song song

Cổng song song thường được sử dụng cho máy in, mặc dù chúng cũng có thể kết nối các thiết bị khác, chẳng hạn như máy quét, với PC. Với sự trợ giúp của họ, bạn có thể truyền dữ liệu với tốc độ từ 40 KB/s đến 1 MB/s và đôi khi còn cao hơn.

Về cơ bản, tất cả các PC đều có một cổng song song dưới dạng đầu nối 25 chân ở mặt sau. Để thêm cổng thứ hai, bạn cần mua bộ điều khiển I/O và lắp nó vào khe cắm mở rộng trên bo mạch hệ thống. Có bốn loại cổng song song - một chiều, hai chiều, khả năng nâng cao (cổng EPP) và khả năng nâng cao (cổng ECP). Mỗi người trong số họ có tốc độ và khả năng khác nhau. Hầu hết các cổng PC mới đều hỗ trợ tất cả bốn chế độ và để biết cổng nào cung cấp cổng song song, hãy xem tiện ích CMOS Setup của PC trong phần Thiết bị ngoại vi tích hợp.

Cổng một chiềuđôi khi còn được gọi là cổng SPP. Cấu hình cơ bản này truyền dữ liệu với tốc độ 40-50 KB/s chỉ theo một hướng - đến máy in hoặc thiết bị bên ngoài khác.

Cổng hai chiều. Cung cấp trao đổi dữ liệu hai chiều với tốc độ truyền từ 100 đến 300 KB/s giữa PC và thiết bị bên ngoài. Trong trường hợp này, thông tin về trạng thái sau sẽ được đưa vào máy tính.

Cổng nâng cao (EPP).Được thiết kế cho các ổ đĩa ngoài và bộ điều hợp mạng yêu cầu hiệu suất cao. Cung cấp tốc độ truyền dữ liệu từ 400 KB/s đến 1 MB/s trở lên.

Khi cài đặt tùy chọn EPP trong chương trình Thiết lập Hệ thống, phiên bản 1.7 và 1.9 được cung cấp. Đối với hầu hết tất cả các thiết bị ngoại vi được mua trong những năm gần đây, bạn cần chọn 1.9.

Cổng khả năng mở rộng (ECP). Tăng tốc độ và mở rộng khả năng trao đổi dữ liệu giữa thiết bị bên ngoài và máy tính. Nếu máy in và các thiết bị ngoại vi khác hỗ trợ ECP, chúng sẽ trực tiếp báo cáo trạng thái và lỗi của thiết bị.

Nếu trong chương trình Thiết lập hệ thống đặt tùy chọn ECP, sau đó một dòng sẽ xuất hiện để chọn kênh DMA (kênh truy cập bộ nhớ trực tiếp). Nó phải được đặt theo cách tương tự như đối với yêu cầu ngắt. Để tránh xung đột kênh DMA, hãy xem các kênh miễn phí trong cửa sổ "Thuộc tính: Máy tính", như đã mô tả ở trên. Nếu không thể tránh được xung đột thì hãy quay lại chế độ cổng hai chiều.

Cổng tốt nhất cho cơn bão dữ liệu.

Trong các hệ thống và thiết bị ngoại vi mới, các cổng song song và nối tiếp bắt đầu được thay thế bằng bus nối tiếp đa năng ( Bus nối tiếp vạn năng, USB). Với sự trợ giúp của nó, bạn có thể đạt được tốc độ truyền dữ liệu lên tới 12 Mbit/s và cũng có thể kết nối chỉ với một cổng, bàn phím, màn hình, chuột và nhiều thiết bị khác (tối đa 127), giống như với giao diện SCSI, giải quyết các vấn đề tương tự, có thể được kết nối "xích". Trong trường hợp này, chỉ có một yêu cầu ngắt được sử dụng. Bus USB cũng có thể được cài đặt trên các máy tính cũ bằng cách mua thẻ mở rộng thích hợp.