Nối tiếp là một từ ô cho tất cả đó là "Ghép kênh phân chia thời gian", để sử dụng một thuật ngữ đắt tiền. Điều đó có nghĩa là dữ liệu được gửi trải đều theo thời gian, thường là hết từng bit một. Tất cả các giao thức bạn đặt tên là các giao thức nối tiếp.
UART, đối với Máy phát nhận không đồng bộ phổ quát, là một trong những giao thức nối tiếp được sử dụng nhiều nhất. Nó gần như cũ như tôi, và rất đơn giản. Hầu hết các bộ điều khiển có UART phần cứng trên tàu. Nó sử dụng một dòng dữ liệu duy nhất để truyền và một để nhận dữ liệu. Hầu hết dữ liệu 8 bit thường được truyền, như sau: 1 bit start (mức thấp), 8 bit dữ liệu và 1 bit stop (mức cao). Bit bắt đầu mức thấp và bit dừng mức cao có nghĩa là luôn có sự chuyển đổi từ cao xuống thấp để bắt đầu giao tiếp. Đó là những gì mô tả về UART. Không có cấp điện áp, vì vậy bạn có thể có nó ở mức 3,3 V hoặc 5 V, tùy theo bộ vi điều khiển của bạn sử dụng. Lưu ý rằng các bộ vi điều khiển muốn giao tiếp qua UART phải đồng ý về tốc độ truyền, tốc độ bit, vì chúng chỉ có các bit bắt đầu rơi xuống để đồng bộ hóa. Đó gọi là giao tiếp không đồng bộ.
Đối với liên lạc đường dài (Không phải hàng trăm mét), UART 5 V không đáng tin cậy lắm, đó là lý do tại sao nó được chuyển đổi thành điện áp cao hơn, thường là +12 V cho "0" và -12 V cho " 1 ". Định dạng dữ liệu vẫn giữ nguyên. Sau đó, bạn có RS-232 (mà bạn thực sự nên gọi là EIA-232, nhưng không ai làm thế.)
Sự phụ thuộc thời gian là một trong những nhược điểm lớn của UART và giải pháp là USART , cho Máy phát thu đồng bộ / không đồng bộ toàn cầu. Điều này có thể làm UART, nhưng cũng là một giao thức đồng bộ. Đồng bộ không chỉ có dữ liệu mà còn có đồng hồ được truyền. Với mỗi bit, một xung đồng hồ báo cho người nhận, nó sẽ chốt bit đó. Các giao thức đồng bộ hoặc cần băng thông cao hơn, như trong trường hợp mã hóa Manchester hoặc thêm một dây cho đồng hồ, như SPI và I2C.
SPI (Giao diện ngoại vi nối tiếp) là một giao thức nối tiếp rất đơn giản khác. Một chủ nhân gửi tín hiệu đồng hồ, và trên mỗi xung đồng hồ, nó chuyển một bit ra nô lệ, và một bit vào, đến từ nô lệ. Do đó, tên tín hiệu là SCK cho đồng hồ, MOSI cho Master Out Slave In và MISO cho Master In Slave Out. Bằng cách sử dụng tín hiệu SS (Chọn nô lệ), chủ có thể điều khiển nhiều hơn một nô lệ trên xe buýt. Có hai cách để kết nối nhiều thiết bị nô lệ với một chủ, một cách được đề cập ở trên tức là sử dụng nô lệ chọn và cách khác là kết nối chuỗi, nó sử dụng ít chân phần cứng hơn (chọn dòng), nhưng phần mềm trở nên phức tạp.
I2C(Mạch tích hợp, phát âm là "Tôi bình phương C") cũng là một giao thức đồng bộ, và đây là giao thức đầu tiên chúng ta thấy có một số "trí thông minh" trong đó; những cái khác lặng lẽ chuyển bit vào và ra, và đó là điều đó. I2C chỉ sử dụng 2 dây, một cho đồng hồ (SCL) và một cho dữ liệu (SDA). Điều đó có nghĩa là chủ và nô lệ gửi dữ liệu qua cùng một dây, một lần nữa được điều khiển bởi chủ tạo ra tín hiệu đồng hồ. I2C không sử dụng Chọn nô lệ riêng biệt để chọn một thiết bị cụ thể, nhưng có địa chỉ. Byte đầu tiên được gửi bởi master giữ địa chỉ 7 bit (để bạn có thể sử dụng 127 thiết bị trên bus) và bit đọc / ghi, cho biết liệu byte tiếp theo cũng sẽ đến từ master hay nên đến từ master nô lệ. Sau mỗi byte, người nhận phải gửi "0" để xác nhận việc nhận byte, mà chủ nhân chốt với xung đồng hồ thứ 9. Nếu chủ muốn viết một byte, quy trình tương tự lặp lại: chủ sẽ đặt bit sau bit trên bus và mỗi lần đưa ra xung đồng hồ để báo hiệu rằng dữ liệu đã sẵn sàng để đọc. Nếu chủ muốn nhận dữ liệu, nó chỉ tạo ra các xung đồng hồ. Các nô lệ phải lưu ý rằng bit tiếp theo đã sẵn sàng khi xung đồng hồ được đưa ra. Giao thức này được NXP (trước đây là Phillips) cấp bằng sáng chế, để tiết kiệm chi phí cấp phép, Atmel sử dụng từ TWI (giao diện 2 dây) giống hệt như I2C, vì vậy mọi thiết bị AVR sẽ không có I2C nhưng nó sẽ có TWI. Nếu chủ muốn nhận dữ liệu, nó chỉ tạo ra các xung đồng hồ. Các nô lệ phải lưu ý rằng bit tiếp theo đã sẵn sàng khi xung đồng hồ được đưa ra. Giao thức này được NXP (trước đây là Phillips) cấp bằng sáng chế, để tiết kiệm chi phí cấp phép, Atmel sử dụng từ TWI (giao diện 2 dây) giống hệt như I2C, vì vậy mọi thiết bị AVR sẽ không có I2C nhưng nó sẽ có TWI. Nếu chủ muốn nhận dữ liệu, nó chỉ tạo ra các xung đồng hồ. Các nô lệ phải lưu ý rằng bit tiếp theo đã sẵn sàng khi xung đồng hồ được đưa ra. Giao thức này được NXP (trước đây là Phillips) cấp bằng sáng chế, để tiết kiệm chi phí cấp phép, Atmel sử dụng từ TWI (giao diện 2 dây) giống hệt như I2C, vì vậy mọi thiết bị AVR sẽ không có I2C nhưng nó sẽ có TWI.
Hai hoặc nhiều tín hiệu trên cùng một dây có thể gây ra xung đột và bạn sẽ gặp vấn đề nếu một thiết bị gửi "1" trong khi thiết bị kia gửi "0". Do đó, xe buýt có dây - HOẶC: hai điện trở kéo xe buýt lên mức cao và các thiết bị chỉ gửi mức thấp. Nếu họ muốn gửi một mức độ cao, họ chỉ cần phát hành xe buýt.
TTL (Transitor Logic Transitor) không phải là một giao thức. Đây là một công nghệ cũ hơn cho logic kỹ thuật số, nhưng tên thường được sử dụng để chỉ điện áp cung cấp 5 V, thường được gọi không chính xác về cái nên được gọi là UART.
Về mỗi thứ bạn có thể viết một cuốn sách, và có vẻ như tôi đang đi đúng hướng. Đây chỉ là một tổng quan rất ngắn gọn, cho chúng tôi biết nếu một số điều cần làm rõ.