基于ARM的嵌入式SMTP远程控制设计

发布者:平和的心态最新更新时间:2011-06-24 关键字:ARM  嵌入式  SMTP远程控制 手机看文章 扫描二维码
随时随地手机看文章

随着WWW 的不断发展,人们对以IP 网络为基础的Internet 应用提出了更高的需求,将来的Internet 必将实现“利用IP 技术传输控制行为(Action over IP)”。在工业控制领域怎样实现仪器仪表的远程数据采集,实现异构网络互连及远程监控成为技术的关键。因此需要一种合理的通讯模式来实现数据的远程传输[1]。
在本课题中,通过SMTP协议的方式提供了一种新的嵌入式远程通讯模式。即在ARM处理器中实现SMTP协议,并通过双绞线连接到Internet上。在该平台上开发的远程控制设备或仪器仪表实现了通过Internet进行数据的远程传输,在任意一台上网的计算机上都可以通过Internet对其进行远程监视和控制。该方式对于无人值守的工、民用控制及分布式水、电、气、环境等远程监控有普遍的意义和实际的应用价值。
项目中选择了基于ARM体系结构的32位微处理器,介绍了模块的各组成部分,包括基于ARM的硬件结构模型、软件结构、SMTP的基本结构及其运行机制。并详细分析了ARM系统中嵌入式SMTP软件模块的具体实现和调试过程。
1. 系统整体结构
在系统中,将SMTP服务器引入到ARM的平台上实现嵌入式SMTP服务器(Embedded SMTP Server)。在此软硬件系统基础上开发控制设备及仪表,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,SMTP技术为核心的基于互联网的网络测试和控制设备。嵌入式SMTP系统与传统SMTP Server相比,简化了协议结构,将信息采集和信息发布都集成到现场的测控设备中。由于SMTP是Internet中跨平台的标准通信协议,内嵌于设备的SMTP 服务器可以接收任何标准邮件发送工具发出的E-mail指令和数据。同时由于SMTP技术的开放性和独立平台特性,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用等,提高了现场测试和控制设备的管理水平。
 1.1系统的硬件结构
系统硬件的核心部件,由运行嵌入式操作系统的嵌入式微处理器系统构成,在嵌入式操作系统之上运行着系统的核心软件。由于ARM处理器技术成熟,市场占有率高,且成本急剧下降。从工控角度出发,我们选用MOTOROLA基于ARM 内核的MX9328MX1。该芯片是一款基于ARM9T芯片。它一方面具有ARM 处理器的低功耗、高性能等优点;同时又具有丰富的片上资源,非常适合嵌入式产品的开发。
在硬件系统中包含实现SMTP通信功能的微处理器,它可以和前端的应用系统直接集成在一起,也可以通过现场总线与应用系统相连。包括:8M 的FLASH 存储器用来存储实时操作系统的系统内核、TCP/IP 协议栈、各种控制程序及其他并行模块;32M的SDRAM存储器供系统运行时使用;以太网接口实现与Internet/Intranet 连接;现场总线扩展控制模块提供现场一定范围内设备的分布控制;通用IO口控制模块等。其硬件结构图如图1 所示[2]。

图1: 嵌入式SMTP远程控制平台硬件结构
考虑到性价比,系统的硬件结构根据应用环境的不同进行调整,硬件资源也很有限。实时操作系统的系统内核、TCP/IP 协议栈、各种应用程序都必须写入到FLASH中并在运行时调入到SDRAM 中运行,这样对软件系统提出了较高的要求。
 1.2系统软件结构
整个系统的软件系统包括五个部分:①嵌入式操作系统;②虚拟文件系统;③SMTP引擎;④配置模块;⑤安全模块;⑥控制程序接口模块。
嵌入式操作系统选用Linux,作为系统的软件基础,其优异的跨平台移植能力、开放的源代码、配置的灵活性为开发提供了便利。内置的TCP/IP协议栈可使用户快速的开发出应用层协议的程序。
Linux上的虚拟文件系统在FLASH及SDRAM的基础上建立类似于磁盘的使用环境。虚拟文件系统使用数据结构存储文件大小、修改时间等信息。通过虚拟文件系统将系统中所需的控制程序以及配置文本等以文件形式存储于系统芯片上。
SMTP引擎负责响应用户的请求,通过应用程序接口使用户远程控制设备的动作,临界值状态报告及定期向用户报告工作状态。[page]

