《嵌入式系统原理与开发》课件-第7章_第1页
《嵌入式系统原理与开发》课件-第7章_第2页
《嵌入式系统原理与开发》课件-第7章_第3页
《嵌入式系统原理与开发》课件-第7章_第4页
《嵌入式系统原理与开发》课件-第7章_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章基于网络的嵌入式系统设计7.1引言

7.2分布式嵌入式系统

7.3嵌入式系统网络

7.4基于网络的设计示例

思考与练习题

7.1引言

在分布式嵌入式系统中,嵌入式计算机通过网络连接,相互通信,应用被分布在各个处理元素上,即在网络的各个节点中完成各项工作。这样做的好处是:首先,分布式处理可以有效地减少需要处理的数据,从而减轻处理器的工作量;其次,基于网络的设计也可以更好地实现模块化;再次,分布式系统更容易进行测试;最后,在某些情况下,网络还可以被用于容错系统中。

在这里,我们把不提供共享内存进行通信的交互方式都认为是基于网络设计的嵌入式系统。微处理器总线是网络的一种简单类型。本章首先在7.2节介绍基于网络的软硬件体系结构的基本原理,内容包括网络编程、OSI模型、网络结构和基于网络的设计技术。然后在7.3节介绍当前分布式嵌入式系统中广泛使用的一些总线和网络技术,包括I2C总线、CAN总线、Ethernet、GPRS、蓝牙和Internet。最后在7.4节列举三个基于网络的嵌入式系统的设计示例。

7.2分布式嵌入式系统

7.2.1系统概述

通常,嵌入式系统有两种应用方式:单机方式和网络方式。单机方式以嵌入式处理器为核心,与一些外部接口部件如监测、伺服和指示设备配合,实现一定的功能。网络方式是指把嵌入式设备通过网络连接在一起,相互通信,完成协作、并行等功能。连接网络的嵌入式设备具有通信控制器部件,通过该部件和通信协议软件的集成,可以实现嵌入式设备与网络的连接。设计基于网络的嵌入式系统有以下几方面的原因:

(1)计算和处理器资源的分散性。在一些应用系统中,计算机处理的资源可能分布在不同的位置,它们需要通过网络连接起来。

(2)减少处理器的数据量。

(3)模块化设计需求。

(4)系统可靠性要求。在一些情况下,网络被用于容错系统,如双机/多机备份系统。多个处理器系统通过网络连接在一起,当其中的一个设备出现故障时,其他的设备可以很容易地进行切换。采用网络方式连接嵌入式系统目前主要应用在以下几方面:

(1)物理层联网。物理层联网主要指的是比较简单的网络,通常使用串行总线(如RS-232、RS-485等)进行信号级的网络互联。

(2)通信领域。

(3)工业控制领域。工业控制系统从单元自动化向网络方面发展,由集散控制系统向基于网络的分布式控制系统方面发展。代表这一趋势的关键技术是现场总线技术,它是未来工业自动化方面的关键技术。

(4) Internet应用。7.2.2OSI模型

计算机网络提供了高级别的服务,却对系统中其他组件隐藏了数据传输的很多细节。国际标准化组织(ISO)针对网络提出了著名的7层结构模型,即开放式系统互联参考模型

(OpenSystemInterconnectReferenceModel,OSI/RM)。

OSI模型的分层结构如图7-1所示,它展示了网络的结构和各层的功能。某些网络设备在实现时并不需要7层中的某一层或几层,因为高层或者中间层并不是必需的。例如,大多数工业级网络由于实时性的要求就省去了消耗时间的某些层。图7‑1OSI模型的分层结构

OSI模型各层的具体功能如下:

(1)物理层。物理层规定了系统间基本的接口特性,如物理连接(连接插件和线缆)、电气特性、电子部件和物理部件的基本功能、位交换的基本过程等。

(2)数据链路层。数据链路层的主要作用是检测错误和控制一条单个链路。但是,如果网络需要通过几个数据链路实现多转发,那么数据链路层将不再保证转发的数据的完整性,它只能在单转发中保证这一点。

(3)网络层。网络层定义了基本的点到点数据传输服务。网络层在多转发网络中特别重要。

(4)传输层。传输层定义了面向连接的服务,它可以保证数据按一定的顺序无差错地在多条链路上传送。这一层同时会对网络资源的利用做一些优化工作。

