0
Tải bản đầy đủ (.pdf) (124 trang)

BÀI THỰC TẬP SỐ 4: XÂY DỰNG HỆ THỐNG NHÚNG GIAO TIẾP VỚ

Một phần của tài liệu THỰC HIỆN MỘT SỐ ỨNG DỤNG NHÚNG NÂNG CAO TRÊN BOARD ALTERA DE2 115 (Trang 80 -89 )

GIAO TIẾP VỚI MÁY TÍNH THÔNG QUA JTAG UART

Sinh viên thực hiện:

1. Họ và tên: ... MSSV: ... 2. Họ và tên: ... MSSV: ... Thời gian thực hiện: 4 tiết.

Mục tiêu

Bài thực tập này nhằm mục đích giúp sinh viên tìm hiểu về phương thức giao tiếp UART giữa máy tính và hệ thống nhúng.

Yêu cầu

Dựa vào các ngoại vi, chức năng hỗ trợ của board DE2-115 đã được tìm hiểu ở lab1 kết hợp với các phương thức giao tiếp giữa hệ thống và máy tính được thông qua JTAG UART để thiết kế một hệ thống có khả năng:

1. Nhận một dãy số gồm có 8 chữ số được nhập từ bàn phím vào Terminal.

2. Giải mã và hiển thị dãy số vừa nhập ra LED 7 đoạn.

Các bước thực hiện 4.4.3.1 Sơ đồ hệ thống

67

4.4.3.2 Các bước thực hiện

Bước 1: Tạo hệ thống mới

 Sinh viên tiến hành tạo project mới tương tự như đã tiến hành ở các bài thực tập trước.

 Sinh viên có thể đặt tên thư mục và tên project tương tự như Hình 4.4.2

Hình 4.4.2 Tạo project mới

Hình 4.4.3 Chọn dòng vi xử lý và chip

Bước 2: Xây dựng hệ thống trên QSys

 Ở bước này ta tiến hành xây dựng hệ thống giống như hệ thống ở lab1, chỉ cần thêm thêm IP core JTAG_UART.

 Hệ thống QSys bao gồm:

o CPU: cấu hình sử dụng core Nios II processor Nios II/s, JTAG Debug Module lever 2.

o RAM (On-Chip Memory (RAM or ROM)): 32 kB.

o JTAG_UART (Interface Protocols  Serial  JTAG UART). o SW (PIO): 16 bit – input.

o LEDR (PIO): 16 bit – output. o HEX3_0 (Parallel Port): 3 to 0.

68 o HEX7_4 (Parallel Port): 7 to 4.

Hình 4.4.4 Thêm JTAG_UART

69

Hình 4.4.6 Hệ thống hoàn chỉnh

Bước 3: Gán chân hệ thống

 Việc gán chân cũng tương tự như ở lab1.

 Sau khi gán chân cho hệ thống ta tiến hành biên dịch và nạp hệ thống xuống board DE2-115 như các bìa thực tập trước đã làm.

Hình 4.4.7 Hệ thống sau khi gán chân

70

Việc viết chương trình ứng dụng cho hệ thống cũng đã được hướng dẫn ở những bài trước. Ta chỉ thay đổi đoạn code điều khiển của hệ thống.

Đoạn code điều khiển:

#include <system.h>

char text_string[] = "Nhap so:\n> \0"; char chr_string[] = {}; char code_7seg[] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x67, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71 }; char buffer_7seg[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; void Hex(char number, char order_7seg )

{

volatile int * HEX3_0 = (int *) HEX3_0_BASE; volatile int * HEX7_4 = (int *) HEX7_4_BASE;

71

buffer_7seg[order_7seg] = code_7seg[number]; *(HEX3_0) = *(int *) (buffer_7seg);

*(HEX7_4) = *(int *) (buffer_7seg+4); }

void Clear_Display() { char count;

for (count=0; count <8; count++) {

Hex(0, count); }

}

void put_jtag( volatile int * JTAG_UART_ptr, char c ) { int control; control = *(JTAG_UART_ptr + 1); if (control & 0xFFFF0000) { *(JTAG_UART_ptr) = c; } } void Hex_display(char j) { int i; for(i=0;chr_string[i]!=0;++i) {Hex (chr_string[i],j--); chr_string[i]=0; } }

72 int main(void)

{

volatile int * JTAG_UART_ptr = (int *) JTAG_UART_BASE;

int data, i,j=0, seg7;

for (i = 0; text_string[i] != 0; ++i) put_jtag (JTAG_UART_ptr, text_string[i]); //printf("Nhap so: \n >"); while(1) { data = *(JTAG_UART_ptr); if (data & 0x00008000) {

data = data & 0x000000FF; if (data!=10) { if(j<=7) chr_string[j]=data-48; j++; } if (data==10) { Clear_Display(); Hex_display(j-1); j=0; }

put_jtag (JTAG_UART_ptr, (char) data & 0xFF ); }

} }

Biên dịch lỗi và tiến hành nạp phần mềm xuống hệ thống. Cách thực hiện tương tự các bài lab trước.

73

Hình 4.4.8 Kết quả biên dịch thành công

Bước 5: Demo hệ thống

Sau khi đã biên dịch và nạp thành công tất cả các quá trình trên, tiến hành chạy thử để kiểm tra chương trình.

 Nhập dãy số 1234567 từ Terminal (Hình 4.4.9), sau khi nhấn phím Enter thì số vừa nhập sẽ được hiển thị lên LED 7 đoạn (Hình 4.4.10), các giao tiếp giữa hệ thống và máy tính được thông qua JTAG.

74

Hình 4.4.10 Kết quả hiển thị lên LED 7 đoạn

Kết quả đạt được

Qua bài thực tập này, sinh viên củng cố được các kiến thức đã được vận dụng ở các bài thực tập trước, đồng thời xây dựng được hệ thống nhúng hoàn chỉnh có khả năng giao tiếp với máy tính thông qua JTAG_UART để có thể nhập dãy số, giải mã và hiển thị dãy số đã nhập ra thiết bị ngoại vi là LED 7 đoạn.

75

Một phần của tài liệu THỰC HIỆN MỘT SỐ ỨNG DỤNG NHÚNG NÂNG CAO TRÊN BOARD ALTERA DE2 115 (Trang 80 -89 )

×