Tải bản đầy đủ (.pdf) (80 trang)

Thiết kế và thi công hệ thống thực hành vi điều khiển h8 phục vụ cho môn học hệ thống nhúng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.87 MB, 80 trang )

LỜI NÓI ĐẦU
Đề tài “Thiết kế và thi công hệ thống thực hành vi điều khiển H8 phục vụ cho môn
học hệ thống nhúng” được phát triển mở rộng dựa trên Starter Kit H8SX1582 của
hãng Renesas, có thể sử dụng làm tài liệu để hổ trợ nghiên cứu cách lập trình các
ứng dụng cho môn học hệ thống nhúng cho sinh viên hệ Đại học. Đề tài bao hàm
các bài thí nghiệm cô động đối với vi điều khiển H8SX1582, ở mỗi bài thí nghiệm
đều có tóm tắt lại lý thuyết của vi điều khiển này.
Chúng tôi xin chân thành cảm ơn lãnh đạo Trường Đại học Lạc Hồng và lãnh đạo
khoa Điện - Điện Tử đã tạo mọi điều kiện thuận lợi để đề tài này được thực hiện
hoàn tất.

1


MỤC LỤC
Trang
1
2
2

LỜI NÓI ĐẦU
ĐẶT VẤN ĐỀ
LÝ DO CHỌN ĐỀ TÀI

CHƯƠNG 1: GIỚI THIỆU BỘ THỰC HÀNH HỆ THỐNG NHÚNG
TRÊN KIT RSKH8SX1582

3

CHƯƠNG 2 : CÁC BÀI THÍ NGHIỆM LẬP TRÌNH NHÚNG TRÊN
KIT RSKH81582



10

Bài 1 : Biên dịch và debug một chương trình đơn giản

11

Bài 2 : Khảo sát các port I/O – lập trình quét 8 led đơn

25

Bài 3 : Xử lý ngắt

37

Bài 4 : Khảo sát các bộ định thời

50

Bài 5 : Sử dụng module LCD của RSKH8SX1582

56

Bài 6 : Khảo sát bàn phím ma trận 4x4
61
Bài 7 : Thực hành tổng hợp

67

CHƯƠNG 3: TỔNG QUAN HỌ VI ĐIỀU KHIỂN H8 VÀ H8SX1582 76

CHƯƠNG 4: GIỚI THIỆU CHƯƠNG TRÌNH HỢP NGỮ VÀ TẬP
LỆNH CỦA H8

100

CHƯƠNG 5: GIỚI THIỆU RENESAS STARTER KIT H8SX1582

2

117


CHƯƠNG 1: GIỚI THIỆU BỘ THỰC HÀNH HỆ
THỐNG NHÚNG TRÊN KIT RSKH8SX1582
Phần cứng hệ thống bao gồm :
• Kit vi điều khiển H8SX1582 (gọi tắt kit RSK – Renesas Starter Kit).
• Board mở rộng. Kit RSK sẽ được gắn trực tiếp trên board này và có thể tháo ra để
sử dụng kit RSK cho mục đích khác.
• GIỚI THIỆU KIT RSK
Phần cứng chi tiết có thể xem chi tiết trên CD của Renesas. Kit RSK sau đã được
gắn thêm một số linh kiện.

1


Hình 1: Giao diện mặt TOP của RSK

2



Hình 2: Giao diện mặt BOTTOM của RSK

3


• HƯỚNG DẪN SỬ DỤNG BOARD MỞ RỘNG
Board mở rộng sử dụng nguồn cung cấp 5VDC (biến đổi từ nguồn 220VAC).
Trên board có jack đưa ra 5VDC để cấp cho kit RSK. Kit RSK có thể gắn vào
hoặc tháo ra dễ dàng trên board mở rộng.
• Giới thiệu giao diện
• Giao diên board mở rộng – hình 3.
• Giao diện kết nối giữa RSK và board mở rộng – hình 4.
• Module ứng dụng lập trình – hình 5: động cơ bước; led ma trận; cảm biến
nhiệt; cảm biến độ ẩm; loa tín hiệu buzzer.