(5)表示层。表示层规定了数据交换的格式并为应用程序提供有效的转换工具。

(6)应用层。应用层提供了终端用户程序和网络之间的应用程序接口。

尽管嵌入式系统比较简单,一般不需要使用完整的OSI模型,但是这个模型在实际应用中是非常有用的。即使相对简单的嵌入式系统也提供了物理层、数据链路层和网络层服务。7.2.3网络结构

一个分布式嵌入式系统能用很多不同的方式来组织,但是它的基本单元是网络设备(一般是嵌入式网络设备)和网络本身,如图7-2所示。图7‑2一个分布式嵌入式系统的结构7.2.4网络编程

1.请求/应答方式

这种方式是指通信的双方通过向对方发送请求/应答报文进行通信,它类似于客户/服务器的通信方式,通信的一方发送请求报文,通信的另一方对收到的报文进行应答。

连接在网络上的嵌入式设备通过传递报文进行通信。指定的报文作为一个基本的自然通信单位,它可以被拆分成分组在网络上传送。在程序设计上,分组发送可以使用查询方式,也可以使用中断方式。如果使用中断方式,则通常设计一个发送队列。应用程序需要发送的报文先放在发送队列中,发送中断服务程序从发送队列中读取报文并进行发送,这一过程如图7-3所示。图7‑3报文发送程序模块结构由于接收操作的随机性,分组接收通常以中断的方式实现。最简单的过程接口会检查一个接收到的选项是否在缓冲区中。在比较复杂的基于RTOS的系统中,为了减少中断处理的时间,接收中断服务例程只从通信控制器的接收缓冲区中读取收到的数据分组,而把处理分组的工作交给一个中断任务来完成,这一过程如图7-4所示。图7‑4报文接收程序模块结构

2.推移方式

所谓推移方式,是指数据的发送方在不需要等待请求的情况下主动发送数据。

由于相对于请求/应答方式,数据推移程序设计省掉了发送请求的通信量,因此它适用于周期性的数据传送场合,可以减少网络流量。如果数据总是以规律的时间间隔被产生和使用,则可以通过在需要时自动发送的方法来减少网络上的数据流量。

例如,在汽车网络系统中,分布的传感器和传动装置同中央控制器对话,如图7-5所示。图7‑5汽车网络系统7.2.5设计技术

1.通信分析

要分析网络的性能,必须了解如何确定在传输报文时引入的延迟。首先假设报文传递是可靠的,这意味着不需要重传报文。在不考虑竞争(如点对点连接)的前提下,单个报文的报文延迟可以表示为

tm=tx+tn+tr

其中,tx是发送方的开销,tn是网络传输时间,tr是接收方的开销。

2.系统性能分析

网络的复杂性使得对嵌入式网络系统的性能分析非常困难。对复杂的基于网络应用的嵌入式系统进行精确的性能分析,要使用CAD工具。有些算法可以有效地确定进程开始和完成时间的上界和下界。

如果没有计算机辅助分析工具来帮助分析性能,那么手工设计必须满足硬实时要求的嵌入式系统时要非常小心。系统在力图达到硬实时的时间确定性要求时,应该确保关键性的任务是活动的,这一点非常重要。

如果需要多个关键性任务能够同时发生或运行,那么系统设计时一定要保证它们不共享任何处理器资源和通信链接资源。这是一种保守的设计策略,使用CAD工具有助于放宽某些限制,以便更充分地提高硬件效率。

3.网络中的优先级倒置

优先级倒置是指低优先级的任务占用了一个临界资源,于是高优先级的任务无法得到资源,因而等不到处理器的服务,在宏观上表现为低优先级的任务在运行,高优先级的任务不在运行的反常情况。优先级倒置这一概念一般出现在多任务操作系统的应用设计场合,在实时系统的设计中是要避免的。

优先级倒置主要存在以下两种情况:

(1)报文的优先级不同。

(2)报文的优先级相同。

4.硬件平台设计、分配与调度

在设计硬件平台时,必须做出以下设计选择:

·所需要的处理器数目;

·所有处理器的类型;

·所需要的网络数目;

·网络的类型以及数据速率。根据正在设计系统的类型,下面的两种策略会有助于快速设计出有效的系统。

(1)对于I/O密集型系统,从I/O设备以及关联的处理入手。这类系统中的数据可能直接传输到网络上,也可能需要进行一些本地处理后才传输到网络上。在系统设计时,应遵循以下步骤:

