1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI GIẢNG môn học hệ NHÚNG CHƯƠNG 3 VI điều KHIỂN và lập TRÌNH FIRMWARE

75 545 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 2,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Được xây dựng trên cơ sở ký hiệu tập lệnh của bộ vi xử lý tương ứng.. • Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý/ vi điều khiển hiểu được để thực hiện một thao tác xác định.. Các

Trang 1

BÀI GIẢNG MÔN HỌC HỆ NHÚNG

Chương 3: Vi điều khiển và lập trình firmware

3.1 Tổng quan vi điều khiển

3.2 Vi điều khiển họ 8051

3.3 Vi điều khiển ARM

Trang 2

3.1 Tổng quan vi điều khiển

Vi điều khiển <> Vi xử lý

Vi điều khiển: Computer On Chip (bao gồm cả CPU, Bộ nhớ, cổng vào ra)

Trang 3

Tổng quan vi điều khiển

• Một số dòng vi điều khiển phổ biến hiện nay

• 8051 (AT89C51, AT89S51, AT89S52)

• AVR (ATMEGA8, ATMEGA16…)

• PIC (PIC16F877A, PIC18F4550, PIC18F2550…)

• ARM (ARM7, ARM9, ARM Cortex-Mx, ARM Cortex-Ax)

• …

Trang 5

3.2 Vi điều khiển họ 8051

• Kiến trúc vi điều khiển 8051

• Lập trình firmware cho vi điều khiển 8051

Trang 6

3.2.1 Kiến trúc vi điều khiển 8051

Do hãng Intel thiết kế năm 1981

Gồm 40 chân

Có 4 cổng vào ra, mỗi cổng rộng 8 bit: P0, P1, P2, P3

Nhóm chân nguồn, dao động và điều khiển

Ngoại vi: UART

6 nguồn ngắt (2 ngắt ngoài)

2 bộ Timer/Counter

4KB Flash, 128 Byte Ram

Tần số xung nhịp tối đa: 24

Trang 7

Đóng vỏ vi điều khiển 8051

Trang 8

Kiến trúc vi điều khiển 8051

Trang 9

Các thanh ghi của 8051

• Các thanh ghi dùng để lưu tạm thời dữ liệu hoặc địa chỉ

• Các thanh ghi này chủ yếu là thanh ghi 8 bit

• Các thanh ghi thường được sử dụng

• Thanh ghi A : thanh ghi tích lũy

• Thanh ghi R0->R7

• Thanh ghi con trỏ dữ liệu DPTR (16 bit)

• Thanh ghi bộ đếm chương trình PC (16bit)

Trang 10

3.2.2 Lập trình vi điều khiển 8051

• Giới thiệu về lập trình hợp ngữ

• Lập trình C

Trang 11

Giới thiệu lập trình hợp ngữ

• Ngôn ngữ máy:

• Chỉ được biểu diễn bằng số nhị phân.

• Bộ vi xử lý chỉ hiểu được các chương trình mã máy.

• Con người rất khó khăn để tạo lập hay đọc hiểu chương trình ngôn ngữ máy.

• Hợp ngữ (Assembly Language):

• Là ngôn ngữ lập trình bậc thấp (gần ngôn ngữ máy nhất).

• Được xây dựng trên cơ sở ký hiệu tập lệnh của bộ vi xử lý tương ứng.

• Phụ thuộc hoàn toàn vào bộ vi xử lý cụ thể.

• Ngôn ngữ lập trình bậc cao:

• Gần với ngôn ngữ tự nhiên hơn.

• Được xây dựng độc lập với cấu trúc của máy tính.

Trang 12

Tập lệnh

• Mỗi bộ xử lý/ vi điều khiển có một tập lệnh xác định (mang

tính kế thừa trong cùng một dòng họ).

• Tập lệnh thường có hàng chục đến hàng trăm lệnh.

• Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý/ vi điều khiển

hiểu được để thực hiện một thao tác xác định.

• Các lệnh được mô tả bằng các kí hiệu gợi nhớ  các lệnh hợp

ngữ.

• Ví dụ: Lệnh ADD A, #3Ah

0 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0

Trang 13

Khuôn dạng của một lệnh máy

• Mã thao tác (Operation Code - Opcode): mã hóa cho thao

tác mà CPU phải thực hiện

• Tham chiếu toán hạng: mã hóa cho toán hạng hoặc nơi

chứa toán hạng mà thao tác sẽ tác động

• Toán hạng nguồn (Source Operand): dữ liệu vào của thao tác

