1、智能家电网络管理系统智能家电网络管理系统 G&D小组一、方案简介智能家电网络管理系统的目标是实现家用电器的网络化、智能化管理。通过该系统将家中的网络电器与互联网相连,这样无论何时何地,用户都可以通过该系统远程操纵家用电器、对家中的大小事务发布指令、了解家中的状况。智能家电网络管理系统的核心部分是一个嵌入式Web服务器,它主要具有以下功能:1. 系统集有线和无线Web服务器于一体,用户可以利用办公室的PC机登录家中的Web服务器,在通过用户名和密码验证后,便可以查看并控制家用电器;也可以用手机发送短消息来控制家用电器;2. 系统具有良好的用户界面,当清晨用户离家上班时,只需顺手按几个按键,便可以
2、使整个房间里的家电有条不紊地忙碌起来。在完成用户指定的任务后,向用户反馈必要的信息。3. 系统留有功能扩展接口,以便日后应用于防火防盗等功能。二、系统原理和硬件连接系统的原理框图如图1所示,主要包括:ARM微控制器STR710、以太网控制器CS8900A、GPRS模块MC35i以及LCD。其中STR710与MC35i通过RS232串口相连,与CS8900A通过ISA总线相连。图1系统原理框图1. ARM微控制器STR710STR710是整个系统的核心。它作为一个嵌入式网关,将外部网络与所有的网络家电连接在一起,是整个系统运行的平台。首先,在远程操纵家电方面,STR710负责从MC35i接收到的
3、短消息和从CS8900A接收到的以太网数据中提取出用户指令,然后根据该指令操纵相应的网络家电或者查询其运行情况,最后再通过MC35i以短消息的形式或通过CS8900A以网页的形式将指令的执行结果反馈到用户终端。其次,在网络家电工作模式设置方面,STR710的任务就是在LCD上显示相应的菜单以及帮助信息,通过良好的界面指导用户完成设置。之后,STR710定时查看家用电器的工作情况。一旦出现紧急或危险的状况时,及时采取必要的保护措施,并通过MC35i发送警告信息。2. 网络控制器CS8900A2.1 CS8900A简介CS8900A 是CIRRUS LOGIC公司生产的低功耗、性能优越的16 位以
4、太网控制器。该芯片的突出特点是使用灵活, 其物理层接口、数据传输模式和工作模式等都能根据需要而动态调整, 通过内部寄存器的设置来适应不同的应用环境。2.1.1主要功能模块:CS8900A内部结构框图如图2所示。它内部主要的功能模块是802.3介质访问控制块(MAC)。802.3介质访问控制块支持全双工操作, 完全依照IEEE 802. 3 以太网标准( ISO/IEC 8802-3, 1993) , 它负责处理有关以太网数据帧的发送和接收, 包括: 冲突检测、帧头的产生和检测、CRC校验码的生成和验证。通过对发送控制寄存器(TxCMD) 的初始化配置,MAC能自动完成帧的冲突后重传。如果帧的数
5、据部分少于46个字节, 它能生成填充字段使数据帧达到802. 3所要求的最短长度。图2 CS8900A内部结构框图2.1.2主要特点:符合IEEE 802. 3以太网标准, 并带有ISA总线接口;片内4K字节RAM ;适用于I/O操作模式, 存储器操作模式和DMA操作模式;带有传送、接收低通滤波的10Base2T 连接端口;支持10Base2, 10Base5 和10Base2F的AUI接口;自动生成报头, 自动进行CRC检验, 冲突后自动重发;最大电流消耗为55mA (5V电源) ;全双工操作;支持外部EEPROM。另外, 要实现CS8900A与STR710之间的数据通讯,在电路设计时可根据
6、具体情况灵活选择合适的数据传输模式。CS8900A支持的传输模式有I/O模式和Memory模式, 另外还有DMA模式。其中, I/O模式是访问CS8900A存储区的缺省模式, 比较简单易用,所以在本系统中我们选用I/O模式。2.2CS8900A的基本工作原理2.2.1CS8900A与STR710的硬件连接CS8900A与STR710的硬件连接框图如图3所示,STR710通过/SBHE、/IOW和/IOR等控制信号实现对CS8900A的工作方式控制和读写操作。需要说明的是: 当CS8900A有硬件复位或软件复位时,它将默认成为8位工作模式。因此, 要使CS8900A工作于16位模式, 系统必须在
7、访问之前提供给总线高位使能管脚(/SBHE) 一个由高到低、再由低到高变化的电平信号, 这在网络驱动程序中予以实现。数据的接收采用中断方式, 由于CS8900A和STR710的中断电平是相反的, 所以, 中断信号线间需接一个非门。CS8900A与STR710之间的数据传输采用的是默认的I/O模式, 因此, 读写管脚/MEMW和/M EMR被置高,以关闭Memory方式。在此模式下, 用4根地址线就可以实现对所有寄存器的访问。如图3所示,管脚SA0SA3对应接到STR710的地址线A11A14上即可。除了为保证上述的缺省偏移地址(0x0300)须将SA8和SA9置高外, 其余不用的地址线都接低电
8、平。CS8900A通过一个带厄流线圈的隔离变压器(E2023)将CPU要发送的数据发送到网络上;接收数据时, 由网络传来的数据也经过隔离变压器。加隔离变压器的作用主要是将外部线路与CS8900A隔开, 防止干扰和烧坏元器件, 实现带电的插拔功能。图3 CS8900A与STR710的连接框图2.2.2CS8900A发送和接收数据的过程CS8900A在收到由STR710发来的以太网帧(帧结构如图4所示)后, 侦听网络线路。如果线路忙,就等到线路空闲为止,否则, 立即发送该数据帧。发送时,首先,CS8900A添加以太网包头(包括先导字段和包开始标志,包结构如图4所示), 然后, 生成CRC校验码,
9、最后, 将此以太网包发送到以太网上。接收时, 它将从以太网收到的数据包在经过解码、去掉包头和地址检验等步骤后缓存在片内。在CRC校验通过后, 它会根据初始化配置情况, 通知STR710,CS8900A收到了数据帧。最后, 根据配置选择一种传输模式传到主机的存储区中。图4 以太网帧结构3. GPRS模块MC35i3.1 MC35i简介MC35i是Siemens公司推出的新一代无线通信GPRS模块, 如图5所示。MC35i模块主要由GSM基带处理器、GSM射频模块供电模块(ASIC)、 FLASH、ZIF连接器天线接口六部分组成如图。通过独特的40引脚的ZIF连接器实现电源、连接指令、数据、语音信
10、号及控制信号的双向传输。通过ZIF连接器及50欧姆天线连接器可分别连接SIM卡座和天线。图5 GPRS模块MC35i主要特点:电源:单电源 3.3V 5.5V;频段:支持GSM900MHz和DCS1800MHz双频网络;发射功率:2W(GSM900MHz)和1W(DCS1800MHz);SIM卡连接方式:外接;天线:由天线连接器连接外部天线;音频接口:模拟信号(麦克风,耳麦,免提手柄);通讯接口:RS232(指令和数据的双向传送);SIM卡操作电压:3V/1.8V;模块复位: 采用AT指令或掉电复位;模块提供AT命令集接口支持文本和PDU模式的短消息;最高支持14. 4k的非透明模式,接收速率
11、可以达到86.20kbps,发送速率可以达到21.5kbps;模块提供AT命令集,接口支持文本和PDU模式的短消息;工作模式有省电模式、空闲模式、通话模式。3.2 MC35i外围接口电路及基本工作原理MC35i的正常运行需要相应的外围电路与其配合。MC35i的40个引脚通过ZIF连接器分别于电源电路、启动与关机电路、数据通信电路、语音通信电路、SIM卡电路、状态指示灯电路等连接,如图6所示。图6 MC35i外围接口电路3.2.1 状态指示灯电路同步信号SYNC在方案中用于控制状态指示灯。下面给出状态灯的工作模式及当前模块所处的工作状态如表1所示。根据状态灯的显示我们可以清晰的知道MC35i当前
12、的工作状态。状态指示灯电路的硬件实现电路见图7。表1 SYNC驱动Q2开关状态状态灯模式工作状态常灭MC35i模式处于关闭或睡眠模式或仅充电模式600ms亮/600ms灭未插SIM卡或正在搜索网络或正在进行用户验证或网络注册中75ms亮/3s灭已登陆到网络、无电话呼入75ms亮/75ms灭75ms亮/3s灭一个或多个GPRS上下文被激活闪烁GPRS数据传输中,闪烁间隔0.5s常亮已建立语音链接已建立数据链路或正在断开连接图7 状态指示灯电路3.2.2 SIM卡电路MC35i的基带处理器集成了一个与ISO 7816-3 IC Card标准兼容的SIM接口。为了适合外部的SIM接口,该接口连接到Z
13、IF连接器。GSMI1.11为SIM卡预留5个引脚的基础上,MC35i在ZIF连接器上为SIM卡接口预留了6个引脚,所添加的CCIN引脚用来检测SIM卡支架中是否插有SIM卡。当插入SIM卡,该引脚置为高电平,系统方可进入正常工作状态。但是目前移动运营商所提供的SIM卡均无CCIN引脚,所以在设计电路时应将ZIF上的CCIN与CCVCC相连。两种接口的定义如图8所示。图8 SIM卡接口定义比较3.2.3 串口电路RS232接口有Male和Female两种。DTE如我们的嵌入式系统,计算机,终端等等通常是Male的,而DCE如GPRS模块等的MODEM通常用Female接口。DCE为用户设备(指
14、的是DTE)提供接入网的连接点。MC35i的串口是遵循ITU-T RS-232数据交换电路DCE标准的串行异步发送和接收口,电路采用CMOS电压(2.65V)。所有的ZIF接口上的RS-232信号都是低电平有效(low active)。RS232的引脚定义如表2所示(引脚的名称中表示方向的词如Transmit和Receive等,都是从DTE的角度定义的)要完成基本的串行通信功能,实际上只需要RXD、TXD和GND即可,但由于RS-232-C标准定义的高、低电平信号与GPRS模块定义的TTL/CMOS电路所定义的高低电平完全不同,LVTTL的标准逻辑“1”对应23.3V电平,标准逻辑“0”对应0
15、V0.4V电平,而RS-232-C标准采用负逻辑方式,标准逻辑“1”对应-5V-15V电平,标准逻辑“0”对应+5V+15V电平,显然,两者间要进行通信必须经过电平转换,我们所用的转换芯片是ST3232。表2 RS232的引脚定义引脚名称功能信号特征1DCD载波数据检测当线路为“off-hook”时,默认为“0”,表示连接已经建立,等待接受远程modem来的应答tone。如果没有接受到应答tone,则DCD转为“1”。2RXD数据接收当DTE接收到来自DCE的数据是才激活,否则默认状态是“1”即负电平。在DCE端可能被称为TXD。3TXD数据发送当有数据从DTE发送到DCE时激活,否则默认状态
16、是“”。在DCE端可能称为RXD。4DTR数据终端准备好正常工作时默认保持为“0”,即正电平。当DTR为状态“”时表明modem转为“on-hook”而中止连接。5GND地6DSR数据设备准备好当以下三个条件满足时:1.modem连到工作的电话线上(即“offhook”);2.modem工作在数据模式而不是语音模式或拨号模式;3.modem已经完成拨号DSR就默认为“0”。7RTS请求发送默认处于“0”状态,即正电压,随时准备相应从DTE来的待发送数据。在DCE端,可能准备称为CTS。8CTS清除发送默认处于“0”状态下,告知DTE可以开始发送数据了。与RTS构成一对握手信号来协调传到DCE中
17、的数据流。备注:DTE:Data Terminal Equipment (typically computer, terminal, printer or, for example, GSM application)DCE:Data Communication Equipment (typically modems, e.g. Siemens GSM engine)三、系统软件设计1. 系统软件框架系统软件采用分层设计,包括硬件设备驱动层,操作系统层,应用程序接口层,应用软件层。操作系统选择小型的实时操作系统C/OS-II;TCP/IP协议栈选择uIP1.0;图形用户界面选择CGUI。软件系统
18、结构如图8所示:图8 智能家电网络管理系统软件框架2. 系统软件流程2.1 驱动程序层2.1.1 以太网卡驱动程序2.1.1.1 初始化CS8900A的初始化包括以下内容:1) 设定临时使用的以太网物理地址, 真实地址需要向权威机构申请;2) 设定接收帧类型, 一般能接收广播;3) 设置工作模式, 8位或16位;4) 初始化工作端口, 设置成10Base2T;5) 是否允许中断;6) 接收发送使能。2.1.1.2 接收数据1) 接收数据的步骤:a. Pre-Processing-Destination Address filtering- Early Interrupt Generation-
19、Acceptance filtering-Normal Interrupt Generation;b. Temporary Buffering;c. Transfer to Host.2) 接收数据的配置:a. Configuring the Physical InterfacePhysical Interface Configuration:the LineCTL register(Register 13)b. Choosing which Frame Types to Accept Frame Acceptance Criteria:the RxCTL register(Register5
20、)c. Selecting which Events Cause InterruptsReceive Interrupt Configuration:the RxCFG register (Register3), the BufCFG(Register B) d. Choosing How to Transfer Framesthe RxCFG register (Register3),the BusCTL register (Register 17)3)两种数据传输模式:Memory and I/O space modeDMA mode在本系统中我们选用第一种模式,即I/O 模式。软件流程图
21、如图9所示:图9 接收数据软件流程图2.1.1.3 发送数据1) 发送数据的步骤:a. STR710将以太网帧(Ethernet Frame)发送到CS8900A的缓存(buffer memory)中。命令格式:Transmit CommandTransmit Lengthb. CS8900A将以太网帧转变为以太网包(Ethernet Packet),并将其发送至互联网上。2) 发送数据的配置:配置信息包括以下两部分:a. Physical Interface Configuration:the LineCTL register(Register 13)b.Transmit Interrupt
22、 Configuration:the TxCFG register(Register 7) 和the BufCFG(Register B)3) 发送数据的工作模式:a. Individual Packet Transmissionb. Transmission in Poll Modec. Transmission in Interrupt Mode在本系统中我们选用第三种模式,即中断模式,软件流程图如图10所示。图9 发送数据软件流程图2.1.2 GPRS驱动程序MC35i软件设计包括:用AT命令对MC35i进行初始化,短信的发送和读取。这些任务都是由各个函数模块实现的。MC35i收发短信一
23、共有三种模式:Block模式,PDU模式和Text模式。Block模式需要手机厂家提供支持,而Text模式虽然收发短信代码简单,且实现简单,但最大的缺点是不支持中文。目前基于AT命令的PDU模式已经取代了Block模式,且支持中英文短信,因而相对于Block模式和Text模式具有很大的优势,应用也最广泛。本系统采用PDU模式来进行数据传输,PDU相当于一个数据包,它严格地包含了短消息的源/目的地址、有效时限、数据格式、协议类型和有效信息。对MC35i进行操作(包括参数的设置和短信的收发)都是通过AT命令来实现的。图11给出了MC35i收发短信的软件流程图。图11 MC35i收发短信流程图1.2
24、 操作系统层我们设计的系统采用的操作系统是由Jean J. Labrosse编写的开放式实时操作系统C/OS-II,主要是基于一下的考虑:1. 它的内核是完全免费的,用户不需要支付任何费用,有利于降低系统的开发成本。2. 它的源代码是公开的,而且仍在不断升级,增加新的功能。3. 系统内核实用性强、可靠性高。4. 操作系统内核对处理器以及ROM、RAM资源的要求不高,利于在16位微处理器上移植。C/OS-II是基于优先级的抢占式实时多任务操作系统内核,最多可以支持64个任务。C/OS-II只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能,没有提供输入/输出管理、文件系
25、统及网络之类的额外服务。但是由于PC/OS-II的可移植性和开源性,用户可自己添加所需的各种服务。C/OS-II属于可剥夺性内核,即它总是执行处于就绪条件下优先级最高的任务。为了简化系统的设计,C/OS-II规定所有任务的优先级必须不同,任务的优先级同时也唯一地标识了此任务。系统通过两种方法进行任务调度:一是时钟节拍或其他硬件中断到来后,系统会进行中断级的任务切换;二是任务主动进入挂起或等待状态,这时系统可以通过发软中断命令或依靠处理器执行陷阱指令来完成任务切换。2.3 应用程序接口层2.3.1 TCP/IP协议栈TCP/IP协议分为4层:链路层、网络层、传输层、应用层,各层对应的协议如下所示
26、:应用层:HTTP协议;传输层:TCP协议,UDP协议;网络层:IP协议,ICMP协议; IP协议,它用于网络层的数据传输;ICMP协议,用于报告数据传送传过程中的差错情况;链路层:ARP协议,ARP协议提供IP地址和数据链路层使用MAC地址之间的转换功能。图12 TCP/IP协议栈软件流程图2.3.2 CGI2.3.2.1CGI简介早期伴随TCP/IP协议产生的HTML语言传输的信息是单向的,即由服务器端向浏览器输出信息,惟一的响应客户的操作仅是提供简单的地址跳转,服务器无法根据用户在浏览器端输入的信息执行相应的操作。CGI协议的出现使这一问题得到解决。其主要的功能是在WWW环境下,从客户端
27、传递一些信息给Web服务器,再由Web服务器去启动特定的脚本程序来完成指定的工作。2.3.2.2 CGI的工作原理CGI具体的工作过程如图13所示:用户使用IE浏览器登录服务器, 向服务器发出HTTP请求,服务器响应用户的请求, 并引导到指定的脚本程序。服务器CGI脚本程序进行身份验证以后,向浏览器端设置页面的脚本。用户在浏览器端设置功能完成后,进行提交。服务器端的CGI脚本对上传的数据进行解析,根据命令执行相应的操作。然后读取相应被控制家电设备的状态,并将该状态的分析结果发送到浏览器作为用户的设置结果。图13 CGI的工作原理示意图2.3.2.3 CGI软件流程图使用FORM向CGI接口提交
28、数据有两种模式:GET和POST,选择哪一种模式取决于FORM的METHOD字段的设置,如果METHOD设定为POST的话,数据会以STDIN的方式送入CGI接口;如果METHOD设定为GET的话,保存在QUERY_STRING的环境参数中,以供接口读取。服务器如何获取浏览器传送来的信息?这里必须介绍一下URL编码的规则:1. FORM提交的信息是以“NAME=VALUE”的形式传递到服务器上的。不同的资料输入栏,中间会以“&”作为分隔符,所以多个信息会形成如下的形式: “NAME1=VAL2UE1&NAME2=VALUE2”的形式。2. 如果各参数值中间有空格的话,会以“+”代替。3. 如果有特殊字符则以“%XX”代替,其中“XX”为特殊字元的16进位ASCII码。这些特殊字符包括了“&”、“=”、中文以及ASCII码为128以上的字符。CGI软件流程图如图14所示:图14 CGI的软件流程图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1