隨著因特網(wǎng)和通信產(chǎn)業(yè)的迅猛發(fā)展, 人們的生活、工作、思維方式都發(fā)生了巨大變化。 嵌入式系統(tǒng)給信息社會帶來了新的生機, 而嵌入式Internet 技術的出現(xiàn)和發(fā)展無疑給這種趨勢起到了推波助瀾的作用。
目前, 隨著互聯(lián)網(wǎng)技術應用的日益廣泛, 網(wǎng)絡傳輸已經(jīng)成為一種最為經(jīng)濟有效的數(shù)據(jù)傳輸方式,越來越多的設備需要配置網(wǎng)絡接入功能, 以實現(xiàn)對系統(tǒng)的遠程監(jiān)測和數(shù)據(jù)集中處理。
本文提出了一種嵌入式Web 系統(tǒng)方案, 利用基于TCP/IP 協(xié)議的串口/以太網(wǎng)數(shù)據(jù)轉換技術實現(xiàn)串口設備數(shù)據(jù)的網(wǎng)絡化傳輸, 監(jiān)測數(shù)據(jù)存儲在非易失性存儲器中, 并及時發(fā)布到互聯(lián)網(wǎng)上更新監(jiān)測網(wǎng)頁。 用戶可以通過Internet 訪問系統(tǒng)Web 服務器遠程獲取所需信息, 實現(xiàn)有效的遠程監(jiān)控和信息處理。
1 串口以太網(wǎng)數(shù)據(jù)的轉換
近年來, 互聯(lián)網(wǎng)以其高速便捷傳輸數(shù)據(jù)的特點越來越受到人們的青睞。 而在工控和通信設備中, 更多的卻是符合RS-232/485 標準的串行口設備。 與基于RS-232/485 標準的串行通信相比, TCP/IP 網(wǎng)絡具有帶寬、高速、遠距離及通信業(yè)務廣泛的優(yōu)點, 而且連網(wǎng)通信距離可以無限延長, 并且相對RS 標準的通信抗干擾能力差, 信息傳輸容易出錯, 網(wǎng)絡是基于復雜環(huán)境設計的, 具有自動糾錯功能, 通信質量穩(wěn)定不易受外界干擾。 因此, 將串口數(shù)據(jù)通過網(wǎng)絡傳輸成為串口設備網(wǎng)絡化進程的研發(fā)熱點。

