lOMoARcPSD| 58728417
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
MÔN HỌC:
INTEGRATED CIRCUITS AND SYSTEMS DESIGN
BÁO CÁO CUỐI KỲ
ĐỀ TÀI: TÌM HIỂU GIAO TIẾP SPI
Giảng viên hướng dẫn:
Nhóm sinh viên thực hiện:
TP. HCM 11/2021
lOMoARcPSD| 58728417
NHẬN XÉT CỦA GIẢNG VIÊN
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
lOMoARcPSD| 58728417
...........................................................................................................................................
..
...........................................................................................................................................
..
...........................................................................................................................................
..
KÝ TÊN
lOMoARcPSD| 58728417
MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN..................................................................................I
MỤC LỤC......................................................................................................................
II MỤC LỤC HÌNH
ẢNH...............................................................................................IV MỤC LỤC
BẢNG..........................................................................................................V CHƯƠNG
1: TỔNG QUAN..........................................................................................1
1. Đặt vấn
đề...............................................................................................................1
2. Mục tiêu đề tài........................................................................................................1
3. Nội dung nghiên cứu..............................................................................................1
4. Bố
cục.....................................................................................................................1
5. Giới hạn đề tài........................................................................................................
2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT............................................................................. 3
2.1. Giới thiệu giao diện SPI......................................................................................3
2.2. Chuẩn truyền thông SPI......................................................................................
3
2.2.1. Cấu trúc
SPI..................................................................................................3
2.2.2. SPI truyền thông như thế nào?.....................................................................5
2.2.3. Các kiểu kết nối SPI.....................................................................................9
CHƯƠNG 3: THIẾT KẾ.............................................................................................13
3.1. đồ khối thiết kế.............................................................................................13
3.1.1. hình giao tiếp SPI................................................................................ 13
3.1.2. Sơ đồ khối thiết mạch giao tiếp SPI...........................................................13
3.1.3. Sơ đồ SCK Clock Logic.............................................................................14
3.2. tả thanh ghi..................................................................................................15
3.2.1. Thanh ghi của giao tiếp bên trong vi điều khiển....................................... 15
lOMoARcPSD| 58728417
3.2.2. Thanh ghi của giao tiếp SPI.......................................................................16
3.3. Sơ đồ thuật toán thiết kế....................................................................................18
CHƯƠNG 4: ĐÁNH GIÁ QUA TESTBENCH........................................................20
4.1. Thiết kế chương trình........................................................................................20
4.2. Chương trình testbench tổng quát.....................................................................22
4.3. tả các trường hợp test..................................................................................25
4.4. Kết
quả...............................................................................................................26
4.5. Nhận xét và đánh giá.........................................................................................26
CHƯƠNG 5: KẾT
LUẬN............................................................................................28
5.1. Những ưu điểm của
SPI.................................................................................... 28
5.2. Những nhược điểm của
SPI.............................................................................. 28 TÀI LIỆU THAM
KHẢO........................................................................................... 29
lOMoARcPSD| 58728417
MỤC LỤC HÌNH ẢNH
Hình 1: Giao diện SPI .................................................................................................... 4
Hình 2: Truyền dữ liệu SPI ............................................................................................ 5
Hình 3: Giản đồ timing của giao tiếp SPI theo Motorola .............................................. 6
Hình 4: Giản đồ thời gian của SPI ở Mode 0 ................................................................. 8
Hình 5: Giản đồ thời gian của SPI ở Mode 1 ................................................................. 8
Hình 6: Giản đồ thời gian của SPI ở Mode 2 ................................................................. 8
Hình 7: Giản đồ thời gian của SPI ở Mode 3 ................................................................. 9
Hình 8: Kết nối point-to-point, một master nối với một slave ....................................... 9
Hình 9: Kết nối nhiều slave song song......................................................................... 10
Hình 10: Kết nối nối tiếp (Daisy-Chained) ...................................................................11
Hình 11: Kết nối hai master song song đến một slave ..................................................11
Hình 12: Kết nối hai master với nhau .......................................................................... 12
Hình 13: CoolRunner-II SPI Master ............................................................................ 13
Hình 14: SPI Master Block Diagram ........................................................................... 14
Hình 15: SCK Clock Generation Logic ....................................................................... 15
Hình 16: SPI Transmit Shift Register........................................................................... 17
Hình 17: SPI Receive Shift Register and MISO Input Data Registers ........................ 18
Hình 18: SPI Master Transaction Flow Chart .............................................................. 19
Hình 19: Hệ thống sử dụng giao tiếp SPI .................................................................... 20
Hình 20: Kết
quả.............................................................................................................26
MỤC LỤC BẢNG
Bảng 1: Các tín hiệu của giao diện SPI............................................................................5
Bảng 2: Các chế độ truyền thông trong giao thức SPI.....................................................7
lOMoARcPSD| 58728417
CHƯƠNG 1: TỔNG QUAN
1. Đặt vấn đề
Hiện nay, các vi xử hay vi điều khiển đang được sử dụng rộng rãi trong nhiều lĩnh
vực như: điều khiển, tự động hóa, đo đạc, truyền thông... So với các phương pháp điều
khiển, đo đạc truyền thống (cơ khí, điện tử tương tự... ) thì sử dụng vi xử các ưu
điểm như: nhỏ gọn, ít tốn năng lượng, thời gian đáp ứng nhanh, có thể lập trình được.
Giao tiếp và truyền nhận dữ liệu một nhu cầu không thể thiếu trong hệ thống
nhúng.Trong đó giao thức ngoại vi nối tiếp (Serial Peripheral Interface) là một loại giao
tiếp truyền thông nối tiếp đồng bộ được sử dụng cho giao tiếp khoảng cách ngắn, chủ
yếu trong các hệ thống nhúng. Giao diện được phát triển bởi Motorola vào giữa những
năm 1980 đã trở thành một tiêu chuẩn thực tế. Các ứng dụng điển hình bao gồm th
từ màn hình tinh thể lỏng. Cùng với đó giao diện SPI ngày càng được sử dụng rộng
rãi trong ngành công nghiệp điện tử. Nhận thức được tầm quan trọng của giao diện
SPI trong lập trình nhúng đây sở để chúng em chọn đề tài bài tập lớn “Tìm hiểu
giao diện SPI” để kết thúc môn học.
2. Mục tiêu đề tài
- Hiểu được chuẩn nối tiếp truyền thông.
- Nắm được kiến thức về chuẩn giao tiếp SPI.
- Phân tích được ưu, được điểm của giao tiếp SPI.
- Thiết kế ứng dụng sử dụng giao tiếp SPI
- Nhận xét và đánh giá qua việc mô phỏng bằng phần mềm
3. Nội dung nghiên cứu
- Tổng quan về vấn đề sử dụng giao diện SPI trong truyền nhận dữ liệu.
- Giới thiệu về chuẩn giao tiếp SPI
- Đặc điểm và nguyên lý hoạt động của SPI
- Thiết kế phần cứng và giải thuật sử dụng SPI
- Mô phỏng và đánh giá qua phần mềm
- Tóm tắt và kết luận
4. Bố cục
Nội dung chính của đề tài gồm 6 chương:
lOMoARcPSD| 58728417
CHƯƠNG 1: TỔNG QUAN CHƯƠNG 2: S THUYẾT CHƯƠNG 3:
THIẾT KẾ CHƯƠNG 4: ĐÁNH GIÁ QUA TESTBENCH CHƯƠNG 5: KẾT
LUẬN VÀ HƯỚNG PHÁT TRIỂN
5. Giới hạn đề tài
Đề tài chỉ đề cập đến nghiên cứu về mặt thuyết chuẩn giao tiếp SPI, nguyên
hoạt động ưu nhược điểm của SPI, viết một chương trình ứng dụng của SPI, phỏng
trên phần mềm và hướng phát triển công nghệ trong tương lai.
lOMoARcPSD| 58728417
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu giao diện SPI
SPI (Serial Peripheral Interface – Giao diện Ngoại vi Nối tiếp) là một chuẩn đồng bộ
nối tiếp để truyền dữ liệu chế độ song công toàn phần (full-duplex), do công ty
Motorola thiết kế nhắm đảm bảo sự liên hợp giữa các vi điều khiền thiết bị ngoại vi
một cách đơn giản.
Đây kiểu truyền thông Master-Slave, trong đó 1 chip Master điều phối quá trình
truyền thôngcác chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy
ra giữa Master và Slave.
SPI cung cấp một giao diện nối tiếp đơn giản giữa vi xử lý và thiết bị ngoại vi. Giống
với các Bus nối tiếp khác như I2C, CAN hoặc USB. Chuẩn giao tiếp SPI ngày càng được
sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt trong giao tiếp trao đổi dữ liệu với các
thiết bị ngoại vi.
Giao diện SPI được sử dụng tích hợp trong một số loại thiết bị như:
- Các bộ chuyển đổi (ADC và DAC)
- Các loại bộ nhớ (EEPROM và FLASH)
- Các loại IC thời gian thực
- Các loại cảm biến (nhiệt độ, áp suất...)
- Và một số loại thiết bị khác như: bộ trộn tín hiệu analog, LCD, Graphic LCD...
2.2. Chuẩn truyền thông SPI
2.2.1. Cấu trúc SPI
Giao diện SPI được thực hiện thông qua Bus 4 dây MISO, MOSI, SCK SS nên
đôi khi SPI còn được gọi là “giao diện 4 dây”. a. MISO – Master Input/ Slave Output
Chân MISO dùng để truyền dữ liệu ra khỏi SPI khi đặt cấu hình là Slave và nhận dữ
liệu khi đặt cấu hình Master. MISO của Master các Slaves được nối trực tiếp với
nhau.
b. MOSI – Master Output/ Slave Input
Chân MOSI dùng để truyền dữ liệu ra khỏi SPI khi đặt cấu hình Master nhận
dữ liệu khi đặt cấu hình là Slave. MISO của Master và các Slaves được nối trực tiếp với
nhau.
lOMoARcPSD| 58728417
c. SCK – Serial Clock
Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền thông đồng bộ nên cần một
đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi. Sự tồn tại của
chân SCK giúp quá trình truyền ít bị lỗi thế tốc độ truyền của SPI thể đạt hiệu
quả cao.
Xung nhịp chỉ được tạo ra bởi chip Master.
d. SS – Slave Select
SS đường chọn Slave cần giao tiếp, trên các chip Slave đường SS sẽ mức cao
khi không làm việc. Nếu chip Master kéo đường SS của một Slave nào đó xuống mức
thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó.
Chỉ một đường SS trên mỗi Slave nhưng thể nhiều đường điều khiển trên
Master tùy thuộc vào thiết kế của người dùng.
Hình 1: Giao diện SPI
Có thể mô tả tóm tắt các tín hiệu của giao diện SPI bằng bảng sau:
Tên tín hiệu
Chiều
Mô tả
SCK
Master: đầu ra
Slave: đầu vào
Clock đồng bộ truyền/nhận dữ liệu luôn
được cung cấp bởi Master
lOMoARcPSD| 58728417
SS
Master: đầu ra
Slave: đầu vào
Tín hiệu kết nối với Slave. Master kích
hoạt tín hiệu này nếu muốn truyền/nhận
dữ liệu với Slave.
Master: MOSI
Slave: SDO hoặc SO
Đầu ra
Đầu ra dữ liệu nối tiếp
- Với Master tín hiệu tên Master Out
Slave In
- Với Slave tín hiệu có tên Slave Data
Out
Master: MISO
Slave: SDI hoặc SI
Đầu vào
Đầu vào dữ liệu nối tiếp
- Với Master tín hiệu có tên Master In
Slave Out
- Với Slave tín hiệu có tên Slave Data In
Bảng 1: Các tín hiệu của giao diện SPI
2.2.2. SPI truyền thông như thế nào?
a. Mô tả cơ chế
Hình dưới đây mô tả quá trình truyền một gói dữ liệu thực hiện bởi module SPI trong
AVR, bên trái là chip Master và bên phải là Slave.
Hình 2: Truyền dữ liệu SPI
b. Giản đồ định thời giao tiếp SPI – Motorola
Khi Master muốn truyền/nhận dữ liệu, kéo tín hiệu chọn chip SS xuống mức thấp.
Sau đó, Master cung cấp Clock đồng bộ việc truyền/nhận dữ liệu trên đường SCK.
Vị trí lấy mẫu dữ liệu và dịch dữ liệu theo xung SCK phụ thuộc vào hai thông số
lOMoARcPSD| 58728417
cấu hình được quy định bởi chuẩn SPI pha của Clock (CPHS Clock Phase) cực
của Clock (CPOL – Clock Polarity).
Hình 3: Giản đồ timing của giao tiếp SPI theo Motorola
Cực của Clock quyết định trạng thái rảnh (idle) của tín hiệu SCK. Nếu CPOL = 0 t
mức logic khi idle của SCK là mức 0. Nếu CPOL = 1 thì ngược lại.
Dựa vào pha của Clock chúng ta sẽ biết lấy điểm mẫu ở đâu:
- Nếu pha Clock bằng 0 thì dữ liệu được lấy mẫu khi SCK chuyển từ trạng thái idle
sang active, có thể là cạnh lên hoặc cạnh xuống tùy vào giá trị CPOL.
- Nếu pha Clock bằng 1 thì dữ liệu được lấy mẫu khi SCK chuyển từ trạng thái
active sang idle.
c. SPI là giao thức đồng bộ
Module SPI cho phép giao tiếp nối tiếp đồng bộ kép giữa vi xửvới thiết bị ngoại
vi:
- Tín hiệu SCK được cung cấp bởi Master nhằm tạo xung đồng bộ cho phép dữ liệu
được truyền đi hoặc khi đọc dữ liệu nhận được.
- Khi tín hiệu SCK được phát ra thì tín hiệu này thể thay đổi nhưng không làm
hỏng dữ liệu. do trong giao thức SPI, tốc độ của dữ liệu truyền đi sẽ thay đổi theo
sự thay đổi của SCK. Điều này rất lợi nếu như vi xử bị cấp xung đồng hồ không
chính xác (Ví dụ: bộ dao động RC).
d. SPI là giao thức trao đổi dữ liệu
Dữ liệu lúc nào cũng được truyền qua lại giữa các thiết bị SPI. Thật ra, không khái
niệm thiết bị phát hay thiết bị nhận trong giao thức SPI mỗi thiết bị 2 đường dữ
liệu, một đường dữ liệu vào và một đường dữ liệu ra.
lOMoARcPSD| 58728417
Dữ liệu truyền đi được điều khiển bởi xung SCK từ Master.
Khi được truyền đi, dữ liệu vào cần phải được đọc ngay nếu không sẽ bị mất đi
khi đó, giao thức SPI có thể sẽ ngưng hoạt động. Để tránh tình trạng này, lúc nào ta cũng
phải đọc dữ liệu về ngay sau khi truyền đi cho dù dữ liệu đó không thực sự cần thiết.
Thường thì một tín hiệu chọn Slave sẽ tác động mức thấp để chỉ ra Slave nào được
truy cập. Tín hiệu này phải được sử dụng khi nhiều hơn một Slave trong cùng hệ thống
và thường không sử dụng đến khi trong mạch chỉ có một Slave. Tuy nhiên, theo nguyên
tắc thì ta nên sử dụng tín hiệu này trong cả hai trường hợp trên.
Tín hiệu SS sẽ chỉ ra Slave nào Master muốn bắt đầu một quá trình trao đổi dữ
liệu bằng giao thức SPI giữa thiết bị Slave đó và chính nó. Nếu tín hiệu trên đường SS là
0 thì chứng tỏ giao thức SPI đang hoạt động. Ngược lại mức 1 thì giao thức SPI sẽ
không hoạt động.
Một đặc điểm khá quan trọng của tín hiệu SSnó có tác dụng làm tăng cường khả
năng miễn nhiễm cho hệ thống. do SS sReset Slave để thể nhận Byte dữ
liệu tiếp theo.
SPI 4 mode hoạt động, phụ thuộc vào cực tính pha của xung đồng hồ. Trong
trường hợp cực âm của xung đồng hồ, tín hiệu SCK sẽ mức thấp trong quá trình nghỉ
chuyển sang mức cao trong quá trình truyền dữ liệu. Ngược lại, đối với trường hợp
cực dương của xung đồng hồ, tín hiệu SCK mức cao trong quá trình nghchuyển
sang mức thấp khi truyền dữ liệu:
SPI Mode
CPOL
CPHS
0
0
0
1
0
1
2
1
0
3
1
1
Bảng 2: Các chế độ truyền thông trong giao thức SPI
SPI Mode 0:
tả: Xung dương, dữ liệu được chốt trước khi dịch Giản
đồ thời gian:
lOMoARcPSD| 58728417
Hình 4: Giản đồ thời gian của SPI ở Mode 0
SPI Mode 1:
Mô tả: Xung dương, dữ liệu được dịch đi trước khi chốt Giản
đồ thời gian:
Hình 5: Giản đồ thời gian của SPI ở Mode 1
SPI Mode 2:
Mô tả: Xung âm, dữ liệu được chốt lại trước khi dịch Giản
đồ thời gian:
Hình 6: Giản đồ thời gian của SPI ở Mode 2
SPI Mode 3:
lOMoARcPSD| 58728417
Mô tả: Xung âm, dữ liệu bị dịch đi trước khi chốt lại
Giản đồ thời gian:
Hình 7: Giản đồ thời gian của SPI ở Mode 3
2.2.3. Các kiểu kết nối SPI
a. Kết nối điểm – điểm ( point-to-point )
Đây kiểu kết nối bản nhất của giao thức SPI một master kết nối với một slave.
Hình 8: Kết nối point-to-point, một master nối với một slave
Cả Master Slave đều thanh ghi dịch nối tiếp (thanh ghi dữ liệu 8 bits) bên
trong. Thiết bị Master bắt đầu việc trao đổi dữ liệu bằng cách truyền đi một bit vào thanh
ghi dịch của nó, sau đó bit dữ liệu sẽ được đưa sang Slave theo đường tín hiệu MOSI
(SDI), Slave sẽ truyền dữ liệu nằm trong thanh ghi dịch của chính ngược trở về Master
thông qua đường tín hiệu MISO (SDO). Bằng cách này, dữ liệu của hai thanh ghi sẽ được
trao đổi với nhau. Việc đọc và ghi dữ liệu vào Slave diễn ra cùng một lúc nên tốc độ trao
đổi dữ liệu diễn ra rất nhanh. Do đó, giao thức SPI là một giao thức rất có hiệu quả.
Trong kiểu kết nối này, chỉ thiết bị Master mới thể điều khiển (phát ra) xung
SCK. Dữ liệu sẽ không được truyền đi nếu như Master không cung cấp xung SCK và tất
cả các thiết bị Slave đều được điều khiển bởi xung nhịp phát ra từ Master trong khi đó,
Slave lại không có khả năng phát xung.
lOMoARcPSD| 58728417
b. Kết nối Multi-slave
Kết nối nhiều slave độc lập (Independent slaves) hay kết nối song song:
Trong cách kết nối này, tín hiệu SCK SDO từ Master được cung cấp đến từng
Slave. Đường tín hiệu SDO của các Slave nối chung lại với nhau truyền về Master.
Lúc này, Master sẽ lựa chọn Slave nào để trao đổi dữ liệu thông qua các chân SS riêng
lẻ.
Hình 9: Kết nối nhiều slave song song
c. Kết nối nối tiếp hay kết nối Daisy-Chained
Trong kết nối này, chân SS SCK của master nối song song đến tất cả các slave.
Chân SDO của slave trước nối đến SDI của slave sau. Chân MOSI của master nối đến
SDI của slave đầu tiên trong chuỗi MISO được nối đến SDO của slave cuối cùng trong
chuỗi.
Việc truyền dữ liệu từ master đến các slave dữ liệu master nhận từ slave cuối cùng
được minh họa với các slave như sau:
lOMoARcPSD| 58728417
Hình 10: Kết nối nối tiếp (Daisy-Chained)
d. Kết nối Multi-master
Kết nối nhiều master độc lập (Independent masters hay Multi-master). Đối với kiểu
kết nối này nhiều cách kết nối nhiều vấn đề hơn. e. Kết nối nhiều master song
song đến một slave
Với cách kết nối này, phần cứng ngoại vi phải hỗ trợ thêm c tín hiệu điều khiển
khác để tránh xung đột khi hai master cùng truy xuất đến slave. Ví dụ một trong các cách
hỗ trợ multi-master như trong hình sau:
Hình 11: Kết nối hai master song song đến một slave
Giải pháp đây ngoài các tín hiệu SPI thông thường, phần cứng của hai master
SPI hỗ trợ thêm tín hiệu SS_IN để master y biết master kia đang chọn slave hay
không. Đồng thời tín hiệu SS nối đến slave được mắc qua một cổng XNOR để nếu hai
master cùng chọn thì tín hiệu SS của slave vẫn không tích cực. Bên cạnh đó, trong mạch
trên, ngoài TXD (chính tín hiệu MOSI) thì đường SCK cũng phải Hi-Z khi master
không chọn slave.
f. Kết nối hai master với nhau
Đây là một dạng khác của multi-master. Trong đó hai master nối trực tiếp với nhau,
giao tiếp qua 5 đường.
lOMoARcPSD| 58728417
Hình 12: Kết nối hai master với nhau
lOMoARcPSD| 58728417
CHƯƠNG 3: THIẾT KẾ
3.1. Sơ đồ khối thiết kế
3.1.1. Mô hình giao tiếp SPI
Serial Peripheral Interface (SPI) là một liên kết dữ liệu nối tiếp, đồng bộ, song công,
liên kết tiêu chuẩn trên nhiều bộ vi xử lý, vi điều khiển thiết bị ngoại vi. cho
phép giao tiếp giữa bộ vi xử thiết bị ngoại vi giao tiếp giữa các bộ xử . Hệ
thống SPI đủ linh hoạt để giao tiếp trực tiếp với nhiều thiết bị ngoại vi sẵn trên thị
trường
Thiết kế SPI Master đã được thực hiện trong CoolRunner-II CPLD. Thiết kế
CoolRunner-II SPI Master thể được sử dụng để cung cấp bộ điều khiển SPI cho các
bộ vi điều khiển hoặc bộ vi xử không chứa giao diện SPI. đồ khối mức cao được
thể hiện trong “Hình 13” Giao diện vi điều khiển (microcontroller) được chọn trong triển
khai SPI Master này dựa trên chu kỳ bus vi điều khiển 8051 phổ biến, nhưng thể dễ
dàng sửa đổi thành các giao diện vi điều khiển khác
Hình 13: CoolRunner-II SPI Master
3.1.2. Sơ đồ khối thiết mạch giao tiếp SPI
đồ khối của CoolRunner-II CPLD SPI Master, thể hiện trong “Hình 14” được chia
thành hai khối chính, giao diện vi điều khiển và giao diện SPI.
lOMoARcPSD| 58728417
Hình 14: SPI Master Block Diagram
3.1.3. Sơ đồ SCK Clock Logic
Quá trình này tạo ra đầu ra SCK dựa trên cài đặt CLKDIV, CPHA CPOL trong
thanh ghi điều khiển SPI. Tần số xung nhịp của tín hiệu SCK được xác định bằng cách
chia nhỏ xung nhịp đầu vào dựa trên các mục trong thanh ghi điều khiển. Tín hiệu,
SCK_INT là SCK bên trong được sử dụng để đồng bộ dữ liệu nối tiếp ra khỏi thiết bị
được tạo ra liên tục. Máy trạng thái SPI Control được đồng bộ hóa với tín hiệu nội bộ
này. Tín hiệu SCK_1 đại diện cho SCK khi CPHA = 1 tín hiệu SCK_0 đại diện cho
SCK khi CPHA = 0. Máy trạng thái điều khiển SPI tạo mặt nạ cho các xung này
(CLK0_MASK, CLK1_MASK) để SCK đầu ra mối quan hệ pha chính xác với dữ
liệu và được giữ ở trạng thái không hoạt động khi không có dữ liệu được chuyển.
Biểu diễn logic cần thiết để tạo đầu ra tín hiệu SCK tới bus SPI được thể hiện trong
“Hình 15”.

