Cơ sở dữ liệu - Chương 10: Vi điều khiển H8
Bạn đang xem 20 trang mẫu của tài liệu "Cơ sở dữ liệu - Chương 10: Vi điều khiển H8", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- co_so_du_lieu_chuong_10_vi_dieu_khien_h8.pdf
Nội dung text: Cơ sở dữ liệu - Chương 10: Vi điều khiển H8
- dce 2009 Chương 10 Vi điều khiển H8 BK TP.HCM ©2009, CE Department
- dce 2009 Nội dung • Tổng quan về họ vi điều khiển H8 • Vi điều khiển H8SX/1582 • Chức năng ngoại vi của H8SX/1582 • Tài liệu tham khảo: – www.renesas.com ©2009, CE Department
- dce 2009 Vi điều khiển H8 ©2009, CE Department
- dce 2009 Vi điều khiển H8 ©2009, CE Department
- dce 2009 Vi điều khiển H8 ©2009, CE Department
- dce 2009 Vi xử lý H8SX • CPU CISC 32-bit tốc độ cao • 8 thanh ghi đa dụng 32-bit (có thể sử dụng như 16 thanh ghi 16-bit hay 16 thanh ghi 8-bit) • Tập lệnh gồm 87 lệnh • 11 phương thức định địa chỉ • 2 thanh ghi nền – Vector base register – Short address base register • Quản lý 4-Gbyte không gian bộ nhớ chương trình và dữ liệu • CPU có 4 chế độ hoạt động – Normal mode – Middle mode – Advanced mode – Maximum mode ©2009, CE Department
- dce 2009 Vi xử lý H8SX • Chế độ nguồn giảm • Lệnh SLEEP chuyển sang chế đọ này • Lựa chọn tốc độ clock hoạt động của CPU • Tính toán tốc độ cao • Hầu hết các lệnh thông dụng thực thi trong 1 hoặc 2 chu kỳ • Cộng trừ hai thanh ghi 8/16/32-bit : 1 chu kỳ • Nhân hai thanh ghi 8-bit x 8-bit: 1 chu kì • Chia hai thanh ghi 16-bit ÷ 8-bit : 10 chu kì • Nhân hai thanh ghi 16-bit x 16-bit : 1 chu kì • Chia hai thanh ghi 32-bit ÷ 16-bit : 18 chu kì • Nhân hai thanh ghi 32-bit x 32-bit : 5 chu kì • Chia hai thanh ghi 32-bit ÷ 32-bit : 18 chu kì ©2009, CE Department
- dce 2009 Vi xử lý H8SX • Normal mode : không gian địa chỉ lớn nhất 64Kbyte có thể truy xuất. • Middle mode : Không gian địa chỉ lớn nhất có thể truy xuất được là 16Mbyte (tổng của vùng chương trình và dữ liệu). Đối với từng phần khác nhau thì, đến 16 Mbyte cho vùng chương trình hoặc đến 64Kbyte cho vùng dữ liệu. • Advance mode : Không gian địa chỉ lớn nhất 4 Gbyte có thể được truy xuất một cách tuyến tính. Đối với các vùng khác nhau, vùng chương trình lên đến 16Mbyte và vùng dữ liệu lên đến 4Gbyte có thể được cấp phát . • Maximum mode : Vùng không gian địa chỉ lớn nhất có thể truy xuất một cách tuyến tính là 4Gbyte. ©2009, CE Department
- dce 2009 Tập thanh ghi H8SX • Bộ thanh ghi đa dụng 1531 0 715 0 7 0 ER0 E0 R0 E0 R0H R0L ER1 E1 R1 E1 R1H R1L ER2 E2 R2 E2 R2H R2L ER3 E3 R3 E3 R3H R3L ER4 E4 R4 E4 R4H R4L ER5 E5 R5 E5 R5H R5L ER6 E6 R6 E6 R6H R6L (SP) ER7 E7 R7 E7 R7H R7L ©2009, CE Department
- dce 2009 Tập thanh ghi H8SX • Bộ thanh ghi điều khiển 31 0 PC 7 6 5 4 3 2 1 0 I : Interrupt mask bit N : Negative flag CCR I UI H U N Z V C UI : User bit/ Interrupt mask bit Z : Zero flag H : Half carry bit V : Overflow flag 7 6 5 4 3 2 1 0 U : User bit C : Carry flag EXR T - - - - I2 I1 I0 31 12 0 VBR (không dùng) 31 8 0 SBR (không dùng) 63 41 32 (dấu mở rộng) MACH MAC MACL 31 0 ©2009, CE Department
- dce 2009 Tập thanh ghi H8SX • VBR (Vector Base Register) Giá trị của VBR là địa chỉ nền của vùng vector ngoại lệ (trừ reset và lỗi địa chỉ CPU). Người dùng có thể đặt bảng vector tại một địa chỉ bằng cách thiết lập giá trị thanh ghi này (20 bit cao được dùng). 31 12 0 VBR (không dùng) Ví dụ thanh ghi được khởi tạo giá trị H’3000. Địa chỉ của mỗi vector ngắt là H’3000 + (địa chỉ vector của nguồn ngắt ©2009, CE Department
- dce 2009 Tập thanh ghi H8SX • SBR (Short Address Base Register) Thanh ghi SBR thiết lập vùng bắt đầu cho không gian địa chỉ tuyệt đối 8-bit (@aa:8). Chỉ 24 bit cao được sử dụng. 31 8 0 SBR (không dùng) Không SBR gian địa chỉ tuyệt dối 8-bit ©2009, CE Department
- dce 2009 Tập thanh ghi H8SX • Định dạng dữ liệu trong bộ nhớ Data type Address Data format 7 0 1-bit data Address L 7 6 5 4 3 2 1 0 Address L Byte data MSB LSB Address 2M Word data MSB Address 2M+1 LSB Address 2N Long word data MSB 2N +1 2N +2 2N +3 LSB ©2009, CE Department
- dce 2009 Định vị địa chỉ • Trực tiếp thanh ghi: Rn • Gián tiếp thanh ghi: @ERn • Gián tiếp thanh ghi với độ dịch: @(d:2, ERn), @(d:16, ERn), @(d:32, ERn) • Gián tiếp thanh ghi chỉ số với độ dời: @(d:16,RnL.B), @(d:32,RnL.B), @(d:16,Rn.W), @(d:32,Rn.W), @(d:16,ERn.L),@(d:32,ERn.L) • Gián tiếp thanh ghi với tăng hoặc giảm: @ERn+, @-ERn, @+ERn, @ERn- • Trực tiếp: #xx • Địa chỉ tuyệt đối: @aa:8, @aa:16, @aa:24, @aa:32 • Thanh ghi PC tương đối: @(d:8,PC), @(d:16,PC) • PC tương đối với thanh ghi đánh chỉ số: @(RnL, B, PC), @(Rn, W, PC), @(ERn, L, PC) • Gián tiếp bộ nhớ: @@aa:8 • Gián tiếp bộ nhớ mở rộng: @@vec:7 ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Dạng thức lệnh ADD.Sz , Toán hạng đích : thanh ghi, hằng (trị), tên (địa chỉ), địa chỉ trực tiếp Toán hạng nguồn : thanh ghi, hằng (trị), tên (địa chỉ), địa chỉ trực tiếp Kích thước toán hạng : B (byte), W (word), L (Longword) Tên gợi nhớ : ADD, MOV ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Các qui tắc biểu diễn hệ thống số, nhãn – Các ký tự dùng để đặt tên cho nhãn : a - z A - Z 0 - 9 ? @ _ $ . và bắt đầu bằng một ký tự khác số. – Số hệ 2 : B’××××××××(B’10110101) – Số hệ 10: mặc định hoặc D’××××× (32767,D’ 4509) – Số hệ 16: H’×××× (H’1A97, H’E05B) ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Dạng chương trình ; chú thích dòng chú thích, bắt đầu bằng dấu ‘;’ ‘.CPU’ cho biết tên CPU, chế độ hoạt động .CPU H8SXA ‘.SECTION’ đặc tả section trong bộ nhớ .SECTION PROG, CODE, LOCATE=H’1000 tên của section code : section chứa lệnh data : section chứa khai báo dữ liệu .SECTION D_ROM, DATA, LOCATE=H’2000 .SECTION D_RAM, DATA, LOCATE=H’FF9000 địa chỉ bắt đầu của section .END kết thúc file ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Khai báo hằng .CPU H8SXA DATA1 : .EQU H‘2000 Tên hằng DATA2 : .EQU H‘2001 Lệnh khai báo hằng ANSW : .EQU H‘2002 Giá trị hằng .SECTION PROG, CODE, LOCATE=H’1000 MOV.B @DATA1, R0L MOV.B @DATA2, R1L ADD.B R0L, R1L DATA1 X X MOV.B R1L, @ANSW DATA2 X X .END ANSW ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Khai báo dữ liệu trong section data .SECTION D_RAM, DATA, LOCATE=H’0FF9000 DATA1: .RES.B 2 DATA2: .RES.W 1 Số block cần cấp phát .END Lệnh khai báo vùng nhớ cho biến (.B, .L,.W : kích thước của một block) Địa chỉ của biến (tên) H’0FF9000 DATA1 H’0FF9002 DATA2 ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Khai báo dữ liệu trong section data .SECTION D_ROM, DATA, LOCATE=H’02001 DATA1: .DATA.B 5, 10, H’20 DATA2: .DATA.W H’500 Giá trị được đưa vào .END vùng nhớ Lệnh khai báo giá trị (.B, .L,.W : kích thước của một block) H’2001 DATA1 05 Địa chỉ của biến (tên) 10 H’20 H’2004 DATA2 H’05 H’00 ©2009, CE Department
- dce 2009 Hợp ngữ H8SX • Ví dụ .CPU H8SXA .SECTION PROG, CODE, LOCATE=H’1000 MOV.B @DATA1, R0L MOV.B @DATA2, R1L ADD.B R0L, R1L MOV.B R1L, @ANSWER ABC : BRA ABC .SECTION D_ROM, DATA, LOCATE=H’02000 DATA1 : .DATA.B 10 DATA2 : .DATA.B 100 .SECTION D_RAM, DATA, LOCATE=H’0FF9000 ANSWER : .RES.B 1 .END ©2009, CE Department
- dce 2009 Tập lệnh H8SX • Nhóm lệnh truyền dữ liệu MOV MOVA PUSH EEPMOV MOVSD POP LDM STM MOVM D • Nhóm lệnh phép toán số học ADD ADDX SUB SUBX ADDS SUBS CMP NEG INC DEC DAA DAS MULXU MULXS DIVXU DIVXS MULU DIVU MULS DIVS MULU/U MULS/U EXTU EXTS TAS MAC LDMAC STMAC CLRMAC ©2009, CE Department
- dce 2009 Tập lệnh H8SX • Nhóm lệnh phép toán luận lý AND OR XOR NOT • Nhóm lệnh thao tác trên bit BSET BCLR BNOT BTST BAND BIAND BOR BIOR BXOR BIXOR BLD BILD BST BIST BSET/EQ BSET/NE BCLR/EQ BCLR/NE BSTZ BISTZ BFLD BFST ©2009, CE Department
- dce 2009 Tập lệnh H8SX • Nhóm lệnh dịch kí số SHLL SHLR SHAL SHAR ROTR ROTXL ROTXR ROTL • Nhóm lệnh rẽ nhánh BRA/BS BRA/BC BSR/BS BSR/BC JMP BSR JSR RTS RTS/L BRA/S • Nhóm lệnh điều khiển hệ thống TRAPA RTE SLEEP NOP RTE/L LDC STC ANDC ORC XORC ©2009, CE Department
- dce 2009 Vi điều khiển H8SX • H8SX CPU • Tính toán tốc độ cao: lệnh căn bản tốn 1 chu kỳ. • Thời gian thưc thi lệnh tối thiểu: 21 ns (48 MHz @5V). • Nhân chia 32-bit. • Vcc: 5V. • Độ rộng bus được mở rộng • H8SX CPU • On-chip flash ROM: 256 Kbyte • Internal RAM: 12 Kbyte • Tăng cường khối ngoại vi • Timer 16-bit (TPU): 12 kênh • Bộ tạo xung output (PPG) hoạt động cùng TPU • Giao tiếp nối tiếp bất đồng bộ/đồng bộ: SCI (2 kênh), SSU(3 kênh) • Bộ chuyển A/D: 16 kênh. • I/O Port: 65 I/O port, 17 input port. ©2009, CE Department
- dce 2009 Vi điều khiển H8SX CPU: Central processing unit DTC: Data transfer controller DMAC: DMA controller BSC: Bus controller WDT: Watchdog timer TPU: 16-bit timer pulse unit PPG: Programmable pulse Generator SCI: Serial communication interface SSU: Synchronous serial communication unit ©2009, CE Department
- dce 2009 H8SX/1582 - Xử lý ngoại lệ Bộ nhớ Vector table Main program Địa chỉ bắt đầu của trình xử lí Trình xử lý NL Xử lý bởi CPU hardware H8SX CPU Ngoại lệ PC xuất hiện EXR CCR SP RTE Sử dụng SP lưu trữ PC, CCR, EXR PC,CCR và EXR Vùng stack ©2009, CE Department
- dce 2009 H8SX/1582 - Xử lý ngoại lệ • Có rất nhiều nguyên nhân gây ra ngoại lệ đến CPU, các ngoại lệ gây ra cho H8SX/1582 được phân loại • Reset : xử lý ngoại lệ được bắt đầu khi có một thay đổi mức từ thấp lên cao tại chân RES. CPU bắt đầu trạng thái reset khi chân RES xuống mức điện áp thấp. • Lệnh không hợp lệ : xử lý ngoại lệ bắt đầu khi có một dòng lệnh không xác định được thực thi. • Theo dõi (Trace) : xử lý ngoại lệ bắt đầu sau khi thực thi câu lệnh hiện tại, nếu bit theo dõi (bit T) trong EXR có giá trị 1. • Lỗi địa chỉ : sau khi phát hiện có lỗi sai về địa chỉ xuất hiện, xử lý ngoại lệ bắt đầu lúc hoàn thành thực thi câu lệnh hiện tại. • Ngắt quãng : xử lý ngoại lệ bắt đầu sau khi thực thi câu lệnh hiện tại hoặc một xử lý ngoại lệ khác, nếu có một yêu cầu ngắt quãng xảy ra. • Lệnh bẫy (TRAPA) : xử lý ngoại lệ bắt đầu khi thực hiện một câu lệnh bẫy (TRAPA). • 2 chế độ ngắt quãng: chế độ 0 và chế độ 2 ©2009, CE Department
- dce 2009 H8SX/1582 - Xử lý ngoại lệ • Ngắt quãng chế độ 0 – Có 2 mức ưu tiên ngắt – Không hỗ trợ đa ngắt • Ngắt quãng chế độ 2 – Có 8 mức ưu tiên ngắt – Hỗ trợ đa ngắt dựa theo độ ưu tiên ©2009, CE Department
- dce 2009 H8SX/1582 – Bảng Vector Ngoại lệ Vector Độ dời địa chỉ vector number Reset 0 H’000000 Để dành cho hệ thống 1 H’000004 2 H’000008 3 H’00000C Lệnh không hợp lệ 4 H’000010 Trace 5 H’000014 Để dành cho hệ thống 6 H’000018 NMI 7 H’00001C Lệnh TRAPA (#0) 8 H’000020 (#1) 9 H’000024 (#2) 10 H’000028 (#3) 11 H’00002C Lỗi địa chỉ CPU 12 H’000030 ©2009, CE Department
- dce 2009 H8SX/1582 – Bảng Vector Ngoại lệ Vector Độ dời địa chỉ vector number Lỗi địa chỉ DMA 13 H’000034 Để dành cho hệ thống 14 H’000038 | | 63 H’0000FF Ngắt ngoài IRQ0 64 H’000100 IRQ1 65 H’000104 IRQ2 66 H’000108 IRQ3 67 H’00010C IRQ4 68 H’000110 IRQ5 69 H’000114 IRQ6 70 H’000118 IRQ7 71 H’00011C IRQ8 72 H’000120 IRQ9 73 H’000124 ©2009, CE Department
- dce 2009 H8SX/1582 – Bảng Vector Ngoại lệ Vector Độ dời địa chỉ vector number Ngắt ngoài IRQ10 74 H’000128 IRQ11 75 H’00012C IRQ12 76 H’000130 IRQ13 77 H’000134 IRQ14 78 H’000138 IRQ15 79 H’00013C Để dành cho hệ thống 80 H’000140 Ngắt nội (các chức năng 81 H’000144 ngoại vi yêu cầu) | | 255 H’0003FC ©2009, CE Department
- dce 2009 H8SX/1582 – I/O Port • H8SX/1582 có 65 chân xuất nhập và 17 chân chỉ nhập tương ứng 13 Port. • Các chân của port I/O có thể thực hiện những chức năng ngoại vi khác. • Mỗi port I/O được điêu khiển bởi ba thanh ghi • Data Direction Register (DDR) : điều khiển port xuất hay nhập. • Data Register (DR) : lưu trữ giá trị xuất. • Port register (PORT) : lưu trữ trạng thái nhập. D In DDR ternal data busternal write DDR > Q D I/O pin DDR write DR > Q read DR read PORT ©2009, CE Department
- dce 2009 H8SX/1582 – I/O Port • Ví dụ port xuất : xuất tín hiệu điều khiển 2 LED thông qua hai chân PA0, PA1 PADDR : .EQU H'FFFB89 ; Địa chỉ của PADDR PADR : .EQU H'FFFF59 ; Địa chỉ của PADR MOV.B #B00000010,@PADR ;Thiết lập giá trị xuất cho ;PA0 và PA1 MOV.B #B'00000011,@PADDR ; Thiết lập PA0 và PA1 là ;cổng xuất ©2009, CE Department
- dce 2009 H8SX/1582 – I/O Port • Ví dụ port nhập : nhận tín hiệu nhập từ SW1 và SW2 vào hai chân PB2, PB3 PBDDR : .EQU H'FFFB8A ; Gán địa chỉ cho PBDDR PORTB : .EQU H'FFFF4A ; Gán địa chỉ cho PORTB MOV.B #B'00000000,@PBDDR ; Thiết lập PB2 và PB3 là ;cổng xuất MOV.B @PORTB,R0L ;đọc giá trị nhập từ PB2 và PB3 ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời • Gồm 16 kênh riêng biệt (chia làm 2 bộ) • Lựa chọn 8 bộ đếm xung clock nhập cho mỗi kênh • Các thao tác sau có thể được thiết lập cho mỗi kênh: • Output capture • Input capture • Định thời • Các tác vụ đồng bộ hóa • Truy xuất nhanh thông qua bus nội 16-bit • Có 26 nguồn ngắt • Bộ truyền dữ liệu tự động ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời • Chức năng định thì • Chức năng output capture ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời • Chức năng Input capture ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời • Đồng bộ hóa giữa các kênh ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời • Chức năng Buffer ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ định thời • Chức năng PWM ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ A/D Converter • H8SX/1582 có hai bộ chuyển A/D 10 bit kế tiếp giống nhau (bộ 0 và bộ 1) có thể cho phép ta lựa chọn tới 16 kênh ngõ nhập tuần tự. • Thời gian chuyển đổi: 7.4 µs mỗi kênh (@35MHz) • Hai chế độ hoạt động: – Chế độ đơn: Chuyển đổi A/D đơn kênh – Chế độ scan: Chuyển đổi A/D liên tục trên 1 đến 4 kênh, hoặc trên 1 đến 8 kênh. • 16 thanh ghi dữ liệu. Kết quả chuyển A/D sẽ được lưu trong một thanh ghi 16 bit ở mỗi kênh. • Ba cách khởi động bộ chuyển đổi: bằng phần mềm, bộ định thời 16 bit (TPU), tín hiệu ngoài. • Nguồn ngắt quãng: Yêu cầu ngắt quãng kết thúc bộ chuyển A/D có thể được phát ra. ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ A/D Converter ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ A/D Converter • Chế độ đơn kênh ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ A/D Converter • Chế độ đa kênh ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ giao tiếp nối tiếp • H8SX/1582 có hai kênh giao tiếp tuần tự nối tiếp SCI (kênh 3 và kênh 4) hoạt động độc lập • Hai chế độ hoạt động: – Chế độ hoạt động bất đồng bộ – Chế độ hoạt động đồng bộ • Full-duplex : bộ truyền và bộ nhận có thể hoạt động độc lập với nhau, điều này cho phép việc truyền và nhận có thể xảy ra đồng thời. • Có thể lựa chọn tốc độ baud • Có 4 nguồn ngắt quãng : ngắt quãng kết thúc việc truyền nhận, dữ liệu truyền rỗng, dữ liệu nhận đủ và nhận lỗi. Nguồn ngắt dữ liệu rỗng và dữ liệu nhận đủ có thể sử dụng để kích hoạt DTC hay DMAC. ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ giao tiếp nối tiếp ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ giao tiếp nối tiếp • Ví dụ: truyền bất đồng bộ 8bit, parity, 1 stop bit ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ giao tiếp nối tiếp • Ví dụ: nhận bất đồng bộ 8bit, parity, 1 stop bit ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ điều khiển DMA • Truy xuất không gian địa chỉ tối đa 4-G byte bộ nhớ • Đơn vị truyền dữ liệu: byte, word, hay long word • Truyền dữ liệu tối đa đến 4-G byte (4,292,967,295) • Hỗ trợ chế độ free-running chế độ mà không cần thiết lập kích thước khối dữ liệu luân chuyển. • Phương thức để kích hoạt DMAC: auto-request, ngắt quãng, hay yêu cầu từ bên ngoài • Chế độ địa chỉ đôi hay địa chỉ đơn • Các chế độ truyền dữ liệu: bình thường, lặp (repeat), hay truyền theo khối (block). • Vùng lặp mở rộng của nguồn và đích có thể được thiết lập tối đa đến 128Mbyte (27 bit). • Chế độ cập nhật địa chỉ đa dạng • Có hai loại ngắt quãng có thể xảy ra: kết thúc truyền, lỗi truyền ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ điều khiển DMA ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ điều khiển DMA • Chế độ địa chỉ đôi ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ điều khiển DMA • Chế độ địa chỉ đơn (data flow) ©2009, CE Department
- dce 2009 H8SX/1582 – Bộ điều khiển DMA • Chế độ địa chỉ đơn ©2009, CE Department