《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM的嵌入式SMTP遠(yuǎn)程控制設(shè)計
基于ARM的嵌入式SMTP遠(yuǎn)程控制設(shè)計
微計算機信息
廖斌 葉瑋瓊 楊連樂
摘要: 項目中選擇了基于ARM體系結(jié)構(gòu)的32位微處理器,介紹了模塊的各組成部分,包括基于ARM的硬件結(jié)構(gòu)模型、軟件結(jié)構(gòu)、SMTP的基本結(jié)構(gòu)及其運行機制。并詳細(xì)分析了ARM系統(tǒng)中嵌入式SMTP軟件模塊的具體實現(xiàn)和調(diào)試過程。
關(guān)鍵詞: ARM SMTP 遠(yuǎn)程控制
Abstract:
Key words :

    隨著WWW 的不斷發(fā)展,人們對以IP 網(wǎng)絡(luò)為基礎(chǔ)的Internet 應(yīng)用提出了更高的需求,將來的Internet 必將實現(xiàn)“利用IP 技術(shù)傳輸控制行為(Action over IP)”。在工業(yè)控制領(lǐng)域怎樣實現(xiàn)儀器儀表的遠(yuǎn)程數(shù)據(jù)采集,實現(xiàn)異構(gòu)網(wǎng)絡(luò)互連及遠(yuǎn)程監(jiān)控成為技術(shù)的關(guān)鍵。因此需要一種合理的通訊模式來實現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸[1]。
在本課題中,通過SMTP協(xié)議的方式提供了一種新的嵌入式遠(yuǎn)程通訊模式。即在ARM處理器中實現(xiàn)SMTP協(xié)議,并通過雙絞線連接到Internet上。在該平臺上開發(fā)的遠(yuǎn)程控制設(shè)備或儀器儀表實現(xiàn)了通過Internet進(jìn)行數(shù)據(jù)的遠(yuǎn)程傳輸,在任意一臺上網(wǎng)的計算機上都可以通過Internet對其進(jìn)行遠(yuǎn)程監(jiān)視和控制。該方式對于無人值守的工、民用控制及分布式水、電、氣、環(huán)境等遠(yuǎn)程監(jiān)控有普遍的意義和實際的應(yīng)用價值。
項目中選擇了基于ARM體系結(jié)構(gòu)的32位微處理器,介紹了模塊的各組成部分,包括基于ARM的硬件結(jié)構(gòu)模型、軟件結(jié)構(gòu)、SMTP的基本結(jié)構(gòu)及其運行機制。并詳細(xì)分析了ARM系統(tǒng)中嵌入式SMTP軟件模塊的具體實現(xiàn)和調(diào)試過程。
1. 系統(tǒng)整體結(jié)構(gòu)
   在系統(tǒng)中,將SMTP服務(wù)器引入到ARM的平臺上實現(xiàn)嵌入式SMTP服務(wù)器(Embedded SMTP Server)。在此軟硬件系統(tǒng)基礎(chǔ)上開發(fā)控制設(shè)備及儀表,使傳統(tǒng)的測試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,SMTP技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測試和控制設(shè)備。嵌入式SMTP系統(tǒng)與傳統(tǒng)SMTP Server相比,簡化了協(xié)議結(jié)構(gòu),將信息采集和信息發(fā)布都集成到現(xiàn)場的測控設(shè)備中。由于SMTP是Internet中跨平臺的標(biāo)準(zhǔn)通信協(xié)議,內(nèi)嵌于設(shè)備的SMTP 服務(wù)器可以接收任何標(biāo)準(zhǔn)郵件發(fā)送工具發(fā)出的E-mail指令和數(shù)據(jù)。同時由于SMTP技術(shù)的開放性和獨立平臺特性,大大降低了軟件系統(tǒng)和通信系統(tǒng)的設(shè)計、維護(hù)工作量,節(jié)省了人員培訓(xùn)費用等,提高了現(xiàn)場測試和控制設(shè)備的管理水平。
 1.1系統(tǒng)的硬件結(jié)構(gòu)
    系統(tǒng)硬件的核心部件,由運行嵌入式操作系統(tǒng)的嵌入式微處理器系統(tǒng)構(gòu)成,在嵌入式操作系統(tǒng)之上運行著系統(tǒng)的核心軟件。由于ARM處理器技術(shù)成熟,市場占有率高,且成本急劇下降。從工控角度出發(fā),我們選用MOTOROLA基于ARM 內(nèi)核的MX9328MX1。該芯片是一款基于ARM9T芯片。它一方面具有ARM 處理器的低功耗、高性能等優(yōu)點;同時又具有豐富的片上資源,非常適合嵌入式產(chǎn)品的開發(fā)。
