BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
PHẠM ĐỨC THUẬN
TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN NIOS
VÀ ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ
QUA MÁY TÍNH
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
HƯNG YÊN - 2014
PHẠM ĐỨC THUẬN <TÊN ĐỀ TÀI> 2014
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
PHẠM ĐỨC THUẬN
TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN NIOS
VÀ ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ
QUA MÁY TÍNH
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: CÔNG NGHỆ MÁY TÍNH
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN
Th.S LÊ TRUNG HIẾU
HƯNG YÊN - 2014
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
3
Phương pháp tiếp cận 13
1.5
CHƯƠNG 2:
CƠ SỞ LÝ THUYẾT 14Tổng quan về FPGA 14
2.1
2.1.1
FPGA là gì? 14
2.1.2
Tóm tắt lịch sử phát triển của FPGA 14
2.1.3
Tại sao cần sử dụng FPGA 15
2.1.4
Các ứng dụng của FPGA 16
2.1.5
Cấu trúc của FPGA 16
Truyền thông qua máy tính 39
2.6.
Avalon Bus 43
2.6.1.
Avalon Bus Module 45
2.6.2.
Các thiết bị ngoại vi Avalon 46
CHƯƠNG 3:
NỘI DUNG THỰC HIỆN 48Sơ đồ tổng quát hệ thống 48
3.1
Chi tiết thiết kế hệ thống 50
3.2
3.2.1.
NIOS II Processor – nios2_qsys_0 50
Thiết kế giao diện điều khiển trên máy tính. 59
3.3
Lưu đồ thuật toán 61
3.4
3.4.1.
Quá trình gửi 61
3.4.2.
Quá trình nhận 62Sơ đồ nguyên lý. 64
3.5
3.5.1.
Kết nối chân tín hiệu điều khiển ngoại vi 64
3.5.2.
Sơ đồ ghép nối Rs232. 65
3.5.3.
Sơ đồ module màn hình LCD 66
PHỤ LỤC 73
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
6
DANH SÁCH HÌNH VẼ
Hình 2-1: Cấu trúc tổng thể của FPGA 16
Hình 2-2: Khối logic FPGA 17
Hình 2-3: KIT Altera DE2 19
Hình 2-4: Các thành phần trên KIT Altera DE2 19
Hình 2-5: Giao diện chính 21
Hình 2-6: Design Flow 22
Hình 2-7: Khởi tạo dự án 23
Hình 2-8: Đường dẫn, tên dự án, tên thực thể chính. 24
Hình 2-9: Add file. 24
Hình 2-10: Chọn Device 25
Hình 2-24: Tạo thêm I/O cần thiết cho hệ thống NIOS II 35
Hình 2-25: Chọn workspace cho dự án. 36
Hình 2-26: Giao diện chương trình phần mềm NIOS II 36
Hình 2-27: Tạo dự án mới với NIOS II 37
Hình 2-28: Trình soạn thảo 38
Hình 2-29: Nạp xuống KIT 38
Hình 2-30: Rs232 Pin table 41
Hình 2-31: Sơ đồ khối một Avalon bus module trong thiết kế 46
Hình 3-1: Sơ đồ tổng quát hệ thống 48
Hình 3-2: Chọn phiên bản NIOS II/e 50
Hình 3-3: Component Jtag_uart 51
Hình 3-4: Component Rs232 51
Hình 3-5: SRAM On Chip 52
Hình 3-6: EFAN 52
Hình 3-7: Lcd_data 53
Hình 3-20: Mạch chuẩn giao tiếp Rs232 dùng IC Max232 65
Hình 3-21: Sơ đồ module màn hình LCD 66
Hình 3-22: Sơ đồ nguyên lý Module Relay 4 kênh 68
Hình 3-23: Module Relay 4 kênh - 5V-220V/10A 69Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
9
DANH SÁCH BẢNG BIỂU
Bảng 3-1: Chân kết nối tín hiệu điều khiển GPIO1 65
Bảng 3-2: Rs232 pin assignments 66
Bảng 3-3: LCD Module pin assignment 67
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
10
DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
ASIC Application-Specific Integrated
cận của đề tài.
Lý do chọn đề tài
1.1
Trong những năm gần đây, xu hướng của thế giới là phát triển mạnh công
nghệ bán dẫn. Một chip có thể tích hợp trên nó nhiều cổng logic có thể ứng dụng
trong nhiều lĩnh vực. Ngày nay, ngành công nghiệp chế tạo phần cứng luôn có
những đột phá không ngừng. Từ các mạch điện đơn giản đến các mạch số, mạch
tích hợp, kiến trúc mạch ngày một trở nên phức tạp hơn.
Các hệ thống nhúng được phát triển trên FPGA đang được sử dụng rộng rãi
cho các nghiên cứu, ứng dụng, và đào tạo hiện nay bởi đặc tính linh hoạt cho các
thiết kế thiết bị trên FPGA. Đặc tính có thể cấu hình lại của FPGA cho phép tạo ra
phiên bản thiết kế của một thiết bị mong muốn cho các ứng dụng khác nhau. Nhờ sử
dụng các ngôn ngữ mô phỏng phần cứng VHDL, Verilog và một số công cụ thiết
kế, mô phỏng, ngày nay, ở phòng thí nghiệm, cơ sở đào tạo, hay một cá nhân có thể
đưa ra ý tưởng, một mẫu thiết kế một bộ xử lý mong muốn, và thực thi nó trên
FPGA. Với những ứng dụng rộng rãi trong nhiều ngành công nghiệp đa dạng, hầu
hết các hệ nhúng hiện nay đều được phát triển trên công nghệ FPGA. Mặt khác,
FPGA được hỗ trợ rất nhiều các thiết bị ngoại vi tạo điều kiện thuận lợi cho việc
phát triển hệ thống nhúng, phát triển các ứng dụng điều khiển trên FPGA kết nối
với các thiết bị ngoại vi.
Để có được bước đầu làm quen và nghiên cứu về công nghệ FPGA từ đó có
thể nghiên cứu sâu hơn về công nghệ nên Em đã chọn đề tài nghiên cứu: “ Triển
khai hệ thống nhúng trên nios và điều khiển thiết bị qua máy tính” làm đề tài
tốt nghiệp Đại học của mình.
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
12
Trong quá trình thực hiện đề tài này, do còn hạn chế về kiến thức và thời
gian nên không tránh được những thiếu sót. Em kính mong quý thầy cô
Đưa ra được giải pháp và chức năng của sản phẩm, thiết kế mạch và lập
trình đạt được yêu cầu đặt ra của hệ thống điều khiển.
Sử dụng tốt công cụ lập trình NIOS tạo ứng dụng điều khiển thiết bị qua
máy tính.
Lắp đặt, chạy thử và hoàn thiện hệ thống.
Quyển báo cáo viết và trình bày theo đúng mẫu quy định.
Phương pháp tiếp cận
1.5
Cách tiếp cận : Nghiên cứu các ngôn ngữ, phần mềm thiết kế hệ thống nhúng
trên nền tảng Altera như VHDL, Verilog, Qsys trên Quartus II và viết phần mềm
trên NIOS II. Lập trình giao diện điều khiển thiết bị trên máy tính bằng Visual
Studio 2010.
Sử dụng các phương pháp nghiên cứu:
Phương pháp đọc tài liệu.
Phương pháp phân tích mẫu.
Phương pháp thực nghiệm.
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Chương này sẽ trình bày cơ sở lý thuyết của đề tài bao gồm tổng quan về
FPGA, giới thiệu phần mềm, công cụ sử dụng trong đề tài, các bước triển khai hệ
thống, truyền thông qua máy tính.
Tổng quan về FPGA
2.1
2.1.1 FPGA là gì?
Field-programmable gate array( FPGA) là vi mạch dùng cấu trúc mảng
phần tử logic mà người dùng có thể lập trình được.( Chữ field ở đây muốn chỉ đến
nhiều những bộ logic số học đã sơ bộ tối ưu hóa, hỗ trợ RAM, ROM, tốc độ cao,
hay các bộ nhân cộng( multiplication and accumulation, MAC), thuật ngữ tiếng
Anh là DSP slice dùng cho những ứng dụng xử lý tín hiệu số DSP.
Ngoài khả năng tái cấu trúc vi mạch toàn cục, một số FPGA hiện đại còn hỗ
trợ tái cấu trúc cục bộ, tức là khả năng tái cấu trúc một bộ phận riêng lẻ trong khi
vẫn đảm bảo hoạt động bình thường cho các bộ phận khác.
2.1.3 Tại sao cần sử dụng FPGA
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dụng ASIC,
nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế
trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, và
hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu
việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản
do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng.
Còn nếu so sánh với các dạng vi mạch bán dẫn lập trình được dùng cấu trúc
mảng phần tử logic như PLA, PAL, CPLD thì FPGA ưu việt hơn các điểm: tác vụ
tái lập trình của FPGA thực hiện đơn giản hơn; khả năng lập trình linh động hơn; và
khác biệt quan trọng nhất là kiến trúc của FPGA cho phép nó có khả năng chứa khối
lượng lớn cổng logic( logic gate), so với các vi mạch bán dẫn lập trình được có
trước nó.
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
16
2.1.4 Các ứng dụng của FPGA
Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàng
không, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC( ASIC prototyping), các hệ
thống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mã
học, mô hình phần cứng máy tính, máy đánh cờ( Máy đánh cờ Hydra có 32 bộ vi xử
lý cộng thêm FPGA đã chiến thắng kiện tướng quốc tế Michael Adams trong năm
2005.
dài và rất dài. Các đường kết nối được nối với nhau thông qua các khối chuyển
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
18
mạch lập trình được( programmable switch), trong một khối chuyển mạch chứa một
số lượng nút chuyển lập trình được đảm bảo cho các dạng liên kết phức tạp khác
nhau.
Các phần tử tích hợp sẵn.
Ngoài các khối logic tùy theo các loại FPGA khác nhau mà có các phần tử tích
hợp thêm khác nhau, ví dụ để thiết kế những ứng dụng SoC, trong dòng Virtex 4,5
của Xilinx có chứa nhân xử lý PowerPC, hay trong Atmel FPSLIC tích hợp nhân
AVR…, hay cho những ứng dụng xử lý tín hiệu số DSP trong FPGA được tích hợp
các DSP Slide là bộ nhân cộng tốc độ cao, thực hiện hàm A*B+C, ví dụ dòng
Virtex của Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit.
Block RAM
Ngoài ra những FPGA của Xilinx còn có block RAM, có thể mường tượng
như là bộ nhớ nhỏ nằm trong FPGA. Những FPGA này tuy nhỏ( khoảng vài chục kí
lô bit cho đến vài triệu bit tùy theo loại FPGA) nhưng có thể dùng để tạo một bộ
nhớ nhỏ như ROM, FIFO.
2.2. KIT Altera DE2.
DE2( Development and Education ) la một công cụ cho việc thiết kế nâng cao
các thiết bị đa phương tiện, lưu trữ và mạng.
DE2 sử dụng công nghệ state-of- the-art trong cả phần cứng và các công cụ
thiết kế nhờ máy tính giúp mở rộng phạm vi ứng dụng. DE2 có nhiều tính năng phù
hợp với cả việc sử dụng trong các phòng lab và các hệ thống số tinh vi. Altera cung
cấp các công cụ hỗ trợ phù hợp cho DE2, gồm có các hướng dẫn, các bài lab trên
DE2, và các bài minh họa…
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
Cổng PS/2 giao tiếp với chuột và keyboard
Cổng hồng ngoại
40 chân mở rộng
LDC 2x16
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
21
2.3. Phần mềm Quartus II
2.3.1. Giới thiệu Quartus II
Quartus II là công cụ chính được sử dụng trong quá trinh thực hiện đề tài.
Được cung cấp và cập nhật thường xuyên bởi Altera. Đây là công cụ thiết kế tốt
nhất cho các dòng chip FPGA của Altera bao gồm cả Cyclon II 2C35 có trên DE2.
Là công cụ phân tích và tổng hợp thiết kế HDL, nó cho phép nhà phát triển
thực hiện thiết kế của họ, đồng thời cho phép phân tích thời gian, kiểm tra sơ đồ
RTL, mô phỏng hệ thống và cấu hình sản phẩm một cách phù hợp nhất.
Hình 2-5: Giao diện chính
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
22
Thiết kế FPGA với SoPC( Qsys) trên Quartus II.
Dưới đây là quy trình thiết kế FPGA với các phần mềm thiết kế FPGA nói
chung và Quartus II nói riêng:
24
Điền đường dẫn lưu dự án, tên dự án và tên thực thể chính của dự án Next.
Hình 2-8: Đường dẫn, tên dự án, tên thực thể chính.
Thêm file thiết kế vào trong dự án Next.
Hình 2-9: Add file.
Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính
25
- Thêm file mới cho dự án: Điền tên file name Add.
- Thêm file đã có sẵn: Browse đường dẫn đến file đã tạo sẵn và Add.
- Nếu đã tạo xong dự án mà muốn thêm file thiết kế VHDL vào trong dự án:
Ở mục Project Navigator, chuyển sang tab file, click chuột phải vào file
Add/Remove File in Project Add.
Chọn dòng thiết bị sử dụng.
Hình 2-10: Chọn Device
Đối với đề tài sử dụng KIT Altera Cyclone II DE2:
- Family: Cyclone II.
- Available device: EP2C35F672C6( DE2).