①编制所需I/O设备的详细清单。

②根据预算确定哪个处理工作具有过短的时间确定性要求,以至于这个要求不能被任何网络满足。不需要本地处理的I/O设备可以用最简单的可用接口连接到网络上。③确定哪些设备可以共享处理器或网络接口。

④分析通信时间,确定关键性通信是否可能相互影响;确定为了达到通信的时限要求是否需要使用复杂网络或多个网络。

⑤为I/O设备分配所需要的最小数量的处理器资源。

⑥用计算密集型系统的设计步骤来设计系统的其他部分。

(2)对于计算密集型系统,从进程入手,按以下步骤来考虑进程和进程最后期限以及通信:

①从具有最短时间确定性要求的任务开始。任务的时限性越短,越有可能需要自己的一个或多个处理器。如果一个高优先级的任务与一个低优先级的任务共享处理器,则不仅需要更昂贵的处理器,而且还会非线性地增加调度开销。

②分析通信时间,确定关键性通信是否会相互影响。

③尽可能把低优先级的任务分配到共享的处理器上。

④设计出符合性能要求的基本系统以后,需要进一步改进它,以满足功耗要求以及其他要求。

7.3嵌入式系统网络

7.3.1I2C总线

I2C总线常用于将微控制器链接到系统。

1.物理层

I2C被设计成低成本、易实现、中速的(标准总线达到100 kb/s,扩展总线达到400 kb/s)总线。I2C只使用两条线:串行数据线(SDL),用于数据传送;串行时钟线(SCL),用于指示什么时候数据线上是有效数据。图7-6展示了一个典型的I2C总线系统结构。网络中的每一个节点都被连接到SCL和SDL,一些节点能够起到总线主控器的作用(总线可以有多个主控器),其他节点可以起到响应总线主控器请求的总线受控器的作用。图7‑6I2C总线系统结构

2.电路接口

图7-7展示了与总线的基本电路接口。总线不规定使用电压的高低以便双极电路或MOS电路都能够连接到总线。所有的总线信号使用开放集电极/开放漏极电路。一个上拉电阻保持信号的默认状态为高电平,当0被传输时每一条总线的晶体管用于下拉该信号。开放集电极/开放漏极信号允许一些设备同时写总线而不引起电路故障。图7‑7I2C总线电路接口

3.数据链路层

每一个I2C设备都有自己的地址。设备的地址是由系统设计者决定的,通常是I2C驱动程序的一部分。这个地址的选择必须保证任何两个设备之间的地址都不相同。在标准的I2C定义中,设备地址是7位的(扩展的I2C允许10位地址)。地址0000000一般用于发出通用呼叫或总线广播,总线广播可以同时给所有的设备发出信号。地址11110××为10位地址机制保留,还有一些其他的保留地址。总线事务包含一系列单字节数据传送和一个地址传送。I2C形成了一种数据推移设计风格。当一个主控器试图写受控器时,它将传送后面跟有数据的受控器地址。因为受控器不能执行传输,所以主控器必须发送一个带着受控器地址的读请求让受控器传送数据。因此,地址传输包括7位地址和表示数据传输方向的一个位:0代表从主控器写到受控器,1代表从受控器读到主控器。

地址传输的格式如图7-8所示。图7‑8I2C地址传输格式总线事务由一个开始信号启动,以一个结束信号完成。

(1)开始信号通过保留SCL为高电平并且在SDL上发送1到0的转换产生。

(2)结束信号通过设置SCL为高电平并且在SDL上发送0到1的转换产生。

开始和结束信号必须成对出现。主控器可以通过数据传送后发送开始信号来先写后读(或先读后写),接着是另一地址的传输,然后是更多的数据传输。

典型的完整总线事务格式如图7-9所示。图7‑9I2C总线上的典型总线事物

4.字节格式

图7-10显示了总线上的数据字节是如何传送的,其中包括了开始和停止事件。当SCL保留高电平同时SDL变为低电平时传送开始。这个开始状态之后,时钟信号变低来启动数据传送。在每一个数据位,时钟线在确保数据位正确时变为高电平。在每一个8位数据的结尾发送一个确认信号,而不管它是地址还是数据。在确认时,传送端不会把SDL变为低电平,如果正确接收到了数据,则允许接收端把电位变为0。确认信号后,当SCL处于高电平时SDL从低电平变为高电平,指示数据传送停止。图7‑10I2C总线上一个字节的传输

