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

Báo cáo project 2

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 (996.74 KB, 27 trang )

Báo cáo project 2

Mục Lục:

Mục Lục: ............................................................................................................................................... 1
A.Lời Nói Đầu. ...................................................................................................................................... 3
B.Nội Dung............................................................................................................................................ 4
Phần 1: Mô Tả Đề Tài. ...................................................................................................................... 4
1.

Các Phần Mềm Và Thiết Bị Mô Phỏng Sử Dụng. ............................................................ 4

2.

Yêu Cầu Của Đề Tài............................................................................................................ 4

Phần 2: Tìm Hiểu Về Linh Kiện Phần Cứng Sử Dụng. ..................................................................... 5
1.

Vi Điều Khiển MSP430G2553. ........................................................................................... 5

2.

LCD 16x2. ...........................................................................................................................11

3.

Module thu phát nRF24L01 2.4Ghz. ...............................................................................14

Phần 3: Code Cho MPS430G2553 Và Thiết Kế Mạch. ..................................................................17
1.



Code Cho MPS430G2553..................................................................................................17

2.

Thiết Kế Mạch. ..................................................................................................................20

3.

Mạch Thực Tế Hoàn Thành. ............................................................................................21

C.Kết Luận. .........................................................................................................................................22
D.Phụ Lục ............................................................................................................................................23

Nhóm 1

Page 1


Báo cáo project 2

Danh sách Hình Vẽ

Hình 1: Kit launchpad msp430 .............................................................................................................. 4
Hình 2: MSP430G2553 ......................................................................................................................... 5
Hình 3: Sơ đồ chân MSP430G2553 ...................................................................................................... 6
Hình 4: Mạch RESET cho chip ............................................................................................................. 9
Hình 5 : Hình dáng của loại LCD thông dụng .....................................................................................11
Hình 6 : Sơ đồ chân của LCD..............................................................................................................12
Hình 7: Module thu phát nRF24L01 ...................................................................................................14

Hình 8: Sơ đồ khối của nRF24L01. .....................................................................................................15
Hình 9: Mạch Layout của nRF24L01. .................................................................................................16
Hình 10: Mạch Nguyên Lý. .................................................................................................................20
Hình 11: Lớp Top. ...............................................................................................................................21
Hình 12: Lớp Bottom ..........................................................................................................................21
Hình 13:Mạch sau khi hoàn thành. ......................................................................................................21

Nhóm 1

Page 2


Báo cáo project 2

A.Lời Nói Đầu.
Để giúp sinh viên học tập, trau dồi thêm kiến thức về thiết kế phần cứng và tiếp cận
sâu hơn với vi điều khiển thì Viện Điện Tử Viễn Thông trường ĐH.Bách Khoa Hà
Nội đã tổ chức môn học Project 2. Trong môn học Project 2 này nhóm em đã được
phân công dưới sự hướng dẫn của thầy ThS.Nguyễn Tiến Dũng. Nhờ có sự chỉ bảo
hướng dẫn cụ thể của thầy lên nhóm em đã hoàn thành được Project 2.
Trong quá trình thực hiện Project 2 được sự hướng dẫn chỉ bảo tận tình của thầy
ThS.Nguyễn Tiến Dũng cùng anh hướng dẫn Nguyễn Quang Tuấn Anh, chúng em đã
học tập và trau dồi cho bản thân nhiều kiến thức mới lạ, bổ ích, biết cách tiếp cận một
vẫn đề và đưa ra ý tưởng giải quyết vẫn đề. Qua đó rèn luyện cho mình phẩm chất
của những kỹ sư trong tương lai.
Mặc dù nhận được sự giúp đỡ, chỉ bảo, tận tình từ phía các thầy nhưng do bước đầu
làm quen với loại vi điều khiển mới lên chúng em cũng gặp phải một vài khó khăn
khi tiếp cận nhưng cũng đã nhanh chóng tìm hiểu và làm chủ được nó.
Cuối cùng chúng em xin được gửi lời cảm ơn tới thầy ThS.Nguyễn Tiến Dũng và
anh Nguyễn Quang Tuấn Anh đã hướng dẫn chúng em hoàn thành Project 2.

Chúng em xin chân thành cảm ơn!

Nhóm 1

Page 3


Báo cáo project 2

B.Nội Dung.

Phần 1: Mô Tả Đề Tài.

1. Các Phần Mềm Và Thiết Bị Mô Phỏng Sử Dụng.
 Phần mềm altium designer 10: vẽ mạch phần cứng.
 Phần Mềm CCS4.0: dùng đề viết code cho vi điều khiển MSP430, và giúp
