根据正点原子的《ATK-ESP8266 WIFI用户手册》,使用XCOM V2.2串口调试助手测试WIFI模块[26]。在本系统中运用到的功能主要是TCP/IP模式中的TCP Client透传模式。发送指令的顺序如下:

设置WIFI的模式为STA模式:AT+CWMODE=1。响应:OK

重启使命令生效:AT+RST。响应:OK

联网:AT+CWJAP="wy225","pcblab225"(连接WIFI的名称(ssid)和密码)。响应:OK WIFIconnect GOTip

连接服务器:AT+CIPSTART="TCP","www.mjywxy.xin",80。响应:CONNECT OK

开启透传模式:AT+CIPMODE=1。响应:OK

开始透传:AT+CIPSEND。响应: OK >

最后使用“+++”退出透传模式

结果如下使用GET方法,通过HTTP请求的方法发送数据,得到服务器返回的数据如下。

图1 WIFI调试之HTTP请求

服务器端wifi.php程序主要代码如下。

图2 wifi.php主要程序

第一个if判断,是否获取到数据;第二个if判断获取到数据中a的值是否是0或1。如果是则表示存储a的值到wifi.dat文件中,否则从wifi.dat文件中读取a的值返回。

…… FPGA-UART-WIFI

原计划UART部分使用NiosII搭建,但是使用片上ROM进行搭建系统时会提示内存不足,ELF文件下载失败。EP4CE6E22C8N只有276480bits的片上ROM。但是NiosII+UART需要27480Byte,编译显示超过片上ROM的106%内存占用率。故需用SDRAM(只买了SDRAM)作为系统的复位向量和错误向量,而NiosII与原来用Verilog写的系统要共用SDRAM,这无疑增加了系统的复杂程度,而且难以实现,故采用纯Verilog进行整个系统的编写。

…… UART_TX

为了进行串口通信,首先进行串口发送模块程序的编写。其功能是每次发送一个字节的数据(串转并),并可通过baud_set选择不同的波特率,用tx_done信号表示已经发送完成。其端口定义如下。

表1 UART发送模块端口定义

端口名

位宽

输入 /输出

说明

clk

1

input

时钟信号50MHz

rst_n

1

input

复位信号,低电平有效

data_byte

8

input

要发送的数据

send_en

1

input

为1使能发送(一个脉冲就好)

baud_set

3

input

波特率选择端

rs232_TX

1

output

数据串行输出引脚

tx_done

1

output

发送完成标志信号

uart_state

1

output

发送状态,为1表示正在发送中

具体实现方法,包括波特率的计算、激励文件的编写等,参照《小梅哥的教学视频》

…… UART_RX

关于串口接收程序,同样参照《小梅哥的教学视频》,有波特率的选择、接收数据存储(串转并)和接收完成标志等功能。在顶层文件中例化uart的发送模块,使用“In-System Source and Probe”IP核,完成在线发送和接收功能。

表2 UART接收模块端口定义

端口名

位宽

输入 /输出

说明

clk

1

input

时钟信号50MHz

rst_n

1

input

复位信号,低电平有效

data_byte

8

output

接收到的数据

baud_set

3

input

波特率选择端

rs232_RX

1

input

数据串行输入引脚

Rx_done

1

output

接收完成标志信号

…… UART_WIFI之自启动联网

首先发送数据到电脑上,通过串口调试助手,检测发送数据的格式是否有问题。一开始通过按键控制发送数据的内容,确认无误之后,再修改为自启动。其中,为了避免插拔的麻烦,直接定义两个相等的RX和TX引脚,故定义模块的端口如下表。

表3 UART配置WIFI自启动联网模块端口定义

端口名

位宽

输入 /输出

说明

clk

1

input

时钟信号50MHz

rst_n

1

input

复位信号,低电平有效

key

1

input

按键

rs232_tx

1

output

数据串行输出引脚

rs232_rx

1

input

数据串行输入引脚

test_tx

1

output

方便测试用,等于rs232_tx

test_rx

1

input

方便测试用,等于rs232_rx

