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

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

3天内不再提示

基于μcosⅡ和S3C2410实现TCP/IP协议栈LwIP的应用方案

电子设计 来源:国外电子测量技术 作者:苏勇辉 2021-06-22 15:36 次阅读

随着嵌入式系统网络的日益结合,越来越多的嵌入式设备需要实现Internet网络化,支持嵌入式设备接入网络,已成为嵌入式领域重要的研究方向。而目前嵌入式系统中大量应用低速处理器,受内存和速度限制,实现完整的TCP/IP协议较为困难,LwIP作为较为成熟的嵌入式TCP/IP协议栈受到了广泛的应用。

1 硬件平台

通信系统的硬件平台由以下几个部分组成:S3C2410主CPU芯片控制嵌入式外围设备的存储、通信、保护、调试、显示等操作;DSPFPGA负责信号数据的采集和处理;CS8900A负责网络数据的收发;其他部分还包括串口RS232的通信、LCD的数据显示、数据存储FLASH和SDRAM以及其他硬件控制等。本硬件通信平台的原理框图如图1所示。

嵌入式操作系统选用的是μcosⅡ,μcosⅡ作为目前市场上最小的嵌入式操作系统得到了广泛的应用,提供任务问通信、同步使用的信号量、邮箱和消息队列;具有良好的可裁剪性。

2 TCP/IP协议栈LwIP的移植

LwIP由几个模块组成,除TCP/IP协议的实现模块外(IP,ICMP,UDP,TCP),还有包括许多相关支持模块。这些支持模块包括:操作系统模拟层、缓冲与内存管理子系统、网络接口函数及一组Internet校验和计算函数。缓冲与内存管理子系统等大部分模块LwIP都已经独立出来,在移植的过程中不需要改动,我们只需要实现操作系统模拟层以及底层硬件驱动就可以正常工作。

操作系统模拟层存在的目的主要是为了方便LwIP的移植,它在底层操作系统μcosⅡ和LwIP之间提供了一个接口。这样,我们在移植LwIP到一个新的目标系统时,只需修改这个接口即可。操作系统模拟层需要实现信号量操作函数、邮箱操作函数和线程操作函数三类。

为支持操作系统模拟层,还需要完成与CPU或编译器相关的定义,如数据类型、数据长度、字的高低位顺序等,这些应该与实现μC/OS-Ⅱ时相一致。另外需要注意的是由于一个网络可能由不同的体系结构的CPU组成,其字节顺序可能有两种方式:Little-endian顺序和Big-endian顺序。需要注意字节顺序的相互匹配。

3 底层网络驱动的实现

底层网络驱动的框架LwIP已经为我们实现了绝大部分(如图2所示),我们只需要在作者设计好的框架中完成与底层硬件相关的部分即可。即我们只需要实现与硬件相关的网卡初始化函数网络数据包发送函数和网络数据包接收函数。

本文所采用的底层网络芯片CS8900A是C IRRU SLO G IC公司生产的低功耗、性能优越的16位以太网控制器,功能强大。突出特点是使用灵活,其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整,通过内部寄存器的设置来适应不同的应用环境。它的主要特点是符合IEEE 802.3以太网标准;片内带有4K字节的RAM来存储发送和接收数据;与主机之间的数据通讯方式有I/O模式、Memory模式和DMA模式,在电路设计时可根据具体情况灵活选择;带有传送、接收低通滤波的10Base2T连接端口;支持10Base2,10Base5和10Base2F的AU I接口;自动生成报头,自动进行CRC检验,冲突后自动重发;全双工和半双工可选模式。

CS8900A初始化部分的主要内容如下:

软件复位,并检查复位完成标志是否置位;

设定Memory工作模式,使其4K内存地址映射到主机内存中;

设定临时使用的以太网物理地址,真实地址需要向权威机构申请;

设定接收帧的类型,至少要能接收广播;

确定数据的传送方向,一般设为全双工方式;

中断使能允许;

使能接收中断;

确定CS8900A的中断管脚号,根据硬件线路使用情况来确定;

接收发送使能。

其中需要说明的是由于TCP/IP通信非常频繁,在ARM中接收发送数据采用中断模式占用资源太多,因此本文采用的是查询方式,也可以保证数据的基本通信。

CS8900A的数据发送基本流程如下:在收到由主机发来的数据报后,侦听网络线路。如果线路忙,它就等到线路空闲为止,否则,立即发送该数据帧。发送过程中,首先,它添加以太网帧头(包括先导字段和帧开始标志),然后,生成CRC校验码,最后,将此数据帧发送到以太网上。数据发送流程图如图3所示。

