APP下载

基于μC/TCP-IP协议栈的嵌入式以太网通信系统

2017-09-23李逸瀚

计算机应用与软件 2017年9期
关键词:物理层寄存器以太网

李逸瀚 石 春 吴 刚

(中国科学技术大学信息学院自动化系工业自动化研究所 安徽 合肥 230026)

基于μC/TCP-IP协议栈的嵌入式以太网通信系统

李逸瀚 石 春 吴 刚

(中国科学技术大学信息学院自动化系工业自动化研究所 安徽 合肥 230026)

随着因特网(俗称互联网)技术的发展和成熟,大量的嵌入式设备也开始接入互联网。为实现嵌入式设备和互联网的通信,并考虑到嵌入式设备自身资源的有限性,选择恩智浦MK60DN512VLQ10微控制器和TI公司的DP83640物理层收发器为基础设计嵌入式以太网通信系统,移植μC/OS-II操作系统,移植μC/TCP-IP通信协议栈。实验结果表明,开发板之间、开发板和PC机之间可建立UDP链接、TCP链接进行数据收发。

K60 DP83640 μC/OS-II μC/TCP-IP

0 引 言

因特网(俗称互联网)技术日趋成熟,带来的信息共享和远程操控改变了人们的生活方式,其普及度越来越广,已经渗透到嵌入式领域。随着嵌入式技术的发展日新月异,嵌入式以太网技术应运而生。如何在嵌入式设备上实现嵌入式以太网技术并将嵌入式设备连接至互联网具有重要的研究价值。

嵌入式设备能够接入互联网,根本在于在嵌入式终端设备上实现了TCP/IP网络通信,使得嵌入式设备上的数据成为可以在互联网上传输的数据包。嵌入式设备不同于通用计算机系统,嵌入式设备存储资源有限,处理器的性能较低。因此,使嵌入式设备连接互联网需要选择嵌入式设备专用的操作系统和互联网通信协议栈。嵌入式领域的实时操作系统主要有μCLinux、VxWorks、QNX、Palm OS、Windows CE和μC/OS-II等。其中μC/OS-II系统短小精悍,源码公开,代码结构清晰明了,系统裁剪方便,是研究和学习嵌入式实时操作系统的首选[1-2]。在嵌入式领域,通常使用的嵌入式通信协议栈有BSD TCP/IP、LwIP、μIP、TinyTcp和μC/TCP-IP等[3]。其中μC/TCP-IP和μC/OS-II都是Micrium公司的产品,对于μC/OS-II操作系统而言,μC/TCP-IP的兼容性非常好。目前系统研究μC/TCP-IP的参考资料不多,对于移植μC/TCP-IP也没有系统的资料,因此研究移植μC/TCP-IP更具有研究价值。

本文从工程应用的角度首先介绍嵌入式以太网各层实现的功能,接着详细地阐述嵌入式以太网硬件电路的设计,然后介绍系统的软件架构,μC/OS-II操作系统移植,并详细介绍如何移植μC/TCP-IP,实现嵌入式设备联网功能,最后对整个通信系统进行功能测试。

1 嵌入式以太网和μC/TCP-IP协议

1.1 以太网物理层

IEEE802.3标准规定了以太网物理层的相关协议。物理层主要实现的功能有:

(1) 实现自协商功能。物理层在上电、管理命令发出或者是在用户干预时发出快速链接脉冲(FLP),FLP序列包含本地以太网络的链接能力:双工模式、运行速率、流控等内容。各方将自协商的能力值记录在本地的自协商对端能力寄存器中,然后根据本地和对端的最大连接能力确定传输时的双工模式、运行速率、流控等相关参数。

(2) 处理收发数据。发送数据时,接受到MAC层发送过来的数据之后将并行数据转换成串行数据流,按照物理层的编码规则将数据编码,再处理成模拟信号将数据传送出去。接受数据的流程则与之相反。

(3) CSMA/CD功能。检测链路中是否有数据在传输,检测到链路为空闲时等待一个随机时间将数据送出,若恰好和另外等待传送数据的物理层同时送出了数据,造成冲突,物理层可以检测到这个冲突,利用多重算法重新计算等待的随机时间值,这些算法使得两台主机之间再次发生冲突的概率很小[4-5]。

实际工程应用中,上述(2)、(3)都是由物理层在合理的条件下由硬件自动完成,设计人员需要关注如何配置相关寄存器使得物理层可顺利的实现自动协商。并从物理层相关寄存器中读取自动协商的结果编写合理的上层代码。

