<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于BM3803MG與VxWorks的BSP的設計實(shí)現

基于BM3803MG與VxWorks的BSP的設計實(shí)現

作者: 時(shí)間:2012-09-13 來(lái)源:網(wǎng)絡(luò ) 收藏

是由北京微電子技術(shù)研究所研制的、具有自主知識產(chǎn)權的SPARC V8構架的國產(chǎn)高可靠嵌入式控制器,能夠穩定運行實(shí)時(shí)操作系統,其性能高、功耗低,可應用于航空、航天等高可靠領(lǐng)域的32 bit抗輻射RISC芯片。本文用該款控制器以及工業(yè)級以太網(wǎng)芯片KSZ8851-16mll為某型號研制了系統主控板,該板采用實(shí)時(shí)操作系統編程,并對主控板的板級支持包()進(jìn)行,從而以太網(wǎng)的高可靠和實(shí)時(shí)的數據處理。本文主要介紹主控板以太網(wǎng)芯片KSZ8851-16mll的驅動(dòng)。

1 硬件系統構成

如圖1所示,硬件系統由BM30803MG、FPGA、SDRAM和以太網(wǎng)控制器構成硬件系統。

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

本文引用地址:http://dyxdggzs.com/article/159902.htm

主要性能指標[1]:
(1)用Dhrystone 2.1作為測試程序、CPU主頻為100 MHz時(shí),處理能力為86 MIPS;用Whetstone作為測試程序、CPU主頻為100 MHz時(shí),浮點(diǎn)處理能力為23 MFLOPS。

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


2 VxWorks 設計


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

2.1

板級支持包BSP(Board Support Package)是介于底層硬件和上層軟件之間的底層軟件開(kāi)發(fā)包,它將系統中與硬件直接相關(guān)的一層軟件獨立出來(lái)。本設計中BSP的主要功能是屏蔽硬件、提供操作系統的驅動(dòng)及硬件驅動(dòng)。具體功能包括[3]:(1)目標板硬件初始化。主要是CPU的初始化,為整個(gè)系統提供底層硬件支持;(2)為操作系統提供設備驅動(dòng)程序和系統中斷服務(wù)程序;(3)定制操作系統的功能。為軟件系統提供一個(gè)實(shí)時(shí)多任務(wù)的運行環(huán)境;(4)初始化操作系統。為操作系統的正常運行做好準備。

在網(wǎng)卡驅動(dòng)開(kāi)發(fā)之前,BSP中包括makefile、depend.bm3803、config.h、bm3803.h、romlnit.S、sysALib.S、sysLib.c、sysSeria1.c等,其中config.h中包含特定CPU板的所有包含文件和定義。

2.2 KSZ8851-16mll以太網(wǎng)控制器

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

2.3 驅動(dòng)程序的

2.3.1 SENS協(xié)議棧

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

2.3.2 編程架構

KSZ8851-16mll BIU主機接口是間接存取數據的總線(xiàn)接口。共享數據總線(xiàn)SD[15:0]由CMD控制信號來(lái)決定是地址線(xiàn)還是數據線(xiàn)。由于KSZ8851-16mll 是單端口芯片,外界與芯片只能通過(guò)單端口進(jìn)行交互。下面簡(jiǎn)單介紹KSZ8851-16mll 的寄存器的讀寫(xiě)以及數據的接收與發(fā)送過(guò)程。

(1)寄存器讀寫(xiě)操作

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

本文網(wǎng)卡芯片采用大端模式,并且芯片的CMD管腳與主機的地址線(xiàn)A2相連,可以得到KSZ8851-16mll 讀寫(xiě)寄存器的兩個(gè)重要操作程序:

讀寄存器:
*((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 ));
寫(xiě)寄存器:
*((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表示網(wǎng)卡芯片基地址,CMD_LOW=0(CMD=0),表示共享數據總線(xiàn)是數據線(xiàn);CMD_HIGH=4(CMD=1),表示共享數據總線(xiàn)是地址線(xiàn)。

(2)數據包接收

KSZ8851-16mll軟件驅動(dòng)以中斷方式接收數據包,當操作系統接收到中斷時(shí),會(huì )調用中斷向量表的中斷服務(wù)程序處理網(wǎng)卡中斷(包括對錯誤的檢查和狀態(tài)的改變),中斷服務(wù)程序把從網(wǎng)卡的接收緩存傳輸到系統緩存的所有費時(shí)工作都放在任務(wù)層里完成。KSZ8851-16mll接收包的具體流程如圖3所示。

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>