Trang 15

Các chế độ địa chỉ

• Chế độ định địa chỉ thanh ghi

• Sử dụng thanh ghi để lưu trữ dữ liệu cần thao tác

• Thanh ghi nguồn và đích phải phù hợp về kích thước

• Không được chuyển dữ liệu giữa các thanh ghi R0->R7

• Ví dụ:

• MOV A, R0 ; Chuyển dữ liệu trong R0 vào A

Trang 16

Các chế độ địa chỉ

• Chế độ địa chỉ trực tiếp

• Toán hạng (nguồn hoặc đích) là địa chỉ của ô nhớ

• Trước địa chỉ ô nhớ không có dấu #

• Ví dụ:

• MOV A, 35h ;Dữ liệu trong ô nhớ có địa chỉ

; 35h được chuyển vào thanh ghi A

Trang 17

Các chế độ địa chỉ

• Chế độ định địa chỉ gián tiếp thanh ghi

• Địa chỉ ô nhớ chứa dữ liệu được chứa trong thanh ghi R0 hoặc R1

• Trước thanh ghi R0 hoặc R1 phải chèn thêm ký tự “@” để biểu thị cho chế độ địa chỉ này

• Ví dụ:

• MOV A,@R0 ;chuyển dữ liệu trong ô nhớ có ;địa chỉ được chỉ ra trong thanh ;ghi R0 vào thanh ghi A

Trang 19

Tập lệnh vi điều khiển 8051

Lệnh số học

ADD đích, nguồn Đích = đích + nguồn

ADDC đích, nguồn Đích = đích + nguồn + cờ nhớ

SUBB đích, nguồn Đích = đích – nguồn

INC nguồn Đích = đích + 1

DEC nguồn Đích = đích - 1

Trang 20

Tập lệnh vi điều khiển 8051

Lệnh truyền dữ liệu

MOV đích, nguồn Đích = nguồn (Bộ nhớ trong)

MOVX đích, nguồn Đích = nguồn (Thao tác bộ nhớ

ngoài)

XCHD Tráo đổi dữ liệu ( 4 bit thấp)

Trang 22

Tập lệnh vi điều khiển 8051

Lệnh rẽ nhánh

ACALL Gọi chương trình con, địa chỉ 11 bit

LCALL Gọi chương trình con, địa chỉ 16 bit

JZ, JNZ, JB, JNB… Lệnh nhảy có điều kiện (kiểm tra

bit)

Trang 24

Dữ liệu của chương trình

• Hợp ngữ cho phép biểu diễn dưới dạng:

• Số nhị phân: 1011b, 1011B,

• Số thập phân: 35, 35d, 35D,

• Số Hexa: 4Ah, 0ABCDh, 0FFFFH,

• Kí tự: "A", 'HELLO', "Bach Khoa",

• Tất cả các kiểu dữ liệu trên sau đó đều được trình dịch Assembler dịch ra mã nhị phân

• Mỗi kí tự được dịch thành mã ASCII tương ứng

• Chương trình không phân biệt 'A' với 41h hay 65

Trang 27

Một số lệnh cơ bản

• Lệnh ADD: cộng

• Cú pháp:

ADD A,nguồn ;cộng toán hạng

;nguồn vào thanh ghi A

• Lệnh MOV: chuyển dữ liệu

• Cú pháp

MOV đích, gốc ;chuyển dữ liệu từ toán hạng

;gốc vào toán hạng đích

Trang 28

Dịch và chạy chương trình

Trang 29

Ví dụ sử dụng lệnh ADD, MOV

ORG 000 ;Dia chi bat dau cua chuong trinh MOV R5, #25h ;Nap 25h vao R5

MOV R7, #34h ;Nap 34h vao R7

MOV A, #0 ;Nap 0 vao thanh ghi A

ADD A, R7 ;A=A+R7 (A=25h+34h)

HERE: SJMP HERE ;O lai trong vong lap

END

Sử dụng các lệnh ADD, MOV

Trang 31

3.3 Vi điều khiển họ ARM

• Kiến trúc tổng quan lõi vi xử lý ARM

• Kiến trúc vi điều khiển lõi ARM920T (S3C2440)

• Lập trình ứng dụng trên hệ điều hành Linux nhúng

Trang 32

Kiến trúc tổng quan lõi vi xử lý ARM

• ARM là dòng vi xử lý 32 bit được thiết kế theo kiến trúc tập lệnh RISC (Reduced Instruction Set Computer)

• ARM viết tắt của