配置模块使系统管理员可以远程使用邮件的方式设置设备的参数,在系统启动中定义的配置环境变量包括设备的临界值,状态报告周期,Socket端口等网络参数,设备的启动停止时间,工作周期等。
网络远程设备的配置和控制信息的访问是安全保护的重点。安全模块通过在服务器上定义安全域和对每个安全域定义的用户名/密码实现对敏感信息的保护。还可以对请求控制动作及数据采取加密措施实现安全保护功能。系统主要通过ESMTP来实现保护措施。ESMTP为扩展的SMTP协议,是邮件服务器系统为了限制非本系统的正式用户利用本系统散发垃圾邮件或其他不当行为而开设的一项安全认证服务。
应用程序接口模块实现和嵌入式控制系统的控制及数据交换。在本系统中,应用程序接口与嵌入式操作系统通信,通过设备的驱动程序实现对嵌入系统的配置、监视和控制,是系统控制的核心。监控程序模块使用CGI(Common Gateway Interface)的方式实现。
2. SMTP通讯模块设计
通过电子邮件来与网络嵌入式系统通信有如下优点:(1) 用户接口是日常使用的标准电子邮件客户程序,对技术要求较低;(2) 有现成的协议用于从各种设备(桌面电脑、手持设备及网络电话)发送电子邮件并在因特网上传输;(3) 只需稍加处理,便可对嵌入式设备上回复的电子邮件以HTML格式进行编码,使数据的表现形式更为丰富和易读;(4) 电子邮件客户程序有自己的存档日志,便于进行数据归档备份[3]。
系统中实现的是一个简化的SMTP Server。仅仅是根据基本的SMTP交互协议实现邮件接收和邮件转储。不提供邮件转发,也不需要考虑多用户的邮件并发连接。该SMTP Server仅仅为单用户提供专用连接,并按自己的特定格式接收。
因此,该SMTP Server实现的核心是实现最简单的SMTP锁步协议对话机,并从邮件中析取出命令及附件数据。在分析标准SMTP协议后,程序中仅实现符合应用需求的最简洁的SMTP对话机制。Server只是对客户命令有效的发出每一个对话的响应码及固定信息,然后接收客户机的应答。在应答消息中也仅仅分析应答的字符命令是否正确,而不理睬其他信息。在邮件处理过程中,只查找主题并判断,然后从邮件中判断出附件的标志并从附件开始处接收数据然后解码。
 2.1 SMTP通讯基本流程
为实现设备的远程控制及状态响应,将SMTP软件的结构模块化。分为套接字通讯模块、E-mail编码模块、E-mail解析模块、SMTP/ESMTP协议模块、附件解析模块。其基本结构如图2。

图2: 嵌入式SMTP远程控制流程
 2.2 套接字通讯模块
网络套接字模块负责与远端客户机、服务器建立TCP连接,发送和接收从客户端发送的命令和数据以及向其他SMTP服务器端返回邮件数据。这些都是基于TCP/IP栈通过Linux操作系统的标准Socket机制来实现的。在网络模块中,为便于升级,考虑到了IPv4到IPv6过渡。在用户设置服务器地址的时候,可以支持IP地址输入和域名输入两种方式,这样给用户带来很大方便。
在该模块中,提供一个TCP流套接字服务器。在端口25上绑定套接字,最多可以提供一个连接,支持5个等待。一旦服务器接受一个连接,该套接字被传给SMTP/ESMTP协议模块,来处理SMTP协议实现交互。处理完后关闭套接字,然后可以等待另一个请求。
 2.3 E-mail编码模块
