<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.例程路徑如下
其它功能大家伙自己去測試就可以了