You are on page 1of 16

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 UART

• UART – Universal asynchronous receiver transmitter là bộ truyền nhận nối tiếp bất
đồng bộ. Các UART giao tiếp giữa hai nút riêng biệt bằng cách sử dụng một cặp dẫn và
một nối đất chung.

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

TRUYỀN THÔNG UART

• có hai loại UART có sẵn là truyền UART và nhận UART và giao tiếp giữa hai loại này có
thể được thực hiện trực tiếp với nhau. Đối với điều này, chỉ cần hai cáp để giao tiếp
giữa hai UART. Luồng dữ liệu sẽ từ cả hai chân truyền (Tx) và nhận (Rx) của UARTs.
Trong UART, việc truyền dữ liệu từ Tx UART sang Rx UART có thể được thực hiện
không đồng bộ (không có tín hiệu CLK để đồng bộ hóa các bit o / p).

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

CÁC KHÁI NIỆM QUAN TRỌNG TRONG CHUẨN


TRUYỀN THÔNG UART
• Baudrate: Số bit truyền được trong 1s, ở truyền nhận không đồng bộ thì ở các bên
truyền và nhận phải thống nhất Baudrate. Các thông số tốc độ Baudrate thường hay sử
dụng dể giao tiếp với máy tính là
600,1200,2400,4800,9600,14400,19200,38400,56000,57600,115200.
• Frame: Ngoài việc giống nhau của tốc độ baud 2 thiết bị truyền nhận thì khung truyền
của bên cũng được cấu hình giống nhau. Khung truyền quy định số bit trong mỗi lần
truyền, bit bắt đầu “Start bit”, các bit kết thúc (Stop bit), bit kiểm tra tính chẵn lẻ (Parity),
ngoài ra số bit quy định trong một gói dữ liệu cũng được quy định bởi khung truyền. Có
thể thấy, khung truyền đóng một vai trò rất quan trọng trong việc truyền thành công dữ
liệu.

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

CÁC KHÁI NIỆM QUAN TRỌNG TRONG CHUẨN


TRUYỀN THÔNG UART

• Start bit: Bit đầu tiên được truyền trong một frame, bit này có chức năng báo cho bên
nhận rằng sắp có một gói dữ liệu truyền đến. Đường truyền UART luôn ở trạng thái cao
mức “1” cho đến khi chip muốn truyền dữ liệu đi thì nó gởi bit start bằng cách kéo xuống
mức “0”. Như vậy start bit giá trị điện áp 0V và phải bắt buộc có bit start trong khung
truyền.
• Data: Data hay dữ liệu là thông tin mà chúng ta nhận được trong quá trình truyền và
nhận. Data trong STM32 có quy định khung truyền là 8bit hoặc 9bit. Trong quá trình
truyền UART, bit có trọng số thấp nhất (LSB – least significant bit – bên phải) sẽ được
truyền trước và cuối cùng là bit có ảnh hưởng cao nhất (MSB – most significant bit – bên
trái)
5
Website: https://haui.edu.vn © 2021 Hanoi University of Industry All rights reserved
THIẾT KẾ HỆ THỐNG NHÚNG

CÁC KHÁI NIỆM QUAN TRỌNG TRONG CHUẨN


TRUYỀN THÔNG UART

• Parity bit: Parity dùng để kiểm tra dữ liệu truyền có đúng hay không. Có 2 loại Parity đó
là Parity chẵn (even parity) và parity lẽ (odd parity). Parity chẵn nghĩa là số bit 1 trong
trong data truyền cùng với bit Parity luôn là số chẵn, ngược lại nếu Parity lẽ nghĩa là số
bit 1 trong data truyền cùng với bit Parity luôn là số lẽ. Bit Parity không phải là bit bắt
buộc và vì thế chúng ta có thể loại bỏ bit này ra khỏi khung truyền.
• Stop bits: Stop bits là một bit báo cáo để cho bộ truyền/nhận biết được gói dữ liệu đã
được gởi xong. Stop bits là bit bắt buộc phải có trong khung truyền. Stop bits có thể là
1bit, 1.5bit, 2bit, 0.5bit tùy thuộc vào ứng dụng UART của người sử dụ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