在系统中,远程设备需要周期性的将设备运行状态及各参数发送给管理者,以及在管理者发送查询指令时将查询的关键值发送给管理者。这需要设备能够根据运行的参数构造标准结构的E-mail并发送。[page]

E-mail编码模块的功能是:设备发送邮件时,将设备参数及状态转变成标准的适合在Internet上传输的邮件格式。
一个完整的E-mail报文包括包封、报头和报体。包封是用SMTP命令MAIL FROM和RCPT TO来定义。报头信息包括:收件人(To:),发件人(Sender:),抄送者(CC:),发送日期(Date:),主题(Subject:),MIME版本(Mime-version:)等。在报体中信息包括:内容类型(Content-Type:),内容传输编码类型(Content-Transfer-Encoding:),边界定义(Boundary:)及信息内容等。邮件信息每行之间都以CR/LF(回车换行符)作为结尾。可以通过这些邮件头信息的关键词,解析出收件人、发件人、抄送人、发送日期,MIME版本号等[4]。
报体信息包括邮件的正文和附件。正文开始的标记是邮件头信息结束后的两个回车换行符,即两个CR/LF。邮件结束的标志是.。模块中提供了对MIME(Multipurpose Internet Mail Extensions)1.0格式邮件的处理。实现了MIME内容传输编码,包括:7-bit,8-bit, quoted-printable,Base64编解码。
 2.4 SMTP/ESMTP协议模块
SMTP/ESMTP是一种基于命令/应答模式的锁步协议。客户机给出字符串命令,服务器给出数字代码应答,实现邮件的锁步传输。
在TCP连接基础上(端口号25),本模块实现SMTP/ESMTP协议的最小命令集。作为客户发送邮件时,实现的客户连接命令包括: ELHO(或者HELO)、AUTH LOGIN、USER、PASS、MAIL FROM、RCPT TO、DATA、RSET、NOOP、QUIT。作为服务器接收邮件时,响应的数字代码包括:220(服务就绪)、221(服务关闭)、250(要求的邮件操作完成)、354(开始邮件输入,以.结束)、500(命令不识别)[4][5]。
发送者的用户名和密码必须经过Base64编码后,发送到SMTP/ESMTP服务器端,认证才能成功。实现过程见图3。

图3:SMTP/ESMTP协议模块基本流程
 2.5 E-mail解析模块
远端设备在收到邮件指令时,应能从邮件中正确析取出指令并做出响应。
系统中的E-mail解析模块通过查找E-mail中的主题来知道命令类型。其在E-mail报体中查找字符串Subject来发现E-mail的主题,并从中找到规定类型的命令字头。如无相应主题,返回-1,将邮件丢弃。根据主题命令字的不同,完成设备的相关动作控制或相应状态的邮件报告。对于数据块的更新,使用附件解析模块来得到附件中的数据。
3. 安全性问题
由于SMTP技术的开放性和标准性,其开发的简单便利也带来很多缺点。设备的远程控制必须对访问者有所区分,否则系统的安全将不可预料。
特别是,SMTP协议在发送邮件信息,甚至是用户名和密码的时候采用的是明文发送。通过常见的抓包工具,就可以轻易获得正在接收或发送邮件的用户的所有信息,包括用户名和密码以及邮件信息,这给设备的正常操控带来了极大的威胁。即使ESMTP协议在发送用户名和密码的时候采用的是base64编码,但其解码也是轻而易举,因此其安全性也有限。
对于安全问题,可根据不同的控制环境使用不用的策略[6]。[page]

