天线|RF射频
直播中

杨红

7年用户 217经验值
私信 关注
[问答]

分享一款不错的基于嵌入式Web Server的无线数据采集系统

分享一款不错的基于嵌入式Web Server的无线数据采集系统

回帖(1)

李可熠

2021-5-28 09:43:44
  1 硬件设计
  1.1 基于MCF5272芯片的嵌入式Web Server
  基于MCF5272芯片的嵌入式Web Server硬件配置如下:MCF5272(Cold Fire系列)32位处理器、4M字节的两片16×1M位数据宽度FLASH、16M字节的两片16×4M位数据宽度SDRAM、两个标准RS-232串口、一个标准10/100M自适应快速以太网接口、一个BDM接口、各种状态指示和电源等。 MCF5272微处理器是迄今为止摩托罗拉推出的最高集成度的Cold Fire微处理器。这款高集成的Cold Fire微处理器将10/100MB以太网控制器和一个USB模块等通信外围设备结合起来,提高了MCF5272集成通信微处理器集成水平。
  它不仅提供了一套新的通信外围设备,同时还包含了以往Cold Fire标准产品所具备的广受欢迎的通用外围设备。
  1.2 PTR2000+系列无线数传模块
  PTR2000+为讯通科技出产的无线数传模块,具有接收发射合一、体积小、外围器件少等优点,可直接与MCU串口相接,也可以接计算机RS232接口,软件编程非常方便。由于采用了低发射功率、高接收灵敏度的设计,使用者无需申请许可证 。其标准DIP引脚间距,更适合嵌入式设计。
  PTR2000+具有良好的产品特性,工作频率为国际通用的数传频段433MHz,FSK调制,抗干扰能力强;采用DDS+PLL频率合成技术,频率稳定性极好;具有两个频段,适合于需要多信道工作的特殊场合;工作速率最高可达20Kbit/s,也可在较低速率(如9600bps)下工作。
  1.3 系统原理
  整个系统由数据采集发射终端和数据接收端组成。
  数据采集发射终端主要以51系列单片机为核心,MCU的P1口控制多路选择器,对8路模拟信号进行选择,选中的模拟信号进入高速AD转换器,进行模数转换。MCU同时控制AD的采样频率和起始转换,转换结果存入FIFO存储器。按照规定的通信协议,MCU对数据进行编码,最后通过数传模块PTR2000+发射给远方接收端。为提高数据传输的可靠性,数据发送完毕,MCU将PTR2000+转换为接收状态,接收主机的应答信号或控制字。
  
  图1 数据采集端结构框
  PTR2000+通过RS-232将接收到的数据送入MCF5272嵌入式Web Server,MCF5272嵌入式Web Server接收完数据,将PTR2000+转换为发射状态,然后对数据进行CRC循环码校验。如果数据正确,就通过嵌入式操作系统的UDP/IP协议栈,将数据打包,保存到FLASH芯片的可写JFFS文件系统之中,同时运行web服务器,等待客户服务端通过网络访问数据;错误,则向PTR2000+发送重发命令。MCF5272嵌入式Web Server通过以太网口接入Internet网络,用户可通过浏览器(例如:IE)对系统进行远程配置、管理(如更改IP,重新启动系统等),并且可以调用封装好的函数API直接对FLASH芯片的某几个扇区进行读写操作,可将配置的信息以及采集数据保存在系统FLASH芯片上。
  
  图2 数据接收端结构框
  上位PC机通过RS-232与BDM调试器相连,BDM调试器通过BDM口与Web Server相连,可以对Web Serve进行初始化配置、调试和日常维护。
  2 系统软件实现
  系统的软件设计与实现是本系统实现的关键之一。
  2.1 系统软件:包括嵌入式操作系统与设备驱动程序
  嵌入式操作系统是支持嵌入式系统应用的操作系统软件,是在系统实时性、硬件相关性、软件固态化等方面有着突出特点的专用操作系统。由于Cold Fire系列芯片是没有MMU (内存管理单元Memory Management Unit)的处理器,而 uClinux是专为那些没有MMU的嵌入式处理器开发的,所以本系统采用uClinux嵌入式操作系统。
  uClinux是Linux的一个嵌入式版本,它是源代码开放的嵌入式操作系统,其内核的二进制映像文件可以做到小于512K。uClinux针对无MMU的处理器设计,支持多 任务,具有完备的TCP/IP协议栈并支持多种网络协议。uClinux还支持多种文件系统,如ROMFS、NFS和JFFS等。另外,uClinux可移植性很强,用户通过重新配置、编译内核,很方便将其移植到68K、Dragon Ball、Cold Fire、Power PC、ARM等多种处理器计算平台。当前uClinux提供2.0和2.4两个内核版本。
  本系统采用uClinux嵌入式操作系统主要需要解决以下三个问题:
  第一,实时性问题。uClinux本身并没有关注实时性问题,它并不是为了Linux的实时性而提出的。而本系统中的数据采集功能对操作系统的实时性有一定要求。通过给uClinux打上其它Rt-linux的实时性补丁,就可以增强uClinux的实时性,满足这个系统的实时要求。
  第二,JFFS文件系统的建立。uClinux系统采用Romfs作为根文件系统,Romfs文件系统不支持动态擦写保存。而本系统中的嵌入式的Web Server在运行过程中,要求能够动态地保存一些数据,并且当系统重新启动时,保存的数据依然存在。所以我们需要充分发挥Flash可擦写的优势,在系统运行过程中,动态地擦写Flash来保存数据。通过建立JFFS文件系统,可以用Flash来保存数据,即将Flash作为系统的硬盘来使用。可以像操作硬盘上的文件一样操作Flash芯片上的文件和数据。系统运行的参数可以实时保存到Flash芯片中,在系统断电后数据仍然存储在Flash芯片中。为实现Flash上的JFFS文件系统,我们需要在内核中加入对JFFS文件系统和Flash设备的支持,并针对具体的Flash 芯片修改设备驱动程序,生成设备节点并将JFFS文件系统挂接到Flash 设备上。
  第三,编写各个设备的驱动程序。主要包括串口驱动程序、以太网接口驱动程序、BDM调试接口驱动程序和FLASH芯片驱动程序。
  2.2 嵌入式Web Server软件系统实现
  嵌入式Web Server的软件系统包括五个部分: ①HTTP引擎; ②虚拟文件系统; ③配置模块; ④安全模块; ⑤应用程序接口模块。
  
  图3 嵌入式Web Server软件系统示意图
  其中HTTP引擎负责响应用户的请求、通过虚拟文件系统访问静态数据信息、通过应用程序接口得到动态数据信息。
  虚拟文件系统为嵌入式Web Server提供虚拟文件服务,虚拟文件系统使用数据结构存储文件大小、修改时间等信息。对于存储HTML文件需要的动态信息建立数据结构保存脚本的指针和脚本所调用函数的名称。通过虚拟文件系统将Java、 GIF、 PDF、 HTML以及文本等文件形式编译为Web服务器认可的代码,而独立于具体的文件系统。
  配置模块使系统管理员可以从任何一台标准的Web浏览器上设置嵌入式Web Server参数,在系统启动中定义的配置环境变量包括并发连接数、Socket端口、主机名称、根文件路径、缺省初始文件以及非活动超时和时区等。
  配置模块对标准浏览器的开放使得安全问题更加重要,尤其是对网络设备的配置和控制信息的访问成为安全保护的重点。安全模块通过在服务器上定义安全域和对每个安全域定义的用户名和密码实现对敏感信息的保护。还可以对请求数据采取加密措施实现安全保护功能。
  应用程序接口模块实现和嵌入式应用系统的数据交换。在嵌入式Web Server中,应用程序接口与嵌入式操作系统通信,实现对嵌入系统的配置、监视和控制,是嵌入式Web Server软件系统的核心。而应用程序接口模块常见的有CGI(Common Gateway Interface)、SSI(Server Side Include)和HCPA(HTML-to-C Preprocessor Approach)等3种形式。
  本系统应用程序接口模块采用CGI形式。CGI提供嵌入式Web Server一个执行外部程序的通道,CGI程序经过编译成为可执行文件,放在服务器端运行。嵌入式Web Server根据用户的请求调用相应的CGI程序。并由嵌入式Web Server将CGI程序得到的动态信息封装到页面中,发送到用户浏览器上。
  3 无线数据传输
  3.1 通信原理
  在此系统中,基于无线方式的数据传输,决定了它有相对高的不可靠性,为了可靠通信,编程时设计了相应的通信协议,并采用数据帧号和CRC校验进行数据的纠检错。
  Web Server和数据采集终端的数据传输采用半双工方式,基于停止等待协议(stop and wait)的思想,将待传输的数据帧按先后顺序附加上帧号,以保证数据的正常传输。数据采集终端首先处于接收状态,Web Server将控制字(A/D采样频率、采样方式)发送给数据采集终端后,Web Server转换为接收方式,等待终端发送确认帧。数据采集终端接收到控制字,进行CRC数据校验,如果数据正确就向Web Server发送确认帧,数据帧帧号清零,开始进行数据采集和数据传输。反之,则向Web ServerR发送重发请求。
  数据开始传输,数据采集终端发送第N帧数据,发送完毕,转换为接收状态,等待Web Server发送确认帧;Web Server接收到数据,进行CRC校验,将帧号与自身帧号比较,数据正确,将自身帧计数器加1,通知数据采集终端发送第N+1帧数据。
  3.2 通信协议
  PTR2000+在无信号时,串口输出的是随机数据,为保证无线通信的可靠,必须定义一个简单的通信协议,对数据进行打包后传输,数据帧格式见图4。
  
  图4 数据帧格式
  考虑到无线通信中的延迟效应和数传MODEM的发射接收转换时间,为使接收建立正确的同步,需要在数据帧头部加入5byte 的填充比特和同步码。在整个数据通信中需要3种类型的的数据帧,即服务器发送的控制帧,数据终端发送的数据帧,和他们发送的确认帧,长度包括类型码和数据帧字节数之和数据校验采用16位CRC循环校验码。
  数据终端发送的数据帧设计为48byte,当采用12位的A/D转换器件,如AD1674时,每一路占用16 bit,对8路模拟信号进行一次循环采集占用16个字节,因此48byte的数据帧可存储3次循环采集的数据,这样设计的目的是为了提高数据传输的速率。当PRT2000+传输速率为19.3Kbit/s时,采用此通信协议对单路信号进行采集,速率可达4Kbit/s,此系统可用于低速的数据采集系统中。
  4 结束语
  远程无线数据采集与传输的应用范围非常广,涉及行业有电力、水利、公安、交通、石油、安防和金融等。上述设计实现了基于嵌入式Web Server的无线数据采集,主要用于车辆遥测、远程无线抄表、工业数据采集系统、非接触RF智能卡、生物信号采集等低速率远程数据采集系统中。本系统的主要特点在于其服务器的设计基于嵌入式技术与WEB技术,而数据采集部分采用无线传输技术。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分