ARM硬件平台上基于UCOS移植Lwip网络协议栈
1硬件平台 1
1.1硬件平台简介 1
1.2 硬件设计及电路原理图 2
2. Keil 开发工具及Keil工程简介 6
2.1 Keil开发工具 6
2.2 Keil工程简介 6
2.3 链接文件、启动文件分析 6
3. UCOS移植 11
3.1 ucos简介 11
3.2 ucos移植总述 11
3.3 和移植UCOS有关的ARM芯片知识 11
3.4 系统堆栈和UCOS的任务堆栈 14
3.5 系统时钟 14
3.6 任务级任务切换 14
3.7 中断级任务切换 16
4.Lwip移植 18
4.1 lwip简介 18
4.2 lwip移植总述 18
4.3移植lwip操作系统模拟层 19
4.4 根据lwip提供的软件架构编写相应的网卡芯片驱动 27
4.5 移植完成后测试TCP/IP协议栈 35
4.6 设计并实现简单的WEB服务器 37
1.硬件平台
1.1硬件平台简介
为保证网络协议栈的顺利移植,选用了LPC2220作为主控芯片,RTL8019AS作为网卡芯片,使用HR901170A进行电平转换、滤波。
LPC2220是Philips公司推出的微处理器,片上有64K的RAM空间,通过总线很容易再扩展ROM和RAM。芯片还拥有丰富的IO接口以及多种中断源,还集成了多种定时器、PWM等,另外,该芯片内部集成了很多串行通讯协议,如SPIUART等。
RTL8019AS是由台湾Realtek公司生产的以太网控制器。他符合EthernetII与IEEE802.3标准,100脚的PQFP封装,采用全双工收发并可同时达到10Mb/s的速率,内置16kB的SRAM,支持8/16位数据总线,8个中断申请线以及16个I/O基地址选择。
HR901170A是汉仁电子有限公司生产的RJ45接口连接器(带网络变压器/滤波器),该连接器满足IEEES02.3和IEEE902.3ab标准,能够较好地抑制电磁干扰。通过HR901170A系统就可以连接到以太网上。
基于LPC2220和RTL8019AS的上述特点,我们使用此款芯片可以设计出满足移植Lwip网络协议栈所需要的硬件运行环境。
1.2 硬件设计及电路原理图
图1.2-1硬件电路连接图1
图1.2-2硬件电路连接图2
RTL8019AS芯片工作方式分为3种:①跳线方式,网卡的i/o和中断由跳线决定。②即插即用方式,由软件进行自动配置plug and play。③免跳线方式,网卡的i/o和中断由外接的93c46里的内容决定。在嵌入式应用场合,为了节约成本,一般不使用93c46的,可以降低成本,同时又减少连线。我们选择使用跳线模式,使用此模式的硬件设置方式为第65引脚(JP)接高电平,如图1.2-2硬件电路连接图2所示。
硬件复位引脚33(RSTDRV),此引脚为网卡芯片硬件复位引脚,RSTDRV为高电平有效,至少需要800ns的宽度。由硬件电路图可知,此引脚连接到LPC2220的P0.8上。
中断引脚(INT7-0)为97-100,1-4 共有8个中断引脚,但使用时只是用一个中断引脚,选择哪个引脚作为中断信号是根据[80-78][IRQS2-0]来决定的,根据电路图可IRQS2-0这三个引脚悬空,RTL8019AS内部有下拉电阻,故IRQS2-0这三个引脚电平都为0,根据手册可知,选择的是INT0作为中断源引脚,此引脚连接到LPC2220的P0.9引脚。
64脚(AUI),该引脚决定使用aui还是bnc接口。我们用的网卡的接口一般是bnc的,很少用aui。bnc接口方式支持8线双绞或同轴电缆。高电平时使用aui接口,悬空为低电平,使用bnc接口。我们将该引脚悬空即可。
网络接口类型由74,77(PL0,PL1)引脚决定,我们使用第一种自动检测就可以了。会自动检测接口类型然后进行工作。自动检测是用同轴还是双绞线。这两个引脚内部存在下拉电阻,悬空即可。
芯片的brom地址由以下引脚72,71,69,68,67(BS4..BS0)决定,在嵌入式领域一般都不用该brom。brom是bootrom的缩写。在电脑里用来做无盘工作站时候用到,可以从网卡进行引导,而不是从a盘,c盘等引导系统。故悬空即可。
RTL8019AS支持3支可编程LED灯,电路连接见原理图。
RTL8019AS与主控芯片间通讯的输入/输出地址共有32个,地址偏移量为00H-1FH。
RTL8019AS的IO基地址在跳线模式下由[85-84,82-81] [IOS3-0]这四个引脚状态决定,电路图中这四个引脚悬空,故这四个引脚状态都为0,根据数据手册可知RTL8019AS的IO基地址为300H,将300H化成二进制数值00110000 0000,很明显地址中第8、9为地址为1,第6、7位和10-19位全部为0。我们仅需要控制第0-4位地址,就可以产生00H-1FH这32个偏移量。电路原理图中SA8、SA9接+5v,SA10-SA19接的是地。
电路图中SA0-SA4分别接的是LPC2220的A1-A5引脚,而SA5接的是NET_nCS引脚。
图1.2-2硬件电路连接图3
NET_nCS的信号是根据nCS3(BANK3的片选信号)和A22地址线信号产生的。
数据总线SD0-SD15连接到LPC2220的D0-D15,组成16bit总线。
产生00H-1FH的偏移量需要NET_nCS信号为低。我们总结一下,我们的RTL8019AS需要的地址是300H-301FH,硬件连线决定了这个地址偏移量。我们将RTL
ARM硬件平台UCOS移植网络协议 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)