0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于S3C2440A嵌入式微处理器实现高速接入网络的设计

电子设计 来源:电子设计应用 作者:赵小朴,李莉,宋华 2021-05-25 11:07 次阅读

嵌入式系统广泛应用在工业测控、智能仪表、智能家庭等很多领域。随着嵌入式系统应用范围的不断扩展及网络应用的日益普及,使得越来越多的嵌入式系统需要网络功能。三星公司S3C2440A是国内应用较多的嵌入式微处理器之一,在S3C2440A应用系统中,目前只支持10/100M的网络接口,有很大的实用价值,既可以拓展S3C2440A的应用领域,也可以给其它嵌入式系统高速接入网络提供一种简单易行的参考。

设计方案

本系统主要由S3C2440A、存储器、AX88180、千兆PHY芯片88E1111、嵌入式Linux、网络驱动程序等组成嵌入式Linux内核负责系统任务的管理并集成TCP/IP协议,方便实现网络功能控制。S3C2440A负责整个系统的控制,它与AX88180以总线方式连接,是通信控制的主体。S3C2440A通过网络驱动程序实现对AX88180内部寄存器编程,实现对以太网数据的发送和接收,从而完成网络与系统之间的数据传输。AX88180与88E1111之间采用RGMII接口方式互连,负责数据传送底层协议的实现。

这里简要介绍一下S3C2440A与AX88180器件,这两个器件是通信控制的主体。

S3C2440A是基于ARM920T核的16/32位RISC微处理器,运行频率高达500MHz,主要面向手持设备以及高性价比、低功耗的应用,适用于开发各类高端手持、小型终端以及网络应用产品,具有非常丰富的片上资源,比如LCD、SDRAM、NAND FLASH、DMAAD、PWM控制器,以及UARTUSB、摄像头、触摸屏、IIC、IIS、SPI、SD、MMC、AC97等接口。

AX88180是台湾亚信公司推出的一款Non-PCI千兆以太网控制芯片,内置1000Mbps以太网媒体存取控制器(MAC);有40KBytes SRAM网络封包缓存器;硬件支持IP/TCP/UDP checksum offloads。它可以十分方便地实现与一般16/32位微处理器连接,可以象SRAM一样被访问。它符合IEEE 802.3/lEEE 802.3u/IEEE 802.3ab协议,适用于串流媒体、多媒体网络、高频宽传输等领域,如数字媒体、家用网关及IP电视等。

o4YBAGCsaieAMOOcAAF8A_FeiSU788.png

硬件设计

由于硬件电路比较复杂,这里只给出核心电路连接,S3C2440A与AX88180之间采用总线方式相连,地址总线A2-A15、数据总线D0-D31、读写信号等可以直接连接,AX88180的40M~100M时钟信号由S3C2440A提供,AX88180中断信号与S3C2440A EINT11相连,整个接口电路无需外加电路;AX88180与PHY芯片之间采用简化的千兆比特媒体独立接口RGMII接口,信号一一对应直接相连即可。

软件设计

从整体角度考虑,Linux网络系统可以分为硬件层、设备驱动层、网络协议层和应用层。在S3C2440A系统上移植有嵌入式Linux、集成TCP/IP等协议栈,应用层的程序可以自己编写也可以移植,这里我们主要分析一下设备驱动程序的实现。

在嵌入式Linux中,整个网络驱动程序的框架可分为四层,分别为协议接口层、网络设备接口层、设备驱动功能层、网络设备和网络媒介层,这个框架在内核网络模块中已经搭建完成,在设计驱动程序的时候,要做的主要工作就是根据上层网络设备接口层定义的device结构和底层具体的硬件特性,来完成设备驱动的功能。驱动程序主要由初始化、打开、关闭、数据接收及发送等函数组成。

pIYBAGCsajCACBESAADgwjJGP7o471.png

初始化函数

