單片機給手機發短信
3 短信息的發送
與接收短信息一樣,發送時也要先建立聯接,傳送一些初始化指令,然后發送短消息內容。下面是用SIEMENS S3508i發送一個短信息的例子,內容為:“2002/06/08/13:48 ID102OK ID103OK ID201FAIL”。其ASCII碼為:“32030322F30362F30382F31333A34382049443130324F4B
2049443130334F4B2049443230314641494C20”。
發送:ATE {請求建立聯接}
手機回答:OK {已建立聯接}
發送:AT+CMGF=0 {選擇PDU模式}
手機回答:OK
發送:AT+CSMS=0{檢測手機是否支持SMS命令}
手機回答:OK
發送:AT+CMGS=52{發送短信息,52 octets(不包括最初9個短信息元字節)}
手機回答:>{允許上傳數據,ASCII碼是($20H,$2EH)}
發送:0891683108701305F011000B813179133208F10000AA2632184CF682D95
E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B19834926081A
不計最初9個短消息信元字節,本短信息有52字節(104個字符)。AT+CMGS僅說明了SMSC信息內容的長度,在收到手機回答的>符號手才發送PDU數據串,并以(CTRL^Z)結束。
PDU數據串的內容說明如下:
08:短信息信元SMSC(短信息中心號碼)的字節長度
91:短信息中心號碼類型,91表明中心號碼是國際通用電話號碼。
683108701305F0:短信息中心號碼:8613807310500。
11:PDU SMS發送的文件頭字節。這里11指正常發送短信息。
00:信息類型。這里00指讓手機自動加上主叫號碼。
0B:被叫號碼長度。
81:被叫號碼類型。
3179133208F1:被叫號碼13973123801。
00:協議標識。
00:短信息編碼類型是GSM Default Alphabet。
AA:短信息被保留的時間為4天,其計算方法依照表3。
VP值短消息有效時間長度0~143(VP+1)×5分鐘144~16712時+(VP-143)×30分168~1961天×(VP-166)197~2551周×(VP-192)
26:PDU格式短信息編碼后字節長度。
32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D
97A02451068B1983492608:編碼后的PDU數據,短信息內容為“2002/06/08/13:
48ID102OKID103OK ID201FAIL”。
1A:ASCII碼CTRL^Z:報文結束標志。
4 應用情況及常見主要問題的解決
筆者用MCS-51系列的單片機研制了一個手持式的數據采集產品,通過SIMEENS手機,利用GSM的SMS傳輸數據。經過在國內多個省市較大數量長期廣泛的使用,性能良好,沒有出現數據丟失的現象。證明上述設計用,性能良好,沒有出現數據丟失的現象。證明上述設計是正確的。但在調試和試用階段也遇到了如下問題:
(1)接口電平
手機的電纜接口電平一般是3V左右,單片機系統的工作電壓一般為2.7~5.5V,范圍較寬,為保證數據傳輸的正確,需在接口加電平限制電路,詳見圖1。
(2)部分城市無法使用
一些城市的SMS平臺不允許使用缺省短消息服務中心號碼的協議,只需在發送的PDU數據前面幾個字節加上中心號碼即可,詳見本文發送實例。
(3)不能接收已正確發送的短消息
除GSM的SMS信道擁塞原因外,主要是PDU中PID字節的設置,使得收到的信息要存入SIM卡,而SIM卡已滿,故不再接收信息。改變PID的設置即可。
(4)收不到開機前的短消息
主要是發送數據時,對短消息有效時間VP值設置不當造成的。
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
評論