《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于TCP/IP協議的嵌入式網絡打印服務器的實現

基于TCP/IP協議的嵌入式網絡打印服務器的實現

2008-09-10
作者:王國明1, 吳保奎1,2, 欒

  摘 要: 運用嵌入式 Internet技術,設計了一個基于TCP/IP" title="TCP/IP">TCP/IP協議的嵌入式" title="的嵌入式">的嵌入式網絡打印" title="網絡打印">網絡打印服務器,給出了系統中TCP/IP協議的剪裁方案,分析了系統軟硬件的設計思路,最后通過測試程序驗證了其可行性。
  關鍵詞: 嵌入式 以太網 TCP/IP協議 網絡打印


  隨著信息技術的發展和網絡時代的到來,基于TCP/IP協議的嵌入式 Internet技術越來越受到人們的關注。目前,大多數嵌入式設備仍處于孤立應用階段[1],為了實現多個MCU 之間的信息共享和交流,通常利用CAN、RS232 和RS485等總線組網。但是這些網絡的有效半徑較短,并且孤立于Internet 網絡以外,如果能把嵌入式設備直接接入Internet,就可以用方便、低廉的方式實現信息的共享。因此,研究和應用嵌入式 Internet技術具有非常重要的意義。
  傳統的網絡打印有兩種方法:一種是采用“網絡共享方式”,另一種是使用專用網絡打印機。專用網絡打印機成本很高,普通用戶難以承受。若采用“網絡共享方式”打印,網內必須有一臺計算機來充當打印服務器,若這臺計算機出現故障或關機,網內的其它計算機就無法打印,使用起來很不方便。嵌入式網絡打印服務器解決了這個問題,使普通打印機不再是依附于主機的一個外設,而成為網絡中一個獨立的設備,使用起來更加靈活方便。本文在研究嵌入式 Internet技術的基礎上,設計了基于TCP/IP協議的嵌入式網絡打印服務器,普通打印機通過此嵌入式打印服務器可直接接在Hub上,升級為一臺“網絡打印機”。客戶端可在局域網內實現網絡打印,遠端客戶可通過網關實現遠程打印。其具體結構如圖1所示。


1 系統總體結構
1.1 硬件電路
  嵌入式打印服務器的硬件電路如圖2所示。該電路主要包括以下四部分:①微處理器;②以太網控制器;③打印機接口電路;④串口通訊" title="串口通訊">串口通訊電路。


  嵌入式打印服務器需要處理復雜的TCP/IP協議和以太網驅動程序,程序代碼較長,但系統要求快速地處理以太網幀,順利完成數據收發任務。基于以上考慮,微處理器采用臺灣Winbond公司的W77E58,此芯片內核與51系列兼容,內含32K FLASH ROM,指令的執行速度很快,是普通51系列單片機的3~4倍,時鐘頻率最高可設置為40MHz。此芯片內含三個16位的定時/計數器,兩個全雙工串行口,一個軟件可編程的看門狗定時器。采用軟件看門狗技術,可用來提高本系統的抗干擾能力,防止程序跑飛。
  網卡接口芯片采用性價比較高的全雙工的RTL8019AS。此芯片為10M ISA以太網控制器芯片,為100個引腳PQFP封裝,內部集成有16MB SRAM,與NE2000兼容,16位數據總線,可配置為8位DMA方式進行數據傳輸,與8位單片機接口方便[2]
  另外,系統還擴展一片62256 RAM和一片24C02 E2PROM。RAM的作用有兩個:一是用來緩存從網卡芯片接收下來的數據幀,二是用作打印數據的緩沖和串口通訊數據的緩沖,以提高數據的吞吐率。24C02為串行E2PROM,其容量為2KB,可通過I2C總線與單片機通信,其接口非常簡單,只需要通過SCL和SDA兩條線與單片機相連即可。其作用是用來存儲上位機通過RS232串口下載下來的一些重要參數,如主機的IP地址、子網掩碼、網關IP地址等。這里采用MAX232作為RS232的電平轉換芯片,完成TTL電平到RS232電平的轉換,實現上位PC機與單片機之間的通訊。
