Nó rất khó hiểu, nhưng bạn không cần phải lo lắng về nó. Trước hết, hãy nghĩ về một UART mà bản thân nó là một thuật ngữ chung, nhưng hãy nghĩ về một giao thức tạo ra một giao thức có bit start, một hoặc hai bit stop, 7 hoặc 8 thường là các bit dữ liệu và đôi khi là chẵn hoặc lẻ; nó có thể thay đổi từ đó làm cho nó tồi tệ hơn nhiều.
UART là ở cấp độ TTL, bất kể điều đó có nghĩa là gì. Nó từng là 5 V và bây giờ là 3,3 V, 1,8 V hoặc bất cứ thứ gì; có lẽ TTL là thuật ngữ sai. THÌ bạn đã có / có RS-232, RS-422, v.v ... Đây là các tiêu chuẩn ĐIỆN TỬ VÀ PIN, không phải tiêu chuẩn giao thức. Không đúng khi trộn các thuật ngữ và nói RS-232 khi bạn muốn nói đến một loại UART nào đó.
Trước đây, UART của bạn đã có trên bo mạch chủ của bạn và bạn muốn có một loại đầu nối với thế giới bên ngoài với các mức điện áp tại thời điểm đó có ý nghĩa và một số loại pinout / cáp tiêu chuẩn. Vì vậy, một tiêu chuẩn pin 25 và 9 phổ biến thường được tìm thấy cho các thiết bị ngoại vi khác nhau và trong thế giới Wintel PC, nó được gọi là cổng COMmunication hoặc đôi khi là cổng nối tiếp.
Chắc chắn, một cổng mang dữ liệu nối tiếp có thể và được gọi là cổng nối tiếp, SPI, I²C, MDIO, UART, HDLC, SDLC, v.v., và thậm chí có thể là USB và SCSI; bạn có thể phát điên với điều này Thông thường một cổng nối tiếp có nghĩa là một số chân bạn có thể nhận được tại UART.
Thế giới Unix / Linux nói tty
thay vì com
/ serial
/ uart
, nhưng đó là điều tương tự.
Bây giờ có THỰC HIỆN. Bạn có thể mua một số chip UART với một số giao diện trên đó (vâng, bạn có thể có SPI UART, nối tiếp ở cả hai đầu, hoặc I²C UART hoặc một số xe buýt hoặc USB chuyên dụng, v.v.). Ngay cả vào ngày trước, UART đã có một số xe buýt ở một bên mà cuối cùng CPU đã liên lạc qua. Ngày nay chúng ta có FTDI và các nhà cung cấp khác tạo ra các giải pháp USB UART đẹp mắt, không làm cho nó có bất kỳ lớp giao diện nào khác nhau giữa phần mềm và UART và sau đó phía bên kia của UART có một số giao diện, có thể là cấp độ TTL / chip hoặc RS-232C hoặc RS-422, v.v.
Ban đầu Arduinos bạn thường sử dụng bảng USB-to-UART FTDI cũng cung cấp năng lượng cho Arduino. Một số có nguồn USB và nối tiếp / UART trên bo mạch Arduino và sau đó được nối qua bảng với UART trên chip AVR (xử lý tương tự một số bộ xử lý với một số lớp bus để cho phép phần mềm giao tiếp với UART có một số giao diện ở phía bên kia của nó, trong trường hợp này là các chân trên cạnh của AVR, ở các mức điện áp chip, TTL).
Vì chức năng UART không thay đổi trong nhiều thập kỷ, tại sao thuật ngữ phần mềm hoặc thậm chí các ứng dụng phần mềm phải thay đổi ở cấp ứng dụng? Viết một ứng dụng Linux / Unix TTY cách đây 10 - 15 năm so với chip UART trên bo mạch chủ của bạn và rất có khả năng nó vẫn hoạt động cho đến ngày nay với cấp độ USB sang TTL hoặc USB sang cấp RS-232C hoặc RS-422 hoặc bất kỳ pin nào / định nghĩa cấp độ. Điều tương tự cũng xảy ra với Windows và tôi có mã cũ vẫn hoạt động trên cả hai. Trong thế giới Windows, thuật ngữ COM được sử dụng.
Tôi đã không sử dụng hộp cát Arduino trong một thời gian và nếu có thì sẽ có trên Linux, nhưng tôi sẽ không ngạc nhiên nếu chương trình đó là Java, nếu tôi nhớ đúng, là chung và sử dụng tên hệ thống như vậy ttyS2
trên Linux và COM2 trên cửa sổ.
Đọc lại câu hỏi của bạn, điều này có thể tiến xa hơn, tận dụng số lượng phần mềm đã có sẵn sử dụng các lệnh gọi API này. Một lần nữa trong nhiều thập kỷ, không có lý do gì bạn không thể tạo một cổng ảo trong phần mềm mang dữ liệu hai chiều này xuống gần như mọi thứ bạn có thể nghĩ tới. UART to Ethernet là một thứ rất phổ biến và trong các phòng máy chủ nơi các máy chủ vẫn sử dụng rất nhiều cổng COM / TTY / RS-232, bạn có thể có một máy chủ đầu cuối có một số giao diện mà bạn có thể kết nối với một số máy chủ, Sau đó, Ethernet ở phía bên kia, sau đó nếu bạn chọn không telnet, bạn có thể cài đặt trình điều khiển cổng COM ảo.
Sau đó, ứng dụng của bạn trên máy tính của bạn nghĩ rằng nó đang nói chuyện với một cổng COM, nhưng trên thực tế, luồng byte đang nhảy vào Ethernet, sau đó chạm vào máy chủ đầu cuối, THEN, đến cáp UART đến RS-232C (nhưng không nhất thiết phải là pinout) máy chủ và trở lại cùng một cách.
Đôi khi không có lý do gì để thực sự biến nó thành một UART thực sự, vì bất kỳ lý do gì ảo hóa cổng COM để phần mềm được viết cho các lệnh gọi API đó vẫn có thể hoạt động. Có lẽ bạn có thể nghĩ về phần mềm ngân hàng cổ đại mà chúng ta vẫn sử dụng có thiết bị đầu cuối câm với giao diện UART mà có lẽ ngày trước đã bị cứng hoặc đi vào modem để cuối cùng là máy chủ. Bạn có thể làm cho nó để phần mềm vẫn hoạt động, thông qua nhiều mô phỏng khác nhau, bao gồm cả cổng COM ảo mà ngày nay có khả năng chuyển Ethernet sang máy chủ dưới dạng luồng nối tiếp (ví dụ TCP / IP).