基于物联网的嵌入式以太网终端平台设计与实现

发布者:ww313618最新更新时间:2014-11-06 来源: eefocus关键字:AT91SAM7X512  嵌入式系统  以太网  LwIP  物联网 手机看文章 扫描二维码
随时随地手机看文章

物联网是在互联网的基础上,将用户与物品或者物品与物品用互联网进行连接,并通过互联网进行信息交换和通信的一种概念。物联网主要通过信息采集设备以及能够将这些信息采集设备接入互联网的终端平台来实现。近年来,嵌入式系统以其功能完善,设计方案灵活,功耗可控制等特点,已广泛应用于生活、商业、医疗以及工业等各个领域。比起通用计算机来,嵌入式系统具有针对性更强、体积更 小,成本更低等优点,是物联网领域应用设计的首选方案。对于一些数据量不大,传输速率要求不高的应用,要考虑用较低的成本实现最可靠的物联网服务。

一. 平台硬件设计

1.1 平台结构及原理

该平台采用ATMEL公司AT91SAM7X512处理器作为主控芯片,该处理器内部集成了以太网控 制器、512kbytes FALSH以及128kbytes SRAM。只需外接一片以太网物理层(PHY)收发芯片DM9161和一个网络变压器HR601680,即可构成以太网终端硬件平台。 AT91SAM7X512采用3.3 V和1.8 V双工作电压,使用频率为18.432 MHZ的晶振作为时钟电路的振荡源,调试电路采用标准的20针JTAG仿真调试接口。该方案成本低,功耗小,并且所用芯片集成度很高因而保证了系统的稳定 性。

AT91SAM7X512的以太网控制模块实现了一个与IEEE802.3标准兼容的以太网MAC,支持全双工模式,可通过DMA 方式进行数据收发。当物理层芯片DM9161接收到来自以太网的上位机数据时,ARM通过MII接口(媒体独立接口)读取数据,并在内部通过DMA方式将 数据读入 SRAM中交给TCP/IP协议栈进行处理。同时,当RFID射频读卡器或者传感模块有数据需要传输时,平台也能沿着相同的通道将数据传输至上位机。系统 整体结构如图1所示。

系统结构原理示意图

图1 系统结构原理示意图

1.2 AT91SAM7X512和DM9161的接口电路设计

AT91SAM7X512的以太网控制器和物理层收发芯片 DM9161之间有MII(Media Independent Interface)和RMII(Reduced Media Independent Interface)两种接口。这两种接口都能够工作在10 Mb/s和100 Mb/s共两种速率下,在本设计中采用MII接口。MII数据接口总共需要16个信号,包括 TX_ER,TXD《3:0》,TX_EN,TX_CLK,COL,RXD《3:0》,RX_EX,RX_CLK,CRS,RX_DV 等,在时钟速率25 MHz的情况下以4-bit并行方式发送和接收数据。以太网控制器依靠MDIO接口与物理层芯片进行通信,用于自动协商期间确保以太网控制器和物理层芯片 被配置为相同的速度和双工模式。AT91SAM7X512和DM9161的接口电路如图2所示。

以太网接口电路原理图

图2 以太网接口电路原理图

当系统上电后,由AT91SAM7X512给DM9161提供复位信号及引脚初始化电平,完成DM9161的上电初始化工作。当初始化完成后,系统会通过MII接口读取DM9161内部状态寄存器的值来完成对网络连接模式和连接状态的检测。

二. 平台软件的实现

2.1 TCP/IP协议栈的移植

LwIP是瑞典计算机科学研究院(SICS)设计的一个开源的轻量级TCP/IP协议栈。它的目的是减少内存使用率和代码大小,使LwIP能够适用于资源紧张的嵌入式系统。利用μC/OS-Ⅱ提供的信号量和消息传递机制等系统服务可以实现对LwIP的移植。

2.1.1 信号量操作函数

LwIP 使用信号量进行通信,这个信号量可以是计数信号量,也可以是二值信号量,所以在sys_arch中需要实现与信号量操作相关的信号量结构体struct sys_sem_t、信号量建立函数sys_sem_new()、信号量释放函数sys_sem_free()、信号量发出函数 sys_sem_signal()和信号量等待函数sys_arch_sem_wait()。由于在μC/OS-Ⅱ中已经实现了与信号量操作有关的各种函 数,而且功能和上述几个LwIP中所需要实现的函数的功能是完全一致的,所以只要调用μC/OS-Ⅱ中的信号量操作函数来重新包装成LwIP中的信号量操 作函数即可。

2.1.2 邮箱操作函数