Bước 1: Tạo project mới: chọn Arty boad
Bước 2: Tạo thiết kế mới: “Create Block Design”
Chọn Khối tạo xung “System Clock” : sửa tham số clk1 = 166.667 và clk2 = 200
Chọn khối bộ nhớ DDR3 : kết nói xung clk
Chọn vi xử lý MicroBlaze
Chọn khói giao tiếp UART
Thiết lập các chân GPIO
Bước 3: “ Create HDL Wrapper…” để tạo file HDL
Bước 4: Export sang SDK

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 <stdio.h>


• #include "platform.h"
• #include "xil_printf.h"
• #include "xparameters.h"
• #include "xgpio.h"
• #include "xuartlite.h“
• Khai báo Biến Xgpio, XUartLite_Config , XUartLite;

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 UART

• Cấu hình UART


• Config_0 = XUartLite_LookupConfig(XPAR_AXI_UARTLITE_0_DEVICE_ID);
• status = XUartLite_CfgInitialize (&Uart_PS_0, Config_0, Config_0->RegBaseAddr);
• Truyền và nhận dữ liệu:

• unsigned int XUartLite_Send(XUartLite *InstancePtr, u8 *DataBufferPtr,


• unsigned int NumBytes);
• unsigned int XUartLite_Recv(XUartLite *InstancePtr, u8 *DataBufferPtr,
• unsigned int NumBytes);

9
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 trình khi nhấn BTN0 thì gửi 1 ký tự “A” lên máy
tính qua UART
Chương trình điều khiển 2: Viết chương trình kiểm tra xem BTN nào vừa được nhấn.
Gửi thông báo qua UART lên máy tính
Chương trình điều khiển 2: Viết chương trình VĐK nhận dữ liệu qua UART nếu nhận
được ký tự “A” LED0 sáng, nhận ký tự “B” LED1 sáng….

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

• Viết chương trình kiểm tra xem phím BTN nào được bấm.
• Nếu BTN0 bấm, led0 sáng nhấp nháy 5 lần đồng thời hiển thị trên màn hình terminal
dòng chữ “ BTN0 vua dươc nhan, LED0 dang nhap nhay”
• Nếu BTN1 bấm, led1 sáng nhấp nháy đồng thời hiển thị trên màn hình terminal dòng
chữ “ BTN1 vua dươc nhan, LED1 dang nhap nhay ”
• Nếu BTN2 bấm, 4 RGB led sáng nhấp nháy màu đỏ đồng thời hiển thị trên màn hình
terminal dòng chữ “ BTN2 vua dươc nhan, các led đo sang nhap nhay”

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 2
Viết chương trình khi gửi chuỗi
“R” led sáng màu đỏ
Gửi “B” led sáng màu blue
Gửi “G” led sáng màu xanh lá

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

• #include "xparameters.h"

• #include "xgpio.h"

• #include "xuartlite.h"

• #define btnid XPAR_AXI_GPIO_BTN_DEVICE_ID • while(1){


• XGpio btn;
• x = XGpio_DiscreteRead(&btn,1);
• XUartLite_Config *conf;

• XUartLite uart; • if (x==0b0001)


• char thongbao[15] = "\n\r ban nhan BTN ";
• { XUartLite_Send(&uart,thongbao,15);
• u8 t;

• void delay(int n){ • t = '0';


• int i1;
• XUartLite_Send(&uart,&t,2);
• for(i1=0;i1<n;i1++);

• } • }
• int main(){
• delay(100000);
• int x;

• XGpio_Initialize(&btn,btnid); • }
• XGpio_SetDataDirection(&btn,1,1);
• }
• conf = XUartLite_LookupConfig(XPAR_AXI_UARTLITE_0_DEVICE_ID);

• XUartLite_CfgInitialize(&uart,conf,conf->RegBaseAddr);

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

VIẾT CÁC CHƯƠNG TRÌNH ĐIỀU KHIỂN NHẬN VÀ GỬI DỮ LIỆU QUA UART
KHI BẬT VÀ TẮT SW
BÀI 3: THIẾT KẾ GIỐNG BÀI 1, DÙNG NGẮT. VIẾT CHƯƠNG TRÌNH NHƯ BÀI 1

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

15
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

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

You might also like