1 引言
隨著Internet技術(shù)的日益普及,,信息共享的程度不斷提高。據(jù)網(wǎng)絡(luò)專家預(yù)測,,將來在互聯(lián)網(wǎng)上傳輸?shù)男畔⒅校?0%左右是來自小型嵌入式設(shè)備,,互聯(lián)網(wǎng)應(yīng)用正在轉(zhuǎn)到以嵌入式設(shè)備為中心。由于在工業(yè)測控系統(tǒng),、智能儀器,、智能家電等領(lǐng)域應(yīng)用的許多嵌入式設(shè)備,它們的對外通訊接口仍然是易用性強(qiáng),、可靠性高的串口,,因此如何將工業(yè)中已經(jīng)大量應(yīng)用的帶有串口的嵌入式設(shè)備接入網(wǎng)絡(luò),就成了一項(xiàng)重要而迫切的課題,。
本文就是在這種應(yīng)用現(xiàn)狀背景下,,以IP2022網(wǎng)絡(luò)處理器為核心,設(shè)計(jì)實(shí)現(xiàn)了帶有RS-485串口的嵌入式設(shè)備與以太網(wǎng)的互聯(lián)系統(tǒng),。系統(tǒng)實(shí)現(xiàn)了通用異步收發(fā)機(jī)(UART),、以太網(wǎng)驅(qū)動(dòng)器外設(shè)和TCP/IP網(wǎng)絡(luò)協(xié)議棧功能,為嵌入式設(shè)備接入以太網(wǎng)提供了一個(gè)軟硬件平臺(tái),。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 IP2022簡介
IP2022是美國Ubicom公司推出的一顆功能強(qiáng)大的網(wǎng)絡(luò)通信處理器,,在4.8MHz晶振驅(qū)動(dòng)下,利用其內(nèi)部的鎖相環(huán)(PLL)電路,,CPU工作頻率可達(dá)到120MHz,,并且大多數(shù)指令均為單周期執(zhí)行,其吞吐量能滿足各種新型網(wǎng)絡(luò)連通應(yīng)用的要求,。IP2022的內(nèi)部結(jié)構(gòu)如圖1所示。
IP2022內(nèi)含全雙工串化器/解串器(Ser/Des),,能直接與各種常用網(wǎng)絡(luò)接口連接,,可實(shí)現(xiàn)片內(nèi)10Base-T以太網(wǎng)(MAC和PHY)、 UART以及其它各種快速串行協(xié)議,。IP2022以軟件模塊(ip Modules)形式實(shí)現(xiàn)外設(shè)通信和控制功能,,比傳統(tǒng)硬件具有更大的系統(tǒng)設(shè)計(jì)靈活性。IP2022還提供有TCP/IP網(wǎng)絡(luò)協(xié)議棧,,并具有一系列完整的端到端連通方案所必須的附加軟件,。IP2022由于其內(nèi)含兩個(gè)Ser/Des部件,能方便的從一種格式轉(zhuǎn)換為另一種格式,,所以也能做協(xié)議轉(zhuǎn)換器,。
2.2 系統(tǒng)硬件總體結(jié)構(gòu)
系統(tǒng)的硬件主要由IP2022網(wǎng)絡(luò)處理器,、RS-485接口電路、以太網(wǎng)接口電路和電源電路等組成,。IP2022網(wǎng)絡(luò)處理器是整個(gè)系統(tǒng)的核心,,主要完成數(shù)據(jù)的轉(zhuǎn)換和系統(tǒng)的控制。以太網(wǎng)接口電路實(shí)現(xiàn)與10Base-T Ethernet的連接,。RS-485接口電路實(shí)現(xiàn)與帶有RS-485接口的嵌入式設(shè)備的連接,。電源電路提供了系統(tǒng)所需的+5V、+3.3V,、+2.5V 電源,。系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
2.3 系統(tǒng)的RS-485接口電路
RS-485標(biāo)準(zhǔn)由于具有良好的抗噪聲干擾性,,長的傳輸距離及多站傳輸能力等優(yōu)點(diǎn),,已經(jīng)成為分布式系統(tǒng)中數(shù)據(jù)傳輸?shù)氖走x標(biāo)準(zhǔn)。但在實(shí)際使用過程中如果使用不當(dāng),,數(shù)據(jù)傳輸就會(huì)出現(xiàn)誤碼,。
為了抑制誤碼,在本設(shè)計(jì)中,,我們用了兩片具有瞬變電壓抑制功能的SN75LBC184,,把輸入和輸出的線路分開,使輸入和輸出的信號(hào)互不干擾,。SN75LBC184帶有內(nèi)置高能量瞬態(tài)噪聲保護(hù)裝置,,提高了抵抗數(shù)據(jù)同步傳輸電纜上的瞬變噪聲的可靠性。該芯片以差分方式傳輸信息,,抗共模干擾能力強(qiáng),,容許一對雙絞線上一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備,其最大容許通信距離達(dá)到1200米,。圖3給出了系統(tǒng)的RS-485接口電路的原理示意圖,。通過反復(fù)試驗(yàn),在輸入端加裝3.3K偏置電阻,,串聯(lián)1K串聯(lián)電阻,,使輸入信號(hào)波形最好;在輸出端,,加裝18K偏置電阻,。
SN75LBC184工作電壓為+5V,而IP2022的I/O端工作電壓為+3.3V,。這樣一來,,接收外部信號(hào)時(shí),就可能因?yàn)殡妷哼^高而對 IP2022的I/O端口造成損壞。所以設(shè)計(jì)時(shí)就在SN75LBC184和IP2022之間加了一個(gè)電壓轉(zhuǎn)換芯片74LVX4245,。該芯片一端信號(hào)使用+5V,,另一端信號(hào)使用+3.3V,通過使能端來控制信號(hào)的流向,,這就有效的維護(hù)了IP2022的工作穩(wěn)定性和安全性,。
2.4 系統(tǒng)的以太網(wǎng)接口電路[5]
IP2022芯片內(nèi)含全雙工串化/解串器(SER/DES),能夠?qū)崿F(xiàn)片內(nèi)10Base-T以太網(wǎng)(MAC和PHY),。在設(shè)計(jì)外部接口電路時(shí),,不需要使用專用的以太網(wǎng)接口芯片,只需直接將IP2022的輸入輸出信號(hào)線與網(wǎng)絡(luò)變壓器連接,。圖4給出了系統(tǒng)的以太網(wǎng)接口電路的原理示意圖,。
IP2022使用了6根I/O引腳,這6根I/O引腳與串化器/解串器1相連,。其中用于發(fā)送的四根引腳各聯(lián)接一個(gè)電阻,,這四個(gè)電阻聯(lián)合給出了100Ω的阻抗。TX+/TX-為差分發(fā)送線對,,RX+/RX-為差分接收線對,,使用差分平衡傳輸,傳輸速度可達(dá)到10Mbps,。
FB2022是一個(gè)內(nèi)部帶有低通濾波器的網(wǎng)絡(luò)變壓器,,負(fù)責(zé)將IP2022輸出差分電壓放大之后傳給RJ45,將輸入的差分電壓變壓縮小之后傳給IP2022,,保護(hù)IP2022芯片不受損壞,。
在RX+和RX-之間跨接100Ω的耦合電阻,提高通信線路的穩(wěn)定性,。RJ45為標(biāo)準(zhǔn)的雙絞線以太網(wǎng)接口插座,。
3系統(tǒng)的軟件設(shè)計(jì)
IP2022提供有完善的軟件開發(fā)工具,主要包括Ubicom集成IDE和Ubicom配置工具,。Ubicom集成IDE提供了直觀的用戶界面,,包括編輯器、項(xiàng)目管理器,、器件編程和調(diào)試的工具,,可以方便用戶進(jìn)行軟件工程的項(xiàng)目管理與最終的實(shí)現(xiàn)。Ubicom配置工具可以方便的添加軟件包,,設(shè)置軟件包所用的IP2022硬件資源,確定各軟件包之間的關(guān)系,,自動(dòng)鏈接到目標(biāo)代碼,。
系統(tǒng)主要是用來完成RS-485串口和以太網(wǎng)之間的數(shù)據(jù)轉(zhuǎn)換和傳輸,在硬件上擁有了RS-485接口和以太網(wǎng)RJ45接口之后,軟件上還必須利用IP2022的配置工具加載ipOS,、ipStack,、ipEthernet和ipUART四個(gè)軟件模塊。
ipOS操作系統(tǒng)模塊是Ubicom設(shè)計(jì)的可配置的嵌入式實(shí)時(shí)操作系統(tǒng),,它是專為網(wǎng)絡(luò)應(yīng)用而優(yōu)化的,。ipStack協(xié)議棧模塊是符合工業(yè)標(biāo)準(zhǔn)的TCP/IP網(wǎng)絡(luò)連接協(xié)議棧,它提供直接Internet尋址功能,,設(shè)計(jì)者不需要使用外部物理接口芯片或PC網(wǎng)關(guān)就能設(shè)計(jì)嵌入式網(wǎng)絡(luò)設(shè)備,。ipUART串口模塊提供了異步串口通信功能,系統(tǒng)加載ipUART軟件模塊后,,芯片具備了異步收發(fā)(UART)能力,,能夠支持串口通信。ipEthernet 以太網(wǎng)模塊完全實(shí)現(xiàn)了10Base-T以太網(wǎng)物理層接口(包括MAC和PHY功能),,只需使用一個(gè)IP2022和少量的外部電路就能實(shí)現(xiàn)嵌入式設(shè)備接入以太網(wǎng),。圖5為系統(tǒng)主程序的流程圖。
因?yàn)槲覀兣渲玫腎P2022芯片的操作系統(tǒng)是以單任務(wù)方式運(yùn)行的,,每一個(gè)物理接口和一些操作系統(tǒng)功能都需要被輪詢,,因此,輪詢必須盡可能的返回以防阻礙了其它系統(tǒng)程序的執(zhí)行,。IP2022的運(yùn)行速度很快,,在RAM中可以達(dá)到120MIPS,在Flash中可以達(dá)到30MIPS,,所以輪詢速度是可以滿足實(shí)際要求的,。
初始化主要是初始化操作系統(tǒng)和初始化協(xié)議棧。在操作系統(tǒng)主要是初始化主要的寄存器,、系統(tǒng)調(diào)試支持代碼,、系統(tǒng)定時(shí)器;在協(xié)議棧主要是初始化IP2022的netbuf/netpage存儲(chǔ)機(jī)制,、TCP協(xié)議,。
利用IP2022的配置工具增加ipEthernet以太網(wǎng)軟件模塊,設(shè)置以太網(wǎng)接口所用的IP2022硬件端口資源,,調(diào)用軟件包ipEthernet中的函數(shù)ip2k_eth_instance_alloc( )創(chuàng)建虛擬外設(shè)以太網(wǎng)驅(qū)動(dòng)器,。
調(diào)用軟件包ipStack中的函數(shù)eth_ip_arp_instance_alloc( )創(chuàng)建以太網(wǎng)鏈路層到IP層的實(shí)例,調(diào)用函數(shù)dhcp_client_instance_alloc( )創(chuàng)建DHCP實(shí)例,。
利用IP2022配置工具增加ipUART軟件模塊,,設(shè)置所用的IP2022硬件資源、串口波特率等參數(shù),,調(diào)用軟件包ipUART中的函數(shù) uart_vp_instance_alloc( )創(chuàng)建一個(gè)虛擬外設(shè)UART,,調(diào)用函數(shù)uart_listen( )對串口進(jìn)行偵聽,。
從圖5中可以看出進(jìn)入主循環(huán)后,首先對以太網(wǎng)口進(jìn)行輪詢,,然后再對串口輪詢,,這樣保證從以太網(wǎng)口來的指令能夠優(yōu)先及時(shí)地得到處理。如果輪詢到端口有數(shù)據(jù)發(fā)送或接收,,就對數(shù)據(jù)進(jìn)行協(xié)議的轉(zhuǎn)換和傳輸,,其具體的流程如圖6所示。
4 結(jié)束語
本互聯(lián)系統(tǒng)實(shí)現(xiàn)了帶有RS-485串口的嵌入式設(shè)備與以太網(wǎng)的連接,,進(jìn)而可以通過以太網(wǎng)接入Internet,,從而實(shí)現(xiàn)從Internet上監(jiān)控嵌入式設(shè)備,可廣泛應(yīng)用在工業(yè)控制,、智能儀器,、信息家電等領(lǐng)域,具有較高的實(shí)用價(jià)值,。