(1) 闭环网络访问策略:把网络访问范围局限在 Intranet 范围内,通过网内任意PC机发送的邮件命令可以进行远程监视、诊断、远程控制和参数设置。所有可能的攻击点全部局限在本网络范围内。
(2) 只读访问策略:对关键信息和敏感信息,一个重要的安全措施就是将其标记为只读特性,尤其是从Intranet 范围外的IP 地址来的访问请求。这样用户可以在任意地方查看远程设备的状况,出现问题可以及时采取措施。
(3) 引入加密机制,如:MD5加密就可以增加安全性。
4. 结束语
本文介绍了在ARM的硬件平台上,如何构建以嵌入式Linux为基础利用SMTP协议来进行设备的远程监控的实现方法。通过该方法,我们实现了对传统工控项目的远程控制改造升级。在该方案的基础上,完全可以实现设备的网络化和智能化管理,为现场可编程设备的在线远程监控、管理及维护等功能提供了实现的可能性和技术上的支持。通过对SMTP协议的合理利用,使“Action over IP”的思想得以实现,从而在远处可以对设备的“行为”进行有效的管理和控制。
该文的创新点为:
1、 使用低成本、高可靠的ARM硬件平台替代价格昂贵的工控机降低了生产运营成本,提高硬质合金生产线的安全可靠性。
2、 由于采用SMPT这样简单的通讯协议,降低了工控网络管理复杂性,使硬件与软件维修都变得方便,易于掌握。
3、 采用加密传输通讯确保数据安全,ARM平台采用TCP/IP标准方便与外网通讯,实现企业数据库共享。

关键字:ARM  嵌入式  SMTP远程控制 引用地址:基于ARM的嵌入式SMTP远程控制设计

上一篇:CAN网状冗余及基于ARM节点设计
下一篇:基于ARM嵌入式系统的自动化配送系统

推荐阅读最新更新时间:2024-03-16 12:37

