Giao thức Truyền thông Nối tiếp - Giới thiệu

Mark Harris
|  Created: Tháng Tư 13, 2021
Giao thức Truyền thông Nối tiếp - Giới thiệu

Trong loạt bài viết này, chúng tôi sẽ xem xét một số loại Giao Thức Truyền Thông Nối Tiếp khác nhau có sẵn để truyền thông tin giữa vi điều khiển, các thiết bị phụ trợ sản xuất và xử lý dữ liệu, cũng như các thiết bị thông minh khác. Các bài viết tiếp theo sau bài giới thiệu này về truyền thông nối tiếp sẽ đề cập đến một số giao thức phổ biến được sử dụng rộng rãi. Cuối loạt bài này, chúng tôi sẽ tổng kết ưu và nhược điểm của từng loại. Chúng tôi hy vọng nguồn tài nguyên này sẽ hữu ích cho bạn vào lần sau khi bạn cần triển khai một bus truyền thông nối tiếp, giúp bạn chọn lựa phương án tốt nhất cho hoàn cảnh cụ thể của mình.

Ngày nay, điện tử số đã trở thành phần quan trọng nhất của hầu hết các thiết bị điện tử trên thị trường. Nhiều loại chip khác nhau được sử dụng, nơi mà các hoạt động phức tạp của chúng phụ thuộc vào thông tin được gửi đi và nhận về từ các thành phần số tương tự khác. Các tiêu chuẩn giao thức chung đã được tạo ra để cho phép giao tiếp giữa chúng. Hãy tưởng tượng nếu mỗi IC hoặc thiết bị giao tiếp bằng giao thức độc đáo của riêng mình. Điều này sẽ giống như mỗi con người nói chuyện bằng ngôn ngữ độc đáo của riêng mình. Điều đó sẽ là hỗn loạn bởi vì sẽ gần như không thể cho chúng ta hiểu nhau.

Hiện tại, chúng tôi có các loại IC bộ nhớ khác nhau, cảm biến số, thiết bị bảo vệ, nguồn cung cấp có thể lập trình, bộ điều chỉnh số, IC tần số vô tuyến, v.v. Tất cả đều cần giao tiếp với nhau hoặc với các vi điều khiển, vi xử lý, FPGA, hoặc ASIC. Mục đích của những giao tiếp giữa các thiết bị có thể rất đa dạng. Nó có thể là để lập trình để trích xuất thông tin, cung cấp một tín hiệu để khởi động thực hiện một hành động.

Ngoài ra, một số giao thức cho phép chúng ta, con người, có khả năng tương tác với các IC thông qua vi điều khiển. Bạn có thể gửi một tín hiệu đến một vi điều khiển được lập trình để gửi một tín hiệu đến một IC thông qua một trong những giao thức này. Hoặc, bạn cũng có thể kết nối một trong những công cụ gỡ lỗi có sẵn.

Một trong những vấn đề với giao tiếp nối tiếp là khó khăn trong việc tìm kiếm và gỡ lỗi mạch của bạn nếu có điều gì đó không đúng. Giả sử dữ liệu không được truyền từ thiết bị này sang thiết bị khác. Trong trường hợp đó, lỗi có thể tồn tại ở một hoặc nhiều nơi sau: trong logic của thiết bị truyền, trong thiết kế mạch của nó, trong cách nó mã hóa giao tiếp nối tiếp, trong bus giao tiếp, trong việc giải mã bởi bộ nhận, trong thiết kế mạch của bộ nhận hoặc cuối cùng là trong logic của bộ nhận. Việc gắn một đầu dò oscilloscope vào giao tiếp nối tiếp có thể cho phép bạn xem có hoạt động nào không nhưng sẽ cho bạn biết rất ít về tính hợp lệ của nó. Để hoàn toàn xem điều gì đang diễn ra, bạn sẽ cần một oscilloscope với chức năng giải mã hoặc một máy phân tích logic. Điều này sẽ cho phép bạn biết các xung điện áp di chuyển qua xung để tìm lỗi về mức điện áp, phát hiện bất kỳ vấn đề nhiễu nào, và tìm kiếm vấn đề với tốc độ tăng và giảm tín hiệu.

Tuy nhiên, để gỡ lỗi kỹ lưỡng các giao tiếp nối tiếp, bạn sẽ cần một công cụ có thể giải mã dữ liệu trên bus để xem liệu nó có chính xác hay đã bị hỏng hoặc bị ảnh hưởng bởi các va chạm. Một số lượng đáng kể công cụ gỡ lỗi đã được tạo ra đặc biệt để gỡ lỗi giao tiếp giữa các thiết bị hoặc IC. Một trong những máy phân tích logic tiêu chuẩn của ngành là dòng máy phân tích logic Saleae Logic, với mẫu Pro cung cấp tốc độ đủ cao để phân tích tất cả các giao thức phổ biến nhất.

