APP下载

基于SMTP-POP3协议的嵌入式远程控制设计与实现

2015-07-19成凯丽叶玮琼许林

湖南工业大学学报 2015年1期
关键词:控制程序口令邮件

成凯丽,叶玮琼,许林

(湖南工业大学计算机与通信学院,湖南株洲412007)

基于SMTP-POP3协议的嵌入式远程控制设计与实现

成凯丽,叶玮琼,许林

(湖南工业大学计算机与通信学院,湖南株洲412007)

介绍了利用SMTP和POP3协议实现嵌入式远程控制的方法。在PXA270处理器为核心的硬件平台上,实现了简化的SMTP Server和POP3 Server,完成邮件的解析与构造等,从而使系统完成控制命令的发送、控制程序的远程更新、用户口令的远程更新、控制结果的反馈等。试验表明,系统可以稳定可靠运行。

远程控制;SMTP协议;POP3协议

0 引言

随着计算机、网络、通信、控制等技术的不断发展,信息交互沟通的重要性在工业控制领域不断凸显,工业自动化水平也随之不断提高。实现远程控制的方式越来越多,常用的方式有基于WEB、GSM短消息、GPRS、电话网、SMTP协议等[1]。通过邮件方式实现的远程控制具有控制命令发送免费,远程控制端免开发、可移动的特点,而往常以这种方式实现的远程控制只是简单地利用SMTP协议来完成控制命令的发送,课题组在PXA270平台上使用简化的SMTP,POP3两种协议,同时实现控制命令的发送和控制结果的反馈,并根据邮件解析得到的不同主题字来完成设备控制、用户口令和设备控制程序远程更新多项功能。该系统对那些比较危险、操作不方便、无人值守的设备实现远程监控具有实际意义和价值。

1 系统整体构架设计

系统首先要实现的是中央控制器的设计,在此基础上实现设备端和控制端的通信。课题组采用的是在以PXA270处理器为核心平台上,引入SMTP Server和POP3 Server实现嵌入式SMTP-POP3服务器,通过连接Internet,实现对邮件的处理和控制结果的反馈,并在此基础上开发控制设备,使传统控制设备转变为以TCP/IP为底层通信协议的远程控制设备,进而实现控制端和设备端的通信。控制端可以是PC机、手机等,只要它们可以连接Internet并具有邮件收发工具(Outlook,Foxmail),就可以实现邮件的免费收发,随时随地对设备进行远程控制。控制命令的传送和控制结果的反馈都是以邮件的形式呈现的,同时出于对安全问题和控制设备的扩展性问题的考虑,该设计还具有用户口令的安全验证和远程更新、设备控制程序远程更新的功能。系统控制结构图如图1所示。

图1 控制结构图Fig. 1Control structure

系统硬件的核心是I n t e l公司开发的基于ARMv5E的Xscale构架的处理器PXA270,最高频率可达624 MHz。其外围控制器众多,可实现丰富的外围接口功能。它包含的SpeedStep技术,能够动态调节系统所需要的主频,真正实现低功耗,并支持嵌入式Linux和Wince操作系统。正是由于其具有可靠性高、运行稳定、接口丰富、功耗低等特点,适合在工控领域中运用。硬件结构包含了实现SMTP Server,POP3 Server的嵌入式微处理器PXA270,64 MB的FLASH,64 MB的SDRAM,电源管理芯片,以太网接口,现场总线控制模块,通用I/O控制模块,串口等。

2 SMTP,POP3协议及客户端功能分析

2.1 SMTP/ESMTP协议

SMTP是一种基于TCP协议的电子邮件传输协议。ESMTP是对SMTP协议的扩展,它与SMTP的区别仅仅是服务器会要求用户提供用户名和密码来进行身份验证。它们都是一种基于命令/应答模式的锁步交互协议(文中采用ESMTP协议),在设计中表现为客户端给出字符串命令,SMTP服务器端给出应答信息,直到客户端命令为QUIT,服务器端回复221,结束锁步交互。在本研究中实现的是协议的最小命令集,客户端用到的主要连接命令包括:HELO/HLHO,AUTHLOGIN,MAIL FROM,RCPT TO,DATE,RSET,QUIT。服务器响应的数字代码主要有:220(服务准备好)、250(请求的命令成功完成)、334(等待用户输入验证信息),235(用户认证成功)、354(发送邮件内容)、221(服务关闭)、500(命令不识别)[2]。

