论文网络数据采集与控制卡设计.docx
《论文网络数据采集与控制卡设计.docx》由会员分享,可在线阅读,更多相关《论文网络数据采集与控制卡设计.docx(21页珍藏版)》请在冰豆网上搜索。
论文网络数据采集与控制卡设计
中文摘要
随着社会和工业的高速发展,用到数据采集的场合越来越多,采集卡要求也越来越高。
本设计以单片机C8051F340为数据采集核心器件,通过以太网控制芯片CP2200的RJ45与Internet相连,把采集的数据通过与以太网控制芯片CP2200连接的网线传到电脑上通过网页显示出来,同时在网页上可以控制硬件设备上的LED的亮与灭。
关键词:
C8051f340,CP2200,数据采集
ABSTRACT
Withtherapidsocialandindustrialdevelopment,Usedfordataacquisitionmoreandmoreoccasions,collectingcardsisgettinghigherandhigherrequirements.C8051F340singlechipdesigntothecoredevicefordataacquisitionthroughtheCP2200EthernetcontrollerchipconnectedtotheRJ45andtheInternet,thedatacollectedwiththeCP2200EthernetcontrollerchipconnectedtoacomputernetworklinepassedthroughthewebpageisdisplayedAtthesametime,thewebsitecancontrolthehardwaredevicesandtoeliminatebrightLED.
KeyWords:
C8051f340,CP2200,DataAcquisition
目录
1引言1
2系统硬件总体设计方案1
2.1C8051F340单片机简介1
2.1.1C8051F340单片机主要性能特点1
2.2以太网控制芯片CP2200简介3
2.2.1CP200硬件特性介绍3
2.2.2CP2200系统框图4
2.2.3缓存和Flash存储组织结构4
2.2.4CP2200的寄存器4
2.2.5TCP/IP协议栈5
3主要电路原理图及其说明6
3.1C8051F340与CP2200的连接原理图6
3.1.1C8051F340资源分配6
3.1.2CP2200资源配置6
3.1.3晶振电路7
3.1.4以太网变压器7
3.2下面详细介绍以CP2200驱动程序的具体实现7
3.2.1CP2200的初始化7
3.2.2 接收过程8
3.2.3 发送过程8
4软件设计11
4.1Web页面存储及网页数据12
4.2动态内容的处理及在线互动的实现13
4.3网页编辑13
4.4增加CGI函数15
5结论18
参考文献19
致谢20
1引言
数据采集,是指从传感器和其它待测设备等模拟和数字被测单元中自动采集信息的过程。
工业现场一般需要数据采集器完成各类数据采集任务和判断当前运行设备的状况,进而采取相应措施。
实际应用中要求数据采集器工作可靠,成本低廉,操作简单,便于数据收集和分析,既能与PC机联机工作又能独立采集数据。
为此,本文以带有片上A/D转换器的高度集成处理器C8051F340为核心器件,采用设计一款低成本数据采集器。
该数据采集器通过以太网芯片CP2200与PC机共同实现数据采集与分析,也可长时间独立工作于工业现场,便于数据收集并利用计算机分析。
2系统硬件总体设计方案
在芯片的选择上,针对目前常用的8位单片机,同时考虑到嵌入式系统对程序执行的速度快和内存空间大的要求,系统选用的MCU为siliconLaboratories公司的C805IF340单片机。
对于以太网控制器,考虑到它的性能和价格,也是采用了siliconLaboratories公司最新开发的以太网控制器CP2200。
系统硬件总体功能结构如图所示。
2.1C8051F340单片机简介
2.1.1C8051F340单片机主要性能特点
C8051F340单片机器件是完全集成的混合信号片上系统型MCU。
(1)高速、流水线结构的8051兼容的微控制器内核(可达48MIPS)
(2)全速、非侵入式的在系统调试接口(片内)
(3)通用串行总线(USB)功能控制器,有8个灵活的端点管道,集成收发器和1KFIFORAM
(4)电源稳压器
(5)真正10位200ksps的单端/差分ADC,带模拟多路器
(6)片内电压基准和和温度传感器
(7)片内电压比较器(两个)
(8)精确校准的12MHz内部振荡器和4倍时钟乘法器
(9)多达64KB的片内FLASH存储器
(10)多达4352字节片内RAM(256+4KB)
(11)硬件实现的SMBus/I2C、增强型UART(最多两个)和增强型SPI串行接口
(12)4个通用的16位定时器
(13)具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列(PCA)
(14)片内上电复位、VDD监视器和时钟丢失检测器
(15)多达40个端口I/O(容许5V输入)
2.1.2片内存储器组织结构
C8051F340的片内存储器结构图
2.1.3C8051F340的内部原理结构框图
C8051F340的内部原理结构框图
2.2以太网控制芯片CP2200简介
CP2200是以太网控制器,它包括了一个集成了IEEE802.3Ethemet的媒体访问控制器(MAC),10BASE一T物理层口(PHY),8KB非易失性Flash存储器。
48脚TQFP封装。
CP220可以为具有11个以上端口I/0引脚的任何微控制器或主处理器增加以太网通信功能。
8位并行总线接口支持Intel和Motorola总线方式,可以使用复用或非复用方式寻址。
有方式选择引脚,用于配置总线接口方式。
在非复用方式,数据传输速率可以超过30Mbps
片内FLASH存储器可用于存储用户常数、Web服务器内容或作为通用非易失性存储器。
FLASH存储器的最后6个存储单元己在出厂前被预先写入了唯一的48位MAC地址,消除大多数嵌入式系统的生产过程中必不可少的序列化步骤。
CP2200有4种不同水平的功能功率模式,允许主处理器管理总的系统功耗。
中断选择引脚还允许主处理器进入“s1eep’模式,并且当数据包到达或者是当CP2200被插入到网络时有自动唤醒的功能。
全/半双工自适应。
2.2.1CP200硬件特性介绍
(1)以太网控制器集成了EIEE082.MAC和10BASE-TPHY;完全兼容100/100BASE-T网络;全/半双工自适应;自动极性检测和纠正;碰撞自动重发;自动填充和CRC生成;支持广播和多播MAC寻址。
(2)并行主机接口(03MbPs传输速率)8位复用或非复用方式;复用方式下仅需1个FO引脚;Intel或Motorola总线方式;接收数据包中断和网络唤醒断。
(3)8BKFLAsH存储器8129字节非易失性数据存储空间;工厂在最后6个存储单元预写入了唯一48位MAC地址。
(4)其它特性ELD输出驱动器(连接/活动)连接唤醒信号;专用的2KB发送缓冲RAM和4KB接收FIFO缓冲RAM;上电复位耐5VI/O:
电源电压:
3.1~3.6V;无铅48脚TQFP(9x9mm);温度范围:
-40~+85℃。
2.2.2CP2200系统框图
2.2.3缓存和Flash存储组织结构
CP2200拥有ZK的发送缓存和4K接受缓存,发送缓存和接受缓存共享相同的地址空间,都通过RAMADDRH:
RAMADDRL指针来存取;以及拥有独立地址空间的8K片内FLASH,通过FLASHADDRH:
FLASHADDRL指针存取。
2.2.4CP2200的寄存器
主控可通过并行接口访问CP200的直接或间接寄存器,并进而控制CP2200。
CP2200有114个内部直接寄存器和9个间接寄存器。
这些寄存器基于功能被分成1个类别组:
中断状态和控制寄存器、复位源寄存器、功率模式寄存器、发送状态和控制寄存器、接受接口状态和控制寄存器、接受缓存状态和控制寄存器、FLASH存取寄存器、MAC访问寄存器、MAC间接寄存器和PHY状态和控制寄存器。
2.2.5TCP/IP协议栈[1]
Siliconlabs公司提供的免费TCP/IP协议栈来源于CMXMicroNetTCP/IP协议栈,它以API的形式提供给用户使用,共分为9组。
其体系结构如图
当前使用的以太网标准是IEEE802.3,在7层的OSI模型中只定义了物理层和MAC子层,MAC子层协议的主要内容为帧格式定义及带冲突检测的载波侦听多路访问(CSMA/CD)机制,结合高层协议TCP/IP,就可以连接到Intemet。
所涉及到的函数组为EthemetFunctions,主要用于初始化以太网控制器,有6个函数。
网际协议IP是整个体系结构中的关键部分,它提供无连接的分组传输机制,“无连接”指IP分组独立地传送,到达顺序和发送的顺序可以不同,它主要定义了数据格式及分组的路由选择机制。
地址解析协议ARP确定IP地址和MAC地址的对应关系。
传输控制协议TCP为应用层提供基于连接、面向字节流的全双工服务。
协议的差错控制及流量控制,保证可靠的数据传输。
要使用TCP服务,先要在客户端和服务端间建立连接,传输完毕后释放连接,同时需要一对套接口地址,48位的套接口地址由IP地址和端口号组成,两端的套接口地址定义了两端的应用程序。
UDP和TCP都使用同一个网络层,但它是一个无连接、不可靠的协议,简单快速是其特点。
相关的函数组是SocketFunctions,主要用于TCP/IP协议栈的初始化及套接口的打开和关闭,有8个函数。
传输层之上是应用层,有很多协议,它们是:
超文本传输协议H1丫rP、文件传输协议FTP、简单邮件传输协议SMTP、简单文件传输协议TFTP、用于查找网络中嵌入式设备的Netfinder协议、动态主机配置协议DHCP、域名系统DNS等,ApplicationLayerFunctions有6个。
除上文提及的3个函数组,还有6个函数组,其中ModemFunctions及PPPFunctions使用modem设备作为物理层;DHCP/BOOTPFunctions用于动态分配IP地址;VirtualFileSystemFunctions用于生成虚拟文件系统;SupportFunctions用于数据类型转换。
最后是回调函数组CallbackFunctions,回调函数是程序员不能显式调用的函数,将其函数地址作为参数传递给调用函数来实现调用,调用函数在需要的时候调用它,回调函数中有程序员编写的处理事件的代码。
该组有6个回调函数。
9组函数的说明及原型参见文献[2]
3主要电路原理图及其说明
3.1C8051F340与CP2200的连接原理图
本系统采用非复用方式,连接原理图如图所示。
C8051F340CP2200RJ45
系统硬件电路简图
系统采用单片机C8051F340作为微控制器,采用CP2200作为以太网控制器。
系统提供RJ45接口与网络连接,完成对网络数据的收发工作。
下面分别介绍系统硬件资源元的分配情况。
3.1.1C8051F340资源分配
C8051F340有5个8位口,可以配置EMIF的工作模式为带块选择的分片方式及配置EMIF为非复用方式。
P3口作为数据口与CP2200的数据线相连,P4口作为地址线的低8位与CF2200的地址线相连。
C8051F340的P1.6、P1.7引脚作为读写选通信号,分别连接到CP2200芯片的/WR、/RD引脚。
C8051F340的哪个引脚与CP2200芯片的中断线相连由决定,通过设置寄存器IT01CF中的IN0SL2-0这些来选择分配给/INT0的端口引脚位。
此设计中,C805lF340的PO.3引脚被分配给/INT0,与CP2200芯片的中断信号压/INT相连。
3.1.2CP2200资源配置
CP2200芯片的MOTEN和MUXEN引脚接地,使得器件工作在非复用Intel总线方式。
CP2200的引脚A0~A7作为地址线与C8051F340的P3口相连,D0~D7作为数据线与C8051F340的P4口相连,/WR、/RD作为读写信号与C8051F340的1.6、P1.5引脚相连。
/CS作为片选信号,与C8051F340的P2.7相连。
/INT作为中断引脚,与分配的P0.3引脚相连。
CP2200的14个中断事件中的任何一个产生中断时,CP2200通过将中断状态寄存器中相应的标志置1,并将/INT引脚驱动到低电平来通知主机。
在被允许的中断的所有中断标志都被主机清0之前,/INT引脚将一直保持低电平。
通过读自清除中断状态寄存器INT0和INTl来清除中断标志。
通过清除INT0EN和INTIEN中的相应位可以禁止中断。
/RST作为CP2200的复位引脚,与C8051F340的P1.0引脚相连。
LINK和ACT引脚分别与LINKLED和ACTLED相连,都是推挽输出,用来指示连网的工作状态。
其中对于LINK引脚,当检测到有效的10BASE-T连接脉冲时(连接正常)为高电平,当检测不到有效的10BASE-T连接脉冲时(连接故障)为低电平.对于ACT引脚,当发送或接收到任何数据报时输出持续50ms高电平,在所有其它时间为低电平。
CP2200内置了符合IEEE802.3标准的10BASE-T以太网物理层收发器,包括接收器、发送器、自适应、环回、jabber、智能静噪、极性纠正和连接完整性功能。
被使能时,自适应功能会自动协商数据连接的速度和双工方式,所以网络接口的电路比较简单。
通过引脚RX+、RX,、TX+、TX,,利用RJ45插头实现与网络的连接。
3.1.3晶振电路
CP2200的工作频率为20MHz,晶振连接在XTAL1和XTAL2之间。
CP2200也可由连接到XTAL1引脚的外部时钟源驱动。
3.1.4以太网变压器
要实现以太网接口,以太网变压器是不可缺少的。
在差分接收引脚(RX+/RX-)上,需要1个专用于10BASET操作的1∶1脉冲变压器;在差分发送引脚(TX+/TX-)上,需要外接1个带有中心抽头的1∶2.5脉冲变压器。
变压器应具有2kV以上的电压隔离性能,以防止静电干扰。
发送端需要2个8Ω(精度为1%)的电阻和1个560pF的电容与特定端相连,接收端需要1个100Ω电阻与特定端相连(具体连接方式见图)。
3.2下面详细介绍以CP2200驱动程序的具体实现
3.2.1CP2200的初始化
在系统中,CP220o用于发送和接收以太网包、非易失性数据存储及控制连接(LINK)和活动(ACT)LED。
用直接和间接内部寄存器控制器件工作。
CP2200的复位状态指器件加电后所处的状态,此时处于离线工作状态,即不能发送或接收数据帧。
以太网控制器CP220O有5种复位方法,分别是上电复位、掉电复位、振荡器故障复位、外部/RST引脚复位、软件命令复位。
[6]。
CP2200的复位状态指器件加电后所处的状态,此时处于离线工作状态,即不能发送或接收数据帧。
为了使网络接口控制芯片启动并处于准备接收或发送数据的状态,必须对它进行一系列初始化工作。
复位后的初始化流程如图3所示。
其中初始化物理层由禁止物理层、使能物理层的连接完整性检查并禁止自适应和查询唤醒中断标志三步完成。
在初始化物理层接下来的五个步骤为初始化媒体访问控制器层(MAC)。
经过这些初始化步骤,CP2200即已准备好发送和接收数据包。
3.2.2 接收过程
CP2200有4KB的循环接收FIFO缓冲区和8个转换表(TLB),能同时存储8个数据包。
每个TLB保持一个接收包的起始地址、长度和其它信息。
当MAC接收被使能且接收缓冲区未满时,包接收会自动进行。
一旦收到一个包,主控制器会通过中断请求引脚得到通知。
主机可以用自动读(AutoRead)接口读取数据包,将数据包的内容复制到其局部存储器中,或通过向RXSKIP写1来跳过该包。
接收接口有接收过滤器和哈希表,可以防止不希望的包进入接收缓冲区。
对于接收过滤器不支持的所有包类型,CP2200允许主控制器对接收缓冲器进行随机访问,主控制器可以检查包中的特定字节,以决定是否复制数据包。
数据包的具体接收过程如图所示。
3.2.3 发送过程
一旦复位初始化完成,CP2200就准备好发送以太网包。
CP2200提供了一个发送以太网包的简单接口,主机只需将源和目的地址、长度/类型和数据加载到发送缓冲区。
所有其它IEEE802.3要求,如前同步码、帧开始定界符、CRC和填充(如果需要),都是自动生成的[2]。
典型的以太网包图如图所示。
可以通过使用自动写(AutoWrite)寄存器将数据装载到发送缓冲区,也可以采用随机存储器的方法将数据载入发送缓冲区,载入数据后向TXGO位写1来发送数据包。
发送完成之
后,会产生数据包已发送中断。
发送数据主要步骤如下:
·等待前一个包发送结束。
·设置发送缓冲区指针为0x0000。
·用随机存储器的方法将数据载入发送缓冲区
·将发送缓冲区指针重新设置为0x0000。
·通过向TXGO位写1来启动发送
初始化流程图
CP2200发送数据流程图
CP2200接收数据包流程图
4软件设计
在本设计中,采用C5l作为程序设计语言。
它有很明显的优势,C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。
C语言有丰富的库函数、运算速度快,而且可以直接实现对系统硬件的控制,较汇编语言有更好的可读性
程序设计采用C/S模式。
以单片机为服务器端,C51语言编程,使用KEILC51编译器,采用循环工作方式,完成数据采集及发送;客户端采用Java—script脚本语言,实现网页的动态刷新,以实时显示测量值。
Web服务器端的程序主要包括:
单片机的初始化、建立网络连接及启动应用层服务等,程序流程图见图3,配置向导TCP-IPConfigurationWizard用于生成框架代码。
。
mn-server()启动后,和其交互的方式有中断服务程序方式和CGI方式。
当接收缓冲区和传送缓冲区为空时,该函数被mn-server()周期调用。
4.1Web页面存储及网页数据
嵌入式Web服务器由于存储设备的容量有限,不可能像PC机上的W七b服务器一
样存放大量的静态HTML页面,它返回给浏览器的页面一般都是动态生成的。
本设计中系统采用固化的方式把代码和Web页面文件一起保存在64K的FLASH中。
页面文件包括文本页面和图片数据,为了方便处理Web页面,web文件头和文件主体采用分别存储的方式。
对于静态页面的处理是直接读取web页面文件发送;对于动态页面或者处理POST方法需要生成新的页面,是在对现有静态页面关键字段数据的修改的基础上实现的。
4.2动态内容的处理及在线互动的实现
在嵌入式系统中,Web服务器经常要作为远程监控来使用,因此Web服务器应该能够提供对动态变化的被监视内容的服务。
利用CGI(CommonGatewayInterface,通用网关接口)原理可以在嵌入式协议上实现动态网页。
web服务器通过调用CGI程序实现和Web浏览器的交互。
这里的CGI和PC机上的CGI程序不同,这里的CGI程序是对PC机上CGI的简化,但是基本原理一样。
它以函数的形式提供服务器在处理浏览器请求时候的信息[3-5]。
(l)调用CGI程序并提取分析所需的数据
服务器将客户端传递过来的申请报文数据进行提取分析,将关键字段数据作为的参数传递给CGI程序。
(2)CGI程序执行
CGI程序在执行过程中,将针对不同输入参数进行操作,返回不同的值。
本系统只对LED进行开关控制。
(3)处理CGI程序的输出数据
服务器接收来自CGI程序的输出数据,并且用它们替换原来网页文件内的数据,生成新网页,最后传回给Web浏览器。
动态内容的处理包括系统调用CGI函数获取参数和适时更新网页数据两个过程。
在具体实现中,CGI函数是读取单片机内部温度传感器所采集到的数值,通过计算得到温度值和电压值,CGI函数的调用周期间隔是0.5秒,服务器根据浏览器请求在每次组成报文段时候,必须修改报文中的温度和电压数据,这样浏览器每次访问得到Web页面都是动态生成的。
在线互动就是通过Web页面上的发送按钮控制系统电路上的LED亮灭。
首先提交数据到服务器。
接着Web服务器收到信息之后,利用查询的方式提取关键字字段并读出POST方法提交申请报文中的数据O或者1,然后根据算法切换LED状态,并把这些按新的状态信息重新生成Web网页。
最后,服务器再把修改后的网页发回给用户的浏览器,这时用户就可以看到改变控制状态的信息了。
4.3网页编辑
要实现浏览器定时刷新数据的功能,我们在网页中增加了如下的javascript函数:
当用户在浏览器中输入服务器的IP地址时,可以得到一个显示温度的简单网页,这是一个单调的、不能动态显示的网页,要使用Javascript脚本语言加以改进。
Javascript是一种基于对象的和事件驱动的脚本语言,利用它加强网页的动态交互性,实现温度数据的动态刷新。
在HTML源文件中,可以添加刷新函数
vardelay=2000
varsel=1;
functionloadframes()
{
t=0;
if(sel){
document.getElementById("temperature").src="get_data?
type=temp&format=html&";
sel=0;
}else{
document.getElementById("voltage").src="get_data?
type=voltage&format=html&";
sel=1;
}
setTimeout("loadframes()",delay);
}
上文中加粗的部分控制着函数执行的周期和动作。
setTimeout控制函数loadframes每2秒执行一次。
在loadframes函数中,轮流执行红色部分的代码。
其中定义了两个ID分别为temperature和voltage的子窗体,他们的执行的操作分别是其后的src=””中的代码。
下面的代码中,分别定义了两个IFRAME来显示temperature和voltage:
-------------------------------------------------------------------------------------------------------------->
sans-serif;font-size: 28pt;font-weight: bold;vertical-align: middle;"> 温度 (degC):
blank"id="temper
展开阅读全文
相关搜索
|