4




Module bàn phím 4x4 – hình 6.
Hình 3 : Giao diện board mở rộng

5


Hình 4 : Kết nối hoàn chỉnh giữa RSK và board mở rộng

6



Hình 5 : Các module ứng dụng

Hình 6 : Module bàn

phím 4x4

7




Sơ đồ mạch

Hình 7 : Giao tiếp 8 led đơn

8


Hình 8 : Giao
tiếp led ma trận 8x8 hai màu đỏ - xanh

Hình 9: Giao tiếp bàn phím 4x4
Hình 10: Giao tiếp cảm biến nhiệt độ - độ ẩm – loa buzzer

9


Hình 11: Mạch


giao tiếp điều khiển động cơ bước

10


Hình 12: Mạch nguồn
chuyển đổi 220VAC 5VDC/1.5A

11


CHƯƠNG 2: CÁC BÀI THÍ NGHIỆM LẬP TRÌNH
NHÚNG TRÊN KIT RSKH8SX1582
Trong chương này sẽ trình bày 7 bài thí nghiệm từ đơn giản đến nấng cao, từ
đơn lẻ đến tổng hợp cả hệ thống. Ngôn ngữ chính để lập trình là C/C++.

1


CHƯƠNG 3: TỔNG QUAN HỌ H8 VÀ H8SX1582
Với sự phát triển nhanh chóng công nghệ điện tử ngày nay thì có rất nhiều loại
vi điều khiển của nhiều hãng khác nhau. Trong đó, Renesas nổi lên như là một nhà
cung cấp hàng đầu thế giới về vi điều khiển. Với họ vi điều khiển hiệu năng cao
H8 tiêu thụ công suất thấp và có thể ứng dụng trong công nghiệp, thông tin, y
khoa… cho thấy đây cùng là một dòng vi điều khiển khá mạnh. Khi so với các
dòng vi điều khiển quen thuộc như 8951, AVR, PIC thì H8 của Renesas khá mới
mẻ, chưa phổ biến ở Việt Nam
Tuy nhiên trong khoảng 3 năm trở lại đây, sự tài trợ mạnh mẽ của Renesas vào
Việt Nam với phòng thí nghiệm Renesas ở trường Đại Học Bách Khoa TPHCM,
tổ chức cuộc thi Renesas Micom Car Rally tại trường Đại Học Tự Nhiên TPHCM,

và tài trợ cho Học Viện CNBCVT các H8SX development kit thì H8 đã không còn
là cái tên lạ lẫm đối với giới sinh viên nói riêng và giới IT Việt Nam nói chung, Vi
điều khiển H8 ngày càng chứng tỏ những thế mạnh vượt trội của nó như: tốc độ
xử lý nhanh (có thể đạt 24MHz), có vùng nhớ khá lớn (bộ nhớ nội có thể lên tới
16MB) giúp bạn thoải mái khi viết code khi không còn lo lắng về giới hạn bộ nhớ,
bố sung thêm nhiều chức năng như: bộ chuyển đổi tương tự-số (ADC), bộ điều
khiển DMAC,… Do đó, H8 đang ngày càng được ứng dụng rộng rãi trong mọi
lĩnh vực liên quan đến các thiết bị điện tử, từ những ứng dụng đơn giản như: ti vi,
máy giặt, lò vi ba… cho đến những ứng dụng phức tạp như các dây chuyền sản
xuất tự động, các xe hơi đời mới (điều khiển phanh, nhiên liệu, túi khí,…)… H8
bao gồm các dòng vi điều khiển 8-bit, 16-bit và 32-bit. Có cấu trúc tương tự như
PDP-11 của DEC (Digital Equipment Corp), bao gồm các dòng nổi bật sau:
• Dòng H8/300: H8/3048, H8/330, H8/3297, H8/3001, …
• Dòng H8/500: H8/500B, H8/500POAAC, H8/500XBAA, …
• Dòng H8S: H8S/2000, H8S/2124, H8S/2128,…
• Dòng H8SX: H8SX/1525, H8SX/1650, H8SX/1582,
Do đó, H8 là một sự lựa chọn tốt cho những ứng dụng hệ thống nhúng, hoặc là
bước đệm khá hoàn hảo dành cho những người bước đầu tìm hiểu về hệ thống
nhúng, do nó khá dễ sử dụng, và hỗ trợ lập trình bằng ngôn ngữ cấp cao như C
hoặc hợp ngữ khá tốt.