在硬件系統(tǒng)中包含實現(xiàn)SMTP通信功能的微處理器,它可以和前端的應(yīng)用系統(tǒng)直接集成在一起,也可以通過現(xiàn)場總線與應(yīng)用系統(tǒng)相連。包括:8M 的FLASH 存儲器用來存儲實時操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP 協(xié)議棧、各種控制程序及其他并行模塊;32M的SDRAM存儲器供系統(tǒng)運行時使用;以太網(wǎng)接口實現(xiàn)與Internet/Intranet 連接;現(xiàn)場總線擴展控制模塊提供現(xiàn)場一定范圍內(nèi)設(shè)備的分布控制;通用IO口控制模塊等。其硬件結(jié)構(gòu)圖如圖1 所示[2]。

圖1: 嵌入式SMTP遠(yuǎn)程控制平臺硬件結(jié)構(gòu)


    考慮到性價比,系統(tǒng)的硬件結(jié)構(gòu)根據(jù)應(yīng)用環(huán)境的不同進(jìn)行調(diào)整,硬件資源也很有限。實時操作系統(tǒng)的系統(tǒng)內(nèi)核、TCP/IP 協(xié)議棧、各種應(yīng)用程序都必須寫入到FLASH中并在運行時調(diào)入到SDRAM 中運行,這樣對軟件系統(tǒng)提出了較高的要求。
 1.2系統(tǒng)軟件結(jié)構(gòu)
    整個系統(tǒng)的軟件系統(tǒng)包括五個部分:①嵌入式操作系統(tǒng);②虛擬文件系統(tǒng);③SMTP引擎;④配置模塊;⑤安全模塊;⑥控制程序接口模塊。
