Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI – BÀI GIẢNG ĐIỆN TỬ

THIẾT KẾ HỆ THỐNG NHÚNG


30t LT + 30t TH

1
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

THIẾT KẾ ỨNG DỤNG VỚI NGẮT

• Ngắt (Interrupt) - là một số sự kiện khẩn cấp bên trong hoặc


bên ngoài bộ vi điều khiển xảy ra, buộc vi điều khiển tạm dừng
thực hiện chương trình hiện tại, phục vụ ngay lập tức nhiệm vụ
mà ngắt yêu cầu – nhiệm vụ này gọi là trình phục vụ ngắt
(ISR: Interrupt Service Routine).

2
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

QUÁ TRÌNH THỰC HIỆN NGẮT CỦA VI ĐIỀU KHIỂN


– MCU INTERRUPT PROCESSING

3
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

QUÁ TRÌNH THỰC HIỆN NGẮT CỦA VI ĐIỀU


KHIỂN – MCU INTERRUPT PROCESSING
• 1. Thực hiện xong câu lệnh đang thực hiện

• 2. Lưu ngữ cảnh gồm lưu địa chỉ câu lệnh tiếp theo sẽ thực hiện (giá trị
thanh ghi Program Counter), lưu trạng thái năng lượng đang hoạt động
(trong thanh ghi Status) vào vùng nhớ Stack, gọi là quá trình Stacking.
(Vùng nhớ Stack là vùng nhớ First In Last Out.)
• 3. Xóa bit cho phép ngắt toàn cục trong thanh ghi Status, đưa vi điều khiển
về chế độ hoạt động bình thường (active mode) nếu nó đang ở chế độ tiết
kiệm năng lượng. Bit cho phép ngắt cũng có thể được bật lên lại để cho
phép ngắt chồng ngắt (Nested Interrupt)
4
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

QUÁ TRÌNH THỰC HIỆN NGẮT CỦA VI ĐIỀU


KHIỂN – MCU INTERRUPT PROCESSING

• 4. Vi điều khiển thực thi chương trình phục vụ ngắt (ISR) bằng cách nạp
địa chỉ câu lệnh đầu tiên của chương trình phục vụ ngắt vào thanh ghi PC.
(Địa chỉ này cũng là địa chỉ của vecter ngắt trong interrupt vector table)
• 5. Khi thực hiện xong chương trình phục vụ ngắt, vi điều khiển sẽ thực
hiện quá trình unstacking: nạp lại giá trị thanh ghi PC đã lưu, bật lại bit cho
phép ngắt toàn cục, quay về trạng thái năng lượng ban đầu.

5
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

THIẾT KẾ PHẦN CỨNG

6
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

THIẾT KẾ PHẦN CỨNG

7
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

XÂY DỰNG PHẦN MỀM ỨNG DỤNG VỚI NGẮT GPIO

• - Khai báo thư viện : #include <xgpio.h>


• #include "xparameters.h“
• ##include "xintc.h“
• #include "xil_exception.h“
• Khai báo Biến Xgpio, XIntc (biến điều khiển ngắt)
• Xây dựng hàm điều khiển ngắt
- Thiết lập chân GPIO: XGpio_Initialize(& biến Gpio , GPIO_ID)
- Xác định hướng vào/ ra của chân GPIO: XGpio_SetDataDirection(&Biến Gpio, 1, hướng ra = 0,
hướng vào = 1)
- Khởi tạo bộ điều khiển ngắt

8
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

XÂY DỰNG PHẦN MỀM ỨNG DỤNG VỚI NGẮT GPIO

• Khởi tạo bộ điều khiển ngắt GPIO:

• microblaze_enable_interrupts();

• XIntc_Initialize(con tro dk ngat, ngat ID);

• Gọi hàm phục vụ ngắt:

• XIntc_Connect (con trỏ ngăt, ID ngắt, con trỏ hàm phục vụ ngắt)

• Enable ngắt trên port/ chân thực hiện ngắt:

• XGpio_InterruptEnable(Con trỏ đến địa chỉ ngăt, mặt nạ ngắt);


• Enable ngắt toàn cục:

• XGpio_InterruptGlobalEnable( con trỏ đến địa chỉ ngắt);

9
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

XÂY DỰNG PHẦN MỀM ỨNG DỤNG VỚI NGẮT GPIO

• Viết hàm phục vụ ngắt:


• Disable GPIO interrupts:
• XGpio_InterruptDisable(con trỏ GPIO, mặt nạ ngắt);
• Viết lệnh xử lý ngắt
• Xóa cờ ngắt: (void)XGpio_InterruptClear( con trỏ GPIO, mặt nạ ngắt);
• Enable GPIO interrupts
• XIntc_Acknowledge(&Intc,XPAR_AXI_INTC_0_AXI_GPIO_1_IP2INTC_IRPT_INTR);

10
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

BÀI TẬP 1

11
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

