中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 模拟技术 >>电子行业新闻正文

一种在U—BooT中嵌入千兆网络功能的方法

时间:2007/3/2 11:57:00  作者:  来源:ic72  浏览人数:1741
 
 

      引言

      U-BOOT是德国DENX小组开发的用于多种嵌入式微处理器的引导加载程序,它是系统上电后运行的第一段程序代码,用于初始化目标板硬件,为嵌入式操作系统提供目标板硬件配置信息,并装载、引导和运行嵌入式操作系统等。U—BOOT支持网络功能,在下载操作系统内核和大的文件系统时,比其它不支持网络的引导加载程序速度更快、更方便。目前U—BOOT仅支持10M/100M的网络功能,随着科学技术发展,千兆网络功能必将大量应用在嵌入式系统中。本文介绍了一种让U—BOOT支持千兆网络功能的方法,可以使U—BOOT功能更加强大,使用更加方便。

      U—BOOT简介

      U—BOOT的全称是Universal Boot Loader,它遵循GPL条款的开放源码项目,支持多种处理器,如ARM、PowerPC、MIPS等,也支持Linux、VxWorks、QNX、RTEMS、ARTOS、LynxOS等嵌入式操作系统。

ic72新闻中心

      U-BOOT包含两种不同的工作模式:启动加载模式和下载模式。启动加载模式也称为自主模式,即U—BOOT从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,这种模式是U—BOOT的正常工作模式。下载模式就是在开发或生产过程中,U—BOOT通过网络连接等通信手段从主机下载操作系统内核和文件系统等到目标机的RAM中,然后再写到目标机上的FLASH类固态存储设备中。U—BOOT允许用户在这两种工作模式间进行切换,系统启动时会延时等待一段时间,如果这时用户没有按键,U—BOOT就默认进入启动加载模式。

      U—BOOT代码采用一种高度模块化的编程方式,可以很方便地在不同的硬件平台上进行移植。U—BOOT下包含多个目录,如图1所示。其中BOARD目录下存放了所有其支持的目标板子目录,比如BOARD/SMDK2440/就是本文将要用到的目标板;COMMON目录是与体系结构无关的文件,实现各种命令的C文件;CPU目录存放了其支持的CPU类型,比如arm920t、mips、mpc8260和nios等,每个特定的子目录中都包括cpu.c和interrupt.c、start.s;DRIVERS目录存放了各种外设接口的驱动程序,其中就包含本文用到的千兆网络的驱动程序;FS目录存放了一些文件系统,U—BOOT现在支持cramfs、fat、fdos、jffs2和registerfs;net目录存放的是与网络有关的代码,BOOTP协议、TFTP协议、RARP协议和NFS文件系统的实现,INCLUDE目录存放了一些相关头文件,还有对各种硬件平台支持的汇编文件、系统的配置文件和对文件系统支持的文件。

      硬件平台

      本文使用的硬件平台是基于S3C2440A的开发板和基于非PCI千兆以太网控制芯片AX88180的嵌入式网卡,如图2所示。S3C2440A是ARM920T核的16/32位RISC嵌入式微处理器,运行频率高达500MHz,开发板上有64M NAND闪存、64M SDRAM;网卡由MAC芯片AX88180、PHY芯片88E1111、RJ45等电路组成;S3C2440A目标板与网卡之间采用目标板32位扩展总线相连接,在产品设计时也可以将这两部分设计在同一块板上。 