1.2 以太网数据链路层

以太网数据链路层主要实现将上层需要发送的数据打包成以太网帧发送至物理层;将物理层接收的以太网帧提取IP包传递给IP层。

μC/TCP-IP协议栈将数据链路层分成了两部分:(1) 涉及到具体硬件细节部分,由用户编写代码,实现链路层的初始化和收发缓冲区的配置、实现物理层的接口代码、实现上层接口代码。(2) 无关具体硬件细节的部分。以太网帧和上层数据报之间的转换,即添加、剥离帧头帧尾部分工作由μC/TCP-IP协议栈实现。

1.3 μC/TCP-IP协议栈

μC/TCP-IP协议栈实现的功能主要有:

(1) 数据链路层的包处理功能、ARP协议;

(2) IP协议、ICMP协议;

(3) 传输层的协议:TCP和UDP协议[6]。

综上所述,设计并实现基于μC/TCP-IP协议栈的嵌入式以太网通信关键在于:设计正确的硬件电路。在μC/OS-II的环境下编写正确的物理层代码、数据链路层代码,实现以太网通信,并实现μC/TCP-IP与数据链路层的接口函数。如此,可成功将μC/TCP-IP移植到特定处理器上,并实现嵌入式设备和互联网的通信。

2 硬件电路设计

恩智浦MK60DN512VLQ10(以下简称K60)微控制器是一款32位ARM微处理器,有512 KB的Flash、128 KB的RAM,100 M的运行速度,内置以太网控制器。由于ROM、RAM空间大,在移植μC/OS-II和μC/TCP-IP时无需扩充内存,降低硬件设计难度。

DP83640是TI公司设计的物理层芯片,3.3 V供电,工作温度为-40~85 ℃,支持简化媒体独立接口RMII(Reduced Media Independent Interfac)和介质独立接口MII(Medium Independent Interface)接口,具备ESD保护等功能,可工作于主、从两种模式,并支持IEEE1588时钟。

K60内置以太网控制器具有标准接口,可通过MII和RMII与DP83640连接,DP83640和以RJ45接口相连,构成整个以太网收发的链路。MII和RMII接口都是标准的以太网接口,在相同线速的情况下,RMII需要的总线时钟是MII总线时钟的两倍。同时MII比RMII多了一倍的I/O传输线[7]。本文从设计简洁的角度出发选择RMII接口连接,硬件电路连接的示意图如图1所示。

图1 以太网硬件电路连接示意图

K60内部集成的以太网控制器MAC和PHY之间的RMII连接示意图如图2所示。

图2 RMII接口示意图

(1) RMII串行管理接口

RMII串行管理接口是双信号接口,由串行管理接口的时钟信号MDC、数据信号MDIO组成。通过串行管理接口,MAC层可以配置、读取物理层的相关寄存器。从而达到相关的控制目的以及监控PHY的状态。

DP83640的串行管理接口的时钟信号最高可达25 MHz,K60要求该时钟信号小于等于2.5 MHz,因此在实际工程中需配置该时钟信号不高于2.5 MHz,串行管理接口才可以正常工作。K60中该时钟来源于内部总线时钟,其具体值由ENETn_MSCR[MII_SPEED]寄存器配置。

(2) 发送数据信号线

由发送使能位TX_EN和两位发送数据线TXD[1∶0]组成。TX_EN置位表明TXD[1∶0]上的数据有效。TX_EN在前导码的首个半字节出现时被硬件同步置“1”,在帧的最后半字节的首个时钟信号出现之前被硬件置“0”。因此在实际工程中,这部分只需要将复合的I/O口配置成以太网的工作模式即可,硬件可自动完成其余工作。

(3) 接受数据信号线

由接受数据有效/载波感应位CRS_DV(在RMII模式下,K60的该位同时还具备CRC功能)和两位数据接受线RXD[1∶0]组成。类似于发送数据信号线,CRS_DV被硬件自动置“1”置“0”,无需用户干预,CRS_DV只有高时,接受数据信号线上的数据才有可能被接收到。在实际工程中,用户只需将该复合I/O口配置成工作在以太网模式下即可,其余工作也是由硬件自动完成。

(4) 时钟信号

连续时钟X1/REF_CLK可以为CRS_DV、RXD[1∶0]、TX_EN、TXD[1∶0]等信号提供时钟参考。在RMII模式下,K60要求该引脚的时钟频率为50 MHz。由于K60的RMII_REF_CLK内部绑定在EXTAL上,并未有单独的引脚出现。因此在实际工程中可选择K60和DP83640共用50 MHz的有源晶振。确保MAC和PHY的RMII_REF_CLK时钟源一致。当然,还有另外的设计方式。