5.总线属性

总线使用设备监听特性来仲裁每一个报文。如果设备试图发送一个逻辑1但是却监听到一个逻辑0,它会立即停止传送并且把优先权让给其他发送设备。在许多情况下,仲裁在传送地址部分时完成。但是仲裁也可以在数据部分继续。当两个设备都试图向同一地址发送同样数据时,它们之间不会互相影响且最后都会成功发送报文。

6.应用接口

在微控制器上的I2C接口可以用不同比例的软/硬件功能来实现。如图7-11所示,一个典型的系统可由一个带有例程的一位硬件接口完成字节级的功能。I2C设备负责生成数据和时钟。应用程序调用例程来发送地址和数据字节等。I2C接口产生SCL和SDL信号、确认信号等。一个微控制器的定时器通常用于控制总线上的位长。中断用来识别位。但是,在主控模式下时如果没有其他挂起任务可以执行,那么轮询I/O也是可以被接受的(因为主控器启动了自己的传输)。图7‑11微控制器中的I2C接口7.3.2CAN总线

CAN总线最初是为汽车电子设备设计的。当数字电子设备应用到汽车组件时,不只单个组件变得更智能,而且由于通信的需要,它们的功能也在不断增加。现在,CAN也被应用于汽车电子系统以外的应用中。

CAN总线使用位串行数据传输。CAN可以以1 Mb/s的速率在40m双绞线上传输数据。光缆连接也可以使用,并且在这种总线上的总线协议支持多主控器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。

1.物理层

如图7-12所示,CAN总线上的每一个节点都以AND方式连接到总线的驱动器和接收器上。图7‑12一种CAN总线的物理电器组织结构

2.数据帧

CAN数据帧的格式如图7-13所示。数据帧以一个1开始,以七个0结束(在两个数据帧之间至少有三个位的域)。分组中的第一个域包含目标地址,该域被称为仲裁域。目标标识符长度是11位。当数据帧被用来从标识符指定的设备请求数据时,后面的远程传输请求(RTR)位被设置为0。当RTR=1时,分组被用来向目标识别符写入数据。控制域提供一个标识符扩展和4位的数据长度,在它们之间有一个1。数据域的范围是从0到64字节,数据域的大小取决于控制域中给定的值。数据域后发送一个循环冗余校验(CRC),用于错误检测。应答域被用于发出一个是否帧被正确接收的标识信号:发送端把一个隐性位(1)放到应答域的ACK插槽中,如果接收端检测到了错误,那么它强制该值变为显性的0值。如果发送端在ACK插槽中发现了一个0在总线上,它就知道必须重发。ACK插槽后面跟着帧结束域,两者由单位分隔符隔开。图7‑13CAN数据帧格式

3.属性

CAN总线的控制使用CSMA/AMP(带有优先级仲裁的载波监听多路访问)技术。这种方法类似于I2C总线的仲裁方法。 网络节点同步传输,因此它们可以同时发送它们的标识符域。当一个节点在标识符域中监听到一个显性位而它正试图发送一个隐性位时,该节点停止发送。在仲裁域的末尾,只有一个发送器会被保留。标识符域起优先级标枳符的作用,全0的标识符具有最高优先级。

4.远程帧

远程帧通常用于从另外一个节点请求数据。请求方将RTR位置为0来指示一个远程帧,它同时也指示了一个0数据位。标识符域中指定的节点将对具有该请求值的数据帧做出响应。在远程帧中节点没有办法发送参数,因为不能使用标识符来标识设备,也不能提供一个参数来说明哪个设备的哪个数据值是所需要的。相反地,每一个可能的数据请求必须有自己的标识符。

5.出错处理

出错帧可以由总线上的任何一个检测到错误的节点产生。检测到错误时,一个节点用一个出错帧来中断当前的传输。它由一个错误标志组成,后跟8位隐性的错误分隔符域。错误分隔符域允许总线返回到静止状态以使数据帧传输可以重新开始。总线也支持超载帧,这是一个内部帧处于静止周期时的特殊错误帧。超载帧指示节点已经超载,将不能处理下一个消息。节点能够用在一行中达到两个超载帧的方式延迟下一帧的传送,以便有足够的时间从超载状态中恢复。CRC域也能用来测检报文的数据域的正确性。如果发送节点没有接收到数据帧的确认信号,它会重发数据帧直到数据被确认。这种动作对应于OSI模型中的数据链路层。