圖1 串口以太網(wǎng)轉換器
串口以太網(wǎng)轉換器(如圖1 所示)的出現(xiàn)使得基于TCP/IP 的串口數(shù)據(jù)流傳輸成為可能, 它可以連接多個串口設備并將串口數(shù)據(jù)流進行選擇和處理, 把現(xiàn)有的RS 標準接口數(shù)據(jù)轉化成IP 端口數(shù)據(jù), 然后IP 化管理, IP 化存取, 這樣就能將傳統(tǒng)的串行數(shù)據(jù)送上流行的網(wǎng)絡通道, 無需過早淘汰現(xiàn)有串口設備, 提高設備利用率。 各種轉換器完成的是一個面向RS 標準的鏈接和無連接的以太網(wǎng)通信數(shù)據(jù)存儲控制器, 對各種來自串口設備的數(shù)據(jù)流進行格式轉換使之成為可以在以太網(wǎng)中傳播的數(shù)據(jù)幀并對來至以太網(wǎng)的數(shù)據(jù)幀進行判斷轉換成串行數(shù)據(jù)送達相應的串口設備。 這包括三個關鍵技術:
① TCP / IP 協(xié)議的工作模式: 串行轉以太網(wǎng), 不是簡單的物理層和數(shù)據(jù)鏈路層的轉換, 而是串口的數(shù)據(jù)作為TCP/IP 的應用層數(shù)據(jù), 用TCP/IP 封裝傳輸?shù)姆绞健?如用戶通過socket 的recv()和send()函數(shù)接收和發(fā)送的實際是應用層數(shù)據(jù)。 但是TCP/IP 并不只是recv()和send()這么簡單, 根據(jù)工作模式的不同, 它關系到連接、監(jiān)聽、關閉等, 這是串口轉網(wǎng)口后需要增加處理的部分。 TCP/IP 的工作模式可以分為: TCP 服務端模式(TCP Server)、TCP 客戶端模式(TCP Client)、UDP 模式。 UDP 模式: UDP 模式是基于非連接的模式,只要有數(shù)據(jù)發(fā)送即可發(fā)送, 不需要事先連接。 TCP 模式: TCP 模式采用數(shù)據(jù)可靠傳輸機制, 所以可以保證數(shù)據(jù)基本不誤碼、不丟失。
② 串口分幀技術: 串口數(shù)據(jù)是可以連續(xù)不斷發(fā)送的, 而以太網(wǎng)數(shù)據(jù)則是以數(shù)據(jù)包為單位發(fā)送的。 這樣就關系到將多長的串口數(shù)據(jù)打包后作為一個以太網(wǎng)數(shù)據(jù)包發(fā)送的問題。 目前主要采用數(shù)據(jù)包長度或數(shù)據(jù)包間隔兩種方式。
③ 9 位技術: 以太網(wǎng)數(shù)據(jù)是以字節(jié)Byte 計算的每個字節(jié)都是8 位, 但是串口數(shù)據(jù)則有可能出現(xiàn)9 位, 第9 位常常用于區(qū)分是地址幀還是數(shù)據(jù)幀, 1 表示地址幀0 表示數(shù)據(jù)幀。 那么在當串口轉化為以太網(wǎng)之后, 如何將第9 位也傳送出去就成了一個關鍵技術。 在眾多的串口轉網(wǎng)口方案中都是將第9 位直接舍棄的, 目前據(jù)了解上海卓嵐信息科技的方案具有快速地適應9 位的功能, 其實現(xiàn)方法中采用了稱之為RealCom 的協(xié)議。
由于增加了第9 位, 所以串口數(shù)據(jù)不能夠直接透明地轉化為TCP/IP 應用層數(shù)據(jù), realcom 協(xié)議將串口數(shù)據(jù)打包之后整個作為TCP/IP 的應用數(shù)據(jù)傳輸。 這樣可以在realcom協(xié)議的協(xié)議頭部加入該數(shù)據(jù)包的第9 位是1還是0 的信息, 從而實現(xiàn)了9 位傳輸技術。
2 嵌入式Web系統(tǒng)設計
2.1 系統(tǒng)基本工作原理
要將嵌入式接入以太網(wǎng)達到通過網(wǎng)絡進行數(shù)據(jù)傳輸?shù)囊螅?首先要正確設置RTL8019AS 的工作方式和狀態(tài), 通過對相應地址和數(shù)據(jù)端口的讀寫操作完成以太網(wǎng)幀的接受和發(fā)送。 RTL8019AS 內(nèi)部具有遠程DMA 接口、本地DMA 接口、MAC 邏輯、數(shù)據(jù)編碼解碼邏輯和其他端口。 遠程DMA 接口是MCU 對網(wǎng)卡內(nèi)部RAM 進行讀寫操作的總線, 本地DMA 接口是RTL8019AS 與網(wǎng)線的連接通道, 完成控制器與網(wǎng)線的數(shù)據(jù)交換。
MAC 主要完成下面兩功能: (1)當MCU 向網(wǎng)上發(fā)送數(shù)據(jù)時, 先將一幀通過遠程DMA 通道送到網(wǎng)卡的發(fā)送緩沖區(qū), 然后發(fā)送傳送命令, 待網(wǎng)卡發(fā)送完上一幀數(shù)據(jù)后, 在開始發(fā)送當前幀。 (2)網(wǎng)卡接收到的數(shù)據(jù)通過MAC 比較和CRC 校驗后, 由FIFO 存到接收緩沖區(qū)。 收滿一幀后, 以中斷方式通知主處理器。 當RTL8019AS 相關參數(shù)設置完畢后, 系統(tǒng)進入正常工作狀態(tài), 執(zhí)行與Internet 連接相關功能。
2.2 硬件設計
系統(tǒng)有兩部分構成: 嵌入式Web 服務器和串口終端設備, 如圖2 所示。

