版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模拟I2C总线多主通信研究与软件设计 技术分类: 通信与网络 微处理器与DSP 来源:单片机与嵌入式系统应用/西安电子科技大学 郑旭阳 李兵兵 黄新平 发表时间:2007-01-20 I2C总线(Inter IC BUS)是Philips公司推出的双向两线串行通信标准。由于它具有接口少、通信效率高等优点,现已得到广泛的应用13。它除了可以进行简单的单主节点通信外,还可以应用在多主节点的通信系统中。在多主节点通信系统中,如果两个或者更多的主节点同时启动数据传输,总线具有冲突检测和仲裁功能,保证通信正常进行并防止数据破坏。现在许多微控制器(MCU)都
2、具有I2C总线接口,能方便地进行I2C总线设计。对于没有I2C总线接口的MCU,可以采用两条I/O接口线进行模拟2,3。目前,一些介绍模拟I2C的资料主要讲的是在单主节点系统中进行的通信,这使得模拟I2C总线的应用具有一定的局限性。本文根据总线仲裁的思想,提出一种多主节点通信的思想及实现流程。1 I2C总线系统简介13I2C总线系统是由SCL(串行时钟)和SDA(串行数据)两根总线构成的。该总线有严格的时序要求,总线工作时,由串行时钟线SCL传送时钟脉冲,由串行数据线SDA传送数据。总线协议规定,各主节点进行通信时都要有起始、结束、发送数据和应答信号。这些信号都是通信 过程中的基本
3、单元。总线传送的每1帧数据均是1个字节,每当发送完1个字节后,接收节点就相应给一应答信号。协议规定,在启动总线后的第1个字节的高7位是对从节点的寻址地址,第8位为方向位(“0”表示主节点对从节点的写操作;“1”表示主节点对从节点的读操作),其余的字节为操作数据。图1列出I2C总线上几个基本信号的时序。图1中包括起始信号、停止信号、应答信号、非应答信号以及传输数据“0”和数据“1”的时序。起始信号就是在SCL线为高时SDA线从高变化到低;停止信号就是在SCL线为高时SDA线从低变化到高;应答信号是在SCL为高时SDA为低;非应答信号相反,是在SCL为高时SDA为高。传输数据“0”和数据“1”与发
4、送应答位和非应答位时序图是相同的。 图1 I2C总线上基本信号的时序图2表示了一个完整的数据传送过程。在I2C总线发送起始信号后,发送从机的7位寻址地址和1位表示这次操
5、作性质的读写位,在有应答信号后开始传送数据,直到发送停止信号。数据是以字节为单位的。发送节点每发送1个字节就要检测SDA线上有没有收到应答信号,有则继续发送,否则将停止发送数据。 图2 一次完整的数据传送
6、过程2 I2C总线的仲裁在多主的通信系统中。总线上有多个节点,它们都有自己的寻址地址,可以作为从节点被别的节点访问,同时它们都可以作为主节点向其他的节点发送控制字节和传送数据。但是如果有两个或两个以上的节点都向总线上发送启动信号并开始传送数据,这样就形成了冲突。要解决这种冲突,就要进行仲裁的判决,这就是I2C总线上的仲裁。I2C总线上的仲裁分两部分:SCL线的同步和SDA线的仲裁。SCL同步是由于总线具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原理,当多个节点同时发送时钟信号
7、时,在总线上表现的是统一的时钟信号。这就是SCL的同步原理。SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。图3中给出了两个节点在总线上的仲裁过程。SDA线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过仲裁只允许一个主节点可以继续占据总线1。图3是以两个节点为例的仲裁过程。DATA1和DATA2分别是主节点向总线所发送的数据信号,SDA为总线上所呈现的数据信号,SCL是总线上所呈现的时钟信号。当主节点1、2同时发送起始信号时,两个主节点
8、都发送了高电平信号。这时总线上呈现的信号为高电平,两个主节点都检测到总线上的信号与自己发送的信号相同,继续发送数据。第2个时钟周期,2个主节点都发送低电平信号,在总线上呈现的信号为低电平,仍继续发送数据。在第3个时钟周期,主节点1发送高电平信号,而主节点2发送低电平信号。根据总线的线“与”的逻辑功能,总线上的信号为低电平,这时主节点1检测到总线上的数据和自己所发送的数据不一样,就断开数据的输出级,转为从机接收状态。这样主节点2就赢得了总线,而且数据没有丢失,即总线的数据与主节点2所发送的数据一样,而主节点1在转为从节点后继续接收数据,同样也没有丢掉SDA线上的数据。因此在仲裁过程中数据没有丢失
9、。 & nbsp; 图3 两个主节点的仲裁过程3 多主通信的原理及其实现流程多主通信就是在总线上有多个节点。这些节点既可以作为主节点访问其他的节点,也可以作为从节点被其他节点访问。当有多个节点同时企图占用总线时,就需要总线的仲裁。对于模拟I2C总线系统,怎
10、样实现总线的仲裁是现在研究模拟I2C总线系统的难点。文献4提出在系统中增加1根BUSY线,在占用总线之前先检测BUSY线,看总线是否被占用。若总线空闲,则设置BUSY线并向总线上传送数据;否则,接收数据,直到总线空闲时才占有总线。这种实现多主通信的方法有两个缺点: 因为I2C最大的优点就是接口少、效率高,这样做不仅增加了使用资源而且减少了I2C总线的优势; 当主节点数比较多时,等待时间比较长,效率不高。本设计根据总线的仲裁原理,提出一种基于延时比较的仲裁方法。当主节点想要占用总线时,先检测总线上是否空闲,如果总线是空闲的就发送数据。在发送数据的同时,将总线上的数据接收并与发送的数据进行比较。如
11、果不同,说明总线上同时还存在其他节点,于是就退出;否则,一直到发送完数据。这种方法既体现了I2C总线的高效性,同时还具有良好的扩展性。
12、; 图4 多主通信流程 图4给出了基于延时比较的多主通信流程,其中MCU作为从节点部分的流程在图5中给出。在节点发送起始信号之前先要检测一下总线上是否为空闲状态(BUSY是否为0)。这里使用的检测方法是,持续检测一段时间看总线上的电平是否一直为高,若是说明总线上为闲状态,否则说明有其他的节点正在使用总线,要等一段时间再发送。当总线空闲时,发送起始信号,接着发送要访问的从节点的地址字节。每发送1位数据就接收比较1次,看发送和接收的是否一致,若是则继续,否则跳出到从节点的接收状态。如果没有产生冲突,MCU作为主节点继续发送数据,直到任务结束,然后发送停止信号并返
13、回。如果数据不一样,MCU将跳转到从节点状态。由于在跳转到从节点接收状态的过程中累加器(ACC)和工作寄存器(Ri)的数据没有发生变化,所以数据没有丢失,作为从节点可以继续接收总线上的数据。这样整个通信的过程没有中断,数据也没有丢失。
14、60; 图5 从节点部分的流程图5给出了从节点的流程。进入从节点时,要将BUSY置为高,说明MCU现在正在工作,不能完成其他的任务。在MCU作为从节点完成接收任务后,要将BUSY置为低。MCU在接收到寻址字节后与自己的地址字节进行比较。如果是访问自己的就进入到下面的接收程序,否则跳出。在访问自己的时候,还要判断主节点是读取数据还是写数据,以便进入相应的程序。在写字节的子程序中,从节点每发送1个字节的数据后都要察看是否有应答信号(ACK),有则说明数据接收到了;否则要跳出等待,重新发送。在
15、读字节的子程序中,每接收1个字节的数据就要发送1个应答信号(ACK),以示接收正常,否则主节点将停止继续发送。在现有的资料中,关于从节点的原理和源代码比较少,这里给出作为从节点时写字节子程序的源代码。由于篇幅有限其他的子程序没有列出。 4 部分源代码本节是在MCU多主通信中的部分源代码。多主通信的实现中有几个难点和重点。一是在作为主节点时的写字节子程序,里面要包括发送的每位数据和总线的数据进行比较并做出判断。如果数据不同,要跳出并进入从节点的状态。由于子程序返回主程序时改变的只是PC的值而累加器(ACC)和工作寄存器(Ri)里面的值是不变的,因此MCU进入从机状态后继续接收总线剩下
16、的数据,这样总线的数据并没有丢失。二是作为 从节点时的写字节的子程序。由于时钟线是由主节点的MCU控制的,所以怎样根据SCL线来读取SDA线的数据是其中的一个难点。三是在具有子地址的从节点关于是写字节还是读字节时的判断。如果是写字节时主节点会给出新的起始信号,并再次发送从节点的地址数据。这时从节点需要做出判断是读取数据还是写数据,并进入相应的子程序。这里给出以上三个重点和难点的子程序的源代码,以供读者参考。这些源代码经实践证明都是正确的。主节点的写字节子程序: 其中的NOP可根据时钟的快慢自己加减WRBYTE:
17、MOVR0,#08H CLRBUSY;将BUSY值清零WLP: RLCA;取数据位JC WR1 SJMPWR0;判断数据位WLP1:DJNZR0,WLP NOPOUT1:RETWR1: SETBSDA;发送1 NOP SETB SCL MOVC,SDA;判断是否与发送的数据相同 JC GOON SETB BUSY AJMP OUT1GOON:NOP NOP NOP CLRSCL SJMPWLP1WR0: CLRSDA;发送0 NOP SCL NOP NOP NOP NOP NOP CLR SCLSJMP WLP1从节点的写字节子程序(返回为ACK):SWRBYTE:MOV R0,#08HWAG
18、AIN: RRC AMOVB,#37HWWAIT1: JBSCL,WWAIT1;等待SCL为低JCWR1;判断是发送“1”还是发送“0”SETBSDA;发送“1”AJMP COMWR1:CLR SDA;发送“0”COM:DJNZR0,WWAIT2;判断是否发送完毕WWAIT3: JNBSCL,WWAIT3;发送完毕等待应答信号WWAIT4: JBSCL,WWAIT4WWAIT5: JNBSCL,WWAIT5CLRACKJB SDA,ST0SETBACKST0:RET;返回WWAIT2: JNBSCL,WWAIT2;等待SCL为高SJMPWAGAIN从节点的读字节同时判断是否有起始信号的子程序。
19、如果有起始信号,则转为写字节子程序:SRDBYTE:MOV R0,#08HSETB20H;设置标志位判断是读还是写SETBSDA;释放总线RWAITJ: JNBSCL,RWAITJ;等待SCL为高MOVC,SDA;从总线上读取数据RRC A;存入累计器DECR0MOVC,ACC.7;判断是否为起始信号JNCRWAITJ1;为低继续读取数据REWAIT: JNBSCL,RWAITJ1;开始判断是否为起始信号JB SDA,REWAITCLR20H;是,则清标志位并返回AJMPSjRDOUTRWAITJ1:JBSCL,RWAITJ1;等待SCL为低RWAITJ3:JNBSCL,RWAITJ3;等待S
20、CL为高MOV C,SDARRCADJNZR0,RWAITJ2SjRDOUT:RETRWAITJ2:JBSCL,RWAITJ2;等待SCL为低继续读数据SJMPRWAITJ3 5 总结根据总线协议中的仲裁原理,提出的基于延时比较的模拟I2C多主通信的方法,不仅能够体现了I2C总线的高效性,而且还具有良好的扩展性。它使普通不具有I2C接口的MCU可以应用在多主通信的系统中,既增加了普通MCU的使用范围,又突破了模拟I2C总线的应用局限性,为I2C总线的推广起到了积极的作用。参考文献1 The I2CBus Specification, Version 2.1. Janua
21、ry, 2000. 2 张昆,邱扬,刘浩. 基于CPLD的系统中I2C总线的设计. 电子技术应用,2003(11)3 何立民. I2C总线应用系统设计. 北京:北京航空航天大学出版社,1995GPRS无线通信系统中的MSC1210应用设计 技术分类: 通信与网络 来源:电子元器件应用 发表时间:2006-12-05 引言 近年来,通信技术和网络技术的迅速发展,特别是无线通信技术的发展,使得电力系统的自动化程度进一步提高,GSM网络出现后,技术人员很快把GSM模块嵌入到各种仪器仪表中(如多功能电能表、故障测录仪、抄表系统和用电负荷监控等
22、),从而使这些仪器仪表具有远程通信功能。GPRS是在现有GSM系统上发展出来的一种新的数据承载业务,支持TCP/IP协议,可以与分组数据网(Internet等)直接互通。GPRS无线传输系统的应用范围非常广泛。几乎可以涵盖所有的中低业务和低速率的数据传输,尤其适合突发的小流量数据传输业务。本文设计的GPRS无线通信模块,内嵌入了TCP/IP协议,采用工业级的GPRS模块,适用于单片机数据采集传输系统没有TCP/IP协议栈,但使用串口通信的情况。GPRS通信原理及应用特点 GPRS简介GPRS是通用无线分组业务(General Pacpet Radio System)的缩写,是介于第二代和第三代
23、之间的一种通信技术,通常称为2.5G。GPRS采用与GSM相同的频段、频带宽度、突发结构、无线调制标准、调频规则以及相同的TD-MA帧结构。因此,在G SM系统的基础上构建GPRS系统时,GSM系统的绝大部分部件都不需要作硬件改动,只需要作软件升级,有了GPRS,用户的呼叫建立时间大大缩短,几乎可以做到“永远在线”。此外,GPRS是以营运商传输的数据量而不是连接时间为基准来计费,从而令每个用户的服务成本更低。 基本工作原理GPRS是在原有的基于电路交换(CSD)方式的GSM网络上引入两个新的网络节点:GPRS服务支持节点(SG-SN)和网关支持节点(GGSN)。SGSN和MSC在同一等级水平,
24、并跟踪单个MS的存储单元实现安全功能和接入控制,并通过帧中继连接到基站系统,GGSN支持与外部分组交换网的互通,并经由基于IP的GPRS骨干网和SGSN连通。图1给出了GPRS与Internet进行连接的原理框图。
25、GPRS终端通过接口从客户系统取得数据,处理后的GPRS分组数据发送到GSM基站,分组数据经SGSN封装后,SGSN通过GPRS骨干网与网关支持接点GGSN进行通信,GGSN对分组数据进行相应的处理,再发送到目的网络,如Internet或X.25网络。若分组数据是发送到另一个GPRS终端,则一般将数据由GPRS骨干网发送到SGSN,再经BSS发送到GPRS终端。GPRS模块的硬件设计嵌入式GPRS无线通信模块主要由嵌入TCP/IP的单片机(MSC1210Y5)、GPRS模块、SIM卡座、外部接口和扩展数据存储器等部分组成。图2是其系统硬件框图。 &
26、#160; MSC1210主要用于控制GPRS模块的信息接收和发送,并通过标准RS232串口和外部控制器(比如数据采集端)进行数据通信,同时用软件实现中断,以完成数据转发。 单片机模块单片机采用美国德州仪器公司最新推出的基于8051内核的MCS1210Y5,该芯片具有很强的数据处理能力,时钟频率为33MHz,指令运行速度实际上与运行在99MHz时
27、钟频率下的标准8051内核相当,32KB Flash程序存储器,256B内部RAM和1024B片上SRAM,2KB启动ROM,支持串行和并行的在系统编程,双数据指针DPTR0和DPTR1可加快数据块的移动速度,其主要实现过程如下:(1)通过AT指令初始化GPRS无线模块,使之附着在GPRS网络上,以获得网络运营商动态分配的GPRS终端IP地址,并与目的终端建立连接。(2)通过串口0扩展MAX232标准串口和外部控制器(例如数据采集端)连接,外部控制器端接出标准串口,按照约好的协议可很容易利用本设计的控制器进行通信。(3)复用P1.2和P1.3,也就是串口1分别和GPRS模块的TXD0和RXD0
28、连接,P1口的其他6个端口分别接到GPRS模块对应的剩余RS232通信口。通过软件置位完成对MC35的初始化和控制GPRS模块的收发数据。 扩展数据存储器MSC1210的Flash存储器可全部作为Flash程序存储器,也可以全部作为数据Flash程序,因为要嵌入实时操作系统和网络协议,需要一定的空间,因此将其全部用作程序存储器,而通过74HC573作为地址锁存器,扩展6264作为外部数据存储器,8KB的数据存储空间足够程序正常运行了,图3所示是MSC1210与数据存储器之间的硬件连接图。
29、 GPRS无线数传模块GPRS无线模块作为终端的无线收发模块,把从单片机发送过来的IP包或基站转来得的分组数据进行相应的处理后再转发。GPRS模块采用德国Simens公司生产的MC35模块。MC35模块主要由射频天线,内部Flash、 SRAM、GSM基带处理器、匹配电源和一个40脚的ZIF插座组成。GSM基带处理器是核心部件,其作用相当于一个协议处理器,用来处理外部系
30、统通过串口发送AT指令,射频天线部分主要实现信号的调制和解调,以及外部射频信号与内部基带处理器之间的信号转换,匹配电源为处理器基射频部分提供所需的电源。MC35的外围电路如图4所示。 图中,由AS2815将外部电压转换成3.3V工作电压。系统中的启动电路由三极管和上电复位电路组成,模块上电后,为使之正常工作,必须在15脚加至少100ms的低电平信号,启动后,15脚信号应保持高电平。MC35在ZIF连接器上为SIM卡接口预留的引脚数为6个,要注意的是,CCIN引脚用来检测SIM卡座是否插有SIM卡,当插入SIM卡,该引脚置为高电平时,系统方可进入正
31、常工作。SYNC引脚有两种工作模式:一种是指示发射状态时的功率增长情况,另一种是指示MC35的工组状态,本设计中使用后一种模式,LED熄灭时,表明MC35处于关闭或睡眠状态;当LED为600ms亮/600ms熄时,表明SIM卡没有插入或MC35正在进行网络登陆;当LED为75ms为亮/3s熄时,表明MC35已登陆进入网络,处于待机状态。单片机通信程序设计该程序软件中的所有代码都用C语言编写,在Keil环境中编译,Keil是Keil Software公司为8051及其兼容产品提供的专门开发工具,它支持在系统调试,Keil中C51译码器很好地集成了RTX多任务实时操作系统,编写程序时,需在源代码头
32、加入“#incluede rtx51.h”。所有代码调试后经由TI Downloader下载到存储器中。目前,绝大多数基于GPRS网络应用系统所使用的GPRS模块不支持TCP/IP协议,也就是说,要想工作在相同的网络层面上,其内部传输的数据必须都要采用相同的协议,所以除了利用GPRS模块的功能外,必须在单片机系统中嵌入按TCP/IP和PPP协议标准编写的程序,从而使设计的终端设备能够方便的应用GPRS数据分组业务。 TCP/IP协议的嵌入有很多种方法可以完成协议转换,本设计利用在嵌入式实时操作系统RTX51中移植部分IP和PPP协议来增强系统的可扩展性和产品开发的可延续性。TCP/IP协议是一
33、个标准协议套件,可以用分层模型来描述,数据打包处理数据时,每一层把自己的信息添加到一个数据头中,而这个数据头又被下一层中的协议包装到数据体中。数据解包处理程序接收到GPRS数据时,把相应的数据头剥离,并把数据包的其余部分当做数据体对待。考虑到嵌入式系统的特点,本设计采用了系统开销较小的IIP+UDP协议来实现GPRS通信,主机发送的UDP数据报文经GPRS通道传送给GPRS通信模块,GPRS通信模块负责对数据报进行解析,解析后的数据按照一定的波特率串行传送给用户终端。 数据处理数据包在主机和GPRS服务器群中传输使用的是基于IP的分组,即所有的数据报文都要基于IP包,但明文传送IP包不可取。故
34、一般使用PPP协议进行传输,模块向网关发送PPP报文都会传送到Internet网中相应的地址。而从Internet传送过来的应答帧也同样会根据IP地址传送到GPRS模块,从而实现采集数据和Internet网络通过GPRS模块的透明传输。要注意的是,GSM网络无静态IP地址,故其他通信设备不能向它提出建立连接请求,监控中心必须拥有一个固定的IP,以便监测终端可以在登陆GSM网络后通过该IP找到监控中心,关于这一点,很容易解决,只需在电信申请相应的服务就可以了。GPRS模块登陆上GSM网络后,自动连接到数据中心,向数据中心报告其IP地址,并保持和维护数据链路的连接,GPRS监测链路的连接情况,一旦
35、发生异常,GPRS模块自动重新建立链路,数据中心和GPRS模块之间就可以通过I地址通过UDP/IP协议进行双向通信,实现透明的可靠数据传输。上位机监控中心的设计监控中心的功能是实现GPRS信息的接收和保存,设计语言采用Microsoft公司的Visual C+编程语言,C+语言应用灵活,功能强大,并对网络编程和数据库有强大的支持。由于通过GPRS中心监控部分可以直接访问互联网,所以监控部分并不需要再设置GPRS模块,中心只需通过中心软件侦听网络,接收GPRS无线模块传来的UDP协议的IP包和发送上位机控制信息,以实现与GPRS终端的IP协议通信。接收到的信息要保存到中心的数据库中,以备查历史记
36、录。数据库采用Access,用VC编制的界面窗口能推动AD()访问Access中的数据,也可通过Socket接收网络终端信息。Socket接口是TCP/IP网络的API,Socke t接口定义了许多函数和例程,程序员可以利用它来开发TCPIP网络上的应用程序,VC中的MFC列提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程非常方便,本设计采用数据报文式的Socket,这是一种无连接的Socket,对应于无连接的UDP服务应用。CAsyncSocket使用DoCallBack函数来处理MFC消息,一个网络事件发生时,DoCallBack函数按照网络时间类型FD_READ
37、、FD_WRITE、FD_ACCEPT和FD_CON-NECT来分别调用OnReceive、OnSend、OnAccept和OnCon-nect函数,以驱动相应的事件,从而完成网络数据通信。结束语本文采用嵌入式TCP/IP协议,通过高速8位单片机实现GPRS业务的数据传输功能,具有外围电路少,电路简单,系统成本低等优点,通过标准RS232串口和外部控制器连接,只需按照预先规定的协议就可互相通信,通用性较强,系统软件均使用C语言编写,稍加改动就可以在各种控制器上实现,可移植性也较强。基于GPRS的系统有有一定的缺点,例如,现在的GPRS网还不够稳定,有丢包的现象,主控制器要实现IP协议,使用起来
38、比较复杂;上位机基于互联网的解决方案保密性较差等,上述问题经过精细设计是可以避免和解决的,所以基于GPRS的设计仍具有无可比拟的优势。基于GPRS的无线数据采集与传输终端 技术分类: 通信与网络 来源:电子产品世界/ 作者:上海交通大学电子与信息工程学院 赵申 蒋铃鸽 发表时间:2005-09-06 · 核心器件: MPC8xxCMS91 无线数据采集与传输的应用范围非常广,涉及行业有电力、水利、公安、交通、石油、安防和金融等。中国移动公司在2002年5月正式开通了通用分组无线
39、业务GPRS网络。GPRS网络支持TCPIP协议并且覆盖面广,比起使用短消息和超短波无线数传电台进行无线数据传输,GPRS无论在费用、可靠性和可实施性等方面都具有很大的优势。 终端的系统组成 无线数据采集与传输终端的设计可以有两套方案:第一套为“单片机GPRS调制解调器”,此方案虽然硬件成本较低,但功能比较有限,在协议的开发和支持上都有一定难度;第二套方案为“嵌入式CPUGPRS 模块”,此方案虽然硬件成本稍高,需要嵌入式CPU芯片来支持嵌入式操作
40、系统,但可以实现丰富协议接口,便于移植和向高端系统应用升级,更加便于数据采集与传输的实现。 图1给出了一个无线数据采集和传输终端组成的原理参考图,采用Motorola半导体(编者注,现更名为:Freescale)嵌入式CPU MPC8xx加GPRS模块CMS91的第二套实现方案。 图1 终端组成原理参考图 终端工作原理为通过RS232/485口接收到用户数据,然后将数据打成IP包,通过GPRS模块接入GPRS网络,再通过各种网关
41、和路由将数据发送到数据处理中心。 下面对图1中的组成原理进行详细介绍: 嵌入式CPU芯片是整个数据采集终端的核心,可以很好地支持嵌入式操作系统;考虑到嵌入式操作系统的移植方便性和性能要求,采用了当前成熟的Motorola MPC8xx嵌入式CPU。许多操作系统厂家都针对这种类型的CPU开发微码和套件(BSP),以方便用户移植。 GPRS模块主要完成无线上网的功能。在市场上有一
42、些成熟的产品,譬如说Sony/Ericsson的GM47;Simens的MC35等。在这里选用Cellon公司的CMS91。它是一种双频段GSM/GPRS 10级模块,主要优点有:低功耗、接口简单、AT指令功能完善、可支持GPRS CLASS 10、开发多媒体应用、价格较低等。同时,它也提供SMS(短消息服务)和语音功能。GPRS模块提供RS232接口,可以通过它来完成对模块的控制,譬如拨号和切换模式等。一旦通过模块连接上Internet,采集到的数据就可以用TCP/IP传输方式发送到任意一个具有公网IP地址的主机上去,从而实现采集数据的无线传输。
43、0; 数据采集一般采用标准RS232或RS485接口,采集压力、温度等传感器数据。由CPU负责对采集到的数据进行运算和处理,然后交给GPRS模块将其发送给远程数据中心。 Watchdog主要用来防止终端系统死机。通过软件定时写数据到WD硬件,一旦系统死机,软件工作不正常,WD硬件由于接收不到数据而产生硬件中断,从而系统自动重启。 ROM主要用于保存嵌入式操作系统、应用程序及相关配置参数,通过内部总线直接与CPU通信。在这里选
44、用了Intel公司的28F320-J3,32M字节。可以在ROM上完成文件系统,但需要在操作系统中加入文件系统处理模块。 LCD是可选模块,用来显示状态信息等。10Base-T也是可选模块,方便调试。也可以利用NAT技术和10Base-T端口将终端作为连接Internet的网关。实施中的技术难点 CPU通信端口的配置 在此设计中选用MPC850微处理器, 它是一个多
45、用途的通用芯片,内部集成了微处理器和常用外围组件,可用于各种控制领域。它是MPC860应用于通信系统的低成本实现,提供了更高的性价比,并在通信方面有所增强,比如通用串行总线(USB)的支持。MPC850集成了嵌入式PowerPC 核和一个为通信使用的专门的RISC通信处理器模块(CPM)。MPC850 的 CPM 支持6个串行通道:一个串行通信控制器(SCC),一个USB,两个串行管理控制器(SMS),一个I2C接口,和一个串行外围接口电路SPI。通常可将一个SCC和两个SMS配置成为通用串口UART,用以控制不同的模块且速率可调。 &
46、#160; ROM上文件系统的实现 普通的ROM操作只能以模块操作,维护起来很不方便,而且由于在读写的时候没有缓冲操作,数据很容易丢失和出错。在ROM上实现的文件系统 可以合理的分配和使用每一个区块,减少了区块迁移和区块过度使用。本设计中采用Intel J3系列(28F320J3)闪存做为存储设备, 实现了TrueFFS。首先在系统启动配置文件中配置TFFS的三层结构,修改MTD。系统启动时初始化文件系统 和缺省路径。如果成功,就生成了可操作的文件设备符。自此,用户就可以使用一般的文件操作方式了(生成、读、写
47、和删除)。要注意的是在读写完文件后,要显示关闭文件,以避免数据丢失。 设备作为网关时的网络地址转换(NAT)实现 采用NAT接入Internet改变了原来使用代理软件接入Internet的方式,可采用两种NAT的设置(动态NAT和静态NAT)实现Internet的接入。动态NAT实现所有主机对Internet的访问。由于NAT具有隐藏网络内部拓扑结构的功能,外部主机不能直接访问内部网站或主机。但通过动、静态NAT的联合使用,既可以实现内外部互访,又
48、可以隐藏网络内部拓扑结构,确保网络安全。在具体实现中,首先要通过PPP拨号上GPRS网络,得到分配地址。如果得到CPU通信端口上分配的网络通信内部IP地址,然后配置NAT参数,将其中的两个端口参数配置为GPRS网络地址和内部通讯地址。最后用配置好的NAT参数将NAT初始化。 GPRS模块工作模式的使用 利用CMS91进行数据传输的主要方法有3种: 1.SMS Messages
49、 可以用来传输字符或者二进制数据,一般情况下每条SMS的字节长度是140字节,SMS适合数据量小的对实时性要求不高的场合。 2.Data Calls在数据链路建立以后可以进行透明或者非透明的数据传输。主要适合数据量比较大而传输次数较少的场合。 3.GPRS数据传输适合所有情况下的数据传输,是未来的发展趋势。 利用CMS91 GPRS模块进行基于Internet的数据通信SMS
50、和Data Call应用有很大的不同,无论是SMS还是Data Call都是有相应的AT指令支持的,使用都是比较简单的、无需了解实际的运作流程,但是对于GPRS的数据应用,牵涉的网络协议方面的知识要相对较多。 在这种应用中,CMS91 GPRS模块相当于一个无线调制解调器用户的应用系统,需要通过PPP(LCP/PAP/IPCP)先和运营商的Internet接入服务器连接,然后才能应用TCP/IP、UDP或者更高一层的应用层程序http、FTP等进行通信。在目前的GPRS应用中,如果应用系统是基于操作系统的,由于系统功能比
51、较强,可以采用完整的PPP协议,但是如果应用系统是采用MCU的,那么一般采用简化的PPP协议,将一些不兼容的信息拒绝掉。 利用GPRS进行数据传输的结构有两种,主要区别在于服务器端的位置: 服务器端采用普通Internet上的主机方式,或者服务器通过DDN(或其它高速连接的方式如ASDL)直接与中间移动网CMNET连接的方式。 根据以上介绍的设计实施技术,不难写出一个完整的利用GPRS模块基于Internet的数据通信流程结语 本文从系统结构和实现
52、方式上介绍了一个基于GPRS的无线数据采集和传输终端的实现方法,尤其着重描述了如何利用GPRS进行数据通信。一般无线数据采集终端都用在专用系统中,如电力、水利等,特别适合小数据量低速数据传输要求,对工作稳定性的要求一般较高。在这里再提出一些成本和兼容性方面的设想:1.嵌入式CPU芯片由MPC8xx转换为ARM芯片。2.网络支持从GPRS升级到CDMA,可以通过更换无线通信模块来实现。 参考文献: 1. 陈凯旋、谢海滔,GPRS原理及其应用,铁道通信信号,2003年7月,Vol.39,No.7基于嵌入式Web Server的无线数据采集
53、系统 技术分类: 测试与测量 嵌入式系统 来源:CE China/冯峰 史燕 发表时间:2006-01-15 1 硬件设计 1.1 基于MCF5272芯片的嵌入式Web Server 基于MCF5272芯片的嵌入式Web Server
54、硬件配置如下: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集成通信微处理器集成水平。 它不仅提供了一套新的通信外围设
55、备,同时还包含了以往Cold Fire标准产品所具备的广受欢迎的通用外围设备。 1.2 PTR2000+系列无线数传模块 PTR2000+为讯通科技出产的无线数传模块,具有接收发射合一、体积小、外围器件少等优点,可直接与MCU串口相接,也可以接计算机RS232接口,软件编程非常方便。由于采用了低发射功率、高接收灵敏度的设计,使用者无需申请许可证 。其标准DIP引脚间距,更适合嵌入式设计。
56、 PTR2000+具有良好的产品特性,工作频率为国际通用的数传频段433MHz,FSK调制,抗干扰能力强;采用DDS+PLL频率合成技术,频率稳定性极好;具有两个频段,适合于需要多信道工作的特殊场合;工作速率最高可达20Kbit/s,也可在较低速率(如9600bps)下工作。 1.3 系统原理 整个系统由数据采集发射终端和数据接收端组成。 &
57、#160; 数据采集发射终端主要以51系列单片机为核心,MCU的P1口控制多路选择器,对8路模拟信号进行选择,选中的模拟信号进入高速AD转换器,进行模数转换。MCU同时控制AD的采样频率和起始转换,转换结果存入FIFO存储器。按照规定的通信协议,MCU对数据进行编码,最后通过数传模块PTR2000+发射给远方接收端。为提高数据传输的可靠性,数据发送完毕,MCU将PTR2000+转换为接收状态,接收主机的应答信号或控制字。 图1 数据采集端结构框 PT
58、R2000+通过RS-232将接收到的数据送入MCF5272嵌入式Web Server,MCF5272嵌入式Web Server接收完数据,将PTR2000+转换为发射状态,然后对数据进行CRC循环码校验。如果数据正确,就通过嵌入式操作系统的UDP/IP协议栈,将数据打包,保存到FLASH芯片的可写JFFS文件系统之中,同时运行web服务器,等待客户服务端通过网络访问数据;错误,则向PTR2000+发送重发命令。MCF5272嵌入式Web Server通过以太网口接入Internet网络,用户可通过浏览器(例如:IE)对系统进行远程配置、管理(如更改IP,重新启动系统等),并且可以调用封装好的
59、函数API直接对FLASH芯片的某几个扇区进行读写操作,可将配置的信息以及采集数据保存在系统FLASH芯片上。 图2 数据接收端结构框 上位PC机通过RS-232与BDM调试器相连,BDM调试器通过BDM口与Web Server相连,可以对Web Serve进行初始化配置、调试和日常维护。2 系统软件实现 系统的软件设计与实现是本系统实现的关键之一。
60、 2.1 系统软件:包括嵌入式操作系统与设备驱动程序 嵌入式操作系统是支持嵌入式系统应用的操作系统软件,是在系统实时性、硬件相关性、软件固态化等方面有着突出特点的专用操作系统。由于Cold Fire系列芯片是没有MMU (内存管理单元Memory Management Unit)的处理器,而 uClinux是专为那些没有MMU的嵌入式处理器开发的,所以本系统采用uClinux嵌入式操作系统。
61、; 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两个内核版本。
62、60; 本系统采用uClinux嵌入式操作系统主要需要解决以下三个问题: 第一,实时性问题。uClinux本身并没有关注实时性问题,它并不是为了Linux的实时性而提出的。而本系统中的数据采集功能对操作系统的实时性有一定要求。通过给uClinux打上其它Rt-linux的实时性补丁,就可以增强uClinux的实时性,满足这个系统的实时要求。 第二,JFFS文件系统的建立。uCl
63、inux系统采用Romfs作为根文件系统,Romfs文件系统不支持动态擦写保存。而本系统中的嵌入式的Web Server在运行过程中,要求能够动态地保存一些数据,并且当系统重新启动时,保存的数据依然存在。所以我们需要充分发挥Flash可擦写的优势,在系统运行过程中,动态地擦写Flash来保存数据。通过建立JFFS文件系统,可以用Flash来保存数据,即将Flash作为系统的硬盘来使用。可以像操作硬盘上的文件一样操作Flash芯片上的文件和数据。系统运行的参数可以实时保存到Flash芯片中,在系统断电后数据仍然存储在Flash芯片中。为实现Flash上的JFFS文件系统,我们需要在内核中加入对J
64、FFS文件系统和Flash设备的支持,并针对具体的Flash 芯片修改设备驱动程序,生成设备节点并将JFFS文件系统挂接到Flash 设备上。 第三,编写各个设备的驱动程序。主要包括串口驱动程序、以太网接口驱动程序、BDM调试接口驱动程序和FLASH芯片驱动程序。 2.2 嵌入式Web Server软件系统实现 嵌入式Web Server的
65、软件系统包括五个部分: HTTP引擎; 虚拟文件系统; 配置模块; 安全模块; 应用程序接口模块。 图3 嵌入式Web Server软件系统示意图 其中HTTP引擎负责响应用户的请求、通过虚拟文件系统访问静态数据信息、通过应用程序接口得到动态数据信息。 虚拟文件系统为嵌入
66、式Web Server提供虚拟文件服务,虚拟文件系统使用数据结构存储文件大小、修改时间等信息。对于存储HTML文件需要的动态信息建立数据结构保存脚本的指针和脚本所调用函数的名称。通过虚拟文件系统将Java、 GIF、 PDF、 HTML以及文本等文件形式编译为Web服务器认可的代码,而独立于具体的文件系统。 配置模块使系统管理员可以从任何一台标准的Web浏览器上设置嵌入式Web Server参数,在系统启动中定义的配置环境变量包括并发连接数、Socket端口、主机名称、根文件路径、缺省初始文件以及非活动超时和时区等。 &
67、#160; 配置模块对标准浏览器的开放使得安全问题更加重要,尤其是对网络设备的配置和控制信息的访问成为安全保护的重点。安全模块通过在服务器上定义安全域和对每个安全域定义的用户名和密码实现对敏感信息的保护。还可以对请求数据采取加密措施实现安全保护功能。 应用程序接口模块实现和嵌入式应用系统的数据交换。在嵌入式Web Server中,应用程序接口与嵌入式操作系统通信,实现对嵌入系统的配置、监视和控制,是嵌入式Web Serv er软件系统的核心。而应用程序接口模块常见的有CGI(Common Gateway Interfac
68、e)、SSI(Server Side Include)和HCPA(HTML-to-C Preprocessor Approach)等3种形式。 本系统应用程序接口模块采用CGI形式。CGI提供嵌入式Web Server一个执行外部程序的通道,CGI程序经过编译成为可执行文件,放在服务器端运行。嵌入式Web Server根据用户的请求调用相应的CGI程序。并由嵌入式Web Server将CGI程序得到的动态信息封装到页面中,发送到用户浏览器上。 3 无线数据传输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1.2太阳对地球的影响课件高中地理人教版(2019)必修一
- 感恩节活动策划游戏
- 大班音乐打击乐公开课教案详案《赛马》
- 数学活动比较薄和厚
- 艾滋病离我们并不远
- 4.7电和磁实验探究(三):电阻的测量(原卷版)
- 英特集团2024年五年规划
- 社会学医疗保险制度
- 液体外渗的应急预案
- 手术安全宣教
- 2024年官方兽医牧运通考试题库(含答案)
- 国资国企企业学习二十届三中全会精神专题培训
- 从偏差行为到卓越一生3.0版
- 西昌古诗文品读智慧树知到期末考试答案2024年
- 特殊资源教室建设方案
- 通信工程生涯发展规划
- 幼儿园大班语言科学:《塑料瓶到哪里去了?》课件
- 无压烧结碳化硅陶瓷防弹片的生产工艺设计
- 温度传感器单片机实训
- 二手车交易合同书与协议书大全(共6页)
- U-Map:欧洲版本的高等教育分类体系
评论
0/150
提交评论