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

发布者:快乐阳光最新更新时间:2010-07-09 来源: 微计算机信息 关键字:嵌入式系统  ARM  SMTP协议  E-mail 手机看文章 扫描二维码
随时随地手机看文章

  随着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引擎负责响应用户的请求,通过应用程序接口使用户远程控制设备的动作,临界值状态报告及定期向用户报告工作状态。

  配置模块使系统管理员可以远程使用邮件的方式设置设备的参数,在系统启动中定义的配置环境变量包括设备的临界值,状态报告周期,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并发送。

  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]。

  (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协议  E-mail 引用地址:基于ARM的嵌入式SMTP远程控制设计

上一篇:国产PC厂商炮轰芯片商钳制产业链
下一篇:Intel开发硬件加速器 AES加解密效率陡升

推荐阅读最新更新时间:2024-05-02 21:05

基于ARM7的数据采集与无线传输模块设计
随着数据监测、无线通信和EDA技术等应用领域的不断扩展,人们对数据采集系统的采集精度、采集速度以及数据存储量都提出了更高的要求。针对当前数据采集系统的不足,提出了一种基于ARM7处理器LPC2220的嵌入式高速数据采集系统设计,以满足系统高速、实时,数据存储量大的需求。此外,由于模拟信号的抗干扰能力差而不利于传输,因此通常利用数字信号进行传输。利用无线通信方式,系统结构轻巧、维护方便。适用于防汛防旱等灾难预警中的数据检测,例如降雨量采集、水文站水位监测等。 1 数据采集模块设计 1.1 概述 所谓数据采集,就是通过传感器把一些物理量转换成模拟电信号,经过处理后再转换成计算机能识别的数字量,送入计算机。数据采集的关键问题
[单片机]
基于<font color='red'>ARM</font>7的数据采集与无线传输模块设计
Atmel扩展ARM Cortex M0+ MCU组合
新增 SAM D21、D10和D11家族和更加丰富的连接与通信功能,实现面向消费、工业和医疗市场的物联网应用的设计灵活性 全球微控制器(MCU)和触摸解决方案领域的领导者Atmel公司(纳斯达克:ATML)今日宣布推出三个新的产品家族,扩展了其基于 ARM® Cortex® M0+的低功耗MCU产品组合。这些入门级低功耗的MCU产品采用了Atmel的专利技术Event System、SERCOM模块、外设触摸控制器以及全速USB接口,可让设计人员更快地将他们的产品推向市场。 在这个物联网时代,随着越来越多的设备变得更加智能,联网程度越来越高,设计人员正在寻求具备更多连接和通信选项的MCU,用以扩展他们的消费、工业和
[单片机]
ARM落地深圳,中国自主芯片的春天来了
  5月14日,一件传言很久的大新闻终于尘埃落定:一家主导了世界上几乎所有芯片架构的公司要落户中国了。这家公司就是ARM,它将和厚安创新基金合资成立公司,然后提供芯片设计所需的知识产权、技术支持和培训。       ARM可以说是承包了地球上几乎所有的芯片架构,不管是你的手机还是kindle、系统是iOS还是Android。这样一家公司如今进入了中国这个芯片消费大国,中国的芯片厂商很开心,而芯片霸主高通可能此时正哭晕在厕所。    目前,绝大部分手机处理器架构都基于ARM架构,不论是高通、三星、华为,但ARM不亲手去做芯片,而是通过对外开放授权的方式,出售说明书,厂商自己设计生产。你可以把ARM的架构理解为一份秘制基础菜谱,它
[半导体设计/制造]
<font color='red'>ARM</font>落地深圳,中国自主芯片的春天来了
基于ARM的智能综合监控基站方案设计
引言 传统的监控系统类似大体可以分为四种:防盗放火报警监控系统,门禁系统、考勤或巡更系统,环境检测系统,视频监视系统。 目前市场上通常对某个区域(例如仓库)的全面监控管理是由以上四种类型的监控系统的简单相加,各分系统之间相对独立,到上层监控中心才进行综合,这样作势必会造成布线烦琐、维护力度大、升级困难、成本增加,而且系统的联网方式单一也可能造成系统的鲁棒性不高,处理突发事件的能力不强,针对这样一种现状,文中提高了一种基于32位高性能处理器AT91RM9200的智能综合监控基站方案。 1 系统结构 本基站最大的特点在于将各个子系统在底层进行综合集成,并且采用PSTN、GPRS和TCP/IC三种联网方式。无论从成本、智能化程度
[单片机]
基于<font color='red'>ARM</font>的智能综合监控基站方案设计
用FIFO实现A/D与ARM处理器的接口
    在高速数据采集系统中,若A/D转换器直接与微处理器MCU相接,则因高速A/D的转换速率较高,迫使MCU不断地读取转换结果,因而就占用了MCU大部分的I/O带宽,降低了MCU的工作效率。     在此情况下通常都会加缓存器,这样“模/数转换器缓存器一处理器”就成为一种通用模式。下面就介绍如何利用FIFO芯片CY7C4255V实现高速高精度模/数转换器AD767l与LPC2200系列ARM处理器的接口。     1 器件简介     1.1 模/数转换器AD7671     AD767l是采样速率达1Msps的16位逐次逼近型高速高精度模/数转换器,采用5V单电源供电,并能提供单极性和双极性两种输入方式,可适用不同
[嵌入式]
Keil(MDK-ARM-STM32)系列教程(六)Configuration(Ⅱ)
Ⅰ、写在前面 本文接着上一篇文章“Configuration(Ⅰ)”进行讲述Configuration后面三项Shortcut Keys快捷键、Text Completion代码完形、Other其他的内容。 Shortcut Keys快捷键:Keil软件里面所有快捷键都可以在Configuration配置中查看的到,也可以自定义快捷键。 Text Completion代码完形:包含代码自动完成、代码模板、语法错误检测等。 Other其他:这个选项不常用,包含UVSOCK (TCP/IP)设置、打开软件设置等。 阅读本文之前建议先阅读上一篇文章: Keil(MDK-ARM-STM32)系列教程(五)_Configu
[单片机]
Keil(MDK-<font color='red'>ARM</font>-STM32)系列教程(六)Configuration(Ⅱ)
基于ARM微处理器的液晶触摸屏接口设计
0 引言 人机交互界面的种类较多,如键盘、数码管显示器、液晶显示器及带触摸的液晶屏等。决定人机交互接口方式的主要因素是成本和实际应用的需要。近十年来,液晶触摸屏以功耗低、重量轻、精度高和良好的人机界面等技术特点, 在电子设备特别是手持类电子产品中得到了普遍应用。带触摸的液晶屏,只要能测量出触摸点的坐标位置,即可根据屏上对应坐标点的显示内容或图符获知触摸者的意图, 通过微处理器处理声音、图像、文字及触摸输入控制等信息,使之成为能进行信息存取、输入和输出的集成系统。基于微控制器与液晶模块的硬件接口设计及软件编程在智能系统设计中有着重要的应用价值。ARM 微处理器,运算速度快、资源丰富、性价比高,是当前较为流行的嵌入式控制器。本文介
[单片机]
基于<font color='red'>ARM</font>微处理器的液晶触摸屏接口设计
[ARM裸机程序][1]ARM裸机程序开发环境搭建
环境搭建 安装交叉编译工具链(arm-linux-gcc4.4.3) 详见Bolg。 交叉编译基础 arm-linux-gcc常用命令 1.查看头文件和库文件的搜索路径: arm-linux-gcc -print-libgcc-file-name 2.arm-linux-gcc常用命令 arm-linux-gcc -g -c led.S //-c为仅汇编操作 -g添加调试信息 arm-linux-ld -Tled.lds -o led.elf led.o //执行链接操作 arm-linux-readelf -a led.elf //查看elf文件头信息 arm-linux-objdump -D -S led.el
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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