Giới thiệu về H8SX1582

• Đặc điểm chính
H8SX/1582, một vi điều khiển trong họ H8, được giới thiệu là một vi điều
khiển hiệu năng cao, đa năng và tiêu thụ công suất thấp có một số đặc điểm sau:

1



• CPU 32 bit tốc độ cao
• Có 8 thanh ghi đa năng 32 bit (Có thể sử dụng thành 16 thanh ghi 16 bit hay
16 thanh ghi 8 bit).
• Tập lệnh gồm 87 lệnh.
• Có 11 chế độ định địa chỉ.
• Hai thanh ghi cơ sở : Vector base register và Short address base register.
• Có khả năng mở rộng vùng nhớ chương trình và dữ liệu đến 4 Gbyte.
• Hoạt động tốc độ cao: Hầu hết các lệnh thông dụng được thực hiện trong 1
hoặc 2 chu kỳ máy. Đặc biệt hỗ trợ một số lệnh.
• Nhân 2 thanh ghi 8 bit trong thời gian 1 chu kỳ máy.
• Chia thanh ghi 16 bit cho thanh ghi 8 bit trong 10 chu kỳ máy.
• Nhân 2 thanh ghi 32 bit trong 5 chu kỳ máy.
• Chia thanh ghi 32 bit cho thanh ghi 16 bit hay 32 bit trong 18 chu kỳ
máy.
• Nhân 2 thanh ghi 16 bit trong 1 chu kỳ máy.
• Có khả năng mở rộng các thiết bị ngoại vi nhờ
• Bộ điều khiển DMA (DMAC)
• Bộ điều khiển chuyển dữ liệu (DTC)

2


• Bộ đếm thời gian 16 bit (TPU: Timer Pulse Unit)
• Bộ tạo xung có thể lập trình được (Programmable Pulse Generator: PPG)
Watch dog timer (WDT)
• Truyền dữ liệu nối tiếp đồng bộ và bất đồng bộ ADC 10 bit
• Bộ nhớ được tích hợp bên trong chip với H8SX1582 là 256Kbytes ROM và
12Kbytes RAM
• Có 65 port I/O đa năng và 17 port nhập

• Kích thước nhỏ gọn 14mmx14mm tiêu thụ công suất thấp

• Sơ đồ khối:
Vi mạch gồm có tất cả 120 chân chia thành 13 port bao gồm Port 1 đến Port 6,
Port A, B, D, H, I, J, K. Trong đó Port 1 đến Port 3 và Port 6, A, D, H, I, J, K có 8
bit I/O, Port 4,5 có 8bit Input, Port B chỉ có 3 bit và Port A có 7 bit I/O cùng với 1
bit là PA7 là Input.
Vi mạch có 16 ngõ vào ADC, 16 ngõ vào Interrupt, 8 ngõ ra tạo xung có khả
năng lập trình độ rộng xung, 2 ngõ vào nhận dữ liệu và 2 ngõ ra dùng để truyền
dữ liệu

3


Hình 3.1: Sơ đồ khối H8SX1582

• Chế độ hoạt động:
Vi mạch này có 3 chế độ hoạt động (mode 1 đến mode 3). Các chế độ hoạt
động được chọn bằng cách set các chân chế độ MD0 (chân 112) và MD1 (chân
92) nhự trong bảng dưới đây:

