基于uCLinux和S3C4510B的网络通信设计
发布时间:2008/5/29 0:00:00 访问次数:431
摘要:结合工程实例,基于s3c4510b微处理器,构建以dm9161为以太网物理层接口的低功耗、高速硬件电路;在嵌入式操作系统uclinux上实现网络通信工程的程序编写,对于网络通信工程在嵌入式设备中的应用有很好的借鉴意义。
关键词:uclinux s3c4510b 网络通信 dm9161 嵌入式系统
引言
linux是一种很受欢迎的操作系统,与unix系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于嵌入式设备。uclinux正是在这种氛围下产生的。在uclinux这个英文单词中,u表示micro,是“小”的意思;c表示control,是“控制”的意思,所以uclinux就是micro-control-linux,字面上的理解就是“针对微控制领域而设计的linux系统”。它也是针对无mmu(内存管理单元模块)的微处理器设计的操作系统。s3c4510b就是属于该类的微处理器。
samsung公司的s3c4510b是基于以太网应用系统高性价比16/32位risc微控制器,内含一个由arm公司设计16/32位arm7tdmi risc处理器核。arm7tdmi为低功耗、高性能的16/32核,最适合用于对价格及功耗敏感的应用场合。除了arm7tdmi核以外,s3c4510b还有许多重要的片内外围功能模块,其中就有1个以太网控制器,用于s3c4510b系统与其它设备的网络通信工程。在s3c4510b的网络控制平台上移植了uclinux操作系统,并在这个嵌入式平台上实现网络控制的各项功能。本文的叙述的网络通信工程就是其中最主要的功能。
1 基于s3c4510b以太网电路的设计思路与实现
作为一款优秀的网络控制器,基于s3c4510b的系统若没有以太网接口,其应用价值就会大打折扣,因此,就整个系统而言,以太网接口电路应是必不可少的,但同时也是相对较复杂的。从硬件的角度看,以太网接口电路主要由mac控制器和物理层接口(physical layer,phy)两大部分构成。
s3c4510b内嵌一个以太网控制器,支持媒体独立接口(media independent interface,mii)和带缓冲dma接口(buffered dma interface,bdi),可在半双工或全双工模式下提供情报0m/100mbps的以太网接入。在半双工模式下,控制器支持csma/cd协议,在全双工模式下支持ieee802.3mac控制层协议。因此,s3c4510b内部实际上已包含了以太网mac控制,但并未提供物理层接口,故需外接一片物理层芯片,以提供以太网的接入通道。
常用的单口10m/100mbps高速以太网物理层接口器件主要有rtl8201、dm9161等,均提供mii接口和传统7线制网络接口,可方便地与s3c4510b接口。以太网物理层接口器件主要功能一般包括:物理编码子层、物理媒体附件、双绞线物理媒体子层、10base-tx编码/解码器和双绞线媒体访问单元等。
在该设计中,使用dp9161作为以太网的物理层接口。dm9161是一款低功耗、高性能的cmos芯片,支持10m和100m的以太网传输,它起编码、译码输入和输出数据的作用。它与s3c4510b的引脚连线如图图1所示。
由于s3c4510b片内已民用有带mii接口的mac控制器,而dm9161也提供了mii接口,各种信号的定义也很明确,因此dm9161与s3c4510b的连接时序衔接,可以达到很好的网络信号传递的目的。图2为dm9161在本系统中的实际应用电路(图中右下方的1、2、3以及14、15、16分别与网络隔离变压器相应引脚相连)。
s3c4510b的mac控制器可通过mdc/mdio管理接口控制多达斡尔1个dm9161,每个dm9161应有不同的phy地址(可从00001b~11111b)。当系统复位时,dm9161锁存引脚9、10、12、13、15的初始状态作为与s3c4510b管理接口通信工程的phy地址;但该地址不能设为00000b,否则dm9161进入掉电模式。
信号的发送和接收端应通过网络隔离变压器和rj45接口接入传输媒体,实际应用电路如图书室所示。
图2
2 linux下的网络编程协议分析
linux下的tcp/ip网络协议栈的各层之间是通过一系列互相连接层的软件来实现internet地址族的,结构层次如图4所示。
其中bsd socket层由专门用来处理bsd socket的通用套接字管理软件来处理,它由inet socket层来支持。inet socket为基于ip的协议tcp和udp管理传输端点。udp(用户数据报协议)是一个无连接协议,而tcp(传输控制协议)是一个可靠的端对端协议。传输udp包的时候,linux
摘要:结合工程实例,基于s3c4510b微处理器,构建以dm9161为以太网物理层接口的低功耗、高速硬件电路;在嵌入式操作系统uclinux上实现网络通信工程的程序编写,对于网络通信工程在嵌入式设备中的应用有很好的借鉴意义。
关键词:uclinux s3c4510b 网络通信 dm9161 嵌入式系统
引言
linux是一种很受欢迎的操作系统,与unix系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于嵌入式设备。uclinux正是在这种氛围下产生的。在uclinux这个英文单词中,u表示micro,是“小”的意思;c表示control,是“控制”的意思,所以uclinux就是micro-control-linux,字面上的理解就是“针对微控制领域而设计的linux系统”。它也是针对无mmu(内存管理单元模块)的微处理器设计的操作系统。s3c4510b就是属于该类的微处理器。
samsung公司的s3c4510b是基于以太网应用系统高性价比16/32位risc微控制器,内含一个由arm公司设计16/32位arm7tdmi risc处理器核。arm7tdmi为低功耗、高性能的16/32核,最适合用于对价格及功耗敏感的应用场合。除了arm7tdmi核以外,s3c4510b还有许多重要的片内外围功能模块,其中就有1个以太网控制器,用于s3c4510b系统与其它设备的网络通信工程。在s3c4510b的网络控制平台上移植了uclinux操作系统,并在这个嵌入式平台上实现网络控制的各项功能。本文的叙述的网络通信工程就是其中最主要的功能。
1 基于s3c4510b以太网电路的设计思路与实现
作为一款优秀的网络控制器,基于s3c4510b的系统若没有以太网接口,其应用价值就会大打折扣,因此,就整个系统而言,以太网接口电路应是必不可少的,但同时也是相对较复杂的。从硬件的角度看,以太网接口电路主要由mac控制器和物理层接口(physical layer,phy)两大部分构成。
s3c4510b内嵌一个以太网控制器,支持媒体独立接口(media independent interface,mii)和带缓冲dma接口(buffered dma interface,bdi),可在半双工或全双工模式下提供情报0m/100mbps的以太网接入。在半双工模式下,控制器支持csma/cd协议,在全双工模式下支持ieee802.3mac控制层协议。因此,s3c4510b内部实际上已包含了以太网mac控制,但并未提供物理层接口,故需外接一片物理层芯片,以提供以太网的接入通道。
常用的单口10m/100mbps高速以太网物理层接口器件主要有rtl8201、dm9161等,均提供mii接口和传统7线制网络接口,可方便地与s3c4510b接口。以太网物理层接口器件主要功能一般包括:物理编码子层、物理媒体附件、双绞线物理媒体子层、10base-tx编码/解码器和双绞线媒体访问单元等。
在该设计中,使用dp9161作为以太网的物理层接口。dm9161是一款低功耗、高性能的cmos芯片,支持10m和100m的以太网传输,它起编码、译码输入和输出数据的作用。它与s3c4510b的引脚连线如图图1所示。
由于s3c4510b片内已民用有带mii接口的mac控制器,而dm9161也提供了mii接口,各种信号的定义也很明确,因此dm9161与s3c4510b的连接时序衔接,可以达到很好的网络信号传递的目的。图2为dm9161在本系统中的实际应用电路(图中右下方的1、2、3以及14、15、16分别与网络隔离变压器相应引脚相连)。
s3c4510b的mac控制器可通过mdc/mdio管理接口控制多达斡尔1个dm9161,每个dm9161应有不同的phy地址(可从00001b~11111b)。当系统复位时,dm9161锁存引脚9、10、12、13、15的初始状态作为与s3c4510b管理接口通信工程的phy地址;但该地址不能设为00000b,否则dm9161进入掉电模式。
信号的发送和接收端应通过网络隔离变压器和rj45接口接入传输媒体,实际应用电路如图书室所示。
图2
2 linux下的网络编程协议分析
linux下的tcp/ip网络协议栈的各层之间是通过一系列互相连接层的软件来实现internet地址族的,结构层次如图4所示。
其中bsd socket层由专门用来处理bsd socket的通用套接字管理软件来处理,它由inet socket层来支持。inet socket为基于ip的协议tcp和udp管理传输端点。udp(用户数据报协议)是一个无连接协议,而tcp(传输控制协议)是一个可靠的端对端协议。传输udp包的时候,linux