2.2 POP3协议

POP3协议允许用户从服务器上把邮件存储到本地主机上,同时根据客户端的操作删除或保存邮件服务器上的邮件。POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件。POP3也是一种基于命令/应答模式的锁步交互协议。在设计中表现为客户端给出字符串命令,POP3服务器端给出应答信息,直到客户端命令为QUIT,服务器端回复“+OK”,结束锁步交互。

在锁步交互的过程中,客户端主要连接命令有USER,PASS,STAT(总数和长度),UIDL(返回邮件唯一标识符),LIST(返回邮件的唯一标识符),RETR(返回邮件的全部文本),DELE,QUIT。

服务器响应则以“+OK”或者“-ERR”开头的,后跟一些参数或可读说明。以“+OK”开始表示命令已成功执行或者服务器准备就绪等,以“-ERR”开始表示错误或不可执行的命令,当响应信息包含多行时,只包含“.”的行表示响应结束[3]。

2.3 客户端功能

课题组除了要实现对设备的远程控制,还要实现用户口令的更新和控制程序的远程更新,每个功能的完成都需要客户端发送正确的命令,所有的命令都是以邮件主题字发送的。当所发送的命令不在命令范围内,客户端将收到表示控制命令错误的反馈邮件,当所发送命令是设备控制命令的时候,每一种设备都具有自己的命令格式,以及参数要求,只有当格式和参数都符合要求,设备才能执行相应操作,否则客户端将收到表示设备控制命令错误的提示信息,当客户端要求对用户口令和设备控制程序进行更新时,客户端应发送Change和Update命令来完成。下面以几种简单设备为例对客户端发送的命令格式进行说明,如表1所示。控制结果的反馈包括以下几种情况:

*** subject error/success/fail(某设备控制命令错误/控制成功/控制失败);

pdate success/fail(控制程序更新成功/失败);

change success/fail(用户口令更新成功/失败);

subject error(控制命令错误)。

同时在完成用户口令更新和控制程序更新时,新的用户口令和控制程序都是以邮件附件的形式发送的,故当收到Change和Update命令时,需要提取邮件附件内容,附件中的控制程序名必须与设备上已有的本地控制程序名相同,用户口令文件名必须与已有的用户口令文件名相同,否则无法更新。同时传递的用户口令也应该遵守一定的规则,用户口令更新规则示例说明如下。

文件名默认:change.txt

文件格式:

<changkaili> //用户名是<>中内容

“1234567890” //用户密码是“”中内容

表1 客户端发送命令的格式及功能Table 1Format and function of client send commands

文件中,用户名长度为小于等于10个字符;密码长度为6~10个字符,用户名和密码使用标准ASCII码,不可用中文或其他扩展码。

3 系统软件设计

嵌入式软件平台的核心部分是嵌入式操作系统,Linux具有源代码开放、可裁剪、易于移植和强大的网络支持功能等特点,故选其为系统软件平台。构建Linux操作系统的工作主要包括建立交叉编译环境、Boot loader移植、内核定制、根文件系统构建[4]。具体制作过程可以参照文献[5]。

3.1 系统软件结构

系统的软件设计是基于嵌入式Linux操作系统平台,它可以分成2大模块:SMTP模块和POP3模块,2大模块通信通过管道通信机制来完成的。SMTP模块主要就是完成套接字的建立,绑定(端口25),监听,等待客户端的连接请求,连接成功后,实现一个最简洁的SMTP对话机制,同时完成邮件的接收和转存,然后进行邮件解析,根据正确的主题字来完成相应的控制或更新功能,最后根据命令完成情况构造回复邮件,并写入管道。POP3模块主要就是实现套接字的建立,绑定(端口110),监听,等待客户端的连接请求,连接成功后,监听管道中是否写入内容,当有内容写入后,实现一个POP3对话机制,同时完成控制结果的反馈。系统总体软件结构框图如图2所示。

图2 系统软件结构框图Fig.2 The structure diagram for system software

