问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Ether_Init(DV_DEVICE_ENTRY *device) 参数不理解

发布网友 发布时间:2022-05-20 12:27

我来回答

1个回答

热心网友 时间:2023-10-19 14:40

A Design of Network Interface and Driver based on S3C2510 and Nucleus
摘 要:本文介绍嵌入式微处理器S3C2510的网络接口,并使用RTL8201芯片为之设计了硬件接口电路;设计实现了基于Nucleus操作系统的驱动程序,完成以太网控制器的初始化设置、收/发中断例程和利用缓冲链表数据结构向TCP/IP协议层交换数据。运行实测表明接口工作性能稳定可靠,满足网络流媒体数据处理的要求。
关键词:S3C2510;Nucleus操作系统;网络接口;驱动程序
Abstract: This paper introces the network interface of S3C2510 embedded microprocessor, and the hardware circuit with RTL8201; the driver program based on Nucleus operating system is also designed, which includes Ethernet controller initializing, receiving/transmitting interrupt service routines, and data transferring to TCP/IP layer with buffer chains. Actual running test indicates the design is stable and reliable, and meets the requirement of network streaming media data processing.
Keywords: S3C2510; Nucleus OS; network interface; driver

1 引言
S3C2510是三星公司推出的一款面向网络通信的高性能嵌入式处理器,内置ARM940T核和指令/数据Cache,集成了Ethernet、PCI、UART、I2C、USB、DMA等丰富的接口资源,系统时钟可达133MHz,非常适合网络流媒体数据处理。在某型号嵌入式网络视频服务器研发中,采用S3C2510 和Philips公司的多媒体DSP处理器TM1300组成主从式架构,TM1300主要负责视音频数据的采集和压缩编码,并通过PCI总线与S3C2510交换数据和控制命令;S3C2510作为主控制器,运行Nucleus实时操作系统,负责整个系统设备功能的初始化设置和管理,并通过服务器任务,将压缩编码后的视音频数据以IP包的形式发送到网络上,由远程客户端PC接收和解压播放,实现视音频的远程实时监控。根据以上方案,需要为S3C2510设计以太网接口和实现在Nucleus操作系统上的设备驱动。

2 S3C2510以太网控制器
S3C2510 有2个以太网控制器,具有以下主要特点:
 与IEEE802.3完全兼容的10M/100Mbps 的以太网接入,支持MII接口和传统7线SNI接口;
 带有缓冲的突发模式DMA引擎,收/发缓冲各256字节;
 MAC收/发FIFO,其中发送80字节,接收16字节;
 CAM寄存器可存储多达21个MAC地址;
 STA功能支持对多个PHY芯片的访问和控制;
 数据对齐逻辑;
 流量控制功能。
和其他一些嵌入式微处理器不同的是,S3C2510的以太网控制器自带DMA引擎,并且具有收/发各256字节的缓冲,和MAC收/发FIFO一起,组成了二级缓冲结构,能有效缓和CPU的迟滞。FIFO的8位宽度数据经过BDMA缓冲拼成32位宽度,再进入系统AMBA总线,达到很高的数据吞吐能力。BDMA通过BD(缓冲描述符)指向内存的数据帧缓冲区,当BDMA读/写数据帧缓冲时,BD的ownership位=1,结束后清掉该位,同时产生中断,将帧缓冲转给CPU处理。在中断设计上,收/发中断各自独立作为系统内部中断源,可充分发挥多任务操作系统的优势,提高中断处理效率。

3 硬件接口设计
S3C2510 内部实际上已包含了以太网MAC 控制,但并未提供物理层接口,因此,需外接一片物理层芯片以提供以太网的接入通道。本系统使用RTL8201作为以太网的物理层接口芯片。它的主要功能包括物理编码子层、物理媒体附件、双绞线物理媒体子层、10BASE-TX编码/编解码器和双绞线媒体访问单元等;同时,带有MII接口,可以简单方便地与S3C2510连接。物理信号的发送和接收端通过网络隔离变压器16ST8515连接到RJ45上。S3C2510和RTL8201接口示意图见图1。

图1 S3C2510以太网接口电路

S3C2510以太网控制器的STA功能可以可通过MDC/MDIO 管理接口访问和控制31个RTL8201。当系统复位时,RTL8201 会锁存PHY 地址引脚PAD0~3 的初始状态作为与S3C2510 管理接口通信的PHY 地址,但该地址不能设为00000B,否则RTL8201 进入掉电模式。由于RTL8201 的PHY 地址引脚也复用为LED 引脚,因此不能直接接到电源或地,应通过5.1K 的电阻上拉或下拉,决定RTL8201 的PHY 地址。在图1所示的连接方法中,RTL8201 的PHY 地址设为00001B。在正常工作时,LED 显示RTL8201 的工作状态,当不需要LED 状态显示时,LED和150欧的电阻可去掉。