lạp xuống kit launchpad msp430.
 Kit launchpad msp430: công cụ test mô phỏng phần cứng.

Hình 1: Kit launchpad msp430

2. Yêu Cầu Của Đề Tài.
 Mạch OBU thu tín hiệu trả phí.
 Mạch phát tín hiệu trả phí đặt tại cổng thu phí.
 Hiển thị thông tin tùy chọn.
 Không phát trùng lặp tín hiệu tới nhiều OBU.
 Truyền thông ở tốc độ tới 20km/h.
Nhóm 1

Page 4



Báo cáo project 2

Phần 2: Tìm Hiểu Về Linh Kiện Phần Cứng Sử Dụng.

1. Vi Điều Khiển MSP430G2553.

Hình 2: MSP430G2553


Giới thiệu tổng quát :

Các dòng vi điều khiển msp430 này do hãng TI ( Texas Instruments) sản xuất,
ngoài ra thì TI còn sản xuất và cung cấp nhiều linh kiện điện tử và các module
khác .
Vi điều khiển( Micro controller unit – MCU ) là đơn vị xử lý nhỏ, nó được tích
hợp toàn bộ các bộ nhớ như ROM , RAM , các port truy xuất , giao tiếp ngoại vi
trực tiếp trên 1 con chip hết sức nhỏ gọn. Được thiết kế dựa trên cấu trúc VONNEUMAN , đặc điểm của cấu trúc này là chỉ có duy nhất 1 bus giữa CPU và bộ
nhớ (data và chương trình) , do đó mà chúng phải có độ rộng bit tương tự nhau.
MSP430 có một số phiênbản như: MSP430x1xx, MSP430x2xx, MSP430x3xx,
MSP430x4xx, MSP430x5xx. Dưới đây là những đặc điểm tổng quát của họ vi
điều khiển MSP430:
+ Cấu trúc sử dụng nguồn thấp giúp kéo dài tuổi thọ của Pin
-Duy trì 0.1µA dòng nuôi RAM.
-Chỉ 0.8µA real-time clock.
Nhóm 1

Page 5



Báo cáo project 2
-250 µA/ MIPS.
+ Bộ tương tự hiệu suất cao cho các phép đo chính xác
-12 bit hoặc 10 bit ADC-200 kskp, cảm biến nhiệt độ, Vref ,
-12 bit DAC.
-Bộ giám sát điện áp nguồn.
+ 16 bit RISC CPU cho phép được nhiều ứng dụng, thể hiện một phần ở kích
thước Code lập trình.
-Thanh ghi lớn nên loại trừ được trường hợp tắt nghẽn tập tin khi đang làm việc.
-Thiết kế nhỏ gọn làm giảm lượng tiêu thụ điện và giảm giá thành.
-Tối ưu hóa cho những chương trình ngôn ngữ bậc cao như C, C++
-Có 7 chế độ định địa chỉ.
-Khả năng ngắt theo véc tơ lớn.
+ Trong lập trình cho bộ nhớ Flash cho phép thay đổi Code một cách linh hoạt,
phạm vi rộng, bộ nhớ Flash còn có thể lưu lại như nhật ký của dữ liệu.


Sơ đồ chân :

Chip MSP430 có kích thước nhỏ gọn , chỉ với 20 chân đối với kiểu chân DIP.
Bao gồm 2 port I/O (hay GPIO general purprose input/ output : cổng nhập xuất
chung).

Hình 3: Sơ đồ chân MSP430G2553
Ta thấy rằng mỗi port đều có 8 chân.
Port 1 : có 8 chân từ P1.0 đến P1.7 tương ứng với các chân từ 2-7 và 14 , 15.
Port 2 : cũng gồm có 8 chân P2.0 – P2.7 ứng với các chân 8 – 13 , 18,19.
Nhóm 1


Page 6


Báo cáo project 2
Ngoài chức năng I/O thì trên mỗi pin của các port đều là những chân đa chức
năng, ta thể thấy rõ trong bảng sau :

Trên bảng là chức năng của từng chân , ngoài ra đối với các MCU có kiểu chân
SMD loại 28 chân thì nó có thêm port 3 nữa,nhưng ở đây chỉ xét đối với kiểu DIP

Nhóm 1

Page 7


Báo cáo project 2
20 chân và kiểu TSSOP 20 chân , kiểu còn lại các bạn có thể tìm hiểu trên trang
chủ của nhà sản xuất .


Giải thích sơ lược các chân :

