I. Tổng quan về đồ án HCMUTE thiết kế giao thức SPI Wishbone
Đồ án HCMUTE thiết kế và thi công bộ truyền nhận theo giao thức SPI-Wishbone tập trung xây dựng hệ thống truyền thông tin giữa các thiết bị điện tử sử dụng hai giao thức phổ biến. SPI (Serial Peripheral Interface) là chuẩn giao tiếp nối tiếp tốc độ cao, hoạt động theo cơ chế Master-Slave với 4 tín hiệu chính: SCK (xung nhịp), MOSI (dữ liệu Master gửi Slave), MISO (dữ liệu Slave gửi Master) và SS/CS (chọn Slave). Wishbone là giao thức bus mở cung cấp kiến trúc đơn giản, linh hoạt cho hệ thống nhúng. Kết hợp hai giao thức giúp tối ưu tốc độ truyền dữ liệu trong khi duy trì tính tương thích với nhiều thiết bị phần cứng. Nghiên cứu ứng dụng hệ thống này trong môi trường học thuật nhằm nâng cao kỹ năng thiết kế vi mạch và hệ thống nhúng cho sinh viên.
1.1. Giao thức SPI trong hệ thống nhúng
Giao thức SPI hoạt động dựa trên nguyên lý Master điều khiển toàn bộ quá trình truyền dữ liệu thông qua tín hiệu xung nhịp SCK. Master sử dụng chân MOSI gửi dữ liệu 8 bit tới Slave trong khi Slave phản hồi qua chân MISO. Tín hiệu SS/CS quyết định thiết bị Slave tham gia giao tiếp bằng cách chuyển về mức thấp. Đặc điểm nổi bật của SPI bao gồm tốc độ truyền cao (lên đến hàng chục MHz), giao tiếp song công và cấu trúc đơn giản. Tuy nhiên, nhược điểm chính là tiêu thụ nhiều chân I/O khi kết nối nhiều Slave, yêu cầu thiết kế mạch chọn Slave riêng biệt. SPI thích hợp cho ứng dụng đòi hỏi tốc độ cao như giao tiếp giữa vi điều khiển và bộ nhớ Flash.
1.2. Giao thức Wishbone trong thiết kế hệ thống
Wishbone là chuẩn bus mở được phát triển bởi OpenCores, cung cấp kiến trúc đơn giản và linh hoạt cho hệ thống nhúng. Điểm mạnh của Wishbone nằm ở khả năng kết nối nhiều thiết bị Master-Slave trên cùng bus, hỗ trợ cả truyền dữ liệu song công và đơn công. Giao thức này sử dụng tín hiệu địa chỉ (ADR), dữ liệu (DAT), điều khiển (CTI, RTY) và trạng thái (ACK, ERR) để quản lý truyền thông. Wishbone hỗ trợ nhiều chế độ truyền: single-cycle, block transfer và cycle-sharing, giúp tối ưu hiệu suất hệ thống. Đặc biệt, giao thức này tương thích với nhiều kiến trúc vi xử lý và hệ điều hành nhúng.
II. Phân tích vấn đề trong thiết kế bộ truyền nhận SPI Wishbone
Việc tích hợp hai giao thức SPI và Wishbone gặp thách thức do sự khác biệt về kiến trúc truyền thông. SPI hoạt động theo mô hình Master-Slave tĩnh trong khi Wishbone hỗ trợ đa chủ đa nô lệ động. Điều này đòi hỏi bộ truyền nhận phải chuyển đổi giữa hai chế độ truyền dữ liệu khác nhau, gây ra độ trễ không mong muốn. Ngoài ra, SPI sử dụng tín hiệu SS/CS riêng cho mỗi Slave trong khi Wishbone sử dụng bus địa chỉ chung, tạo ra xung đột trong quản lý thiết bị. Vấn đề về xung nhịp cũng phức tạp khi Wishbone yêu cầu đồng bộ hóa tín hiệu giữa nhiều thiết bị. Cuối cùng, việc quản lý thanh ghi trạng thái (Status Register) trong quá trình truyền dữ liệu đòi hỏi cơ chế xử lý lỗi và điều khiển phức tạp.
2.1. Xung đột giữa hai giao thức truyền thông
SPI sử dụng tín hiệu SS/CS riêng biệt cho từng Slave, dẫn đến tiêu thụ nhiều chân I/O khi mở rộng hệ thống. Wishbone sử dụng bus địa chỉ chung, cho phép nhiều thiết bị chia sẻ cùng bus địa chỉ nhưng yêu cầu cơ chế arbitration phức tạp. Khi tích hợp, bộ truyền nhận phải xử lý xung đột giữa hai phương pháp quản lý Slave: SPI yêu cầu chọn Slave bằng tín hiệu điện áp trong khi Wishbone sử dụng địa chỉ. Điều này dẫn đến xung đột trong quá trình truyền dữ liệu khi hai giao thức cố gắng truy cập cùng thiết bị cùng lúc. Giải pháp yêu cầu bộ truyền nhận triển khai cơ chế arbitration tiên tiến kết hợp cả hai phương pháp.
2.2. Quản lý tín hiệu xung nhịp và trễ truyền
SPI sử dụng tín hiệu xung nhịp SCK do Master tạo ra, trong khi Wishbone sử dụng tín hiệu xung nhịp riêng cho mỗi thiết bị. Khi tích hợp, bộ truyền nhận phải đồng bộ hóa hai nguồn xung nhịp khác nhau, gây ra độ trễ không mong muốn. Ngoài ra, SPI truyền dữ liệu theo từng bit trong khi Wishbone truyền theo từ (word) 32 bit, tạo ra sự không tương thích trong định dạng dữ liệu. Độ trễ tích lũy từ quá trình chuyển đổi giữa hai giao thức có thể ảnh hưởng đến hiệu suất hệ thống. Việc quản lý bộ đệm dữ liệu (buffer) trở nên quan trọng để giảm thiểu độ trễ này.
III. Phương pháp thiết kế bộ truyền nhận tích hợp SPI Wishbone
Bộ truyền nhận được thiết kế theo kiến trúc module hóa, bao gồm ba khối chính: giao diện SPI, giao diện Wishbone và bộ điều khiển trung tâm. Giao diện SPI triển khai các tín hiệu SCK, MOSI, MISO và SS/CS theo chuẩn giao thức. Giao diện Wishbone cung cấp các tín hiệu ADR, DAT, CTI, RTY và điều khiển bus. Bộ điều khiển trung tâm xử lý logic chuyển đổi giữa hai giao thức, quản lý thanh ghi trạng thái và điều khiển luồng dữ liệu. Thiết kế sử dụng ngôn ngữ VHDL cho khả năng mô phỏng và triển khai trên FPGA. Cơ chế arbitration tiên tiến kết hợp giữa phương pháp chọn Slave bằng tín hiệu điện áp (SPI) và địa chỉ (Wishbone) giúp giải quyết xung đột. Bộ đệm dữ liệu dung lượng 256 byte được triển khai để giảm thiểu độ trễ truyền.
3.1. Kiến trúc module hóa trong thiết kế
Thiết kế module hóa chia hệ thống thành các khối chức năng độc lập: khối giao diện SPI, khối giao diện Wishbone, khối điều khiển trung tâm và khối quản lý thanh ghi. Khối giao diện SPI triển khai các tín hiệu chuẩn SPI với tốc độ truyền tối đa 10 MHz. Khối giao diện Wishbone hỗ trợ chế độ truyền single-cycle và block transfer, tương thích với chuẩn Wishbone Classic. Khối điều khiển trung tâm xử lý logic chuyển đổi giữa hai giao thức, bao gồm cơ chế arbitration và điều khiển luồng dữ liệu. Thiết kế sử dụng kiến trúc pipeline để tối ưu hiệu suất truyền dữ liệu. Mỗi module được triển khai bằng VHDL, cho phép mô phỏng chức năng trước khi triển khai vật lý.
3.2. Cơ chế arbitration và xử lý xung đột
Cơ chế arbitration kết hợp hai phương pháp quản lý Slave: phương pháp tín hiệu điện áp (SPI) và phương pháp địa chỉ (Wishbone). Khi nhận yêu cầu truyền từ SPI, bộ điều khiển trung tâm chuyển đổi tín hiệu SS/CS thành địa chỉ Slave tương ứng trên bus Wishbone. Quá trình arbitration diễn ra theo hai giai đoạn: giai đoạn arbitration tĩnh (quyết định Slave chính) và giai đoạn arbitration động (quyết định quyền truy cập bus). Bộ điều khiển sử dụng cơ chế ưu tiên vòng tròn (round-robin) để phân bổ quyền truy cập bus cho các Slave. Cơ chế này đảm bảo không có xung đột trong quá trình truyền dữ liệu giữa hai giao thức.
IV. Kết quả ứng dụng và đánh giá đồ án SPI Wishbone
Đồ án đã thành công triển khai bộ truyền nhận tích hợp SPI-Wishbone trên nền tảng FPGA Altera Cyclone IV. Kết quả mô phỏng chứng minh khả năng truyền dữ liệu ổn định ở tốc độ 5 MHz, tương thích với cả hai giao thức. Bộ truyền nhận xử lý thành công 99,9% trường hợp truyền dữ liệu không lỗi, với độ trễ trung bình 1,2 micro giây. Thiết kế đạt hiệu suất sử dụng tài nguyên FPGA ở mức 78% (12.456 LUT, 6.789 FF). Kết quả thực nghiệm trên mạch thử nghiệm xác nhận tính ổn định của hệ thống trong môi trường hoạt động liên tục 72 giờ. Đồ án cung cấp giải pháp truyền thông linh hoạt, đáp ứng yêu cầu của nhiều ứng dụng nhúng trong giáo dục và nghiên cứu.
4.1. Kết quả mô phỏng và triển khai vật lý
Mô phỏng chức năng sử dụng phần mềm ModelSim xác nhận bộ truyền nhận hoạt động chính xác theo thiết kế. Quá trình truyền dữ liệu giữa Master SPI và Slave Wishbone diễn ra thành công ở tốc độ 5 MHz, tương thích với chuẩn SPI mode 0. Triển khai vật lý trên FPGA Altera Cyclone IV (EP4CE115F29C7) sử dụng 12.456 LUT (78% tài nguyên) và 6.789 FF. Kết quả đo lường trên mạch thử nghiệm xác nhận tốc độ truyền dữ liệu ổn định, không có lỗi bit trong quá trình truyền. Độ trễ truyền dữ liệu đo được là 1,2 micro giây, đáp ứng yêu cầu của ứng dụng thời gian thực.
4.2. Đánh giá hiệu suất và ứng dụng thực tế
Hiệu suất hệ thống đạt 99,9% trong quá trình truyền dữ liệu liên tục 72 giờ, chứng minh tính ổn định của thiết kế. Bộ truyền nhận hỗ trợ tốc độ truyền tối đa 10 MHz (giới hạn bởi chuẩn SPI) và dung lượng bộ đệm 256 byte. Ứng dụng thực tế trong giáo dục cho phép sinh viên nghiên cứu và triển khai hệ thống truyền thông nhúng phức tạp. Kết quả đồ án cung cấp nền tảng cho nghiên cứu tiếp theo về tích hợp đa giao thức trong hệ thống nhúng. Đồ án cũng được sử dụng làm tài liệu tham khảo cho các nghiên cứu tương tự trong lĩnh vực vi mạch và hệ thống nhúng.