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

Định vị GPS và truyền thông GSM

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.4 MB, 22 trang )










ARM 7 GPS/GSM/GPRS

Development Kit –A7GG









ARM 7 GPS/GSM/GPRS Development Kit
User Manual





Rev : 1.1
Date: 5/2012
Copyright © 2011 Titans Technology


www.titans.com.vn


Rev1.0 - 11/2011 www.titans.com.vn
2




Hardware Revision

 A7GG Rev 1.0 : phiên bản đầu tiên.
 LPC2148 ARM7-TDMI.
 JTAG Connector.
 SIM548 GPS/GSM/GPRS
 A7GG Rev 1.1 :
 Sửa nguồn 3V3/5V.
 Sửa JTAG Interface.
 Sửa layout.


Document Revision


A7GG Userguide Rev 1.0 : phiên bản đầu tiên


A7GG Userguide Rev 1.1 : phiên bản titans















Copyright © 2011 Titans Technology. Tài liệu này thuộc bản quyền của Titans
Technology (www.titans.com.vn), chúng tôi hy vọng các bạn khi sử dụng với bất kì mục
đích nào bằng bất cứ hình thức nào bao gồm sao chép, in, copy, trích dẫn… cần phải ghi
rõ xuất xứ nguồn gốc từ trang web của chúng tôi. Hãy truy xuất trang web của chúng
tôi thường xuyên để có những cập nhật mới nhất về các thiết bị, hay những bài viết mới
nhất. Hy vọng sẽ cùng các bạn phát triển nền công nghiệp điện tử Việt Nam.



Rev1.0 - 11/2011 www.titans.com.vn
3




Mục lục



1

Giới thiệu 4

1.1

Giới thiệu A7GG 4

1.2

Chi tiết 5

2

Mô tả phần cứng 6

2.1

Sơ đồ khối 6

2.2

Sơ đồ mạch 6

2.3

Layout 7

3


Connector 8

4

Quick Start guide 10

5

Demo 17

6

Phụ lục 21
























Rev1.0 - 11/2011 www.titans.com.vn
4




Tài liệu này mô tả về thiết bị, cũng như các thông tin cần thiết để các bạn sử dụng
trong quá trình tham khảo hoặc phát triển ứng dụng dựa trên sản phẩm này. Để cập nhật
những thay đổi mới nhất, vui lòng truy cập trang web www.titans.com.vn của chúng tôi.
Nếu có bất cứ ý kiến đóng góp cũng như cần hỗ trợ, tư vấn thêm thông tin về sản
phẩm, vui lòng gởi mail đến địa chỉ email:



1
Giới thiệu

1.1 Giới thiệu A7GG

Hệ thống định vị toàn cầu GPS kết hợp với giải pháp GSM/GPRS cho phép chúng
ta thực hiện các ứng dụng tracker rất phổ biến trong các hệ thống giao thông dân dụng
hiện nay như thiết bị hộp đen, quản lý phương tiện, theo dõi các đối tượng chuyển động
…. thậm chí là các ứng dụng quân sự như máy bay, tàu chiến, và theo dõi hành trình tên
lửa…

Kit A7GG sử dụng vi điều khiển ARM7TDMI 32bit của NXP là LCP2148 , có tốc
độ lên tới 60Mhz kết hợp với module tích hợp GPS và GSM/GPRS SIM548 của hãng
SIMCOM rất thông dụng trên thị trường. Do đó A7GG cho phép thực hiện hầu hết các
ứng dụng GPS hay GSM như đã đề cập ở trên .


Hình 1: Kit phát triển A7GG



Rev1.0 - 11/2011 www.titans.com.vn
5


1.2 Chi tiết

Bộ kit A7GG bao gồm các phần sau :
 1 Kit A7GG bao gồm Chip vi xử lý LPC2148
o 32-bit ARM7TDMI-S microcontroller in a LQFP64 package.
o 40 kB of on-chip static RAM and 512 kB of on-chip Flash program
memory.
o Two 10-bit A/D converter provides 14 analog inputs.
o Single 10-bit DAC provides variable analog output .
o Multiple serial interfaces including two UARTs (16C550), two Fast I2C-
buses (400 kbit/s).
o 60 MHz maximum CPU clock available from programmable on-chip PLL.
 LCD 16x2
 Switching power supply
 USB Connector
 MMC/SD Card Conenctor

 RTC in LPC2148
 Built-in Temperature DS18B20
 Module SIM548 GPS/GSM/GPRS