1.2 軟件設計
  軟硬件開發工具分別選用Keil C51編譯器和偉福6000仿真器。程序主要包括以下四部分:①以太網驅動程序;②TCP/IP協議解析程序;③打印機接口程序;④串口通訊中斷服務程序。圖3為主程序流程圖。


1.2.1以太網驅動程序
  首先對RTL8019AS進行復位操作。復位操作有兩種方法:冷復位和熱復位。
  (1)冷復位
  將W77E58的T0引腳接RTL8019AS的復位端RSTDRV進行復位操作,高電平有效。復位過程將執行一些基本操作,至少需要1μs的時間,推薦等待更久的時間如100ms之后才對它操作,以確保芯片完全復位。
  (2)熱復位
  直接將RTL8019AS的復位端RSTDRV與單片機的RESET引腳相連,單片機復位的時候,RTL8019AS也復位。RTL8019AS中地址為18H~1FH的寄存器端口均為復位端口。對以上端口偶數地址讀或者寫入任何數,都會使網卡芯片復位。
  復位以后對RTL8019AS芯片中某些寄存器進行配置,確定其工作方式。配置好后,就可以開始接收或發送數據了。
  接收數據包時,采用查詢方式將查詢程序放在一個大循環中,反復查詢是否有新數據包到達,若有則接收下來。編程時應該特別注意的是:RTL8019AS接收到的數據包的幀格式與以太網幀格式并不一致[3],RTL8019AS自動填加了接收狀態、下一頁指針、以太網幀長度三個字段(四個字節),其結構如表1所示。所以編程時需要按照此格式才能正確地接收數據。


1.2.2 TCP/IP協議解析程序
  TCP/IP協議簇實際上是許多相關協議的組合,分為不同的層次,每一層分別具有不同的通信功能。TCP/IP協議通常被認為是一個四層的協議系統,包括鏈路層、網絡層" title="網絡層">網絡層、傳輸層和應用層[4]。在設計中,根據網絡打印服務器的具體要求,對TCP協議進行了適當的裁剪,僅實現了圖4所示的四個協議:ARP、IP、ICMP、TCP。


  (1)鏈路層協議
  以太網上數據包的傳輸是采用網絡的MAC 地址來進行識別的,這就要求系統能夠實現IP地址到MAC地址的轉換,即ARP(地址解析)協議。
  (2)網絡層協議
  網絡層主要負責按網絡標準形式封裝數據包,然后進行IP路由選擇。網絡層協議包括IP(網際協議)、ICMP(控制報文協議)和IGMP( 組管理協議)。IP協議使網絡之間的通信成為可能,如果嵌入式Internet 需要跨越不同的網絡進行通信,就必須實現IP 協議,所以IP 協議需要完整實現。IP 包最大為65K,可以分段傳輸,但在嵌入式系統中根本無法容納如此大的數據包,因此不支持分段傳輸。單片機一般采用發送小數據包的方式,以避免分段傳輸。
  ICMP 協議主要用來傳遞差錯報文以及其它需要注意的信息。ICMP中規定了多種協議類型和代碼,如果完全實現要浪費不少的系統資源,對于普通的嵌入式Internet 應用而言,能夠測試網絡的連通情況即可,因此只需實現ICMP 中類型號為0、代碼為0 的Ping應答協議即可。
  (3)傳輸層協議
  傳輸層主要為兩臺主機上的應用程序提供端到端的通信。傳輸層有兩種不同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據包協議)。TCP是一種面向連接的協議,它能提供高可靠性服務。通過使用序列號和確認信息,TCP協議能夠向發送方提供到達接收方的數據包的傳送信息。UDP協議沒有保證可靠性的機制,其數據傳輸率高,可以實現全速發送數據包,但是容易丟包、失序。這里因為是打印服務,對數據的可靠性要求很高,所以必須采用TCP協議。