数据接收时,它将从以太网收到的数据帧在经过解码、去掉帧头和地址检验等步骤后缓存在片内。在CRC校验通过后,它会根据初始化配置情况,通知主机CS8900A收到了数据帧,然后传到主机的存储区中。数据接收流程图如图4所示。

4 上层Socket基本通信实现

LwIP已经实现了大部分的Socket网络连接函数,我们要实现Socket,的基本通信,只需要在此基础上通过调用其Socket网络连接函数实现简单的客户机/服务器模式即可。仪器作为服务器方,主机作为客户机进行连接。实现结果如图5所示,发送程控命令FREQ 300,返回FREQ 300.000000MHzOK表示设置成功。

5 结束语

本系统已经在场强仪AV3942中使用,能够通过网络对其进行远程控制,实践证明,该系统简便实用,能够方便、灵活的实现各种通信系统的互联。

责任编辑:gt

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

    关注

    554

    文章

    8059

    浏览量

    350185
  • FPGA
    +关注

    关注

    1630

    文章

    21796

    浏览量

    605727
  • 嵌入式
    +关注

    关注

    5092

    文章

    19176

    浏览量

    307440
收藏 人收藏

    评论

    相关推荐

    lwip协议代码分析

    lwIP(Lightweight IP)是一个为嵌入式系统设计的轻量级TCP/IP协议
    的头像 发表于 10-29 17:37 2096次阅读
    <b class='flag-5'>lwip</b><b class='flag-5'>协议</b><b class='flag-5'>栈</b>代码分析

    实时操作系统μC/OS-Ⅱ下TCP/IP协议实现,不看肯定后悔

    基于µC/OS II的网络平台介绍开源TCP/IP协议LwIP是什么
    发表于 04-28 06:44

    斯道s3c2410

    斯道s3c2410
    发表于 03-25 11:52 21次下载

    s3c2410 pdf datasheet 下载

    s3c2410 pd
    发表于 07-21 14:12 430次下载

    s3c2410开发板原理图,s3c2410原理图pcb

    s3c2410
    发表于 09-09 15:41 954次下载
    <b class='flag-5'>s3c2410</b>开发板原理图,<b class='flag-5'>s3c2410</b>原理图pcb

    s3c2410 datasheet

    s3c2410 da
    发表于 03-14 16:05 166次下载

    基于S3C2410的Linux移植代码

    基于S3C2410的Linux移植代码
    发表于 03-28 09:50 32次下载

    基于S3C2410的嵌入式串口通信设计

    本文通过基于S3C2410的嵌入式串口通信的实现,按照嵌入式系统的软、硬件结构组成,较为详细地介绍了串行通信的硬件电路和软件实现方法。该系统的硬件主体设计以三星S3C2410
    发表于 12-23 16:11 120次下载

    基于S3C2410的RTC模块应用设计

    基于S3C2410的RTC模块应用设计 摘 要:本文简要介绍了S3C2410嵌入式微处理器,分析了RTC(Real-time clock)硬件构架及其工作
    发表于 04-08 23:13 1621次阅读
    基于<b class='flag-5'>S3C2410</b>的RTC模块应用设计

    Lwip协议的设计方案

    LWIPTCP/IP协议的一种实现LWIP的主
    发表于 09-16 15:18 33次下载
    <b class='flag-5'>Lwip</b><b class='flag-5'>协议</b><b class='flag-5'>栈</b>的设计<b class='flag-5'>方案</b>

    基于S3C2410的开发原理图

    基于S3C2410的开发原理图免费下载。
    发表于 07-08 14:56 66次下载

    介绍tcp_ip协议lwip的特点

    简介了嵌入式tcp_ip协议lwip的基本信息
    的头像 发表于 07-03 13:05 3688次阅读

    基于S3C2410的CAN总线通讯设计与开发

    基于S3C2410的CAN总线通讯设计与开发说明。
    发表于 04-20 10:28 16次下载

    UM1713_如何应用stm32cube的中间件LwIP_TCPIP协议

    UM1713_如何应用stm32cube的中间件LwIP_TCPIP协议
    发表于 11-22 19:16 1次下载
    UM1713_如何应用stm32cube的中间件<b class='flag-5'>LwIP_TCP</b>、<b class='flag-5'>IP</b><b class='flag-5'>协议</b><b class='flag-5'>栈</b>

    LwIP协议源码详解—TCP/IP协议实现

    电子发烧友网站提供《LwIP协议源码详解—TCP/IP协议
    发表于 07-03 11:22 3次下载