设为首页 收藏本站 English

当前位置: 紫金娱乐网 >> 戴梦梦

基于Internet的MCS51单片机远程监控系统设计0稳定器

发布时间:2022-09-03 22:29:12

基于Internet的MCS.51单片机远程监控系统设计

基于Internet的MCS.51单片机远程监控系统设计 传统的Internet应用以PC为中心,当代的Interent应用将转向以嵌入式设备为中心。据网络专家的预测,将来在Interent上传输的信息中,将有70%的信息来自于小型嵌入式系统。可以预言,嵌入式设备与Interent的结合代表着嵌入式系统和网络技术的真正未来。 要实现小型嵌入式设备的Interent接入,TCP/IP首先要解决的是底层硬件问题,即协议的物理层。Ethernet具有成熟的技术、低廉的网络产品、丰富的开发工具和技术支持,当现场总线的发展遇到阻碍时,以太网控制网络技术以其明显的优势得到了迅猛的发展,并逐渐形成了现场总线的新标准——Ethernet。考虑到国内局域网大部分是以太网,随着交换式网络、宽带网络的发展,基于以太网的嵌入式设备Interent接入应用有着现实意文。1 、 嵌入式设备hltemet接入的基本方法 8位单片机既要实现复杂的TCP/IP协议族,解决数据的封装、拆包、编码、解码及数据发送等,还要控制一些设备,来完成特定的测量和控制的任务。完整的TCP/IP协议族要消耗大量的系统资源,并且在嵌入式系统中要实现的是比较单一的网络传输和数据聚集任务,所以没必要嵌入完整的TCP/IP协议族,只须把TCP/IP最精简的内核和用得到的协议嵌在阜而就行了。例如,系统中如果没用到HTTP协议而只用到了下层的TCP和UDP协议,可以去掉HTTP协议,而只保留下层协议,这样把不必要的协议去掉可以大大简化内核,从而节省了系统资源,降低了成本。 为了减少MCU的负担,底层最好选用现成的网络接口芯片,水完成物理l帧的形成、接收、校验、编码、解码等任务。这样,MCU可以把主要的时间用于数据聚集和过程控制上,减少开销,另外用现成的接口芯片还可以缩短开发时间、降低开发成本。2 、 单片机TCP/IP协议分析与构架(1)单片机TCP/IP构架 如前所述,TCP/IP协议是一个协议族,有搬多种协议。图1给出了本文研究的协议和异协议之间的关系。(2)网际协议IP (1)IP的结构 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP的功能由IP头结构中的数据定文。 普通的IP首部长为20个字节,除非含有选项字段。 (2)IP的功能 IP报文头中含有使一些重要网络功能成为可能的必要信息,包括寻址和路由、分段和重组、传输过程中数据损坏检测和更正。 尽管有这些功能,但IP毕竟只是一个国际协议。为了使其发挥作用,必须和传输协议以及链路层协议一起工作。因为它不提供检测数据报是否到达口的地机制,并且不检测是否有数据报破破坏和丢失。(3)用户数据报协议UDP (1)UDP的结构 UDP(User Datagram Protoc01)是一个简单的而向数据报的传输层协议,UDP提供了一种基本的、低延时的传输。 (2)UDP的特点 UDP破设计成一个有效的和最小的传输协议。它只包括用于转发数据报全合适应用(端口号)的足够信息,并且执行一定的错误检查。UDP使用尽力方式传送数据报,由于某种原因传输失败,数据报破丢弃并且不试图重传。 UDP经常破认为是不可靠的,因为它不具有任何TCP的可靠性机制。但是UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了异种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用水完成,极大降低了执行时间,使速度得到了保证。UDP最适合于小的发送(也就是单独的报文)。因此,在嵌入式系统的应用中,UDP协议应用应最为广泛。(4) Interent控制报文协议ICMP ICMP(Interent Control Mcssag c Proto c0 1)报文分为两大类,荠错报告报文和布向报文。经常破认为是IP层的一个组成部分,它传递荠错报文以及其他需要注意的信/2,。ICMP报文通常破IP层或更高层协议邮DP或TCP)使用。ICMP报文是在IP数据报内部破传输的,是封装在IP数据报内部。 ICMP报文的格式如表1所示。所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。类型字段可以有15个不同的值,以描述特定类型的ICMP报文。 在本系统中,主要是对PING命令的响应。PING程序的口的是为了测试另一台主机是否可达。改程序发送一份ICMP回显请来报文给主机,并等待返回ICMP回显应答。使用PING命令的ICMP报文格式如表2所示。 其中,类型8代表发送PING,0代表响应PING。代码0为PING命令。标忐和序号是为了使响应和发送的数据相对应。可选数据是任意的,但响应和发送的数据是相同的。校验和字段覆盖整个ICMP报文。使用的算法与IP首部校验和算法相同。(5)地址解析协议ARP 当一台主机把以太网数据l帧发送到位于同一局域网上的另一台主机时,是根据48 bit的以太网地址来确定目的接口的。设备驱动程序从不检查IP数据报中的目的IP地址。地址解析为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的地址。 ARP发送一份称作ARP请来的以太网数据1帧给以太网上的每个主机。这个过程称作广播,ARP请来数据l帧中包含口的主机的IP地址,其意总是“如果你是这个Ⅲ地址的拥有者,请回答的硬件地址”,而此时发送的口标物理地址是FFFF FF FF FF FF。目的主机的ARP层收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对乒的硬件地址。在以太网上解析IP地址时,ARP请来和应答分组的格式如图2所示。 以太网报头中的前两个字段是以太网的源地址和口的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。 两个字节长的以太网帧类型表示后面的数据类型。对于ARP请来或应答来随,该字段的值为0X0806。 硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。 协议类型字段表示要映射的协议地址类型,值为0X0800即表示IP地址。 对于一个ARP请求来说,除目的端硬件地址外的所有其它字段都要填充值。当系统收到一份目的端为本机的ARP请来报文后,它就把硬件地址填进去,然后用两个口的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。3、系统硬件设计(1)控制模块 控制模块使用Atmel公司的AT89C51作为控制器。这里是使用AT89C51作为示范,当进行实际开发时,可以使用功能史为强大的MCU,其软件设计的过程是相似的。单片机的I/O引脚分配如下: P1口作为8位数据线与CS8900相连,定文其为CDB(CS8900 Data Bvs); P3.0~P3_3作为地址线,由了8位I/O模式下地址线为0300H 03lOH,为了简化设计,将20位地址的高16位直接使用硬件置位,低4位有单片机水控制; P3.4~P3.7作为控制线,其中P3.4为片选控制线AEN,P3.5为写控制线(IOW),P3.6为读控制线(IOR),P3.7为中断状态输入线(INTR); P0口和P2口作为数据线和地址线外接2764作为外部数据存储器。(2)网络接口模块 该模块主要应考虑电源和网络接口这两个部分。 由于系统使用的CS8900芯片的工作电压是3.3V,而AT89C51的工作电压是5V,因此必须对电源进行电压转换。本设计用到的是美国国家半导体公司的LM3940芯片。LM3940采用Sot-223表面贴片封装,输入5V,输出3.3V。 网络接口部分,由了应用中要用到RJ.45接口与以太网连接,因此在接入CS8900之前,必须使用传输线变压器将网络中的信号进行转换,本设计使用的芯片是E2023。4、系统软件设计 系统软件设计需要通过软件实现下面几种功能: (1)可以和网络中任何一台主机建立连接; (2)可以向网络中的任何一抬主机发送ARP报文; (3)网络中任何一台主机均可以“PING'’到本系统; (4)如果网络中的主机向本系统发送一个UDP报文,端口号为100,系统会反馈信号给主机。(1)程序模块化设计 为了简化编写和调试的难度以及节省软硬件资源,程序中使用了模块化的设计方法,将程序分为几个部分:分别为系统定文与设置模块、CS8900寄存器访问模块、校验和计算模块、数据处理模块以及芯片复位和训试模块等,每个部分根据需要又划分为几个部分,分别处理一部分功能。这样,在设计中,就可以根据各部分具体的要来分别设计程序,大大简化了程序的设计和训试工作,此外,还做到了重复代码的使用,节约了硬件的资源。(2)系统定文与设置 系统定文与设置模块位于程序的起始定文部分,主要完成数据线、控制线的定文,CS8900异寄存器的地址、初始值设定以及程序相关网络协议的内存地址分配等工作。(3)读/写CS8900寄存器 对于CS8900内部寄存器的访问是通过CS8900的8个I/0端口进行的。由于CS8900的寄存器都是16位的,因此发送数据要分两次进行,基本过程如下: (1)将欲写入的内部寄存器地址高8位写入CS8900的读/写端口0; (2)将欲写入的内部寄存器地址低8位写入CS8900的读/写端口0。(4)协议帧中校验和的计算 在IP首部、ICMP协议报文和UDP协议报文中,都有专门的校验和字段,以保证数据的正确性。这其中,计算IP首部和ICMP报文校验和的方法是完全相同的,而UDP报文校验和的计算方法与前两者有所区别,程序中分别使用Cksmn和CksumUDP两个程序来实现这两种小同的校验和计算方法。 计算IP首部和ICMP报文校验和的方法是对要进行校验和的内容以字节为单位进行二进制反码来和,这就要生成一个16位的校验和字段。这样当接收方收到IP首部或ICMP报文时,可以使用同样的方法来校验和,而此时在IP首部或ICMP报文中已经有相应的校验和字段,因此对整个IP首部或ICMP报文从新计算校验和的结果应全为1,即FFFFH,如果计算结果不是这一内容,则证明数据在传输的过程中出现了错误。 程序中为IP首部和ICMP报文计算校验和的程序为Cksum,R0保存要计算数据的首地址,R1保存要计算的字节数,校验和的结果破放在临时变量TempH和TempL中。 UDP校验和的计算方法其实仍是整个数据报的数据以l6bit字为单位二进制反码来和。但由于UDP数据报长度可以为奇数字节,冈此对奇数长度的数据报,需要在最后添加填充字节方便计算校验和,然而,添加的填充字节在UDP报文中是不破传送的。在程序中,使用CksumUDP子程序完成UDP校验和的计算。(5)数据处理流程 数据处理流程是程序的主要流程。这部分程序主要负责响应和处理网络中的数据帧,并根据相应请来作出回应。在设计上,程序中判断网络中的l帧的内容时是采取边读边判断的形式,而不是一开始就将整个帧读入内存。程序在发现CS8900接收到网络帧后,首先读入以太网的数据头,并根据其l帧类型字段判断浚l帧是输入ARP请来还是IP 帧。对ARP请来作出相应的应答。如果是IP 帧,则还要判断其协议字段内容,并根据其值转入相应的ICMP和UDP响应程序。 在发送和接收数据l帧的过程中,使用LoadPacket和TxPackct通过CS8900接收和发送数据。CS8900在8位模式下发送和接收数据,这里给出了实现这两个过程的源码,其中R0存放数据址,R1存放读舣或发送数据字节数。(6)芯片复位及初始化 在本程序中,对CS8900使用软件复位方式,即通过向SelfCTL寄存器丐入00CH的方法使CS8900复位,复位模块的程序为Resetchip,其内容如下: CS8900复位后,要使其正常工作,通常还要对其进行初始化处理,包括设定本机的MAC地址以及对其寄存器的初始化,程序中异寄存器初始化的值设定在开始的定文部分。

东营不育医院哪个好

不育医院排名

上海皮肤医院

佛山哪家医院治疗龟头炎好

成都治疗抽动症哪个医院比较好

友情链接