LwIP使用邮箱来进行消息传递,用户可 以用一个队列来将其实现,需要注意的一点是,投递进邮箱中的消息只能是一个指针。因此要根据以上要求来实现消息队列结构sys_mbox_t,以及相应的 操作函数:sys_mbox_new()、 sys_mbox_free()、sys_mbox_post()和sys_arch_mbox _fetch()。μC/OS-Ⅱ很好地实现了消息队列结构及其操作,为消息队列提供了丰富的管理函数,但μC/OS-Ⅱ没有对消息队列中的消息进行管 理,因而不能直接使用,必须在μC/OS-Ⅱ的基础上重新实现。具体实现时,可创建多个邮箱,并使用单向链表将这些邮箱链接在一起,每个邮箱可接收消息的 数量由消息数组的大小来决定。对消息队列本身的管理用μC/OS-Ⅱ中的队列操作函数来完成,然后通过对链表的操作来实现对消息的创建、使用、删除和回 收,两部分综合起来形成了LwIP的邮箱功能。[page]

2.1.3 创建新线程函数

在 μC/OS-Ⅱ中只有任务的概念,建立一个新的线程实际上就是建立一个新的任务。因此只需要把OSTaskCreate()封装一下,就可以实现 sys_thread_new()。需要注意的是当前μC/OS-Ⅱ 不支持时间片轮番调度法,不允许两个或两个以上的任务有同样的优先级,所以用户要事先为LwIP中创建的线程分配好优先级。通过对LwIP中的宏 TCPIP_THREAD_PRIO进行包装,来避免TCPIP线程优先级与其他线程相同。

2.1.4 定时器函数

LwIP中每个线程都有一个timeouts链表,这个链表在建立之后其首地址必须固定。因此用于保存链表首地址的sys_timeouts结构必须与 线程一一对应,而且其地址不能改变,以便能够随时得到链表的首地址。可用一个静态的sys_timeouts结构数组来存放各个线程的链表,以线程的优先 级号来作为数组索引号,这样每一个线程就能对应一个sys-timeouts结构体了,并且在系统运行期间对应的结构体数组成员的地址会一直固定不变。移 植时通过实现 stmctsys_timeouts*sys_arch_timeouts(void)函数,来返回目前正处于运行态的线程所对应的timeouts队列 指针。

2.2 驱动程序

操作系统是通过各种驱动程序来和各种硬件打交道的,驱动 程序为用户屏蔽了各种各样的硬件设备,而只提供了简单明了的函数接口给操作系统调用。LwIP已经设计好了这些框架,用户只需严格按照顺序完成与底层硬件 相关的部分即可实现网络接口层和IP层的通信。需要实现的包括:底层网络接口初始化函数ethernetif_init()、网卡接收函数 ethernetif_input()、网卡发送函数 ethernetif_output()和网卡中断处理函数ethernetif_isr()等。驱动程序完成了对设备的初始化、释放和管理,并且完成对 底层以太网数据包的接收、搬运和发送。

2.3 应用程序

系统应用程序的任务主要是在嵌入式平台上实现网络通信客户端和HTTP 网页服务器两方面的功能。利用LwIP提供的API,采用TCP协议客户端到服务器通信的模式,实现嵌入式终端和上位机之间的通信。在这种模式下,嵌入式 终端定义为客户端,主动向服务器发起TCP连接;而上位机(PC)定义为服务器端,始终监听来自网络的连接。嵌入式终端主要负责采集来自于传感器或 RFID模块的数据,并将这些数据通过以太网传送给上位机。同时嵌入式终端平台上也运行着一个HTTP网页服务器,上位机(PC)可通过网页对嵌入式终端 平台进行访问、查看和设置。

三. WEB服务器的实现

HTTP定义了浏览器与服 务器交互的不同方法,最基本的方法有4种。本系统的实现只涉及到GET和POST这两种最基本的方法。GET一般用于向服务器获取和查询资源信息,而 POST一般用于向服务器上传和更新没有长度限制的、大容量的资源信息。一个基本的WEB服务器要实现动态网页服务的关键是要能够对浏览器发送的GET或 POST请求做出响应。一般情况下制作动态网页需要使用语言:HTML+ASP或 HTML+PHP或HTML+ JSP等。要在资源有限的嵌入式系统上实现这样的功能是不现实的,一种明智的办法是通过使用回调函数的方式,为浏览器的每一种请求都设计一个服务函数与之 对应。当有新增加的GET或POST请求时,则只需要增加相应的服务函数即可。具体实现时可设计一个存放服务函数地址的结构体,其成员包括所请求服务参数 的长度、名称和对应服务函数的地址。然后将所有的结构体都初始化在一个数组中。