Nhiều máy phân tích logic giá thấp hơn quá chậm để xử lý các giao thức tốc độ cao như SPI. Máy phân tích logic LA2016 Logic Analyser cung cấp tốc độ lấy mẫu nằm giữa Saleae Logic 8 và Logic 8 Pro với chi phí rất thấp; tôi sở hữu một và đã sử dụng nó rất thành công để phân tích các giao thức.

Ngoài ra, việc xem xét các giao thức giao tiếp là rất quan trọng đối với cả thiết kế firmware và phần cứng. Từ phía phần cứng, bạn luôn nên cẩn thận xem xét datasheet của vi điều khiển mà bạn đã chọn. MCU chỉ có thể giao tiếp với các giao thức được định sẵn bằng cách sử dụng các chân chuyên dụng. Người thiết kế sẽ cần quyết định trước IC nào sẽ được sử dụng và chúng sẽ yêu cầu giao thức nào trước khi chọn MCU của họ.

Ví dụ, thiết bị STMicroelectronics STM32F103C8T6 được lắp đặt trên bảng phát triển STM32 Blue Pill phổ biến bao gồm 2 x I2C, 3 x USART, 2 x SPI và 1 x giao tiếp CAN. Tuy nhiên, một số chân cho các giao thức truyền thông này được chia sẻ. Ví dụ, nếu chúng ta xem xét chân số 14 của thiết bị, được ghi nhãn là PA4. Chân này có cả chức năng USART và SPI. Điều này có nghĩa là bạn không thể sử dụng tất cả các giao diện SPI và USART được liệt kê cho thiết kế của mình cùng một lúc. Bạn cần phải chọn những cái nào bạn cần khi nào và lên kế hoạch tương ứng hoặc tìm kiếm một vi điều khiển khác hỗ trợ nhiều giao diện truyền thông hơn. Tất nhiên, chân PA4 có thể được sử dụng cho cả hai giao thức truyền thông bằng cách thay đổi cấu hình của nó trong quá trình hoạt động. Tuy nhiên, bạn vẫn cần phải cân nhắc cẩn thận vào những thời điểm nào nó sẽ được sử dụng để hoạt động vì chúng không thể được sử dụng đồng thời. Điều này sẽ làm tăng độ phức tạp của cả thiết kế phần cứng và phần mềm.

Serial Communication

Các chân truyền thông nối tiếp trong vi điều khiển có thể chồng chéo, vì vậy hãy đọc tài liệu dữ liệu một cách cẩn thận. Bạn cần tải xuống và sử dụng mô-đun thư viện truyền thông IC phù hợp dựa trên các giao thức mà thiết bị sẽ sử dụng từ phía phần mềm truyền thông.

Mặc dù có nhiều giao thức truyền thông, nhưng những giao thức phổ biến nhất là SPI và I2C. Mỗi giao thức đều có những ứng dụng, tốc độ truyền thông, xem xét thiết kế, ưu điểm và nhược điểm riêng. Chúng ta sẽ đi qua từng giao thức một trong loạt bài viết này.

Tóm tắt

Trong bài viết tiếp theo của loạt bài này, chúng ta sẽ xem xét thiết bị UART phổ biến và thảo luận một số ưu điểm và chi tiết triển khai của chúng. Chúng ta sẽ kết thúc loạt bài bằng cách so sánh các giao thức khác nhau, nêu bật những ưu điểm và nhược điểm chính của chúng.

Bạn có thêm câu hỏi? Gọi cho chuyên gia tại Altium và khám phá cách chúng tôi có thể giúp bạn với thiết kế PCB tiếp theo của bạn.

About Author

About Author

Mark Harris is an engineer's engineer, with over 16 years of diverse experience within the electronics industry, varying from aerospace and defense contracts to small product startups, hobbies and everything in between. Before moving to the United Kingdom, Mark was employed by one of the largest research organizations in Canada; every day brought a different project or challenge involving electronics, mechanics, and software. He also publishes the most extensive open source database library of components for Altium Designer called the Celestial Database Library. Mark has an affinity for open-source hardware and software and the innovative problem-solving required for the day-to-day challenges such projects offer. Electronics are passion; watching a product go from an idea to reality and start interacting with the world is a never-ending source of enjoyment. 

You can contact Mark directly at: mark@originalcircuit.com

Related Resources

Back to Home
Thank you, you are now subscribed to updates.