当前位置:首页 > 单片机 > 单片机
[导读]摘 要:传统的远程监控系统一般采用C/S 模型的方式,针对大型设备,成本高。文章采用SOC 芯片C8051F020 和10M 自适应网络芯片RTL8019AS 接口的方案,在单片机中嵌入了精简的TCP/IP 协议栈,构建了基于Web 的单片机远

摘 要:传统的远程监控系统一般采用C/S 模型的方式,针对大型设备,成本高。文章采用SOC 芯片C8051F020 和10M 自适应网络芯片RTL8019AS 接口的方案,在单片机中嵌入了精简的TCP/IP 协议栈,构建了基于Web 的单片机远程监控系统软、硬件平台,在此基础上实现了基于单片机的数据采集和远程监控,所实现的系统具有成本低廉、操作方便、可靠等优点。

1. 引言

单片机系统以其简单、高效的特点,在工业控制和日常生活中应用越来越广泛。目前大多数单片机系统是以51 单片机为核心,与检测、伺服、显示设备配合起来实现监控功能。

然而,这些监控系统的数据传输多采用RS-232、RS-485 以及各种现场总线,这些方式有些通信速度不够快,有些距离不够远,且各种总线之间难于实现互连和互操作。以太网作为目前应用最为广泛的局域网,在工业自动化和过程控制领域得到了越来越多的应用。同时,随着Internet 的普及,现代通信技术的进步,基于TCP/IP 和Client/Server 架构的分布式监控技术也日趋成熟。把嵌入式系统连接到Internet 上,就可以方便、低廉地把信息传送到世界的任何一个地方。

传统的远程监控系统一般采用C/S 模型的方式,主要针对大型的设备进行监控。对于如摄像头图象监控﹑家用仪表﹑门禁控制系统等小型的设备的监控就需要采用低成本的方案。

鉴于此,在低成本的单片机系统上移植精简的TCP/IP 协议簇,实现对于小型设备远程监控是最佳选择。该系统以Web 方式实现,用户可以在任何一台装有浏览器的PC 机上进行远程监视与控制,具有价格低廉、操作方便、界面友好等优点。传统的远程监控系统模型与本系统采用的模型如图1 和图2 所示。

图1 传统远程监控系统模型


图2 单片机监控系统模型

2. 系统硬件设计

本系统以 Cygnal 公司的完全集成的混合信号系统级芯片(SOC)C8051F020 单片机为核心,采用Realtek 公司的10M 自适应以太网控制器RTL8019AS 实现系统的网络接口部分。

SRAM 部分用于存放大量的数据信息。数据采集部分用于采集系统需要监控的设备的运行情况,由于C8051F020 内部带有真正12 位100 ksps 的8 通道ADC 带PGA 和模拟多路开关,还有两个12 位DAC 可编程更新时序,可以方便的进行模拟信号采集和对外设进行控制。

C8051F020 单片机内置64K FLASH 程序存储器、4K 内部SRAM,可以嵌入TCP /IP 协议, 从而实现嵌入式Web Sever 的功能。RTL8019AS 集成了介质访问控制子层(MAC)和物理层的性能,与单片机的接口简单,可以方便地用来设计基于ISA 总线的系统。另外,它还具有与NE2000 兼容、软件移植性好以及价格低廉等优点,所以特别适合用于嵌入式系统。


图3 系统框图

3.系统软件设计

3.1 软件流图设计

软件的实现主要是根据数据在网络中传输的方向和数据的流向来实现的。在本设计中数据的流向为:请求信息从局域网中来,通过RJ 45 送到RTL80l9AS,处理后的数据包送入单片机系统的协议栈,由协议栈对数据包进行解析,得到原始请求信息。请求信息再经过单片机系统的处理,产生回复信息。回复信息到局域网的过程与上面正好相反。整个系统的软件流程如上图4 所示。


图4 软件框图

3.2 RTL8019 接收与发送数据

1.RTL8019 芯片初始化主要是将网卡设置成正常的模式,跟外部网络连接。清除所有中断标志位,让芯片开始工作。

2.对RTL8019 接收数据操作,有查询和中断两种方式。因为单片机的速度和PC 机相差太远,而且还有一些采集任务,本系统不采用中断方式,用查询方式。在查询方式下,通过查询CURR 和BNRY 两个寄存器的值来判断是否收到一帧数据。当BNRY+1 与CURR不相等,说明接收缓冲区接收到了新的数据帧。图5 为RTL8019 报头格式,接收部分子程序如下:

UCHAR xdata * rcve_frame(void) //如收到有效数据包,返回收到的数据,否则返回NULL


图5 RTL8019 报头格式

3.数据的发送包含三个步骤:封装数据包;通过远程DMA 将数据包送入RTL8019AS的数据发送缓冲区;通过RTL8019 的本地DMA 将数据送入FIFO 进行发送。具体过程如下:

(1)包在发送前应该按规定的格式封装好,格式如下图6 所示:


图6 MAC 帧首部

(2)把上面的数据包通过远程DMA 写入RTL8019AS 的数据发送缓冲区;