图7-14展示了一个典型CAN控制器的基本体系结构。控制器实现物理层和数据链路层功能。既然CAN是一种总线,它就不需要网络层的服务来建立端到端的连接。当仲裁丢失而必须重发报文和接收报文时,协议控制块决定何时发送报文。图7‑14CAN控制器体系结构7.3.3Ethernet

Ethernet(以太网)是广泛用于通用计算的局域网。由于它的普遍性及其低廉的接口价格,它已经作为一种网络出现在嵌入式运算中。当以PC作为平台使标准组件的使用成为可能,以及网络不需要满足严格的实时需求时,以太网特别有用。

如图7-15所示,以太网的物理组成非常简单。该网络是一条具有单信号路径的总线。以太网标准可以有几种不同的实现方法,比如双绞线和同轴电缆。图7‑15以太网组织结构与I2C和CAN总线不同,以太网上的节点不是同步的,它可以在任何时间发送数据。I2C和CAN依靠同步机制在一个位的发送时间内实现冲突的检测和取消,而以太网的节点不是同步的,所以如果两个节点同时发送数据,那么报文将会被破坏。以太网仲裁机制被称做带冲突检测的载波监听多路访问,即CSMA/CD,其算法如图7-16所示。图7‑16以太网CSMA/CD算法图7-17显示了以太网分组的基本格式。它提供了目的地址和源地址,同时还提供了要传送的有效数据。图7‑17以太网分组格式7.3.4GPRS

1.GPRS的特点

GPRS是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接。GPRS充分利用共享无线信道,采用IPOverPPP实现数据终端的高速、远程接入。作为现有GSM网络向第三代移动通信演变的过渡技术,GPRS在许多方面都具有显著的优势。

GPRS有下列特点:

(1)可充分利用GSM的现有资源,方便、快速、低建设成本地为用户数据终端实现远程接入网络。

(2)传输速率高。

(3)接入时间短。

(4)提供实时在线(alwaysonline)功能。

(5)按流量计费。

2.GPRS系统结构

目前,GSM已发展到了Phase2+ 阶段,这一阶段的核心问题就是高速移动数据通信。近年来,越来越多的GSM网络运营商引入移动数据业务,不仅使GSM网络实现了无线互联网功能,而且积累了无线多媒体业务运营经验,为向第三代移动通信网络的过渡作好了准备。

GSM移动数据业务主要分为电路型数据业务和分组型数据业务。GSM第一阶段提供的9.6kb/s以下数据业务及Phase2+ 阶段提出的HSCSD都属于电路型数据业务,Phase2+ 阶段提出的GPRS则属于分组型数据业务。后者相对于前者具有很显著的优越性。两者特点对比如表7-1所示。表7-1电路型数据业务与分组型数据业务的对比

GPRS网是在GSM电话网的基础上增加以下功能实体构成的:SGSN(服务GPRS支持节点)、GGSN(网关GPRS支持节点)、PTMSC(点对多点服务中心)。具体实现方法包括:共用GSM基站,但基站要进行软件更新;采用新的GPRS移动台;在GPRS中增加新的移动性管理程序;通过路由器实现GPRS骨干网互联;对GSM网络系统进行软件更新和增加新的MAP信令与GPRS信令等。GPRS骨干网的逻辑结构如图7-18所示。图7‑18GPRS骨干网的逻辑结构

GPRS网上增加了一些接口,主要包括:

(1) Gb口。SGSN通过Gb口与基站BSS相连,为移动台MS服务,通过逻辑控制协议(LLC),建立SGSN与MS之间的连接,提供移动性管理(位置跟踪)和安全管理功能。SGSN完成MS和SGSN之间的协议转换,即将骨干网使用的IP协议转换成SNDCP和LLC协议,并提供MS鉴权和登记功能。

(2) Gn口。SGSN通过Gn口和GGSN相连,通过GPRS隧道协议(GTP)建立SGSN和外部数据网(X.25或IP)之间的通道,实现MS和外部数据网的互联。

(3) Gs口。Gs口用于SGSN向MSC/VLR发送地址信息,并从MSC/VLR接收寻呼请求,实现分组型业务和非分组型业务的关联。