ic72新闻中心

      驱动程序

      在U-BOOT中嵌入千兆网络功能需要设计千兆网卡驱动程序,并在U—BOOT中进行移植,在相应的硬件平台上实现通过千兆网口下载等功能。网卡驱动程序主要由初始化程序eth_init(bd_t*bd)、关闭网络设备程序eth_halt(void)、发送数据包程序eth_send(volatilevoid*packet,intlength)、接收数据包程序inteth_rx(void)等组成。初始化程序的工作主要是配置和初始化硬件,在初始化程序里可以完成对网络控制芯片AX88180和PHY芯片的配置,比如将接口设置为1000Mbps、全双工模式等。数据发送就是将上层协议打包好的数据放在发送数据缓冲区,然后由网卡发送到网络上;数据接收就是在网卡接收到网络传来的数据包产生中断后,从缓冲区将数据取出交给上层协议程序进行解包处理。中断服务程序处理网卡发送数据包后、接收到数据包后产生的中断以及PHY产生的中断等。

      网卡初始化程序如下:

      int eth_init(bd_t*bd)

      {

      memset(&axlocal,0,sizeof(AX88180_PRIVATE));

      RESET_MAC;

      DISABLE_INTERRUPT;

      WRITE_MACREG(CMD,WAKEMOD);

      tmp16=bd->bi_enetaddr[1];

      macid0_val=(tmp16<<8) │ bd>bi_enetaddr[0];

      tmp16=bd->bi_enetaddr[3];

      macid1_val=(tmp16<<8)│ bd>bi_enetaddr[2];

      tmp16=bd->bi_enetaddr[5];

      macid2_val=(tmpl6<<8)│ bd>bi_enetaddr[4];

      WRITE_MACREG(MACID0,macid0_val);

      WRITE_MACREG(MACID1,macid1_val);

      WRITE_MACREG(MACID2,macid2_val);

      ax88180_PHY_initial();

      ax88180_meida_config();

      WRITE_MACREG(RXFILTER,DEFAULT_RXFILTER);

      INT TXRX VARIABLES;

      READ_MACREG(ISR,tmp_regval);

      PRINTK(INIT_MSG,”ax88180;The interrupt status=0x%081x\n”.tmp_regval);

      if(tmp_regval)

      WRITE_MACREG(ISR,tmp_regval);

      WRITE_MACREO(CMD,RXEN │ TXEN │ WAKEMOD);

      return0;}

      驱动移植

      驱动移植是在基于S3C2440A硬件平台的U—BOOT中添加驱动程序代码和相关配置,具体如下:

      1.在drivers/目录中添加网口设备驱动程序ax88180.c和ax88180.h。

      2.在lib_arm/board.C中相应位置(参考CS8900)添加如下代码:

      #ifdef CONFIG_DRIVER_AX88180

      extern Void ax88180_get_enetaddr(uchar*addr);

      #endif

      #ifdef CONFIG_DRIVER_AX88180

      ax88180_get_enetaddr(gd一>bd>bi_enetaddr);

      #endif

      3.在include/configs/smdk2440.h中相应位置(参考CS8900)添加如下代码:
 
      #define CONFIG_DRIVER_AX88180 1 #define AX88180_BASE

      Ox08000000

      4.最后在drivers/Makefile中加入ax88180.o,重新编译生成U—BOOT即可。

      结语

      U-BOOT广泛应用在嵌入式系统中,本文阐述的方法可以使U-BOOT功能更强大、使用更方便,文中介绍的硬件平台给嵌入式系统千兆网络功能的设计提供了一定的指导。本设计虽然基于S3C2440A平台,对其它类似的系统也有很好的借鉴作用,本文介绍的方法已经在产品中得到应用,效果良好。

 
【相关文章】
·基于DDS技术的声纳信号模拟器
·一种在U—BooT中嵌入千兆网络功能的方法
·高速USB数据采集系统的设计
·基于超声波检测的倒车雷达设计
·D类音频功率放大器的评估及应用
·锁相环CD4046应用
·如何选择正确的芯片验证方法
·PB50型高压功率升压放大器及其应用
·基于AD6620的正交解调器设计
·多DSP系统实现雷达极化信号两对IQ的采集和处理
·应用TEXTl0和MATLAB进行复杂数字系统仿真
·多时钟域下同步器的设计与分析
·音频精确延时系统及其实现
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9