在编写应用程序的时候,只需抓取浏览器所发送的请求类型 和参数,即可根据不同的请求来调用相应的服务函数。当有新的GET或者POST请求增加时,只需要增加与之对应的服务函数即可,这样就实现了扩展性很强的 动态网页服务。WEB服务器响应浏览器访问的流程如图3所示。

图3 浏览器请求响应流程图

POST请求分为带参数和不带参数两类,带参数的POST请求,如:设置IP地址,子网掩码等操作,需要提取相关参数后再调用服务函数进行处理。不带参 数的POST请求只需直接调用相应服务函数即可,如:重启系统、恢复默认参数等操作。远端PC可以通过该动态WEB服务器来对平台进行访问,完成上述几项 操作。在第一次启动本系统时,系统通过运行DHCP客户端程序,向DHCP服务器(路由器等设备)主动申请IP地址,获得IP后,远端PC即可通过该IP 地址对本系统进行访问和设置。

四. 结束语

平台采用AT91SAM7X512处 理器和DM9161以太网物理层芯片。两者通过MII接口连接,高集成度的处理器提高了系统稳定性,降低了数据传输出错机率。通过向终端平台移植LwIP 协议,使终端具备连入以太网的能力,并通过调用函数的方式在该低成本平台上实现了动态网页服务器。在局域网条件下运行该终端和上位机PC进行连接,能很好 的通过网络传递RFID读卡器采集的信息,并且上位机PC能够通过网页对本终端进行访问和参数设置。针对更复杂的远程网络连接和访问,网络延迟和丢包等问 题还有待进一步的研究。

关键字:AT91SAM7X512  嵌入式系统  以太网  LwIP  物联网 引用地址:基于物联网的嵌入式以太网终端平台设计与实现

上一篇:基于Linux的串口服务器设计与实现
下一篇:一种新型的高压变频分布式控制系统

推荐阅读最新更新时间:2024-03-16 13:45