(4) Gr口。Gr口用于HLR保存GPRS用户数据和路由信息(IMSI、SGSN地址),每个IMSI还包含分组数据协议PDP信息,该信息包括PDP类型(X.25或IP)、PDP地址及其QoS等级以及路由信息。

(5) Gi口。GGSN通过Gi口实现GPRS网和外部数据网(PDP)的互联。

3.GPRS业务

GPRS网主要为移动数据用户提供突发性数据业务,能快速建立连接,无建链时延。GPRS特别适用于频繁传送小量数据和非频繁传送大量数据。GPRS除能提供PTP(点对点)和PTM(点对多点)数据业务外,还能支持补充业务和短信息业务。

GPRS网提供的承载业务包括:

(1)点对点面向无连接网络业务(PTP-CLNS)。

(2)点对点面向连接的数据业务(PTP-CONS)。

(3)点对多点数据业务(PTM)。

(4)其他业务。7.3.5蓝牙技术

蓝牙(Bluetooth)技术是一种近距离无线通信的开放性全球规范,它定位于现代通信网络末端的无线连接,其目的是提供一个低成本、高可靠性、支持较高质量的语音和数据传输的无线通信网络。

整个蓝牙协议的体系结构包括底层硬件模块、中间协议层和高端应用层,如图7-19所示。图7‑19蓝牙体系结构

1.蓝牙硬件模块

硬件模块中的射频部分通过2.4GHz无需授权的ISM频段,实现数据位流的过滤和传输,主要定义蓝牙收发器应满足的要求。基带层负责跳频和蓝牙数据及信息帧的传输。链路管理层负责连接的建立和拆除以及链路的安全和控制。蓝牙采用跳频技术来消除干扰和降低衰落,跳频速率为1600次/秒。目前,蓝牙在两种频段上定义了两种信道分配方案。一种是美国、欧洲和其他大多数国家的标准,频段为2.400~2.4835GHz,信道分配为f=2402+kMHz(k=0,…,78),共计79个跳频信道;由于法国等在此频段范围有限制,因此使用另一种跳频方案,频段为2.4465~2.4835GHz,信道分配为f = 2454 + kMHz(k=0,…,22),共计23个跳频信道。为减少带外辐射和干扰,系统在上/下频带边缘使用保护带。对于79信道系统,下保护带是2MHz,上保护带是3.5MHz。每个信道为1MHz带宽,支持的信道配置如表7-2所示。表7-2信道配置

RF定义了三种功率级别,即100mW、2.5mW和1mW。设备功率为1mW(0dBm)时,发射范围一般可达10m。在发送过程中蓝牙使用功率控制来限制发射功率。

蓝牙为支持电路交换和分组交换分别定义了两种链路类型,即同步面向连接(SCO)链路和异步面向无连接(ACL)链路。

蓝牙组网时最多可以由256个蓝牙单元设备连接起来组成微微网(Piconet),其中1个主节点和7个从节点处于工作状态,而其他节点则处于空闲模式。蓝牙的节能状态包括三种,依照节能效率以升序排列依次是呼吸(Sniff)、保持(Hold)和停等(Park)。在Sniff状态,从节点降低了从微微网收听消息的速率;在Hold状态,节点停止传送数据,一旦激活,数据传递立即重新开始;在Park状态,节点被赋予Park节点地址PMA,并以一定间隔监听主节点的消息。主节点的消息包括:询问该节点是否愿意成为活动节点,询问任何停等节点是否愿意成为活动节点,广播消息。

2.蓝牙软件模块

蓝牙底层硬件模块与上层软件模块之间的消息和数据传递必须通过蓝牙主机控制器接口(HostControllerInterface,HCI)的解释才能进行。HCI提供了一个调用下层BB、LM、状态和控制寄存器等硬件的统一命令接口。HCI以上的协议软件实体运行在主机上,以下的功能由蓝牙设备完成,二者之间通过传输层进行交互。软件模块中L2CAP属于数据链路层的一部分,负责向上层提供面向连接和无连接的数据服务,其功能包括协议的复用能力、分组的分割和重组、组提取。SDP为应用提供了一个发现可用协议和决定这些可用协议特性的方法。SDP强调蓝牙环境的特性,使用基于客户机/服务器机制定义根据蓝牙服务类型和属性发现服务的方法,还提供了服务浏览的方法。RFCOMM是射频通信协议,可以仿真串行电缆接口协议。通过RFCOMM,蓝牙可以在无线环境下实现对高层协议,如PPP、TCP/IP、WAP等的支持。RFCOMM还支持AT命令集,从而实现移动电话、传真机等与MODEM之间的无线连接。TCS是一个基于ITU-T建议Q.931、面向比特的协议,定义了蓝牙设备间建立语音和数据呼叫的控制信令,用于处理蓝牙TCS设备的移动性管理过程。