初始化函数完成网络设备的初始化,由数据结构device中的init函数指针来调用,加载AX88180驱动模块后,就会调用初始化过程。该首先通过检测物理设备的硬件特征来检测网络物理设备是否存在,之后配置设备所需要的资源,比如中断等。这些过程完成后,就要构造设备设备数据结构,用检测到的数据初始化其相关变量,最后向Linux内核注册设备并申请内存空间。

打开函数

打开函数在网络设备驱动程序中是在网络设备状态由down状态转为up状态时,即被激活的时候被调用,有很多AX88180及88E1111的初始化工作可以放在这里做。在驱动程序作为一个模块被装入时,打开函数还要防止模块卸载时设备处于打开状态。

关闭函数

关闭函数和打开函数做相反的工作,是在设备状态由up转为down时被调用的,作用是释放资源以减少系统负担。在驱动程序作为模块装入时,关闭函数还要减少没备被引用的次数,以便卸载驱动程序。

发送函数

发送函数是网络驱动程序的关键过程之一,它与dev-》hard_start_xmit连接,在内核通过设备向外发送数据时调用它。系统给AX88180分配一块64K的地址空间,其中8000H-FBFFH作为发送缓冲区地址,在系统调用驱动程序的xmit时,发送的数据放在一个sk_buff结构中,发送到数据缓冲区地址,再由AX88180发送到网络上。如果发送成功,hard_start_xmit释放sk_buff,返回0;如果设备暂时无法处理,则返回1。硬件在发送结束后产生中断。

中断和接收函数

中断和接收函数也是驱动程序的关键过程之一,如果有数据收到,AX88180会产生一个中断通知系统,在中断处理程序中驱动程序申请一块sk_buff(),从AX88180读出数据并放置到接收缓冲区地址0000H~7000H里,然后来填充sk_buff中的一些信息,由skb-》dev=dev判断收到帧的协泌类型,填入skb-》protocol,再把指针skb-》mac.raw指向硬件数据,然后丢弃帧头。之后还要设置skb-》pkt_type,标明链路层数据类型,最后调用netif_rX()把数据传送给协议层。

下面是发送函数部分代码:

20100727124452124.jpg

20100727124452125.jpg

20100727124452126.jpg

结语

本文介绍的千兆网络接口在S3C2440A系统中的应用方案已经得以实现,1000 Full-duplex模式下,数据传输速率可以达到200Mbp,在使用FTP下载数据时,速度可以达到4Mbps以上,是使用100M网络接口的5~6倍。如果使用其它更高速度的微处理器,网络接口的速度会更高。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5062

    文章

    18984

    浏览量

    302362
  • 存储器
    +关注

    关注

    38

    文章

    7443

    浏览量

    163541
  • 微处理器
    +关注

    关注

    11

    文章

    2246

    浏览量

    82275
