Báo cáo đồ án: Thiết kế hệ thống phân loại sản phẩm theo màu dùng FPGA

Báo cáo đồ án thiết kế hệ thống phân loại sản phẩm theo màu. Tài liệu trình bày chi tiết kiến trúc, nguyên lý và mô phỏng hệ thống sử dụng FPGA.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2024

75
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về FPGA và ứng dụng trong phân loại sản phẩm

FPGA (Field Programmable Gate Array) là một mạch tích hợp có tính năng lập trình cao, cho phép người dùng tái cấu hình và tái lập trình mà không cần can thiệp phần cứng. Thiết kế hệ thống phân loại sản phẩm theo màu bằng FPGA là một ứng dụng thực tiễn trong ngành công nghiệp tự động hóa. FPGA có khả năng xử lý tín hiệu số nhanh chóng, hỗ trợ nhiều giao thức truyền thông như I2C và PWM, giúp tích hợp các cảm biến màu một cách hiệu quả. Với độ linh hoạt cao, FPGA cho phép thay đổi thuật toán phân loại mà không cần thiết kế lại chip chuyên biệt. Đây là giải pháp tối ưu cho các hệ thống kiểm tra chất lượng sản phẩm tự động, nâng cao hiệu suất sản xuất và độ chính xác phân loại.

1.1. Kiến trúc và nguyên lý hoạt động của FPGA

FPGA được cấu thành từ các thành phần chính: Logic Blocks (CLB) chứa LUT, MUX, Flip Flop; Interconnects - mạng kết nối có lập trình; I/O blocks - khối vào/ra; BRAM - bộ nhớ truy cập ngẫu nhiên. Nguyên lý hoạt động dựa trên việc cấu hình các khối logic logic này theo nhu cầu. Người dùng viết mã Verilog hoặc VHDL để lập trình, sau đó biên dịch thành tệp cấu hình được nạp vào FPGA. Nhờ đó, FPGA có thể thực hiện nhiều chức năng khác nhau, từ xử lý tín hiệu đến điều khiển các thiết bị ngoại vi trong hệ thống phân loại.

1.2. Ứng dụng FPGA trong công nghiệp tự động hóa

FPGA được ứng dụng rộng rãi trong xử lý tín hiệu số, hệ thống nhúng và điều khiển công nghiệp. Trong thiết kế hệ thống phân loại sản phẩm theo màu, FPGA xử lý dữ liệu từ cảm biến TCS3200, so sánh giá trị RGB với tiêu chuẩn, sau đó điều khiển các bộ chuyển hướng sản phẩm. FPGA cũng hỗ trợ mã hóa dữ liệu, bảo mật thông tin sản xuất. Tính linh hoạt của FPGA cho phép cập nhật tiêu chuẩn phân loại mà không cần dừng dây chuyền sản xuất.

II. Kit phát triển FPGA Tang Nano 9K và cảm biến TCS3200

Kit FPGA Tang Nano 9K được phát triển bởi Sipeed, là nền tảng phát triển lý tưởng cho hệ thống phân loại sản phẩm theo màu. Kit hỗ trợ các kết nối thông dụng như HDMI, màn hình RGB, màn hình SPI, giúp kết nối các cảm biến và màn hình hiển thị dễ dàng. Tang Nano 9K có 8640 LUT4 và 6480 thanh ghi, cung cấp đủ tài nguyên logic để triển khai các module phức tạp. Cảm biến TCS3200 là cảm biến màu quang học, có khả năng phát hiện chính xác giá trị RGB của sản phẩm. Cảm biến này giao tiếp với FPGA qua giao thức I2C hoặc PWM, cho phép đọc dữ liệu màu theo thời gian thực.

2.1. Thông số kỹ thuật Tang Nano 9K

Tang Nano 9K tích hợp chip FPGA với 8640 Logic Units (LUT4), 6480 thanh ghi (FF), bộ nhớ BRAM, PLL để tạo xung nhịp. Kit cung cấp giao diện USB để lập trình, hỗ trợ nhiều công cụ phát triển như EDA Suite. Điện áp hoạt động từ 3.3V, tiêu thụ điện năng thấp, phù hợp cho ứng dụng di động. Tang Nano 9K còn có các chân GPIO linh hoạt để kết nối cảm biến, motor, màn hình LCD/OLED.

2.2. Cảm biến TCS3200 và nguyên lý phát hiện màu

