《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于TCP/IP協(xié)議的嵌入式網(wǎng)絡(luò)打印服務(wù)器的實現(xiàn)

基于TCP/IP協(xié)議的嵌入式網(wǎng)絡(luò)打印服務(wù)器的實現(xiàn)

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

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


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


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


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


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


1.2.2 TCP/IP協(xié)議解析程序
  TCP/IP協(xié)議簇實際上是許多相關(guān)協(xié)議的組合,分為不同的層次,每一層分別具有不同的通信功能。TCP/IP協(xié)議通常被認為是一個四層的協(xié)議系統(tǒng),包括鏈路層、網(wǎng)絡(luò)層" title="網(wǎng)絡(luò)層">網(wǎng)絡(luò)層、傳輸層和應(yīng)用層[4]。在設(shè)計中,根據(jù)網(wǎng)絡(luò)打印服務(wù)器的具體要求,對TCP協(xié)議進行了適當?shù)牟眉簦瑑H實現(xiàn)了圖4所示的四個協(xié)議:ARP、IP、ICMP、TCP。


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


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


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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99在线热播精品免费99热| 在线视频欧美日韩| 99re66热这里只有精品3直播 | 欧美本精品男人aⅴ天堂| 亚洲精品一区二| 艳女tv在线观看国产一区| 欧美日韩网址| 欧美一区二区精品| 亚洲国产精品一区二区尤物区| 91久久在线| 国产精品美女一区二区| 久久免费高清| 夜夜嗨av一区二区三区中文字幕 | 亚洲美女电影在线| 国产日本欧美一区二区| 麻豆精品网站| 亚洲一区图片| 亚洲福利专区| 在线亚洲精品| 一区二区电影免费在线观看| 99re66热这里只有精品4| 国产欧美日本| 国产性天天综合网| 欧美日韩高清在线观看| 欧美影院午夜播放| 99精品国产在热久久| 亚洲毛片在线| 亚洲网站在线播放| 亚洲国产高清在线观看视频| 亚洲国产精品嫩草影院| 最新中文字幕一区二区三区| 一本色道久久| 一区二区三区免费观看| 亚洲女性裸体视频| 91久久在线视频| 亚洲精品在线视频| 狠狠干狠狠久久| 国产精品第三页| 欧美成人乱码一区二区三区| 欧美一区二区播放| 久久久精品欧美丰满| 亚洲一区二区精品在线观看| 亚洲欧美另类在线观看| 日韩视频在线观看一区二区| 夜色激情一区二区| 欧美一区二区播放| 美女爽到呻吟久久久久| 欧美日韩精品中文字幕| 国产精品美女久久久久久免费 | 亚洲综合欧美日韩| 亚洲精品一区久久久久久| 99国产精品久久久久久久久久 | 亚洲性视频h| 亚洲欧洲日韩综合二区| 一区二区三区导航| 欧美中文字幕在线视频| 亚洲欧美视频| 亚洲国产mv| 亚洲五月六月| 久久综合伊人77777蜜臀| 欧美一区二区三区播放老司机 | 久久久久免费观看| 欧美激情久久久| 久久亚洲欧美| 久久精品视频在线免费观看| 欧美aaa级| 国产精品亚洲综合久久| 国产精品久久久久久久久果冻传媒| 国产欧美在线观看| 最新国产の精品合集bt伙计| 亚洲欧美一区二区三区极速播放 | 性欧美8khd高清极品| 亚洲综合不卡| 蜜臀av国产精品久久久久| 欧美视频一区二区三区四区| 欧美日韩p片| 欧美精品日韩| 欧美国产日韩精品| 国产精品夜色7777狼人| 亚洲精品日韩欧美| 亚洲国产成人午夜在线一区| 午夜精品久久久久| 亚洲欧美一区二区视频| 免费一级欧美片在线观看| 国产精品亚洲аv天堂网| 91久久国产综合久久| 亚洲精品视频在线观看网站| 亚洲欧美自拍偷拍| 香蕉免费一区二区三区在线观看| 亚洲资源av| 日韩一级欧洲| 麻豆精品传媒视频| 国产免费亚洲高清| 国产日韩一区二区三区在线| 亚洲美女毛片| 亚洲青涩在线| 开心色5月久久精品| 国产欧美一级| 亚洲午夜精品一区二区| 这里只有精品在线播放| 亚洲校园激情| 欧美激情第4页| 精品99一区二区| 亚洲国产欧美久久| 欧美一区二区三区在| 亚洲高清视频在线| 欧美中文字幕在线| 国产精品区免费视频| 日韩视频国产视频| 99国产精品视频免费观看| 麻豆久久精品| 黄色av一区| 亚洲大胆人体在线| 日韩一区二区精品| 欧美成在线观看| 亚洲第一视频网站| 一区二区三区精密机械公司| 亚洲精品在线观看视频| 欧美承认网站| 亚洲国产精品一区二区第四页av| 一本色道久久综合亚洲91| 日韩午夜av| 欧美精品一区二区在线观看| 亚洲大片av| 亚洲狼人综合| 欧美剧在线观看| 亚洲毛片网站| 亚洲一区二区不卡免费| 国产精品久久久久久妇女6080| 9l国产精品久久久久麻豆| 亚洲视频一区| 国产精品老牛| 亚洲欧美一级二级三级| 久久精品一区蜜桃臀影院 | 亚洲激情网站免费观看| 一本色道久久综合亚洲91 | 亚洲女人天堂成人av在线| 国产精品久久久久久亚洲调教 | 性欧美超级视频| 久久久精品tv| 一区二区在线视频| 亚洲美女精品一区| 欧美日韩中文字幕| 亚洲免费在线观看| 久久久777| 亚洲欧洲综合| 亚洲午夜久久久久久久久电影网| 国产精品欧美一区喷水| 久久精品国产999大香线蕉| 亚洲午夜精品视频| 国产精品毛片| 性做久久久久久久免费看| 久久在线视频| 亚洲精品日韩在线| 亚洲欧美日韩综合aⅴ视频| 国产欧美日韩精品专区| 亚洲国产精品久久91精品| 欧美日韩1区2区3区| 一区二区三区欧美在线| 久久黄色小说| 国产精品久久久久9999吃药| 亚洲欧美日韩天堂| 免费成人激情视频| 99在线热播精品免费| 久久精品国产欧美激情| 91久久精品一区| 午夜日韩电影| 亚洲高清自拍| 西瓜成人精品人成网站| 一区在线视频观看| 亚洲一区二区三区高清不卡| 国产最新精品精品你懂的| 午夜在线视频观看日韩17c| 老鸭窝毛片一区二区三区 | 亚洲午夜精品福利| 美国成人毛片| 亚洲一区二区三区四区视频| 久久综合狠狠| 亚洲午夜激情| 欧美成人一区二区在线| 亚洲在线观看视频| 欧美大片在线观看一区二区| 亚洲一区二区视频在线| 欧美成人精品激情在线观看 | 欧美一区三区三区高中清蜜桃| 欧美日本一道本在线视频| 欧美在线视频播放| 欧美午夜不卡在线观看免费| 亚洲国产va精品久久久不卡综合| 国产精品swag| 日韩一二在线观看| 久久亚洲私人国产精品va| 中日韩男男gay无套| 鲁大师影院一区二区三区| 亚洲无亚洲人成网站77777 | 久久一综合视频| 亚洲一级二级| 欧美剧在线观看| 亚洲国产日韩欧美在线动漫| 国产女人水真多18毛片18精品视频|