收藏 人收藏

    评论

    相关推荐

    千兆网络接口在S3C2440A系统中的应用方案

    嵌入式系统需要网络功能。三星公司S3C2440A是国内应用较多的嵌入式微处理器之一,在S3C2440A应用系统中,目前只支持10/100M
    发表于 04-17 07:00

    基于微处理器S3C2440A的手持终端电源管理系统设计

    面临越来越大的压力。如何设计出性能稳定、功耗低的电源管理系统已经成为嵌入式手持终端设备开发的难点之一。本文重点介绍基于微处理器S3C2440A的手持终端电源管理系统。
    发表于 07-24 06:22

    基于S3C2440A的彩色液晶显示系统设计

    以三星公司嵌入式微处理器S3C2440A 和夏普公司3.5 英寸LCD 屏LQ035Q7DH01为基础,设计了显示硬件电路,给出了如何开发其Linux 帧缓冲设备驱动程序。
    发表于 09-24 10:51 45次下载

    基于S3C2440A的银行评价的设计

    提出了一种以S3C2440A为核心处理器的银行评价的设计方案,并结合XILINX公司的XL95144XL型CPLD,辅助S3C2440A实现
    发表于 01-15 16:59 38次下载

    基于S3C2440A嵌入式视频系统设计

    文中介绍基于嵌入式处理器S3C2440A构建的视频系统,包括硬件体系结构和软件系统及其LINUX驱动程序的设计流程。提出嵌入式视频系统的一般设计方法,满足目前
    发表于 04-07 15:44 51次下载
    基于<b class='flag-5'>S3C2440A</b>的<b class='flag-5'>嵌入式</b>视频系统设计

    32位RISC微处理器S3C2440A的用户手册免费下载

    本用户手册介绍三星的S3C2440A 16/32位RISC微处理器。三星的S3C2440A旨在为手持设备和一般应用提供低功耗、高性能的小型微控制解决方案。为了降低系统总成本,
    发表于 06-09 08:00 2次下载
    32位RISC<b class='flag-5'>微处理器</b><b class='flag-5'>S3C2440A</b>的用户手册免费下载

    基于S3C2440A和WinCE 4.2操作系统实现数字寻北仪的应用方案

    硬件和软件两部分,即嵌入式微处理器嵌入式操作系统。本文设计的寻北仪采用S3C2440A微处理器和WinCE 4.2操作系统。
    的头像 发表于 03-19 15:52 3254次阅读
    基于<b class='flag-5'>S3C2440A</b>和WinCE 4.2操作系统<b class='flag-5'>实现</b>数字寻北仪的应用方案

    嵌入式微处理器的原理和应用

    嵌入式微处理器是专为嵌入式系统设计的微处理器,它们是嵌入式系统的核心组件,负责执行程序指令、处理数据和控制其他硬件设备。与通用
    的头像 发表于 03-28 15:51 795次阅读

    什么是嵌入式微处理器嵌入式微处理器有哪些?

    嵌入式微处理器是指嵌入到特定应用系统中的微处理器,它是整个嵌入式系统的核心,由通用处理器演变而来,具有体积小、重量轻、成本低、可靠性高等优点
    的头像 发表于 03-29 11:39 917次阅读

    嵌入式微处理器的功能 嵌入式微处理器原理与应用

    设计。本文将详细介绍嵌入式微处理器的功能、原理与应用,以期给读者一个全面的了解。 一、功能 CPU处理能力:嵌入式微处理器内置的CPU核心可以处理各种算法和指令,
    的头像 发表于 05-04 14:50 1036次阅读

    嵌入式微处理器的分类特点 嵌入式微处理器作用

    嵌入式微处理器是一种专门设计用于控制和执行嵌入式系统任务的微处理器。与通用微处理器相比,嵌入式微处理器通常具有低功耗、小体积、低成本和高度可
    的头像 发表于 04-21 14:52 1202次阅读

    嵌入式微处理器有哪几类 嵌入式微处理器包含哪些重要参数

    等。在本文中,我们将详细介绍嵌入式微处理器的几类以及包含的重要参数。 一、嵌入式微处理器的几类 通用微处理器 通用微处理器是指那些不专为嵌入式
    的头像 发表于 05-04 14:58 816次阅读

    嵌入式微处理器的类型与特点 嵌入式微处理器技术的优缺点

    嵌入式微处理器是一种专门设计和应用于嵌入式系统的微处理器。相比于常规计算机系统,嵌入式系统通常具有更高的实时性、更低的功耗、较小的尺寸和成本以及更强的可靠性和稳定性要求。
    的头像 发表于 05-04 15:10 2556次阅读

    什么是嵌入式微处理器? 嵌入式微处理器的区别

    的任务或控制其他硬件设备。 嵌入式微处理器的出现可以追溯到20世纪70年代末以及80年代初。嵌入式微处理器通过集成了处理器核心、内存、输入输出控制以及其他必要的外围接口等功能,
    的头像 发表于 04-21 15:44 1448次阅读

    嵌入式微处理器的分类 嵌入式微处理器的种类和型号

    嵌入式微处理器是指内部集成了CPU、存储、外设接口等功能的微型芯片,被广泛应用于各种嵌入式系统中。嵌入式系统是指嵌入在某种设备或系统中的
    的头像 发表于 05-04 16:31 2048次阅读