基於BM3803MG與VxWorks的BSP的設計實現

2021-01-10 電子產品世界

  BM3803MG是由北京微電子技術研究所研製的、具有自主智慧財產權的SPARC V8構架的國產高可靠嵌入式控制器,能夠穩定運行VxWorks實時作業系統,其性能高、功耗低,可應用於航空、航天等高可靠領域的32 bit抗輻射RISC晶片。本文用該款控制器以及工業級乙太網晶片KSZ8851-16mll為某型號研製了系統主控板,該板採用實時作業系統 VxWorks編程,並對主控板的板級支持包(BSP)進行設計,從而實現了基於乙太網的高可靠和實時的數據處理。本文主要介紹主控板乙太網晶片 KSZ8851-16mll的VxWorks驅動設計。

本文引用地址:http://www.eepw.com.cn/article/201602/287214.htm

  1 硬體系統構成

  如圖1所示,硬體系統由BM30803MG、FPGA、SDRAM和乙太網控制器構成硬體系統。

    

 

  BM3803MG 是基於SPARC V8體系結構的32 bit處理器,可用於板上嵌入式實時計算機系統。BM3803MG晶片內部包含有:整數處理單元、浮點處理單元、獨立的指令和數據Cache、硬體乘法器和除法器、中斷控制器、帶有跟蹤緩衝器的硬體調試單元、2個24 bit定時器、通用I/O接口、看門狗;能夠支持PROM、SRAM、SDRAM和I/O映射空間訪問的存儲器控制器;具有軟體可以控制的省電工作模式;具有可實現 PCI 主機橋(Host bridge)和從屬橋(Guest bridge)功能的PCI 控制器;符合PCI2.3規範的33 MHz PCI接口;完全的三模冗餘設計、 EDAC和奇偶校驗。

  主要性能指標[1]:

  (1)用Dhrystone 2.1作為測試程序、CPU主頻為100 MHz時,處理能力為86 MIPS;用Whetstone作為測試程序、CPU主頻為100 MHz時,浮點處理能力為23 MFLOPS。

  (2)抗輻性能:總劑量抗輻能力為100 Krad(Si), 優於1 E-5錯誤/器件/day的SEU事件,優於70 MeV cm2/mg的抗閂鎖能力。BM3803MG總體結構框圖如圖2所示。

    

 

  2 VxWorks BSP設計

  VxWorks 是美國風河公司(現已被Intel收購)推出的一款高性能、可裁減的嵌入式實時作業系統,它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中[2]。由於作業系統廠商不能對所有設備的處理器驅動提供支持,故需要針對不同的硬體平臺進行相關驅動的開發。

  2.1 BSP

  板級支持包BSP(Board Support Package)是介於底層硬體和上層軟體之間的底層軟體開發包,它將系統中與硬體直接相關的一層軟體獨立出來。本設計中BSP的主要功能是屏蔽硬體、提供作業系統的驅動及硬體驅動。具體功能包括[3]:(1)目標板硬體初始化。主要是CPU的初始化,為整個系統提供底層硬體支持;(2)為作業系統提供設備驅動程序和系統中斷服務程序;(3)定製作業系統的功能。為軟體系統提供一個實時多任務的運行環境;(4)初始化作業系統。為作業系統的正常運行做好準備。

  在網卡驅動開發之前,BSP中包括makefile、depend.bm3803、config.h、bm3803.h、 romlnit.S、sysALib.S、sysLib.c、sysSeria1.c等,其中config.h中包含特定CPU板的所有包含文件和定義。

  2.2 KSZ8851-16mll乙太網控制器

  KSZ8851-16mll 是美國Micrel公司研製的單埠嵌入式控制晶片,它包括一個快速乙太網的 MAC控制器、一個8/16 bit的普通主機處理器接口以及在 RXQ(12 KB)和 TXQ(6 KB)之間進行共享的18 KB內部緩衝存儲器,並提供了Wake-on-LAN技術,可有效地解決快速乙太網的應用[4];支持大端(Big-Endian)和小端 (Little-Endian)的處理器、多幀數據傳輸和接收、IPv4/ IPv6 checksum和32 bit CRC的生成與校驗。此外,KSZ8851-16mll還提供了強大的功率管理功能。

  2.3 驅動程序的實現

  2.3.1 SENS協議棧

  VxWorks 支持可裁減的增強型網絡堆棧SENS(Scalable Enhanced Networks Stack),提供了可替換的網絡設備驅動程序。SENS 的基本層次結構與傳統的TCP/IP網絡協議棧相似,但SENS最大的特點是在數據鏈路層和網絡協議層之間多了MUX層。在SENS中,網絡接口的驅動程序即END網絡驅動程序處於數據鏈路層。IP層和TCP/ UDP層合稱為網絡協議層。在數據鏈路層和網絡協議層之間有應用程式接口(API),這個接口在SENS中稱為MUX(Multiplexer)接口。 MUX層直接與END 驅動程序相交互,其應用程式提供了獨立於網絡協議的驅動程序接口,可以與多個獨立的END驅動程序同時交互。接口層MUX 起到了隔離網絡協議和網絡驅動程序的作用,並管理協議層和數據鏈路層之間的通信,使數據的發送和接收過程變得簡單,而不需要通過掛接鉤子函數來解決 [5]。

  2.3.2 編程架構

  KSZ8851-16mll BIU主機接口是間接存取數據的總線接口。共享數據總線SD[15:0]由CMD控制信號來決定是地址線還是數據線。由於KSZ8851-16mll 是單埠晶片,外界與晶片只能通過單埠進行交互。下面簡單介紹KSZ8851-16mll 的寄存器的讀寫以及數據的接收與發送過程。

  (1)寄存器讀寫操作

  訪問KSZ8851-16mll寄存器需要兩個步驟:①置CMD為高,寫寄存器的偏移地址和字節使能號(BEn)到共享數據總線上;②置CMD為低,讀或者寫數據到共享數據總線上。

  本文網卡晶片採用大端模式,並且晶片的CMD管腳與主機的地址線A2相連,可以得到KSZ8851-16mll 讀寫寄存器的兩個重要操作程序:

  讀寄存器:

  *((volatile unsigned short*)(KS8851_IO_BASE+CMD_HIGH))=(unsigned short)(addr | ((BE1 | BE0) <<

  ((addr+2) & 0x02)));

  *data= *((volatile unsigned short *)(KS8851_IO_BASE +

  CMD_LOW ));

  寫寄存器:

  *((volatile unsigned short * )(KS8851_IO_BASE +

  CMD_HIGH )) =(UINT16)( addr | ((BE1 | BE0) <<

  ((addr+2) & 0x02)));

  *((volatile unsigned short *)(KS8851_IO_BASE +

  CMD_LOW )) = ( UINT16 )( data );

  其中,KS8851_IO_BASE表示網卡晶片基地址,CMD_LOW=0(CMD=0),表示共享數據總線是數據線;CMD_HIGH=4(CMD=1),表示共享數據總線是地址線。

