stm32tcp协议实现.docx
- 文档编号:29476613
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:8
- 大小:21.15KB
stm32tcp协议实现.docx
《stm32tcp协议实现.docx》由会员分享,可在线阅读,更多相关《stm32tcp协议实现.docx(8页珍藏版)》请在冰豆网上搜索。
stm32tcp协议实现
竭诚为您提供优质文档/双击可除
stm32,tcp协议实现
篇一:
基于stm32的串口服务器web功能实现
基于stm32
web功能实现
编制:
陈志磊校对:
审核:
日期:
20xx-12-30
版本:
V1.0
的串口服务器
说明:
本文主要说明通过web访问来配置串口服务器参数的功能,前提要求lwip和ucosii都已移植成功。
实现b/s结构,须将串口服务器配置为webserver。
一.webserver文件以及相关技术简介
1.相关文件说明
st公司的官网上提供了通过lwip完成webserver配置的例程,打开我们的工程文件夹“lwip1.4.1移植stm32V1.8”,在lwip-app/web_server_demo文件夹下的文件如图所示:
各个文件的说明见下表:
2.网页制作及网页数组数据转换
(1)网页制作
使用dreamweaver进行网页制作,交互方式主要是通过表单来完成,注意对于使用了需要使用ssi技术来嵌入数据的,需要将网页后缀设为shtml、shtm、stm等。
st的例程默认使用首页索引在httpd.c中g_psdefaultFilenames[]数组里表示,该数组如下:
constdefault_filenameg_psdefaultFilenames[]={{"/index.shtml",false},{"/index.ssi",true},{"/index.shtm",true},{"/index.html",false},{"/index.htm",false}};
该数据表示支持首页索引为index.shtml、index.html、index.htm的网页文件输入。
在网
页设计时,需考虑以下两个方面:
a.表单的操作设计,表单提交的方法为post,表单的处理设为对应的cgi。
b.ssi标签的嵌入。
在需要嵌入信息的位置插入ssi标签。
关于cgi和ssi稍后将会简要说明。
(2)网页数组数据转换
在makefsdata文件夹下的fs文件为网页源文件,如下图:
由于网页源文件不能直接放到stm32里面,所以要做一个转换,这里通过makefsdata.exe这个工具将原始网页文件转换成.c格式的网页数组,这样就可以添加到工程中了,makefsdata是用来将编辑好的网页文件转换成二进制数的一个工具。
接下来我们讲解一下这个工具的使用方法下面我们讲解makefsdata工具的使用。
(1)新建一个名为fs的文件夹,将编辑好的网页源文件放到fs文件夹下,里面包含了编辑好的html和.shtml等网页文件,其中image文件夹里面是我们使用到的图片。
(2)将fs文件夹和makefsdada.exe工具放到同一文件夹下,此处为makefsdata文件夹,打开
makefsdata文件夹,如下图所示。
图中的echotool.exe和tftpd32-3.51-setup.exe为其他工具,这里没有使用到,cmd.reg稍后我们会讲到。
(3)在makefsdata文件夹上点击鼠标右键,然后点击”在此位置打开cmd”选项,打开后结果如图所示。
此时会打开一个cmd命令窗口。
如果点击右键没有”在此位置打开cmd”选型的话,请使用makefsdata文件夹下的cmd.reg文件导入注册表注册,双击打开cmd.reg,然后一路确定下去就可以了。
(4)在打开的cmd命令窗口中输入:
makefsdata–i命令,按回车键。
就会生成fsdata.c文件,将该文件拷贝到web_server_demo
文件下,然后以头文件的方式包含到工程
中即可。
3.cgi技术简介
公共网关接口cgi(commongatewayinterface)是www技术中最重要的技术之一,有着不可替代的重要地位。
cgi是外部应用程序与web服务器之间的接口标准,是在cgi程序和web服务器之间传递信息的规程。
cgi规范允许web服务器执行外部程序,并将它们的输出发送给web浏览器,cgi在物理上是一段程序,运行在服务器上,提供同客户端html页面的接口。
绝大多数的cgi程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器,cgi程序使网页具有交互功能。
比如通过web来处理提交的数据,用的就是cgi技术。
cgi示意图如下:
4.ssi技术简介
服务器端嵌入:
serversideinclude,是一种类似于asp的基于服务器的网页制作技术。
大多数的web服务器等均支持ssi命令。
将内容发送到浏览器之前,可以使用“服务器端包含(ssi)”指令将文本、图形或应用程序信息包含到网页中。
例如,可以使用ssi包含时间/日期戳、版权声明或供客户填写并返回的表单。
对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法。
将内容存入一个包含文件中即可,而不必将内容输入所有文件。
通过一个非常简单的语句即可调用包含文件,此语句指示web服务器将内容插入适当网页。
而且,使用包含文件时,对内容的所有更改只需在一个地方就能完成。
因为包含ssi指令的文件要求特殊处理,所以必须为所有ssi文件赋予ssi文件扩展名。
默认扩展名是.stm、.shtm和.shtml。
ssi是为web服务器提供的一套命令,这些命令只要直接嵌入到html文档的注释内容之中即可。
如:
就是一条ssi指令,其作用是将"info.htm"
的内容拷贝到当前
篇二:
stm32F407_dp83848_lwip移植方法
前段时间做项目用到百兆网通信,用到了lwip,一开始是参照原子的例程做移植,因为原子的例程中使用的是lan8720,为了改成dp83848,改寄存器地址,改位定义,改速度计算公式,折腾了好多天也没成功,最后只好听从网友的建议,修改st官方的一个例程,几天下来,竟然成功了,现在将步骤分享给大家,感觉实际工程中用dp83848的还是大多数..其实本文并不是移植lwip,只是将st官方的例程改成我们项目所需要的,然后我们再在这个基础上完成自己的项目即可,这对新接触lwip又急着做项目的人比较适合,没必要去了解lwip的具体实现,会用就行了..
本文作者:
武汉普创科技--易宇--转载请注明出处
本人的项目配置:
stm32F407Vet6+dp83848c
1、从官方网站/retype/zoom/893d349a6c175f0e7dd1373epn=1
/*displaymessageonthelcd*/
lcd_displaystringline(line5,(uint8_t*)"networkcableis");
lcd_displaystringline(line6,(uint8_t*)"notconnected");
/*setthelcdtextcolor*/
lcd_settextcolor(white);
再编译就没有问题了。
8、按电路图修改时钟,修改stm32f4xx.h中宏定义标识符
hse_Value的值为我们的外部时钟20mhz
设置主pll时钟,在system_stm32f4xx.c文件开头的地方配置
所以我们的主pll时钟为:
pll=20mhz*n/(m*p)=20mhz*336/(20*2)=168mhz
systeminit()函数中设置的系统时钟大小:
sysclk(系统时钟)=168mhz
ahb总线时钟(hclk=sysclk)=168mhz
apb1总线时钟(pclk1=sysclk/4)=42mhz
apb2总线时钟(pclk2=sysclk/2)=84mhz
pll主时钟=168mhz
9、这个例程默认的是stm324xg_eVal开发板,它使用的主芯片是stm32F407ig,而我们项目所使用的主芯片是stm32F407Ve,要更改芯片配置。
篇三:
基于stm32的嵌入式无线遥控系统的设计与实现
基于stm32的嵌入式无线遥控系统的设计与实现作者:
关键词:
远程遥控,stm32,wiFi,嵌入式系统
摘要:
随着无线局域网技术的快速发展,无线终端已融入我们的生活,无论是智能手机还是笔记本,wiFi功能是必不可少。
在智能化背景下的21世纪,许多“基于物联网技术”的产品已经悄悄进入生活中,众多基于aRm(acornRiscmachine)内核以及其他内核技术的产生,极大的扩充了智能控制领域。
本次设计,设计完成了一个主体采用stm32(由意法半导体集团开发设计)开发板以及atk-Rm04-wiFi(高性能uaRt-eth-wiFi模块)通信模块,利用控制端pc机或者手机,通过wiFi远程操控设备,实现一个对象对多个对象的控制系统,其成本低廉。
通过pc机/手机客户端向stm32发送特定指令让与stm32连接的步进电机以指定速度转动指定角度。
本设计的程序非常精简,操作起来简便易行。
0.1设计背景
在智能化背景下的21世纪,物联网技术已经开始成为着重研究的技术。
物联网,顾名思义,就是物物相连的互联网。
利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管理控制和智能化的网络。
物联网是互联网的延伸,它包括互联网及互联网上所有的资源,兼容互联网所有的应用。
0.2设计概述
本设计是针对物联网中远程遥控方面进行研究,实施之初,通过调研市场,了解了市场上某些同类产品的优劣势,希望通过比对,了解各产品,并对其某些不足方面进行深化和改进。
经过市场调研,了解到众多现有产品有非常明显的缺陷,只能单对单的控制,不能实现一个遥控器实现多个开关的控制,有部分能够实现多对多控制的,但相对的,成本非常高。
本设计鉴于以上市面上遥控产品的缺陷,进行改进。
主体采用s0tm32开发板以及atk-Rm04-wiFi通信模块,利用控制端pc机或者手机,通过wiFi远程操控设备,实现一个对象对多个对象的控制。
0.3设计目的及其应用
通过对于市面上遥控产品的缺陷,进行改进,本文实现了用wiFi技术远程操控多个电机的控制。
通过控制端pc机或者手机,通过wiFi远程操控设备,实现一个对象对多个对象的控制。
1设计采用的原理及知识
规划整个设计,整个设计大体采用如下方面知识。
1.1stm32开发板方面
1.单步∕全速运行、设置断点和观察变量∕寄存器等方法调试嵌入式应用程序的知识。
2.通用数字输入输出(gpio)和系统定时器(systick)的软件开发方法。
3.发光二极管(led)和按键(pushbutton)的驱动原理。
4.常用的延时(delay)的实现。
5.中断控制器(nVic)的内部结构和工作原理。
1.2步进电机方面
四相八拍步进电机运作模式。
四相步进电机有两种运行方式,一、四相四拍;二、四相八拍。
1.3atk-Rm04wiFi模块方面
1.串行通信的原理,通用同步串行收发器(usaRt)的软件开发方法。
通用同步/异步串行接收/发送器,usaRt是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。
2.与stm32开发板对接方面知识。
3.无线网卡sta模式方面知识。
1.4网络方面原理及知识
网络通信协议-tcp/ip
tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/网际协议)是目前最常用的一种通信协议。
tcp/ip具有很强的灵活性,支持任意规模的网络,几乎可连接所有服务器和工作站。
在使用tcp/ip协议时需要进行复杂的设置,每个结点至少需要一个“ip地址”、一个“子网掩码”、一个“默认网关”、一个“主机名”,在windowsnt中提供了一个被称为动态主机配置协议(dhcp)的工具,它可以自动为客户机分配连入网络时所需的信息,从而减轻了连网工作的负担,并避免了出错。
dhcp所拥有的功能必须要有dhcp服务器才能实现。
另外,同ipx/spx及其兼容协议一样,tcp/ip也是一种可路由的协议。
2方案规划
2.1三大部分的组件
经过初步设计规划,把整个设计划分成三部分,即控制端、路由端和被控端。
2.1.1.控制端
控制端一.pc机
连接到架设的无线路由器,寻呼到stm32上的wiFi的ip,利用网络连接助手向stm32发送指令和接收stm32发送的信息。
,
控制端二.手机
采用安卓版本网络调试助手,连接到架设的无线路由器,寻呼到stm32上的wiFi的ip,向stm32发送指令和接收stm32发送的信息。
2.1.2.路由端
架设无线网络,用于连接控制端和被控端,分配ip给组件,形成路由网络。
包含一个路由器:
modelno.tl-wR541g/tl-wR542g。
2.1.3.被控端
stm32通过wiFi模块连接到架设的无线路由器,接收pc机/手机客户端发送过来的指令并作出对电机的控制。
组件分别是stm32开发板,atk-Rm04wiFi模块,步进电机及驱动模块。
2.3开发环境选择
本设计采用的软件大体上有:
keilmdk、网络调试助手、c语言。
其中keilmdk为基于c的嵌入式软件编程平台,编程语言为c。
网络调试助手主要用于进行网络调试以及对stm32的远程遥控,有pc版本和安卓版本2款。
3.1硬件实现
硬件实现方面包括嵌入式处理器stm32资源规划,即嵌入式处理器与atk-Rm04wiFi通信模块的布线,与步进电机控制单位uln20xx接线板的布线。
3.1.2嵌入式处理器与外设具体连接连线图
1.atm-Rm04与stm32连接图:
stm32的pa9连接atk-Rm04的Rxd(关系到编程实现)
stm32的pa10连接atk-Rm04的txd(关系到编程实现)
图3.1atm-Rm04与stm32连接图
2.uln20xx驱动模块与stm32以及步进电机连接图
stm32的pa4到pa7连接uln20xx的1b到4b(关系到编程实现)
图3.2uln20xx驱动模块与stm32以及步进电机连接图
3.发光二极管(led)与嵌入式微控制器(stm32)的接口电路
led闪烁30秒,用作提示stm32与atk-Rm04模块正在初始化,初始化成功后,会熄灭。
3.2软件实现
3.2.1程序流程图
图3.4程序流程图
如图main函数主要进行控制指令的接收,而且是通过中断程序接收的,这样可以腾出更多的处理器资源,中断函数则是一直进行接收操作的,不间断,一旦收到指令,就跳转反馈给main函数。
4.1.1恢复出厂设置
为了确保正确连接进入wiFi网络,首先要确保模块是出厂设置,如果不确定是不是出厂设置,可以先恢复出厂设置。
具体方法:
先上电,等待模块启动成功(35秒左右),然后长按(6秒左右)es/Rst或wps/Rst按钮来让模块恢复出厂设置。
恢复出厂设置成功的标志:
可以看到wan和wiFi两个指示灯同时亮起,大概1秒后,同时灭掉,表明模块恢复出厂模式成功。
4.1.2等待stm32中程序烧录入wiFi模块
当开启设备之后,整个设备会先进入35秒左右的系统设置时间,把整个网络架构程序烧录进入wiFi模块,红灯会闪烁直到整个烧录过程结束,此时,stm32模块以及atk-Rm04模块已经设置完毕。
4.2手机端通过wiFi连接stm32设备
同电脑端一样,重新配置设备之后,用用手机进行连接操作,将手机wiFi打开,连接进入指定wiFi网络。
接着打开安卓手机控制客户端-网络调试助手-按照tcp客户端模式-增加连接-192.168.1.121-网关192.168.1.111-子网掩码255.255.255.0操作完毕即可连入。
整个远程遥控过程中,手机端与电脑端遥控结果相同,故不再赘述。
操作设备只要具备网络调试功能,能够连接进入wiFi网络,均可远程遥控设备,可以实现多个设备遥控一个被控端,或者通过此技术实现多个设备遥控多个被控端,只要合理的设置网络,ip分配等不冲突。
5产品开发小结
5.1产品的特色和创新
本产品能够实现通过pc机/手机客户端向stm32发送特定指令让与stm32连接的步进电机以指定速度转动指定角度。
程序非常精简,操作起来方便,有利于用户的学习和使用。
5.2产品存在问题
技术上,暂时只能实现一些简单的控制,如控制小灯的熄灭和点亮,设备之间不能显示通信的具体信息,没有更加具体的输出设备,如led显示屏。
实用性上,由于功能较少,暂时还不能满足正常的生活、生产需求。
参考文献
[1]李祁,范源远,韩秋枫.基于μc/os-ii的led控制在stm32上的实现[j].计算机系统应用,20xx,04:
209-213.
[2]曹彬乾,程远增,杨青.基于stm32+Fpga的数据采集系统的设计[j].计算机工程与设计,20xx,04:
1231-1235.
[3]陶杰,王欣.基于stm32F407和oV7670的低端视频监控系统[j].单片机与嵌入式系统应用,20xx,03:
60-63.
[4]苑恒,徐军明,胡晓萍.基于stm32的高精度三电极测试电路研究[j].机电工
程,20xx,02:
186-190.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- stm32tcp 协议 实现