Cảm biến TCS3200 sử dụng 16 quang điện tử (photodiode) được sắp xếp thành bốn nhóm: đỏ, xanh lục, xanh dương và không lọc. Cảm biến phát ra tín hiệu PWM với tần số tỉ lệ với cường độ ánh sáng. FPGA đọc chu kỳ PWM để tính giá trị RGB. Điểm mạnh của TCS3200 là độ chính xác cao, khả năng phân biệt các sắc thái màu khác nhau, giúp hệ thống phân loại hoạt động với độ tin cậy cao.

III. Giao thức I2C và PWM trong hệ thống

Giao thức I2C (Inter-Integrated Circuit) là giao thức truyền thông nối tiếp hai dây (SDA, SCL), cho phép nhiều thiết bị ngoại vi kết nối với FPGA. I2C sử dụng địa chỉ 7-bit hoặc 10-bit, hỗ trợ tốc độ 100kHz, 400kHz hoặc 1MHz. Điều chế độ rộng xung (PWM) là kỹ thuật điều chỉnh độ rộng xung với tần số cố định, tỉ lệ giữa thời gian xung cao và chu kỳ gọi là duty cycle. Trong thiết kế hệ thống phân loại sản phẩm theo màu, I2C dùng để giao tiếp với LCD hiển thị kết quả, PWM điều khiển motor hoạt động các cơ cấu quay hướng sản phẩm. Cảm biến TCS3200 cũng trả về dữ liệu dưới dạng PWM mà FPGA cần xử lý.

3.1. Giao thức I2C và ứng dụng với LCD

I2C cho phép FPGA giao tiếp với module LCD 16x2 hoặc OLED qua chỉ hai dây. FPGA gửi lệnh và dữ liệu để hiển thị kết quả phân loại, trạng thái sản xuất. Tốc độ truyền thấp nhưng đủ cho ứng dụng hiển thị. Ưu điểm của I2C là tiết kiệm chân GPIO trên FPGA, cho phép mở rộng nhiều cảm biến khác nhau. Cầu kỳ hơn là cần pull-up resistor và xử lý collision nếu nhiều master.

3.2. PWM điều khiển motor và xử lý dữ liệu cảm biến

PWM được sử dụng để điều chỉnh tốc độ motor DC hoặc servo, điều khiển độ sáng LED. FPGA phát tín hiệu PWM với duty cycle thay đổi để điều khiển hướng sản phẩm. Từ cảm biến TCS3200, FPGA đo tần số PWM bằng cách đếm số xung cao trong khoảng thời gian cố định, từ đó tính ra giá trị R, G, B. Việc xử lý PWM yêu cầu FPGA chạy ở tần số cao đủ để có độ phân giải tốt.

IV. Thiết kế và mô phỏng hệ thống phân loại

Thiết kế hệ thống phân loại sản phẩm theo màu bao gồm ba phần chính: phần cảm biến (TCS3200), phần xử lý (FPGA Tang Nano 9K), phần thực thi (motor, solenoid). Quy trình hoạt động: sản phẩm đi qua cảm biến, TCS3200 phát ra tín hiệu PWM, FPGA đo và so sánh với mẫu màu chuẩn lưu trữ trong bộ nhớ. Dựa vào kết quả, FPGA phát PWM để điều khiển motor quay sản phẩm vào ngăn tương ứng. Mô phỏng hệ thống được thực hiện trên phần mềm simulation HDL, kiểm tra logic trước khi nạp vào FPGA thực. Module giao tiếp LCD cho phép hiển thị giá trị RGB, loại màu phân loại, số lượng sản phẩm mỗi loại.

4.1. Kiến trúc tổng thể hệ thống

Hệ thống gồm: Cảm biến TCS3200 (input), FPGA Tang Nano 9K (bộ xử lý trung tâm), Motor DC với driver (output), LCD 16x2 (hiển thị qua I2C). Dữ liệu từ TCS3200 qua PWM được FPGA số hóa, so sánh với ngưỡng màu trong ROM, ra quyết định chuyển hướng. FPGA điều khiển PWM cho motor, ghi log kết quả vào RAM, hiển thị trên LCD. Kiến trúc này cho phép dễ mở rộng thêm cảm biến hoặc tính năng khác.

4.2. Module giao tiếp LCD và xử lý dữ liệu

