Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
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
Nội dung
BÀI GIẢNG MÔN HỌC HỆ NHÚNG Chương 3: Vi điều khiển 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 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 CPU, Bộ nhớ, cổng vào ra) Tổng quan vi điều khiển • Một số dòng vi điều khiển phổ biến • • • • • 8051 (AT89C51, AT89S51, AT89S52) AVR (ATMEGA8, ATMEGA16…) PIC (PIC16F877A, PIC18F4550, PIC18F2550…) ARM (ARM7, ARM9, ARM Cortex-Mx, ARM Cortex-Ax) … Lập trình vi điều khiển • Lập trình vào cổng (trên cổng chân cổng) • Lập trình sử dụng ngắt • Lập trình với môđun ngoại vi: UART, SPI, I2C… •… 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 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ó cổng vào ra, cổng rộng bit: P0, P1, P2, P3 Nhóm chân nguồn, dao động điều khiển Ngoại vi: UART 6 nguồn ngắt (2 ngắt ngoài) 2 Timer/Counter 4KB Flash, 128 Byte Ram Tần số xung nhịp tối đa: 24 MHz Đóng vỏ vi điều khiển 8051 Kiến trúc vi điều khiển 8051 Các ghi 8051 • Các ghi dùng để lưu tạm thời liệu địa • Các ghi chủ yếu ghi bit • Các ghi thường sử dụng • • • • Thanh ghi A : ghi tích lũy Thanh ghi R0->R7 Thanh ghi trỏ liệu DPTR (16 bit) Thanh ghi đếm chương trình PC (16bit) 3.2.2 Lập trình vi điều khiển 8051 • Giới thiệu lập trình hợp ngữ • Lập trình C 10 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 KIT tftp –l localfile –r remotefile –g ServerIP Bước 4: chạy chương trình KIT 61 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 62 Khai báo thư viện • #include • #include • #include • #include // UNIX standard function • #include // File control definitions • #include // Error number definitions • #include // POSIX terminal control • #include // time calls 63 Bước 1: Mở cổng • Sử dụng lệnh mở file int fd = open ("/dev/ttyUSB0", O_RDWR); • Fd >0 mở file thành công • Fd[...]... RET END 30 ;Dia chi bat dau cua chuong trinh ;Nhap nhay led o chan P1.0 ;Tao tre 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 31 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... lệnh vi điều khiển 8051 Lệnh rẽ nhánh Lệnh Giải thích ACALL Gọi chương trình con, địa chỉ 11 bit LCALL Gọi chương trình con, địa chỉ 16 bit RET Trở về từ chương trình con JMP Lệnh nhảy không điều kiện JZ, JNZ, JB, JNB… Lệnh nhảy có điều kiện (kiểm tra bit) 22 Cú pháp của hợp ngữ • Một chương trình hợp ngữ bao gồm một chuỗi các dòng lệnh hợp ngữ • Một lệnh hợp ngữ có một từ gợi nhớ (ADD, SUBB, MOV…) và. ..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ý... 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 33 Kiến trúc tổng quan lõi vi xử lý ARM Kiến trúc các dòng ARM 34 Công nghệ đặc trưng • 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... “@” để biểu thị cho chế độ địa chỉ này • Ví dụ: • MOV A,@R0 ;chuyển dữ liệu trong ô nhớ có trong thanh ;ghi R0 vào thanh ghi A 17 ;địa chỉ được chỉ ra Tập lệnh vi điều khiển 8051 • Lệnh số học • Lệnh truyền dữ liệu • Lệnh logic • Xử lý bit • Lệnh rẽ nhánh 18 Tập lệnh vi điều khiển 8051 Lệnh số học Lệnh Giải thích ADD đích, nguồn Đích = đích + nguồn ADDC đích, nguồn Đích = đích + nguồn + cờ nhớ SUBB đích,... 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 11 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... hạng ;nguồn vào thanh ghi A • Lệnh MOV: chuyển dữ liệu • Cú pháp MOV đích, gốc 27 ;chuyển dữ liệu từ toán hạng ;gốc vào toán hạng đích Dịch và chạy chương trình 28 Ví dụ sử dụng lệnh ADD, MOV ORG 000 MOV R5, #25h MOV R7, #34 h MOV A, #0 ADD A, R5 ADD A, R7 HERE: SJMP HERE END ;Dia chi bat dau cua chuong trinh ;Nap 25h vao R5 ;Nap 34 h vao R7 ;Nap 0 vao thanh ghi A ;A=A+R5 ;A=A+R7 (A=25h +34 h) ;O lai trong... hợp ngữ có một từ gợi nhớ (ADD, SUBB, MOV…) và tùy vào từng lệnh mà sau đó không, một hay hai toán hạng • Lệnh hợp ngữ gồm có 4 thành phần [nhãn:] [từ gợi nhớ] [các toán hạng] [;chú giải] Ví dụ: bat_dau: MOV A,#25 ;Khởi gán A=25 23 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 , 35 d, 35 D, Số Hexa: 4Ah, 0ABCDh, 0FFFFH, Kí tự: "A",... nguồn Đích = đích - 1 MUL AB A*B DIV AB A/B 19 Tập lệnh vi điều khiển 8051 Lệnh truyền dữ liệu Lệnh Giải thích MOV đích, nguồn Đích = nguồn (Bộ nhớ trong) MOVX đích, nguồn Đích = nguồn (Thao tác bộ nhớ ngoài) PUSH Đẩy dữ liệu vào đỉnh ngăn xếp POP Lấy dữ liệu từ đỉnh ngăn xếp XCH Tráo đổi dữ liệu XCHD Tráo đổi dữ liệu ( 4 bit thấp) 20 Tập lệnh vi điều khiển 8051 Lệnh logic Lệnh Giải thích ANL Lệnh “AND”... 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… 32 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ộ ... … Lập trình vi điều khiển • Lập trình vào cổng (trên cổng chân cổng) • Lập trình sử dụng ngắt • Lập trình với môđun ngoại vi: UART, SPI, I2C… •… 3. 2 Vi điều khiển họ 8051 • Kiến trúc vi điều khiển. . .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 CPU, Bộ nhớ, cổng vào ra) Tổng quan vi điều khiển • Một số dòng vi điều khiển phổ biến... chương trình PC (16bit) 3. 2.2 Lập trình vi điều khiển 8051 • Giới thiệu lập trình hợp ngữ • Lập trình C 10 Giới thiệu lập trình hợp ngữ • Ngôn ngữ máy: • Chỉ biểu diễn số nhị phân • Bộ vi xử lý