嵌入式操作系統(tǒng)選用Linux,作為系統(tǒng)的軟件基礎(chǔ),其優(yōu)異的跨平臺移植能力、開放的源代碼、配置的靈活性為開發(fā)提供了便利。內(nèi)置的TCP/IP協(xié)議棧可使用戶快速的開發(fā)出應(yīng)用層協(xié)議的程序。
Linux上的虛擬文件系統(tǒng)在FLASH及SDRAM的基礎(chǔ)上建立類似于磁盤的使用環(huán)境。虛擬文件系統(tǒng)使用數(shù)據(jù)結(jié)構(gòu)存儲文件大小、修改時間等信息。通過虛擬文件系統(tǒng)將系統(tǒng)中所需的控制程序以及配置文本等以文件形式存儲于系統(tǒng)芯片上。
SMTP引擎負(fù)責(zé)響應(yīng)用戶的請求,通過應(yīng)用程序接口使用戶遠(yuǎn)程控制設(shè)備的動作,臨界值狀態(tài)報告及定期向用戶報告工作狀態(tài)。
配置模塊使系統(tǒng)管理員可以遠(yuǎn)程使用郵件的方式設(shè)置設(shè)備的參數(shù),在系統(tǒng)啟動中定義的配置環(huán)境變量包括設(shè)備的臨界值,狀態(tài)報告周期,Socket端口等網(wǎng)絡(luò)參數(shù),設(shè)備的啟動停止時間,工作周期等。
網(wǎng)絡(luò)遠(yuǎn)程設(shè)備的配置和控制信息的訪問是安全保護(hù)的重點。安全模塊通過在服務(wù)器上定義安全域和對每個安全域定義的用戶名/密碼實現(xiàn)對敏感信息的保護(hù)。還可以對請求控制動作及數(shù)據(jù)采取加密措施實現(xiàn)安全保護(hù)功能。系統(tǒng)主要通過ESMTP來實現(xiàn)保護(hù)措施。ESMTP為擴展的SMTP協(xié)議,是郵件服務(wù)器系統(tǒng)為了限制非本系統(tǒng)的正式用戶利用本系統(tǒng)散發(fā)垃圾郵件或其他不當(dāng)行為而開設(shè)的一項安全認(rèn)證服務(wù)。
應(yīng)用程序接口模塊實現(xiàn)和嵌入式控制系統(tǒng)的控制及數(shù)據(jù)交換。在本系統(tǒng)中,應(yīng)用程序接口與嵌入式操作系統(tǒng)通信,通過設(shè)備的驅(qū)動程序?qū)崿F(xiàn)對嵌入系統(tǒng)的配置、監(jiān)視和控制,是系統(tǒng)控制的核心。監(jiān)控程序模塊使用CGI(Common Gateway Interface)的方式實現(xiàn)。
2. SMTP通訊模塊設(shè)計
通過電子郵件來與網(wǎng)絡(luò)嵌入式系統(tǒng)通信有如下優(yōu)點:(1) 用戶接口是日常使用的標(biāo)準(zhǔn)電子郵件客戶程序,對技術(shù)要求較低;(2) 有現(xiàn)成的協(xié)議用于從各種設(shè)備(桌面電腦、手持設(shè)備及網(wǎng)絡(luò)電話)發(fā)送電子郵件并在因特網(wǎng)上傳輸;(3) 只需稍加處理,便可對嵌入式設(shè)備上回復(fù)的電子郵件以HTML格式進(jìn)行編碼,使數(shù)據(jù)的表現(xiàn)形式更為豐富和易讀;(4) 電子郵件客戶程序有自己的存檔日志,便于進(jìn)行數(shù)據(jù)歸檔備份[3]。
系統(tǒng)中實現(xiàn)的是一個簡化的SMTP Server。僅僅是根據(jù)基本的SMTP交互協(xié)議實現(xiàn)郵件接收和郵件轉(zhuǎn)儲。不提供郵件轉(zhuǎn)發(fā),也不需要考慮多用戶的郵件并發(fā)連接。該SMTP Server僅僅為單用戶提供專用連接,并按自己的特定格式接收。
因此,該SMTP Server實現(xiàn)的核心是實現(xiàn)最簡單的SMTP鎖步協(xié)議對話機,并從郵件中析取出命令及附件數(shù)據(jù)。在分析標(biāo)準(zhǔn)SMTP協(xié)議后,程序中僅實現(xiàn)符合應(yīng)用需求的最簡潔的SMTP對話機制。Server只是對客戶命令有效的發(fā)出每一個對話的響應(yīng)碼及固定信息,然后接收客戶機的應(yīng)答。在應(yīng)答消息中也僅僅分析應(yīng)答的字符命令是否正確,而不理睬其他信息。在郵件處理過程中,只查找主題并判斷,然后從郵件中判斷出附件的標(biāo)志并從附件開始處接收數(shù)據(jù)然后解碼。
 2.1 SMTP通訊基本流程
為實現(xiàn)設(shè)備的遠(yuǎn)程控制及狀態(tài)響應(yīng),將SMTP軟件的結(jié)構(gòu)模塊化。分為套接字通訊模塊、E-mail編碼模塊、E-mail解析模塊、SMTP/ESMTP協(xié)議模塊、附件解析模塊。其基本結(jié)構(gòu)如圖2。

圖2: 嵌入式SMTP遠(yuǎn)程控制流程
 2.2 套接字通訊模塊