圖2 系統(tǒng)結構
嵌入式Web 是系統(tǒng)的核心, 采用B/S 機制。 對外直接連接Internet, 對內(nèi)連接串口終端, 并提供Web服務和用戶交互。 用戶可通過網(wǎng)頁形式向服務器發(fā)送指令。 系統(tǒng)接收到信息后進行協(xié)議分析轉換, 并向相應的串口終端發(fā)送控制命令。 串口終端執(zhí)行完相關操作后, 將執(zhí)行結果通過Web 服務器以網(wǎng)頁形式反饋給用戶。
嵌入式Web 服務器主要構成有: 微控制芯片(S3C44B0X), 以太網(wǎng)控制芯片(RTL8019AS), 多串口協(xié)議處理器, 外擴Flash ROM芯片等。 外擴ROM用于存放IP 地址, 網(wǎng)卡物理地址和其他相關參數(shù), 同時還可以保存程序和網(wǎng)頁數(shù)據(jù)。
2.2.1 微控制器(MCU)
微控制器采用Samsung 公司的16/32 位的RISC結構的s3c44b0x 芯片。 該芯片是一款高性能低成本的微處理器, 內(nèi)部集成了豐富的片內(nèi)外設, 包括: 8K 的cache, 可選的SRAM 控制器, 帶有握手信號的雙通道UART 和RTL時鐘。 S3C44B0X極低的功耗和簡單的全靜態(tài)設計使其非常適合低成本和對功耗敏感的項目。
2.2.2 網(wǎng)絡連接
網(wǎng)絡控制器采用Realtek 公司的網(wǎng)絡接口芯片RTL8019AS 進行網(wǎng)絡連接, 通過RJ45 接入局域網(wǎng), 在經(jīng)局域網(wǎng)聯(lián)入Internet. 44B0X 具有高達66MHZ 的主頻處理能力, 利用一個8 位I/O 作為系統(tǒng)數(shù)據(jù)總線直接連接RTL8019AS, 實現(xiàn)對網(wǎng)絡數(shù)據(jù)的快速封裝、編碼與發(fā)送。 RTL8019AS 通信以單字節(jié)方式, 采用8 位數(shù)據(jù)總線與MCU 進行數(shù)據(jù)交換。
2.2.3 串口控制模塊
44B0X 本身帶有2 個UART 串行接口可以模擬多串口之間的通信, 但與傳統(tǒng)單級數(shù)據(jù)采集系統(tǒng)不同,本系統(tǒng)串口模塊可接較多串口設備, 實現(xiàn)多種協(xié)議串口設備的掛接, 同時要求各設備同時工作, 但移植的uClinux 是一個桌面系統(tǒng), 其串口I/O 適應能力較弱,多串口I/O 通信會占據(jù)系統(tǒng)很大開銷, 為使主控制器從繁重的I/O 事務中解脫出來, 同時使串口設備能夠靈活的與主控制器進行通信, 引入了嵌入式串口協(xié)議處理器的本串口模塊, 如圖3 所示。 其主要負責多個串口設備的數(shù)據(jù)采集和控制, 完成對串口數(shù)據(jù)流的電平轉換和數(shù)據(jù)格式處理, 判斷串行數(shù)據(jù)的起始位及停止位, 完成對數(shù)據(jù)和校驗位的提取, 在電路設計上采用MAX232/485 芯片實現(xiàn)對相應電平的轉換。

圖3 MCU 與串口模塊的連接。
主處理器S3C44B0X 的兩路UART 接口, 通過MAX232 擴展為兩路串行口, 分別為COMA 和COMB.

圖4 多串口擴展硬件結構圖
多串口通信電路采用1 片帶有收發(fā)各64 Byte 的FIFO 的擴展通用異步收發(fā)器ST16C654 擴展出4 路RS232 和RS485 通信串口COMC, COMD, COME 和COMF, 其中COMD 和COME 未在圖中表示, 其結構與COMC 和COMF 相同。 ST16C654 與S3C44B0X 之間接口如圖4 所示, 地址線選擇要進行讀寫的寄存器;數(shù)據(jù)線進行數(shù)據(jù)、命令和狀態(tài)的讀寫; 中斷信號線為4路UART 的中斷信號, 直接與MCU 的中斷引腳相連,作為接收和發(fā)送的中斷信號。 擴展的4 路串口通道,每個通道有15 個或16 個內(nèi)部寄存器, 用來存放收發(fā)數(shù)據(jù)以及配置該串口的工作模式, 需要在初始化時對各寄存器進行配置, 工作模式有中斷模式和定時查詢模式, 中斷模式實時性能好, 適于緊急情況, 定時查詢方式具備一般實時性, 數(shù)據(jù)不丟失。 本文采用中斷和并行方式通信, 提高通信速度; 發(fā)送、接收和控制信號通過光耦器和5V DC/DC 隔離電源模塊完全隔離,防止外部信號對CPU 等核心電路的干擾, 4 路串口分別通過短路塊實現(xiàn)RS232 和RS485 通信方式的切換。
2.3 軟件設計
2.3.1 系統(tǒng)流程
為了實現(xiàn)用戶通過Internet 遠程訪問Web, 本系統(tǒng)在TCP/IP 協(xié)議基礎上采用B/S 通信模式進行網(wǎng)絡通信編程。整個服務器主程序框圖如圖5 所示。