- Chân số 1 là chân cấp nguồn Vcc( ký hiệu trên chip là DVcc ) , ở đây nguồn cho
chip chỉ được cấp ở mức 3,3V , nếu cấp nguốn cao quá mức này thì chip có thể
hoạt động sai hay cháy chip .
Để có được mức nguồn này thì ta phải dùng 1 IC ổn áp riêng có ký hiệu LM1117
hay AD1117 , IC này có kiểu chân SMD nhỏ gọn , cách mắc chip này thì cũng
giống như với những IC nguồn như LM78xx , tuy nhiên lưu ý ở đây là thứ tự chân
ở đây có hơi khác 1 chút.Các bạn có thể xem datasheet của IC mà mắc cho phù
hợp.

-Chân 20 là chân nối cực âm (0V) , chân này thì không có gì đặc biệt.

-Chân reset : Chính là chân số 16 RST , nếu các bạn đã từng học về PIC thì sẽ
thấy chân reset có ký hiệu là MCLR , các bạn để ý thấy dấu gạch ngang trên có
nghĩa là chân này tích cực ở mức thấp . Mục đích của việc reset là nhằm cho
chương trình chạy lại từ đầu .

Nhóm 1

Page 8


Báo cáo project 2

Mạch reset cho chip :

Hình 4: Mạch RESET cho chip
Chú ý: tụ ở đây là tụ pi và chính xác là tụ 102, nếu thay đổi thì khi kết nỗi Jtag để
nạp code cho chip sẽ không được.

-Mạch dao động : Cũng giống như những dòng vi điều khiển khác thì Msp430
cũng hỗ trợ người dùng thạch anh ngoài ( external crystal ), nhưng thạch anh
ngoại vi cho phép chỉ có thể lên tới 32,768 kHz mà thôi, và tín hiệu này được
mắc trên 2 chân 18 và 19. Nhưng msp430 lại hỗ trợ thạch anh nội có thể lên đến
16Mhz, tùy vào cách khai báo trong lập trình. Và mặc định của chip là thạch anh

Nhóm 1

Page 9



Báo cáo project 2
nội. Như vậy thì chúng ta không cần thiết phải sử dụng mạch dao động ngoại cho
chip giống như những dòng khác.

- Port I/O :
Port 1 : có 8 chân từ P1.0 đến P1.7 tương ứng với các chân từ 2-7 và 14 , 15.
Port 2 : cũng gồm có 8 chân P2.0 – P2.7 ứng với các chân 8 – 13 , 18,19.
Trong chế độ nhập (input) thì cả 2 port đều có 1 mạch điều khiển điện trở kéo
dương – gọi là PULL UP nhưng giá trị của điện trở này rất lớn khoảng 47K nên
gọi là WEAK PULL UP RESISTAN. Việc điều khiển PULL UP sẽ được tiến hành
thông qua lập trình tác động lên thanh ghi PxREN sẽ được đề cập ở chương sau .
Điều này cũng giống như việc thiết lập input ở port B của vi điều khiển PIC, ở port
B cũng có điện trở kéo lên , và người lập trình phải thao tác qua thanh ghi
OPTION_REG.

Nhóm 1

Page 10


Báo cáo project 2

2. LCD 16x2.


Hình dáng và kích thước:
Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên

hình 1 là loại LCD thông dụng.


Hình 5 : Hình dáng của loại LCD thông dụng



Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780)

bên trong lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh
số thứ tự và đặt tên như hình 2 :

Nhóm 1

Page 11


Báo cáo project 2

Hình 6 : Sơ đồ chân của LCD


Chức năng Các Chân

Chân

Ký Hiệu

Mô Tả

1


Vss

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển

2

VDD

Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC=5V của mạch điều khiển

3

VEE

4

RS

Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh
ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR
của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm
địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD.


5

R/W

Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối
với logic “1” để LCD ở chế độ đọc

Nhóm 1

Page 12


Báo cáo project 2
6

E

Chân cho phép (Enable). Sau khi các tín hiệu được đặt
lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1
xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển
vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một
xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7
khi phát hiện cạnh lên (low-to-high transition) ở chân E
và được LCD giữ ở bus đến khi nào chân E xuống mức
thấp.

7-14


DB0-DB7 Tám đường của bus dữ liệu dùng để trao đổi thông tin
với MPU. Có 2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với
bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ
DB4 tới DB7, bit MSB là DB7

15

A

Nguồn dương cho đèn nền

16

K

GND cho đèn nền

Nhóm 1

Page 13


Báo cáo project 2

3. Module thu phát nRF24L01 2.4Ghz.



Giới thiệu

Hình 7: Module thu phát nRF24L01


Thông số kỹ thuật

Radio:
-