led

1

output

LED灯,接收到指定数据的标志

关于程序,首先初始化要发送的数据,如图7-4示。其中,由于之前连接了WIFI,模块会保存账号和密码,故可不发送WIFI账号和密码。重启之后,模块会在5秒之内自动连接到WIFI,并获得IP。

关于波特率设置,因为ESP8266每次重启之后,都会把波特率自动设置为115200,故配置UART的波特率为115200。

图3自启动联网相关配置数据

需要注意的是,WIFI模块数据接收时,以十六进制的“0A 0D”表示数据接收完成,对应到程序中是“\r\n”。还有,发送“+++”表示退出透传模式,此时不需要“\r\n”,而且任何多余字符(包括空格、换行等)都不能有,否则无法退出透传模式[26]。

另外,还有一个需要注意的点是,Verilog中必须用双引号包围字符串。且发送CIPSTART的字符串时,也必须用双引号。故此时就必须用反斜杠转义双引号。

首先,通过计数器cnt判断发送到第几字节了。由于字符串寄存器最大设置了42字节,所以当发送完第42字节时,让cnt清零。相关程序如下:

图4发送完42字节清零寄存器

其中delay1s_cnt是延时1秒计数器,为了实现自动启动(发送完一个字符串之后,自动发送下一个字符串)而设置。delay5s_cnt是延时5秒计数器,目的是为了保证模块能获得IP后再操作。

接下来开始按字符串的顺序发送,其中,为了使每次都能正常退出透传模式,在程序开始,首先发送“+++”。之后,发送复位信号,使ESP8266重启,此时需要等待5秒延时,才能保证模块已获得IP,能够进行之后的数据发送。

图5 发送数据转换程序

由于uart_tx模块每次只能发送一个字节,所以需要一个移位寄存器来表示,每次应该发送第几个字节。相关代码如下。

图6 移位寄存器的实现

对于接收模块,接收完成后判断当接收到0时,让LED灯亮;接收到K时,让LED灯熄灭。实现其功能的代码如图所示。

图7 接收到指定字符,执行相应操作代码

将LED与单片机的舵机信号直连(使用电阻分压),即可实现WIFI控制舵机,使摄像头旋转或者停止。关于程序部分,直接例化此模块到myCamera的顶层文件即可。

…… 最终显示结果

图8 WIFI控制的显示结果

从图中可以看出网页可以实现对蓝色LED的亮灭控制。由于舵机控制无法从图片上提现出来,故用LED灯指示。