圖5 Web 服務器的主程序框圖。
系統(tǒng)初始化后首先設置MCU 內(nèi)部定時器工作方式, 輪詢查找串口模塊是否有數(shù)據(jù)需要接受, 再設置RTL8019AS 芯片參數(shù)連接Internet 網(wǎng), 初始化成功后系統(tǒng)會獲得一個IP 地址, 用戶可以通過該地址實現(xiàn)遠端控制。 同時為了保證網(wǎng)絡正常工作, 系統(tǒng)需要監(jiān)聽網(wǎng)絡狀態(tài), 對從RTL8019AS 接受的數(shù)據(jù)幀進行解包分析, 根據(jù)分析結果分別進入ARP, ICMP, TCP, UDP 和HTTP 處理子程序, 將串口數(shù)據(jù)發(fā)往以太網(wǎng), 使采用TCP/IP 協(xié)議的以太網(wǎng)內(nèi)所有計算機都能收到此數(shù)據(jù)。
2.3.2 uClinux 和boa 服務器的移植
uClinux 是基于linux 內(nèi)核的一種開源操作系統(tǒng),不同的是它可以滿足沒有內(nèi)存管理單元(MMU)的微處理器的需要, 并且具有良好的可移植性, 由于采用模塊化內(nèi)核設計, 許多功能可以獨立加上或卸下, 以達到節(jié)省資源實現(xiàn)所需的目的。 對于不同的處理器和開發(fā)板, uClinux 的移植[5]可分為3 個層次:
架構級: 目前uClinux 能支持較多的體系結構,但如果要移植的處理器不在uClinux 支持的處理器體系之內(nèi), 則需要添加或修改linux/arch 目錄下相關處理器架構的文件, 包括中斷處理、內(nèi)存映射的維護、任務上下文切換和初始化過程等。
平臺級: 對于uClinux 已支持體系的分支處理器,則需要在相關體系結構目錄下建立相應目錄并參照同一架構其他系列的處理器編寫相應代碼。
板級: 對于uClinux 支持的處理器, 只需要板級移植了。 針對不同的開發(fā)板硬件資源完成驅動程序編寫和環(huán)境變量設置等內(nèi)容。
本文采用的 uClinux2.4.x 版本并不支持S3C44B0X 處理器, 參照其對同一ARM 架構下S3C4510 處理器的支持, 對內(nèi)核進行改寫使其支持S3C44B0X 處理器, 移植過程中通過配置相應模塊和修改源代碼[6]實現(xiàn)了對串口和網(wǎng)絡的支持。 另外, 本文還同時移植了引導加載程序(uboot1.1.4)和uClinux的根文件系統(tǒng)ROMFS.
Boa 是基于GNU/Linux 平臺的嵌入式Web 服務器[7], 速度和安全是它的最大特點。 Boa 源碼開放、性能優(yōu)秀、支持CGI, 特別適合應用在嵌入式系統(tǒng)中。
Boa 的移植有兩種方式:
① 針對ARM9 平臺網(wǎng)上下載BOA 源碼, 編譯成bin 文件后, 把二進制代碼放進根文件系統(tǒng)里, 再配置boa.conf 既可。
② 針對uClinux 在編譯內(nèi)核時, 定制用戶程序, 選中BOA, 然后編譯內(nèi)核下到開發(fā)板中, ARM7 一般采用此方法。
為了便于Boa 服務器的調試修改二次編譯, 本文直接將uClinux 源代碼下的boa 文件夾拷貝出來, 采用類似ARM9 的編譯方式。 然后通過移植CGI205 庫以實現(xiàn)應用程序與Web 服務器的交互, 從而實現(xiàn)客戶端對服務器端的操作。 簡單來說, CGI 程序的工作過程[8]
包含以下步驟(如圖6 所示):
① 客戶端通過瀏覽器把請求發(fā)送到web 服務器;② Web 服務器接收請求后, 將請求信息發(fā)送給指定的CGI 程序;③ CGI 程序對客戶端的請求進行處理, 并把處理結果傳送給web 服務器;④ Web 服務器把CGI 程序的處理結果返回給客戶端瀏覽器。