Hoạt động ở giải tần 2.4 Ghz.

-

Có 126 kênh.

-

Truyền và nhận dữ liệu.

-

Truyền tốc độ cao 1Mbps hoặc 2 Mbps.

Công suất phát:
-

Có thể cài đặt được 4 công suất nguồn phát: 0,-6,-12,-18 dBm.

Thu:

-

Có bộ lọc nhiễu tại đầu thu.

-

Khuếch đại bị ảnh hưởng bởi nhiễu thấp (LNA).

Nhóm 1

Page 14


Báo cáo project 2
Nguồn cấp:
-

Hoạt động từ 1,9 – 3,6V

-

Các chân I/O chạy được cả 3,3 lẫn 5V.

Giao tiếp:
-

4 pin SPI.

-


Tốc độ tối đa 8Mbps.

-

3-32 bytes trên 1 khung truyền nhận.

Hình 8: Sơ đồ khối của nRF24L01.

-

Phân Tích
Modul nRF24L01 hoạt động ở tần số sóng ngắn 2.4G nên Modul này khả
năng truyền dữ liệu tốc độ cao và truyền nhận dữ liệu trong điều kiện môi
trường có vật cản.

-

Modul nRF24L01 có 126 kênh truyền. Điều này giúp ta có thể truyền nhận
dữ liệu trên nhiều kênh khác nhau.

-

Modul khả năng thay đổi công suất phát bằng chương trình, điều này giúp
nó có thể hoạt động trong chế độ tiết kiệm năng lượng.

Nhóm 1

Page 15



Báo cáo project 2
-

Chú ý: Điện áp cung cấp cho là 1.9à3.6V. Điện áp thường cung cấp là 3.3V.
Nhưng các chân IO tương thích với chuẩn 5V. Điều này giúp nó giao tiếp
rộng dãi với các dòng vi điều khiển.

Hình 9: Mạch Layout của nRF24L01.

Nhóm 1

Page 16


Báo cáo project 2

Phần 3: Code Cho MPS430G2553 Và Thiết Kế Mạch.

1. Code Cho MPS430G2553.
 Code xây dựng giao tiếp UART giữa máy tính và MSP430 phát:
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
unsigned char u8Receive;
u8Receive = UCA0RXBUF;
if (u8Receive == '\n')
{
g_u8StartSendFlag = 1;
return;
}

if (g_u8UartBufferPtr < UART_BUFFER_MAX)
{
g_pUartBuffer[g_u8UartBufferPtr++] = u8Receive;
g_pUartBuffer[g_u8UartBufferPtr] = 0;
}
}

 Code để truyền tín hiệu thông qua module RF
/*
* main.c (Transmitter)
*/

Nhóm 1

Page 17


Báo cáo project 2
void main(void)
{
unsigned long i = 0;
unsigned char RxBuf[128];
WDTCTL = WDTPW | WDTHOLD;

// Stop watchdog timer

BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;

// Set range

// Set DCO step +

modulation */

P1DIR |= BIT0;
P1OUT &= ~BIT0;
UartInit();
init_NRF24L01();
SetRX_Mode();

while (1)
{
if (nRF24L01_RxPacket(RxBuf) == 1)
{
UartSend(RxBuf, strlen(RxBuf));
SetRX_Mode();
}

Nhóm 1

Page 18


Báo cáo project 2
if (g_u8StartSendFlag == 1)
{
SetTX_Mode();
nRF24L01_TxPacket(g_pUartBuffer);
SPI_RW_Reg(WRITE_REG+STATUS, 0XFF); // Clear Bit Send
g_u8StartSendFlag = 0;

g_u8UartBufferPtr = 0;
LED_TOGGLE;
SetRX_Mode();
}
}
}

Nhóm 1

Page 19


Báo cáo project 2

2. Thiết Kế Mạch.
 Mạch nguyên lý module thu tín hiệu:

Hình 10: Mạch Nguyên Lý.

Nhóm 1

Page 20


Báo cáo project 2
 Mạch in:

Hình 11: Lớp Top.

Hình 12: Lớp Bottom


3. Mạch Thực Tế Hoàn Thành.

Hình 13:Mạch sau khi hoàn thành.

Nhóm 1

Page 21


Báo cáo project 2