o Quad-Band 850/900/1800/1900MHz
o GPRS multi-slot class 10
o GPRS mobile station class B
o Compliant to GSM phase 2/2+
– Class 4 (2 W @ 850/900 MHz)
– Class 1 (1 W @ 1800/1900MHz)
o Control via AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT
Commands)
 Một cáp nguồn DC.
 Cáp và antenna GPS, GSM.
 Một LCD 16x2.
 Các tài liệu hướng dẫn, phần mềm viết code, và các thông tin đi kèm.
 Source code demo của kit, các ví dụ mẫu được viết cho chip LPC2148.



Rev1.0 - 11/2011 www.titans.com.vn
6
2 Mô tả phần cứng

2.1 Sơ đồ khối
UART0
USB
Power
RTC
JTAG
14.7456Mhz

UART1
SIM548
LPC2148 32-bit
ARM7TDMI
Expension
Connector
Button
Temp
LCD
SD Card

Hình 3 : A7GG Block diagram
2.2 Sơ đồ mạch



Rev1.0 - 11/2011 www.titans.com.vn
7

Hình 4 : Schematic
2.3 Layout

Hình 5 : A7GG Layout


Rev1.0 - 11/2011 www.titans.com.vn
8

3 Connector


 A7GG có một connector mở rộng 20 chân cho phép mở rộng các thiết bị ngoại vi

Hình 6 : Expension Connector

 JTAG Connector cho Debug/Programming

Hình 7: JTAG Connector


 LCD Connector hiển thị chữ


Hình 8: LCD Connector




Rev1.0 - 11/2011 www.titans.com.vn
9
 SIM Connector để gắn thẻ sim


Hình 9: SIM Connector



Rev1.0 - 11/2011 www.titans.com.vn
10
4 Quick Start guide
Tiếp theo, chúng ta sẽ thực hiện một ví dụ cơ bản với A7GG Development Kit.