Module giao tiếp LCD được lập trình bằng Verilog, thực hiện việc gửi lệnh khởi tạo (initialize), viết dữ liệu lên LCD qua I2C. Hàm lcd_write_cmd_data gửi byte lệnh hoặc dữ liệu theo giao thức I2C, kèm bit start, stop, acknowledge. FPGA xử lý dữ liệu từ TCS3200, tính giá trị RGB trung bình, so sánh với bảng màu được cấu hình sẵn. Kết quả được hiển thị theo dạng tên màu (Đỏ, Xanh, Vàng...) trên LCD, cho phép người vận hành theo dõi hệ thống.

28/12/2025

Trích đoạn nội dung tài liệu

Chương 1: Tổng quan về FPGA và các chuẩn giao tiếp I2C và PWM. - Chương 2: Thiết kế và mô phỏng hệ thống phân loại sản phẩm theo màu. - Chương 3: Tích hợp, thực nghiệm và đánh giá hệ thống. 6 FPGA có tính linh hoạt cao, dễ tùy chỉnh, lập trình theo yêu cầu của người dùng do vậy FPGA được úng dụng trong rất nhiều lĩnh vực.

- Xử lý tín hiệu số: - Hệ thống nhúng, điều khiển công nghiệp: - Bảo mật, mã hóa dữ liệu: 1. Các thiết bị sử dụng trong hệ thống 1. Kit phát triển FPGA Tang Nano 9K Hình 1. Kit phát triển FPGA Tang Nano 9K Kit FPGA Tang Nano 9K được phát triển bởi Sipeed dựa trên nền tảng là chip FPGA.

Kit hỗ trợ một số kết nối thông dụng như HDMI, màn hình RGB, màn hình dao diện SPI. Một số khối chức năng tích hợp trên Kit phát triển Tang Nano 9k Một số thông tin, thông số của các thiết bị tích hợp trên Tang Nano 9k [2] Thiết bị Giá trị Logic units (LUT4) 8640 Thanh ghi (FF) 6480 10 - DSP (Digital Signal Processing): khối xử lý tín hiệu số. Nguyên lý hoạt động của FPGA Giả sử người dùng nạp vào mạch một ngôn ngữ mô tả phần cứng (HDL) (Verilog, VHDL, Chisel, v.), sẽ có một tập tin chứa toàn bộ các thông tin về cách lập trình các khối logic, đường kết nối qua interconects, kiểm soát tài nguyên dữ liệu trong FPGA (gọi là tập tin ‘Bitstream’). Tập tin Bitstream này có thể được nạp từ máy tính qua JTAG hoặc USB vào công cụ mạch FPGA (hình minh họa ở dưới).

Kết nối mạch Tang Nano 9K chứa chip FPGA GOWIN GW1NR – LV9 sử dụng USB type C Sau khi file bitstream được nạp vào trong chip, file sẽ đi qua bộ điều khiển cấu hình. Tại bộ điều khiển cấu hình file bitstream sẽ được giải mã và nạp vào trong các thành phần cấu hình của FPGA. Các đường kết nối (Interconnects) sẽ được định tuyến để thực hiện các kết nối Logic, các bộ nhớ được cấu hình để sẵn sàng hoạt động. Sau khi hoàn tất quá trình cấu hình của FPGA, các khối logic (CLB – Configurable Logic Block) sẽ hoạt động theo yêu cầu của người dùng.

Như đã đề cập ở trên, trong một CLB bao gồm LUT, FF, MUX, Interconnects. Cần lưu ý rằng mỗi CLB hoạt động dựa vào xung clock và dữ liệu đầu vào. Trước hết các LUTs sẽ thực hiện các phép tính logic trong CLB. FF được sử dụng để lưu trạng thái kết quả đầu ra của LUT.

MUX sẽ được sử dụng để lựa chọn dữ liệu cần thiết cho đầu ra. Các Interconnects sẽ đảm bảo việc kết nối, truyền tín hiệu giữa các CLB hoặc tới các phần khác trong FPGA. Các ứng dụng của FPGA 9 2. Hàm lcd_display.

Module chuyển đổi ASCII. Xây dựng module giao tiếp với TCS3200. Module TCS3200_Reader. Các Module hỗ trợ.

Xây dựng module giao tiếp với Servo MG90S.33 CHƯƠNG 3: TÍCH HỢP, THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG. Tích hợp và triển khai hệ thống trên FPGA. Tích hợp hệ thống. Các phần mềm phục vụ kiểm thử.

Thử nghiệm và đánh giá hệ thống. Hiệu năng tổng thể:. Khả năng thích nghi với môi trường:. Độ ổn định theo màu sắc:.