C.Kết Luận.
Qua những ngày trải nghiệm thực tế khi tiến hành thực hiện Project 2
này,chúng em đã học tập và làm việc thực sự, nhờ những kiến thức học hỏi được
cùng sự chỉ bảo tận tình của các thầy, chúng em đã hiểu và lắm vững được quy trình
làm việc để tạo ra một sản phẩm, học được cách làm việc nhóm, cách tổ chức công
việc hiệu quả. Đúc rút được những kinh nghiệm thực tế quý báu. Từ những kinh
nghiệm cũng như những bài học quý báu chúng em đã học được sẽ giúp ích cho
chúng em rất nhiều cho công việc học tập và nghiên cứu tiếp theo của mình.
Một lần nữa em xin cảm ơn thầy Ths.Nguyễn Tiến Dũng đã tạo mọi điều kiện tốt
nhất cho chúng em có thể hoàn thần tốt Project 2 này.

Nhóm 1

Page 22


Báo cáo project 2


D.Phụ Lục
1. Code Xây Dựng Hàm Điều Khiển Mạch Phát.
main.c
#include <msp430.h>
#include "nRF24l01.h"
#include "string.h"
#include "stdio.h"
#include "LCD.h"
#define LED_TOGGLE

P1OUT ^= BIT0

#define UART_BUFFER_MAX

32

void UartInit(void);
void UartSend(unsigned char* pBuff, unsigned char u8Length);
unsigned char g_pUartBuffer[UART_BUFFER_MAX] = { 0 };
unsigned char g_u8UartBufferPtr = 0;
unsigned char g_u8StartSendFlag = 0;
/*
* main.c (Transmitter)
*/
void main(void)
{
unsigned long i = 0;
unsigned char RxBuf[128];
WDTCTL = WDTPW | WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;

DCOCTL = CALDCO_1MHZ;
modulation */

// Stop watchdog timer
// Set range
// Set DCO step +

P1DIR |= BIT0;
P1OUT &= ~BIT0;
UartInit();
init_NRF24L01();
SetRX_Mode();
while (1)
{
if (nRF24L01_RxPacket(RxBuf) == 1)
{
UartSend(RxBuf, strlen(RxBuf));
SetRX_Mode();
}
if (g_u8StartSendFlag == 1)
{
SetTX_Mode();
nRF24L01_TxPacket(g_pUartBuffer);

Nhóm 1

Page 23


Báo cáo project 2

SPI_RW_Reg(WRITE_REG+STATUS, 0XFF); // Clear Bit Send
g_u8StartSendFlag = 0;
g_u8UartBufferPtr = 0;
LED_TOGGLE;
SetRX_Mode();
}
}
}
// Uart received handler
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
unsigned char u8Receive;
u8Receive = UCA0RXBUF;
if (u8Receive == '\n')
{
g_u8StartSendFlag = 1;
return;
}
if (g_u8UartBufferPtr < UART_BUFFER_MAX)
{
g_pUartBuffer[g_u8UartBufferPtr++] = u8Receive;
g_pUartBuffer[g_u8UartBufferPtr] = 0;
}
}
void UartInit(void)
{
P1SEL = BIT1 + BIT2 ;
P1SEL2 = BIT1 + BIT2 ;
UCA0CTL1 |= UCSSEL_2;

UCA0BR0 = 104;
UCA0BR1 = 0;
UCA0MCTL = UCBRS0;
UCA0CTL1 &= ~UCSWRST;
machine**
IE2 |= UCA0RXIE;
interrupt
__bis_SR_register(GIE);

//
//
//
//
//
//
//

P1.1 = RXD, P1.2=TXD
P1.1 = RXD, P1.2=TXD
SMCLK
1MHz 9600
1MHz 9600
Modulation UCBRSx = 1
**Initialize USCI state

// Enable USCI_A0 RX
// Enter LPM0, interrupts enabled

}
void UartSend(unsigned char* pBuff, unsigned char u8Length)

{
unsigned char i;
for (i = 0; i < u8Length; i++)
{
while (!(IFG2 & UCA0TXIFG));
buffer ready?
UCA0TXBUF = pBuff[i];
character
}
}

Nhóm 1

// USCI_A0 TX
// TX -> RXed

Page 24


Báo cáo project 2

2. Code Xây Dựng Hàm Điều Khiển Mạch Thu.
main.c
#include <msp430.h>
#include "nRF24l01.h"
#include "string.h"
#include "stdio.h"
#include "LCD.h"
#define LED_TOGGLE


P1OUT ^= BIT0

#define UART_BUFFER_MAX

32

void UartInit(void);
void UartSend(unsigned char* pBuff, unsigned char u8Length);

unsigned char g_pUartBuffer[UART_BUFFER_MAX] = { 0 };
unsigned char g_u8UartBufferPtr = 0;
unsigned char g_u8StartSendFlag = 0;

/*
* main.c (Receiver)
*/
void main(void)
{

Nhóm 1

Page 25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×