AN0053 应用笔记 |
AT32 EMAC http server |
前言
随着物联网的发展,各式各样的装置都必须具备连网的能力,单芯片也不例外,为此我们以雅特力的AT32F407系列,演示了一系列的范例,以其用户能基于这些范例,使用雅特力的开发板发展出自己所需要的功能。
支持型号列表:
支持型号 | 具备EMAC的型号 |
目录
2.3 HTTP server project设置... 6
表目录
图目录
HTTP server作为最为普遍的网络应用,我们每日开启浏览器访问的都是HTTP server,因此本使用指南,将展示如何控制流水灯以及ADC取样。
- http_server: HTTP server源程序,运行HTTP服务端程序
- AT3 HTTP server程序设置
表1. 管脚配置
EMAC信号 | 管脚 |
EMAC_MDC | PC1 |
EMAC_MDIO | PA2 |
EMAC_RMII_REF_CLK | PA1 |
EMAC_RMII_CRS_DV | PD8 |
EMAC_RMII_RXD0 | PD9 |
EMAC_RMII_RXD1 | PD10 |
EMAC_RMII_TX_EN | PB11 |
EMAC_RMII_TXD0 | PB12 |
EMAC_RMII_TXD1 | PB13 |
-
- LwIP设置
硬件资源只提供从PHY到MAC的信号处理,若要进行开发,则需要实作TCP/IP协议栈,在本应用中使用LwIP协议栈,该协议栈主要关注的是怎样减少减少内存的使用和程序代码的大小,这样就可以让LwIP适用于资源有限的小型平台例如嵌入式系统,更详细的内容可以访问官方网站。
由于整个协议栈已经整合到代码中,大部分的内容都无须修改,使用者只要根据自己的网段去设定IP地址及闸口地址即可,这两个全局变量宣告在netconf.c的上头。
图1. 配置芯片的IP地址
在本应用中,会透过网页控制开发板上的周边,故在启动HTTP server之前,我们必须先配置好被控制的周边,LED的部份由于在AT的例程中已经写好,用户可以直接调用at32_board_init();ADC的部份则需要用户自行撰写,在代码中有提供一个参考代码使用,用户也可以直接调用adc_configuration()来始能ADC的采集,或者根据应用去修改代码以符合需求。
图2. 配置ADC
在配置完待控制的周边后,就可以始能HTTP server了,本应用中用户可以直接调用httpd_init()这个函式,深入地追踪这个函式,可以发现到是透过注册http_recv()到TCP layer后,解析来自用户端的请求,有兴趣的用户可以研究这支函式来了解本应用的设计方式,在此不加赘述。
- 设定上位机的IP地址、网路屏蔽及闸口,IP地址与闸口需要跟芯片设置在同一个网段下。
- 打开PC端的浏览器,输入HTTP server的IP, 网页加载后会显示开发板拥有的通讯接口。
- 点击LED Control,跳转进入LED控制页面,勾选欲控制的LED后,点选Send Command去点亮LED,或者是取消勾选使之熄灭。
- 点击ADC sampling,跳转后会显示当前ADC取样的电压值
图3. 设置PC端的IP、网路屏蔽与闸口
图4. HTTP server页面
图5. LED控制页面
图6. ADC采样页面
表2. 文档版本历史
日期 | 版本 | 变更 |
2021.09.06 | 2.0.0 | 最初版本 |