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>

<iframe frameborder="0" height="1500" name="ifd" scrolling="auto" src="https://mnifdv.cn/resource/cnblogs/LearnAir724UG" width="100%"></iframe>

 

说明

这节测试一下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

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

关于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的应用框图:

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

    • 内部自带以太网介质传输层(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模块引脚说明

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

1.引脚说明

RSTI 引脚是复位模块的引脚,低电平有效,默认内部10K上拉.

RDY 引脚在模组复位正常工作以后输出低电平(复位模组以后检查此引脚为低电平时即可和模组进行通信)

SEL 和 TXD 引脚控制模组以哪种通信口通讯,引脚默认高电平(默认使用串口通讯)

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

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.模组进入串口通讯模式.

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

3.通信连接(SPI方式)

INT(数据中断引脚) 根据自己的需求决定是否连接.

图示其它未连接的引脚保持悬空即可.

初始化流程:

1.单片机上电以后控制和模组TX相连接的IO输出低电平

2.单片机控制和模组RSTI相连接的IO输出低电平,等待50ms及其以上.

3.单片机控制和模组RSTI相连接的IO输出高电平,等到100ms及其以上

4.模组进入SPI通讯模式.

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

提示

外挂以太网模块其实就是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引脚

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

 901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

2.保证电脑连接路由器或者交换机; 同时也使用网线把CH395连接上该路由器或者交换机

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

3.在电脑上运行网络调试助手,开启TCP服务器(自己随意找个就可以)

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

我设置监听的端口为8888

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

5.查看自己电脑的IP地址

我的为 192.168.1.93

所以我的TCP服务器地址为 192.168.1.93,端口号为8888

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

下载测试

说明, 用户先直接根据我的步骤, 烧写我提供的例程测试哈.

后面会有详细的从官网下载源码并测试的过程.

1,打开源码里面的socketTask.lua 文件

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

2,更改为自己的TCP服务器的ip地址和端口号

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

3,把这节的代码下载到模组里面

注意哈,一定要使用这节里面的lib库函数, 把所有的文件都添加进去就可以

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

4,调试助手会显示连接, 服务器给客户端发送消息, 客户端会返回接收的消息

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

5,上面就实现了Air724控制控制CH395Q实现TCP客户端和服务器进行通信

程序呢也很简单, 官方都封装好了, 咱就是直接用

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

 

现在看正常的获取程序的步骤, 下载例程

1.要实现此功能需要下载最新的lib库和demo

https://gitee.com/openLuat/Luat_Lua_Air724U/tree/beta/script_LuaTask

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

2.注意哈,下载的资料的lib和demo是全新的

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

3.例程路径如下

其它功能大家伙自己去测试就可以了

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

 

901-Air724UG模块(4G全网通GPRS开发)-Air724UG(4G)使用SPI控制CH395Q(以太网模块)实现TCP/IP通信

 

上一篇:PCIe扫盲——TLP Header详解(四)


下一篇:《OpenGL ES 2.0游戏开发(上卷):基础技术和典型案例》一6.5 光照的每顶点计算与每片元计算