嵌入式光纖收發器遠程監控論文

時間:2022-09-02 08:57:00

導語:嵌入式光纖收發器遠程監控論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

嵌入式光纖收發器遠程監控論文

摘要:基于ARM芯片LPC2214與網絡芯片RTL8019AS的串口網絡轉換器,并嵌入實時操作系統uC/OS,在不改變原有光纖收發器結構的基礎上,為其添加網絡監控接口,從而實現其遠程監控。

關鍵詞:IP113F;ARM;RTL8019AS;uC/OS;TCP/IP;以太網

1IP113F芯片簡介

IP113F芯片是ICPlus公司生產的一款具有網管功能、超低功耗的光纖收發器。內置專為收發器設計的兩換機內核,支持純收發器模式,全/半雙工模式均可采用相應的流量控制,支持單/多模光纖轉換,支持3.3VI/O,并可通過SMI(MDC,MDIO)和IC內部MII接口對兩組獨立寄存器進行操作,監控或重新設置本地或遠端光纖收發器的工作狀態。用戶可以通過串行管理接口MDC(管理數據同步時鐘輸入接口)和MDI0(雙向管理指令接口)來訪問MII寄存器,MDI0是信號線,MDC是時鐘線,一個管理單元最多可同時外掛32個IP113F。數據在MDI0上是一位位傳輸的,是發生在MDC的上升沿跳變,MDI0上的數據通信協議如表1所示。當SMI處于空閑狀態時,MDI0則處于高阻態。管理單元在MDI0上發送32位連續的“1”和“01”信號來初始化MDI0接口。

2整體功能設計

系統的基本功能是32臺光纖收發器同時通過同一SMI口網絡轉換器與遠程的上位機進行通信(如圖1所示)。轉換器完成的具體工作是接收光端機發送過來的測試數據,自動識別其長度和來源,將其轉化為網絡數據格式,通過以太網發送到上位機,同時接收上位機通過以太網發送過來的控制信息,并自動識別其發送的目標,通過SMI口發送給相應的光纖收發器。根據實際需要,可以在上位機通過以太網配置SMI口網絡轉換器的IP地址。

3硬件結構設計

轉換器的硬件電路主要選用基于ARM7內核的嵌入式處理器LPC2214芯片進行整體控制,LPC2214芯片帶有256KB的高速FLASH,并帶有16K片內SRAM,為了滿足通信過程中的數據緩存和一定的系統運行空間,片外擴展了512K字節的SRAM(IS61LV25616AL)。片外通過IIC總線擴展了256字節的EEPROM(CAT24WC02)用于保存好已設置的IP地址。選用10M全雙工以太網控制器RTL8019AS芯片完成網絡通訊功能,與外界的通訊口選用UTPRJ-45接口,HR61101芯片充當網卡變壓器。采用通用的I/O口P0.5和.P0.6模擬SIM口的時序對IP113F進行數據采集,電路整體設計如圖2。

4系統軟件設計與實現

4.1引入RTOS

光纖收發器數據采集的實時性要求比較高,若采用傳統的前后臺設計方法會顯的過于復雜,且實時性不能保證。解決這個問題的最好方法是采用實時操作系統RTOS。uC/OS-Ⅱ操作系統是一種源代碼公開的嵌入式操作系統,具有代碼短小精悍,簡單易學的特點,對本設計是一個理想的選擇。

uC/OS-Ⅱ完全是占先式的實時內核,基于優先級,即總是讓就緒態中優先級最高的任務先運行,因此實時性比非占式的內核好。其大部分代碼是用C語言編寫的,可移植性強,可以在大多數8位、16位、32位以至64位微處理器上運行。uC/OS-Ⅱ在LPC2214上的移植可參考文獻[2]。

4.2TCP/IP協議的選擇與裁減

為使SMI口轉換器具有以太網接人功能,必須在ARM處理器中嵌人TCP/IP協議,參考開放系統互連(OSI)模型,在ARM中嵌人的TCP/IP協議采用簡化的四層模型,即鏈路層、網絡層、傳輸層、應用層。根據實際需求,結合ARM微處理器的處理能力,設計中對完整的TCP/IP協議進行了全方位裁減。

(1)鏈路層。由控制同一物理網絡上的不同機器間數據傳送的底層協議組成。RTL8019AS的驅動程序就是在該層實現的。

(2)網絡層。保留了完整的IP協議,對ARP協議進行簡化,對于ARP包只響應ARP請求,取消RARP,只維護最簡單的一個IP地址與MAC地址的映射Cache表,定時刷新。

(3)在傳輸層,用于工業現場一般采用TCP或UDP協議,TCP協議提供了一種可靠的面向連接的字節流運輸層服務,而UDP協議是一個簡單的面向非連接的數據報的運輸層協議,考慮到所設計的系統數據傳輸的安全性,設計中選用TCP協議。