sever串口wifi拓展板_基于串口调试助手的WIFI模块调试-FPGA简单联网(点灯)...相关推荐

  1. 基于串口调试助手的WIFI模块调试-FPGA简单联网(点灯)

    根据正点原子的<ATK-ESP8266 WIFI用户手册>,使用XCOM V2.2串口调试助手测试WIFI模块[26].在本系统中运用到的功能主要是TCP/IP模式中的TCP Client ...

  2. sever串口wifi拓展板_串口Wifi模块的工作原理和详细功能介绍

    在无线网络领域里面,无线wifi是最火的名词.对于串口wifi模块的工作原理是什么呢?串口wifi模块又有什么功能呢?wifi方案设计远嘉科技给大家讲解有关串口wifi模块的工作原理,以及详细功能介绍 ...

  3. 10.8.8.8柠檬wifi网页登录_基于企业邮箱进行wifi实名认证的方案

    之前我们介绍过如何用钉钉认证和企业微信认证来实现企业内部的实名上网认证.此外邮箱认证也是企业进行wifi实名认证的一个有效手段.因为很多企业都给员工开通了企业邮箱,直接让员工输入邮箱账号和密码进行认证 ...

  4. 制作千兆以太网FPGA PCB拓展板 实现基于B50610以太网摄像头采集方案

    1.简述 估计会有人会有疑问:作为ICer为什么要做千兆以太网拓展板并实现网络摄像头的采集? 我的回答:这个拓展板在之前移植蜂鸟E203时就制作出来了,这里增加以太网功能和摄像头接口:实现网络摄像头主 ...

  5. iphone开蓝牙wifi上网慢_桌面运维:WiFi信号强,网速却很慢?这样操作就能搞定!...

    公司无线WiFi信号挺强,但上网速度却很慢?白领日常办公经常会遇到这个问题,真令人苦恼!这究竟是为什么呢?别担心,云烁服务的工程师给你支个招,简单修改下就没问题了. 一.造成WiFi信号干扰的原因 1 ...

  6. direct wifi 投屏_【教程】Microsoft Wi-Fi Direct Virtual关闭方法

    使用Win10电脑的用户应该有不少会发现自己的电脑网络适配器里面多了一个设备叫"Microsoft Wi-Fi Direct Virtual Adapter",这个设备不仅仅存在, ...

  7. 如何隐藏网络计算机,电脑隐藏wifi怎么设置_电脑如何设置隐藏wifi?-192路由网...

    问:如何用电脑设置隐藏wifi信号(名称)? 答:需要用电脑先登录到路由器的管理页面,然后打开 无线设置 或者 Wi-Fi设置 这个功能选项,就可以完成隐藏wifi名称的设置了.如果你是新手,建议按照 ...

  8. 使用串口调试助手配置ESP8266模块

    最近闲来无事,手上刚好有一个ESP8266模块,参考了几篇博客,了解了一下如何配置ESP8266,写个博客记录一下. 步骤 一.元件准备 二.硬件连接 三.使用串口调试助手配置ESP8266 一.元件 ...

  9. sTC8G1K08+通过串口显示内部电压_基于51单片机的数字电流电压表

    请点上面蓝色字    即可免费订阅!  1.简述 本文介绍了基于STC89C52单片机为核心,分别以ACS712-05芯片和串联分压电路为为电流检测和电压检测电路,并通过AD0809数模转换芯片对电压 ...

  10. java wifi定位原理_基于wifi的室内定位方法深度分析.doc

    大连理工大学本科毕业设计(论文) 基于WiFi信号的室内定位方法 Indoor localization method based on the WiFi signal 学 院(系): 软件学院 专 ...

最新文章

  1. Django开发—如何重置migration
  2. Java 8和Java 14之间的新功能
  3. Spring Boot(1) 入门、自动配置
  4. Win10 Nodejs搭建http-server注意点
  5. 【uoj#180】[UR #12]实验室外的攻防战 结论题+树状数组
  6. 2018年宝鸡市三检文科数学题目解答
  7. Python 函数的参数形式
  8. 计算机的拓扑 树状结构图,树型网络拓扑结构
  9. 谷粒商城:SPU管理规格显示404
  10. JAVA给枚举成员指定值
  11. kindeditor php 漏洞,KindEditor漏洞、优化以及漏洞、BUG修复方案汇总
  12. 诺基亚x6 云服务器,手机上面怎么玩端游?诺基亚X6通过云电脑玩DNF教程
  13. 蚂蚁迷宫—有限状态机设计(ANT MAZE)
  14. httpd安装、配置、编译三种访问模式控制https证书的安装访问实例及排错
  15. Delphi使用SpreadSheet
  16. cxy安装rasa心得
  17. 税费申报计算机代码,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  18. R语言生存分析中的OR值是什么?如何解读?
  19. java中使用tika_【Tika基础教程之中的一个】Tika基础教程
  20. html+js彩票预选页面

热门文章

  1. IE无法打开internet站点已终止操作的解决办法
  2. php中hr标签的用法,HTML: hr 标签
  3. 微大夫感冒舒缓仪亮相“2018健康陕西发展大会”回顾
  4. 数据结构总结与知识网图
  5. 介绍产品(软件开发)比较好用的工具(项目管理、文件整理等)
  6. 【开源电机驱动】如何计算电机参数
  7. python实现手机app自动化签到
  8. 上万条流行经典语录大全ACCESS数据库
  9. 快速上手ndk开发! Mac/Win下配置和使用!(2018.4重编版)
  10. 用MATLAB对语音进行基频搬移,语音信号变声处理系.doc