• Advanced RISC Machine

• Acorn RISC Machine

• ARM là kiến trúc được sử dụng rộng rãi trong các hệ thống nhúng: Mobile phones, PDAs, thiết bị điện tử gia dụng…

Trang 33

Kiến trúc tổng quan vi xử lý lõi ARM

• Kế thừa các đặc điểm của kiến trúc tập lệnh RISC

• Số lượng thanh ghi lớn và có kích thước giống nhau

• Tập lệnh load/store, không cho phép các thao tác xử lý dữ liệu trực tiếp trên

bộ nhớ

• Chế độ địa chỉ đơn giản (ít chế độ địa chỉ hơn kiến trúc CISC)

• Phát triển các đặc trưng mới của ARM

• Các lệnh có kết hợp với lệnh dịch hoặc các lệnh logic

• Chế độ địa chỉ tự động tăng-giảm để tối ưu hóa các vòng lặp

• Nạp và lưu (load/store) nhiều lệnh cùng lúc cho phép nâng cao thông lượng

Trang 34

Kiến trúc tổng quan lõi vi xử lý ARM

Trang 35

• Thumb Instruction Set: tập lệnh 16 bit cho phép tăng mật độ lệnh

• Jazelle: công nghệ cho phép tăng tốc các ứng dụng viết bằng Java

• SIMD, NEON: công nghệ nâng cao hiệu năng cho các ứng dụng Video/Audio

• TrustZone: công nghệ nâng cao tính bảo mật

Công nghệ đặc trưng

Trang 36

So sánh hiệu năng các dòng ARM

Trang 37

Kiến trúc tổng quan vi xử lý lõi ARM

• ARM được rất nhiều hãng phát triển và sản xuất, ở Việt Nam phổ biến chip ARM của các hãng

• ATMEL: AT91SAM7, AT91SAM9…

• NXP: LPC2138, LPC2148, LPC2300…

• TI (Texas Instrument): TMS470, TMS570…

• SAMSUNG: S3C2440

• …

Trang 38

Kiến trúc vi điều khiển S3C2440

• Đặc điểm của chip S3C2440

• Core:

• ARM920T core , 16 Kbytes Data Cache, 16 Kbytes Instruction cache

• Xung nhịp tối đa: 400 MHz

• Memories

• Giao diện bus AMBA (Advanced Micro controller Bus Architecture)

• 4 KByte SRAM nội

Trang 39

Lõi vi xử lý ARM920T

Trang 40

Kiến trúc vi điều khiển S3C2440

• Đặc điểm của chip S3C2440 (tiếp)

• Multimedia Card Interface

• ADC 10 bit 8 kênh

• Giao tiếp cảm biến ảnh (Image Sensor)

• Điều khiển LCD

• Điều khiển AC97 audio codec

Trang 41

Kiến trúc vi điều khiển S3C2440

• Đặc điểm của chip S3C2440(tiếp)

• Hệ thống

• 4 kênh DMA (Direct Memory Access)

• Boot hệ thống từ NOR Flash, NAND Flash, SDCard, Ethernet

• Bộ điều khiển ngắt nâng cao AIC(Advanced Interrupt Controller)

• Vào ra

• 130 chân vào ra lập trình được

Trang 43

Tập thanh ghi và chế độ hoạt động

Trang 44

Thanh ghi trạng thái chương trình

Các cờ kết quả hoạt động của ALU

Điều khiển cho phép/cấm ngắt

Thiết lập chế độ hoạt động

Trang 45

Mode bits

Trang 46

Tập lệnh của S3C2440

• Tập lệnh ARM chia thành các nhóm lệnh

• Lệnh rẽ nhánh (Branch)

• Lệnh xử lý dữ liệu (Data Processing)

• Trao đổi thanh ghi trạng thái (Status Register Transfer)

• Nạp và lưu (Load and Store)

• Phát sinh ngoại lệ (Exception-Generating)

Trang 47

Bản đồ bộ nhớ

• Bus địa chỉ 32 bit

• Địa chỉ bắt đầu: 0x00000000

• Địa chỉ kết thúc: 0x40000000

• Chia thành nhiều bank nhớ, mỗi bank 128 MB, tổng không gian bộ nhớ 1GB

• 6 bank nhớ cho ROM, SRAM

• 2 bank nhớ cho ROM, SRAM, SDRAM, ….

• Hỗ trợ cả hai kiểu lưu trữ: little endian, big endian

Trang 50

Giới thiệu KIT nhúng mini2440