網(wǎng)絡(luò)套接字模塊負(fù)責(zé)與遠(yuǎn)端客戶機、服務(wù)器建立TCP連接,發(fā)送和接收從客戶端發(fā)送的命令和數(shù)據(jù)以及向其他SMTP服務(wù)器端返回郵件數(shù)據(jù)。這些都是基于TCP/IP棧通過Linux操作系統(tǒng)的標(biāo)準(zhǔn)Socket機制來實現(xiàn)的。在網(wǎng)絡(luò)模塊中,為便于升級,考慮到了IPv4到IPv6過渡。在用戶設(shè)置服務(wù)器地址的時候,可以支持IP地址輸入和域名輸入兩種方式,這樣給用戶帶來很大方便。
在該模塊中,提供一個TCP流套接字服務(wù)器。在端口25上綁定套接字,最多可以提供一個連接,支持5個等待。一旦服務(wù)器接受一個連接,該套接字被傳給SMTP/ESMTP協(xié)議模塊,來處理SMTP協(xié)議實現(xiàn)交互。處理完后關(guān)閉套接字,然后可以等待另一個請求。
 2.3 E-mail編碼模塊
在系統(tǒng)中,遠(yuǎn)程設(shè)備需要周期性的將設(shè)備運行狀態(tài)及各參數(shù)發(fā)送給管理者,以及在管理者發(fā)送查詢指令時將查詢的關(guān)鍵值發(fā)送給管理者。這需要設(shè)備能夠根據(jù)運行的參數(shù)構(gòu)造標(biāo)準(zhǔn)結(jié)構(gòu)的E-mail并發(fā)送。
E-mail編碼模塊的功能是:設(shè)備發(fā)送郵件時,將設(shè)備參數(shù)及狀態(tài)轉(zhuǎn)變成標(biāo)準(zhǔn)的適合在Internet上傳輸?shù)泥]件格式。
一個完整的E-mail報文包括包封、報頭和報體。包封是用SMTP命令MAIL FROM和RCPT TO來定義。報頭信息包括:收件人(To:),發(fā)件人(Sender:),抄送者(CC:),發(fā)送日期(Date:),主題(Subject:),MIME版本(Mime-version:)等。在報體中信息包括:內(nèi)容類型(Content-Type:),內(nèi)容傳輸編碼類型(Content-Transfer-Encoding:),邊界定義(Boundary:)及信息內(nèi)容等。郵件信息每行之間都以CR/LF(回車換行符)作為結(jié)尾??梢酝ㄟ^這些郵件頭信息的關(guān)鍵詞,解析出收件人、發(fā)件人、抄送人、發(fā)送日期,MIME版本號等[4]。
報體信息包括郵件的正文和附件。正文開始的標(biāo)記是郵件頭信息結(jié)束后的兩個回車換行符,即兩個CR/LF。郵件結(jié)束的標(biāo)志是.。模塊中提供了對MIME(Multipurpose Internet Mail Extensions)1.0格式郵件的處理。實現(xiàn)了MIME內(nèi)容傳輸編碼,包括:7-bit,8-bit, quoted-printable,Base64編解碼。
 2.4 SMTP/ESMTP協(xié)議模塊
SMTP/ESMTP是一種基于命令/應(yīng)答模式的鎖步協(xié)議。客戶機給出字符串命令,服務(wù)器給出數(shù)字代碼應(yīng)答,實現(xiàn)郵件的鎖步傳輸。
在TCP連接基礎(chǔ)上(端口號25),本模塊實現(xiàn)SMTP/ESMTP協(xié)議的最小命令集。作為客戶發(fā)送郵件時,實現(xiàn)的客戶連接命令包括: ELHO(或者HELO)、AUTH LOGIN、USER、PASS、MAIL FROM、RCPT TO、DATA、RSET、NOOP、QUIT。作為服務(wù)器接收郵件時,響應(yīng)的數(shù)字代碼包括:220(服務(wù)就緒)、221(服務(wù)關(guān)閉)、250(要求的郵件操作完成)、354(開始郵件輸入,以.結(jié)束)、500(命令不識別)[4][5]。
發(fā)送者的用戶名和密碼必須經(jīng)過Base64編碼后,發(fā)送到SMTP/ESMTP服務(wù)器端,認(rèn)證才能成功。實現(xiàn)過程見圖3。

圖3:SMTP/ESMTP協(xié)議模塊基本流程
 2.5 E-mail解析模塊