Preview text:

lOMoAR cPSD| 58728417
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO  MÔN HỌC:
INTEGRATED CIRCUITS AND SYSTEMS DESIGN BÁO CÁO CUỐI KỲ
ĐỀ TÀI: TÌM HIỂU GIAO TIẾP SPI Giảng viên hướng dẫn:
Nhóm sinh viên thực hiện: TP. HCM 11/2021 lOMoAR cPSD| 58728417
NHẬN XÉT CỦA GIẢNG VIÊN 
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... .. lOMoAR cPSD| 58728417
........................................................................................................................................... ..
........................................................................................................................................... ..
........................................................................................................................................... .. KÝ TÊN lOMoAR cPSD| 58728417 MỤC LỤC 
NHẬN XÉT CỦA GIẢNG VIÊN..................................................................................I
MỤC LỤC...................................................................................................................... II MỤC LỤC HÌNH
ẢNH...............................................................................................IV MỤC LỤC
BẢNG..........................................................................................................V CHƯƠNG
1: TỔNG QUAN..........................................................................................1 1. Đặt vấn
đề...............................................................................................................1
2. Mục tiêu đề tài........................................................................................................1
3. Nội dung nghiên cứu..............................................................................................1 4. Bố
cục.....................................................................................................................1
5. Giới hạn đề tài........................................................................................................ 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT............................................................................. 3
2.1. Giới thiệu giao diện SPI......................................................................................3
2.2. Chuẩn truyền thông SPI...................................................................................... 3 2.2.1. Cấu trúc
SPI..................................................................................................3
2.2.2. SPI truyền thông như thế nào?.....................................................................5
2.2.3. Các kiểu kết nối SPI.....................................................................................9
CHƯƠNG 3: THIẾT KẾ.............................................................................................13
3.1. Sơ đồ khối thiết kế.............................................................................................13
3.1.1. Mô hình giao tiếp SPI................................................................................ 13
3.1.2. Sơ đồ khối thiết mạch giao tiếp SPI...........................................................13
3.1.3. Sơ đồ SCK Clock Logic.............................................................................14
3.2. Mô tả thanh ghi..................................................................................................15
3.2.1. Thanh ghi của giao tiếp bên trong vi điều khiển....................................... 15 lOMoAR cPSD| 58728417
3.2.2. Thanh ghi của giao tiếp SPI.......................................................................16
3.3. Sơ đồ thuật toán thiết kế....................................................................................18
CHƯƠNG 4: ĐÁNH GIÁ QUA TESTBENCH........................................................20
4.1. Thiết kế chương trình........................................................................................20
4.2. Chương trình testbench tổng quát.....................................................................22
4.3. Mô tả các trường hợp test..................................................................................25 4.4. Kết
quả...............................................................................................................26
4.5. Nhận xét và đánh giá.........................................................................................26 CHƯƠNG 5: KẾT
LUẬN............................................................................................28 5.1. Những ưu điểm của
SPI.................................................................................... 28 5.2. Những nhược điểm của
SPI.............................................................................. 28 TÀI LIỆU THAM
KHẢO........................................................................................... 29 lOMoAR cPSD| 58728417
MỤC LỤC HÌNH ẢNH 
Hình 1: Giao diện SPI .................................................................................................... 4
Hình 2: Truyền dữ liệu SPI ............................................................................................ 5
Hình 3: Giản đồ timing của giao tiếp SPI theo Motorola .............................................. 6
Hình 4: Giản đồ thời gian của SPI ở Mode 0 ................................................................. 8
Hình 5: Giản đồ thời gian của SPI ở Mode 1 ................................................................. 8
Hình 6: Giản đồ thời gian của SPI ở Mode 2 ................................................................. 8
Hình 7: Giản đồ thời gian của SPI ở Mode 3 ................................................................. 9
Hình 8: Kết nối point-to-point, một master nối với một slave ....................................... 9
Hình 9: Kết nối nhiều slave song song......................................................................... 10
Hình 10: Kết nối nối tiếp (Daisy-Chained) ...................................................................11
Hình 11: Kết nối hai master song song đến một slave ..................................................11
Hình 12: Kết nối hai master với nhau .......................................................................... 12
Hình 13: CoolRunner-II SPI Master ............................................................................ 13
Hình 14: SPI Master Block Diagram ........................................................................... 14
Hình 15: SCK Clock Generation Logic ....................................................................... 15
Hình 16: SPI Transmit Shift Register........................................................................... 17
Hình 17: SPI Receive Shift Register and MISO Input Data Registers ........................ 18
Hình 18: SPI Master Transaction Flow Chart .............................................................. 19
Hình 19: Hệ thống sử dụng giao tiếp SPI .................................................................... 20 Hình 20: Kết
quả.............................................................................................................26 MỤC LỤC BẢNG 
Bảng 1: Các tín hiệu của giao diện SPI............................................................................5
Bảng 2: Các chế độ truyền thông trong giao thức SPI.....................................................7 lOMoAR cPSD| 58728417
CHƯƠNG 1: TỔNG QUAN 1. Đặt vấn đề
Hiện nay, các vi xử lý hay vi điều khiển đang được sử dụng rộng rãi trong nhiều lĩnh
vực như: điều khiển, tự động hóa, đo đạc, truyền thông... So với các phương pháp điều
khiển, đo đạc truyền thống (cơ khí, điện tử tương tự... ) thì sử dụng vi xử lý có các ưu
điểm như: nhỏ gọn, ít tốn năng lượng, thời gian đáp ứng nhanh, có thể lập trình được.
Giao tiếp và truyền nhận dữ liệu là một nhu cầu không thể thiếu trong hệ thống
nhúng.Trong đó giao thức ngoại vi nối tiếp (Serial Peripheral Interface) là một loại giao
tiếp truyền thông nối tiếp đồng bộ được sử dụng cho giao tiếp khoảng cách ngắn, chủ
yếu trong các hệ thống nhúng. Giao diện được phát triển bởi Motorola vào giữa những
năm 1980 và đã trở thành một tiêu chuẩn thực tế. Các ứng dụng điển hình bao gồm thẻ
từ và màn hình tinh thể lỏng. Cùng với đó giao diện SPI ngày càng được sử dụng rộng
rãi trong ngành công nghiệp cơ điện tử. Nhận thức được tầm quan trọng của giao diện
SPI trong lập trình nhúng đây là cơ sở để chúng em chọn đề tài bài tập lớn “Tìm hiểu
giao diện SPI” để kết thúc môn học.
2. Mục tiêu đề tài
- Hiểu được chuẩn nối tiếp truyền thông.
- Nắm được kiến thức về chuẩn giao tiếp SPI.
- Phân tích được ưu, được điểm của giao tiếp SPI.
- Thiết kế ứng dụng sử dụng giao tiếp SPI
- Nhận xét và đánh giá qua việc mô phỏng bằng phần mềm
3. Nội dung nghiên cứu
- Tổng quan về vấn đề sử dụng giao diện SPI trong truyền nhận dữ liệu.
- Giới thiệu về chuẩn giao tiếp SPI
- Đặc điểm và nguyên lý hoạt động của SPI
- Thiết kế phần cứng và giải thuật sử dụng SPI
- Mô phỏng và đánh giá qua phần mềm - Tóm tắt và kết luận 4. Bố cục
Nội dung chính của đề tài gồm 6 chương: lOMoAR cPSD| 58728417
CHƯƠNG 1: TỔNG QUAN CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 3:
THIẾT KẾ CHƯƠNG 4: ĐÁNH GIÁ QUA TESTBENCH CHƯƠNG 5: KẾT
LUẬN VÀ HƯỚNG PHÁT TRIỂN