3.蓝牙应用模型

蓝牙的应用模式相当广泛。结合蓝牙SIG定义的几种基本应用模型,可以列出以下一些显著的应用模式:

·一机多用电话模式;

·头戴式耳机/听筒设备模式;

·互联网网桥模式;

·局域网接入模式;

·文件传输模式;

·同步运行模式;

·数字影像模式;

·智能汽车系统模式;

·家庭信息网络模式;

·流动办公与电子商务模式。概括起来,可以将蓝牙的应用模型划分为以下三种:

(1)替代线缆(CableReplacement)。

(2)因特网桥(InternetBridge)。

(3)临时组网(AdHocNetwork)。

4.蓝牙技术存在的问题

蓝牙技术存在的主要问题包括:

(1) 2.4GHzISM频段使用的电磁兼容和频率共用问题。

(2)互操作与兼容性问题。

(3)保密安全问题。

(4)与其他相关技术的竞争问题。

(5)价格、可靠性等综合吸引力问题。7.3.6Internet

IP是Internet上最基本的协议。它提供了无连接的、基于分组的通信。基于因特网的嵌入式系统已经在工业自动化中有了良好的应用。使用因特网的信息工具已快速成为嵌入式运算中IP的另一用途。

IP不是定义在特定的物理实现上,它是一种网际互联标准。因特网分组采取能够被其他网络(例如以太网)承载的形式。一般来说,一个因特网分组从源地址到目的地址会经过几种不同的网络。IP允许数据通过这些网络,无损失地从一端用户流动到另一端用户。IP和单个网络之间的关系如图7-20所示。图7‑20因特网通信中的协议利用

IP分组的基本格式如图7-21所示。头和数据有效负荷都具有可变的长度,最大长度是65535字节。图7‑21IP分组结构图7-22显示了IP和高级因特网服务之间的关系。使用IP作为基础,TCP被用来为批量文件传输提供文件传输协议(FTP),超文本传输协议(HTTP)用于万维网服务,简单邮件传输协议(SMTP)用于E-mail,Telnet用于虚拟终端。另外一个单独的用户数据报协议(UDP)被用作由简单网络管理协议(SNMP)提供的网络管理服务的基础。图7‑22因特网服务栈 7.4基于网络的设计示例

7.4.1远程温度检测系统

该系统是在C8051F020单片机上实现基于μC/OS-Ⅱ的远程多点温度检测的。它采用C/S模式,设计为简单的应用服务器,用户可以通过网络中任一PC机的浏览器界面完成对温度的实时检测。

1.硬件设计

系统的硬件结构如图7-23所示。图7‑23系统硬件结构框图

2.软件实现

1) TCP/IP协议实现

介质访问层主要由以太网控制器RTL8019AS来实现,其数据通信协议采用IEEE802.3标准,它只处理接收地址与本机物理地址相符或为广播地址的以太帧,并且只对ARP和IP数据报进行处理。

网络层实现IP、ARP和ICMP协议。IP数据报的首部保留20字节的基本控制信息,每个IP数据报包含一个分片,实现完整的ARP协议。对于ICMP协议,只实现ICMP中类型号为0,代码为0的Ping应答协议。传输层实现TCP协议。在系统中,TCP协议只用于支持HTTP协议。由于在连接时系统一直处于被动服务的状态,因此在设计中省去了SYN-SENT状态和CLOSED状态,让它一开始就处于LISTEN状态,以监听客户端的连接请求,避免了主动打开的操作,可更高效地服务于客户机。当该服务器发出数据报时,并不存储这个数据报,只是记录下这个数据报的状态信息。由于系统中数据传输量少,因此滑动窗口设置为一个固定值(1500字节)。

应用层实现HTTP协议。现场监测设备与用户的交互式数据交换通过HTTP协议来实现。HTTP在端口80上使用TCP的服务。

系统TCP/IP协议部分的程序流程如图7-24所示。图7‑24ICP/IP协议部分的程序流程图