遠(yuǎn)端設(shè)備在收到郵件指令時,應(yīng)能從郵件中正確析取出指令并做出響應(yīng)。
系統(tǒng)中的E-mail解析模塊通過查找E-mail中的主題來知道命令類型。其在E-mail報體中查找字符串Subject來發(fā)現(xiàn)E-mail的主題,并從中找到規(guī)定類型的命令字頭。如無相應(yīng)主題,返回-1,將郵件丟棄。根據(jù)主題命令字的不同,完成設(shè)備的相關(guān)動作控制或相應(yīng)狀態(tài)的郵件報告。對于數(shù)據(jù)塊的更新,使用附件解析模塊來得到附件中的數(shù)據(jù)。
3. 安全性問題
由于SMTP技術(shù)的開放性和標(biāo)準(zhǔn)性,其開發(fā)的簡單便利也帶來很多缺點。設(shè)備的遠(yuǎn)程控制必須對訪問者有所區(qū)分,否則系統(tǒng)的安全將不可預(yù)料。
特別是,SMTP協(xié)議在發(fā)送郵件信息,甚至是用戶名和密碼的時候采用的是明文發(fā)送。通過常見的抓包工具,就可以輕易獲得正在接收或發(fā)送郵件的用戶的所有信息,包括用戶名和密碼以及郵件信息,這給設(shè)備的正常操控帶來了極大的威脅。即使ESMTP協(xié)議在發(fā)送用戶名和密碼的時候采用的是base64編碼,但其解碼也是輕而易舉,因此其安全性也有限。
對于安全問題,可根據(jù)不同的控制環(huán)境使用不用的策略[6]。
(1) 閉環(huán)網(wǎng)絡(luò)訪問策略:把網(wǎng)絡(luò)訪問范圍局限在 Intranet 范圍內(nèi),通過網(wǎng)內(nèi)任意PC機發(fā)送的郵件命令可以進(jìn)行遠(yuǎn)程監(jiān)視、診斷、遠(yuǎn)程控制和參數(shù)設(shè)置。所有可能的攻擊點全部局限在本網(wǎng)絡(luò)范圍內(nèi)。
(2) 只讀訪問策略:對關(guān)鍵信息和敏感信息,一個重要的安全措施就是將其標(biāo)記為只讀特性,尤其是從Intranet 范圍外的IP 地址來的訪問請求。這樣用戶可以在任意地方查看遠(yuǎn)程設(shè)備的狀況,出現(xiàn)問題可以及時采取措施。
(3) 引入加密機制,如:MD5加密就可以增加安全性。
4. 結(jié)束語
本文介紹了在ARM的硬件平臺上,如何構(gòu)建以嵌入式Linux為基礎(chǔ)利用SMTP協(xié)議來進(jìn)行設(shè)備的遠(yuǎn)程監(jiān)控的實現(xiàn)方法。通過該方法,我們實現(xiàn)了對傳統(tǒng)工控項目的遠(yuǎn)程控制改造升級。在該方案的基礎(chǔ)上,完全可以實現(xiàn)設(shè)備的網(wǎng)絡(luò)化和智能化管理,為現(xiàn)場可編程設(shè)備的在線遠(yuǎn)程監(jiān)控、管理及維護(hù)等功能提供了實現(xiàn)的可能性和技術(shù)上的支持。通過對SMTP協(xié)議的合理利用,使“Action over IP”的思想得以實現(xiàn),從而在遠(yuǎn)處可以對設(shè)備的“行為”進(jìn)行有效的管理和控制。
該文的創(chuàng)新點為:
1、 使用低成本、高可靠的ARM硬件平臺替代價格昂貴的工控機降低了生產(chǎn)運營成本,提高硬質(zhì)合金生產(chǎn)線的安全可靠性。
2、 由于采用SMPT這樣簡單的通訊協(xié)議,降低了工控網(wǎng)絡(luò)管理復(fù)雜性,使硬件與軟件維修都變得方便,易于掌握。
3、 采用加密傳輸通訊確保數(shù)據(jù)安全,ARM平臺采用TCP/IP標(biāo)準(zhǔn)方便與外網(wǎng)通訊,實現(xiàn)企業(yè)數(shù)據(jù)庫共享。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。