(3)启动本地DMA,把数据发送出去,数据包长度最小为60 字节,最大1514 字节。

发送子程序为:void send_frame(UCHAR xdata * outbuf,UINT len)//发送一个数据包3.3 TCP/IP 协议栈的实现。

3.3.1 ARP 协议的实现

ARP 地址解析协议的本质是完成网络地址到物理地址的映射。物理地址有以太网和令牌环网两种基本类型,网络地址特指IP 地址。具体到以太网,使用的是动态绑定转换的方法,但是会遇到许多细节问题,例如减少广播,ARP 包丢失,物理地址变更(更换网卡)、移动(移动设备到另一子网)、消失(关机)等。一般是设置ARP 高速缓存,通过学习、老化、更新、溢出算法处理ARP 映射表来解决这些问题。整个ARP 处理过程,主要用5 个函数实现。

在实现网卡驱动程序后,所有ARP 处理操作就是填写ARP 包。主要程序代码编制如下:

(1)void init_arp(void)//完成ARP 表初始化,概括说就是ARP 表state 字段清0

(2)void arp_send(UCHAR * hwaddr,ULONG ipaddr,UCHAR msg_type)//完成ARP 请求

(3)void arp_rcve(UCHAR xdata * inbuf)// 完成响应操作

(4)UCHAR xdata * arp_resolve(ULONG dest_ipaddr) //完成从cache 里面查找对应//IP 地址的物理地址,如果没有,就发送ARP 请求

3.3.2 IP 协议的实现

网际协议 IP 是TCP/IP 协议族中最为核心的协议,它的主要功能是负责把数据交付给主机,当目标主机与原主机处于不同的物理网络中时,IP 负责把数据包路由到相应的目标网络上。Internet 上所有的数据都以IP 数据包格式传输。IP 协议最大的特点是提供不可靠的和无连接的数据包传送服务。IP 协议主要实现以下两个子程序:

(1) void ip_send(UCHAR xdata*outbuf,ULONG ipaddr, UCHAR proto_ id,DINT len)//发送IP 数据;该子程序用来创建一个发送数据报。

(2) void ip_rcve(UCHAR xdata *inbuf) //接收IP 数据;该子程序检测一个外来数据包,并对数据包作相应的处理。

3.3.3 TCP 协议的实现

1.使用TCP 状态机:TCP 协议是整个TCP/IP 协议的核心,也是传输层中最复杂的协议。TCP 协议在两个端点之间建立了等效于物理连接的逻辑连接。数据沿着这个连接双向传输。连接的双方必须对发送和接收的数据保持跟踪,以便能够检测出数据流中的遗漏和重复。

2.使用简单的确认机制:序列号和确认号这两个字段用于协同完成TCP 协议中的确认工作。对于每个接收到的数据包进行确认号的计算,需要从接收到的数据包中提取TCP 报文的数据部分长度,并进行计算,这增加了处理器的运算量。但如果每次只对单个TCP 报文进行确认的话,并没有太大的难度。TCP 协议主要包含的程序如下:

(1) init_tcp(void) //初始化TCP 协议

(1) Tcp_send(UINT flags, DINT hdr_len, UCHAR nr) //发送TCP

(2) Tcp_retransmit(void) //重发TCP 数据

(3) Tcp_inactivity(void) //停止TCP

(4) Tcp_rcve(UCHAR xdata * inbuf, UINT len) //接收TCP 数据

3.3.4 HTTP 协议简介

HTTP 协议是TCP 协议的高层协议,HTTP 的请求和应答都是一行或多行文本,它的结束标志是一个换行符[5]。如果请求成功,数据就沿着该连接发送,直到发送完为止。HTTP的端口号为80.HTTP 中的命令称呼为方法(method),其中GET 语句用来获取文档,POST语句用来粘贴文档。通过判断GET 和POST 语句后面的文件名来判断所需要传递的文件的位置。

请求:

GET / HTTP/1.1

响应:

HTTP/1.1 200 OK

Content-type: text/html

……

《html》

《body》

……

《/body》

《/html》

4.应用部分

本 WEB 服务器系统几乎可以应用于所有对实时性要求不是很高的场合,只要对本系统的相关部分做些修改或改进,例如:客户端的访问权限、IP 地址的过滤等,就可应用于诸如远程抄表、信息家电的远程控制等场合。下面图7 为ping 命令测试网络不通到通的连接状态,图8 实现了局域网内任意主机通过ip 地址形式访问单片机内部存诸的网页,从而实现对单片机系统的远程监控。


图7 网络连接测试


图8 远程监控温度

5.结束语

实现了基于单片机的 TCP/IP 协议栈,使单片机控制的系统具有了WebServer 的功能,这样可以使用PC 机通过因特网远程访问单片机系统,也可以使用单片机系统将有用的信息通过因特网发送到远端的PC 或其它终端上。为嵌入式设备实现远程数据采集、远程监控、远程诊断、远程帮助、远程升级、远程重构等功能提供了可能,这是嵌入式系统发展的趋势。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