(4)在應用層,裁剪掉HTTP協議,通過將控制界面設置在上位機上來代替其功能。

通過上述裁剪,把TCP/IP協議嵌入到操作系統uC/OS-Ⅱ中,并提供API接口函數供應用程序調用,使得ARM可以快速無沖突地收發TCP數據包,符合系統對實時性和可靠性的要求。4.3系統的實現

采用嵌入式操作系統uC/OS-Ⅱ使整個設計簡單,各個任務相互獨立且具有不同的優先級來保證緊急任務及時響應,從而有效地對任務進行調度。整個軟件設計由操作系統和一系列用戶應用程序構成。

主函數是程序首先執行的一個函數,主要實現操作系統的初始化,該函數永不還回。操作系統的初始化包括任務控制塊,事件控制塊的初始化,而且在啟動多任務調度之前,必須至少創建一個任務。此系統創建了一個啟動任務TaskStart,主要負責系統硬件的初始化,包括時鐘的初始化和啟動,中斷的啟動,IIC總線的初始化與啟動,SMI口的初始化與啟動,RTL8019AS的初始化與啟動,并且對各個應用任務進行了劃分。

(1)任務的劃分。

要完成多任務系統的各個功能,必須對任務進行劃分。本程序根據各個任務的重要性和實時性,把整個模塊分成6個具有不同優先級的應用任務,即IP地址設置、接收協議轉換、發送協議轉換、NET發送、SMI口發送、SMI口采集。

除了3個主要應用任務外,還有兩個中斷服務子程序。一個是時鐘節拍中斷,用于提供周期性信號源,另一個是網口的接收中斷,用于把接收到的數據寫入緩沖區。

(2)任務的具體實現。

本系統采用ARM作為服務器,PC端作為客戶端的TCP通信模式,由上位機主動請求連接ARM。在串口和以太網建立通信之前,首先要調用IP地址設置任務,對IP地址、子網掩碼、網關進行初始化設置。

SMI口通信實現的功能有SMI口發送和SMI口采集。SMI口采集任務優先級較低,進行多任務調度后若沒有相關事件發生系統就一直運行SMI口采集任務,若采集到IP113F的狀態發生變化,數據通過協議轉換后發送到遠程的上位機。SMI口發送作為一個單獨的任務獨立運行。SMI口發送任務需要系統調度器通知緩沖區中是否有待發送的數據,若沒有數據發送,則將該任務掛起,系統運行其他任務

以太網通信模塊由以太網數據收發和協議轉換構成。數據的接收在RTL8019的中斷服務程序中實現。以太網數據的發送,接收協議轉換及發送協議轉換分別作為獨立的任務運行。以太網數據的發送任務同樣需要系統調度器通知緩沖區中是否有待發送的數據。協議轉換主要實現對接受數據報文的解析及給待發送數據添加協議報頭,在編程時可以直接調用嵌入的TCP/IP協議的API函數,對數據報文進行分層。接收協議轉換任務對從8019傳過來的數據處理過程如3所示,不同的子協議具有不同的功能號,任務根據功能號對協議進行區別。發送協議轉換則為圖3的逆序表示。

(3)任務間的同步與調度。

通常多任務操作系統的任務不同于一般的函數,它是一個無限循環,而且沒有返回值。如果沒有更高優先級的任務進入就緒態,當前任務不會放棄對CPU的使用權。為了實現操作系統的正常運行和有關事件的同步,必須正確處理任務間的通信和事件標志的設置。系統的功能結構如圖4所示。

系統進行多任務調度后,高優先級任務由于申請某個資源而發生阻塞,進入掛起態,系統運行較低優先級的SMI口采集任務。每個事件分配一個信號量,一旦事件發生就啟動信號量的等待任務表中進入就緒態的任務。當接收中斷發生時就啟動協議轉換任務,這過程通過信號量的通信機制實現。接收協議轉換任務先對來自上位機的數據解析,然后根據數據的命令頭發往SMI口發送隊列或EEPROM發送隊列,進而啟動相應的SMI口發送任務或IP設置任務。發送協議轉換任務對SMI口采集的數據進行協議轉換后存入以太網發送隊列,然后通知NET發送任務把數據發給上位機,從而保證任務與事件同步。

5總結

本文所設計的SMI口網絡轉換器模塊實現了上位機同時對多光纖收發器進行監控。本設計既可作為一個獨立的模塊,又可嵌入到用戶設計的系統中進行二次開發。總之,嵌入式Internet技術代表著嵌入式系統和Inernet的發展趨勢,對其研究具有重要的實用價值和遠大的發展前途,尤其是智能測控和家庭網絡化方面的前景意義。

參考文獻

[1]周立功.ARM嵌入式系統軟件開發實例[M].北京:北京航空航天大學出版社,2004.