Nhận làm đồ án VĐK các loại ( 8051, AVR, PIC) Tư vấn - Hướng dẫn - lập trình

Thứ Sáu, 17 tháng 4, 2015

Giao tiếp vi điều khiển với module sim 548 - Part 3


Một số tập lệnh AT cơ bản sử dụng cho ứng dụng GSM

5.1.      Các thuật ngữ.

<CR> : Carriage return (0x0D).
<LF> : Line Feed (0x0A).
MT : Mobile Terminal . Thiết bị đầu cuối mạng (trong trường hợp này là module SIM548).
TE : Terminal Equipment.  Thiết bị đầu cuối (máy tinh, hệ vi điều khiển).

5.2.      Các lệnh thiết lập và cài đặt cho cuộc gọi

ATA
Trả lời một cuộc gọi đến.
ATD
Đi trước một số điện thoại để thực hiện cuộc gọi.
ATD><mem><n>
Thực hiện cuộc gọi đến số điện thoại đã lưu trong bộ nhớ.
ATD<str>
Thực hiện cuộc gọi đến số đã lưu và có tên <str>.
ATDL
Gọi số vừa gọi gần nhất.
ATH
Ngắt kết nối đang thực hiện.
ATI
Hiện thị thông tin về module SIM548.
ATL
Cài đặt độ lớn của loa.
ATO
Chuyển từ chế độ nhận lệnh sang chế độ nhận dữ liệu.
ATT
Lựa chọn kiểu chuông.
ATZ
Thực hiện lệnh này trước khi cài đặt lại các thông số của module.
AT&F
Thiết lập các thông số cài đặt là các thông số mặc định.
AT&V
Hiện thị cấu hình đã cài đặt cho module.
+++
Chuyển từ chế độ dữ liệu và kết nối mạng GPRS về chế độ lệnh.

Các lệnh thiết lập và cài đặt cuộc gọi

-       Chi tiết về tập lệnh thiết lập và cài đặt cho cuộc gọi:

Chi tiết các lệnh thiết lập và cài đặt cuộc gọi
5.3.      Các lệnh thiết lập và cài đặt cho tin nhắn sms.

AT+CMGD
Xóa tin nhắn sms.
AT+CMGF
Định dạng văn bản tin nhắn.
AT+CMGL
Danh sách tin nhắn đã lưu.
AT+CMGR
Lệnh đọc tin nhắn.
AT+CMGS
Lệnh gửi tin nhắn.
AT+CMGW
Lưu tin nhắn vào bộ nhớ.
AT+CMSS
Gửi tin nhắn đã lưu.
AT+CMGC
Gửi sms lệnh.
AT+CNMI
MT gửi thông báo khi có tin nhắn mới.
AT+CPMS
Các tin nhắn riêng biệt được lưu.
AT+CRES
Cài đặt lại tin nhắn.
AT+CSAS
Lưu các cài đặt cho tin nhắn.
AT+CSCA
Địa chỉ dịch vu tin nhắn.
AT+CSMP
Cài đặt định dạng chữ của tin nhắn.
AT+CSMS
Lựa chọn tin nhắn dịch vụ.

Lệnh thiết lập và cài đặt cho tin nhắn SMS

-       Chi tiết mô tả các lệnh dành cho tin nhắn sms :

AT+CMGD=<index>
Lệnh xóa tin nhắn sms đã lưu tron bộ nhớ.

Lệnh thực hiện thành công.MT gửi trả:
<CR><LF>OK<CR><LF>
Nếu lệnh không thực hiện được.MT gửi trả:
+CMS ERROR <err>

Tham số:
<index>           Vị trí của tin nhắn lưu trong bộ nhớ.
<err>                Cho biết lỗi.
AT+CMGF=[<mode>]
Lệnh cài đặt định dạng của tin nhắn gửi và nhận.

Lệnh thực hiện thành công.MT gửi trả:
<CR><LF>OK<CR><LF>

Tham số:

[<mode>]         0          Dạng PDU
1          Dạng văn bản
AT+CMGL=[<stat>]
Danh sách tin nhắn đã lưu.

Tham số:

+ Nếu tin nhắn là dạng văn bản:
[<stat>]            “_REC UNREAD”       tin nhắn chưa đọc.
“RED READ”              tin nhắn đã đọc.
“STO UNSEND”         tin nhắn chưa gửi được.
“STO SEND”               tin nhắn đã gửi.
“ALL”                         tất cả tin nhắn



+ Nếu tin nhắn là dạng PDU:
[<stat>]            0          tin nhắn chưa đọc.
1          tin nhắn đã đọc.
2          tin nhắn chưa gửi.
3          tin nhắn đã gửi.
4          tất cả tin nhắn

Nếu lệnh thực hiện thành công,MT gửi trả chuỗi có định dạng như sau :
+ Nếu tin nhắn là dạng văn bản (+CMGF=1) :

