嵌入式智慧型網橋

嵌入式智慧型(CAN-ETHERNET)網橋就是以嵌入式的方式,使智慧型網橋作為乙太網和現場匯流排網路數據傳輸交換的樞紐,完成從CAN到乙太網或是從乙太網到CAN網路數據的轉發功能。

基本介紹

  • 中文名:嵌入式智慧型網橋
  • 外文名:Embedded intelligent network bridge
  • 方式:以嵌入式的方式
  • 特點:實時性、可靠性
  • 作用:完成網路之間的數據轉發功能
  • 領域:計算機科學
概述,DS80C400介紹,嵌入式智慧型網橋介紹,嵌入式智慧型網橋的硬體設計分析,系統初始化及進程管理分析,系統記憶體管理及檔案系統,嵌入式及軟體系統實現,

概述

目前,各類智慧型網橋設計方案基本都是CPU+MAC+PHY+RTOS+TCP/IP STACK的方式,如:PC Gateway+專用網、32位MCU+RTOS、8位或16位單片機+網路協定包,它們在實時性、可靠性、開發周期、實現難度、價格、開放性和通信效率等方面各有千秋。
PC Gateway+專用網:該方案採用專用網路(如RS232、RS485、CANBUS等)可以連線多種單片機系統。但存在如下缺點:需要依賴PC機作為網關進行協定轉換,專用網路布線極為不便;需要在PC機上安裝價格昂貴的專門的協定轉換軟體。
32位MCU+RTOS:採用32位的高性能嵌入式處理器,在RTOS(實時多任務作業系統)平台上進行軟體開發,該方案可以完成很多複雜的功能。但這種方案存在如下缺點:高性能嵌入式處理器價格較貴,開發周期長;需要購買昂貴的RTOS軟體,對開發人員的開發能力要求較高。
8位或16位單片機+網路協定包:該方案有如下優點:不依賴PC機或高性能嵌入式處理器,真正實現8位或16位單片機系統直接接入網路,整個系統完全自給自足;使用外圍器件少,系統成本低。但是這種方法在實現過程中也存在一些問題,如8位或16位單片機的資源相對較少,提供的功能有限。隨著科技的發展,一些高速度的單片機(如DS80C400)己能基本滿足通常的嵌入式產品對處理性能的要求,採用軟體來實現各種協定處理,便於將來在不改變硬體的情況下,只需改變內置程式即可升級整個嵌入式系統的功能。
這裡提出以 DS80C400為核心處理器的一種方案。

DS80C400介紹

DS80C400是一款功能強大的網路微處理器。其內部ROM固件集成了大量可被用戶程式調用的庫函式,但從C中調用ROM函式比較複雜,必須將Keil C編譯器規範的參數轉換成ROM所使用的規範。Dall Semiconductor編寫了訪問ROM函式的庫,可完成Keil調用用規範與ROM參數規範間的翻譯工作,這樣在C程式 中使用ROM函式時,只需導入相應的庫,並包含一個頭檔案,就可使用任何一個ROM函式。這些ROM庫可以支持:ROM初始化、DUCP客戶端操作、進程管理、套接字函式、TFTP客戶端操作、一些實用函式。除了ROM庫,還有許多擴展庫提供了很多ROM中沒有的實用功能。這些擴展庫包括檔案系統、DNS客戶端、I2C等等。將內部強大的ROM庫套用到智慧型網橋系統中,不僅方便了整個系統的開發,而且大大縮短了系統開發周期和難度。

嵌入式智慧型網橋介紹

嵌入式智慧型網橋的硬體設計分析

在嵌入式智慧型網橋的開發中,必不可少的要用到DS80C400的內部函式,要使用這一內部功能強大的ROM固件,在硬體設計時必須滿足以下條件:
(1)至少64KB的SRAM,映射地址為000000h-00FFFFh。
(2)使用SRAM或FLASH存儲器存放用戶程式,
(3)DS2502-E48單匯流排器件用來保存單一的MAC地址。DS80C400在C語言應用程式中,其MAC地址可以編程獲得,其方法是修改StarUp.a51檔案。
(4)外接晶振振盪器時鐘
(5)DS80C400的EA、P1.7引腳接高電平。
(6)如果使用網路啟動,則P5.3引腳要接低電平,並且振盪頻率至少達到7M。若要網路啟動達到100M,振盪頻率至少為25M。

系統初始化及進程管理分析