3 软件总体设计

3.1 软件架构

本工程选用K60、DP83640作为硬件基础,选用μC/OS-II操作系统和μC/TCP-IP协议栈作为主要软件框架。图3是基于μC/TCP-IP协议栈的嵌入式以太网的整体软件框架。

图3 基于μC/TCP-IP协议栈的软件框架

由整体软件框架图可知:

(1) 移植uC/OS-II操作系统需修改与处理器相关代码、修改板级支持包的内容。μC/OS-II官网提供操作系统的板级支持包。因此,针对不同的处理器只需要修改与处理器相关部分的代码即可。

(2) μC/TCP-IP协议栈采用合理的分层结构,其中与硬件有关的代码为物理层的net_phy.c/h文件以及数据链路层的net_mac.c/h文件。与操作系统有关的代码是net_os.c/h文件。因此,μC/TCP-IP可以很方便的移植到不同的处理器上、不同的嵌入式实时操作系统上。

(3) 不考虑为上层代码提供的接口函数时,物理层和MAC层只与硬件有关。这两层代码完成整个链路的硬件配置,可实现数据收发。而上层协议主要实现的是对收到的数据进行数据管理。因此,只需要物理层和MAC层的代码就可以实现局域网的以太网通信。实际工程中,在移植μC/TCP-IP协议栈时可首先从编写物理层和MAC层代码出发,利用这部分代码测试链路是否完好,然后再增加和上层代码的接口函数。从而降低移植难度。

3.2 移植uC/OS-II操作系统

由图3可知,移植μC/OS-II至K60需要修改OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C这三个文件,修改include.h文件包含相关的头文件。

OS_CPU.H:这个文件中主要包含:(1) 对数据类型的定义,根据特定处理器的数据类型修改相关宏定义;(2) 定义堆栈的增长方向,ARM的堆栈增长方向是从高地址到低地址,置堆栈增长方向的宏为1;(3) 函数声明:主要包括任务切换函数、中断级任务切换函数、开始最高优先级任务的函数、可悬起系统调用函数(PendSV处理函数)、系统节拍中断函数等的声明。

OS_CPU_A.ASM:文件主要是使用汇编语言实现OS_CPU.H中声明的函数

OS_CPU_C.C:文件中主要包含堆栈初始化函数和用户hook函数,最主要的是实现用户堆栈初始化函数,hook函数做简单的声明即可,在有具体需求时再作改写[8-10]。

3.3 移植μC/TCP-IP协议栈

由软件架构可知,移植μC/TCP-IP协议栈主要包含四个文件的编写:net_phy.c/h和net_mac.c/h。

3.3.1 物理层

其中物理层net_phy.c/h文件主要包含两个内部函数和三个外部函数。

外部函数为:

(1) 物理层初始化函数:初始化串行管理接口的MDC时钟,如果对芯片的其他引脚设置了保护电路,在这个函数中配置正常工作时的引脚电平。

(2) 物理层自协商函数:返回自协商的结果,包括双工模式、传输速率。

(3) 物理层连接状态函数:返回链路的连接状态。链路连接状态良好返回1,链路未能成功建立连接返回0。

内部函数包括:

(1) 写PHY寄存器的函数:配置K60的相关寄存器,使得串行管理接口通过MDIO将特定值写入DP83640的特定寄存器。

(2) 读PHY寄存器的函数:配置K60的相关寄存器,使得串行管理接口通过MDIO从DP83640中读取指定地址中的寄存器的值。

内部函数主要供三个外部函数调用,外部函数供MAC层调用,外部函数即物理层和数据链路层之间的接口。实际工程中,在搭建完硬件电路之后,通过编写物理层代码测试是否可以实现自协商可验证电路设计的正确性。

3.3.2 数据链路层

数据链路层函数主要涉及初始化、以太网帧的发送和以太网帧的接收[11-12]。为了进行帧的收发,以太网的MAC需要将收发的数据存放在发送/接收缓冲区中,这些缓冲区通常位于片内RAM,当然,可以位于任何DMA能够访问到的位置。以太网MAC通过缓冲区描述符BD来管理相应的缓冲区描述符。需要注意的是,K60中缓冲区描述符是以大端格式存储操作的,且发送/接收缓冲区描述符的环起始地址寄存器的低三位为0。因此首个接受/发送缓冲区描述符的首地址需要8字节对齐。如果使用数组作为发送/接受缓冲区,需要手动寻找8字节对齐的地址作为接受/发送缓冲区的首地址。