+CMGL: [<index>,[<stat>],[<oa/da>],[<alpha>],[<scts>] [,<tooa/toda>,<length>]   <CR><LF>[<data>]<CR><LF>
<CR><LF>OK<CR><LF>

+ Nếu tin nhắn là dạng PDU (+CMGF=0) :

+CMGL:<index>,<stat>,[<alpha>],<length><CR><LF><pdu><CR><LF>
<CR><LF>OK<CR><LF>

Nếu lệnh thực hiện không thành công,MT gửi trả:
+CMS ERROR: <err>
AT+CMGR=<index>[,<mode>]
Lệnh đọc tin nhắn sms.

Tham số:

<index>           Một số nguyên là vị trí của đã lưu tin nhắn.
<mode>           0  Chế độ mặc định.
1        Không thay đổi trạng thái của tin nhắn.
Ví dụ : Tin nhắn sẽ không chuyển từ 'received unread’ sang 'received read’ khi được đọc.

Lệnh thực hiện thành công,MT gửi trả lại chuỗi có dạng:

+  Nếu tin nhắn là dạng văn bản (+CMGF=1)
+CMGR:<stat>,<sn>,<mid>,<dcs>,<page>,<pages><CR><LF><data>
<CR><LF>OK<CR><LF>

+  Nếu tin nhắn là dạng PDU (+CMGF=0)
+CMGR: <stat>,[<alpha>],<length><CR><LF><pdu>
<CR><LF>OK<CR><LF>

Lệnh thực hiện không thành công,MT gửi trả:
+CMS ERROR: <err>

Tham số:

<stat>               0  "REC UNREAD"  tin nhắn chưa được đọc.
1        "REC READ" tin nhắn đã đọc.
2        "STO UNSENT" tin nhắn chưa gửi được.
3        "STO SENT" tin nhắn đã gửi.
4        "ALL" tất cả tin nhắn.
<length>           Độ dài của tin nhắn (số ký tự).

<data> Nội dung tin nhắn.
AT+CMGS=<da>[,<toda>]
<CR>nội dung tin nhắn
<ctr-Z/ESC>
Lệnh gửi tin nhắn dạng văn bản.
Gửi <ESC> cho module để hủy bỏ việc gửi tin nhắn khi lệnh đang thực thi.

Tham số:
<da>    “số điện thoại gửi tin nhắn”

Nếu lệnh được thực hiện thành công và tin nhắn đã được gửi đi,MT gửi trả:
CR><LF>+CMGS: <mr><<CR><LF>
<CR><LF>OK<CR><LF>

Nếu lệnh không thực hiện được,MT gửi trả:
<CR><LF>+CMS ERROR: <err><CR><LF>

Tham số:
<mr>    Một số nguyên là vị trí lưu tin nhắn vào bộ nhớ.
AT+CMGW=[<oa/da>[,<tooa/ toda>[,<stat>]]]
<CR>  Nội dung tin nhắn
<ctrl-Z/ESC>
<ESC>
Lệnh lưu tin nhắn vào bộ nhớ.
Gửi <ESC> cho module để hủy bỏ việc lưu tin nhắn khi lệnh đang thực thi.

Lệnh thực hiện thành công,tin nhắn đã được lưu vào bộ nhớ.MT gửi trả:
CR><LF>+CMGW: <index><<CR><LF>
<CR><LF>OK<CR><LF>
Nếu có lỗi xảy ra,MT gửi trả:
+CMS ERROR: <err>

Tham số:
<index>           Vị trí lưu tin nhắn.
AT+CMSS=<index>[,<da> [,<toda>]]
Lệnh gửi tin nhắn từ bộ nhớ lưu tin nhắn

Lệnh thực hiện thành công,MT gửi trả:
CR><LF>+CMGS: <mr> [,<scts>]CR><LF>
<CR><LF>OK<CR><LF>
Lệnh thực hiện không thành công:
< CR><LF>+CMS ERROR: <err><CR><LF>

Tham số:
<mr>    Vị trí lưu tin nhắn trong bộ nhớ.
AT+CNMI=[<mode>[,<mt> [,<bm> [,<ds>[,<bfr>]]]]]
Lệnh này cài đặt cho module để module thông báo khi nhận được tin nhắn mới.

Lệnh thực hiện thành công,MT gửi trả:
<CR><LF>OK<CR><LF>
Lệnh thực hiện không thành công:
<CR><LF>+CMS ERROR: <err><CR><LF>

Tham số:
<mt>    0          Không gửi thông báo khi có tin nhắn mới.
1                    Gửi thông báo với định dạng:                                                  +CMTI: <mem>,<index>
2                    Gửi thông báo có định dạng:
+CMT: <oa>, [<alpha>],<scts>
[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<CR><LF><data>.

Chi tiết các lệnh thiết lập và cài đặt tin nhắn SMS

5.4.      Các lệnh đặc biệt dành cho SIM548

AT+CPOWD
Tắt nguồn cung cấp cho module.
AT+CMIC
Thay đổi đổ lớn của microphone.
AT +UART
Cầu hình cho truyền thông nối tiếp.
AT+CALARM
Cài đặt hẹn giờ.
AT+CADC
Đọc ADC.
AT+ECHO
Cài đặt tiếng vọng cho cuộc gọi.
AT+CSMINS
Cho biết sim đã gắn vào đế hay chưa.
AT+CMTE
Đọc nhiệt độ hiện tại của module.
AT+CMGDA
Xóa tất cả các tin nhắn.

Các lệnh đặc biệt dành cho SIM548

 -       Chi tiết về các lệnh đặc biệt dành cho SIM548 :

AT+CPOWD = <n>
Lệnh ngắt nguồn cung cấp cho module hoạt động.

Tham số :
<n>      0          Ngắt nguồn khẩn cấp.
1          Ngắt nguồn bình thường.
AT+UART=<uart>[,<baud>]
Lệnh cấu hình cho truyền thông nối tiếp.

Lệnh được thực hiện thành công,MT gửi trả :
<CR><LF>OK<CR><LF>

Tham số:
<uart >             1          sử dụng line 1
2          sử dụng line 2 (gprs)
3          sử dụng line 3
<baud>            9600,19200,28800,38400,57600,115200
AT+CALARM=<state>, <time> ,<repeat>,<power>
Lệnh cài đặt báo thức.

Lệnh được thực hiện thành công,MT gửi trả :
<CR><LF>OK<CR><LF>

Tham số:
<state> 0 Tắt báo thức.
1 Bật báo thức.
< time >           Thời gian báo thức “yy/MM/dd,hh:mm:ss+-                zz”
< repeat >         0  Không lặp lại.
1  Lặp lại hàng ngày.
2  Tuần
3  Tháng
<power>          0  Thông báo bình thường.                                                Chỉ gửi “ALARM RING”
1        Tắt nguồn báo thức.
Gửi “ALARM RING” và ngưng báo thức sau 5s.
2        Bất nguồn báo thức.
Gửi “ALARM MODE và trở về chế độ báo thức.
AT+ CADC?
Lệnh đọc ADC.

Lệnh thực hiện thành công,MT gửi trả:
+ CADC: < status>,<value>
<CR><LF>OK<CR><LF>

Tham số:
<status>           1 Đọc thành công.
0 Lỗi khi đọc ADC.
<value>            Số nguyên từ 0-2400.
AT+CSMINS?
Lệnh cho biết sim đã được gắn vào đế sim hay chưa.

Lệnh thực hiện thành công,MT gửi trả:
<CR><LF>+CSMINS:<n>,<SIM inserted><CR><LF>

Tham số:
<n>      0 Không cho phép gắn sim.
1 Cho phép.
<SIM inserted>           0 Sim chưa được gắn vào đế.
1 Sim đã được gắn.
AT+CMGDA=<type>
Xóa tất cả các tin nhắn.

Lệnh thực hiện thành công,MT gửi trả:
<CR><LF>OK<CR><LF>
Lệnh thực hiện không thành công:
<CR><LF> +CMS ERROR: NUM<CR><LF>

Tham số:
<type>   “DEL READ”     xóa các tin nhắn đã đọc.
“DEL UNREAD”  xóa tin nhắn chưa đọc.
“DEL SENT”      xóa các tin nhắn đã gửi.
“DEL UNSENT”   xóa các tin nhắn chưa gửi.
“DEL INBOX”    xóa các tin nhắn nhận được.
“DEL ALL”       xóa tắt cả các tin nhắn.

Chi tiết các lệnh đặc biệt dành cho SIM548

5.5.      Các thông báo lỗi.

Thông báo lỗi có dạng: +CME ERROR: <err>
-       Một số lỗi thường gặp

<err>
Ý nghĩa
0
Module bị lỗi,không thể kết nối với mạng.
1
Không kết nối mạng.
3
Module không cho phép kết nối mạng.
4
Module không hỗ trợ kết nối.
10
Chưa gắn sim.
13
Sim không hoạt động.
14
Sim bận.
15
Sim bị lỗi.
16
Nhập mật mã sai.
20
Bộ nhớ đầy.
22
Không tìm thấy.
23
Bộ nhớ bị lỗi.
24
Chuỗi quá dài.
30
Không có mạng.
32
Mạng không kết nối được. Chỉ thực hiện được các cuộc gọi khẩn cấp.
100
Không nhận ra.
107
Dịch vụ GPRS không được kết nối.
744
Sim đầy.
746
Không nhận được dịch vụ mạng.
770
Không có tín hiệu sim.
772
Không có nguồn cho sim.

Các thông báo lỗi CME


-       Thông báo lỗi có dạng: +CMS ERROR: <err>
<err>
Ý nghĩa
300
Module bị lỗi.
302
Module không hoạt động.
303
Không được hỗ trợ.
310
Chưa gắn sim.
313
Sim bị lỗi.
314
Sim bận.
315
Sim gắn sai.
320
Bộ nhớ bị lỗi,không hoạt động.
331
Không có mạng.
512
Sim chưa sẵn sàng.
513
Không nhận ra sim.

Các thông báo lỗi CMS

6.      Ứng dụng GPS của module SIM548.

6.1.      GPS Hệ thống định vị toàn cầu

GPS (Global Positioning System) là hệ thống xác định vị trí dựa trên vị trí của các vệ tinh nhân tạo. Trong cùng một thời điểm,ở một vị trí trên mặt đất nếu xác định được khoảng cách đến tối thiểu ba vệ tinh thì sẽ tính được được tọa độ của vị trí đó.
GPS là hệ thống định vị toàn cầu của Mỹ dựa trên một mạng lưới 24 quả vệ tinh được Bộ Quốc phòng Hoa Kỳ đặt trên quỹ đạo không gian.
Giao tiếp vi điều khiển với module sim548

Vệ tinh GPS

Các vệ tinh bay vòng quanh trái đất hai lần trong một ngày theo một quỹ đạo chính xác và phát tín hiệu thông tin xuống Trái Đất. Các máy thu GPS nhận được thông tin từ các vệ tinh và bằng phép tính lượng giác tính được vị trí của máy thu. Về bản chấ máy thu GPS so sánh thời gian tín hiệu được phát đi từ vệ tinh với thời gian nhận được chúng. Sai lệch về thời gian cho biết máy thu GPS ở cách vệ tinh bao xa.Máy thu phải nhận được tín hiệu của ít nhất ba vệ tinh để tính ra vị trí hai chiều (kinh độ và vĩ độ) và để theo dõi được chuyển động. Khi nhận được tín hiệu của ít nhất 4 vệ tinh thì máy thu có thể tính được vị trí ba chiều (kinh độ,vĩ độ và độ cao). Một khi vị trí của người dùng đã được tính thì máy thu GPS có thể tính các thông tin khác như tốc độ,hướng chuyển động,hành trình,quãng cách tới điểm đến,thời gian…..
Các vệ tinh GPS phát hai tín hiệu vô tuyến công suất thấp dải L1 và L2. (dải L là phần sóng cực ngắn của phổ điện từ trải rộng từ 0,39 tới 1,55 GHz). GPS dân sự dùng tần số L1 1575.42 MHz trong dải UHF. Tín hiệu truyền trực thị, có nghĩa là chúng sẽ xuyên qua mây, thủy tinh và nhựa nhưng không qua phần lớn các đối tượng cứng như núi và nhà.
Về độ chính xác của hệ thống GPS,các máy thu GPS ngày nay có thể định vị vị trí chính xác nhờ vào thiết kế nhiều kênh hoạt động song song. Nhờ các kênh song song này cho phép máy thu duy trì kết nối bền vững,thậm chí trong tán lá rậm rạp hay thành phố với các tòa nhà cao tầng. Trạng thái của khí quyển và cá nguồn gây sai số có thể ảnh hưởng tới độ chính xác của máy thu GPS. Các máy thu GPS có độ chính xác trung bình 15 mét. Tuy nhiên với các máy thu mới hơn với khả năng WAAS (Wide Area Augmentation System) có thể tăng độ chính xác tới 3 mét,kỹ thuật DGPS (Differential GPS – GPS sai phân) cho phép  định vị các  đối tượng chuyển động với độ chính xác  1m và kỹ thuật RTK GPS (Real Time Kinematic GPS – GPS  đo  động thời gian thực)  để  định vị các đối tượng chuyển động với độ chính xác cao (cỡ vài centimet).
6.2.      Kỹ thuật DGPS

Ngoài kỹ thuật định vị GPS thông thường có độ chính xác nhỏ nhất 5 mét, module SIM548 còn hỗ trợ kỹ thuật DGPS (Differential GPS – GPS sai phân) có độ chính xác nhỏ nhất 1m.
Phương pháp  DGPS là phương pháp định vị động tuyệt đối thời gian thực  dùng ít nhất hai máy thu GPS, mỗi máy thu GPS được kết nối với một bộ thu phát tín hiệu bằng sóng vô tuyến thường gọi là Radio link. Một máy thu GPS cố định đặt tại mốc tọa độ gốc có kết nối với 1 máy phát vô tuyến và máy thu di động có kết nối với máy thu vô tuyến đặt trên các phương tiện đang di chuyển.  Giữa máy thu GPS và máy vô tuyến trao đổi nhau bằng các thông điệp dạng số (Digital) chứa các thông tin về số hiệu chỉnh khoảng cách giả theo chuẩn RTCM SC-104. Loại thông điệp này do  ủy ban kỹ thuật vô tuyến hàng hải quốc tế (Radio Technical Commission for Marine Service)  định nghĩa và đề xuất. Cơ chế hoạt động của phương pháp có thể tóm tắt như sau:
* Tại trạm tĩnh (Base): Tọa độ gốc biết trước theo hệ WGS84 được nhập vào máy thu cố định. Khi hoạt động máy thu này sẽ thực hiện đồng thời việc đo khoảng cách giả và tính toán khoảng cách thật đến từng vệ tinh. Sau đó tính ra số hiệu chỉnh khoảng cách  ∆S  đến từng vệ tinh tham chiếu theo thông  điệp chuẩn RTCM SC-104. Thông điệp này được truyền sang máy phát vô tuyến. Tại đây thông điệp được điều biến trộn lẫn vào sóng mang loại HF, hay UHF và phát vào không gian bằng anten vô tuyến.
*  Tại trạm động (Rover): Khi thu được sóng vô tuyến truyền đến từ trạm tĩnh, máy thu vô tuyến sẽ khuyếch đại lên, giải điều biến tách ra thông  điệp RTCM SC-104 và gửi đến máy thu GPS từ đó có được các số hiệu chỉnh về khoảng cách. Những số hiệu chỉnh  ∆S này sẽ được máy thu cộng vào khoảng cách giả đo được trước khi tính ra tọa độ tuyệt đối của vị trí hiện hành tại thời điểm đang đo. Quá trình thu nhận và xử lý như vậy xảy ra liên tục suốt quá trình đo.
Khoảng cách từ trạm tĩnh đến trạm động phụ thuộc vào khả năng truyền tải tín hiệu của bộ thu phát radio link. Nếu radio link dùng sóng mang HF thì tầm xa có thể đạt đến 500Km. Nếu radio link dùng sóng mang UHF thì tầm xa chỉ có thể  đạt  đến 50Km với điều kiện phải có sự thông thoáng giữa 2 anten UHF. Ngoài ra tầm xa còn phụ thuộc vào công suất thu phát của máy radio link.

6.3.      Chuẩn giao tiếp NMEA.

6.3.1.         Dữ liệu đầu ra

Dữ liệu đầu ra của SIM548 theo giao thức NMEA có nhiều định dạng:

Dạng dữ liệu đầu ra
Mô tả
GGA
Thời gian và vị trí…
GGL
Kinh độ và vĩ độ
GSA
Chế độ hoạt động của bộ nhận GPS,các vệ tinh nhận được, và giá trị DOP.
GSV
Số vệ tinh nhận được tín hiệu,độ cao so với mực nước biển,góc phương vị, và giá trị SNR.
RMC
Thời gian,ngày,vị trí,tốc độ dữ liệu và hướng.
VTG
Hướng và tốc độ truyền thông tin so với mặt đất.

Các dạng dữ liệu đầu ra của SIM548


-       GGA —Global Positioning System Fixed Data:
Đây là một định dạng đầu ra của SIM548 theo NMEA.
Ví dụ:
$GPGGA,002153.000,3342.6618,N,11751.3858,W,1,10,1.2,27.0,M,34.2,M,,0   00 *5E

Ý nghĩa
Ví dụ
Đơn vị
Mô tả
ID
$GPGGA
Chuỗi đầu của giao thức GGA
Thời gian
002153.000
hhmmss.sss
Vĩ độ
3342.6618
ddmm.mmmm
N/S
N
N=Cực bắc hay S=Cực nam
Kinh độ
11751.3858
Dddmm.mmmm
E/W
W
E=Phía đông hay W=Phía tây.
Định dạng vị trí
1
Theo Bảng 1.2
Vệ tinh được sử dụng
10
Từ 0-12
HDOP
1.2
Độ mất chính xác theo phương ngang
Độ cao so với mực nước biển.
27.0
Meters
Đơn vị
M
Meters
Byte kiểm tra lỗi
*05
<CR><LF>
Kết thúc.

Giao thức GGA


Giá trị
Mô tả
0
Không có tín hiệu.
1
GPS
2
DGPS
3-5
Không hỗ trợ.
6
Một phương pháp định vị bằng cách lập biểu đồ hình trình và tốc độ từ vị trí đã biết.

Định dạng vị trí

-       GLL—Geographic Position - Latitude/Longitude:
Đây là một định dạng đầu ra cho biết vị trí của robot.
Ví dụ:
$GPGLL,3723.2475,N,12158.3416,W,161229.487,A,A*41

Ý nghĩa
Ví dụ
Đơn vị
Mô tả
ID
$GPGLL
Chuỗi đầu của giao thức GLL.
Vĩ độ
3723.2475
Ddmm.mmmm
N/S
N
N=Cực bắc hay S=Cực nam
Kinh độ
12158.3416
Dddmm.mmmm
E/W
W
E=Phía đông hay W=Phía tây.
Thời gian
161229.487
hhmmss.sss
Trang thái
A
A = có tín hiệu hay V = không có tín hiệu.
Chế độ
A
A= Độc lập,D=DGPS
Byte kiểm tra lỗi
*41
<CR><LF>
Kết thúc.

Giao thức GLL


-       GSA—GNSS DOP and Active Satellites
Đây là định dạng đầu ra cho biết giá trị DOP(),và hoạt động của vệ tinh.
Ví dụ:
$GPGSA,A,3,07,02,26,27,09,04,15, , , , , ,1.8,1.0,1.5*33

Ý nghĩa
Ví dụ
Đơn vị
Mô tả
ID
ID $GPGSA
Chuỗi đầu của giao thức GSA
Chế độ 1
A
Theo bảng 1.5
Chế độ 2
3
Theo bảng 1.6
Vệ tinh
07
Kênh 1
Vệ tinh
02
Kênh 2
…….
Vệ tinh
Kênh 12
PDOP
1.8
Độ mất chính xác vị trí.
HDOP
1.0
Độ mất chính xác theo phương ngang.
VDOP
1.5
Độ mất chính xác theo phương thẳng đứng.
Byte kiểm tra lỗi
*33
<CR><LF>
Kết thúc

Giao thức GSA


M
Hoạt động ở chế độ 2D hay 3D
A
Hoạt động ở chế độ 2D và có thể chuyển đổi giữa 2D và 3D một cách tự động.

Chế độ 1


1
Không có tín hiệu.
2
2D (dưới 4 vệ tinh được sử dụng).
3
3D (>3 vệ tinh được sử dụng).

Chế độ 2

GSV—GNSS Satellites in View
Định dạng này cho biết thông tin của các vệ tinh được sử dụng.
Ví dụ:
$GPGSV,2,1,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71
$GPGSV,2,2,07,09,23,313,42,04,19,159,41,15,12,041,42*41

Ý nghĩa
Ví dụ
Đơn vị
Mô tả
ID
$GPGSV
Chuỗi đầu của giao thức GSV
Số thông điệp nhận được.
2
Từ 1 đến 3.
Vệ tinh nhận được
07
ID của vệ tinh
07
Kênh 1 (từ 1-32)
Độ cao
79
Độ
Kệnh 1 (tối đa 90)
Góc phương vị
048
Độ
Kênh 1 (từ 0-359)
SNR (C/N0)
42
dBHz
Từ 0=99
……
ID của vệ tinh
27
Kệnh 4 (1-32)
……..
Byte kiểm tra lỗi
*71
<CR><LF>
Kết thúc

Giao thức GSV

-       RMC—Recommended Minimum Specific GNSS Data
Định dạng này cho biết đầy đủ và chi tiết về thời gian,ngày,vị trí,tốc độ dữ liệu,hướng.

Ví dụ:

$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598, ,*10

Ý nghĩa
Ví dụ
Đơn vị
Mô tả
ID
$GPRMC
Chuỗi đầu của giao thức RMC
Thời gian
161229.487
Hhmmss.sss
Trạng thái
A
A=có tín hiệu hay V=không có tín hiệu.
Vĩ độ
3723.2475
ddmm.mmmm
N/S
N
N=Cực bắc hay S=Cực nam
Kinh độ
12158.3416
Dddmm.mmmm
E/W
W
E=Phía đông hay W=Phía tây.
Tốc độ
0.13
knots
Hướng
309.62
Độ
Ngày
120598
Ddmmyy
S thay đổi của độ lệch (magnetic)
Độ
E=Phía đông hay W=Phía tây
E/W
E
E=Phía đông
Byte kiểm tra lỗi
*10
<CR><LF>
Kết thúc.

Giao thức RMC

-       VTG—Course Over Ground and Ground Speed
Định dạng này cho biết về hướng và tốc độ so với mặt đất,
Ví dụ:
$GPVTG,309.62,T, ,M,0.13,N,0.2,K,A*23

Ý nghĩa
Ví dụ
Đơn vị
Mô tả
ID
ID $GPVTG
Chuỗi đầu của giao thức VTG
Hướng
309.62
Độ
Hướng hiện tại.
Chuẩn quy chiếu
T
T=True
Hướng
Độ
Hướng hiện tại.
Chuẩn quy chiếu
M
Từ tính.
Tốc độ
0.13
Knots
Tốc độ hiện tại.
Đợn vị
N
knot
Tốc độ
0.2
Km/h
Tốc độ hiện tại.
Đơn vị
K
Km/h
Chế độ
A
A=độc lập,D=DGPS,E=DR
Byte kiểm tra lỗi
*23
<CR><LF>
Kết thúc

Giao thức VTG

6.3.2.         Dữ liệu đầu vào

Có thể cấu hình cho mudule GPS bằng cách gửi chuỗi có định dạng theo giao 
thức NMEA.
Chuỗi bao gồm các tham số có dạng sau:

Chuỗi đầu
Dữ liệu cần gửi
Byte kiểm tra lỗi
Chuỗi kết thúc
$PSRF<MID>
Data
*CKSUM
<CR><LF>

Định dạng chuỗi đầu vào module GPS

-       Tham số lựa chọn kiểu cấu hình cho module:

Tham số
Tên
Mô tả
100
SetSerialPort
Cấu hình cho PORTA.
101
NavigationInitialization
Các tham số yêu cầu cho việc sử dụng X/Y/Z.
102
SetDGPSPort
Cấu hình cho PORTB dành cho DGPS.
103
Query/rate Control
Tiêu chuẩn chuỗi đầu ra theo giao thức NMEA.
104
LLANavigationInitialization
Tham số yêu cầu cho việc sử dụng Lat/Lon/Alt.
105
Development Data On/Off

106
Select Datum
Lựa chọn mẫu cho việc chuyển đổi tọa độ.

Tham số đầu cho chuỗi đầu vào module GPS

-       100—SetSerialPort
Đây là tham số đầu tiên của chuỗi lệnh cấu hình cho PORTA với các thông số cần cài đặt cho truyền thông nối tiếp tốc độ baud, data bits, stop bits và parity. Sau khi nhận được chuỗi lệnh này,các tham số cài đặt sẽ được lưu vào bộ nhớ SRAM. Module GPS sẽ khởi động lại để sử dụng các tham số đã lưu trong bộ nhớ.
Ví dụ cấu hình cho truyền thông nối tiếp với các tham số 9600,8,N,1
$PSRF100,1,9600,8,1,0*0C

Tên
Ví dụ
Đơn vị
Mô tả
ID
$PSRF100
Các ký tự đầu của chuỗi.
Giao thức
1
0=SiRF binary, 1=NMEA
Tốc độ baud
9600
1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200
Data bits
8
8,7
Stop bit
1
0,1
parity
0
0=None, 1=Odd, 2=Even
Byte kiểm tra lỗi
*0C
<CR><LF>
Kết thúc

Lệnh 100 cấu hình cho PORTA

-       101—NavigationInitialization
Đây là lệnh sử dụng khởi tạo cho module GPS vị trí hiện tại và thời gian. Việc cung cấp chính xác các thông số về vị trí theo trục X/Y/Z và thời gian giúp cho module nhận tín hiệu của các vệ tinh một cách chính xác và nhanh chóng.
Ví dụ nếu chúng ta biết được vị trí chính xác ta có thể khởi tạo cho module với lệnh có định dạng sau:
$PSRF101,-2686700,-4304200,3851624,96000,497260,921,12,3*1C

Tên
Ví dụ
Đơn vị
Mô tả
ID
$PSRF101
Các ký tự đầu của chuỗi.
X
-2686700
m
Tọa độ truc X
Y
-4304200
m
Tọa độ truc Y
Z
3851624
m
Tọa độ trục Z
clkOffset
96000
Hz
TimeOfWeek
497260
giây
WeekNo
921
ChannelCount
12
Từ 1 đến 12
ResetCfg
3
Byte kiểm tra lỗi
*1C
<CR><LF>
Kết thúc.

Lệnh 101 khởi tạo vị trí và thời gian cho ứng dụng GPS

-       102—SetDGPSPort
Lệnh này sử dụng để cấu hình cho truyền thông nối tiếp sử dụng bộ nhận sai phân,ở đây là bộ nhận DGPS. Khi thực hiện lệnh này cho phép bộ nhận có thể xử lý tín hiệu một cách chính xác. Khi nhận được lệnh này các thông số sẽ được lưu trong SRAM và bộ nhận sẽ được reset để sử dụng các thông số này.
Ví dụ để cấu hình có các tham số 9600,8,N,1 ta gửi lệnh có định dạng như sau:
$PSRF102,9600,8,1,0*12

Tên
Ví dụ
Đơn vị
Mô tả
ID
$PSRF102
Các ký tự đầu của chuỗi.
Tốc độ baud
9600
1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200
Data bits
8
8,7
Stop bit
1
0,1
Parity
0
0=None, 1=Odd, 2=Even
Byte kiểm tra lỗi
*12
<CR><LF>
Kết thúc

Lệnh102 cấu hình cho truyền thông nối tiếp

-       103—Query/Rate Control
Đây là lệnh cho phép lựa chọn định dạng đầu ra của ứng dụng GPS của module SIM548. Lệnh này cũng cho phép có byte kiểm tra lỗi trong định dạng đầu ra không.
Ví dụ cho phép định dạng GGA ở đầu ra.
$PSRF103,00,01,00,01*25

Tên
Ví dụ
Đơn vị
Mô tả
ID
$PSRF103
Các ký tự đầu của chuỗi.
Định dạng
00
Theo bảng bên dưới.
Chế độ
01
0=SetRate , 1=Query
Rate
00
Giây
0-255
Cho phép byte kiểm tra lỗi
01
0=không cho phép, 1= cho phép.
Byte kiểm tra lỗi
*25
<CR><LF>
Kết thúc.

Lệnh 103 lựa chọn định dạng đẫu ra


Giá trị
Mô tả
0
GGA
1
GLL
2
GSA
3
GSV
4
RMC
5
VTG
6
MSS
7
Không hỗ trợ.
8
ZDA

Định dạng đầu ra


-       104—LLANavigationInitialization

Tên
Ví dụ
Đơn vị
Mô tả
ID
$PSRF104
Các ký tự đầu của chuỗi.
Lat
37.3875111
Độ
Vĩ độ (khoảng 90 đến -90)
Lon
-121.97232
Độ
Kinh độ (khoảng 180 đến -180)
Alt
0
Mét
Độ cao so với mực nước biển.
clkOffset
9600
Hz
timeOfWeek
237759
WeekNo
1946
ChannelCount
12
Khoảng từ 1-12
resetCfg
1
Byte kiểm tra lỗi
*07
<CR><LF>
Kết thúc.

Đây là lệnh sử dụng khởi tạo cho module GPS vị trí hiện tại(vĩ độ,kinh độ,độ cao so với mực nước biển) và thời gian. Việc cung cấp chính xác các thông số về vị trí và thời gian giúp cho module nhận tín hiệu của các vệ tinh một cách chính xác và nhanh chóng.
Ví dụ:
$PSRF104,37.3875111,-121.97232,0,96000,237759,1946,12,1*07

Lệnh 104  khởi tạo vị trí và thời gian



ATA
Lệnh nhấc máy khi có cuộc gọi đến

MT gửi trả <CR><LF>OK<CR><LF>  khi kết nối thành công.
MT gửi trả <CR><LF>NO CARRIER <CR><LF> khi kết nối không thành công.
ATD[<n>][<msgm>][;]
Lệnh thực hiện cài đặt dịch vụ cuộc gọi.

Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi.

Nếu cuộc gọi được kết nối và cài đặt hoàn tất. MT gửi trả:
<CR><LF>OK<CR><LF>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO CARRIER<CR><LF>




Các tham số:
<n>: số điện thoại
<msgm>:    I   Kích hoạt CLIR (Không hiện thị số người                    gọi)
i   Hủy chế độ CLIR(Hiện thị số người gọi)
G  Kích hoạt chế độ gọi nội bộ(chỉ dành riêng                      cho cuộc gọi này)
g  Hủy chế độ gọi nội bộ.
<;>: Kết thúc và thực hiện cài đặt cuộc gọi
ATD<mem><n>[<I>][<G>][;]
Lệnh thực hiện quay số có trong danh bạ riêng biệt.
Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi.

Module bị lỗi. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>

Các tham số:
<mem>           danh bạ
“DC”    danh sách các số đã gọi.
“FD”    danh bạ trong sim.
“LD”    danh sách các số đã gọi trong sim.
“MC”   danh sách các cuộc gọi nhỡ.
“ME”    tất cả các số có trong danh bạ.

<n>:     Một số nguyên là vị trí bộ nhớ có thể sử                     dụng.

<msgm>:    I   Kích hoạt CLIR (Không hiện thị số                       người gọi)
i   Hủy chế độ CLIR(Hiện thị số người gọi)
G  Kích hoạt chế độ gọi nội bộ(chỉ dành riêng                      cho cuộc gọi này)
g  Hủy chế độ gọi nội bộ.

<;>: Kết thúc và thực hiện cuộc gọi
ATD><n>[<I>][<G>][;]
Thực hiện cuộc gọi từ dạnh bạ.
Lệnh thực hiện quay số có trong danh bạ riêng biệt.
Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi.

Module bị lỗi. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>

Các tham số:
<n>:     Một số nguyên là vị trí bộ nhớ có thể sử                         dụng.

<msgm>:    I   Kích hoạt CLIR (Không hiện thị số                       người gọi)
i   Hủy chế độ CLIR(Hiện thị số người gọi)
G  Kích hoạt chế độ gọi nội bộ(chỉ dành riêng                      cho cuộc gọi này)
g  Hủy chế độ gọi nội bộ.

<;>: Kết thúc và thực hiện cuộc gọi
ATD><str>[<I>][<G>][;]
Lệnh thực hiện cuộc gọi đến số đã lưu trong danh bạ có tên <str>.
Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi.

Module bị lỗi. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>

Các tham số:
<str>:   Chuỗi ký tự “abc123” đã lưu torng dạnh bạ  .

<msgm>:    I   Kích hoạt CLIR (Không hiện thị số                       người gọi).
i   Hủy chế độ CLIR(Hiện thị số người gọi)
G  Kích hoạt chế độ gọi nội bộ(chỉ dành riêng                      cho cuộc gọi này).
g  Hủy chế độ gọi nội bộ.

<;>: Kết thúc và thực hiện cuộc gọi.
ATDL
Thực hiện cuộc gọi đến số vừa gọi gần nhất.
Lệnh này có thể hủy bỏ bằng việc nhận 1 lệnh ATH hoặc 1 ký tự khi lệnh đang thực thi.

Module bị lỗi. MT gửi trả:
+CME ERROR:<err>
Nếu không đổ chuông. MT gửi trả:
<CR><LF>NO DIALTONE<CR><LF>
Số máy đang bận:
<CR><LF>BUSY<CR><LF>
Không kết nối hoặc bị từ chối :
<CR><LF>NO CARRIER<CR><LF>
Kết nối thành công và cuộc gọi được thực hiện:
<CR><LF>OK<CR><LF>
ATH0
Lệnh ngắt kết nối đang thực hiện.

Lệnh được thực hiện. MT gửi trả:
<CR><LF>OK<CR><LF>
ATI
Lệnh yêu cầu hiện thông tin của module.
Ví dụ:
SIMCOM_ltd.
SIMCOM_SIM548Z.
ATL[value]
Lệnh cài đặt độ lớn của loa.

Lệnh thực hiện thành công.MT gửi trả:
<CR><LF>OK<CR><LF>

Tham số:
[value]:    Có bốn mức độ 0,1,2,3.
ATM[value]
Lệnh cài đặt các chế độ cho loa.

Lệnh thực hiện thành công. MT gửi trả:
<CR><LF>OK<CR><LF>
Tham số:
[value]:                        0          Tắt loa.
2          Mở loa khi nhấc máy.
+++
Lệnh này chỉ có hiệu lực khi module đang ở kết nối mạng GPRS. Lệnh này thực hiện hủy bỏ kết nối và trở về chế độ nhận lệnh.

Lệnh thực hiện thành công. MT gửi trả:
<CR><LF>OK<CR><LF>
Thực hiện chuyển từ chế độ nhận lệnh trở về chế độ nhận dữ liệu và kết nối mạng gửi lệnh ATO.
ATO[n]
Lệnh thực hiện chuyển module từ chế độ nhận lệnh sang chế độ nhận dữ liệu.

Lệnh thực hiện không thành công. MT gửi trả:
<CR><LF> NO CARRIER <CR><LF>
Lệnh thực hiện thành công. MT gửi trả:
<CR><LF>OK<CR><LF>

Tham số:
[n]        0          chuyển từ nhận lệnh sang nhận dữ liệu.











Mọi thắc mắc vui lòng liên hệ qua:
Facebook: Rid HaUI
Gmail: dienturid@gmail.com

Next previous home

0 nhận xét:

Đăng nhận xét