901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnAir724UG" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
这节测试一下Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信
CH395Q模组链接: https://item.taobao.com/item.htm?ft=t&id=641683643515
CH395Q教程链接: https://www.cnblogs.com/yangfengwu/p/14583830.html
关于CH395Q以太网芯片
CH395芯片自带10/100M 以太网介质传输层(MAC)和物理层(PHY),完全兼容IEEE802.3 10/100M 协议,
内置了IP、DHCP、ARP、ICMP、IGMP、UDP、TCP等以太网协议栈。单片机系统可以方便的通过CH395芯片进行网络通讯。
CH395支持三种通讯接口:8 位并口、SPI接口或者异步串口,单片机/DSP/MCU/MPU等控制器可以通过上述任何一种通讯接口控制CH395芯片进行以太网通讯。
下图为CH395的应用框图:
- 内部自带以太网介质传输层(MAC)和物理层(PHY)。
- 支持10/100M,全双工/半双工自适应,兼容802.3协议。
- 支持多种模式的地址过滤。
- 与 802.3x全双工流控和半双工背压流控完全兼容。
- 支持MDI/MDIX线路自动转换。
- 内置TCP/IP协议簇,支持IPv4、DHCP 、ARP、ICMP、IGMP、UDP、TCP协议。
- 提供8个独立的Socket对,可以同时进行数据收发。
- 提供高速8位被动并行接口,支持连接到单片机的并行数据总线。
- 提供最高30MHz速度的SPI设备接口,支持连接到单片机的SPI串行总线。
- 提供最高3Mbps速度的异步串口,支持连接到单片机的串行口,支持通讯波特率动态调整。
- 支持低功耗模式。
- 内置24K RAM,可用于以太网数据收发,每个Socket收发缓冲区可以自由配置。
- 内置4KB EEPROM。
- 支持8路GPIO。
- 提供LQFP64M和LQFP128无铅封装,兼容RoHS。
CH395Q模块引脚说明
1.引脚说明
RSTI 引脚是复位模块的引脚,低电平有效,默认内部10K上拉.
RDY 引脚在模组复位正常工作以后输出低电平(复位模组以后检查此引脚为低电平时即可和模组进行通信)
SEL 和 TXD 引脚控制模组以哪种通信口通讯,引脚默认高电平(默认使用串口通讯)
INT引脚是芯片的输出引脚,当模组接收到数据时,该引脚产生一个下降沿.
单片机利用此引脚让单片机产生中断,然后读取数据
这个引脚不是必须的,单片机可以采用轮训的方式查询数据
TXD 和 RXD 作为串口通信的引脚
SCS 引脚为模组SPI片选引脚
SCK 引脚为模组SPI时钟引脚
SDI 引脚为模组SPI数据输入引脚
SDO 引脚为模组SPI数据输出引脚
2.通信连接(串口方式)
INT(数据中断引脚) 根据自己的需求决定是否连接.
图示其它未连接的引脚保持悬空即可.
初始化流程:
1.单片机上电以后保持其RX引脚为高电平(拉高模组的TX引脚)
2.单片机控制和模组RSTI相连接的IO输出低电平,等待50ms及其以上.
3.单片机控制和模组RSTI相连接的IO输出高电平,等到100ms及其以上
4.模组进入串口通讯模式.
3.通信连接(SPI方式)
INT(数据中断引脚) 根据自己的需求决定是否连接.
图示其它未连接的引脚保持悬空即可.
初始化流程:
1.单片机上电以后控制和模组TX相连接的IO输出低电平
2.单片机控制和模组RSTI相连接的IO输出低电平,等待50ms及其以上.
3.单片机控制和模组RSTI相连接的IO输出高电平,等到100ms及其以上
4.模组进入SPI通讯模式.
提示
外挂以太网模块其实就是4G模组作为单片机控制以太网模块实现网络通信.
其实就相当于外接了个传感器一样的道理哈......
测试准备工作
1.接线
CH395Q模组可以使用Air724模组的VBAT供电
CH395Q模组的TXD引脚直接接到GND上, 默认就是SPI通信方式了(图示黑线)
连接上SPI引脚:
Air724模组的GPIO9引脚 <----> CH395Q模组的SCK引脚
Air724模组的GPIO10引脚 <----> CH395Q模组的SCS引脚
Air724模组的GPIO11引脚 <----> CH395Q模组的SDI引脚
Air724模组的GPIO12引脚 <----> CH395Q模组的SDO引脚
连接中断和复位引脚:
Air724模组的GPIO2引脚 <----> CH395Q模组的INT引脚
Air724模组的GPIO3引脚 <----> CH395Q模组的RST引脚
2.保证电脑连接路由器或者交换机; 同时也使用网线把CH395连接上该路由器或者交换机
3.在电脑上运行网络调试助手,开启TCP服务器(自己随意找个就可以)
我设置监听的端口为8888
5.查看自己电脑的IP地址
我的为 192.168.1.93
所以我的TCP服务器地址为 192.168.1.93,端口号为8888
下载测试
说明, 用户先直接根据我的步骤, 烧写我提供的例程测试哈.
后面会有详细的从官网下载源码并测试的过程.
1,打开源码里面的socketTask.lua 文件
2,更改为自己的TCP服务器的ip地址和端口号
3,把这节的代码下载到模组里面
注意哈,一定要使用这节里面的lib库函数, 把所有的文件都添加进去就可以
4,调试助手会显示连接, 服务器给客户端发送消息, 客户端会返回接收的消息
5,上面就实现了Air724控制控制CH395Q实现TCP客户端和服务器进行通信
程序呢也很简单, 官方都封装好了, 咱就是直接用
现在看正常的获取程序的步骤, 下载例程
1.要实现此功能需要下载最新的lib库和demo
https://gitee.com/openLuat/Luat_Lua_Air724U/tree/beta/script_LuaTask
2.注意哈,下载的资料的lib和demo是全新的
3.例程路径如下
其它功能大家伙自己去测试就可以了