Lab Ứng dụng FPGA với giao thức I2C thu thập và giám sát môi trường – Đồ án của sinh viên FPT Jetking

Lab Ứng dụng FPGA với giao thức I2C thu thập và giám sát môi trường – Đồ án của sinh viên FPT Jetking

Trong học kỳ 2 của môn học Steps to Chip Design, bốn sinh viên Nguyễn Trung Tín, Nguyễn Hồng Ngọc, Trần Thông Triết và Nguyễn An Phú đã thực hiện đồ án Lab mang tên “Ứng dụng FPGA với giao thức I2C thu thập và giám sát môi trường”. Đây là một sản phẩm thuộc loại Lab môn học, được triển khai nhằm củng cố kiến thức lý thuyết và rèn luyện kỹ năng thiết kế – mô phỏng mạch số trên FPGA.

Lý do chọn đề tài

Giao thức I2C được nhóm lựa chọn vì đây là chuẩn truyền thông nối tiếp đồng bộ phổ biến, chỉ cần hai đường tín hiệu SCL và SDA để kết nối và truyền dữ liệu. Ưu điểm của giao thức này là đơn giản, tiết kiệm chân kết nối, đồng thời cho phép nhiều thiết bị master và slave cùng hoạt động trên một bus. Nhờ đó, I2C có tính ứng dụng rất cao trong các hệ thống nhúng, thiết bị điện tử nhỏ gọn, mạng cảm biến IoT và nhiều ứng dụng thực tiễn khác. Việc thực hiện Lab với I2C không chỉ giúp sinh viên hiểu sâu hơn về nguyên lý hoạt động mà còn là bước nền tảng để tiếp cận các hệ thống phức tạp hơn.

Nhóm sinh viên đặt ra mục tiêu nắm vững nguyên lý truyền thông của giao thức I2C, từ cấu trúc địa chỉ, bit xác định thao tác đọc – ghi cho đến quá trình truyền dữ liệu. Trên cơ sở đó, nhóm thiết kế sơ đồ mạch, xây dựng lưu đồ hoạt động, viết mã Verilog, mô phỏng trên phần mềm Vivado và cuối cùng là đánh giá trực tiếp trên board FPGA. Ngoài ra, dự án còn giúp rèn luyện kỹ năng ứng dụng giao thức I2C trong thực tế, như giao tiếp với cảm biến, bộ nhớ hay các thiết bị ngoại vi.

Quy trình triển khai đồ án

Nhóm đã bắt đầu từ khâu thiết kế sơ đồ khối và xây dựng lưu đồ thuật toán chi tiết cho mã Verilog. Các tín hiệu chính như SCL và SDA được mô tả rõ chức năng để đảm bảo bám sát nguyên lý thực tế. Sau đó, nhóm biểu diễn lưu đồ FSM mô tả trạng thái và quá trình chuyển đổi khi hoạt động ở tốc độ 100kHz. Tiếp theo, sản phẩm được mô phỏng quá trình master truyền và đọc dữ liệu, sau đó đánh giá trực tiếp trên board FPGA để kiểm chứng tính chính xác và độ ổn định.

Lab Ứng dụng FPGA với giao thức I2C thu thập và giám sát môi trường – Đồ án của sinh viên FPT Jetking
Lab Ứng dụng FPGA với giao thức I2C thu thập và giám sát môi trường – Đồ án của sinh viên FPT Jetking
Flowchart mô tả quá trình hoạt động giao thức I2C
Flowchart mô tả quá trình hoạt động giao thức I2C
Tín hiệu Hướng truyền Chức năng
SCL Master truyền đến slave Serial Clock – xung đồng hồ do Master tạo, đồng bộ dữ liệu trên SDA
SDA Cả 2 hướng Serial Data – đường dữ liệu theo hai chiều, truyền bit theo SCL

Bảng chú thích về hướng truyền và chức năng