4


Bảng 3.1: Thiết lập chế độ hoạt động của MCU
Họ H8SX có bốn mode hoạt động là Normal Mode, Middle Mode, Advanced
Mode, Maximum mode. Tuy nhiên H8SX1582 chỉ hổ trợ Advanced Mode với
vùng địa chỉ có thể xác định là 16Mbytes. Trong Advance Mode có 3 chế độ:
Mode 1, Mode 2 và Mode 3
Chế độ khởi đầu của vi điều khiển có thể được lựa chọn từ chế độ khởi động

(mode 2) và chế độ khởi động người dùng (mode 1) để lập trình hay xóa bộ nhớ
flash và chế độ khởi đầu đơn chip.
• Trong chế độ khởi động người dùng (user boot mode) và chế độ khởi động
(boot mode), thì bộ nhớ truy xuất nhanh (flash memory) có thể được lập trình và
xóa
• Trong chế độ 3 của vi điều khiển thực hiện chế độ đơn chip mà ROM được
tích hợp được phép hoạt động

5


Hình 3.2: Tổ chức vùng nhớ của H8SX1582

6


Các thanh ghi liên quan đến việc thiết lập chế độ hoạt động: Có hai thanh
ghi
Thanh ghi điều khiển chế độ (MDCR): xác định chế độ hoạt động hiện tại. Khi
MDCR được đọc, thì các trạng thái của tín hiệu ngõ vào trên chân MD1 và MD0
được chốt. Trạng thái chốt này được giải phóng khi reset.
Thanh ghi điều khiển hệ thống (SYSCR): điều khiển hoạt động bão hòa MAC,
lựa chọn chế độ độ rộng bus cho việc đọc lệnh và chế độ hoạt động của DTC, cho
phép hay cấm RAM nội và các thanh ghi điều khiển bộ nhớ flash.

• Thanh ghi:

7



Hình 3.3: Các thanh ghi của H8SX1582
H8SX1582 có hai loại thanh ghi là thanh ghi đa năng và thanh ghi điều khiển.
Thanh ghi điều khiển bao gồm: Bộ đếm chương trình (PC: Program Count) 32 bit,
thanh ghi điều khiển mở rộng 8 bit, thanh ghi mã điều kiện (CCR) 8 bit, thanh ghi
vector cơ sở (VBR) 32 bit, thanh ghi cơ sở địa chỉ ngắn (SBR) 32 bit và thanh ghi
tích lũy nhân (MAC) 64 bit. Hình 3.3 trình bày toàn bộ các thanh ghi đa năng và
thanh ghi điều khiển của H8.
• Thanh ghi đa năng: H8SX có 8 thanh ghi đa năng 32-bit. Các thanh ghi đa

8


năng có chức năng như nhau và có thể được sử dụng làm các thanh ghi địa chỉ lẫn
thanh ghi dữ liệu. Khi một thanh ghi đa năng được sử dụng làm các thanh ghi dữ
liệu, nó có thể được truy xuất như các thanh ghi 32-bit, 16-bit, hay 8-bit. Cách sử
dụng các thanh ghi được trình bày như hình sau:

Hình 3.4: Cách sử dụng các thanh ghi đa năng
Khi thanh ghi đa năng được sử dụng như là thanh ghi 32 bit hay thanh ghi địa
chỉ thì được đặt tên là ER (ER0 đến ER7).
Khi thanh ghi đa năng được sử dụng như thanh ghi 16 bit thì các thanh ghi ER
được chia thành các thanh ghi 16 bit và được đặt tên là E(E0 đến E7) và R (R0 đến
R7) và có tất cả 16 thanh ghi 16 bit
Khi được sử dụng là thanh ghi 8 bit thì các thanh ghi R được chia thành các
thanh ghi 8 bit và được đặt tên là RH(R0H đên R7H) và RL (R0L đến R7L) và có
tất cả 16 thah ghi 8 bit
Thanh ghi ER7 còn có chức năng là con trỏ ngăn xếp (SP: Stack Pointer) được
ngầm sử dụng trong các xử lý ngoại lệ và lệnh nhảy đến các chương trình con
• Thanh ghi điều khiển PC: PC là một thanh ghi bộ đếm chương trình 32-bit
dùng để chỉ đến địa chỉ của câu lệnh sẽ được thực thi kế tiếp. Chiều dài của tất cả