相關焦點

  • vxworks中實現雙網卡驅動的例子
    305913.htm1.在config.h中,#define INCLUDE_ENE#define INCLUDE_EL_3C90X#define IO_ADRS_ENE 0x0fcc0#define INT_LVL_ENE 0x0a2.make bootrom3.host邊,開FTP服務3.下載vxworks
  • DOC盤啟動vxworks
    做DOC啟動盤,並從DOC啟動vxworks.本文引用地址:http://www.eepw.com.cn/article/201609/304258.htm1.
  • 小水滴工作室:用智能bm平臺築起安全堡壘
    現已經成為眾多企業的重要發展戰略,大數據分析技術的有效使用,催生出了市場新場景,使得線上經營模式日趨成熟,實現了服務場景的無縫對接。小水滴工作室打造的bm平臺,以專業嚴謹的風控管理,第三方參與管控,系統通過國際認證確保安全可靠性,目前有穩定的大數據支撐,專業的數據分析小組,對各大數據均有統計分析,加上公司發展以人為主,客服更是一對一服務到位,小水滴的bm平臺人數越來越多,增幅也越來越快,使得小水滴在眾多競品公司中脫穎而出,穩穩佔據行業龍頭位置。
  • 基於Android作業系統實現車載人機界面應用程式的設計
    打開APP 基於Android作業系統實現車載人機界面應用程式的設計 李培培;朱維傑 發表於 2020-04-06 18:18:00
  • 基於霍爾旋轉編碼器實現膠印機控制系統的應用設計
    打開APP 基於霍爾旋轉編碼器實現膠印機控制系統的應用設計 邱召運,李述香, 發表於 2020-12-17 10:21:36
  • 卡西歐另類的壓力傳感器「傑森面具」——CASIO BM200
    比喻似乎有點寒酸,不過縱觀整個bm系列的發展,從bm100延續到bm600受眾度並不廣泛,除了後來卡西歐把壓力傳感器移植到g shock或登山系列,才算是真正的把壓力傳感器發揚光大。 bm200設計全新的外觀,外型更加貼合90年代g shock那種誇張前衛的科技感外觀。
  • 今年超流行的bm風是什麼?全網最全的bm穿搭,一定要看哦!
    就是bm風,想必很多人都聽說過,最近十分流行的bm風吧,但是什麼是bm風呢?小編,今天就為大家來科普一下,並且推薦一下關於bm風的穿搭。其實bm風的興起一開始是和一個服裝品牌有關,是一個義大利的快時尚品牌,主要售賣女的少女的各種服裝以簡單的設計為主,例如格子、吊帶和基礎款,但是卻融合了是美式加州風格,讓女孩們展現出輕鬆活潑熱情的形象。
  • 大力推進基於模型的系統工程 努力實現設計能力跨代升級
    攻關團隊工作的基本路徑是:運用基於模型的系統工程思想,將原先分散的設計過程和仿真分析,綜合到一個統一的平臺,通過綜合設計、分析手段和多學科優化技術,實現各專業學科要求的綜合權衡,並使設計人員能迅速了解設計方案變更對相關系統和飛機性能的影響,減少設計中的錯誤和不必要的反覆,獲得全系統的整體最優或次優解。
  • 基於全制式寬帶通信信號的開關濾波器設計與實現
    傳統寬帶濾波器只能針對固定頻段進行濾波,本文提出一種開關濾波器實現全制式寬帶信號帶外抑制,提高通信信號頻譜純度,滿足新一代無線通信要求。  1 開關濾波器基本工作原理  針對全制式寬帶通信信號不同頻段要求,在保證輸入輸出功率插損較小的情況下,進行濾波器分段設計,該開關濾波器包括開關帶通濾波器模塊和開關低通濾波器模塊。
  • VxWorks環境下基於Zinc的通信
    在很多實時應用場合(如嵌入式地理信息系統) ,需要在VxWorks環境下設計圖形用戶界面(GUI) 。VxWorks提供了兩種開發圖形用戶界面的組件:WindML (Wind多媒體庫)和Zinc。WindML為圖形、圖象和聲音應用程式的開發提供了基本技術,並且提供了為定製設備開發標準化驅動程序的框架。
  • 基於CC2420晶片和ARM單片機實現智能交通系統的設計
    基於CC2420晶片和ARM單片機實現智能交通系統的設計 黃武陵,艾雲峰 發表於 2020-12-22 09:59:25 智能交通系統(ITS)應用在城市交通中主要體現在微觀的交通信息採集
  • ⼀套面向物聯網開發者的LoRa產品原型設計工具包
    打開APP ⼀套面向物聯網開發者的LoRa產品原型設計工具包 RTThread物聯網操作 發表於 2021-01-14 09:08:33
  • 基於GPS結合電子羅盤實現天線自動跟蹤系統的設計
    基於GPS結合電子羅盤實現天線自動跟蹤系統的設計 劉新良,馮奎勝,田 發表於 2020-04-30 09:27:32 1、引 言 具有跟蹤能力的中等增益圓極化天線是中繼通信衛星和衛星移動通信這兩種通信系統的關鍵部件之一
  • 當人們在討論爛大街的「BM」風,他們在追求什麼?
    相信很多人還不熟悉今天小編就和大家介紹一下,究竟什麼是bm風?相信你刷微博抖音小紅書時,無意中都會看到有關於 「BM風」「BM女孩」刷屏的內容。BM其實是品牌 Brandy Melville的縮寫,是個1970年創立於義大利的快時尚品牌,價格親民又款式舒適美膩,後來慢慢被大家稱為了bm風。
  • 基於開關電容ADC實現抗鋸齒濾波器的精密設計
    基於開關電容ADC實現抗鋸齒濾波器的精密設計 Eric Newman;Rob Reede 發表於 2020-12-17 10:16:00   作者: Eric Newman
  • 小而卓絕 藍寶石R9-380超白金ITX1459元
    藍寶石R9 380 2G D5 ITX 超白金顯卡採用新一代GCN架構強悍核心為性能基礎,擁有高規格的用料和散熱設計,默認高頻和大顯存的特點讓其在面對大型3D遊戲挑戰時擁有更為從容的表現。另外顯卡在供電部分採用了更為激進的非公版方案,能夠為用戶的超頻操作帶來更好的硬體支持。
  • 基於CAN總線結合射頻和USB實現車載故障診斷儀的設計方案
    基於CAN總線結合射頻和USB實現車載故障診斷儀的設計方案 黃濤;王小輝 發表於 2020-04-13 09:21:10 設計一款基於2.4G射頻的車載CAN總線故障診斷儀
  • 基於Verilog硬體描述語言實現SHA-1算法的設計
    基於Verilog硬體描述語言實現SHA-1算法的設計 黃諄,白國強,陳弘 發表於 2020-11-28 10:16:16 單向散列函數是密碼學中一種重要的工具,它可以將一個較長的位串映射成一個較短的位串
  • 今年超火的bm風,憑什麼受到Lisa、歐陽娜娜的獨寵?
    2020已經過去了一大半,一陣bm風掛的大家也是措手不及,那麼bm風到底是一種什樣的風格,又是怎麼流行起來的呢,又是怎麼被大伙兒眾人皆知的呢?bm風,起先是源自於義大利的小眾品牌——Brandy Melville,也就是我們俗稱的bm,該品牌以短、小、漏、緊的特點而成為小眾的心頭好,並且這個品牌的衣服只有s碼。
  • 基於DAC53701智能數模轉換器的醫療設備警報系統設計實現方案
    打開APP 基於DAC53701智能數模轉換器的醫療設備警報系統設計實現方案 德州儀器 發表於 2020-12-22 16:21:39