一.簡介:
嵌入式Email發(fā)送模塊是以高性能控制器和Modem芯片為硬件平臺,配以專門為8位單片機平臺編寫的TCP/IP協(xié)議棧為固件而構(gòu)成的功能強大的網(wǎng)絡(luò)通信模塊。該模塊提供了從物理層直到應(yīng)用層所有的軟、硬件,有非常簡潔的用戶接口,具有成本低廉,體積小,二次開發(fā)方便、功能強大等優(yōu)點,可以廣泛應(yīng)用于工業(yè)、家電以及各種手持設(shè)備上。
特點:
內(nèi)置適用于8bit處理器上的TCP/IP協(xié)議棧固件;
優(yōu)異的性能/價格比;
提供非常簡單的用戶接口,方便二次開發(fā);
很大的靈活性,可以根據(jù)用戶的需求開發(fā);
自動撥號、登錄;
自動建立PPP協(xié)議網(wǎng)絡(luò)連接;
自動獲取IP地址;
自動發(fā)送Email
性能參數(shù):
Modem連接速度:1200bps;
用戶接口:9600bps串行接口;
(速率可根據(jù)用戶需求進行調(diào)整)
功耗:110mA(工作),20mA(待機);
能發(fā)送的email最大長度:5k字節(jié);
體積:62mm(長)×47mm(寬)×18mm(高);
應(yīng)用范圍:
工業(yè)設(shè)備;
智能儀器、儀表;
智能網(wǎng)絡(luò)家電;
家庭健康監(jiān)護;
手持設(shè)備;
遠程控制;
二:引腳說明
Email發(fā)送模塊對用戶提供了非常簡單的外部接口,一共只有5根外部引腳,分別是:
VCC電源;
RESET復(fù)位;
RXD串行數(shù)據(jù)輸入;
TXD串行數(shù)據(jù)輸出;
GND電源地;
與用戶MCU的典型連接如下圖所示:
電源
Email發(fā)送模塊所需要的電源為+5V±5%的單電源供電,Modem激活時電流小于110mA。
復(fù)位
保持Reset引腳10uS以上高電平會導(dǎo)致模塊內(nèi)部處理器以及Modem復(fù)位。復(fù)位后模塊處于等待命令的狀態(tài),而Modem處于掛機狀態(tài)。通??梢杂每刂破鞯腉PIO來復(fù)位器件,或者采用以下的上電復(fù)位電路:
串口
串口是Email發(fā)送模塊與外部控制器交換數(shù)據(jù)和命令的唯一界面。用戶控制器的數(shù)據(jù)和命令通過串口RXD引腳輸入;而模塊的各種狀態(tài)則通過TXD反饋給用戶。
模塊串口和8051MCU串口模式1相同,波特率為9600bps,全雙工異步模式。數(shù)據(jù)格式為一位起始位,8位數(shù)據(jù)位和一位停止位,低位在先,無奇偶校驗位。輸入電平兼容TTL和CMOS電平。
三:Email模塊的控制
外部的控制器通過Email模塊上的串行口對模塊進行進行控制。在復(fù)位之后,器件處于等待狀態(tài),直到接收到有效的串口的數(shù)據(jù)為止。
模塊內(nèi)部定義'/'符號號作為分隔符。各項數(shù)據(jù)的輸入都以'/'號為起始。按照撥入ISP并且發(fā)送一封Email所需要的信息,用戶輸入的數(shù)據(jù)格式是:
/ISP電話號碼/用戶名/密碼/發(fā)送者Email地址/接受者Email地址/SMTP服務(wù)器IP地址/Email內(nèi)容/++++
在最后面的4個'+'號告訴模塊,所有信息已經(jīng)輸入完畢,可以撥號并且發(fā)送email了。
ISP電話號碼
為用戶提供撥號接入的ISP運營商的電話號碼,如2631,96890等。
用戶名
撥號接入的用戶名,如撥2631時用戶名就是263,撥96890時用戶名就是96890。
密碼
撥號接入的用戶密碼,如撥2631時密碼就是263,撥96890時密碼就是96890。
發(fā)送者的Email地址
發(fā)送者的Email地址,如 liu_ding@sina.com。
接收者的Email地址
接收者的Email地址,如 hugehard@kimo.com。
SMTP服務(wù)器IP地址
一臺能夠提供SMTP郵件轉(zhuǎn)發(fā)服務(wù)的服務(wù)器的IP地址。該服務(wù)器必須有固定的IP,并且在轉(zhuǎn)發(fā)郵件時不要求身份驗證。有的服務(wù)器只對發(fā)送方Email或者接受方Email為該服務(wù)器的注冊用戶提供轉(zhuǎn)發(fā)服務(wù),比如IP地址為210.59.144.203的 smtp.kimo.com 只為發(fā)送者或接受者為 XXX@kimo.com 的用戶提供轉(zhuǎn)發(fā)服務(wù)。在采用這一類服務(wù)器時只要使發(fā)送者或接受者的Email符合服務(wù)器要求就可以了。
如果是為大量用戶提供特定服務(wù),建議設(shè)立專用的SMTP服務(wù)器,這樣做將大大提高郵件發(fā)送的成功率。
Email內(nèi)容
發(fā)送方想發(fā)送的內(nèi)容。內(nèi)容可以為字符或數(shù)據(jù)。由于受片內(nèi)存儲器限制,目前能發(fā)送的最大Email為5k字節(jié)。
++++
4個加號告訴模塊,所有信息已經(jīng)傳輸完畢,可以開始發(fā)送了。在收到4個連續(xù)的加號之后,如果Email Module上接有電話線,那Module將開始撥號并建立連接和發(fā)送Email。
實例:
假設(shè)用戶選擇96890為ISP,那么電話號碼、用戶名和密碼都為96890。
發(fā)送者Email為 liu_ding@sina.com,
接受者Email為 hugehard@kimo.com
采用的SMTP服務(wù)器為 smtp.kimo.com,其IP為210.59.144.203 (D2.3B.90.CB)
Email內(nèi)容為
Hello! This is a email send by an Embedded email module!
根據(jù)以上信息和前面定義的數(shù)據(jù)格式,控制器只要把下面的字符串通過串口送入Module:
"/96890/96890/96890/liu_ding@sina.com/hugehard@kimo.com/\xD2\x3B\090\xCB/Hello! This is a email send by an Embedded email module!/++++"
Email Module就能夠自動撥號并將Email發(fā)送到用戶指定的目的hugehard@kimo.com。
注意:控制字符串中對應(yīng)于SMTP IP地址的"/\xD2\x3B\090\xCB",是c語言中的格式,代表ASCII碼的0xd2,0x3B,0x90,0xCB等4個字節(jié),而不是字符串"/\xD2\x3B\090\xCB"。
四.消息和錯誤代碼
Email模塊在工作過程中會不斷地通過串口的TXD引腳向外發(fā)出各種消息和錯誤信息。這些消息和錯誤信息都只有一個字節(jié)。下面就是這些消息和錯誤信息(括號內(nèi)為代表消息的值)
消息代碼
MSG_LOGIN(0x10): ISP登錄成功;
MSG_PPPCNCTD( 0x11):PPP連接建立;
MSG_TCPCNCTD(0x12): TCP連接建立;
MSG_EMTXOVR(0x13): Email發(fā)送完成;
MSG_TCPDISCNT(0x14) TCP連接斷開完成;
MSG_GETTCP(0x15) 接收到一個TCP包;
MSG_SENTTCP(0x16) 發(fā)送完成一個TCP包;
MSG_READY(0X66): 準備就緒。收到該消息后控制器就可以對模塊開始操作了。
錯誤代碼
ERR_PHNL(0x01): 電話線路故障,無法撥通ISP;
ERR_PPPLGN(0x02): 登錄ISP錯誤,可能是密碼或帳號名稱錯誤;
ERR_PPPCNT(0x03): PPP連接未建立;
ERR_TCPTMOVR(0x04): TCP連接超時;
ERR_EML (0x05): Email未能正確發(fā)送,可能是SMTP服務(wù)器拒絕轉(zhuǎn)發(fā)郵件;
ERR_TCPRST(0x06): TCP連接被復(fù)位,服務(wù)器拒絕連接請求