Sơ đồ FSM I2C hoạt động ở tốc độ 100kHz
Sơ đồ FSM I2C hoạt động ở tốc độ 100kHz
Mô phỏng quá trình master truyền dữ liệu đi
Mô phỏng quá trình master truyền dữ liệu đi
Mô phỏng quá trình master đọc dữ liệu về
Mô phỏng quá trình master đọc dữ liệu về
Đánh giá trên board FPGA
Đánh giá trên board FPGA

Khó khăn lớn nhất mà nhóm gặp phải là việc bố trí dây dẫn để mạch vừa hoạt động đúng, vừa gọn gàng, dễ kiểm tra. Nhóm đã giải quyết bằng cách sắp xếp ngõ vào hợp lý và tận dụng đường dây dùng chung nhằm giảm độ phức tạp. Trong quá trình lắp mạch, nhóm từng để hai dây dẫn chạm nhau gây lỗi, tuy nhiên sự cố này giúp rút ra bài học quan trọng: luôn cần sự cẩn thận và tỉ mỉ trong từng chi tiết nhỏ.

Điểm đặc biệt của sản phẩm

Sản phẩm Lab này không chỉ dừng ở mức mô phỏng mà còn được kiểm chứng trực tiếp trên phần cứng, nhờ đó mang lại tính thực tiễn cao. Đây là bước khởi đầu quan trọng giúp sinh viên nắm chắc kiến thức nền tảng về giao thức I2C, cách viết mã, mô phỏng và đánh giá mạch số. Đồng thời, sản phẩm có thể làm cơ sở cho những nghiên cứu sâu hơn trong lĩnh vực hệ thống nhúng, IoT và thiết kế FPGA.

Thông qua dự án, nhóm đã củng cố kiến thức lý thuyết và phát triển kỹ năng thực hành, từ thiết kế sơ đồ khối, lập trình Verilog đến tư duy mô phỏng mạch số. Đây là trải nghiệm quý báu giúp các thành viên tự tin hơn khi tiếp cận những bài toán thiết kế vi mạch phức tạp trong tương lai.

Nguyễn Trung Tín chia sẻ rằng bản thân cảm thấy rất vui khi hoàn thành được chủ đề này dù còn nhiều thiếu sót. Nguyễn Hồng Ngọc cho rằng quá trình thực hiện đã giúp rèn luyện thêm nhiều kỹ năng và mang lại trải nghiệm đáng nhớ. Trần Thông Triết nhận định rằng sự kiên trì là yếu tố giúp đạt kết quả tốt hơn. Nguyễn An Phú thì nhấn mạnh bài Lab này giúp hiểu rõ giá trị của sự cố gắng và mong muốn nhận được góp ý để tiến bộ hơn.

Theo nhận xét của giảng viên, mạch hoạt động đúng yêu cầu và báo cáo được trình bày rõ ràng, logic, dễ theo dõi. Sinh viên đã đạt các chuẩn đầu ra quan trọng của bài Lab như vẽ sơ đồ khối, thiết kế và mô phỏng mạch số bằng Verilog HDL. Bên cạnh ưu điểm, nhóm vẫn cần tối ưu tốc độ phản hồi và hoàn thiện thêm phần giao diện giám sát. Tuy nhiên, nhìn chung sản phẩm thể hiện sự nghiêm túc trong học tập và tinh thần làm việc nhóm hiệu quả.

Lab “Ứng dụng FPGA với giao thức I2C thu thập và giám sát môi trường” không chỉ là một bài tập trong môn học mà còn là minh chứng cho khả năng vận dụng kiến thức của sinh viên FPT Jetking. Với sự đầu tư nghiêm túc, sản phẩm góp phần xây dựng nền tảng kiến thức vững chắc cho các bạn trẻ trên con đường trở thành kỹ sư thiết kế vi mạch và hệ thống nhúng trong tương lai.

Giảng viên Nguyễn Văn Thành Lộc