圖6 CGI 技術工作流程
2.3.3 串口模塊
串口終端的運行需要對44B0X 微處理器編程, 主要完成串口模塊的數(shù)據(jù)交換, 處理系統(tǒng)發(fā)來的指令,返回操作結果等功能。
3 結語
當今時代, 在計算機進行網(wǎng)絡互連的同時, 各種家電設備, 通信設備以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集控制設備也在逐步網(wǎng)絡化。 本文結合當前串口設備網(wǎng)絡化的熱潮, 提出了一種嵌入式Web 系統(tǒng)方案, 實現(xiàn)了嵌入式系統(tǒng)網(wǎng)絡接入、信息處理、web 服務等功能。 系統(tǒng)具有以下特點:
① 運用web 機制, 用戶可以通過Internet 瀏覽訪問控制頁面, 不在需要專門的軟件, 使系統(tǒng)的訪問和操作更加便捷。 采用MCU 片內(nèi)可編程技術, 使系統(tǒng)功能可調, 具有良好的可擴展性, 可應用于不同場合。
② 將串口設備實現(xiàn)網(wǎng)絡化的傳輸, 避免在網(wǎng)絡化趨勢下串口設備過早被淘汰, 實現(xiàn)了產(chǎn)品升級, 節(jié)約成本。
嵌入式Web 系統(tǒng)實現(xiàn)互聯(lián)網(wǎng)接入, 可以方便的將終端設備所采集的各種數(shù)據(jù)通過網(wǎng)絡快速傳遞給上位機, 控制終端用戶可以隨時訪問Web 服務器提供的最新網(wǎng)頁, 實現(xiàn)快速便捷的信息交互, 以瀏覽器為載體的Web 技術與嵌入式終端的結合, 必將推動嵌入式終端系統(tǒng)的廣泛應用。 本系統(tǒng)的設計可以適用于遠程工業(yè)監(jiān)控, 環(huán)境溫濕度自動監(jiān)測, 大壩水位的實時觀測等, 為遠程監(jiān)控和數(shù)據(jù)集中處理提供了一種新的選擇。
-
嵌入式
+關注
關注
5198文章
20442瀏覽量
333980 -
監(jiān)控
+關注
關注
6文章
2380瀏覽量
59419 -
服務器
+關注
關注
14文章
10251瀏覽量
91480
發(fā)布評論請先 登錄
采用嵌入式處理器PXA270與ARM-Linux相結合的Web服務器構建
在uIP協(xié)議棧實現(xiàn)基于AJAX和CGI的動態(tài)Web服務器
采用GR47和MCU實現(xiàn)無線嵌入式Web Server
怎么實現(xiàn)基于嵌入式WEB的視頻服務器的設計?
基于ARM和Linux的嵌入式Web服務器的構建及應用
如何實現(xiàn)嵌入式Web服務器的設計?
嵌入式Web服務器的設計與實現(xiàn)
CAN 總線的嵌入式Web 服務器設計
嵌入式遠程監(jiān)控系統(tǒng)的設計與實現(xiàn)
嵌入式WEB服務器中TCP/IP協(xié)議棧的設計與實現(xiàn)
基于嵌入式Web的遠程監(jiān)控系統(tǒng)設計
基于嵌入式web服務器的UPS監(jiān)測系統(tǒng)
嵌入式web服務器系統(tǒng)設計,嵌入式Web服務器的設計與實現(xiàn)
嵌入式web服務器系統(tǒng),嵌入式Web服務器的設計與實現(xiàn)
基于TCP/IP協(xié)議的嵌入式Web服務器系統(tǒng)實現(xiàn)遠程監(jiān)控和信息處理
評論