基于IP2022的嵌入式設(shè)備與以太網(wǎng)互連系統(tǒng)的設(shè)計(jì)
1 引言
隨著Internet技術(shù)的日益普及,信息共享的程度不斷提高。據(jù)網(wǎng)絡(luò)專家預(yù)測(cè),將來在互聯(lián)網(wǎng)上傳輸?shù)男畔⒅校?0%左右是來自小型嵌入式設(shè)備,互聯(lián)網(wǎng)應(yīng)用正在轉(zhuǎn)到以嵌入式設(shè)備為中心。由于在工業(yè)測(cè)控系統(tǒng)、智能儀器、智能家電等領(lǐng)域應(yīng)用的許多嵌入式設(shè)備,它們的對(duì)外通訊接口仍然是易用性強(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簡(jiǎn)介
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)由于具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離及多站傳輸能力等優(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ù)同步傳輸電纜上的瞬變?cè)肼暤目煽啃?。該芯片以差分方式傳輸信息,抗共模干擾能力強(qiáng),容許一對(duì)雙絞線上一個(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)殡妷哼^高而對(duì) 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ā)送線對(duì),RX+/RX-為差分接收線對(duì),使用差分平衡傳輸,傳輸速度可達(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( )對(duì)串口進(jìn)行偵聽。
從圖5中可以看出進(jìn)入主循環(huán)后,首先對(duì)以太網(wǎng)口進(jìn)行輪詢,然后再對(duì)串口輪詢,這樣保證從以太網(wǎng)口來的指令能夠優(yōu)先及時(shí)地得到處理。如果輪詢到端口有數(shù)據(jù)發(fā)送或接收,就對(duì)數(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à)值。