数据链路层的初始化所做的主要工作有:

1) 创建NetOS_NIC_TxRdySignalPtr信号量并初始化为1。在每一帧发送之前需请求该信号量。

2) 配置MAC模块本身的时钟和引脚复用。

3) 复位以太网模块。

4) 配置本地的MAC地址,初始化发送/接受缓冲区描述符。

5) 配置以太网的中断函数。μC/TCP-IP涉及到的中断有三个:发送中断、接受中断、错误中断。

6) 配置接收器和发送器的工作模式和属性。

7) 设置最大接收帧长度,设置哈希表单播寄存器和组播寄存器。

8) 调用物理层的初始化函数完成物理层的初始化,调用物理层的自协商函数完成自协商并将协商结果写入MAC的相关寄存器中,调用物理层的链路连接状态函数获取链路的连接状态为全局变量NetNIC_ConnStatus赋值。

9) 配置MAC的中断寄存器使能相关中断,使能以太网模块,激活接收缓冲区描述符。

初始化函数中涉及到μC/TCP-IP细节为:初始化NetOS_NIC_TxRdySignalPtr信号量为1;获取链路连接状态为全局变量NetNIC_ConnStatus赋值。余下的操作是为了实现正常的以太网通信进行的配置。数据链路层初始化的函数NetNIC_Init()在μC/TCP-IP协议栈初始化的时候调用。

数据发送流程:

以太网的数据发送主要涉及到将发送的数据写入发送缓冲区中,通过设置缓冲区描述符以及相关寄存器将数据发送出去。μC/TCP-IP协议对发送过程增加了部分限制条件,具体发送过程如下:

1) 获取链路连接状态,如果连接状态不正常需要丢弃该帧并返回错误码。

2) 对上层传送下来的数据,取出需要发送的数据的头指针,以及需要发送的字节数。

3) 等待NetOS_NIC_TxRdySignalPtr信号量,如果成功获取该信号量该流程得以继续执行,否则执行该流程的任务被挂起,直到该信号量被释放或者是等待超时。

4) 若在第三步成功等到该信号量,就可以调用发送函数将数据发送出去。

以上所述的流程都存在于IF层的net_if_pkt.c的NetIF_Pkt_Tx()函数中,该文件或者说该函数属于μC/TCP-IP协议与硬件无关、与操作系统无关的部分。底层实现与具体与硬件相关的细节,最后抽象成接口函数供NetIF_Pkt_Tx()函数调用。实际工程中,在实现将数据写入发送缓冲区并发送出去之后,对于移植μC/TCP-IP而言,从上述提及的四点出发,按照μC/TCP-IP协议栈给出的接口函数的名称,实现相应接口函数即可。其中,获取链路状态已在初始化部分提及;取出发送数据的头指针和字节数无需用户修改;NetOS_NIC_TxRdySignalPtr信号量在初始化时创建并设置初始值为1,移植时需要在每一次发送中断中释放该信号量,保证μC/TCP-IP协议一次只能且能成功发送一帧数据;数据发送根据μC/TCP-IP协议给出的函数名实现以太网的数据发送功能即可。

数据接收流程:

以太网的数据接收是将接收到数据从接收数据缓冲区中读出来,再配置相关的接收缓冲区描述符,配置相关的以太网寄存器。μC/TCP-IP协议基于此过程实现对收到的数据加工处理。类似于数据发送流程,移植的关键在于找到μC/TCP-IP协议栈管理接收数据的接口。

μC/TCP-IP协议栈专门申请了一个任务NetOS_IF_RxTask(),该函数位于net_os.c中,只用于数据接收以及对接收到的数据进行处理的作用[13]。处理接收数据的大致流程如下:

1) 申请信号量NetOS_IF_RxQ_SignalPtr。如果成功申请该信号量,流程得以继续进行,否则这个任务挂起。该信号量具体是在net_os.c文件中NetOS_IF_Init()函数初始化为0,由Net_Init()协议栈初始化函数调用,如果使用的是μC/OS-II系统,该信号量的创建代码无须更改。该信号量初始化为0,在接收中断中释放,从而MAC可在接收到一帧数据之后通过中断通知μC/TCP-IP来处理该帧数据。