các câu lệnh của CPU là 16 bit (một word) hay là một bội số của 16 bit. Vì vậy, bit
có trọng số nhỏ nhất sẽ được bỏ qua (Khi mã lệnh được đọc, bit này được gán là
0)
• Thanh ghi mã điều kiện (CCR: Condition-code Register): CCR là thanh ghi
8 bit chứa các thông tin trạng thái bên trong của CPU bao gồm cờ cho phép ngắt
(interrupt mask) (I), các bit người dùng (user-UI,U), cờ nhớ nửa (H), cờ dấu (N),
cờ zero (Z), cờ tràn (V) và cờ nhớ (C). Các hoạt động ảnh hưởng đến các bit của
CCR là các lệnh LDC, STC, ANDC, ORC và XORC. Các cờ N, Z, V, C có thể
được sử dụng trong các lệnh rẽ nhánh có điều kiện
• Thanh ghi vector cơ sở (VBR: Vector base Register): VBR là một thanh ghi
32-bit trong đó 20 bit cao được sử dụng, 12 bit thấp của thanh ghi này có giá trị là
9


0. Thanh ghi này là một địa chỉ cơ sở của bảng vector ngoại lệ ngoại trừ reset và
ngoại lệ tạo bởi CPU . Giá trị khởi đầu là H’0000 0000. Các nội dung của VBR bị
thay đổi với câu lệnh LDC và STC
• Thanh ghi cơ sở địa chỉ ngắn SBR là một thanh ghi 32-bit mà trong đó 24
bit cao được sử dụng. 8 bit thấp được đọc là các bit 0. Trong chế độ đánh địa chỉ
tuyệt đối 8-bit (@aa:8), thanh ghi này được sử dụng với vai trò là địa chỉ cao. Giá
trị khởi tạo là H’FFFF FF00. Nội dung của SBR sẽ bị thay đổi với câu lệnh LDC
và STC
• Thanh ghi tích lũy nhân MAC là một thanh ghi 64-bit. Nó lưu trữ các kết
quả của các phép toán nhân và tích lũy (multiply-and-accumulate). Nó bao gồm 2
thanh ghi 32-bit là MACH và MACL. 10 bit thấp của MACH được sử dụng, các
bit cao còn lại được dùng mở rộng dấu (sign extended). Nội dung của MAC sẽ bị
thay đổi với các câu lệnh MAC, CLRMAC, LDMAC, STMAC
• Giá trị khởi tạo (ban đầu) cho các thanh ghi: Xử lý ngoại lệ reset sẽ tải địa
chỉ bắt đầu từ bảng vector vào thanh ghi PC, xóa bit T trong thanh ghi EXR xuống
0, và thiết lập bit I trong thanh ghi CCR và EXR lên 1. Các thanh ghi đa năng,

MAC, và các bit khác trong thanh ghi CCR không được khởi tạo. Cụ thể là, giá trị
khởi đầu của con trỏ chồng stack pointer (ER7) là không xác định. Chính vì vậy
mà thanh ghi SP sẽ được khởi đầu bằng một lệnh MOV.L sau khi khởi động lại

• Định dạng dữ liệu:
Dữ liệu trong các thanh ghi đa năng và trong vùng nhớ được đinh dạng như
sau:

10


Hình 3.5 Định dạng dữ liệu trong thanh ghi đa năng

11


×