2) μC/OS-Ⅱ的温度监测实时管理

首先,需要完成μC/OS-Ⅱ在C8051F020单片机上的移植。

由于每个嵌入式监测系统可以同时与多个PC机连接,向不同用户提供信息,因此在OS_CFG.H头文件中定义了一个包含各种连接信息的结构变量。当监测系统收到TCP报文时,检查该报文使用的连接状态信息是否与已存在的连接相符,如果不存在则建立新的连接。这种处理可以使嵌入式监测系统同时处理来自同一或不同PC机的连接。OS_CFG . H头文件如下:存储系统的使用方式是将C8051F020的XRAM作为输入/输出数据的内部缓冲区,将RTL8019AS内部的16 KBSRAM作为单片机的外部数据缓冲区,存储输入/输出以太帧队列。这样,C8051F020就可以采用查询方式读取以太帧,并有充足的时间处理数据。由于输入帧的大小不定,同时在ARP数据报发送或接收时,输出帧必须存在输出缓冲区中,因此输入/输出数据缓冲区在C8051F020的XRAM中使用动态分配。网页存储于单片机的FlashMemory中。当嵌入式系统向PC机发送网页时,先将网页从FlashMemory中取出放入XRAM,再根据用户请求进行整理后放入RTLS019AS的SRAM,最后发送到以太网上。作为网络服务器,C8051F020需要注意以下几点:

(1)服务器向一客户机发送ARP查询分组后,如果在0.5 s内未收到ARP响应分组,则重发ARP分组。

(2)如果TCP连接在0.5s内未被激活,则初始化断开连接。

(3)为了控制丢失数据报,TCP在规定时间(0.5s)内如果没有收到确认包,就重组这个包并发送,这样不需要占用存储区来存储包。当TCP收到客户机接收到信息包的确认包后,就断开连接。下面是基于μC/OS-Ⅱ的任务创建、优先级设置及延时时间设置,根据需要在系统中创建了5个任务:

任务1: OSTaskCreate(eth_arive,0,&mystack1[0],4);

//查询RTL8019AS,是否有以太帧到达

OSTimeDlyHMSM(0,0,0,500); //延时0.5s

任务2: OSTaskCreate(arp_retran,0,&mystack2[0],5);

//重发ARP分组

OSTimeDlyHMSM(0,0,1,0); //延时1s任务3: OSTaskCreate(tcp_inact,0,&mystack3[0],6);

//初始化断开连接

OSTimeDlyHMSM(0,0,1,500); //延时1.5s

任务4: OSTaskCreate(read_temp,0,&mystack3[0],7);

//读温度值

OSTimeDlyHMSM(0,0,2,0); //延时2s

任务5: OSTaskCreate(tcp_retran,0,&mystack3[0],8);

//TCP数据报重发

OSTimeDlyHMSM(0,0,2,500); //延时2.5s7.4.2基于VoIP和蓝牙的无线电话系统

整个系统设计由1台认证服务器、2台基站(PC1,PC2)、14台移动终端和多台有线终端组成。其中基站以蓝牙模块ROK101008为无线接口,可实现移动终端与基站的高速通信;移动终端以ARM为核心处理器。系统框图如图7-25所示。图7‑25系统总体框图

1.移动终端设计

移动终端以无线方式接入基站,可提供呼叫、来电显示、语音通话等多种服务,由蓝牙模块ROK101008提供高速数据传输。语音压缩编码算法采用连续可变斜率增量调制(CVSD)方案,通过ARM处理器实现。ARM处理器采用Philips公司的LPC2104芯片。ARM处理器实现的功能有语音编/解码、模拟接口、蓝牙HCI接口、键盘处理与液晶显示等。移动终端的硬件组成如图7-26所示。图7‑26移动终端硬件结构图硬件层设计主要包括串口和SPI总线接口设计,它们用于收/发语音数据、处理键盘中断和完成对A/D、D/A以及液晶显示的控制。任务层设计主要是建立了8个任务,按其优先级从高到低排列,依次为监控任务、键盘处理任务、模拟接口任务、蓝牙接口任务、编码任务、解码任务、液晶显示任务和空闲任务。其中,监视任务和空闲任务是为增强系统稳健性而设计的。各任务的状态有4种:就绪态、运行态、等待/挂起态以及中断态。在操作系统层,基于μC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论