4 驱动程序设计
系统选用的运行环境是Nucleus PLUS,是Mentor Graphics公司的嵌入式多任务实时操作系统,源代码开放,具有良好的可移植性和易用性,能支持当前流行的大多数处理器。它提供NET网络组件,支持TCP/IP、UDP、DHCP等协议。为此,在Nucleus上设计了网络驱动程序,总体结构按功能分为设备初始化和收发中断处理两大部分:
4.1 设备初始化
通过系统创建一个网络初始化任务Net_Init_Task来实现,主要完成Nucleus Net协议栈和相关数据结构的初始化,向操作系统注册用于处理收/发的低级中断例程,初始化以太网控制器的硬件寄存器设置。主要代码如下:
VOID Net_Init_Task(UNSIGNED argc, void *argv)
{ NU_Init_Net(&NET_Memory_Pool);/*初始化协议栈*/
Ether_Devices[0].dv_init = Ether_Init;/*向Net设备数据结构注册设备初始化函数*/
NU_Register_LISR( Tx_Vector, Tx_LISR, &old_vect_routine );/*注册发送低级中断例程,Tx_Vector为发送中断号 */
NU_Register_LISR( Rx_Vector, Rx_LISR, &old_vect_routine ); /*注册接收低级中断例程,Rx_Vector为接收中断号*/
NU_Create_HISR(&Rx_HISR_Control, "Ether_Rx_HISR ", Rx_HISR, 1, pointer, 2048); /*注册接收高级中断,用于设置事件*/
NU_Init_Devices(Ether_Devices, 1);/*初始化设备,里面会调用Ether_Init */
}
Ether_Init(DV_DEVICE_ENTRY *device)负责对以太网控制器初始化,具体步骤如下:
①关闭INTMSK中的以太网收/发中断,并操作BDMARXCON、BDMATXCON、MACCON进行软件复位;
②设置STADATA、STACON寄存器对PHY芯片的功能进行管理(如果系统只有1个PHY芯片则可省略);
③设置CAMCON寄存器允许地址比对和接收广播帧;将本机MAC地址写入CAM寄存器并使能CAMEN对应位;
④设置BDMARXLEN寄存器的BRxBS(BD指向的缓冲块大小)和BRxMFS(数据帧最大长度);
⑤设置MACCON寄存器的Full_Duplex位=1;
⑥设置BDMARXDPTR和BDMATXDPTR分别指向收/发BD起始地址,并初始化BD,指向内存的数据缓冲区;
⑦设置BDMATXCON的TxBD个数和发送域值、MACTXCON的填充和校验,打开BMTXINTEN的帧发送结束中断;
⑧设置BDMARXCON的RxBD个数和允许接收、MACRXCON的允许接收,打开BMRXINTEN的帧接收结束中断;
⑨重新打开INTMSK中的以太网收/发中断,准备响应中断请求。

4.2收/发中断处理
因为S3C2510的以太网收/发中断是2个独立的内部中断源,所以,采用2个低级中断例程分别处理。在Tx_LISR中,检查并清除BMTXSTAT寄存器状态(包括中断标志),检查当前TxBD状态,如果上一帧发送是正常结束,且ownership位=0,则重新为BD赋值,指向待发送帧缓冲,然后ownership位=1,将帧缓冲的控制权交给BDMA控制器,使能发送,以太网控制器自动为发送数据加上同步位、分割位、校验位以及填充字段并将以太帧发送出去。在Rx_LISR中,检查并清除BMRXSTAT寄存器状态,检查当前RxBD状态,如果是正常接收,从帧缓冲取出数据,然后重新将帧缓冲控制权交给BDMA控制器,使能接收;为简化操作,帧缓冲大小设为1552字节,并且在MACRXCON中禁止接收超长帧(>1518字节),避免出现1帧分装在多个缓冲的情况。
驱动程序利用Nucleus的内存管理特性,建立一个空闲缓冲链表(MEM_Buffer_Freelist),当准备从网络接收数据时,向空闲缓冲链申请一个接收缓冲块,如果申请成功,将缓冲块加入接收数据链表(MEM_Buffer_List)中,并且据此设置RxBD,启动BDMA将网络数据填入缓冲块中,之后在Rx_LISR中激活一个高级中断例程(Rx_HISR)来设置一个Buffers_Available事件,通知上层TCP/IP协议栈处理接收到的数据包;往外发送数据时,先释放掉发送缓冲队列(device->dev_transq)中已经发送过数据缓冲,如果队列中还有数据等待发送,则设置TxBD,启动BDMA将数据发送出去。
整个网络驱动程序的模块结构如图2所示。

