- 1 -
ỦY BAN NHÂN DÂN TP.HCM
SỞ KHOA HỌC VÀ CÔNG NGHỆ
BÁO CÁO NGHIỆM THU
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC NĂM 2007
TÊN ĐỀ TÀI:
NGHIÊN CỨU THIẾT KẾ VÀ THI CÔNG CÁC KIT THÍ
NGHIỆM - GIẢNG DẠY VI ĐIỀU KHIỂN RISC 8/32 BIT
CN ĐỀ TÀI: ThS. Ngô Đức Hoàng
Đồng CN đề tài: KS. Nguyễn Minh Chánh
CƠ QUAN CHỦ TRÌ: Trung tâm Nghiên cứu và Đào tạo Thiết kế Vi mạch (ICDREC)
Đại học Quốc gia Tp. Hồ Chí Minh.
Số điện thoại: 0913.882 104
Email: ;
THÀNH PHỐ HỒ CHÍ MINH
THÁNG 06/2009
- 2 -
MỤC LỤC
Trang
Tóm tắt đề tài/dự án (gồm tiếng Việt và tiếng Anh) 1
Mục lục
Bảng quyết toán
PHẦN MỞ ĐẦU 8
1
2
3
4
5
Tên đề tài/dự án:
Chủ nhiệm đề tài/dự án:
Cơ quan chủ trì:
Thời gian thực hiện:
Kinh phí được duyệt:
8
8
8
8
8
6 Mục tiêu của đề tài/dự án 8
7 Nội dung của đề tài/dự án 8
7.1 Nội dung thực hi
ện đề tài/dự án 8
7.2 Sản phẩm của đề tài/dự án 10
7.2.1 Kit thí nghiệm – giảng dạy RISC PIC 8 bit. 10
7.2.2 Kit thí nghiệm – giảng dạy RISC 32 bit 11
CHƯƠNG I: NỘI DUNG NGHIÊN CỨU
1.1 Nội dung 1:
1.1.1 Nghiên cứu các họ vi điều khiển PIC12xxx, PIC16xxx và PIC18xxx với lõi
RISC 8 bit
14
1.1.2 Nghiên cứu các thành phần ngoại vi có thể giao tiếp với 3 họ PIC nêu trên 20
1.2 Nội dung 2:
1.2.1 Nghiên cứu các Kit thí nghiệm giảng dạy RISC 8 bit thông dụng trên thị
trường. Phân tích thiết kế phần cứng, ph
ần mềm và các bài thí nghiệm. Chỉ
ra ưu nhược điểm của từng kit.
28
1.2.2 Xác lập thông số kỹ thuật và đề cương bài thí nghiệm dự tính cho các kit của
đề tài
31
1.3
Nội dung 3: Thiết kế Kit thí nghiệm – giảng dạy RISC 8 bit dựa trên cả 3 họ
PIC 8 bit khác nhau.
163
- 3 -
1.4
Nội dung 4: Viết chương trình kiểm tra Kit RISC 8 bit 179
1.5 Nội dung 5:
1.5.1 Nghiên cứu các họ vi điều khiển ARM với cấu trúc RISC 32 bit 247
1.5.2 Nghiên cứu các thành phần ngoại vi có thể giao tiếp với ARM 32 bit với cấu
trúc RISC nêu trên.
252
1.6 Nội dung 6:
1.6.1 Nghiên cứu các Kit thí nghiệm giảng dạy ARM 32 bit thông dụng trên thị
trường. Phân tích thiết kế phần cứng, phần mềm và các bài thí nghiệm. Chỉ
ra ưu, nhược điểm củ
a từng kit.
272
1.6.2 Xác lập thông số kỹ thuật và đề cương bài thí nghiệm dự tính cho các kit của
đề tài.
275
1.7
Nội dung 7: Thiết kế Kit thí nghiệm – Giảng dạy ARM 32 bit 352
1.8
Nội dung 8: Viết chương trình kiểm tra Kit ARM 32 bit 385
1.9
Nội dung 9: Biên soạn tài liệu hướng dẫn sử dụng cho cả 2 Kit 450
1.9.1 Hướng dẫn sử dụng PICKIT V1.0 450
1.9.2 Hướng dẫn sử dụng Kit ARM-LH79525 V1.0 471
CHƯƠNG II: KẾT LUẬ
N VÀ ĐỀ NGHỊ
2.1 Kết luận 491
2.2 Đề nghị 491
- 4 -
TÓM TẮT NỘI DUNG NGHIÊN CỨU
1. KIT PIC phiên bản 1.0
1.1 Mục tiêu nghiên cứu
-
Phục vụ công tác đào tạo và nghiên cứu tại các trường Đại học.
-
Tiến đến sản xuất thử nghiệm bộ Kit thí nghiệm RISC 8 bit tham gia vào thị trường cung
cấp thiết bị nghiên cứu và giảng dạy.
1.2 Ý nghĩa của sản phẩm của đề tài
- Nắm và hiểu rõ được kiến trúc của PIC
- Hiểu được phương pháp lập trình và thiết kế vi điều khiển PIC
- Hiểu và nắm rõ các chuẩn giao tiếp từ đơn giản đến phức tạp
- Là tiền đề cho việc tiến đến những ứng dụng của PIC và hệ thống nhúng.
1.3
Đặc tính kỹ thuật
1.3.1 Thông số kỹ thuật
- Hỗ trợ cho nhiều loại PIC
- Kích thước 18x23 cm
2
- Board được thiết kế 2 lớp
- Nguồn cung cấp: 12VDC 5A.
- Lập trình trực tiếp trên board
- Đầu nối ICD2
1.3.2 Thành phần ngoại vi
- 8 led đơn
- 4 led 7 đoạn
- LCD 16x2
- Bàn phím 4x4
- port mở rộng
- Ngõ vào cho phép giao tiếp với cảm biến
- SD card
- Realtime clock
- IDE interface
- Audio out
- 1 port Ethernet
- 5 -
- 1 port USB slave
- Clock option
- PWM
- Bộ nhớ ngoài 8 bit
- Đầu nối ICD2
- Đầu nối cáp nguồn
2. KIT ARM
2.1 Mục tiêu nghiên cứu
-
Phục vụ công tác đào tạo và nghiên cứu tại các trường Đại học.
-
Tiến đến sản xuất thử nghiệm bộ Kit thí nghiệm RISC 16/32 bit tham gia vào thị trường
cung cấp thiết bị nghiên cứu và giảng dạy.
2.2 Ý nghĩa của sản phẩm của đề tài
- Nắm và hiểu rõ được kiến trúc của ARM
- Hiểu được phương pháp lập trình và thiết kế vi điều khiển ARM
- Hiểu và nắm rõ các chuẩn giao tiếp từ đơn giản đến phức tạp
- Là tiền đề cho việc tiến đến những ứng dụng của ARM và hệ thống nhúng.
2.3
Đặc tính kỹ thuật
2.3.1 Thông số kỹ thuật
- Sử dụng CPU lõi RISC của NXP LH79525 ARM720T™, Tốc độ thực thi của
CPU đạt đến: 76.205 MHz, Tần số lớn nhất của xung clock AHB 50.803 MHz, 16-
bit cho bus dữ liệu.
- Bộ nhớ Flash 8MB, SDRAM 32MB.
- Kích thước: 20x25 cm
2
- Board được thiết kế 6 lớp.
- Nguồn cung cấp: 12VDC.
- Đầu nối JTAG.
2.3.2 Thành phần ngoại vi
- LCD 20x4
- Bộ nhớ flash 8MB – 16 bit
- SDRAM 32MB – 16 bit
- EEPROM 8KB (I2C)
- 6 -
- 2 port RS232
- 2 port USB
- 1 port Ethernet
- 1 port IDE với nguồn cấp điều khiển được
- Ngõ vào Microphone
- 1 ngõ ra speaker
- Màn hình cảm ứng LCD &TSP 240x320
- Cảm biến (ADC)
- Hồng ngoại
- SD card
- PWM
- Bàn phím 4x4
- Phím nhấn
- Led đơn
- Led 7 đoạn
- Đầu nối JTAG
- Đầu nối nguồn
- 7 -
SUMMARY OF RESEARCH CONTENT
1. PIC Ver 1.0 KIT
1.1 Purpose
- Educating in universities.
- Individuals research on PIC microcontroller of Microchip.
- Experiment KIT for students.
1.2 Signification
- Understanding PIC architecture.
- Understanding programming and designing PIC microcontroller method.
- Understanding standards interface from simple to advance.
- Make the acquaintance with PIC application and embedded system.
1.3 Specifications
1.3.1 Technical specifications
- Use many other kind of PIC
- Size: 18x23 cm
2
- Board layout with 2 layers technology.
- Power supply: 12VDC 5A.
- Programmer on board.
- Header for debug ICD2.
1.3.2 Peripheral
- 8 single LEDS.
- Seven segment LEDS.
- Keypad matrix 4x4 use external interrupt.
- LCD line 16x2.
- External EEPROM for I2C interface.
- Real time clock.
- ADC module.
- Temperature sensor Digital or Analog
- MMC/SD card interface.
- IDE interface.
- 8 -
- Audio output.
- USB device connector.
- Ethernet 10/100 Mbps connector.
- Two-gate RS232 interface.
- Reset circuit and reset button.
- Onboard for programming/debugging.
- Expand Port.
2. ARM KIT
2.1 Purpose
- Educating in universities.
- Individuals research on ARM microcontroller.
- Experiment kit for students.
2.2 Signification
- Understanding ARM architecture.
- Understanding programming and designing ARM microcontroller method.
- Understanding standards interface from simple to advance.
- Make the acquaintance with ARM application and embedded system.
2.3 Specifications
2.3.1 Technical specifications
- CPU NXP LH79525 ARM720T™ RISC Core, High Performance: 76.205 MHz
CPU Speed, 50.803 MHz maximum AHB clock (HCLK), 16-bit External Data Bus, 8
kB Cache with Write Back Buffer, 16 kB On-Chip SRAM, Multi-stream DMA
Controller, Package 176 LQFP.
- NOR flash 8MB, SDRAM 32MB.
- Size: 20x25 cm
2
- Board layout with 6 layers technology.
- Power supply: 12VDC.
- Jtag programmer.
2.3.2 Peripheral
- 8 single leds.
- 4 seven segment leds.
- 9 -
- Keypad matrix 4x4.
- LCD line 20x4.
- LCD touch screen TFT 240x320.
- I2C controller combinate with 8 single leds.
- Real time clock.
- ADC with temperature sensor.
- IrDA TFDU4101 115.2Kbit/s.
- MMC/SD card interface.
- IDE interface.
- I2S interface with Audio In and Audio Out jacks for microphone and headphones
- USB host/device connector.
- Ethernet 10/100 Mbit/s connector.
- Two-channel RS232 interface.
- Reset circuit and reset button.
- Standard JTAG connector with 2x10-pin for programming/debugging.
- 10 -
QUYẾT TOÁN KINH PHÍ
Đề tài:
Nghiên cứu, thiết kế và thi công các KIT thí nghiệm – Giảng dạy vi điều khiển RISC 8-
bit và 16/31 Bit
Chủ nhiệm: Th.S Ngô Đức Hoàng
Đồng chủ nhiệm: KS. Nguyễn Minh Chánh
Cơ quan chủ trì: Trung tâm Nghiên cứu và Đào tạo Thiết kế Vi mạch.
Thời gian đăng ký trong hợp đồng: 12 tháng , từ tháng 11/2007 đến tháng 11/2008
Tổng kinh phí được duyệt: 270.000.000 đồng
Kinh phí cấp giai đoạn 1: 160.000.000 đồng (Theo thông báo số: 204/TB-KHCN ngày
05 tháng 11 năm 2007)
Kinh phí cấp giai
đoạn 2: 83.000.000 đồng (Theo thông báo số: 275/TB-KHCN ngày
17 tháng 12 năm 2008)
ĐVT: 1000đ
TT Nội dung Kinh phí Trong đó
Ngân sách Nguồn
khác
I
Kinh phí được cấp trong năm
270.000 270.000
II Kinh phí quyết toán trong năm 270.000 270.000
1. Công chất xám 12.000 12.000
2. Công thuê khoán 209.200 209.200
3. Nguyên, nhiên, vật liệu, dụng cụ,
phụ tùng, văn phòng phẩm
16.000 16.000
4. Thiết bị 00
5. Xét duyệt, giám định, nghiệm
thu
17.800 17.800
6. Hội nghị, hội thảo 0 0
7. Đánh máy tài liệu 0 0
8. Giao thông liên lạc 0 0
9. Chi phí điều hành 15.000 15.000
III Tiết kiệm 5%
IV Kinh phí chuyển sang năm sau
- 11 -
PHẦN MỞ ĐẦU
1. Tên đề tài/dự án:
Nghiên cứu thiết kế và thi công các Kit thí nghiệm- Giảng dạy vi điều khiển
RISC 8 bit và 16/32 bit.
2. Chủ nhiệm đề tài/dự án:
2.1 Chủ nhiệm chính: ThS.
NGÔ ĐỨC HOÀNG
2.2 Đồng chủ nhiệm: KS. NGUYỄN MINH CHÁNH
3. Cơ quan chủ trì:
Trung tâm Nghiên cứu và Đào Tạo Thiết Kế Vi Mạch (ICDREC) – Đại học Quốc Gia TP.
Hồ Chí Minh
4. Thời gian thực hiện: 12 tháng (Từ tháng 11/2007 đến tháng 11/2008)
5. Kinh phí được duyệt:
270 triệu đồng
- Kinh phí đã cấp đợt 1: 160 triệu đồng theo TB số: 204 TB-SKHCN ngày 05/11/2007
- Kinh phí đã cấp đợt 2: 83 triệu đồng theo TB số: 275 TB-SKHCN ngày 17/12/2008
6. Mục tiêu của đề tài/dự án:
Tạo ra 2 Kit thí nghiệm với hạt nhân là vi điều khiển RISC 8 bit và RISC 16/32 bit nhằm :
- Phục vụ công tác đào tạo và nghiên cứu tại các trường Đại học, Cao Đẳng, trung tâm dạy
nghề, các chuyên ngành Điện – Điện Tử, Điện Tử - Viễn Thông, Điều Khiển Tự Động …
- Tiến đến sản xuất thử nghiệm bộ Kit thí nghiệm RISC 8 bit và RISC 16/32 bit tham gia vào
thị trường cung cấp thiết bị nghiên cứu và giảng dạy trên thế giới.
7. Nội dung & Sản phẩm của đề tài/dự án
7.1 Nội dung thực hiện đề tài/dự án
Công việc chính đã hoàn thành tính từ tháng 09/2007 đến tháng 09/2008
STT Nội dung đã thực hiện Mục trình bày trong bản báo cáo
chi tiết
01
- Nghiên cứu các họ vi điều khiển
PIC12xxx, PIC16xxx và PIC18xxx với
lõi RISC 8 bit
- Nghiên cứu các thành phần ngoại vi có
thể giao tiếp với 3 họ PIC nêu trên.
Mục 1.1.1 và 1.1.2
- 12 -
02 - Nghiên cứu các Kit thí nghiệm giảng
dạy RISC 8 bit thông dụng trên thị
trường. Phân tích thiết kế phần cứng,
phần mềm và các bài thí nghiệm. Chỉ
ra ưu nhược điểm của từng kit.
- Xác lập thông số kỹ thuật và đề cương
bài thí nghiệm dự tính cho các kit của
đề tài
Mục 1.2.1 và 1.2.2
03 Thiết kế Kit thí nghiệm – giảng dạy
RISC 8 bit dựa trên cả 3 họ PIC 8 bit
khác nhau.
Mục 1.3
04 Viết chương trình kiểm tra Kit RISC 8
bit
Mục 1.4
05 - Nghiên cứu các họ vi điều khiển ARM
với cấu trúc RISC 32 bit
- Nghiên cứu các thành phần ngoại vi có
thể giao tiếp với ARM 32 bit với cấu
trúc RISC nêu trên.
Mục 1.5.1 và 1.5.2
06 - Nghiên cứu các Kit thí nghiệm giảng
dạy ARM 32 bit thông dụng trên thị
trường. Phân tích thiết kế phần cứng,
phần mềm và các bài thí nghiệm. Chỉ
ra ưu, nhược điểm của từng kit.
- Xác lập thông số kỹ thuật và đề cương
bài thí nghiệm dự tính cho các kit của
đề tài.
Mục 1.6.1 và 1.6.2
07 Thiết kế Kit thí nghiệm – Giảng dạy
ARM 32 bit
Mục 1.7
08 Viết chương trình kiểm tra Kit ARM
32 bit
Mục 1.8
- 13 -
09 Biên soạn tài liệu hướng dẫn sử dụng
cho cả 2 Kit
Mục 1.9.1 và 1.9.2
7.2 Sản phẩm của đề tài/dự án
7.2.1 Kit thí nghiệm – giảng dạy RISC PIC 8 bit.
ICDREC – PICKIT V1.0 là phiên bản thương mại đầu tiên về kít thí nghiệm PIC của
ICDREC. Phiên bản này được xây dựng dựa trên yêu cầu thực tế của quá trình nghiên
cứu về Microchip PIC Microcontroller của các chuyên viên trung tâm chúng tôi.
Với các tính năng nổi trội nếu so sánh với các kít về PIC hiện có trên thị trường thì
ICDREC – PICKIT V1.0 là sự lựa chọn hoàn hảo cho quá trình nghiên cứu, học tập về
mid-range PIC như
: nạp trực tiếp trên board, hỗ trợ nhiều dòng (PIC12/16/18), nhiều
ngoại vi từ đơn giản đến phức tạp (led đơn, led 7 đoạn, LCD,keypad (ext-interrupt),
UART, I2C, SD CARD, IDE, USB, Ethernet…). Có thể nói ICDREC – PICKIT V1.0 là
bộ kít hoàn hảo về hardware
Hình 1: Kit PIC Ver 1.0
So với các yêu cầu của đề tài, Kit PIC có đặc tính như sau:
- Có thể nghiên cứu, thí nghiệm trên các họ vi điều khiển PIC12xxx, PIC16xxx,
PIC18xxx
- 14 -
Các thành phần ngoại vi:
- 8 led đơn
- 4 led 7 đoạn
- LCD 16x2
- Bàn phím 4x4
- port mở rộng
- Ngõ vào cho phép giao tiếp với cảm biến
- SD card
- Realtime clock
- IDE interface
- Audio out
- 1 port Ethernet
- 1 port USB slave
- Clock option
- PWM
- Bộ nhớ ngoài 8 bit
- Đầu nối ICD2
- Đầu nối cáp nguồn
7.2.2
Kit thí nghiệm – giảng dạy RISC 32 bit.
Đây là bộ kit được thiết kế bởi Trung Tâm Đào Tạo và Thiết Kế Vi Mạch (ICDREC).
CPU trung tâm là vi điều khiển ARM LH79525 của NXP. Nhằm mục đích để người
dùng, sinh viên dễ dàng sử dụng bộ kit này, phần này sẽ mô tả các đặc tính cũng như chỉ
rõ sơ đồ tổ chức các khối trên kit. Từ đó người dùng sẽ dễ dàng tiếp cận hơn với bộ kit
này. Tên đầy đủ củ
a kit là KIT ARM – LH79525.
- 15 -
Hình 2: KIT ARM – LH79525
So với đề tài thì Kit ARM có những đặc tính sau:
- Hạt nhân là vi điều khiển LH79525 lõi ARM7TDMI kiến trúc RISC 16/32 bit, so với
S3C44B0x thì LH79525 hơn về tốc độ, đặc tính và các thành phần ngoại vi bên trong
chip nhiều hơn.
- Các thành phần ngoại vi
LCD 20x4
Bộ nhớ flash 8MB – 16 bit
SDRAM 32MB – 16 bit
EEPROM 8KB (I2C)
2 port RS232
2 port USB
1 port Ethernet
1 port IDE với nguồn cấp điều khiển được
- 16 -
Ngõ vào Microphone
1 ngõ ra speaker
Màn hình cảm ứng LCD &TSP 240x320
Cảm biến (ADC)
Hồng ngoại
SD card
PWM
Bàn phím 4x4
Phím nhấn
Led đơn
Led 7 đoạn
Đầu nối JTAG
Đầu nối nguồn
- 17 -
CHƯƠNG I: NỘI DUNG NGHIÊN CỨU
1.1 Nội dung 1:
1.1.1 Nghiên cứu các họ vi điều khiển PIC12xxx, PIC16xxx và PIC18xxx với lõi
RISC 8 bit
1.1.1.1 Giới thiệu
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology.
Dòng PIC đầu tiên là PIC1650 được phát triển bởi Micro Electronics Division thuộc
General Instrument.
− PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" (Máy tính
khả trình thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng
sản phẩm đầu tiên của họ là PIC 1650. Lúc này, PIC 1650 được dùng để giao tiếp với
các thiết bị ngoại vi cho máy chủ 16bit CP1600. Vì vậy, người ta cũng gọi PIC với cái
tên "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi). CP1600 là
một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, do đó PIC 8-bit được phát
triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng
microcode đơn giản đặt trong ROM, mặc dù, cụm từ RISC chưa được sử dụng th
ời
bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh
một chu kỳ máy (4 chu kỳ của bộ dao động).
− Năm 1985, General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới của
nó là Microchip hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC
được bổ sung EEPROM để tạo thành 1 bộ đ
iều khiển vào ra khả trình. Ngày nay rất
nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như
USART, PWM, ADC ), với bộ nhớ chương trình từ 512 Word đến 32K Word.
− PIC sử dụng tập lệnh RISC, với dòng PIC low-end (độ dài mã lệnh 12 bit, ví dụ:
PIC12Fxxx) và mid-range (độ dài mã lệnh 14 bit, ví dụ: PIC16Fxxxx), tập lệnh bao
gồm khoảng 35 lệnh, và 70 lệnh đối với các dòng PIC high-end (độ dài mã lệnh 16
bit, ví dụ: PIC18Fxxxx). Tập lệnh bao gồm các các lệnh tính toán trên các thanh ghi,
với các hằng số, hoặc các vị trí bộ nhớ, cũng như có các lệnh điều kiện, lệnh nhảy/gọi
hàm, và các lệnh để quay trở về, nó cũng có các tính năng phần cứng khác như ngắt
hoặc sleep (chế độ hoạt động tiết kiện điện). Microchip cung cấp môi trường lập trình
MPLAB, nó bao gồm phần mềm mô phỏng và trình dịch ASM.
- 18 -
− Một số công ty khác xây dựng các trình dịch C, Basic, Pascal cho PIC.
Microchip cũng bán trình dịch "C18" (cho dòng PIC high-end) và "C30" (cho dòng
dsPIC30Fxxx). Họ cũng cung cấp các bản "student edition/demo" dành cho sinh viên
hoặc người dùng thử, những version này không có chức năng tối ưu hoá code và có
thời hạn sử dụng giới hạn. Những trình dịch mã nguồn mở cho C, Pascal, JAL, và
Forth, cũng được cung cấp bởi PicForth.
− GPUTILS là một kho mã nguồn mở các công cụ, được cung cấp theo công
ước về bản quyền của GNU General Public License. GPUTILS bao gồ
m các trình
dịch, trình liên kết, chạy trên nền Linux, Mac OS X, OS/2 và Microsoft Windows.
GPSIM cũng là một trình mô phỏng dành cho vi điều khiển PIC thiết kế ứng với
từng module phần cứng, cho phép giả lập các thiết bị đặc biệt được kết nối với PIC, ví
dụ như LCD, LED
− Hiện nay có khá nhiều kiểu PIC và có rất nhiều khác biệt về phần cứng,
nhưng chúng ta có thể điểm qua một vài nét như sau:
• 8 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi
• Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte
• Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic
0 và logic 1)
• 8/16 Bit Timer.
• Công nghệ Nanowatt
• Các chuẩn Giao Tiếp Ngoại Vi Nối Tiếp Đồng bộ/Không đồng bộ USART,
AUSART, EUSARTs
• Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit
• Bộ so sánh điện áp (Voltage Comparators)
• Các module Capture/Compare/PWM
• Giao tiếp LCD
• MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S
• Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần
• Module Điều khiển động cơ, đọc encoder
• Hỗ trợ giao tiếp USB
• Hỗ trợ điều khiển Ethernet
- 19 -
• Hỗ trợ giao tiếp CAN
• Hỗ trợ giao tiếp LIN
• Hỗ trợ giao tiếp IrDA
• Một số dòng có tích hợp bộ RF (PIC16F639, và rfPIC)
• KEELOQ Mã hoá và giải mã
• DSP những tính năng xử lý tín hiệu số (dsPIC)
Một số ưu điểm của PIC so với các dòng vi điều khiển khác:
Các dòng 8051, PIC, AVR, Motorola… Khi thực hiện một thế kế, tùy vào ứng dụng
cụ thể mà ta có thể chọn vi điều khiển tương ứng. Trong đó, dòng vi điều khiển PIC là
dòng được hỗ trợ nhiều ngoại vi nhất, PIC còn có khả năng cung cấp dòng cao để có thể
điều khiển các thiết bị có yêu cầu dòng mà không cần một mạch trung gian.
Vi điều khiển PIC có thể cung cấp cho các ứng dụng từ
đơn giản cho đến các ứng
dụng phức tạp, kích thước của chúng cũng tùy thuộc vào tính năng của chúng như
PIC10F2XX ( 6 chân ) với các chức năng cơ bản như: ICSP, compare, I/O port… cho
đến PIC18XXX với các khối ngoại vi giao tiếp như: I2C, I2S, SSP, SPI, USB, ADC,
DAC, Interrupt, Ethernet…
Nếu so sánh về tính thương mại rõ ràng ta thấy vi điều khiển PIC có thể cho ta một
thiết kế đơn giản, hạn chế tối đa các IC hỗ trợ giao tiếp ngoạ
i vi. Ngoài ra PIC còn khả
năng programmer và debug ngay trên mạch ứng dụng mà không phải tốn thời gian di
chuyển chúng: ICSP (In Circuit Serial Programming), ICD (In Circuit Debug). Trong
trường hợp mạch ở trạng thái chờ quá lâu ta cũng có thể cấu hình để PIC vào mode sleep
nhằm hạn chế tiêu tán công suất. Các dòng RISC 8 bit của PIC thông dụng và phổ biến
nhất hiện nay là 12xxx, 16xxx và 18xxx.
ICSP (In-Circuit Serial Programming) là gì?
Như đã nói, hầu hết các vi điều khiển PIC đều hỗ trợ ICSP ( In-Circuit Serial
Programming ), vậy ICSP là gì? Đây là một phương pháp lập trình cho PIC, với phương
pháp này ta không cần phải tốn thời gian di chuyển chip từ mạch nạp sang mạch ứng
dụng, phương pháp này cho phép ta nạp PIC trực tiếp trên mạch ứng dụng
Yêu cầu của phương pháp này là bắt buộc các chân PGD, PGC, MCLR và GND của
chip phải được kết nối đến mạch n
ạp, và điều quan trong nữa là các chân này cần được
cách ly trong quá trình nạp.
- 20 -
Khi quá trình nạp bắt đầu, điện áp trên chân MCLR được nâng lên 13V, lúc này chip
sẽ tự vào trạng thái programming, hai chân PGD và PGC trên PIC sẽ được cấu hình thành
hai chân Data và Clock cho quá trình Serial Programming
Ưu điểm của phương pháp này là:
- Không cần di chuyển chip sau mỗi lần nạp.
- Đây là cách duy nhất cập nhật code cho các loại chip SMD.
Vậy mỗi dòng có những ưu nhược điểm gì ? Sự khác nhau giữa chúng là gì ?
Mỗi dòng có thể giao tiếp với những ngoại vi nào?
Điể
m khác nhau cơ bản nhất của PIC12XXX, PIC16XXX và PIC18XXX là tập
lệnh của chúng.
Các dòng pic gồm có 4 tập lệnh chính sau:
- Các chip lõi 12-bit dùng chung một tập lệnh có 33 lệnh, giống các lệnh của chip lõi
14-bit.
- Các chip lõi 14-bit dùng chung một tập lệnh có 35 lệnh.
- Các chip lõi 16-bit (PIC18) dùng chung một tập lệnh có 77 lệnh.
- Các chip lõi 24-bit (dsPIC và PIC24) dùng chung một tập lệnh có 83 lệnh.
Do đó, vấn đề học tập lệnh của PIC trở nên dễ dàng đối v
ới quá trình học tập, nghiên
cứu
PIC12XXX có chiều dài mã lệnh là 12 bit, 8 bit data.
PIC16XXX có chiều dài mã lệnh là 14 bit, 8 bit data.
PIC18XXX có chiều dài mã lệnh là 16 bit, 8 bit data.
Sự khác nhau giữa hai loại cấu trúc bộ nhớ Flash (12F, 16F, 18F) và EPROM ( 12C,
16C, 18C)
Đối với việc giảng dạy và học tập thì việc sử dụng các chip có cấu trúc Flash sẽ mang
lại hiệu quả trong công việc, vì dòng chip dùng Flash cho phép quá trình ghi/xóa nhiều
lần (1.000.000 lần).
Trong khi đó các chip dùng EPROM chỉ cho phép ghi 1 lần duy nhất (OTP-One
Time Programmable ). Điều này không tiện cho việc giảng d
ạy cũng như học tập
Do đó, khi thực hiện đề tài này chúng tôi chỉ tập trung nhiều vào các chip sử dụng
cấu trúc Flash nhằm thuận lợi cho quá trình giảng dạy, học tập và nghiên cứu về PIC
1.1.1.2 Sơ lược về cấu trúc của các dòng PIC trên
- 21 -
¾ PIC12XXX
- Mã lệnh có chiều dài 12 bit, gồm 33 lệnh.
- Stack 2 mức
- Số chân 8 (hoặc 14)
- 5 I/O pin (hoặc 6)
- Timer 8 bit, ngoài ra cũng có thể cấu hình thành bộ real time 8 bit. Một số có 2 timer
như 12F675, 12F683.
- Tần số hoạt động tối đa từ 4-10Mhz.
- Một số sản phẩm của dòng này còn hỗ trợ ADC (Analog to Digital Convert), Pin I/O
analog, nguồn ngắt timer, nguồn ngắt ngoài, nguồn ngắt ADC.
- Đặc biệt nó còn cung cấp kh
ối PWM (Pulse Width Modulation) để điều khiển động
cơ.
- Tầm điện áp hoạt động rộng: 2.0V đến 5.5V.
- Bộ nhớ chương trình EEPROM có thể ghi/xóa 1.000.000 lần (FlashROM 100.000
lần).
- Có khả năng bảo vệ code chương trình.
¾ Cấu trúc PIC16XXX
- Mã lệnh có chiều dài 14 bit, gồm 35 lệnh
- Số chân gồm 8, 14, 18, 28 và 40 chân tùy vào số lượng port I/O
- Có chức năng interrupt
- Stack 8 mức
- Có chế độ bảo vệ code chương trình
- Bộ nhớ chương trình có thể nạp/xóa 1.000.000 lần
- Có chế độ Sleep để hạn chế công suất tiêu thụ
- Tầm điện áp hoạt động rộng: 2.5V đến 6.0V
- Có 2 bộ timer 8 bit/couter 8 bit. Một số sản phẩm của dòng này còn có bộ timer 16
bit.
- Có bộ Compare/PWM/Capture có thể lên đến 16 bit
- Có port nối tiếp đồng bộ SSP có thể
cấu hình SPI
- Có khối I2C
- Có khối USART
- 22 -
- Có port giao tiếp song song với các chân điều khiển /RD, /WR, /CS
- Bộ nhớ chương trình có chiều dài từ 1K word đến 8K word
- Số nguồn ngắt từ 7-11
- I/O port có thể lên đến 5 port
- Hỗ trợ port I/O analog
- Có nhiều kênh ADC nhằm hỗ trợ điều khiển động cơ ( 4 – 14 kênh ADC 10 bit)
16F7X7
- Có chức năng ICSP, và ICD (In Circuit Debug) với MPLAB
¾ Cấu trúc PIC18XXX
- Mã lệnh có chiều dài 16 bit gồm 75 lệnh, 8 bit data.
- Số chân phổ biến 40 chân.
- Có thể hoạt động đến 10 MIPs.
- Một số sản phẩm của dòng này không yêu cầu lập trình điện áp cao (Vpp) như hai
dòng trên.
- Hỗ trợ nhiều ngắt ngoài.
- Hỗ trợ port I/O analog.
- Có đến 4 timer, với nhiều timer 16 bit hơn.
- Có nhiều khối Compare/Capture/PWM 16 bit.
- Có Port SSP có khả năng cấu hình mode SPI 4 chế
độ hoạt động.
- Port I/O lên đến 5 port.
- Khối I2C có thể cấu hình Master/Slave.
- Có khối USART.
- Có port giao tiếp song song (Parallel Slave Port).
- Tầm điện áp hoạt động rộng: 2.5V đến 5.5V.
- Tiêu thụ công suất thấp, có chế độ Sleep để hạn chế công suất.
- Có chức năng debug trên mạch ICD và ICSP.
- Có nhiều Pin ADC hoạt động ở mức điện áp cao.
¾ Đặc tính các dòng PIC
PIC12XXX PIC16XXXX PIC18XXXX
- 23 -
-12 bit mã lệnh, 33
lệnh
8/14 chân
-Tầm điện áp 2.0-
5.5 V
- Bộ nhớ chương
trình có thể ghi/xóa
hàng triệu lần
- I/O, timer, ADC,
PWM, interrupt
-14 bit mã lệnh, 35 lệnh
-8/14/18/28/40 chân
-Tầm điện áp 2.5-6.0 V
- Bộ nhớ chương trình
có thể ghi/xóa hàng triệu
lần
- I/O, timer, interrupt,
Compare/PWM/Capture,
SSP, I2C, UART,
USART, ADC, ICD
-16 bit mã lệnh, 75 lệnh
-40 chân
-Tầm điện áp 2.5-5.5 V
-Bộ nhớ chương trình có
thể ghi/xóa hàng triệu
lần
- I/O, timer, interrupt,
ADC, ICD, USB,
Compare/PWM/Capture,
SSP, I2C, UART,
USART, SPP
1.1.2 Nghiên cứu các thành phần ngoại vi có thể giao tiếp với 3 họ PIC nêu trên.
1.1.2.1 Dòng PIC12xxx:
Pic12xxx thông thường có khoảng 6 chân GPIO, điều này còn tùy thuộc vào từng họ
cụ thể, nhưng thông thường pic12xxx có các module cơ bản sau
¾ Module Analog Comparator:
Khi module được kích hoạt, hai chân GPIO của chip được cấu hình thành 2 ngõ vào
của bộ so sánh 2 tín hiệu analog (hoặc tín hiệu ngoài và tín hiệu chuẩn bên trong chip).
Kết quả so sánh sẽ được vi xử lý đọc về và xử lý, ngoài ra ta cũng có thể đưa tín hiệu
này ra chân GPIO khác của chip bằng cách cấu hình cho chúng.
- 24 -
Điều này vô cùng thuận lợi cho việc điều khiển các ứng dụng bên ngoài bằng cách
đọc kết quả so sánh được từ hai tín hiệu dùng để đóng/ngắt các thiết bị ngoại vi bên
ngoài.
Với module này, chúng có thể được sử dụng trong các thiết bị y tế như: Máy đo nhịp
tim, huyết áp. Trong các thiết bị dân dụng, có thể được sử dụng để đếm nhịp xung, tạo
dao động và một số thiết bị khác
Rõ ràng ta thấy rằng nếu dùng các chip vi điều khiển khác như 89C51, AVR ta phải
sử dụng một comparator rời để đưa tín hiệu vào chip, điều này không dễ dàng chút nào
với các thiế
t kế yêu cầu về tính kinh tế, về kích thước…Do đó việc lựa chọn PIC là tốt
hơn
¾ Module Timer:
Đối với dòng PIC12xxx, thông thường có 3 bộ timer 8-bit (một số có timer 16-bit) có
khả năng ghi/xóa, các bộ timer hoạt động độc lập với nhau. Trong đó timer 0 có thể cấu
hình thành bộ couter realtime.
Mỗi bộ được cấu hình độc lập nhau, dao động có thể lấy từ ngoài hoặc từ dao động
nội của vi xử lý
Ưu điểm của timer là chương trình có thể xử lý nhiều sự kiện gần như đồng thời như
hiển thị LED và quét phím
¾ Module ADC (Analog to Digital Converter):
Module ADC cho phép chuyển đổi tín hiệu từ analog sang digital, với số kênh được
ghép lên đến 4 kênh 10-bit. Việc chọn kênh sử dụng được thực hiện bằng cách cấu hình
các thanh ghi điều khiển của module.
- 25 -
Tùy vào từng ứng dụng cụ thể mà tần số lấy mẫu của kênh được lựa chọn tương ứng,
tần số này được lấy từ bộ dao động nội của chip
Module ADC có khả năng đọc vào các tín hiệu analog sau đó chuyển thành tín hiệu
digital và xử lý. Các ngoại vi có thể giao tiếp với module này gồm: Các cảm biến analog,
các tín hiệu audio, video… Module này hỗ trợ mạnh cho các ứng dụng điều khiển
động
cơ.
¾ Interrupt:
Interrupt được sử dụng trong nhiều module khác nhau như: Comparator Interrupt,
timer interrupt, ADC interrupt …
Comparator interrupt: Khi module so sánh analog được cấu hình interrupt thì sau mỗi
thay đổi trạng thái bộ compare, cờ ngắt sẽ được set. Quá trình này xảy ra chương trình
tạm thời sẽ ngừng và nhảy vào chương trình phục vụ ngắt ở địa chỉ ngắt. Kết thúc
chương trình ngắt, con trỏ chương trình sẽ trở về vị trí mà nó đã tạm dùng trước đó để
thực hiện tiếp
Timer interrupt: Tương tự như interrupt của comparator, mỗi bộ timer đều có một
interrupt tương ứng. Đây chính là điểm mạnh của timer interrupt
ADC interrupt: Hoàn toàn tương tự như timer interrupt, mỗi kênh ADC chứa một
timer
Như vậy các ngoại vi có thể kết nối với họ PIC12XXX là các device có số chân giao
tiếp tương đối ít (khoảng 6 GPIO).
Tuy nhiên, đối với các ứng dụng nhỏ thì PIC12xxx tương đối đầy đủ cho các điều
khiển các thiế
t bị dân dụng, và học tập về vi điều khiển RISC như: các loại cảm biến số,