Giao thức nối tiếp SPI (Serial Peripheral Interface – Giao diện ngoại vi nối tiếp) được phát triển bởi Motorola cho phép nhiều thiết bị ngoại vi giao tiếp song công ( hai thiết bị truyền và nhận dữ liệu đồng thời). SPI là một giao thức đa điểm, trong đó thiết bị thông tin qua một giao diện nối tiếp bao gồm xung nhịp nối tiếp SCLK, MOSI (Master Out/Slave In), MISO (Master In/Slave Out) và SS (Slave Select). Chỉ có duy nhất một thiết bị trên bus được xem là thiết bị chủ (master) và tất cả các thiết bị còn lại được xem là thiết bị tớ (slave) trên bus nối tiếp[4].
Hình 2.28. Giao tiếp SPI
Tại một thời điểm thiết bị chủ chỉ giao tiếp với một thiết bị tớ bằng cách cho đường SS của thiết bị tớ đó hoạt động. Thiết bị chủ điều khiển việc truyền nhận bằng
cách điều khiển các đường SS của từng thiết bị tớ và sau đó cấp xung trên đường SCLK. Đồng thời, thiết bị chủ nhận thông tin từ thiết bị tớ qua đường MISO và nhận dữ liệu từ thiết bị tớ qua đường MOSI.
SPI có thể được xem như một quá trình truyền đồng bộ. Bộ truyền được chỉ định là chủ vì nó cấp xung đồng bộ giữa giữa máy phát và máy thu. Một slave được chọn để giao tiếp bằng cách đặt đường tín hiệu SS của nó xuống mức thấp.
Quá trình truyền SPI được bắt đầu bằng cách truyền một byte dữ liệu vào thanh ghi dữ liệu SPI (SPDR) được cấu hình là chủ. Lúc này, bộ truyền xung nhịp SPI cung cấp các xung nhịp cho master và slave qua chân SCLK. Các bit đơn được dịch ra khỏi thanh ghi dịch của master, qua chân MOSI sau mỗi xung CLK. Các bit dữ liệu được nhận tại chân MOSI của slave được chỉ định. Cùng thời điểm, một bit đơn được truyền qua chân MISO của slave và vào chân MOSI của master.
So sánh các kiểu truyền dữ liệu:
Bảng 2.3. So sánh các chuẩn truyền dữ liệu
SPI UART I2C
Tốc độ tối
đa 10 Mbit/s 500 kbit/s 1 Mbit/s
Số thiết bị tối đa
Bị giới hạn bởi số chân kết nối
Điểm tới điểm (RS232) 256 thiết bị (RS485)
128 thiết bị
Số chân kết
nối 3 x n + SS 2 2
Ưu điểm Đơn giản, giá thành thấp, tốc độ cao
Truyền được khoảng cách xa hơn, cải thiện chống nhiễu
Số chân kết nối ít, cho phép nhiều thiết bị chủ
Nhược điểm
Giới hạn một thiết bị chủ, khoảng cách
truyền ngắn
Đòi hỏi xung Clock chính xác Tốc độ chậm, khoảng cách ngắn Ứng dụng Kết nối trực tiếp đến các ASIC và các thiết bị ngoại vi khác trên PCB
Giao tiếp với các thiết bị đầu cuối, các
máy tính cá nhân và các hệ thống dữ liệu
Kết nối với các thiết bị ngoại vi trên PCB
CHƯƠNG 3: TÍNH TOÁN VÀ THIẾT KẾ