短距离无线技术掘金物联网
 物联网是应用的融合和商业模式的创新,同时也是多种无线技术的融合,比较常见的包括无线射频识别RFID、二维码、智能识别、无线通讯以及云计算等等。随着中国国家政策及产业各界的推动,如何在这个新的时代中把握机遇成为产业界需要深入探讨的热点。   2010年中国无线世界暨物联网大会(http://www.conference.cn/w-world)将于2010年11月18-19日在北京举行,得到了工业和信息化部无线电管理局、中国无线电协会、中国通信标准化协会(CCSA)、中关村物联网产业联盟、三大运营商的大力支持,同时也得到了包括欧盟委员会、IEEE、ETSI、Bluetooth SIG、WiGig Alliance、Wi-Fi Al
[网络通信]
浅谈物联网与新一代的互联网通讯协议IPv6
  物联网(Internet of Things, IoT)一词首先由美国麻省理工学院Auto-ID中心主任爱斯顿(Kevin Ashton)所提出。下面就随网络通信小编一起来了解一下相关内容吧。 而比尔盖兹在1995年《未来之路》一书中提及物联网的概念。物联网的发展技术首先由人连物,具体的实作类似透过web的技术连上硬件,如冰箱空调等等。随着半导体制程以及感测技术的进步。传感器以及运算单元可以微缩在一个便宜又微小的装置上,这导致物联网的概念慢慢地被实作在各种的领域上。 浅谈物联网与新一代的互联网通讯协议IPv6 物联网的基本网络链接方式有人连物以及物连物。人连物可以泛指一般可连网的智能系统,如智能家电、网络摄影机等等。
[网络通信]
英特尔云愿景或将涉足物联网
前不久,由北京市、英特尔公司及中国科学院联合筹备的“中国英特尔物联技术研究院”在中关村正式挂牌成立,并正式投入运营,将开发物联网典型应用软硬件平台及端到端解决方案,同时也将为云计算在物联网方面的发展带来新的契机。 速途网针对此事联系到了英特尔,对方正在回复中。 两年前,英特尔发布了2015云计算原景。为了实现云愿景,英特尔同期还发起成立了开放数据中心联盟(ODCA),通过直接接触用户,深入了解用户需求,和合作伙伴制定更符合用户需求的云计算参考架构。 为了更好地契合中国用户对云计算及新一代数据中心的需求,ODCA还专门成立了中国组,在中国联通、中国人寿等领导下,ODCA中国组已经在碳足迹(Carbon
[网络通信]
2018物联网智慧物流的发展趋势
毫无疑问,物联网(IoT)带来了一系列的变化。在无需人类参与的情况下,越来越多的实物连接到互联网及其共享数据的能力改变了世界的运作方式。 从智能汽车到生物医学传感器,物联网的影响巨大。当我们从目前的150亿连网设备迈向2020年预计的500亿连网设备时,这些变化将会很快发生。但是,究竟是什么影响物流业,无论是从企业角度和消费者的角度来看?以下是我们所知道的… 物联网的未来是什么? IDC和SAP的一份报告预测,物联网将使交付和供应链效率提高15%,许多物流专家正在利用这些新技术来改善系统和供应网络、降低成本并寻找新机会以创造更多收入。但是现在物联网到底有什么实际应用,在未来还将会发生什么? 如何利用物联网改善仓
[网络通信]
是德科技成功入选《中国移动物联网NB-IoT产业评估报告》
该方案可以用于窄带物联网厂商进行复杂业务场景及大连接场景性能验证 是德科技(NYSE:KEYS)在2017年中国移动全球合作伙伴大会上,基于Keysight MUE终端仿真测试仪,成功入选《中国移动物联网NB-IoT产业评估报告(2017年版)》。该方案可以用于窄带物联网厂商在大连接场景、各种不同的多用户复杂业务场景下的性能测试及射频性能测量。 超大连接数目是3GPP标准化组织定义的窄带物联网重要特性之一,它对基站的承载能力提出了严苛的要求,而不同的垂直行业应用条件下的业务特点和挑战也都各有不同。窄带物联网的网络对于大连接数目的承载以及对不同业务的支撑能力,对于物联网的长远发展起到关键的作用。有效的测试平台,能在实验室中模
[测试测量]
是德科技成功入选《中国移动<font color='red'>物联网</font>NB-<font color='red'>IoT</font>产业评估报告》
单对以太网技术逐步进入工厂
当开发新的数据通信协议时,提高数据速率通常是主要关注点。然而,在工业和建筑自动化应用中运行的无数传感器和致动器中,许多传感器和致动器需要的不仅仅是快速的数据速率才能正确工作。这些边缘设备目前使用大量传统的多点协议进行互连,这增加了原始设备制造商(OEM)支持它们的复杂性和成本。 考虑到这一点,IEEE成立了一个特别工作组,研究短距离网络技术如何通过一对以太网(SPE)电缆提供10Mb/s的数据速率,以满足工业4.0、汽车和其他市场的需求。 图1:工业4.0对工业网络提出了新的要求 这最终导致了2019年IEEE 802.3cg标准的发布,该标准现在将SPE的优势发挥到了极致。 为工业SPE设置场景 虽然已经存在
[工业控制]
单对<font color='red'>以太网</font>技术逐步进入工厂
带你领略数字之下的物联网
  近段时间,不论是区块链、移动支付或者5G都是非常热门的词汇,而它们有一个共同点,那便是 物联网 。下面就随网络通信小编一起来了解一下相关内容吧。   带你领略数字之下的物联网   从字面意思上来解读, 物联网 便是使万物互联的一种广泛性网络。中国 物联网 校企联盟将物联网的定义为当下几乎所有技术与计算机、互联网技术的结合,实现物体与物体之间:环境以及状态信息实时的共享以及智能化的收集、传递、处理、执行。广义上说,当下涉及到信息技术的应用,都可以纳入物联网的范畴。    高速增长的物联网   物联网是继互联网之后下一个风口已经成为越来越多人的共识,在全球经济疲软的今天,也成为了推进经济发展的新引擎。      带你领略
[网络通信]
求一种车载10GBASE-T1以太网智能测试解决方案
高速车载网络越来越依赖带宽高达10 Gbit/s的万兆以太网通信,然而高带宽网络必将测试系统的性能推向极限。如何通过现有的软硬件测试工具来克服这一挑战?本文将为您介绍实现方案。 现如今,车载平台上的车载高性能计算控制器HPC、ADAS传感器和信息娱乐系统等需要进行实时的大量数据交互,100BASE-T1或1000BASE-T1的车载以太网已无法满足车载网络通信所需的带宽。基于IEEE 802.3ch规范的万兆以太网10G-T1,具有高达10 Gbit/s的传输速率,将在高速网络数据传输方面发挥越来越重要的作用,比如用于传输高分辨率的传感器及摄像头信号,以及高性能骨干网通信。 01 典型Ethernet测试环境 无论是分析、
[嵌入式]
求一种车载10GBASE-T1<font color='red'>以太网</font>智能测试解决方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved