MỤC LỤC
MỤC LỤC................................................................................................................... 1
LỜI MỞ ĐẦU ............................................................................................................. 2
CHƯƠNG 1: TỔNG QUAN ...................................................................................... 3
1.1 Đặt vấn đề ........................................................................................................... 3
1.2 Phạm vi của đề tài ............................................................................................... 3
1.3 Hướng giải quyết vấn đề ..................................................................................... 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .......................................................................... 4
2.1 Giới thiệu sơ lược về MSP430 ............................................................................ 4
2.2 Kit eZ430 RF2500 .............................................................................................. 4
2.2.1 Giới thiệu Kit eZ430 RF2500 ....................................................................... 4
2.2.2 Thành phần Kit eZ430 RF2500 của TI.......................................................... 5
2.2.3 Chức năng các chân của board eZ430-RF2500 ............................................. 7
2.2.4 Đặc điểm MSP430F2274 trên kit eZ430-RF2500 ....................................... 10
2.2.5 Đặc điểm CC2500 trên kit eZ430-RF2500.................................................. 11
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU ..................................... 14
3.1. Sơ đồ mạch chi tiết của kit eZ430-RF2500....................................................... 14
3.2 Sơ đồ khối của mạch thiết kế............................................................................. 17
3.2.1 Mạch điều khiển Motor sử dụng cầu H ....................................................... 17
3.2.2 Các phím điều khiển ................................................................................... 18
3.3 Lưu đồ giải thuật ............................................................................................... 19
3.4 Nguyên tắc truyền nhận dữ liệu giữa MSP430F2274 với CC2500 ..................... 21
3.5 Khung dữ liệu truyền nhận ................................................................................ 21
3.6 Chương trình ..................................................................................................... 22
KẾT LUẬN ............................................................................................................... 28
TÀI LIỆU THAM KHẢO ........................................................................................ 29
21
Trang 1
LỜI MỞ ĐẦU
MSP430 là họ vi điều khiển cấu trúc RISC 16-bit được sản xuất bởi công ty Texas
Instruments. MSP là chữ viết tắt của “MIXED SIGNAL MICROCONTROLLER”, là
dòng vi điều khiển siêu tiết kiệm năng lượng, sử dụng nguồn thấp, khoảng từ 1.8V –
3.6V. MSP430 kết hợp các đặc tính của một CPU hiện đại và tích hợp sẵn các module
ngoại vi. Kit eZ430-RF2500 là một sản phẩm ứng dụng của MSP430, được tích hợp
thêm bộ phận truyền nhận dữ liệu không dây hoạt động ở vùng tần số 2.4GHz và bộ
phận cảm biến nhiệt. Đây là họ vi điều khiển mới gia nhập vào thị trường vi điều khiển
của nước ta, nên chưa có nhiều đề tài nghiên cứu và triển khai ứng dụng.
Bài báo cáo vi xử lý này trình bày về Kit eZ430-RF2500 và ứng dụng Kit này vào
thiết kế xe điều khiển từ xa.
Trong quá trình tìm hiểu và thiết kế khơng tránh khỏi thiếu sót, rất mong nhận
được ý kiến đóng góp của thầy cô và các bạn.
Xin gửi lời cảm ơn chân thành đến thầy Trần Hữu Danh đã hướng dẫn để nhóm
chúng em hoàn thành tốt đề tài vi xử lý này.
Trang 2
CHƯƠNG 1: TỔNG QUAN
1.1 Đặt vấn đề
Yêu cầu đặt ra: tìm hiểu Kit eZ430-RF2500 của TI và sử dụng bộ truyền nhận khơng
dây được tích hợp sẵn trên kit để thiết xe điều khiển từ xa.
1.2 Phạm vi của đề tài
Đề tài tập trung vào khảo sát, nghiên cứu Kit eZ430-RF2500. Trên cơ sở đó, thiết kế
phần cứng và lập trình để điều khiển được xe.
1.3 Hướng giải quyết vấn đề
Dựa trên những vấn đề đã đặt ra chúng ta sẽ sử dụng các phương pháp sau để hoàn
thành đề tài:
-
Nghiên cứu tài liệu: thu thập và xử lí tài liệu. Các tài liệu thu thập chủ yếu qua
sự hướng dẫn của thầy cô và tài liệu trên mạng internet (trang web của TI).
-
Thiết kế phần cứng mơ hình xe.
-
Dùng IAR Embedded Workbench (phần mềm hỗ trợ đầy đủ các cơng cụ lập
trình cho dịng sản phẩm MSP430) để viết chương trình, biên dịch, gỡ lỗi và nạp
cho Kit.
Trang 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu sơ lược về MSP430
MSP430 là họ vi điều khiển có cấu trúc RISC 16-bit được sản xuất bởi công ty Texas
Instruments, là dòng vi điều khiển siêu tiết kiệm năng lượng, sử dụng nguồn thấp,
khoảng điện áp nguồn cấp từ 1.8V – 3.6V. MSP430 kết hợp các đặc tính của một CPU
hiện đại và tích hợp sẵn các module ngoại vi. RISC (Reduced Intruction Set Computer)
là một kiến trúc vi xử lý theo hướng đơn giản hóa tập lệnh. Các lệnh được xây dựng để
có thể thực hiện với chỉ 1 chu kỳ máy. Mặt khác bus dữ liệu và bus địa chỉ (có độ rộng
16 bít) tách rời nhau điều này giúp cho quá trình đọc dữ liệu và mã lệnh có thể diễn ra
đồng thời do đó nâng cao hiệu suất làm việc của vi xử lý.
Các thành viên của dòng MSP430 bao gồm:
- MSP430F2232: 8KB + 256B Flash Memory 512B RAM.
- MSP430F2272: 32KB + 256B Flash Memory 1KB RAM.
- MSP430F2234: 8KB + 256B Flash Memory 512B RAM.
- MSP430F2254: 16KB + 256B Flash Memory 512B RAM.
- MSP430F2274: 32KB + 256B Flash Memory 1KB RAM.
Với sự tiêu thụ dòng rất thấp trong chế độ tích cực thì dịng tiêu thụ là 200uA, 1Mhz,
2.2V. Với chế độ standby thì dịng tiêu thụ là 0.7uA. Và chế độ tắt chỉ duy trì bộ nhớ
Ram thì dịng tiêu thụ rất nhỏ 0.1uA. MSP430 có ưu thế về chế độ nguồn nuôi. Thời
gian chuyển chế độ từ chế độ standby sang chế độ tích cực rất nhỏ (< 6us).
2.2 Kit eZ430 RF2500
2.2.1 Giới thiệu Kit eZ430 RF2500
eZ430-RF2500 là một thẻ giao tiếp USB và truyền nhận dữ liệu không dây. eZ430RF2500 được phát triển dựa trên MSP430F2274 kết hợp với chíp CC2500 truyền nhận
tín hiệu ở vùng tần số 2.4 GHz, tích hợp sẵn cảm biến nhiệt độ. Do đặc điểm dịng
MSP430 có những ưu thế về năng lượng nên đáp ứng được những nhu cầu trong thiết
bị di động. MSP430 dùng nguồn 3.6V nên trong thiết kế này ta có thể sử dụng pin.
Trang 4
Bộ eZ430-RF2500 là một sản phẩm có thể làm việc với đầu cắm USB như một hệ
thống độc lập với cảm biến bên ngoài. Hoặc sử dụng thiết kế mở rộng với những
module ngoại vi. Với giao diện gỡ lỗi USB cho phép sản phẩm có thể truyền và nhận
dữ liệu từ xa từ máy tính cá nhân sử dụng truyền nhận nối tiếp UART.
Đặc tính của eZ430-RF2500:
-
Giao diện lập trình và gỡ lỗi.
-
Có sẵn 21 chân.
-
Mật độ tích hợp cao, MSP430 có nguồn cực thấp siêu tiết kiệm năng lượng.
-
Hai chân xuất/ nhập kết nối với hai led xanh và đỏ cho phép người lập trình mơ
phỏng trực quan.
-
Một nút nhấn dùng để mô phỏng trực quan.
2.2.2 Thành phần Kit eZ430 RF2500 của TI
Phần cứng:
-
Hai eZ430-RF2500T target board.
-
Một eZ430-RF cổng USB.
-
Một eZ430-RF2500 dùng Pin (có Pin kèm theo).
Một CD- ROM MSP430 Development Tool có tài liệu, một số code mẫu và phần mềm
ứng dụng:
-
MSP430x2xx Family User’s Guide, SLAU144
-
eZ430-RF2500 User’s Guide, SLAU227
-
Code Composer Essentials (CCE), SLAC063
-
IAR Embedded Workbench (KickStart Version), SLAC050
-
eZ430-RF2500 Sensor Monitor (Code and Visualizer), SLAC139
Hình 1 mơ tả Kit eZ430-RF2500 dùng cổng USB.
Trang 5
Hình 1: Board eZ430-RF2500 USB
Hình 2 là Board eZ430-RF2500 dùng Pin.
Hình 2: Board eZ430-RF2500 dùng Pin
Trang 6
2.2.3 Chức năng các chân của board eZ430-RF2500
Hình 3 là sơ đồ kết nối giữa eZ430-RF2500T target board và Battery Board.
Hình 3: Sơ đồ kết nối giữa eZ430-RF2500T Target Board và Battery Board
Ngồi ứng dụng truyền nhận tín hiệu từ xa, board cịn lấy ra 18 chân cho người lập
trình thực hành và phát triển những ứng dụng riêng của mình.
Bảng 1: Chức năng các chân của Battery Board
PIN
1
Chức năng
P3.4 / UCA0TXD /
UCA0SIMO
2
3
4
GND
RST / SBWTDIO
TEST / SBWTCK
5
6
VCC (3,6V)
P3.5 / UCA0RXD /
UCA0SOMI
Mô tả
Chân xuất/nhập số, chân truyền dữ liệu
USCI_A0 trong chế độ UART, ngõ vào chế độ
tớ, ngõ ra chế độ chủ trong chế độ SPI
Mass
Chân reset tích cực mức thấp.
Lựa chọn chế độ kiểm tra cho chân JTAG của
port 1.
Nguồn Vcc 3.6V
Chân xuất/nhập số, chân nhận dữ liệu USCI_A0
trong chế độ UART, ngõ vào chế độ tớ, ngõ ra
chế độ chủ trong chế độ SP.
Trang 7
Bảng 2: Chức năng các chân của Board eZ430-RF2500
PIN
Chức năng
Mô tả
1
GND
Mass
2
VCC
Chân nguồn Vcc 1.8V - 3.6V.
3
P2.0 / ACLK / A0 / OA0I0
Chân xuất/nhập số, ngõ ra xung clock ACLK,
ngõ vào tương tự A0 kênh ADC10.
4
P2.1 / TAINCLK / SMCLK
Chân xuất/nhập số, ngõ vào analog A1 kênh
/ A1 /A0O
ADC10, xung clock INCLK của Timer_A, xung
clock chủ SMCLK.
5
P2.2 / TA0 / A2 / OA0I1
Xuất/nhập, ngõ vào tương tự A2 của kênh
ADC10, ngõ vào CCI0B của Timer_A chế độ
capture, ngõ ra OUT0 chế độ so sánh.
6
P2.3 / TA1 / A3 / VREF – /
Xuất/nhập, ngõ vào tương tự A3 kênh ADC10,
VeREF – OA1I1 / OA1O
điện áp tham chiếu âm VREF – / VeREF –, ngõ
vào CCI1B của Timer_A, ngõ ra OUT1 chế độ
so sánh.
7
P2.4 / TA2 / A4 / VREF+ /
Chân xuất/nhập số, ngõ vào tương tự A4 kênh
VeREF+/ OA1I0
ADC10, ngõ ra OUT2 Timer_A chế độ so sánh,
ngõ vào/ra điện áp tham chiếu.
8
P4.3 / TB0 / A12 / OA0O
Chân xuất/nhập số, ngõ vào tương tự A12 kênh
ADC10, ngõ vào CCI0B Timer_B chế độ
capture, ngõ ra OUT0 chế độ so sánh.
9
P4.4 / TB1 / A13 /
OA1O
Chân xuất/nhập số, ngõ vào tương tự A13 kênh
ADC10, ngõ vào CCI1B Timer_B chế độ
capture, ngõ ra OUT1 chế độ so sánh.
10
P4.5 / TB2 / A14 / OA0I3
Chân xuất/nhập số, ngõ vào tương tự A14 kênh
ADC10, ngõ ra OUT0 của Timer_B chế độ so
sánh.
Trang 8
11
P4.6 / TBOUTH / A15 /
Chân xuất/nhập số, ngõ vào tương tự A15 kênh
OA1I3
ADC10, chuyển mạch từ TB0 sang TB3 ngõ ra
tổng trở cao.
12
GND
Mass
13
P2.6 / XIN (GDO0)
Chân xuất/nhập số, kết nối thạch anh.
14
P2.7 / XOUT (GDO2)
Chân xuất/nhập số, kết nối thạch anh.
15
P3.2 / UCB0SOMI /
Chân xuất/nhập số, ngõ ra chế độ tớ, ngõ vào
UCB0SCL
chế độ chủ USCI_B0 trong chế độ SPI, nguồn
xung clock SCLI2C trong I2C mode.
16
P3.3 / UCB0CLK /
Chân xuất/nhập số, ngõ vào xung clock
UCA0STE
USCI_B0, ngõ ra cho phép truyền dữ liệu
USCI_A0 trong chế độ tớ.
17
P3.0 / UCB0STE /
Chân xuất/nhập số, ngõ vào tương tự A5 kênh
UCA0CLK / A5
ADC10, xung USCI_A0, chân cho phép truyền
tín hiệu USCI_B0 trong chế độ tớ.
18
P3.1 / UCB0SIMO
Chân xuất/ nhập số, , ngõ ra chế độ tớ, ngõ vào
/UCB0SDA
chế độ chủ USCI_B0 trong chế độ SPI, dữ liệu
SDAI2C trong I2C mode.
Trang 9
2.2.4 Đặc điểm MSP430F2274 trên kit eZ430-RF2500
Sơ đồ khối bên trong của MSP430F2274 được thể hiện qua Hình 3.
Hình 3: Sơ đồ khối MSP430F2274
Sơ đồ khối trên bao gồm một số khối như sau: khối nguồn xung, khối CPU, khối
ADC10, khối Timer, khối chuẩn giao tiếp,…
Các thông số kỹ thuật của MSP430F2274 được trình bày như bảng 3.
Trang 10
Bảng 3: Các thông số kỹ thuật của MSP430F2274.
2.2.5 Đặc điểm CC2500 trên kit eZ430-RF2500
CC2500 là vi điều khiển thực hiện các công việc như: điều chế, giải điều chế, kiểm tra
lỗi, lặp bit, … .để phục vụ cho việc thu phát khơng dây.
CC2500 là chíp thu phát sóng vơ tuyến RF tần số 2.4 GHz. Chip sử dụng nguồn thấp
tiết kiệm năng lượng có thể sử dụng pin. Thích hợp với những thiết bị di động điều
khiển bằng công nghệ không dây, thiết bị điện tử dân dụng, điều khiển đồ chơi, chuột
và bàn phím khơng dây, các ứng dụng điều khiển từ xa khác. Bộ thu phát được tích hợp
với cấu hình modem dải gốc cao. Modem hỗ trợ nhiều hình thức điều chế tín hiệu khác
nhau trong đó cấu hình dữ liệu lên tới 500 Kbaud. CC2500 hỗ trợ phần cứng cho việc
xử gói dữ liệu. Tích hợp cảm biến nhiệt độ. Thường CC2500 kết hợp với một chip vi
xử lý và các linh kiện thụ động khác để thực hiện chức năng điều khiển.
Trang 11
Hình 4: Sơ đồ khối bên trong CC2500
Các thơng số kỹ thuật của CC2500 được trình bày như bảng 4.
Bảng 4: Các thông số kỹ thuật của CC2500.
Thông số
MIN
TYP
MAX
UNIT Điều kiện
3.6
V
Điều kiện làm việc
Điện áp
1.8
Dịng tiêu thụ
Tín hiệu vào RX
16.6
mA
Dịng tối ưu
250kbps
18.8
mA
Độ nhạy tối ưu
Tín hiệu vào RX
13.3
mA
Dịng tối ưu
30dB 250kbps
15.7
mA
Độ nhạy tối ưu
Dòng tiêu thụ TX
21.2
mA
11.1
mA
(0dBm)
Dòng tiêu thụ TX
(-12dBm)
Trang 12
Đặc điểm truyền nhận RF
Tần số
2400
2483.5 MHz
Tốc độ dữ liệu
1.2
500
kbps
Công suất ngõ ra
-30
0
dBm
Độ nhạy 10 kbps
Độ nhạy 250 kbps
-99
dBm
Dòng tối ưu
-101
dBm
Độ nhạy tối ưu
-87
dBm
Dòng tối ưu
-89
dBm
Độ nhạy tối ưu
Trang 13
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1. Sơ đồ mạch chi tiết của kit eZ430-RF2500
Hình 5: Sơ đồ nguyên lý của USB
Trang 14
Hình 6: Sơ đồ nguyên lý của USB
Trang 15
Hình 7: Sơ đồ nguyên lý của board eZ430-RF2500T
Trang 16
3.2 Sơ đồ khối của mạch thiết kế
3.2.1 Mạch điều khiển Motor sử dụng cầu H
-
-
Motor có cấu tạo gồm stato (phần đứng yên) với các cực từ (bằng nam châm
vĩnh cửu hoặc nam châm điện), roto với các cuộn dây quấn, cổ góp, chổi điện.
Hình 8: Cấu tạo của motor
Relay là một dạng “công tắc” (switch) cơ điện, gồm các tiếp điểm cơ được điều
khiển đóng mở bằng dịng điện. Cực C gọi là cực chung, NC là tiếp điểm
thường đóng (Normal Closed) và NO là tiếp điểm thường mở (Normal Open).
Hình 9 là cấu tạo và hình dạng thực tế một loại của relay. Với khả năng đóng
mở các tiếp điểm, nên ta chọn relay để làm khóa cho mạch cầu H.
Hình 9: Cấu tạo và hình dạng thực tế một loại của relay
Trang 17
-
Mạch điều khiển motor sử dụng cầu H được thiết kế như hình 10.
dk1
R1
Q5
Q6
NPN
NPN
10k
R2
dk2
10k
Hình 10: Sơ đồ mạch điều khiển motor sử dụng cầu H
3.2.2 Các phím điều khiển
R1
1k
R2
1k
R3
1k
R4
1k
Hình 11: Sơ đồ các phím điều khiển
Trang 18
3.3 Lưu đồ giải thuật
Giải thuật truyền
BEGIN
B
sai
Phím tiến
ấn
A
Đúng
sai
Phím phải
ấn
Đúng
Đúng
Truyền ký tự ‘a’
A
Truyền ký tự ‘b’
Phím trái
ấn
Phím phải
ấn
Truyền ký tự ‘r’
Đúng
Phím lùi
ấn
Đúng
Truyền ký tự ‘l’
Trang 19
B
Truyền ký tự ‘u’
sai
sai
Đúng
sai
Phím trái
ấn
Truyền ký tự ‘d’
sai
Giải thuật nhận:
BEGIN
B
Nhận dữ liệu
sai
Nhận ‘b’
Nhận ‘a’
Đúng
A
Đúng
Tiến và rẻ trái
Đúng
rẻ phải
Tiến
sai
sai
Nhận ‘r’
Nhận ‘u’
Đúng
Tiến và rẻ phải
A
sai
Nhận ‘l’
Nhận ‘d’
Đúng
Đúng
rẻ trái
B
Trang 20
lùi
3.4 Nguyên tắc truyền nhận dữ liệu giữa MSP430F2274 với CC2500
Quá trình truyền dữ liệu bắt đầu với dữ liệu cần truyền được nạp vào thanh ghi
đệm truyền UCxTXBUF. Từ đó dữ liệu được chuyển tới thanh ghi dịch truyền. Quá
trình truyền kết thúc khi thanh ghi dịch truyền rỗng.
Quá trình nhận dữ liệu bắt đầu với dữ liệu nhận ở thanh ghi dịch nhận Receive
Shift Register. Dữ liệu từ thanh ghi này chuyển sang thanh ghi UCxRXBUF. Quá trình
nhận kết thúc khi thanh ghi dịch nhận Receive Shift Register rỗng.
3.5 Khung dữ liệu truyền nhận
Khung dữ liệu được phân thành các thành phần chính sau:
- Chiều dài khung dữ liệu cần truyền (Length) 1 Byte: chỉ rõ độ dài cụ thể của dữ
liệu cần truyền.
- Nguồn dữ liệu (Source) 4 Byte: xác định nguồn của dữ liệu.
- Định hướng (Destination) 4 Byte: định hướng dữ liệu cần truyền.
- Nội dung (Payload) 8 Byte: trình bày nội dung của dữ liệu cần truyền. Tối đa có
thể lên đến 20 byte.
Thực tế khi truyền dữ liệu ta có thể bỏ qua 2 thành phần: source và destination.
Khi truy xuất dữ liệu từ khung ta có thể truy xuất như 1 mảng gồm có số phần tử bằng
với độ dài của khung dữ liệu.
Trang 21
3.6 Chương trình
Chương trình truyền
#include "radios/family1/mrfi_spi.h"
#include "mrfi.h"
#define down (P2IN&0x02)
#define right (P2IN&0x08)
#define left (P4IN&0x08)
#define up (P4IN&0x20)
#define up_left (P2IN&0x04)
mrfiPacket_t packetToSend;
void transmit(char value);
int main(void)
{
BSP_Init();
P1REN |= 0x04;
P1IE |= 0x04;
MRFI_Init();
mrfiSpiWriteReg(PKTCTRL0,0x41); //what does it mean? why do we need it?
MRFI_WakeUp();
MRFI_RxOn();
__bis_SR_register(GIE+LPM4_bits);
}
void MRFI_RxCompleteISR()
{
}
//define: signal to transmit
//a: up_right
//b: up_left
//u: up
//d: down
//c: down_right
//e: down_left
//r: right
//l: left
//s: stop
#pragma vector=PORT1_VECTOR
__interrupt void Port_1 (void)
{
for(;;){
if(up){
Trang 22
if(right){
transmit('a');
}
else if(left){
transmit('b');
}
else
transmit('u');
}
else if(down){
if(right){
transmit('c');
}
else if(left){
transmit('e');
}
else
transmit('d');
}
else if(right){
transmit('r');
}
else if(left){
transmit('l');
}
else if(up_left){
transmit('s');
}
}
}
void transmit(char value) //transmit function
{
mrfiPacket_t packet;
packet.frame[9]=value;
packet.frame[0]=11;
MRFI_Transmit(&packet, MRFI_TX_TYPE_FORCED);
P1OUT^=0x03;
}
Trang 23
Chương trình nhận:
#include "radios/family1/mrfi_spi.h"
#include "mrfi.h"
mrfiPacket_t packetToSend;
void clearu_d(void);
void left(void);
void right(void);
void up(void);
void down(void);
void clearl_r(void);
int main(void)
{
P2DIR=0x11;
P4DIR=0x50;
BSP_Init();
P1REN |= 0x04;
P1IE |= 0x04;
MRFI_Init();
mrfiSpiWriteReg(PKTCTRL0,0x41); //what does it mean? why do we need it
MRFI_WakeUp();
MRFI_RxOn();
__bis_SR_register(GIE+LPM4_bits);
}
void MRFI_RxCompleteISR()
{
mrfiPacket_t packet;
Trang 24
MRFI_Receive(&packet);
char signal;
signal=packet.frame[9];//received signal
if(signal=='u'){ //go ahead
clearl_r();
up();
}
else if(signal=='a'){ //go ahead and turn right
up();
right();
}
else if(signal=='b'){ //go ahead and turn left
up();
left();
}
else if(signal=='d') { //go back
clearl_r();
down();
}
else if(signal=='c'){//down_right
down();
right();
}
else if(signal=='e'){// down_left
down();
left();
}
else if(signal=='l'){ //turn left
Trang 25