BÀI TẬP 1
Chương trình điều khiển 1: Viết chương kiểm tra phím button được nhấn. Kết quả đếm hiển
thị dạng nhị phân trên LED
Chương trình điều khiển 2: Viết chương trình đếm số lần nhấn phím button. Kết quả đếm hiển
thị dạng nhị phân trên LED
Chương trình điều khiển 3: khi nhấn BTNC(1): LED0 sáng nhấp nháy 5 lần rồi tắt, khí nhấn
BTNU(16): LED0 sáng nhấp nháy 7 lần rồi tắt, khi nhấn BTND(2): LED0 sáng nhấp nháy 3 lần rồi
tắt.
Chương trình điều khiển 4: Khi nhấn BTNL(4), 8 LED sáng lần lượt từ trái qua phải rồi tắt, Khi
nhấn BTNR(8), 8 LED sáng lần lượt từ phải qua trái rồi tắt.
Chương trình điều khiển 5: thực hiện đếm tiến theo mã nhị phân số lần nhấn BTNU và đếm lùi
khi nhân BTND. Kết quả đếm hiển thị trên LED đơn.

12
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

BÀI TẬP 2
Thiết kế phần cứng như hình vẽ:

13
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

BÀI TẬP 2
• Viết chương trình điều khiển như sau:
• Khi sw1 = 1, đếm số lần nhấn phím BTNU(16). Kết quả đếm hiển thị dạng nhị phân trên LED
• Khi sw2 = 1, đếm số lần nhấn phím BTND(2). Kết quả đếm hiển thị dạng nhị phân trên LED
• Khi sw3 = 1, đếm số lần nhấn phím BTNC(1). Kết quả đếm hiển thị dạng nhị phân trên LED
• Khi sw4 = 1, đếm số lần nhấn phím BTNL(4). Kết quả đếm hiển thị dạng nhị phân trên LED
• Khi sw5 = 1, đếm số lần nhấn phím BTNR(8). Kết quả đếm hiển thị dạng nhị phân trên LED
• Các trường hợp còn lại của sw Led0 sáng nhấp nháy, Led 1-7 tắt

14
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

GPIO (TIẾP)

15
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

• Thiết kế hệ thống SoC gồm 1 VXL và 2 khối GPIO. Khối GPIO 1 kết nối với 8 LED (kênh 1) và nối
với 7 SW (kênh 2). Ngắt đặt trên kênh 1của GPIO 2. Khối GPIO 2 nối với 5 BTN.
• Viết chương trình kiểm tra xem có sw và button nào đồng thời được nhấn không? Phím được nhấn
hiển thị dạng nhị phân trên LED đơn sao cho 4 bít đầu biểu diễn giá trị button được nhấn, 4 bít sau
hiển thị giá trị sw được nhấn
• Viết chương trình đọc giá trị từ button. Nếu BTNC nhấn, Led sang lan từ giữa sang 2 bên. Nếu BTNU
nhấn, led sang lan từ 2 bên về giữa. Nếu BTNL nhấn, led sang lan từ trái qua phải. Nếu BTNR nhấn,
LED sang lan từ phải qua trái. Nếu nhấn BTND led4 sang nhấp nháy
• 00011000 – 00111100 – 01111110 – 11111111
• 10000001 – 11000011 – 11100111 - 11111111

16
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

BAÌ 3

Thiết kế hệ thống SoC gồm 1 VXL và 3 khối GPIO. Khối GPIO 1 kết nối với 8 LED GPIO2 nối với 7 SW Ngắt
đặt trên kênh 1của GPIO 3. Khối GPIO 3 nối với 5 BTN.
Viết chương trình :
Khi SW0 =1 khi BTNC bấm hệ thống tự động đếm tiến theo mã Gray
Khi BTND bấm hệ thống tự dộng đếm lùi theo mã Gray
Khi SW1 =1 BTNu bấm hệ thống tự động hiển thị theo mã vòng trên LED8
Khi BTNL bấm tốc độ chạy của mã vòng chậm dần
Khi SW2=1 Toàn bộ hệ thống reset về 0
Khi SW3 =1 8led sáng nhấp nháy
Các trường hợp còn lại LED0 sáng các led khác tắt

17
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

• If ( btn_value !=0 & sw_value !=0)


• Dữ liệu xuất ra: 4 bít đầu là btn_value. 4 bit sau sw_value
• int Data1 = btn_value%16 -- ví dụ 17  00010001
• 17%16 = 1  0001
• int Data2 = sw_value%16 -- vidu 00001010 <<4 = 10100000
• int Data = (data2<<4) | data1
• Xuất data ra led

18
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
TÊN HỌC PHẦN

BAI TAP

Thiết kế hệ thốn đếm với Kđ = 10, cho phép chọn tự động đếm tiến (SW0 = 1)
hoặc đếm lùi (SW1 = 1). Kết quả đếm hiển thị dạng thập phân trên LED 7 thanh.

19
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
TÊN HỌC PHẦN

BAI TAP

Thiết kế hệ thống SoC điều khiển màu của 4 LED RGB. Màu chuyển
từ đỏ sang trắng khi bấm BTN0 và từ trắng về đỏ khi bấm BTN3
• Thiết kế hệ thống đèn giao thông có 2 làn đường, mỗi làn có 1 LED (xanh, đỏ,
vàng) và 1 LED 7 thanh. Đèn đỏ sáng 8s, xanh sáng 6s, vàng sáng 2s. LED 7
thanh hiển thị thời gian đếm lùi của mỗi đèn

20
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
TÊN HỌC PHẦN

Click icon to add picture Click icon to add picture Click icon to add picture

21
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved

You might also like