嵌入式智慧型網橋的初始化模組主要完成網路協定棧、記憶體管理、進程調度等相關的功能模組的載入。DS80C400的內部ROM函式是為系統初始化服務的,系統初始化最好的方法是調用init_rom()函式,該函式將拷貝其自己的中斷向量表到記憶體,並且採樣可套用的單匯流排器件頻率作為時鐘節拍,並自動尋找DS2502-E48獲取MAC地址。
ROM任務管理庫函式可以創建、掛起、刪除任務。在C語言開發中,由於是KEIL編譯器分配變數,在創建任務調用task_fork函式時,應當在臨界區之內調用,且要在推出臨界區之前保存號創建子任務的ID號。在主任務離開臨界區之前,子任務永遠得不到執行。在臨界內的程式不能過長,一般100-200us是最長的時間。

系統記憶體管理及檔案系統

記憶體是任何一個嵌入式系統的重要組成部分,且是一種寶貴又緊俏的資源,如何對它進行管理,不僅直接影響到存儲器的利用率,而且對系統的性能有很大的影響。ROM記憶體管理庫函式通過記憶體管理模組從記憶體池中分配和回收記憶體。核心記憶體是用戶用來分配給乙太網和任務控制結構作緩衝區的。核心記憶體庫函式允許用戶分配不同數量的記憶體作為核心緩衝區,此緩衝區與乙太網緩衝區和任務控制結構一樣用來系統運行速度。由內部ROM預設分配的核心記憶體可能不夠充足,因為多進程和多SOCKET函式都消耗核心記憶體。這一庫函式允許用戶為應用程式分配更多的核心記憶體。使用這一庫函式有兩種方法:①在init_rom()之前調用kmem_install();②使用手動初 始化函式,使用kmem_init()代替init_km()。kmem_init()是一個系統函式,應當在進程調度啟用前只調用一次。
檔案系統庫函式是為檔案系統操作和格式化輸入輸出數據所開發的。這個檔案系統不僅能從JAVA運行環境運行,也適應於C程式函式。檔案系統必須居留在連續的存儲空間內。檔案系統使用的最大記憶體容量要遠遠大於應用程式所占用的記憶體。檔案系統能管理15MB的檔案。檔案系統庫函式中包括大量的功能函式思考供用戶代碼直接
調用。

嵌入式及軟體系統實現

嵌入式智慧型網橋內嵌一個WEB伺服器,Web Server將參數通過網頁的統一界面呈現給用戶,用戶也可通過網頁提交修改的參數。智慧型網橋作為乙太網和現場匯流排網路數據傳輸交換的樞紐,完成從CAN到乙太網或是從乙太網到CAN網路數據的轉發功能。DS80C400內部ROM嵌入的TINI OS使各個任務相互獨立且具有不同的優先權來保證緊急任務及時回響,從而有效地實現任務調度
(1)嵌入式WEB的實現
內部嵌入的工業標準SOCKET套接字方便了web伺服器及ETHERNET數據的傳送與接收的實現。
(2)內嵌網頁的實現
網頁是一個WEB伺服器必不少的,將網頁以檔案的形式存入到檔案系統中,WEB伺服器就可以從檔案系統中查找相應的網頁檔案來回響客戶端請求,在本系統採用了定義一個指針數組的方法來存放系統所需的網頁。應當注意的是在使用C語言開發時,由於KEIL C本身的制約性,網頁檔案不能大於64K。
(3)任務劃分
本系統根據各個任務的重要性,把整個模組分成以下幾個不同優先權的套用任務,嵌入式智慧型網橋劃分了系統監控、web伺服器、CAN-ETHERNET數據轉發、LCD顯示等任務。任務劃分以後,各任務便具有獨立的堆疊空間,彼此爭奪CPU的使用權。
(4)任務實現
各個任務一旦獲得CPU使用權,就會獨立運行,完成相應的功能。
系統監控:確保系統中每個任務工作正常,一旦發現有任務丟失,及時的創建新任務 。
WEB伺服器:將參數顯示和監控等功能均通過網頁的統一界面呈現給用戶,用戶通過網頁提交修改的參數。
CAN-ETHERNET數據轉發:完成從CAN到乙太網或是從乙太網到CAN網路數據的轉發LCD顯示:顯示智慧型網橋的工作狀態。
(5)任務的同步與調度
智慧型網橋系統中任務的執行要遵循系統調度規則,否則有可能導致系統崩潰或當機。DS80C400內嵌的任務調度程式有其獨到之處,用戶可以直接利用系統的接口函式編寫應用程式,不需另行開發。

相關詞條

熱門詞條

聯絡我們