Bài giảng Vi xử lý - Chương 10: Vi điều khiển H8 cung cấp cho người học các kiến thức: 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. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.
Trang 1TP.HCM
Chương 10
Vi điều khiển H8
Trang 2Nộ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
Trang 3Vi điều khiển H8
Trang 4Vi điều khiển H8
Trang 5Vi điều khiển H8
Trang 6Vi 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)
Trang 7Vi 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ì
Trang 8Vi 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 Mbytecho 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ácvù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
Trang 9ER0 ER1 ER2 ER3 ER4 ER5 ER6 (SP) ER7
E1 E2 E3 E4 E5 E6 E7
R1 R2 R3 R4 R5 R6 R7
Trang 10Tập thanh ghi H8SX
• Bộ thanh ghi điều khiển
PC
0 31
0
(không dùng) SBR
I : Interrupt mask bit N : Negative flag
UI : User bit/ Interrupt mask bit Z : Zero flag
H : Half carry bit V : Overflow flag
U : User bit C : Carry flag
Trang 11Tập thanh ghi H8SX
• VBR (Vector Base Register)
Giá trị của VBR là địa chỉ nền của vùng vectorngoạ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áchthiết lập giá trị thanh ghi này (20 bit cao đượcdùng)
Ví dụ thanh ghi được khởi tạo giá trị H’3000 Địachỉ của mỗi vector ngắt là H’3000 + (địa chỉ vectorcủa nguồn ngắt
(không dùng) VBR
0
(không dùng)
Trang 12Tập thanh ghi H8SX
• SBR (Short Address Base Register)
Thanh ghi SBR thiết lập vùng bắt đầu cho khônggian địa chỉ tuyệt đối 8-bit (@aa:8) Chỉ 24 bit caođược sử dụng
(không dùng) SBR
Trang 14Đị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
Trang 15Hợp ngữ H8SX
• Dạng thức lệnh
ADD Sz <EAs> , <EAd>
Tên gợi nhớ : ADD, MOV…
Kích thước toán hạng : B (byte), W (word),
L (Longword)
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…
Trang 17…
.END
dòng chú thích, bắt đầu bằng dấu ‘;’
‘.CPU’ cho biết tên CPU, chế độ hoạt động
‘.SECTION’ đặc tả section trong bộ nhớ
tên của section code : section chứa lệnh
data : section chứa khai báo dữ liệu
địa chỉ bắt đầu của
section kết thúc file
Trang 18Hợp ngữ H8SX
• Khai báo hằng
.CPU H8SXA DATA1 : EQU H‘2000 DATA2 : EQU H‘2001 ANSW : EQU H‘2002
.SECTION PROG, CODE, LOCATE=H’1000
Tên hằng Lệnh khai báo hằng
Giá trị hằng
Trang 19Hợ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 END
H’0FF9000 DATA1
H’0FF9002 DATA2
Địa chỉ của biến (tên)
Lệnh khai báo vùng nhớ cho biến (.B, L,.W : kích thước
của một block)
Số block cần cấp phát
Trang 20Hợ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 END
05 10 H’20 H’05 H’00
H’2001 DATA1
H’2004 DATA2
Địa chỉ của biến (tên)
Lệnh khai báo giá trị (.B, L,.W : kích thước của một block)
Giá trị được đưa vào
vùng nhớ
Trang 21.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
Trang 23Tập lệnh H8SX
• Nhóm lệnh phép toán luận lý
• Nhóm lệnh thao tác trên bit
AND OR XOR NOT
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
Trang 24BRA/BS BRA/BC BSR/BS BSR/BC JMP BSR JSR RTS RTS/L BRA/S
TRAPA RTE SLEEP NOP RTE/L LDC STC ANDC ORC XORC
Trang 25Vi đ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
• 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.
Trang 26Vi điều khiển H8SX
CPU: Central processing unit
DTC: Data transfer controller
DMAC: DMA controller
Trang 27Trình xử lý NL
RTE
PC EXR CCR SP
Trang 28H8SX/1582 - Xử lý ngoại lệ
• Có rất nhiều nguyên nhân gây ra ngoại lệ đến CPU, cácngoạ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
Trang 29H8SX/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
Trang 31H8SX/1582 – Bảng Vector
Ngoại lệ Vector
number
Độ dời địa chỉ vector
Để dành cho hệ thống 14
| 63
H’000038
| H’0000FF
Trang 32ngoại vi yêu cầu)
81
| 255
H’000144
| H’0003FC
Trang 33• 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.
I/O pin
Trang 34H8SX/1582 – I/O Port
• Ví dụ port xuất : xuất tín hiệu điều khiển 2 LED thôngqua hai chân PA0, PA1
;PA0 và PA1
;cổng xuất
Trang 35H8SX/1582 – I/O Port
• Ví dụ port nhập : nhận tín hiệu nhập từ SW1 và SW2vào hai chân PB2, PB3
;cổng xuất
Trang 36H8SX/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:
Trang 37H8SX/1582 – Bộ định thời
Trang 38H8SX/1582 – Bộ định thời
• Chức năng định thì
• Chức năng output capture
Trang 39H8SX/1582 – Bộ định thời
• Chức năng Input capture
Trang 40H8SX/1582 – Bộ định thời
• Đồng bộ hóa giữa các kênh
Trang 41H8SX/1582 – Bộ định thời
• Chức năng Buffer
Trang 42H8SX/1582 – Bộ định thời
• Chức năng PWM
Trang 43H8SX/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
Trang 44H8SX/1582 – Bộ A/D Converter
Trang 45H8SX/1582 – Bộ A/D Converter
• Chế độ đơn kênh
Trang 46H8SX/1582 – Bộ A/D Converter
• Chế độ đa kênh
Trang 47H8SX/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
Trang 48H8SX/1582 – Bộ giao tiếp nối tiếp
Trang 49H8SX/1582 – Bộ giao tiếp nối tiếp
• Ví dụ: truyền bất đồng bộ 8bit, parity, 1
stop bit
Trang 50H8SX/1582 – Bộ giao tiếp nối tiếp
• Ví dụ: nhận bất đồng bộ 8bit, parity, 1 stop bit
Trang 51H8SX/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ếtlậ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ắtquã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ếtlậ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ỗitruyền
Trang 52H8SX/1582 – Bộ điều khiển DMA
Trang 53H8SX/1582 – Bộ điều khiển DMA
• Chế độ địa chỉ đôi
Trang 54H8SX/1582 – Bộ điều khiển DMA
• Chế độ địa chỉ đơn (data flow)
Trang 55H8SX/1582 – Bộ điều khiển DMA
• Chế độ địa chỉ đơn