Trang 51

Giới thiệu KIT nhúng mini2440

Trang 52

Giới thiệu KIT nhúng mini2440

• Thông số kỹ thuật

Trang 53

Giới thiệu KIT nhúng mini2440

Trang 54

Môi trường phát triển ứng dụng

Trang 55

Môi trường phát triển ứng dụng

Trang 56

• Chạy chương trình trên nền hệ điều hành Linux nhúng

• Trên KIT cài TFTP client

• Trên máy phát triển, cài TFTP server

• Trên KIT dùng lệnh TFTP để download chương trình

Trang 57

Demo

Trang 58

Thảo luận

Trang 59

Lập trình ứng dụng trên Linux

• Cài đặt môi trường phát triển

• Xây dựng chương trình HelloWorld

• Lập trình vào ra căn bản

• Lập trình xử lý ngắt

• Lập trình giao tiếp cổng COM

• Lập trình ứng dụng đồ họa

Trang 60

Cài đặt môi trường phát triển

• Môi trường phát triển

• Hệ điều hành Linux (Ubuntu 9.04)

• Trình biên dịch chéo: ARM Linux GCC 4.3.2

Trang 61

Xây dựng chương trình Hello World

Bước 1: viết code chương trình

Bước 2: dịch chương trình

-Cách 1: dùng lệnh make

-Cách 2: dùng lệnh tường minh

arm-linux-gcc –o OutputFile Source.c

Bước 3: dùng tftp download chương trình xuống dưới KIT

tftp –l localfile –r remotefile –g ServerIP

Bước 4: chạy chương trình trên KIT

Trang 62

Lập trình giao tiếp cổng COM

• Khởi tạo: Khai báo thư viện

• Bước 1: Mở cổng

• Bước 2: Thiết lập tham số

• Bước 3: Đọc, ghi cổng

• Bước 4: Đóng cổng

Trang 63

Khai báo thư viện

• #include <stdio.h>

• #include <stdlib.h>

• #include <string.h>

• #include <unistd.h> // UNIX standard function

• #include <fcntl.h> // File control definitions

• #include <errno.h> // Error number definitions

• #include <termios.h> // POSIX terminal control

• #include <time.h> // time calls

Trang 64

Bước 1: Mở cổng

• Sử dụng lệnh mở file

int fd = open ("/dev/ttyUSB0", O_RDWR);

• Fd >0 nếu mở file thành công

• Fd<0 nếu mở file thất bại

Trang 65

Bước 2: Thiết lập tham số

port_settings.c_cflag &= ~PARENB;

port_settings.c_cflag &= ~CSTOPB;

port_settings.c_cflag &= ~CSIZE;

port_settings.c_cflag |= CS8;

tcsetattr(fd, TCSANOW, &port_settings);

Trang 66

Bước 3: Đọc, ghi cổng

• Đọc cổng: sử dụng lệnh đọc file

n=read(fd,&result,sizeof(result));

N: số ký tự đọc được

Result: chứa kết quả

• Ghi cổng: sử dụng lệnh ghi file

n=write(fd,“Hello World\r",12);

N:số ký tự đã ghi

Fd: file id (có được từ thao tác mở file thành công)

Trang 68

Lập trình ứng dụng đồ họa

• Sử dụng nền tảng QT của Nokia

• Ứng dụng đa nền: Desktop, mobile, embedded computer

• Viết code 1 lần duy nhất, chạy trên nhiều nền tảng khác nhau

• Sử dụng ngôn ngữ C/C++

• Hỗ trợ các nền tảng: Windows, Linux, Embedded Linux, Win CE, Symbian, Maemo…

• Có thể tích hợp với các IDE thông dụng: Visual Studio, Eclipse

• Tham khảo: qt.nokia.com; qtcentre.org

Trang 69

Ứng dụng QT

Trang 70

Kiến trúc QT SDK

Trang 71

Cơ chế Signals and Slot của QT

• Signals: tương tự Event

• Slot: tương tự Event Handler

connect(sender, SIGNAL(signal), receiver, SLOT(slot));

VD: đồng bộ hai điều khiển trên QT

Trang 72

Môi trường phát triển

• IDE

1) QT Creator

2) Tích hợp vào Visual Studio, Eclipse

• Chương trình dịch: qmake

1) Qmake for Windows

2) Qmake for Linux

3) Qmake for Embedded Linux

Trang 73

QT Creator

Trang 74

Demo

Trang 75

Thảo luận

Ngày đăng: 13/11/2015, 18:37

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w