Trước tiên để có thể lập trình được cho vi xử lý ARM trên KeilC, chúng ta phải tải bộ
mdk420.exe với thư viện và bộ Compiler cho hầu hết các dòng ARM tại trang chủ của KeilC
(

Tạo Project với Keil C uVision4
Khởi động cửa sổ làm việc với Keil C, vào menu Project chọn New uVision Project


Sau đó sẽ xuất hiện cửa sổ yêu cầu nơi lưu và tên của Project, ở đây Project có tên là
A7GG_pjt_KeilC.
Sau khi lưu Project lại KeilC sẽ yêu cầu chúng ta chọn dòng chip sử dụng, ở đây ARM LPC2148
của NXP được sử dụng cho board phát triển A7GG


Rev1.0 - 11/2011 www.titans.com.vn
11

Tại khung Data base chúng ta sẽ tìm chip LPC214x với Vendor là NXP(founded by Philips) ,
cửa sổ bên trái sẽ mô tả các tính năng được tích hợp trên chip được sử dụng rồi nhấn OK. Tiếp
đến chúng ta nhấn Yes khi cửa sổ yêu cầu add file Startup.s xuất hiện.
Kết thúc tạo Project. Tiếp theo chúng ta sẽ tạo file để lập trình với ngôn ngữ được lưa chọn, C
hoặc C++ hoặc ASM.
Vào menu File chọn New hoặc nhấn tổ hợp Ctrl+N để tạo một file chương trình mới. Save lại
với tên được lựa chọn, ở đây đặt là main.c(biên dịch với C).
Tại khung làm việc có tên là Project nhấp chuột phải vào Source group 1 chọn Add Files to
Group , tìm tới file mới tạo là main.c để thêm file vào Project

Trong file chương trình main.c, với khai bao ban đầu cho trình biên dịch là thư viện của chip
được sử dung.



Rev1.0 - 11/2011 www.titans.com.vn
12

Config cho Project bằng cách vào menu Project ->Options for Targets 1 Tại thẻ Output tick
vào dòng chữ Creat HEX File,ở đây chúng ta sẽ sử dụng cổng COM để nạp chương trình cho
ARM do đó không cần thiết phải thiết lập tại thẻ Utilities . Cửa sổ này phù hợp với việc nạp
chương trình xuống ARM trực tiếp từ KeilC với mạch nạp được KeilC hỗ trợ như ULINK,
JLINK
Sau đó vào Project - >Build Target để tạo file HEX và nạp xuống ARM qua cổng JTAG.
Chương trình cơ bản để giao tiếp GPIO
Để có thể giao tiếp với GPIO của ARM LPC2148 một cách nhanh nhất mà không cần
thiết phải tác động tới các vùng thanh ghi, chúng ta sẽ tiến hành xây dựng một thư viện
để giao tiếp với các GPIO này và sử dụng chúng cho các chương trình sau.
Dưới đây là thư viện GPIO đã được nhóm thực hiện xây dựng trên nền tảng ngôn ngữ
C:
Tên thư viện:

File Name

Description

HARM_GPIO.h

File mở rộng hàm con và các tham số cho chương
trình
HARM_GPIO.c

File chứa các chương trình sử dụng để giao tiếp với
GPIO


Tên hàm con trong thư viện:














Rev1.0 - 11/2011 www.titans.com.vn
13

Tên hàm

Mô t


Cú pháp

HARM_GPIO_init

Hàm này được
gọi để khai báo

chân sử dụng cho
chip ARM, khởi
tạo nó vào chế độ
GPIO.
HARM_GPIO_init(char PINSELECT)


PINSELECT ở đây có dạng là GPIO_<0:31>. Ví dụ:
GPIO_0

HARM_GPIO_set

Hàm có chức
năng thiết lập lên
chân GPIO tương
ứng sau khi đã
được khởi tạo lên
mức logic HIGH.
HARM_GPIO_set(char PINSELECT)

HARM_GPIO_clr

Hàm có chức
năng thiết lập lên
chân GPIO tương
ứng sau khi đã
được khởi tạo về
mức logic LOW.
HARM_GPIO_clr(char PINSELECT);


HARM_GPIO_
read

Hàm được gọi có
chức năng đọc và
trả về giá trị của
GPIO tương ứng.
GPIO_Value=HARM_GPIO_read(char PINSELECT);


GPIO_Value ở đây sẽ có giá trị là 0 hoặc 1.

Để sử dụng được các hàm này, chúng ta sẽ copy 2 file HARM_GPIO.h và
HARM_GPIO.c vào thư mục chứa project của chúng ta. Sau đó thêm khai báo cho
Processor như sau:

#include “HARM_GPIO.h”


Ví dụ: viết chương trình thiết lập các mức logic tương ứng lên các chân như sau:
GPIO_0 = 0; GPIO_1 = 1;
Chương trình C:
#include “LPC2148.h”

#include “HARM_GPIO.h”

int main(void)
{
/*init GPIO */
HARM_GPIO_init(GPIO_0); /*set pin to GPIO*/

HARM_GPIO_init(GPIO_1);
/*set GPIO_0 to LOW*/
HARM_GPIO_clr (GPIO_0);
/*set GPIO_1 to HIGH*/
HARM_GPIO_set(GPIO_1);

return 0;}


Rev1.0 - 11/2011 www.titans.com.vn
14

Chúng ta có thể sử dụng một nền phần cứng ARM nào đó hay một chương trình mô
phỏng về ARM LPC2148 để thực thi chương trình trên, có thể là Protues hay trình biên
dịch KeilC – ARM cũng hỗ trợ mô phỏng cho dòng ARM này.

Dưới đây là hình ảnh mô phỏng trên KeilC:



Chương trình cơ bản để giao tiếp UART

Để giao tiếp với UART được một cách thuận tiện và nhanh nhất, nhóm đã xây dựng
một thư viện để giao tiếp UART với các ngoại vi khác.
Thư viện cho cả 2 UART gồm có:

File Name Description
HARM_UART.h
File header cho chương trình
HARM_UART.c

File chứa chương trình mở rộng ở file header

Hàm sử dụng với UART0:

Tên hàm

Mô t


Cú pháp

HARM_UART0_setup

Hàm khởi tạo UART0 vào
chế độ truyền dữ liệu nối
tiếp.
HARM_UART0_setup(char UART,Uint32
BAUDRATE,char PARITY_BIT,Uint8
DATA_BIT,Uint8 STOP_BIT)


Rev1.0 - 11/2011 www.titans.com.vn
15

Với:
UART : lựa chọn UART0
BAUDRATE: tốc độ truyền dữ liệu.
PARITY_BIT: lựa chọn bit chẵn lẻ
DATA_BIT: số lượng bit dữ liệu
STOP_BIT: số lượng bit STOP

printf

Hàm gửi dữ liệu ra UART0

printf(“Hello World!\r\n”);
“Hello World” là chuỗi cần gửi ra UART0
\r mã CR
\n mã NL
k
bhit

Hàm xác nhận có phím
được nhấn khi giao tiếp với
ARM và PC qua UART0
Value = kbhit();

Value ở đây sẽ có giá trị là 0 hoặc 1.

Hàm sử dụng với UART1:

Tên hàm

Mô t


Cú pháp

HARM_UART1_setup

Hàm khởi tạo UART1 vào

chế độ truyền dữ liệu nối
tiếp
HARM_UART0_setup(char UART,Uint32
BAUDRATE,char PARITY_BIT,Uint8
DATA_BIT,Uint8 STOP_BIT)

Với:
UART : lựa chọn UART1
BAUDRATE: tốc độ truyền dữ liệu.
PARITY_BIT: lựa chọn bit chẵn lẻ
DATA_BIT: số lượng bit dữ liệu
STOP_BIT: số lượng bit STOP
HARM_SendToUART1

Hàm gửi chuỗi dữ liệu ra
UART1.
HARM_SendToUART1(“HelloWorld!\r\n”;

“Hello World” là chuỗi cần gửi.
\r là mã CR
\n là mã NL
GetFromUART1

Hàm lấy dữ liệu từ UART1
và lưu vào bộ đệm
Data = GetFromUART1();

Để sử dụng được các hàm trên chúng ta phải khai báo ở đầu chương trình như sau:

#include “HARM_UART.h”



………………


Chương trình đơn giản gửi dữ liệu từ ARM lên máy tính thông qua UART0:



Rev1.0 - 11/2011 www.titans.com.vn
16
#include “LPC2148.h”

#include “HARM_UART.h”

int main(void)
{
/*setup UART0 */
/*
* Baudrate: 9600
* Parity bit: None
* Data bit: 8
* Stop bit: 1
*
*/
HARM_UART0_setup(UART0,9600,’N’,8,1);
printf(“www.hlab.com.vn\r\n”);
printf(“H-LABORATORY\r\n”);
printf(“ARM7 GPS/GSM/GPRS Development Kit Demo Example \r\n”);
printf(“\r\n”);

return 0;
}








Rev1.0 - 11/2011 www.titans.com.vn
17
5 Demo
A. Demo GSM/GPS
A7GG khi bán đã được nạp sẵn Demo gởi tin nhắn tới số đt cố định và hiển thị tọa độ
GPS lên LCD. Souce code của demo này sẽ được cung cấp khi các bạn mua kit A7GG




 Chú ý là tín hiệu GPS có thể bị mất tín hiệu khi ở trong nhà hoặc khi mới khởi động, bạn
cần để an ten ra ngoài trời và chờ trong vài phút

B. Demo mở rộng GPS/GPRS (Cần phải có server GPRS)
Khi bật nguồn, Kit A7GG cho phép ta test GSM bằng cách gởi tin nhắn tới số cố định.



Rev1.0 - 11/2011 www.titans.com.vn
18



Ta cũng có thể test GPS, Dữ liệu sẽ được đưa thẳng lên trang web miễn phí : http://arm-
gps.co.cc/ thông qua GPRS







Rev1.0 - 11/2011 www.titans.com.vn
19

Dữ liệu tọa độ vị trí hiện tại được gởi lên server thông qua GPRS

Một số lĩnh vực ứng dụng

- Ứng dụng GPS trong lĩnh vực định vị giám sát:





Rev1.0 - 11/2011 www.titans.com.vn
20
- Ứng dụng GSM/GPRS trong lĩnh vực điều khiển/ giám sát từ xa


Rev1.0 - 11/2011 www.titans.com.vn

21
6 Phụ lục















































Rev1.0 - 11/2011 www.titans.com.vn
22



















×