不是任意一个客户端都可以与服务器建立连接,在客户端和SMTP服务器建立联系的过程中,需要进行用户口令的验证,客户端发送的用户名和密码是经过base64编码的,而服务器自身读取的用户名和密码并未经过编码,故需要进行base64编码才可能验证成功。邮件的附件内容也是经过base64编码的,所以在提取邮件附件内容时需要对其进行解码,才能得到符合要求的更新内容。base64是一种用于传输8 Bit字节代码的编码方式,编码解码示例如下所示。

对用户名和密码进行编码。

用户名:ckl900823,

编码结果: Y2tsOTAwODIz

密码 :abc12345

编码结果:YWJjMTIzNDU=

对附件内容进行解码。

附件:

dXNlcjogPGFiYzkwMDgyMz4NCnBhc3M6ICJ3b3J

kNjc4OSI=

解码结果 :user: <abc900823>

pass: "word6789"

以上过程虽然进行了用户信息的验证,但是这样的安全性也是有限的。对此可以根据不同的控制环境使用不同的策略,例如:闭环网络访问策略,只读访问策略,引入加密机制等[6]。

在POP3锁步交互过程中,当客户端发送RETR命令后,服务器要响应的是邮件的内容,邮件内容是通过读管道获取的,这个锁步交互过程就实现了控制结果的反馈。

3.2 邮件解析与构造

电子邮件的报文组成包括邮件头和邮件体,邮件头是报文的控制信息,每行的基本语法是:<keyword>:<value>,邮件体是用户需要发送的邮件内容,RFC822规定邮件体由7位ASCII文本组成,邮件头和邮件体之间用空行分隔。邮件头主要包括:发件人(From)、收件人(To)、发送时间(Date)、主题字(Subject)等。邮件体:用户所需发送的邮件内容,包括正文和附件[7]。邮件信息每行都是以<CR><LF>(回车换行符)作为结束符,邮件内容是以<CR><LF><CR><LF>结束的。

邮件解析主要是从报文中提取发送者、主题字、附件名、附件内容。这些信息的提取是通过报文中的字符串来发现的,例如:“From”“Subject”“filename=”等。这里重点说明的是附件内容的提取是在字符串“filename=”附件名后,以<CR><LF><CR><LF>开始,以<CR><LF><CR><LF>结束。这些提取到的信息分别决定了控制结果回复的用户对象,设备要实现的控制功能或控制程序和用户口令的更新,更新数据的来源。文中将提取到的信息存放在一个结构体中,结构体声明如下。

struct mail{

unsigned char sender[80]; //发送者地址

unsigned char recipient[80]; //接收者地址

unsigned char subject[80]; //主题字

unsigned char filename[80]; //附件名

unsigned char rawMail[MAX_MAIL] ;

//邮件内容

unsigned char

attachment[MAX_ATTACHMENT]; //附件内容

} ;

邮件的构造可以通过在一份现有邮件报文的基础上进行修改来完成,主要修改的内容包括主题字、发送日期和接收邮件地址等。主题字的内容可能为:远程控制设备的执行情况、用户名口令更新情况、控制程序更新情况、主题字内容报错等。邮件发送时间通过时间函数获取,接收邮件的地址是SMTP锁步交互中邮件的发送方的地址。邮件构造前的主要内容如图3所示,构造后的主要内容如图4所示。

图3 邮件构造前主要内容Fig.3 The main contents before mail constructing

图4 邮件构造后主要内容Fig.4 The main contents after mail constructing

4 试验结果

该设计在以PXA270处理器为核心的硬件平台上进行了测试,初步实现了对LED,蜂鸣器等的控制以及用户口令、设备控制程序的更新,可以达到预期的效果。例如:当发送leds 1 0/1时就会实现灯的亮灭操作,操作完成后就会回复控制成功。发送的灯控命令如图5所示,控制结果反馈如图6所示。

图5 发送灯控命令Fig.5 Sending light control command

图6 控制结果反馈Fig.6 The control result feedback

5 结语