2) 读取接收到的数据包的大小并判断接收到的字节数是否在60字节至1 518字节之间。如果不在就要丢弃该包。

3) 调用接收函数将数据读取入协议栈申请的存储空间中。

综上,寻找μC/TCP-IP协议栈的发送函数对外接口,需要从接收任务的代码开始,往下寻找。主要涉及到NetOS_IF_RxQ_SignalPtr信号量的释放;获得接收数据包大小函数的编写;以及如何将接收到的数据从以太网接收缓冲区中读出来。

3.3.3 配置文件的修改

正确地完成net_phy.c/h、net_mac.c/h文件的编写之后,还需要正确配置一些变量,才可使得μC/TCP-IP协议栈正常的工作。

1) 接收任务的优先级配置:只是移植μC/TCP-IP协议做一些简单的测试时,该项参数只需设置赋值即可,但是当任务较多,先后次序有要求的时候该任务的优先级需要根据实际情况合理的设置。

2) μC/TCP-IP协议栈中网络缓冲区buff的个数设置:μC/TCP-IP协议栈设置的大buff的容积为1 596字节,小buff的容积为256字节,如果设置得个数过多的话,会导致RAM存储空间不够,如果设置得过少的话可能会使得程序出错。考虑到ARP协议会申请小的buff,建议单向收或者发测试时,小buff的个数为3个以上,双向同时收发测试时小buff为5个以上;大buff的个数根据发送的数据来定,如果发送、接收的数据没必要使用到大的buff,可以不申请。

3) IP地址的设置:移植完成μC/TCP-IP协议之后,若需要实现通信必须为本地设备分配IP地址、子网掩码、默认网关。涉及到的变量有APP_CFG_IP_ADDR_STR_THIS_HOST、APP_CFG_IP_ADDR_STR_NET_MASK、APP_CFG_IP_ADDR_STR_DFLT_GATEWAY。可使用静态IP地址,手工为这几个值赋值。也可以考虑移植DHCP协议,向路由器申请这几个变量的值。本文使用静态IP地址进行的相关测试。

4 系统测试

4.1 测试环境搭建

使测试所需工具:两个嵌入式硬件平台、两根双绞线、一台路由器、一台PC机。物理连接如图4所示。

图4 测试环境连接示意图

图4(a)中嵌入式硬件平台A和B分别用于模拟客户端与服务器,图4(b)中嵌入式硬件平台和PC即作为服务器也作为客户端。

4.2 功能测试

1) 硬件平台之间的通信测试

测试采用静态IP的方式配置IP地址。在客户端,设置IP地址:192.168.1.110,子网掩码:255.255.255.0,默认网关:192.168.1.1,硬件MAC地址:00:CF:52:35:00:01。在服务器,设置IP地址:192.168.1.100,子网掩码:255.255.255.0,默认网关:192.168.1.1,硬件MAC地址:00:AB:CD:EF:00:01。客户端向服务器发送的数据为字符串“hello, world!!!”。测试结果如图5所示。

LCD显示屏的第一行:Linked!!!表示链路连接正常。第二行的三位数的计数值是表示接收到的帧数,实验结果表明,RJ45口的LED灯每闪烁一次该值就增加1;第三行的三位数表示收到帧的字节数;第四行显示接收到的内容;第五行的三位数表示服务器发送出的帧数。

实验结果表明,硬件平台之间可以正常通信。客户端可以正常接收到服务器发送的数据。μC/TCP-IP协议栈的移植是成功的。

2) 硬件平台和PC间的通信测试

将PC换成有线连接,为其有线网卡分配IP地址,打开“cmd”窗口,输入“ipconfig”命令,查看PC的IP地址如图6所示,更改客户端机的相关参数。打开路由器的配置界面,查看当前以分配的IP地址,为嵌入式硬件平台配置一个未分配的IP地址,防止地址冲突,本文配置成192.168.1.113。

图6 PC机的IP地址、子网掩码、默认网关

使用wireshark抓取嵌入式目标板和PC机通信的整个过程如图7所示。

图7 嵌入式平台和PC机之间的通信结果

实验结果显示,嵌入式平台首先发出一帧ARP报文询问IP地址为192.168.1.112的MAC地址。PC机识别这帧ARP报文并回应一帧ARP报文,将自己的MAC地址告诉嵌入式平台。这也解释了在两个硬件平台之间做测试时,作为服务器的硬件平台发送的帧数显示为1。此后,嵌入式平台可以和PC之间正常通信,如发送一帧UDP报文,报文内容为:“Hello,PC~”测试TCP通信结果如图8所示。

