2013-03-21 30 views
10

Sự khác nhau giữa SPI và nối tiếp là gì? Khi đọc một bài báo nói về các liên lạc giữa các bộ xử lý, nó nói rằng các giao tiếp nối tiếp đang được thay thế bằng SPI cho các giao tiếp tốt hơn/nhanh hơn? Sự khác biệt chính xác là gì?Nối tiếp so với SPI

Trả lời

20

Từ "nối tiếp" không có nghĩa là nhiều. Nhưng tôi sẽ giả định rằng bạn đang nói về các tiêu chuẩn truyền thông nối tiếp truyền thống. Về cơ bản khác biệt về SPI là nó là đồng bộ. Trái với, RS-232, không đồng bộ tiêu chuẩn báo hiệu.

Một thuộc tính quan trọng của tín hiệu không đồng bộ là tốc độ baudrate, tần số mà tại đó các bit trong byte được gửi đi. Người nhận phải làm thêm công việc để khôi phục đồng hồ đã được máy phát sử dụng. Một UART điển hình làm như vậy bằng cách lấy mẫu phụ tín hiệu ở tốc độ 16 lần baudrate. Bit bắt đầu là quan trọng, đồng bộ hóa đồng hồ lấy mẫu phụ. Sự chậm trễ giữa các byte có thể tùy ý, người nhận tái đồng bộ hóa cho từng byte riêng lẻ. Các vấn đề với sơ đồ này là không phù hợp giữa bộ phát và tần số đồng hồ của bộ thu và bộ rung đồng hồ, có hiệu quả hạn chế baudrate.

Đây không phải là vấn đề với SPI, nó có thêm đường tín hiệu mang tín hiệu đồng hồ sao cho cả bộ phát và máy thu đều sử dụng cùng một đồng hồ chính xác. Và do đó miễn dịch với sự không phù hợp và jitter, cho phép tốc độ truyền cao hơn. Không có yêu cầu ổn định ở tất cả trong tần số đồng hồ, các tín hiệu có thể được tạo ra đơn giản trong phần mềm. Một tên khác cho SPI là SSI, Giao diện nối tiếp đồng bộ. Điển hình bốn dòng dây trông như thế này:

enter image description here

SCLK là tín hiệu đồng hồ. MOSI và MISO mang dữ liệu, SS là tín hiệu chọn chip. Một mặt bằng chung được giả định. Tìm hiểu thêm về điều này trong số Wikipedia article này. electronics.stackexchange.com là một trang web tốt để đặt thêm câu hỏi về nó.

+1

Giải thích thực sự thú vị, mặc dù nó phải là "lấy mẫu quá mức"? Tôi nghĩ rằng lấy mẫu phụ ít hơn tỷ lệ lãi suất. – mtrw

+0

Cảm ơn bạn. thats chính xác những gì tôi đang tìm kiếm. – jbh

+0

Tôi là McLovin. Cảm ơn. – Coldblackice

0

SPI là giao thức dữ liệu hai chiều. Sự khác biệt là SPI sử dụng trao đổi dữ liệu nhị phân. Và UART sử dụng ASCII, làm cho việc truyền dữ liệu chậm hơn nhiều

0

previous answer có phần gây hiểu nhầm.

SPI và UART đều chuyển dữ liệu nhị phân dưới dạng byte và/hoặc từ, tùy thuộc vào phần cứng. Như đã giải thích ở trên, một là đồng bộ và một là không đồng bộ. Cả hai yêu cầu một dòng dữ liệu bổ sung để được hai chiều. ASCII là một giải thích thỏa thuận về dữ liệu nhị phân và không thực sự là một yếu tố trong cả hai.

Các vấn đề liên quan