图2 网络驱动程序的模块结构

5 结语
S3C2510内部集成ARM940T核和2个以太网控制器,具有非常强的网络数据处理能力。在实际测试运行中,对1路视频和音频信号分别按H.264和G.729标准进行压缩编码,输出CIF格式图像、码率在500Kbps时,可以支持多达64个网络客户端连接,网络流量近40Mbps,视音频回放清晰、流畅、稳定。这说明本设计是成功可靠的,能满足网络视频服务器传输流媒体数据的需要。
本文作者创新点:为以S3C2510为核心的网络视频服务器设计了以太网硬件接口,并设计实现了Nucleus操作系统上的驱动程序,完成对以太网接口初始化和数据收发的中断处理,通过建立缓冲链表数据结构,实现了协议层和硬件层的数据传递。

参考文献
[1] 王文杰,栾新. 基于嵌入式调试器的网络通信方法设计与实现[J].微计算机信息,2007,23(1-2):31-33.
[2] 庞继勇,李维英,王竟.网络通信处理器S3C4510B的网口驱动设计[J].单片机与嵌入式系统应用,2004(4):26-28.
[3] Samsung Electronics. S3C2510 Datasheet. 2002
[4] Mentor Graphics Corporation. Nucleus PLUS Reference Manual. 2005
[5] Mentor Graphics Corporation. Nucleus NET Reference Manual. 2006
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
保温钉保温钉 《纯爱恋歌Ⅰ》txt全集下载 Win10实时防护无法打开怎样关闭? 网上银行添加下挂卡(猪福卡)可以交易吗? 违章显示已处理未交款 和女友闹矛盾,她说分手很多次了。今天我故意发我和前女友照片在空间并发... 我跟我男朋友分手了,我在朋友圈发了朋友送的花,还说重新开始新的恋_百... ...去送东西。他没要,他发了一个朋友圈,大家看看什么意思? 当一个人看着你发一些话在朋友圈故意气他,结果他又把你拉黑了,什么意思... 写以个作文题目为“从明天起做一个……的人” mdc和MDIO在电子行业中的意思 求《网球王子》中小时候的幸村出场的集数 网球王子全国大赛幸村出现的集数 新网球王子幸村精市多少集有比赛? 《网球王子》中幸村精市住院的场景都在哪几集出现?从车上下来时摔倒又在哪集出现呢? 急!!!网球王子中立海大学的部长幸村精市哪几集出现过? 网王Q版里,幸村精市出现过么?出现的话在哪一集? 怎样换希箭牌马桶的电路板? 《网球王子》中,立海大*幸村精市在哪几集有出场?别人的回忆也行。 箭牌法恩莎马桶盖板用久无缓降功能自动掉落,教你拆出缓降轴更换 幸村精市 新网王的出场是哪几集 请问在网球王子全国大赛的动画里幸村精市都在哪几集出现了?麻烦大家了!迫切想知道! 新网球王子幸村出场集数 幸村精市哪几集出场 网王的幸村精市出场集数 网王中哪几集有幸村精市出场? 什么是磨砂粉? 卡萨帝有款洗衣机下市了? 卡萨帝洗衣机专柜和官网卖的一样吗 电脑字体小~图标小,,各种都小怎么办? SMI和 MII 能不能告诉告诉我是区别在哪里??? 酉阳新能源车充电桩分布点 _百度问一问 四川雅西高速有充电桩吗? 从二广高速到四川省南充市有汽车充电桩吗? 四川电瓶车爆燃事件引热议,为何小区仍有车在楼道充电? 我想从成都开电动汽车去汶川,但是担心没有充电桩,请问汶川那边电动汽车能冲上电吗,在什么地方? 电商如何做好童装,孩童用品 请问,做电商几岁的孩子能做电商?对人有那些要求?做电商需要学习些什么? 在家带孩子,想做做电商,需要去学习下吗? 怎么评价好孩子电商事业部 孩子想学习电子商务专业,有什么适合的工作吗? 济南大儿童一班电子商务有限公司怎么样? 不想让孩子成为留守儿童,是否可以通过从事传奇今生等社交电商来改变这一局面呢? 一级倒立摆系统用什么传感器好? abs 工作原理是?根据物理知识 滑动摩擦比滚动摩擦大 为什么出现个防抱死~~~ 色卡7544u 是什么颜色 刘德华演唱会你是我的骄傲用粉丝图片拼成的刘德华大头像 汽车保险怎么买实用 word表格中序号怎么自动生成