该设计介绍了基于ARM的硬件平台,在嵌入式Linux操作系统下,利用SMTP-POP3邮件协议来实现远程控制的方法。客户端采用通用的邮件收发方式,操作简单,降低了对操控人员技术上的要求,而且省去了客户端的开发,降低了研发成本。SMTP、POP3协议又是比较简单的通信协议,降低了对软件系统、通信系统的设计与维护难度。增加POP3 Server用作响应的回复机制,这使得客户不仅能远程控制设备而且还能对控制操作的结果了然于心,同时还提供了应用程序更新和用户口令更新功能,方便进行设备更新和用户的安全使用。在此方案的基础上完全可以实现设备智能化网络化的管理。

[1]李朋飞,鲁凯生,罗刚,等. 基于电话网的嵌入式远程控制器的设计[J]. 微计算机信息,2006,22(17) :58-60. Li Pengfei,Lu Kaisheng,Luo Gang,et al. The Design of the Embedded Remote Controller Based on Telephone Network[J]. Microcomputer Information,2006,22(17) :58-60.

[2]段善荣. 基于Linux的局域网邮件服务器设计与实现[J].软件导刊,2012,11(6) :122-124. Duan Shanrong. The Design and Implementation of LAN Mail Server Based on Linux[J]. Software Tribune,2012,11(6) :122-124.

[3]吴刚,王旭仁,张信杰. 邮件审计系统的设计与实现[J]. 微计算机信息,2010,26(6) :131-132,107. Wu Gang,Wang Xuren,Zhang Xinjie. The Design and Implementation of Mail Auditing System[J]. Microcomputer Information,2010,26(6) :131-132 ,107.

[4]Wei D S. Embedded Linux Application Development Complete Manual[M]. Beijing :Post & Telecom Press,2008:1-579.

[5]付诗君,陈其松. 基于ARM9+Linux的远程车载视频监控系统的设计与实现[J]. 自动化与仪器仪表,2014(4) :131-134. Fu Shijun,Chen Qisong. The Design and Implementation of Remote Vehicle Video Monitor System Based on ARM+Linux[J]. Automation & Instrumentation,2014(4) :131-134.

[6]廖斌,叶玮琼,杨连乐. 基于ARM的嵌入式SMTP远程控制设计[J]. 微计算机信息,2007,23(11) :19-21. Liao Bin,Ye Weiqiong,Yang Lianle. The Design of Embedded SMTP Remote Control Based on ARM[J]. Microcomputer Information,2007,23(11) :19-21.

[7]郑晓宇. 基于SMTP服务的远程监控技术在项目管理中的应用[J]. 机电信息,2010(30) :37-38. Zheng Xiaoyu. Application of SMTP-Based Remote Monitoring Technology in Project Management[J]. Mechanical and Electronic Information,2010(30):37-38.

(责任编辑:申剑)

Design and Implementation of Embedded Remote Control Based on SMTP and POP3 Protocols

Cheng Kaili,Ye Weiqiong,Xu Lin
(School of Computer and Communication,Hunan University of Technology,Zhuzhou Hunan 412007,China)

Introduces the method of embedded remote control based on SMTP and POP3 protocol. On the hardware platform with PXA270 processor as core,simplifies SMTP Server and POP3 Server,completes message parsing and strucure etc.,thus makes the system complete sending control command,remote update control program,remote update user password,and feedback control results. The experiment shows that the system is stable and reliable.

remote control; SMTP protocol; POP3 protocol

TP399

A

1673-9833(2015)01-0088-05

2014-11-09

湖南省教学改革研究重点基金资助项目(ZJA2013043),湖南工业大学教学改革研究基金资助项目(2012C66)

成凯丽(1990-),女,河南济源人,湖南工业大学硕士生,主要研究方向为嵌入式系统,E-mail:foxandmail@163.com

10.3969/j.issn.1673-9833.2015.01.016

猜你喜欢

控制程序口令邮件
基于James的院内邮件管理系统的实现
基于PLC的变电站备用电源自动投入装置控制程序的研究
来自朋友的邮件
高矮胖瘦
口 令
CMailServer
一封邮件引发的梅赛德斯反弹
好玩的“反口令”游戏
SNMP服务弱口令安全漏洞防范
重型车辆协同式自适应巡航控制系统的车际通信控制程序和信息交互