5. Giới hạn đề tài
Đề tài chỉ đề cập đến nghiên cứu về mặt lý thuyết chuẩn giao tiếp SPI, nguyên lý
hoạt động và ưu nhược điểm của SPI, viết một chương trình ứng dụng của SPI, mô phỏng
trên phần mềm và hướng phát triển công nghệ trong tương lai. lOMoAR cPSD| 58728417
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu giao diện SPI
SPI (Serial Peripheral Interface – Giao diện Ngoại vi Nối tiếp) là một chuẩn đồng bộ
nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full-duplex), do công ty
Motorola thiết kế nhắm đảm bảo sự liên hợp giữa các vi điều khiền và thiết bị ngoại vi một cách đơn giản.
Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình
truyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave.
SPI cung cấp một giao diện nối tiếp đơn giản giữa vi xử lý và thiết bị ngoại vi. Giống
với các Bus nối tiếp khác như I2C, CAN hoặc USB. Chuẩn giao tiếp SPI ngày càng được
sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt là trong giao tiếp trao đổi dữ liệu với các thiết bị ngoại vi.
Giao diện SPI được sử dụng tích hợp trong một số loại thiết bị như:
- Các bộ chuyển đổi (ADC và DAC)
- Các loại bộ nhớ (EEPROM và FLASH)
- Các loại IC thời gian thực
- Các loại cảm biến (nhiệt độ, áp suất...)
- Và một số loại thiết bị khác như: bộ trộn tín hiệu analog, LCD, Graphic LCD...
2.2. Chuẩn truyền thông SPI 2.2.1. Cấu trúc SPI
Giao diện SPI được thực hiện thông qua Bus 4 dây MISO, MOSI, SCK và SS nên
đôi khi SPI còn được gọi là “giao diện 4 dây”. a. MISO – Master Input/ Slave Output
Chân MISO dùng để truyền dữ liệu ra khỏi SPI khi đặt cấu hình là Slave và nhận dữ
liệu khi đặt cấu hình là Master. MISO của Master và các Slaves được nối trực tiếp với nhau.
b. MOSI – Master Output/ Slave Input
Chân MOSI dùng để truyền dữ liệu ra khỏi SPI khi đặt cấu hình là Master và nhận
dữ liệu khi đặt cấu hình là Slave. MISO của Master và các Slaves được nối trực tiếp với nhau. lOMoAR cPSD| 58728417
c. SCK – Serial Clock
Xung giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn truyền thông đồng bộ nên cần một
đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi. Sự tồn tại của
chân SCK giúp quá trình truyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt hiệu quả cao.
Xung nhịp chỉ được tạo ra bởi chip Master. d. SS – Slave Select
SS là đường chọn Slave cần giao tiếp, trên các chip Slave đường SS sẽ ở mức cao
khi không làm việc. Nếu chip Master kéo đường SS của một Slave nào đó xuống mức
thấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó.
Chỉ có một đường SS trên mỗi Slave nhưng có thể có nhiều đường điều khiển trên
Master tùy thuộc vào thiết kế của người dùng.
Hình 1: Giao diện SPI
Có thể mô tả tóm tắt các tín hiệu của giao diện SPI bằng bảng sau: Tên tín hiệu Chiều Mô tả SCK Master: đầu ra
Clock đồng bộ truyền/nhận dữ liệu luôn Slave: đầu vào
được cung cấp bởi Master lOMoAR cPSD| 58728417 SS Master: đầu ra
Tín hiệu kết nối với Slave. Master kích Slave: đầu vào
hoạt tín hiệu này nếu muốn truyền/nhận dữ liệu với Slave. Master: MOSI Đầu ra
Đầu ra dữ liệu nối tiếp Slave: SDO hoặc SO
- Với Master tín hiệu có tên Master Out Slave In
- Với Slave tín hiệu có tên Slave Data Out Master: MISO Đầu vào
Đầu vào dữ liệu nối tiếp Slave: SDI hoặc SI
- Với Master tín hiệu có tên Master In Slave Out
- Với Slave tín hiệu có tên Slave Data In
Bảng 1: Các tín hiệu của giao diện SPI
2.2.2. SPI truyền thông như thế nào? a. Mô tả cơ chế
Hình dưới đây mô tả quá trình truyền một gói dữ liệu thực hiện bởi module SPI trong
AVR, bên trái là chip Master và bên phải là Slave.
Hình 2: Truyền dữ liệu SPI
b. Giản đồ định thời giao tiếp SPI – Motorola
Khi Master muốn truyền/nhận dữ liệu, nó kéo tín hiệu chọn chip SS xuống mức thấp.
Sau đó, Master cung cấp Clock đồng bộ việc truyền/nhận dữ liệu trên đường SCK.
Vị trí lấy mẫu dữ liệu và dịch dữ liệu theo xung SCK phụ thuộc vào hai thông số lOMoAR cPSD| 58728417
cấu hình được quy định bởi chuẩn SPI là pha của Clock (CPHS – Clock Phase) và cực
của Clock (CPOL – Clock Polarity).
Hình 3: Giản đồ timing của giao tiếp SPI theo Motorola
Cực của Clock quyết định trạng thái rảnh (idle) của tín hiệu SCK. Nếu CPOL = 0 thì
mức logic khi idle của SCK là mức 0. Nếu CPOL = 1 thì ngược lại.
Dựa vào pha của Clock chúng ta sẽ biết lấy điểm mẫu ở đâu: -
Nếu pha Clock bằng 0 thì dữ liệu được lấy mẫu khi SCK chuyển từ trạng thái idle
sang active, có thể là cạnh lên hoặc cạnh xuống tùy vào giá trị CPOL. -
Nếu pha Clock bằng 1 thì dữ liệu được lấy mẫu khi SCK chuyển từ trạng thái active sang idle.
c. SPI là giao thức đồng bộ
Module SPI cho phép giao tiếp nối tiếp đồng bộ kép giữa vi xử lý với thiết bị ngoại vi: -
Tín hiệu SCK được cung cấp bởi Master nhằm tạo xung đồng bộ cho phép dữ liệu
được truyền đi hoặc khi đọc dữ liệu nhận được. -
Khi tín hiệu SCK được phát ra thì tín hiệu này có thể thay đổi nhưng không làm
hỏng dữ liệu. Lí do là trong giao thức SPI, tốc độ của dữ liệu truyền đi sẽ thay đổi theo
sự thay đổi của SCK. Điều này rất có lợi nếu như vi xử lý bị cấp xung đồng hồ không
chính xác (Ví dụ: bộ dao động RC).
d. SPI là giao thức trao đổi dữ liệu
Dữ liệu lúc nào cũng được truyền qua lại giữa các thiết bị SPI. Thật ra, không có khái
niệm thiết bị phát hay thiết bị nhận trong giao thức SPI mà mỗi thiết bị có 2 đường dữ
liệu, một đường dữ liệu vào và một đường dữ liệu ra. lOMoAR cPSD| 58728417
Dữ liệu truyền đi được điều khiển bởi xung SCK từ Master.
Khi được truyền đi, dữ liệu vào cần phải được đọc ngay nếu không sẽ bị mất đi và
khi đó, giao thức SPI có thể sẽ ngưng hoạt động. Để tránh tình trạng này, lúc nào ta cũng
phải đọc dữ liệu về ngay sau khi truyền đi cho dù dữ liệu đó không thực sự cần thiết.
Thường thì một tín hiệu chọn Slave sẽ tác động mức thấp để chỉ ra Slave nào được
truy cập. Tín hiệu này phải được sử dụng khi có nhiều hơn một Slave trong cùng hệ thống
và thường không sử dụng đến khi trong mạch chỉ có một Slave. Tuy nhiên, theo nguyên
tắc thì ta nên sử dụng tín hiệu này trong cả hai trường hợp trên.
Tín hiệu SS sẽ chỉ ra Slave nào mà Master muốn bắt đầu một quá trình trao đổi dữ
liệu bằng giao thức SPI giữa thiết bị Slave đó và chính nó. Nếu tín hiệu trên đường SS là
0 thì chứng tỏ giao thức SPI đang hoạt động. Ngược lại là mức 1 thì giao thức SPI sẽ không hoạt động.
Một đặc điểm khá quan trọng của tín hiệu SS là nó có tác dụng làm tăng cường khả
năng miễn nhiễm cho hệ thống. Lí do là SS sẽ Reset Slave để nó có thể nhận Byte dữ liệu tiếp theo.
SPI có 4 mode hoạt động, phụ thuộc vào cực tính và pha của xung đồng hồ. Trong
trường hợp cực âm của xung đồng hồ, tín hiệu SCK sẽ ở mức thấp trong quá trình nghỉ
và chuyển sang mức cao trong quá trình truyền dữ liệu. Ngược lại, đối với trường hợp
cực dương của xung đồng hồ, tín hiệu SCK ở mức cao trong quá trình nghỉ và chuyển
sang mức thấp khi truyền dữ liệu: SPI Mode CPOL CPHS 0 0 0 1 0 1 2 1 0 3 1 1
Bảng 2: Các chế độ truyền thông trong giao thức SPI SPI Mode 0:
Mô tả: Xung dương, dữ liệu được chốt trước khi dịch Giản đồ thời gian: lOMoAR cPSD| 58728417
Hình 4: Giản đồ thời gian của SPI ở Mode 0 SPI Mode 1:
Mô tả: Xung dương, dữ liệu được dịch đi trước khi chốt Giản đồ thời gian:
Hình 5: Giản đồ thời gian của SPI ở Mode 1 SPI Mode 2:
Mô tả: Xung âm, dữ liệu được chốt lại trước khi dịch Giản đồ thời gian:
Hình 6: Giản đồ thời gian của SPI ở Mode 2 SPI Mode 3: lOMoAR cPSD| 58728417
Mô tả: Xung âm, dữ liệu bị dịch đi trước khi chốt lại Giản đồ thời gian:
Hình 7: Giản đồ thời gian của SPI ở Mode 3
2.2.3. Các kiểu kết nối SPI
a. Kết nối điểm – điểm ( point-to-point )
Đây là kiểu kết nối cơ bản nhất của giao thức SPI là một master kết nối với một slave.
Hình 8: Kết nối point-to-point, một master nối với một slave
Cả Master và Slave đều có thanh ghi dịch nối tiếp (thanh ghi dữ liệu 8 bits) ở bên
trong. Thiết bị Master bắt đầu việc trao đổi dữ liệu bằng cách truyền đi một bit vào thanh
ghi dịch của nó, sau đó bit dữ liệu sẽ được đưa sang Slave theo đường tín hiệu MOSI
(SDI), Slave sẽ truyền dữ liệu nằm trong thanh ghi dịch của chính nó ngược trở về Master
thông qua đường tín hiệu MISO (SDO). Bằng cách này, dữ liệu của hai thanh ghi sẽ được
trao đổi với nhau. Việc đọc và ghi dữ liệu vào Slave diễn ra cùng một lúc nên tốc độ trao
đổi dữ liệu diễn ra rất nhanh. Do đó, giao thức SPI là một giao thức rất có hiệu quả.
Trong kiểu kết nối này, chỉ có thiết bị Master mới có thể điều khiển (phát ra) xung
SCK. Dữ liệu sẽ không được truyền đi nếu như Master không cung cấp xung SCK và tất
cả các thiết bị Slave đều được điều khiển bởi xung nhịp phát ra từ Master trong khi đó,
Slave lại không có khả năng phát xung. lOMoAR cPSD| 58728417
b. Kết nối Multi-slave
Kết nối nhiều slave độc lập (Independent slaves) hay kết nối song song:
Trong cách kết nối này, tín hiệu SCK và SDO từ Master được cung cấp đến từng
Slave. Đường tín hiệu SDO của các Slave nối chung lại với nhau và truyền về Master.
Lúc này, Master sẽ lựa chọn Slave nào để trao đổi dữ liệu thông qua các chân SS riêng lẻ.
Hình 9: Kết nối nhiều slave song song
c. Kết nối nối tiếp hay kết nối Daisy-Chained
Trong kết nối này, chân SS và SCK của master nối song song đến tất cả các slave.
Chân SDO của slave trước nối đến SDI của slave sau. Chân MOSI của master nối đến
SDI của slave đầu tiên trong chuỗi và MISO được nối đến SDO của slave cuối cùng trong chuỗi.
Việc truyền dữ liệu từ master đến các slave và dữ liệu master nhận từ slave cuối cùng
được minh họa với các slave như sau: lOMoAR cPSD| 58728417
Hình 10: Kết nối nối tiếp (Daisy-Chained)
d. Kết nối Multi-master
Kết nối nhiều master độc lập (Independent masters hay Multi-master). Đối với kiểu
kết nối này có nhiều cách kết nối và nhiều vấn đề hơn. e. Kết nối nhiều master song
song đến một slave
Với cách kết nối này, phần cứng ngoại vi phải hỗ trợ thêm các tín hiệu điều khiển
khác để tránh xung đột khi hai master cùng truy xuất đến slave. Ví dụ một trong các cách
hỗ trợ multi-master như trong hình sau:
Hình 11: Kết nối hai master song song đến một slave
Giải pháp ở đây là ngoài các tín hiệu SPI thông thường, phần cứng của hai master
SPI hỗ trợ thêm tín hiệu SS_IN để master này biết master kia có đang chọn slave hay
không. Đồng thời tín hiệu SS nối đến slave được mắc qua một cổng XNOR để nếu hai
master cùng chọn thì tín hiệu SS của slave vẫn không tích cực. Bên cạnh đó, trong mạch
trên, ngoài TXD (chính là tín hiệu MOSI) thì đường SCK cũng phải Hi-Z khi master không chọn slave.
f. Kết nối hai master với nhau
Đây là một dạng khác của multi-master. Trong đó hai master nối trực tiếp với nhau, giao tiếp qua 5 đường. lOMoAR cPSD| 58728417
Hình 12: Kết nối hai master với nhau lOMoAR cPSD| 58728417
CHƯƠNG 3: THIẾT KẾ
3.1. Sơ đồ khối thiết kế
3.1.1. Mô hình giao tiếp SPI
Serial Peripheral Interface (SPI) là một liên kết dữ liệu nối tiếp, đồng bộ, song công,
là liên kết tiêu chuẩn trên nhiều bộ vi xử lý, vi điều khiển và thiết bị ngoại vi. Nó cho
phép giao tiếp giữa bộ vi xử lý và thiết bị ngoại vi và giao tiếp giữa các bộ xử lý. Hệ
thống SPI đủ linh hoạt để giao tiếp trực tiếp với nhiều thiết bị ngoại vi có sẵn trên thị trường
Thiết kế SPI Master đã được thực hiện trong CoolRunner-II CPLD. Thiết kế
CoolRunner-II SPI Master có thể được sử dụng để cung cấp bộ điều khiển SPI cho các
bộ vi điều khiển hoặc bộ vi xử lý không chứa giao diện SPI. Sơ đồ khối mức cao được
thể hiện trong “Hình 13” Giao diện vi điều khiển (microcontroller) được chọn trong triển
khai SPI Master này dựa trên chu kỳ bus vi điều khiển 8051 phổ biến, nhưng có thể dễ
dàng sửa đổi thành các giao diện vi điều khiển khác
Hình 13: CoolRunner-II SPI Master
3.1.2. Sơ đồ khối thiết mạch giao tiếp SPI
Sơ đồ khối của CoolRunner-II CPLD SPI Master, thể hiện trong “Hình 14” được chia
thành hai khối chính, giao diện vi điều khiển và giao diện SPI. lOMoAR cPSD| 58728417
Hình 14: SPI Master Block Diagram
3.1.3. Sơ đồ SCK Clock Logic
Quá trình này tạo ra đầu ra SCK dựa trên cài đặt CLKDIV, CPHA và CPOL trong
thanh ghi điều khiển SPI. Tần số xung nhịp của tín hiệu SCK được xác định bằng cách
chia nhỏ xung nhịp đầu vào dựa trên các mục trong thanh ghi điều khiển. Tín hiệu,
SCK_INT là SCK bên trong được sử dụng để đồng bộ dữ liệu nối tiếp ra khỏi thiết bị và
được tạo ra liên tục. Máy trạng thái SPI Control được đồng bộ hóa với tín hiệu nội bộ
này. Tín hiệu SCK_1 đại diện cho SCK khi CPHA = 1 và tín hiệu SCK_0 đại diện cho
SCK khi CPHA = 0. Máy trạng thái điều khiển SPI tạo mặt nạ cho các xung này
(CLK0_MASK, CLK1_MASK) để SCK đầu ra có mối quan hệ pha chính xác với dữ
liệu và được giữ ở trạng thái không hoạt động khi không có dữ liệu được chuyển.
Biểu diễn logic cần thiết để tạo đầu ra tín hiệu SCK tới bus SPI được thể hiện trong “Hình 15”.