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