资源描述
电脑知识与技术(学术交流)
COMPUTER KNOWLEDGE AND TECHNOLOGY
2006 No.8 P.40-42
B/S模式下PC与单片机远程通信的实现
陈远阳
摘 要:利用互联网中网页浏览服务功能,在互联网上不受IP地址网段限制,不受防火墙的有无限制,不受Ip地址是静态的或是动态的限制,可以实现PC直接对单片机远程的数据采集、控制及通信.
关键词:B/S模式;TCP/IP;远程通信;单片机
分类号:TP393 文献标识码:A
文章编号:1009-3044(2006)23-0040-03
The Realization of the Remote Communication Between PC and Singlechip Based on B/S Mode
CHEN Yuan-yang
参考文献:
[1]张迎新.单片机原理及应用[M].电子工业出版社,2004.10.
[2]谢希仁.计算机网络[M].电子工业出版社,1999.12.
[3]汪晓平.ASP网络开发技术[M].人民邮电出版社,2000.1.
收稿日期:2006年5月16日
出版日期:2006年8月31日
B/S模式下PC与单片机远程通信的实现
陈远阳
广西广播电视学校 广西南宁 530031
摘要:利用互联网中网页浏览服务功能,在互联网上不受IP地址网段限制,不受防火墙的有无限制,不受IP地址是静态的或是动态的限制,可以实现PC直接对单片机远程的数据采集、控制及通信。
关键词:B/S模式; TCP/IP; 远程通信;单片机
中图分类号:TP393 文献标识码:A
The Realization of the Remote Communication Between PC and Singlechip Based on B/S Mode
CHEN Yuan-yang
(Guanxi Broadcast and Television School ,Guanxi Nanning 530031)
Abstract: The Remote data collection、control and communication Between PC and Singlechip Based on B/S Mode by internet web server, Not restricted by IP address section、firewall and static IP address.
Key words: B/S mode;TCP/IP; Remote Communication; Singlechip
1 引言
在远程信号采集与控制系统中,单片机往往作为远端数据的采集与控制执行设备,个人计算机(PC)作为用户端进行数据的处理和界面的形成设备,以前它们之间的通信一般是通过串口RS232方式,这个通信方式的距离是有限的,互联网为单片机远程采集与控制提供了良好的通信平台,用户可以通过TCP/IP协议远程地与互联网上任何分配有IP地址的设备通信,但远程端的设备不一定是直接与互联网连接,更多的往往是通过某一局域网再与互联网连接,其中还可能经过多个路由或防火墙。对于互联网上动态分配IP地址的设备,还必须借助一些工具软件或域名解释服务,查找出其IP地址才可以实现采集与控制。这种远程点对点控制模式实现起来比较困难,笔者采用了B/S模式下基于网页浏览服务器的远程控制方式可以很好地解决以上问题。
2 系统组成及原理
2.1 B/S模式
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。它能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。
INTERNET
防火墙
PC
WEB服务器
数据库
局域网
单片机
在本系统结构中,单片机和PC机均可视为同等的用户终端,它们之间的数据交换以WEB服务器为中介,所有的数据均由WEB服务器接收并转发。
图一 系统结构
2.2 TCP/IP协议和HTTP协议
由于互联网上采用的是TCP/IP协议,要求单片机应具备收发TCP/IP信号的功能,目前有不少的单片机能通过TCP/IP协议连接网络,如不具备此功能的单片机也可以能过相应的网络模块连接网络。
应 用 层
表 示 层
会 话 层
传 输 层
网 络 层
数据连接层
物 理 层
SMTP DNS NSP
FTP Telnet
TCP UDP NVP
IP ICMP ARP RARP
Ethernet ARPANET
IEEE802.3 CSMA/CD
IEEE802.5 Token Ring 等
TCP/IP协议它本身就是在物理网(线缆、PSTN网、X.25网、ISDN网、Ethernet、FDDI、ATM以及无线网、卫星网等)上的一组完整的网络协议。从组织结构上TCP/IP可分为四层。他们分别是网络存取层、互联网层、传输层与应用层。
图二 TCP/IP组织结构
网络层中,IP为互联网络协议(Internet Protocol)、ICMP为互联网络控制报文协议(Internet Control Messgae Protocol)、ARP为地址转换协议(Address Resolution Protocol)、RARP为反向地址协议(Reserve ARP)。
传输层中,TCP为传输控制协议(Transmission Contorl Protocol)、UDP为用户数据报告协议(User Datagram Protocol)、NVP为网络语音协议(Network Voice Protocol)。
应用层中,SMTP为简单邮件传送协议(Simple Mail Transfer Protocol)、DNS为域名服务(Domain Name Service)、NSP为名字服务协议(Name Service Protocol)、FTP为文件传输协议(File Transfer Protocol)、Telnet为远程终端访问(Telecommuncation Network)。
客户浏览器
Browse
Web服务器
Server
WWW
Internet
HTML
HTTP
请求
结果
实现Web服务的通信协议是HTTP,它定义了HTTP的通信交换机制、请求及响应消息的格式等,是浏览和Web服务器之间的直接的应用层通信协议。
图三 Web Browser/Server模型
HTTP设计简单而且灵活,由于是以Browser/Server模式为基础,一个Web服务器可以为分布在世界各地的许多用户服务;它是无连接的协议,因而在请求提出前,Web服务器不会在那里空闲等待,完成一个请求后,服务器也不会继续为这个请求负责,从而不用为保留历史请求而耗费宝贵的资源;HTTP还是无状态的协议,它使得HTTP累赘少,系统运行效率高,服务器应答快。
3 实现过程
3.1 Web服务器
由以上结构可以看到,WEB服务器是数据转输的关键点,数据的收发均通过WEB服务器,目前WEB服务器常用的有Internet Information Server(IIS),它作为整个系统的基础平台。服务器可从相关供应商租用,也可以自行安装设置,方法如下:
首先,进入Windows 2000的控制面板,执行“添加或删除程序”这个选项,选择“添加/删除Windows组件”。
图四 IIS的安装
在Internet信息服务(IIS)前的选取框打勾以后,点击“下一步”,然后Windows 2000系统将自行安装和配置好整个IIS系统。
然后,用Microsoft Management Console(MMC)对系统的IIS进行管理。MMC是用一个与Exploer相似的界面,用树状控制结构来完成操作。在安装IIS时,会默认的安装一个站点,为了方便进行IIS服务器的设定。可以指定默认的Web站点为所需网站服务器。
具体操作为,关闭所有窗口后,进入“控制面板”,选择“管理工具”选项,弹出窗口后选择“Internet服务器管理”并打开;鼠标指向“默认的服务器”然后点击鼠标右键,在鼠标菜单中选择“属性”,就进入了服务器属性菜单的设置。
图五 Internet信息服务管理界面
站点标识,即Web站点标识说明,这个说明不必和Url完全相同,但是站点的说明必须有一定的代表意义。
设定IP地址和端口,如果要在Internet上发布主页,那么所设定的IP必须有效,并且不能和其他已有的IP重复。如果仅仅是为了在自己的机器上调试或浏览,可以把IP设定成为127.0.0.1,代表本机。如果你要在Intranet中建立服务器,那么设定的IP应为内网段的,在这里假定内网的IP为192.168.1.1。
Web站点的默认TCP端口值有80和8080两种
设置Web站点的主目录。输入正确的主目录路径,这就是网站的根目录。如果不作改动的话,默认的主目录就是C:\Inetpub\wwwroot。
配置目录访问权限,权限是Internet服务器安全模式所必须支持的。所以我们一定要确保权限配置是正确的,不正确的配置会使站点工作不正常,甚至将程序的源代码显示给访问者。
至此,就完成了IIS服务器的设置,只需要在浏览器中键入“127.0.0.1”就可以访问自己机器上的Web站点,或者在内网中的任何一台机器上输入192.168.1.1,既访问内网的服务器。这样就可以实现浏览功能。
3.2 WEB服务器网页的设计
WEB服务器接收单片机或PC机的数据以动态网页交互形式进行,目前动态网页ASP Active Server Pages)技术已经风靡全球,应用ASP技术,不需要进行复杂的编程,就可以开发出专业的动态Web网站。ASP技术的出现和发展给曾经以静态内容为主的Web带来全新的动态效果,使其具有更加灵活和方便的交互特性,在Internet中实现信息的传递越来越容易。
为了保存传输过程中的相关信息,必须建立一个数据库,可以在后台利用Microsoft Access作为数据库环境。Microsoft Access集成于Microsoft Office之中,是Microsoft Office的一个组件,操作方便。Access是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。适合于中小型站点,在本系统中完全满足需要。
Active Server Pages通过ODBC操作和使用数据库。假设我们创建数据库的指向文件cn.asp,可用下面的语句建立ASP与数据库的连接:
<%
dim conn ‘定义变量
dim connstr
dim db
db="mcudata.mdb" ‘ 定义数据库虚拟路径
Set conn = Server.CreateObject("ADODB.Connection")‘创建链接对象
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"") ‘ 调用链接对象的Open方法
conn.Open connstr‘ Open链接对象
%>
在每个需要连接数据库的ASP文件上,我们通过下面这个语句把cn.asp文件嵌入其它ASP文件中,以达到连接数据的基础设置。
3.3 单片机与PC机数据的交换
图六是数据转输显意图,不论是数据的收或发,主动权都在单片机,也就是单片机在发数据送时,每隔一定时间向WEB服务器发出请求(提交表单),服务器接收表单数据,并存到数据库中去,这时可根据数据变化刷新主页, PC通过INTERNET访问WEB服务器网页显示数据或图形;单片机在接收数据送时,也是通过单片机每隔一定时间向WEB服务器发出请求(提交表单),WEB服务器根据提交的内容,将数据据回传到单片机中,而PC机可以通过修改WEB服务器网页中的数据来更新传给单片机信息。
INTERNET
单片机
HTTP协议转换
internet
WEB服务器
PC
单片机
HTTP协议转换
WEB服务器
PC
图六 数据转输显意图
单片机访问WEB服务器流程如图七所示:开始
初始化,设定时器初值,并启动定时器
定时器溢出?
N=N+1
定时时间到?
向WEB服务器提交数据或发出HTTP请求读数据
N
N
Y
Y
图七 单片机访问WEB服务器流程
根据以上分析,WEB服务器中至少包括以下ASP脚本文件:
接收单片机定时提交过来的表单脚本文件;响应单片机请求,并保存单片机发送过来数据的脚本文件;接由PC机参数修改后提交的表单脚本文件;供PC机浏览数据的网页脚本文件。
下面以一实例说明,假设服务器接收单片机提交过来的表单文件名为recfrommcu.asp,在服务器中,建立这样一个表单:
<form method="get" action="recfrommcu.asp">
data1: <input type="text" name="data1" >
<br>
data2: <input type="text" name="data2" >
<br ><br >
<input type="submit" value="Submit">
<form>
单片机发送到服务器上的方法:
名为" recformmcu.asp"的ASP文件包含以下脚本:
<body>
<%
x=request.querystring("data1")
y=request.querystring("data2")
%>
</body>
这样单片机发送来的数据保存到变量x和y中了。接下来将变量保存到数据库中,假设已建立一个连接对象cnn,则可以用以下语句将数据写入数据库中去:
cnn.CommandText="INSERT 数据表 data1,data2 VALUES('"+ x +"','"+ y +"')"
cnn.Execute
并用以下语句将数据显示到一网页上,以供PC机接收:
<body>
data1=<%response.write(x)%>
data2=<%response.write(y)%>
</body>
PC向单片机发送数据的过程是类似是,这里不再重复。要说明的是,单片机接收由服务器回送的HTTP信号中的数据包含了各种HTTP协议信息,但只要将接收下来的数据分析一下不难找出我们所需的数据信息。
4 总结
采用B/S模式在互联网上进行PC和单片机的数据传输,不受IP地址网段限制,不受防火墙的有无限制,不受IP地址是静态的或是动态的限制。只要是设备能收发TCP/IP协议的信号,其方法可以推广到其他如单片机之间、嵌入式等设备之间的通信。实践证明,该方法对于实时传输要求不是很高的情况下效果是良好的。
参考文献:
[1] 张迎新,单片机原理及应用[M],电子工业出版社,2004年10月.
[2] 谢希仁,计算机网络[M],电子工业出版社,1999年12月.
[3] 汪晓平,ASP网络开发技术[M],人民邮电出版社,2000年1月.
展开阅读全文