Kết luận và hướng phát triển.45 TÀI LIỆU THAM KHẢO.1 4 FPGA như đã đề cập, là mạch tích hợp có tính năng khả trình (field programmable) do vậy có độ linh hoạt vô cùng cao trong khả năng ứng dụng vào nhiều công việc, dự án khác nhau. FPGA có thể được tái cấu hình, tái lập trình khi cần thiết mà không cần phải can thiệp, sửa đổi phần cứng. Hơn thế nữa, FPGA hỗ trợ nhiều giao thức truyền thông (I2C, UART,.) có thể được thay đổi bằng cách lập trình bằng ngôn ngữ mô tả phần cứng (HDL) mà không cần thiết kế một con chip mới. Một đặc điểm nữa có thể được coi là thế mạch của FPGA, đó là người dùng có thể sử dụng để hỗ trợ việc kiểm tra và chạy thử các thiết kế phần cứng trước khi sản xuất các loại mạch tích hợp chuyên biệt (ASIC) có giá đắt hơn.

Kiến trúc FPGA Hình 1. Kiến trúc của 1 con chip FPGA và kiến trúc trong 1 Logic Block FPGA có kiến trúc như sau: - Logic Blocks (hay còn gọi là Configurable Logic Block – CLB): là thành phần quan trọng nhất của FPGA, chứa các LUT (Look Up Table), các bộ MUX (bộ ghép kênh), Flip Flop, các Registers (thanh ghi), các đường kết nối có thể lập trình. - Interconects: mạng kết nối có thể lập trình, đây là hệ thống dây kết nối các Logic Blocks với nhau theo nhu cầu thiết kế của người dùng. - I/O blocks: khối vào/ra.

- BRAM (Block – RAM): bộ nhớ truy cập ngẫu nhiên trên chip. Hàm lcd_display. Module chuyển đổi ASCII. Xây dựng module giao tiếp với TCS3200.

Module TCS3200_Reader. Các Module hỗ trợ. Xây dựng module giao tiếp với Servo MG90S.33 CHƯƠNG 3: TÍCH HỢP, THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG. Tích hợp và triển khai hệ thống trên FPGA.

Tích hợp hệ thống. Các phần mềm phục vụ kiểm thử. Thử nghiệm và đánh giá hệ thống. Hiệu năng tổng thể:.

Khả năng thích nghi với môi trường:. Độ ổn định theo màu sắc:. Kết luận và hướng phát triển.45 TÀI LIỆU THAM KHẢO.1 4 LỜI MỞ ĐẦU Trong kỷ nguyên số, sự tiến bộ vượt bậc của công nghệ đã đưa các hệ thống tự động và thông minh trở thành công cụ không thể thiếu, giúp cải thiện hiệu quả làm việc trong nhiều ngành nghề. Tuy nhiên, tại Việt Nam, việc áp dụng tự động hóa vẫn còn hạn chế, chủ yếu tập trung ở các doanh nghiệp lớn và liên doanh quốc tế, trong khi đó, phần lớn các ngành sản xuất vẫn dựa vào lao động thủ công, gây ra sự chậm trễ và giảm sút năng suất lao động.

Để đối phó với tình trạng này, chúng em xin đề xuất phát triển một hệ thống tự động phân loại sản phẩm theo màu sắc dựa trên vi điều khiển Tang Nano 9k, nhằm nâng cao tốc độ và chất lượng sản xuất trong nước. Báo cáo này sẽ được trình bày trong 3 chương: - Chương 1: Tổng quan về FPGA và các chuẩn giao tiếp I2C và PWM. - Chương 2: Thiết kế và mô phỏng hệ thống phân loại sản phẩm theo màu. - Chương 3: Tích hợp, thực nghiệm và đánh giá hệ thống.

6 - DSP (Digital Signal Processing): khối xử lý tín hiệu số. Nguyên lý hoạt động của FPGA Giả sử người dùng nạp vào mạch một ngôn ngữ mô tả phần cứng (HDL) (Verilog, VHDL, Chisel, v.), sẽ có một tập tin chứa toàn bộ các thông tin về cách lập trình các khối logic, đường kết nối qua interconects, kiểm soát tài nguyên dữ liệu trong FPGA (gọi là tập tin ‘Bitstream’). Tập tin Bitstream này có thể được nạp từ máy tính qua JTAG hoặc USB vào công cụ mạch FPGA (hình minh họa ở dưới). Kết nối mạch Tang Nano 9K chứa chip FPGA GOWIN GW1NR – LV9 sử dụng USB type C Sau khi file bitstream được nạp vào trong chip, file sẽ đi qua bộ điều khiển cấu hình.