交叉编译Python-2.7.13到ARM(aarch64)平台
方法跟交叉编译Python-2.7.13到ARM(aarch32)平台基本一样, 不同的地方只是把工具链换成编译aarch64的工具链,这里可以参考用qemu搭建aarch64学习环境. 创建目录: mkdir python2_7_13_for_aarch64 下面是配置、编译和安装的脚本: 1、配置: mk1_conf.sh 1 #!/bin/bash 2 3 export PATH=/home/pengdonglin/src/qemu/aarch64/gcc-linaro-aarch64-linux-gnu-4.9-2014.07_linux/bin:$PATH 4 5 ../Python-2.7.13
[单片机]
英伟达长文驳斥FTC关于Arm收购的指控
日前,FTC发布了有关Nvidia收购Arm交易的审核最新进展,提交了一份来自英伟达、软银和Arm对FTC之前指控的回应。在回应中,他们表示,NVIDIA 对 Arm 的收购将极大地增强半导体行业的创新和竞争,从而使行业参与者、消费者和美国经济受益。 声明强调,Arm 开发和许可 CPU IP。Arm 拥有一支出色的团队、强大的核心业务,并且在高质量、可靠的 CPU 设计方面享有盛誉。然而,Arm 在寻找未来增长的道路上面临着重大挑战。Arm的原始市场和最大的收入来源(移动设备)已经饱和。CPU 的其他应用程序(最显著的是数据中心服务器和 PC)已经并将继续特别难以破解。现有的数据中心和 PC CPU 供应商(英特尔和 AMD
[半导体设计/制造]
嵌入式系统应用中实现RS485的方向切换
  RS485接口具有良好的抗噪声干扰性能、长传输距离和多站能力等特点,使其成为工业控制的首选串行接口。嵌入式系统中也广泛采用RS485接口作为设备控制的串行接口。RS485采用两线差分的接线方式进行串口数据的传输。由于发送和接收都是采用这两根差分线进行,因此它是半双工工作模式。基于RS485的特点,分别讲述了通过硬件方式和软件方式来实现RS485发送和接收方向的切换,重点解决了DM8168嵌入式平台上软件实现RS485方向切换的功能。   RS485总线是工业应用中非常成熟的技术,是现代通信技术的工业标准之一。RS485总线用于多站互连十分方便,用一对双绞线即可实现,采用平衡发送和差分接收,即在发送端驱动器将TTL电平信号转换成差
[嵌入式]
基于8051嵌入式系统的GPRS终端实现
摘要:介绍了基于GPRS网的数据传输、嵌入式实时操作系统u/OS-II以及小型TCP/IP协议栈uIP;深入论述了基于8051嵌入式系统的GPRS终端的实现。提供了一种罗为简单、廉价和实用的GPRS终端的实现方案,说明了在8051中如何进行uC/OS-II和uIP的移植。 关键词:GPRS终端 嵌入式系统 实时操作系统 TCP/IP 随着数据无线传输需求的骤增和中画移动GPRS业务全面投入运营,无线数据通信的应用越来越广泛。GPRS网不但具有覆盖范围广、数据传输速度快、通信质量高、永远在线和按流量计费等优点,且其本身就是一个分组型数据网,支持TCP/IP协议,无需经过PSTN等网络的转接,可直接与Internet网互通。因此
[网络通信]
ARM系统体系结构
  ARM平台可以采用核心主板加扩展板的设计方式,基于ARM微处理器芯片的核心主板,能将ARM所有的I/O全部引出,在核心主板上面只提供最基本的接口;而对于一些   特殊用途的USB接口、以太网接口、LCD接口,以扩展板形式提供。   ARM模块部分是其一个重要的组成部分,在系统中ARM模块主要负责系统控制部分,其硬件体系结构灵活、接口丰富。核心包括嵌入式ARM CPU及必需的SDRAM和Hash等器件,通过表贴封装的双排插针将各信号线及控制线引出。这样,只需要设计不同的扩展板即可实现不同的系统功能,节约了开发成本并提高了平台的灵活性。   软件开发方面,如果采用Linux开放源代码进行开发,可以大大降低开发成本,加快软件的开
[单片机]
<font color='red'>ARM</font>系统体系结构
基于ARM的双频RFID读写系统设计
      摘要:本文设计了能对低频和高频RFID 卡进行操作的双频RFID 读写系统。系统基于ARM微处理器 S3C44B0X ,利用S3C44B0X 的内部接口实现与RFID 模块和其它外设的连接,简化了硬件。软件设计中,通过对ARM 嵌入式系统的编程实现对RFID 卡的读写、显示以及数据的存储、查询等功能。系统还可通过USB 接口与上位机(PC)连接,使用方便灵活。    1 引言   RFID(Radio Frequency Identification Technology ,无线射频识别技术)由于具有高速移动物体识别、多目标识别和非接触识别等特点,显示出巨大的发展潜力和应用空间,被认为是21 世纪最有发展
[网络通信]
Wind River Simics为嵌入式开发人员铺就坦途
新闻要点 ● Wind River® Simics®助力嵌入式开发人员更便捷地改善CI/CD实践并开启DevOps之旅 ● 新功能特性包括性能提升、安全性增强以及在模拟运行时更好的洞察力 ● Simics可以帮助客户模拟和测试传统方法几乎无法复制的复杂场景 领先的智能边缘软件提供商风河公司近日发布了其最新版的 Wind River Simics ®。运用可对实际硬件进行精确建模的虚拟平台,不管是芯片还是最复杂的复合型系统,Simics都能对其进行功能模拟,同时也为嵌入式开发人员提供了一条坦途,以便开展持续集成/持续部署(CI/CD)实践并发展出一整套DevOps文化。 最新版本的Wind River® Simi
[嵌入式]
基于ARM核的单电源心电检测模块的实现
本文给出的设计采用单电源供电,可以解决上述问题并降低产品成本,同时该设计还在基于arm核的嵌入式系统中采用了简单实用的算法,能快速准确定位QRS复波(即计算人的心率)。该设计面向广大家庭用户而设计,体积较小,只需要一台个人电脑与之连接,便可实时地操作、观测心电信号。   心电信号采集系统的基本架构如图1所示。人体的心电信号经电极和专用导联线从人体送至系统。通过滤波和放大调节电路,微弱的心电信号被放大到合适的幅值,并处于A/D转换范围之内。 图1:心电信号采集系统的基本架构。   系统的控制和数据的处理由ADI公司基于arm7 TDMI核的MCU ADuC7020来完成。这款芯片有丰富的片内外围电路,处理速度高达40M
[单片机]
基于<font color='red'>ARM</font>核的单电源心电检测模块的实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved