MPLAB® Harmony之学习篇(十一)-- 轻松创建TCPIP项目

一、 简介:

本文利用MHC一步步的轻松配置创建一个TCPIP的应用。

下面虽然使用Microchip的PIC32MZ EF Starter Kit作为演示,但是客户板子有可能和Microchip的板子有区别,所以下面的步骤里特地不勾选现有的BSP,通过MHC配置选择合适的接口等,这样的步骤也更适合用户在自己的定制板上的调试。

二、硬件工具和软件平台:

硬件: PIC32MZ EF Starter Kit

软件:
MPLAB-X::v3.26或者更新
XC32:v1.40或者更新
Harmony:v1.07.1或者更新

三、详细步骤:

首先我们都得对自己的硬件有一个充分的了解,在基于PIC32的MAC+PHY的网络调试中,我们必须知道:

  • MAC和PHY的连接方式:RMII或者MII;
  • PIC32这边使用的是默认(R)MII接口还是备用(R)MII接口;
  • PHY的具体型号,LAN8740或者其它;
  • Microchip的PIC32MZ EF Starter Kit采用的是RMII接口并且使用的是默认接口,和SK默认搭配的PHY板子使用的就是LAN8740。

    注:有一个简单的方法判断采用的是MII还是RMII,看数据接口是否只用了ETXD0~1,如果是只用ETXD0~1那么就是RMII接口,否则使用ETXD0~4是MII接口;

    判断是否用的是备用(Alternate)(R)MII接口,只需要看PIC32引脚标注,如果标注为AETXD#,有A前缀那么就用了备用(R)MII接口,否则为默认(R)MII接口。

    接下来我们就可以用MHC一步步的进行配置和创建TCPIP项目了:

    注:以下MHC配置里没有特别标注出来的地方,说明使用的是默认选项。

    (一) ,MPLAB-X里创建一个Harmony新项目:

    选择正确的EF芯片和命名你的项目名称:

    点击“Finish”完成一个空的Harmony项目创建。

    (二) ,时钟及熔丝位配置:

    时钟(外部有源24 MHz时钟,自动计算200 MHz系统时钟):

    配置位(RMII接口和默认PHY连接信号):


    (三),TCPIP协议栈配置:

    选择PIC32INT接口和确保DHCP Client打开;其它设置可用默认值!

    注:该配置为PIC32网络板子连接到一个路由器上的工作模式。

    (四),驱动配置:

    MAC驱动以及PHY的选择,其它默认值即可。

    (五),然后保存设置并生成代码:

    (六),编译并下载运行:

    可能会弹出如下对话框,选择正确的调试工具,如果使用板上调试器,那么选择如下:

    (七),测试网络连接情况:

    当程序下载完毕后,请首先确认网线是否接入你电脑所在的局域网(连接到同一路由器或者交换机下)。

    然后启动Microchip的tcpip_discoverer.jar程序寻找板子:
    c:\microchip\harmony\v1_07_01\utilities\tcpip_discoverer\tcpip_discoverer.jar

    如有上图类似(MAC和IP地址可能不一样)信息显示,板子已经正常连接到局域网里了。

    注:该网络发现工具与Harmony TCPIP下的一个模块对应,如果在TCPIP配置去掉了如下选项,那么tcpip_discoverer是不能找到如上板子信息的。

    (八),添加TCP服务器程序:

    本文直接使用Harmony里现有的Demo作为模板:
    c:\microchip\harmony\v1_07_01\apps\tcpip\tcpip_tcp_server

    所以,我们只需要把
    c:\microchip\harmony\v1_07_01\apps\tcpip\tcpip_tcp_server\firmware\src\目录下的app.c和app.h拷过来替换本工程目录(c:\microchip\harmony\v1_07_01\apps\PIC32MZ_TCPIP_TEST\firmware\src\)下的app.c和app.h即可。

    注意:由于Harmony的Demo里使能了控制台打印(console/debug)系统服务,但是我们的工程配置里没有使能该功能,所以我们需要注释掉app.c代码里的所有:SYS_CONSOLE_MESSAGE(),SYS_CONSOLE_PRINT(),SYS_CMD_READY_TO_READ()等打印代码;

    (九),然后再编译下载测试:

    下面使用“网络调试助手”工具连接板子上的TCP服务器(端口号:9760)。

    然后你就可以点击“发送”,app代码会把所有接收的字符转换成大写回传给你的tcp客户端,如上图。

    四、总结:

    本文通过MHC一步步配置和生成代码完成了一个TCPIP的简单工程应用,整个过程没有编写一句代码的工作,把基本的网络平台构建好,用户只需要把精力集中在自己应用相关的工作上。

    简单来讲就是:首先我们了解硬件连接(MAC与PHY);其次了解需要TCPIP里的哪些功能模块(比如DHCP,DNS,HTTP Server等);最后就是MHC配置的对应勾选了。

    注:Microchip的名称和徽标组合及MPLAB均为Microchip Technology Inc.在美国和其他国家或地区的注册商标。在此提及的所有其他商标均为各持有公司所有。

    资料下载:MPLAB® Harmony之学习篇(十一)-- 轻松创建TCPIP项目

    --电子创新网--
    粤ICP备12070055号