图8 TCP的通信结果测试

实验结果再次表明, μC/TCP-IP协议的移植是成功的,UDP、TCP都可实现通信功能,嵌入式设备在移植μC/TCP-IP协议之后可接入互联网。

5 结 语

本文从工程应用的角度出发介绍了以太网协议的物理层和数据链路层的主要作用,以及电路连接原理,并结合μC/TCP-IP协议栈介绍了软件设计流程,最后详细介绍了如何移植μC/TCP-IP协议栈。并对整个移植结果进行测试,测试结果表明实现了以太网通信,实现了嵌入式设备以TCP、UDP方式接入互联网。本文进一步的研究方向是对移植好的代码从实际工程应用的角度出发做代码优化,并基于μC/TCP-IP协议的基础上研究嵌入式联网的信息安全技术。

[1] 徐海龙,邱建,王晓娜,等.μC/OS-Ⅱ的优化移植和设备驱动框架设计[J].计算机测量与控制,2012,20(9):2501-2503.

[2] 郝玉胜,逯玉兰.基于uC/OS-II的嵌入式网络通信模块[J].计算机与现代化,2014(2):142-146,153.

[3] 陆旭.基于μC/OS-Ⅱ和LwIP的嵌入式设备监控平台研究[D].重庆大学,2013.

[4] 王多.基于IEEE802.3标准的10M/100M以太网MAC控制器设计[D].江南大学,2013.

[5] 谢希仁.计算机网络[M].北京:电子工业出版社,2008.

[6] 范道威,曲波,杨晔.基于ARM9和μC/OS-Ⅱ的μC/TCP-IP协议栈移植[J].苏州大学学报(工科版),2010,30(4):49-53.

[7] 宋鑫,郭勇,谢兴红.RMII模式以太网PHY芯片DP83848C的应用[J].单片机与嵌入式系统应用,2010(8):50-53.

[8] 王晓鸣,王树新,张宏伟.实时操作系统μC/OS-II在ARM上的移植[J].机电一体化,2007(1):56-58.

[9] 滕艳平,贾思禹,金梅,等.基于ARM11的μC/OS-II操作系统内核移植实验的设计[J].实验技术与管理,2016,33(3):142-146.

[10] 邵贝贝.嵌入式实时操作系统μC/OS-II [M].北京:清华大学出版社,2009.

[11] 栗清乐,赖康生.基于ARM的嵌入式以太网设计[J].工业控制计算机,2014(6):7-8.

[12] 王国法,刘薇,段明玮.基于嵌入式系统的以太网通信开发[J].光通信技术,2012,36(4):40-42.

[13] Li J,Zheng W,Shen C,et al.Application of Modbus Protocol Based on μC/TCPIP in Water Saving Irrigation in Facility Agricultural[C]//International Conference on Computer and Computing Technologies in Agriculture. Springer Berlin Heidelberg,2013:281-288.

EMBEDDEDETHERNETCOMMUNICATIONSYSTEMBASEDONμC/TCP-IPPROTOCOLSTACK

Li Yihan Shi Chun Wu Gang

(InstituteofIndustrialAutomation,DepartmentofAutomation,UniversityofScienceandTechnologyofChina,Hefei230026,Anhui,China)

As the Internet technology has grown and matured, a large number of embedded devices have connected to the Internet as well. To realize the communication between embedded devices and the Internet, we take into account the limitations of embedded devices with its own resources. This article chooses NXP’s MK60DN512VLQ10 microcontroller and TI’s DP83640 physical layer transceiver as the basis for designing embedded Ethernet communication system, transplanting μC/OS-II operating system, transplanting μC/TCP-IP communication protocol stack. The experimental results show that UDP links and TCP links can be established between board and board, as well as board and PC.

K60 DP83640 μC/OS-II μC/TCP-IP

TP3

A

10.3969/j.issn.1000-386x.2017.09.031

2016-11-15。李逸瀚,硕士生,主研领域:嵌入式以太网通信,车联网信息安全。石春,高工。吴刚,教授。

猜你喜欢

物理层寄存器以太网
基于K-ML-MPWFRFT的物理层安全传输技术
Lite寄存器模型的设计与实现
二进制翻译中动静结合的寄存器分配优化方法
移位寄存器及算术运算应用
利用Modbus协议实现垂直螺旋卸车机取料器自动调速方法
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用
一种应用于5G基于LDPC码的物理层包编码
卫星通信物理层安全技术探析