Tại bộ điều khiển cấu hình file bitstream sẽ được giải mã và nạp vào trong các thành phần cấu hình của FPGA. Các đường kết nối (Interconnects) sẽ được định tuyến để thực hiện các kết nối Logic, các bộ nhớ được cấu hình để sẵn sàng hoạt động. Sau khi hoàn tất quá trình cấu hình của FPGA, các khối logic (CLB – Configurable Logic Block) sẽ hoạt động theo yêu cầu của người dùng. Như đã đề cập ở trên, trong một CLB bao gồm LUT, FF, MUX, Interconnects.

Cần lưu ý rằng mỗi CLB hoạt động dựa vào xung clock và dữ liệu đầu vào. Trước hết các LUTs sẽ thực hiện các phép tính logic trong CLB. FF được sử dụng để lưu trạng thái kết quả đầu ra của LUT. MUX sẽ được sử dụng để lựa chọn dữ liệu cần thiết cho đầu ra.

Các Interconnects sẽ đảm bảo việc kết nối, truyền tín hiệu giữa các CLB hoặc tới các phần khác trong FPGA. Các ứng dụng của FPGA 9 FPGA có tính linh hoạt cao, dễ tùy chỉnh, lập trình theo yêu cầu của người dùng do vậy FPGA được úng dụng trong rất nhiều lĩnh vực. - Xử lý tín hiệu số: - Hệ thống nhúng, điều khiển công nghiệp: - Bảo mật, mã hóa dữ liệu: 1. Các thiết bị sử dụng trong hệ thống 1.

Kit phát triển FPGA Tang Nano 9K Hình 1. Kit phát triển FPGA Tang Nano 9K Kit FPGA Tang Nano 9K được phát triển bởi Sipeed dựa trên nền tảng là chip FPGA. Kit hỗ trợ một số kết nối thông dụng như HDMI, màn hình RGB, màn hình dao diện SPI. Một số khối chức năng tích hợp trên Kit phát triển Tang Nano 9k Một số thông tin, thông số của các thiết bị tích hợp trên Tang Nano 9k [2] Thiết bị Giá trị Logic units (LUT4) 8640 Thanh ghi (FF) 6480 10 - DSP (Digital Signal Processing): khối xử lý tín hiệu số.

Nguyên lý hoạt động của FPGA Giả sử người dùng nạp vào mạch một ngôn ngữ mô tả phần cứng (HDL) (Verilog, VHDL, Chisel, v.), sẽ có một tập tin chứa toàn bộ các thông tin về cách lập trình các khối logic, đường kết nối qua interconects, kiểm soát tài nguyên dữ liệu trong FPGA (gọi là tập tin ‘Bitstream’). Tập tin Bitstream này có thể được nạp từ máy tính qua JTAG hoặc USB vào công cụ mạch FPGA (hình minh họa ở dưới). Kết nối mạch Tang Nano 9K chứa chip FPGA GOWIN GW1NR – LV9 sử dụng USB type C Sau khi file bitstream được nạp vào trong chip, file sẽ đi qua bộ điều khiển cấu hình. Tại bộ điều khiển cấu hình file bitstream sẽ được giải mã và nạp vào trong các thành phần cấu hình của FPGA.

Các đường kết nối (Interconnects) sẽ được định tuyến để thực hiện các kết nối Logic, các bộ nhớ được cấu hình để sẵn sàng hoạt động. Sau khi hoàn tất quá trình cấu hình của FPGA, các khối logic (CLB – Configurable Logic Block) sẽ hoạt động theo yêu cầu của người dùng. Như đã đề cập ở trên, trong một CLB bao gồm LUT, FF, MUX, Interconnects. Cần lưu ý rằng mỗi CLB hoạt động dựa vào xung clock và dữ liệu đầu vào.

Trước hết các LUTs sẽ thực hiện các phép tính logic trong CLB. FF được sử dụng để lưu trạng thái kết quả đầu ra của LUT. MUX sẽ được sử dụng để lựa chọn dữ liệu cần thiết cho đầu ra. Các Interconnects sẽ đảm bảo việc kết nối, truyền tín hiệu giữa các CLB hoặc tới các phần khác trong FPGA.

Các ứng dụng của FPGA 9 LỜI MỞ ĐẦU Trong kỷ nguyên số, sự tiến bộ vượt bậc của công nghệ đã đưa các hệ thống tự động và thông minh trở thành công cụ không thể thiếu, giúp cải thiện hiệu quả làm việc trong nhiều ngành nghề.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