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.. Nhờ
Trang 1TRƯỜ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Ị
Trang 2PHẠ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Ị
HƯNG YÊN - 2014
Trang 33
MỤC LỤC
MỤC LỤC 3
DANH SÁCH HÌNH VẼ 6
DANH SÁCH BẢNG BIỂU 9
DANH SÁCH TỪ VIẾT TẮT 10
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 11
Lý do chọn đề tài 11
1.1 Mục tiêu của đề tài 12
1.2 Giới hạn và phạm vi của đề tài 12
1.3 Nội dung thực hiện 12
1.4 Phương pháp tiếp cận 13
1.5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 14
Tổ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
2.2 KIT Altera DE2 18
2.3 Phần mềm Quartus II 21
2.3.1 Giới thiệu Quartus II 21
2.3.2 Thiết kế dự án bằng Quartus II 23
2.3.3 Xây dựng hệ thống bằng SoPC( Qsys) trên Quartus II 30
Trang 44
2.4 Phần mềm lập trình NIOS II 35
2.5 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 48
Sơ đồ 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
3.2.2 JTAG Debug Module – jtag_uart_0 51
3.2.3 Rs232 – UART( Rs232 Serial Port) 51
3.2.4 SRAM On Chip – onchip_memory2_0 52
3.2.5 EFAN 52
3.2.6 LCD 53
3.2.7 LED Controler – pio_0 – led_green 56
3.2.8 Avalon Bus 56
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 62
Sơ đồ 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
Trang 55
3.5.4 Sơ đồ nguyên lý Relay 4 kênh 67Hình ảnh module thực tế 693.6
CHƯƠNG 4: KẾT LUẬN 70
Kết quả đạt được của đề tài 704.1
Hạn chế của đề tài 714.2
Hướng phát triển của đề tài 714.3
TÀI LIỆU THAM KHẢO 72PHỤ LỤC 73
Trang 66
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-11: Công cụ thiết kế, mô phỏng 26
Hình 2-12: Kết thúc 26
Hình 2-13: New Source 27
Hình 2-14: Trình soạn thảo trên Quartus II 27
Hình 2-15: Cửa sổ Assignment Editor dùng để gán chân 28
Hình 2-16: Cửa sổ Programer 29
Hình 2-17: Đường dẫn đến thư mục Usb-Blaster Driver 30
Hình 2-18: Chọn hệ thống SoPC dựa trên ngôn ngữ Verilog hoặc VHDL 31
Hình 2-19: Chọn NIOS II processor 32
Hình 2-20: Chọn Debug level 32
Hình 2-21: Tạo bộ nhớ hệ thống 33
Hình 2-22: JTAG UART 34
Trang 77
Hình 2-23: Hệ thống SoPC tối thiểu 34
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-8: Lcd_rw 54
Hình 3-9: Lcd_rs 54
Hình 3-10: Lcd_e 55
Hình 3-11: Led control 56
Hình 3-12: Giao tiếp giữa cổng Slave và Avalon Bus Module trong quá trình đọc từ Slave 57
Hình 3-13: Thời gian trong quá trình đọc dữ liệu từ cổng slave 57
Trang 88
Hình 3-14: Các tín hiệu giao tiếp và thời gian trong khi ghi dữ liệu ra cổng
slave 58
Hình 3-15: Giao diện chương trình chính 60
Hình 3-16: Giao diện chương trình điều khiển 60
Hình 3-17: Lưu đồ thuật toán quá trình gửi dữ liệu 61
Hình 3-18: Lưu đồ thuật toán quá trình nhận dữ liệu 63
Hình 3-19: Connect to GPIO1( DE2 KIT) 64
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 69
Trang 99
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 65Bảng 3-2: Rs232 pin assignments 66Bảng 3-3: LCD Module pin assignment 67
Trang 1010
DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
DE Development and Education
phần tử logic lập trình được
PLA Programmable Logic Array Mảng logic khả trình
Builder
Xây dựng hệ thống trên một CHIP
Language
Ngôn ngữ lập trình phần cứng
Trang 1111
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
Trong chương này sẽ trình bày tổng quan về đề tài bao gồm lý do chọn đề tài, mục tiêu, giới hạn, phạm vi nghiên cứu, nội dung thực hiện và phương pháp tiếp 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
Trang 1212
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ô thông cảm và bỏ qua đồng thời em cũng mong nhận được những góp ý và chỉ bảo thêm của quý thầy cô
Mục tiêu của đề tài
1.2
II nói riêng và FPGA nói chung
lập trình, thiết kế phần cứng, cũng như cách vận hành giao tiếp giữa Kit DE2 với các thiết bị ngoại vi
máy tính
Giới hạn và phạm vi của đề tài
1.3
Cylone II Tìm hiểu về các cổng vào ra của Kit DE2, kết nối với máy tính
và các thiết bị ngoại vi
trình đạt được yêu cầu đặt ra của hệ thống điều khiển
thiết bị ngoại vi
Nội dung thực hiện
1.4
bị ngoại vi
Trang 1313
trình đạt được yêu cầu đặt ra của hệ thống điều khiển
máy tí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:
Trang 1414
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
khả năng tái lập trình "bên ngoài" của người sử dụng, không phụ thuộc vào dây chuyền sản xuất phức tạp của nhà máy bán dẫn) Vi mạch FPGA được cấu thành từ các bộ phận:
2.1.2 Tóm tắt lịch sử phát triển của FPGA
FPGA được thiết kế đầu tiên bởi Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, kiến trúc mới của FPGA cho phép tích hợp số lượng tương đối lớn các phần tử bán dẫn vào 1 vi mạch so với kiến trúc trước đó là CPLD FPGA có khả năng chứa tới từ 100.000 đến hàng vài tỷ cổng logic, trong khi CPLD chỉ chứa từ 10.000 đến 100.000 cổng logic; con số này đối với PAL, PLA còn thấp hơn nữa chỉ đạt vài nghìn đến 10.000
CPLD được cấu trúc từ số lượng nhất định các khối SPLD( Simple programmable devices, thuật ngữ chung chỉ PAL, PLA) SPLD thường là một mảng logic AND/OR lập trình được có kích thước xác định và chứa một số lượng hạn chế các phần tử nhớ đồng bộ( clocked register) Cấu trúc này hạn chế khả năng thực
Trang 15Một điểm khác biệt với CPLD là trong những FPGA hiện đại được tích hợp 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ó
Trang 1616
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
2.1.5 Cấu trúc của FPGA
Cấu trúc tổng thể của một FPGA được minh họa ở hình sau:
Hình 2-1: Cấu trúc tổng thể của FPGA
Trang 1717
Khối Logic FPGA
Hình 2-2: Khối logic FPGA
Phần tử chính của FPGA là các khối logic(logic block) Khối logic được cấu thành từ LUT và một phần tử nhớ đồng bộ flip-flop
LUT( Look up table) là khối logic có thể thực hiện bất kì hàm logic nào từ 4
đầu vào, kêt quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trực tiếp hay thông qua phần tử nhớ flip-flop
Trong tài liệu hướng dẫn của các dòng FPGA của Xilinx còn sử dụng khái niệm SLICE, 1 Slice tạo thành từ gồm 4 khối logic, số lượng các Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA
Nếu nhìn cấu trúc tổng thể của mảng LUT thì ngoài 4 đầu vào kể trên còn hỗ trợ thêm 2 đầu vào bổ sung từ các khối logic phân bố trước và sau nó nâng tổng số đầu vào của LUT lên 6 chân Cấu trúc này là nhằm tăng tốc các bộ số học logic
Hệ thống mạch liên kết
Mạng liên kết trong FPGA được cấu thành từ các đường kết nối theo hai phương ngang và đứng, tùy theo từng loại FPGA mà các đường kết nối được chia thành các nhóm khác nhau, ví dụ trong XC4000 của Xilinx có 3 loại kết nối: ngắn, 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
Trang 1818
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
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…
Trang 1919
Hình 2-3: KIT Altera DE2
Các thành phần và thông số của KIT
Hình 2-4: Các thành phần trên KIT Altera DE2
Trang 2020
Altera Cyclone II 2C35 FPGA
Altera Serial Configuration device - EPCS16
USB Blaster dùng để lập trình hệ thống từ PC, hỗ trợ các chế độ JTAG cũng như điều khiển trực tiếp khi sử dụng NIOS II
Có hai nguồn clock là 50 MHz và 27 MHz
Chip giải mã âm thanh 24 bits với các jack cắm line-in, line-out và microphone
VGA DAC( 10-bit high-speed triple DACs) với cổng VGA
TV Decoder( NTSC/PAL) với TV-in( Video-in)
Cổng 10/100 Ethernet
Bộ điều khiển USB host/slave
RS – 232 với cổng kết nối 9 chân
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
Trang 2121
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
Trang 2222
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:
Hình 2-6: Design Flow
Design Entry – Mạch sau đã thiết kế sẽ được mô tả bởi các ngôn ngữ mô tả
phần cứng như VHDL hay Verilog, hoặc cũng có thể dùng sơ đồ
Schematic
Synthesis – Công cụ tổ hợp sẽ tổ hợp mạch tạo ra một file netlist có chứa
các phần tử logic và các kết nối giữa chúng
Function Simulation – Chức năng của mạch sau tổ hợp sẽ được kiểm định
Trang 2323
Fitting – Công cụ máy tính sẽ đặt các phần tử logic được định nghĩa trong
file netlist xuống các phần tử logic trong con chip FPGA thực tế Đồng thời
chọn ra các đường dây để kết nối chúng với nhau
Timming Analysis – Phân tích trễ truyền dẫn trên các đường dây khác
nhau nhằm đưa ra các chỉ thị giúp cải thiện hiệu năng làm việc của mạch
Timming Simulation – Kiểm tra đồng thời cả về mặt chức năng lẫn thời
gian của mạch
Programming and Configuration – Thực hiện mạch trên con chip vật lý
bằng cách cấu hình các phần tử logic trên chip và thành lập các kết nối cần thiết
2.3.2 Thiết kế dự án bằng Quartus II
Đề tài sử dụng phiên bản phần mềm Quartus 12.0 Web Edition
Hình 2-7: Khởi tạo dự án
Trang 2424
Hình 2-8: Đường dẫn, tên dự án, tên thực thể chính
Hình 2-9: Add file
Trang 2525
- 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
Hình 2-10: Chọn Device
Đối với đề tài sử dụng KIT Altera Cyclone II DE2:
Trang 2626
Các công cụ thiết kế vi mạch khác sử dụng với phần mềm Quartus II để phát triển dự án Next
Hình 2-11: Công cụ thiết kế, mô phỏng
Hình 2-12: Kết thúc
Trang 2828
Chọn chân PIN_XYZ từ danh mục hoặc có thể gõ trực tiếp vào hộp Location
Hình 2-15: Cửa sổ Assignment Editor dùng để gán chân
- Tương tự như trên, thực hiện gán chân cho các đầu vào khác
- Sau khi hoàn thành việc gán chân, nhấp chọn File > Save Đóng cửa sổ Assignment Editor, nhấp chọn Yes và biên dịch lại mạch
Chú ý : Nên chọn tên các tín hiệu trùng với trong bảng
DE1_pin_assigment.csv thì khi gán chân ta chỉ cần vào assigment > import assigment,trong đường dẫn ta trỏ đến file DE1_pin_assigment.csv rồi ấn OK và làm theo bước 3 là xong.Không mất thời gian gán chân bằng tay
Trang 2929
- Bước 2: Khi biên dịch hoàn thành, một báo cáo biên dịch được đưa ra Cửa
sổ này cũng có thể mở ra bất kỳ lúc nào bằng cách nhấp chọn Processing > Complication Report Trong báo cáo này bao gồm một số danh mục ở bên trái cửa sổ, nhấp vào các danh mục này để thấy thông tin chi tiết của danh mục này hiện lên ở bên phải cửa sổ
- Bước 3: Sửa các lỗi: Chọn mục Analysis & Synthesis > Messages để hiển thị thông báo lỗi Nhấp đôi vào thông báo lỗi đầu tiên, dòng lệnh lỗi sẽ được đánh dấu trên trình soạn thảo văn bản, sửa lại cho đúng rồi biên dịch lại dự án
Nạp xuống KIT
- Gạt chuyển mạch RUN/PROG sang vị trí RUN Nhấp chọn Tools > Programmer để có cửa sổ như trong hình Đánh dấu vào tùy chọn Program/Configue để cho phép nạp tệp cấu hình xxxxxx.sof
Hình 2-16: Cửa sổ Programer
Trang 3030
Cài Driver Usb-Blaster
- Để có thể nạp code xuống KIT, ta phải cài Driver Usb-Blaster
- Vào Manage(Chuột phải vào Computer) Device ManageOther Device
- Chuột phải vào Usb-Blaster Update Driver SoftwareBrowse my computer for driver softwareChọn đường dẫn tới thư mục Driver/Usb-Blaster(Có sẵn trong thư mục cài Altera Quartus) Next Close
Hình 2-17: Đường dẫn đến thư mục Usb-Blaster Driver
2.3.3 Xây dựng hệ thống bằng SoPC( Qsys) trên Quartus II
Hệ thống SoPC( System on Programable Chip) bao gồm các thành phần
chính:
CPU Nios II
Memory( onchip memory hoặc Ram ngoài)
JTAG
Trang 31Hình 2-18: Chọn hệ thống SoPC dựa trên ngôn ngữ Verilog hoặc VHDL
Tạo VXL NIOS cho hệ thống
Chọn kiểu NIOS II: tùy vào tính năng của hệ thống mà chọn lõi NIOS II cho phù hợp Trong vi dụ này vì không càn nhiều chức năng nên ta chon phiên bản đơn giản nhất là phiên bản NIOS II/e bằng cách check vào mục NIOS II/e như hình bên dưới
Trang 3232
Hình 2-19: Chọn NIOS II processor
Đối với kiểu NIOS đơn giản ta tiếp tục next đến phần chọn thành phần JTAG Trong bài này ta sử dụng phiên bản NIOS II/e nên chỉ cho phép chọn JTAG level 1 Rồi nhấn next để hoàn thành khai báo
Hình 2-20: Chọn Debug level
Trang 3333
Tạo bộ nhớ cho NiOS II
Nios II chỉ là một lõi vi xử lý chứ chưa phải là vi điêu khiển do đó nó cần phải
có tối thiểu ộ nhớ dữ liệu và bộ nhớ chương trình để có thể hoạt động được
Để đơn giản nhất là dùng On-Chip Memory bằng cách double_click “On-Chip Memory(RAM or ROM)” Nhưng lưu ý nên chọn dung lượng bộ nhớ phù hợp từng ứng dụng Chiều rộng mỗi ô nhớ là 32 bit nếu là kit DE2, nếu là DE1 ta chọn bộ nhớ là 16KB Sau đó chọn Finish để hoàn thành
Khi tạo bộ nhớ xong, ta tạo kết nối giữa Nios II và bộ nhớ nếu nó chưa được kết nối Chú ý là phải kết nối cả hai bus instruction_master và data_master
Hình 2-21: Tạo bộ nhớ hệ thống
Trang 34
34
Tạo UART thông qua chuẩn JTAG cho NIOS
Trong Communication double click chọn JTAG UART Nếu không biết chỉnh
gì hết thì cứ nhấn Finish để hoàn thành
Sau bước này ta có hệ thống đơn giản có thể hoạt động được như hình sau
Hình 2-23: Hệ thống SoPC tối thiểu
Trang 3535
Tạo I/O port cho NIOS II
Hình 2-24: Tạo thêm I/O cần thiết cho hệ thống NIOS II
2.4 Phần mềm lập trình NIOS II
Việc viết phần mềm cho phần cứng FPGA cũng tương tự như quá trình phát triển phần mềm cho bất kỳ họ vi điều khiển nào khác Bộ công cụ phần mềm Nios II EDS chuyên dùng để viết phần mềm chạy trên bộ vi xử lý NiosII
Nios II Software Build Tools for Eclipse cung cấp 2 quy trình khác nhau gồm rất nhiều thuộc tính và công cụ mã nguồn mở nhằm tạo ra chương trình phần mềm Nios II
Trang 3636
Các bước làm việc trên NIOS
Chọn không gian lưu trữ dự án
Hình 2-25: Chọn workspace cho dự án
Giao diện chính
Hình 2-26: Giao diện chương trình phần mềm NIOS II
Trang 3737
Tạo dự án
Hình 2-27: Tạo dự án mới với NIOS II
Đầu tiên chọn SOPC Information File name chính là hệ thống SOPC mà chúng ta đã tạo ra bằng tool SoPC trên Quartus II Browse vào hệ thống SOPC đã tạo ra
Khi chọn xong SOPC thì CPU name sẽ hiện lên tên CPU mà chúng ta đặt ở phần xây dựng hệ thống Và sau đó là đặt Project name rồi Finish Kết thúc quá trình tạo dự án
Trang 3939
2.5 Truyền thông qua máy tính
Ngày nay các thiết bị đo lường, điều khiển đều phải giao tiếp với máy tính
để quan sát thông số và chế độ hoạt động của thiết bị như thế nào? Chuẩn giao tiếp được coi là đơn giản và dễ dùng đó là RS232 Hầu như các thiết bị đều được giao tiếp với máy tính thông qua chuẩn này
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều khiển, đo lường Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.Nó là một chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết
bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc
độ 20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt Ý nghĩa của chuẩn truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit được gửi đi dọc theo đường truyền
Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và RS232C Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện vẫn được dùng và tồn tại thường được gọi là tên ngẵn gọn là chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi
là cổng Com Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường Trên main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp
Ưu điểm của giao diện nối tiếp Rs232
Khả năng chống nhiễu của các cổng nối tiếp cao
Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp
Trang 4040
Những đặc điểm cần lưu ý trong chuẩn Rs232
Trong chuẩn RS232 có mức giới hạn trên và dưới( logic 0 và 1) là +-12V Hiện nay đang được cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V đến 12V
Tốc độ truyền nhận dữ liệu cực đại là 100kbps( ngày nay có thể lớn hơn) Các lối vào phải có điện dung nhỏ hơn 2500pF
Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm
Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m nếu chúng ta không sử model
Các giá trị tốc độ truyền dữ liệu chuẩn : 50, 75, 110, 750, 300, 600, 1200,
2400, 4800, 9600, 19200, 28800, 38400 56600, 115200 bps
Các mức điện áp đường truyền
RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện áp chênh lệch giữa một dây dẫn và đất Do đó ngay từ đầu tiên ra đời nó
đã mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương thích TTL để mô tả các mức logic 0 và 1 Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được đấu vào bus của bộ phận và các trở kháng ra của bộ phát Mức điện áp của tiêu chuẩn RS232C( chuẩn thường dùng bây giờ) được mô tả như sau:
Mức logic 0 : +3V , +12V
Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến Chính vì từ - 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một thơì gian ngắn hợp lý Điều này dẫn đến việc phải hạn chế
về điện dung của các thiết bị tham gia và của cả đường truyền Tốc độ truyền dẫn