1.2.3 打印機接口程序
  打印機接口有SPP、EPP和ECP三種標準[5],其中EPP和ECP的數據傳輸速度較快。SPP為標準的并行接口標準,目前任何打印機都支持此接口標準,考慮到兼容性的問題,這里采用了SPP接口標準。此接口程序比較簡單,編程時可以采用查詢方式不斷檢測打印機的工作狀態(BUSY信號),若不忙則輸出數據,發出數據選通脈沖(STROBE),通知打印機取數據打印。
1.2.4 串口通訊程序
  串口通訊程序主要用來完成程序的調試以及嵌入式打印服務器的IP地址、網關和子網掩碼等參數的修改。圖5為嵌入式系統參數設置界面。


2 測試結果
  在此使用VB6.0編寫相應的測試程序。實驗證明,此測試程序可以動態地修改嵌入式打印服務器的IP地址等參數,能夠順利PING通,往返時間小于10ms,可以完成數據的打印任務。
  為了程序調試方便,還編寫了串口通訊程序,測試結果和數據可通過串口顯示出來,也可以將輸出數據保存到硬盤中仔細分析研究。圖6為使用串口通訊程序截獲的打印輸出數據。
  為了進一步研究,使用EtherDetect Packet Sinffer軟件截獲了打印過程中通過網絡傳輸的TCP數據,如圖7所示。其中的52 54 4c 30 2e 2f為嵌入式打印服務器的MAC地址,192.137.8.178為其IP地址。


  本文介紹了嵌入式網絡打印服務器的設計與實現,分析了其硬件結構和軟件設計方法。網絡打印服務器只是嵌入式以太網技術的一個具體應用,實際上嵌入式以太網技術還可以在遠程控制、數據采集、視頻監控等諸多領域大顯身手,其應用前景相當廣泛。當然,以太網技術也存在一些缺陷,例如其數據包的傳輸時延不定、受網絡性能的影響較大等,現階段還很難應用到實時控制領域,這些問題需要在以后的研究中重點解決。
參考文獻
1韓光潔, 趙 海. Embedded Internet 技術及其綜述[J]. 小型微型計算機系統, 2004(5)
2曹 宇,魏 豐. 用51單片機控制RTL8019AS實現以太網通訊[J]. 計算機應用, 2003(1)
3陳建恩,王立人. 溫室數據采集系統遠程通信接口設計研究[J]. 農業工程學報,2003(4)
4 W Richard Stevens著,范建華譯. Tcp Illustrated [M].北京:機械工業出版社,2000
5 Jan Axelson著,精英科技譯. 并行端口大全[M]. 北京:中國電力出版社,2001

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 91亚洲精品自在在线观看 | 久久久国产精品免费 | 综合在线播放 | 日韩欧美色综合 | 亚洲成人动漫在线观看 | 野花的视频在线观看免费高清 | 毛片免费在线视频 | 婷婷久久综合九色综合绿巨人 | 一二三四视频社区在线播放中国 | 狠狠色噜噜狠狠狠狠97不卡 | 丝袜国产在线 | 中文字幕网站在线观看 | 中文字幕一区在线播放 | www.男插女b免费视频 | 黄网址在线 | 亚洲精品网站在线观看不卡无广告 | 欧美干色 | 国产精品成人麻豆专区 | 国产成人精品magnet | 国产精品秒播无毒不卡 | 亚洲欧美94色| a大片大片网y | 欧美成人一级视频 | 特黄一级黄色片 | 欧美一级高清免费播放 | 最近播放的好看hd | 国产在线欧美日韩一区二区 | 国产无圣光高清一区二区 | 小明看片成人永久在线观看 | 最新欧美精品一区二区三区不卡 | 人人人人爽 | 美女很黄很黄的网站 | 日本欧美中文 | 欧美日韩不卡在线 | 午夜怡红院 | 亚洲欧美精品网站在线观看 | 精品亚洲欧美高清不卡高清 | 偷偷要色偷偷 | 欧美双茎同入视频在线观看 | 欧美视频一级 | 成人免费黄网站 |