收藏 分享(赏)

手机操作系统 第十一章 网络与通信(北京邮电大学).ppt

上传人:微传9988 文档编号:2499233 上传时间:2018-09-19 格式:PPT 页数:44 大小:343KB
下载 相关 举报
手机操作系统 第十一章 网络与通信(北京邮电大学).ppt_第1页
第1页 / 共44页
手机操作系统 第十一章 网络与通信(北京邮电大学).ppt_第2页
第2页 / 共44页
手机操作系统 第十一章 网络与通信(北京邮电大学).ppt_第3页
第3页 / 共44页
手机操作系统 第十一章 网络与通信(北京邮电大学).ppt_第4页
第4页 / 共44页
手机操作系统 第十一章 网络与通信(北京邮电大学).ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、网络与交换国家重点实验室 宽带网研究中心,第十一章 网络与通信,邹仕洪,博士 网络与交换国家重点实验室 宽带网研究中心 http:/ 串口通信 套接字通信 消息 电话,网络与交换国家重点实验室宽带网研究中心,GPRS(General Packet Radio Service),网络与交换国家重点实验室宽带网研究中心,Symbian OS通信体系结构,四个通信服务器 串口、套接字、消息、etel(电话) 为通信应用提供统一的API 任意数量的插件模块 利用多态机制 提供一个协议或者多个协议的具体实现服务器将请求转发给插件模块 增强了扩展性 在CommDB中保存通用(与具体协议无关)的设置 通过

2、应用程序或者软件来访问 具体协议相关的设置保存在独立的数据库或者对象中 IAS:信息访问服务,为IrDA服务保存设置的数据库 SDP:服务发现协议数据库,为BT服务保持设置的数据库 SMS,网络与交换国家重点实验室宽带网研究中心,IAP,Internet Access Point(因特网接入点) 手机中可能有多个接入点,存放在IAP表中,是CommDB中的一个表,网络与交换国家重点实验室宽带网研究中心,PDP Context与Internet,Packet Data Protocol PDP Context包括PDP类型(IPV4,V6)PDP地址,接入点QoS等等,网络与交换国家重点实验室宽

3、带网研究中心,层次化的体系结构,设备驱动(LDD,PDD) C32系统模块CSY:实现了对串口的访问 电话系统模块TSY:访问modem和电话系统 协议模块PRT:提供套接字访问和协议栈 消息类型模块MTM:提供对特定消息服务的访问,网络与交换国家重点实验室宽带网研究中心,与通信有关的插件模块,CSY:C32 SYstem modules 提供一个软件实现的串口 使能物理端口的共享 为上层协议提供服务 DATAPORT.CSY, IRCOMM.CSY,ECUART.CSY,BTCOMM.CSY PRT:PRoTocol modules 为套接字服务器服务,用来实现具体的协议 套接字类的协议:唯

4、一的地址和端口 可能是一个协议栈所包含的协议在.esk文件中实现 BT.PRT, TCPIP.PRT, IRDA.PRT, PLP.PRT, WAPPROT.PRT, SMS.PRT,网络与交换国家重点实验室宽带网研究中心,与通信有关的插件模块(续),TSY:Telephony SYstem modules 核心API:标准的电话函数,例如建立和中止呼叫,基本的GSM 扩展API:高级的GSM功能,GPRS API, 访问电话薄和SMSs 实现了symbian和特定厂家相关的信令栈之间的信令交互 HAYES.TSY, PHONETSY.TSY, GSMBSC.TSY, GPRSTSY.TSY,

5、 CDMA.TSY, MM.TSY, SIM.TSY MTM:Message Type Modules UI MTM UI data MTM Client side MTM Server side MTM BTSMTM.DLL, MMSS.DLL, MMSCLIENTMTM.DLL,网络与交换国家重点实验室宽带网研究中心,基本概念:串行和并行,串行通信 一个信道,一次传输一个bit USB,通用串行总线 并行通信 多个信道,一次可以传输多个bit,网络与交换国家重点实验室宽带网研究中心,基本概念:同步和异步,同步通信 时钟严格同步,彼此知道对方在发送什么(事先约定好) 开销小 硬件复杂 异步通

6、信 不要求时钟同步 需要在比特流中插入特殊的“开始”和“结束”比特,以表示一个字符的开始和结束 也称启停(start-stop)传输 开销大,网络与交换国家重点实验室宽带网研究中心,串口通信的特征,RS-232标准,9-pin D连接器 由UART(Universal Asynchronous Receiver Transmitter) 芯片控制 最高115,000bps 点到点,同步或异步 一次只发送一个bit 同步方式更快,但需要时钟同步 异步方式更容易,只需要保持波特率一致 支持红外,通常是通过套接字服务器来使用 在异步方式中,由特殊的比特作为数据开始和结束的标记 错误通常能由奇偶校验位

7、检查出来 支持一些握手选项(XON,XOFF,CTS,RTS),网络与交换国家重点实验室宽带网研究中心,串口通信的通信模式,初始化 加载设备驱动器(EUART1.pdd, ECOMM.ldd) 启动服务器,如果服务器没有起来的话(StartC32) 加载CSY模块(ECUART) 打开 打开设备(端口共享的模式,使用端口的模式DTE/CTE) 配置 波特率 是否使用奇偶校验位 握手的选项 数据传输 关闭 释放资源,网络与交换国家重点实验室宽带网研究中心,串口服务器 的客户端API,RCommServ-RSessionBase 初始化 必要的时候StartC32() 启动服务器 connect(

8、)创建一个到服务器的session LoadCommModule()加载需要的CSY模块 NumPorts()返回加载的CSY模块数量 GetPortInfo()提供CSY支持的端口的细节信息 RComm-RSubSessionBase 打开:Open()打开端口(创建子会话) 数据传输:Read(),Write() 配置:Config() 关闭:Close(),网络与交换国家重点实验室宽带网研究中心,例子,#define PDD_NAME _L(“EUART1“) #define LDD_NAME _L(“ECOMM“) User:LoadPhysicalDevice (PDD_NAME);

9、 / step 1 User:LoadLogicalDevice (LDD_NAME); / step 2 StartC32 (); / step 3 RCommServ server; server.Connect (); / step 4 server.LoadCommModule (_L (“ECUART“); / step 5 RComm commPort; commPort.Open (server, _L (“COMM:0“), ECommExclusive); / step 6,网络与交换国家重点实验室宽带网研究中心,什么是套接字(socket),Socket:an endpoi

10、nt for communication 可以看成在两个程序进行通讯连接中的一个端点,最早用来访问TCP/IP协议 由一个地址(标识主机)和端口号(标识服务)来唯一标识,与具体协议有关 由于套接字服务器的存在,套接字的使用与具体的传输协议无关 套接字协议通常实现为多态的DLL协议模块,以.prt为扩展名,网络与交换国家重点实验室宽带网研究中心,套接字服务器ESOCK,BSD-like套接字API ESOCK客户端API在文件es_sock.h中定义 RSocketServ处理会话 RSocket处理子会话,提供到具体的套接字协议栈的接口 与RCommServ和RComm类似 其它相关的类 TS

11、ockAddr定义了一个32字节的套接字地址,具体形式与协议相关 RHostResolver提供主机名字的查找功能 RServiceResolver提供查找服务的功能IrDA和BT定义了它们各自的服务查找接口 RNetDatabase用来查询网络数据库,网络与交换国家重点实验室宽带网研究中心,套接字服务器的客户端API,RSocketServRSessionBase:用来创建到服务器的会话 Connect() NumProtocols() GetProtocol() FindProtocol() StartProtocol()异步地加载协议 RSocketRSubSessionBase Ope

12、n() Bind():设置本地地址 Listen():在某个端口监听 Accept():接受一个客户端的连接请求,网络与交换国家重点实验室宽带网研究中心,套接字服务器中可用的协议,TCP/IP KProtocolInetUdp KProtocolInetTcp KProtocolInetIp KProtocolInetIcmp IrDA KIrmux KIrTinyTP Bluetooth KBTLinkManager KL2CAP KRFCOMM SMS KSMSDatagramProtocol,网络与交换国家重点实验室宽带网研究中心,套接字协议TCP/IP,传输控制协议/因特网协议,网络与

13、交换国家重点实验室宽带网研究中心,数据封装的概念,网络与交换国家重点实验室宽带网研究中心,TCP/IP套接字代码示例,RSocketServ ss; RSocket sock; / Connect to the socket server User:LeaveIfError(ss.Connect(); /Open a TCP socket User:LeaveIfError(sock.Open(ss, KAfInet, KSockStream, KProtocolInetTcp); / Request the Socket to connect to the destination sock.

14、Connect(destAddr, status);sock.Send(),网络与交换国家重点实验室宽带网研究中心,套接字协议IrDA,一个协议栈(irda.prt),屏蔽了红外通信的物理特性 比RS-232更复杂成帧过程 7比特的开始和结束序列 能够检测帧中多比特错误 提供的服务 IrCOMM:模拟串并口,只能以9.6kbps发送 IrOBEX:数据对象交换 建立一个连接并将任意一个对象以比特流的形式发送 IrLAN 使能对LAN的访问,通过一个接入点 允许两个设备直连,网络与交换国家重点实验室宽带网研究中心,套接字协议Bluetooth,频段ISM 2.4Ghz 扩频 功率从1100mW

15、快速应答 前向纠错 速率大约1Mbps 范围:10m左右,网络与交换国家重点实验室宽带网研究中心,Bluetooth代码示例,RSocketServ socketServ; socketServ.Connect(); / Connect an L2CAP socket RSocket socket; TRequestStatus status; User:LeaveIfError(socket.Open(socketServ,KBTAddrFamily,KSockSeqPacket,KL2CAP); User:LeaveIfError(socket.Connect(addr,status);

16、User:WaitForRequest(status); if (status = KErrNone) / Write some simple data _LIT8(KDataToWrite,“01234“); socket.Write(KDataToWrite,status); User:WaitForRequest(status); / Close socket socket.Close();,网络与交换国家重点实验室宽带网研究中心,套接字协议SMS,CSmsBuffer *smsBuffer=CSmsBuffer:NewL(); iMsg=CSmsMessage:NewL(CSmsPdu

17、:ESmsSubmit,smsBuffer); TSmsUserDataSettings sets; sets.SetAlphabet(TSmsDataCodingScheme:ESmsAlphabet7Bit); sets.SetTextCompressed(EFalse); iMsg-SetUserDataSettingsL(sets); iMsg-SetToFromAddressL(iReceiver); iMsg-SmsPDU().SetServiceCenterAddressL(KSCNumber); User:LeaveIfError(iSocket.Open(iSession,

18、KSMSAddrFamily, KSockDatagram, KSMSDatagramProtocol); RSmsSocketWriteStream stream(iSocket); TInt ret; TRAP(ret, stream*(iMsg); User:LeaveIfError(ret); TRAP(ret,Stream.CommitL(); User:LeaveIfError(ret); iSocket.Ioctl(KIoctlSendSmsMessage, status,网络与交换国家重点实验室宽带网研究中心,套接字的通信模式(步骤),与角色高度相关 客户端,还是服务器 服务器

19、通常简单,只需等待客户端来连接 服务器必须将服务的属性登记到数据库中 客户端 发现服务器(如果事先不知道它是否存在) 发现服务器提供的服务 连接到服务器 发送或接收数据 关闭连接 注:第1、2步可以省略,如果事先知道服务器的地址和端口的话,网络与交换国家重点实验室宽带网研究中心,不同协议的socket使用方式,IrDA 需指定地址和端口号(通常为任意值) TCP/IP 指定地址、端口号、协议和socket类型 Bluetooth 指定地址、端口(信道)号、服务设置 服务具有唯一的标识 服务的属性是三元组的集合,网络与交换国家重点实验室宽带网研究中心,主机解析RHostResolver,如果使用

20、的是TCP/IP协议,则为域名解析,充当到DNS的一个接口 该接口提供了如下功能: 将数字化的网络地址解析为名字描述 将名字描述解析为数字地址 获取、设置本地设备的名字 从RSubSessionBase继承而来,因此,RSocketServ必须首先连接 Open TInt Open(RSocketServ,网络与交换国家重点实验室宽带网研究中心,发送消息(messaging),消息 自我包含的数据对象 传真(FAX), 短信(SMS),彩信(MMS),电子邮件(email) 一般特征 发送者 接收者 时间戳 内容 只对使用消息的程序有意义 附件:对特定的程序有意义,网络与交换国家重点实验室宽带

21、网研究中心,MTMs(Message Type Modules ),每个MTM实现为4个多态DLL 每个DLL 都从一个抽象类继承而来 用户界面MTM(CBaseMtmUi) 提供相应的编辑和查看功能 客户端MTM(CBaseMtm) 解读消息的内容,并提供一个通用功能的最小集,以给用户提供一个统一的与具体的消息类型无关的界面。例如:回复功能reply。 UI数据MTM(CBaseMtmUiData) 通用消息文件夹:由UI data MTM提供,内存高效 无须加载UI 和客户端MTM就可以提供给应用引擎足够的信息,以致能够正确标识消息的类型并呈现给用户。 服务器端MTM(CBaseServe

22、rMtm) 关心消息的格式化和传输。与消息紧密相关的具体协议在该MTM中实现,网络与交换国家重点实验室宽带网研究中心,网络与交换国家重点实验室宽带网研究中心,各种消息类型,email SMTP: 邮件发送协议 POP3: 邮件接收协议 IMAP4: 邮件接收协议 SMS短信 160字节(最多70unicode字符) 不像email(文本形式),在查看之前需要解码 使用push模式(email使用pull模式) MMS彩信 消息的结构类似于MIME的email消息 头部 MIME主体内容 第一部分为SMIL文件 经由GPRS或3G传输,网络与交换国家重点实验室宽带网研究中心,与访问消息相关的类,

23、CMsvSession 所有有关消息发送的程序的基础 存在ITC(线程间通信)开销 用来访问相应的MTM 通常一个CMsvSession足矣 CMsvEntry:访问、创建消息 create,move,delete,access TMsvEntry:封装了状态和通用的消息头部信息CMsvStore:封装了一个直接文件存储以保存消息文本及协议相关数据,网络与交换国家重点实验室宽带网研究中心,读取消息代码示例,TMsvId anId=anIdFromSomeWhere; CMsvSession * session=CMsvSession:OpenSyncL(*this); CleanupStack

24、:PushL(session); CMsvEntry *entry=session-GetEntry(anId); CleanupStack:PushL(entry); DoSomething(entry-Entry(); CleanupStack:PopAndDestroy();,网络与交换国家重点实验室宽带网研究中心,电话服务器(ETel),ETel:EPOC Telephony 提供到电话硬件的接口 复杂功能的基础 fax,DATA,sms,voice 独立于运营商 应用程序使用标准的API 控制和共享对电话服务的访问,网络与交换国家重点实验室宽带网研究中心,体系结构,网络与交换国家重点

25、实验室宽带网研究中心,网络与交换国家重点实验室宽带网研究中心,ETel 组件,客户端API 提供给phone 应用程序、发送消息等等使用 为所有程序提供标准的接口 ETel服务器 不同电话设备的抽象 RTelServer会话 LoadPhoneModule()加载TSY模块 EnumeratePhones() GetPhoneInfo() 在客户端与TSY模块之间转发请求,网络与交换国家重点实验室宽带网研究中心,TSY模块,与电话密切相关 与电话硬件打交道,用来访问底层信号处理栈 由ETel动态加载 所有的TSY继承了以下抽象类 CPhoneFactoryBase CPhoneBase,CLi

26、neBase,CCallBase,网络与交换国家重点实验室宽带网研究中心,核心的ETel客户端API类,RTelServer 用来访问ETel服务器的会话 RPhone 通常一个EPOC设备只有一个电话 RLine 每个电话支持一到多个线路 RCall 每条线路支持一个或多个呼叫,网络与交换国家重点实验室宽带网研究中心,GSM API(etelbgsm.h,etelagsm.h),核心(RPhone) 基本GSM RBasicGsmPhone RGsmPhoneBook RSmsMessaging RSmsStorage 高级GSM RAdvGsmPhone,网络与交换国家重点实验室宽带网研究

27、中心,拨号代码示例,RTelServer server; CleanupClosePushL( server ); User:LeaveIfError( server.Connect() ); User:LeaveIfError( server.LoadPhoneModule( KTsyName ) ); TInt numberPhones; User:LeaveIfError( server.EnumeratePhones( numberPhones ) ); if ( numberPhones 1 ) User:Leave( KErrNotFound ); RTelServer:TPhon

28、eInfo info; User:LeaveIfError( server.GetPhoneInfo( 0, info ) ); RPhone phone; CleanupClosePushL( phone ); User:LeaveIfError( phone.Open( server, info.iName ) ); RPhone:TLineInfo lineInfo; User:LeaveIfError( phone.GetLineInfo( 0, lineInfo ) );,网络与交换国家重点实验室宽带网研究中心,拨号代码示例(续),RLine line;CleanupClosePus

29、hL( line );User:LeaveIfError( line.Open( phone, lineInfo.iName ) );TBuf newCallName;RCall call;CleanupClosePushL( call );User:LeaveIfError( call.OpenNewCall( line, newCallName ) ); User:LeaveIfError( call.Dial( aPhoneNumber ) );/NOTE: This does not hang up the callCleanupStack:PopAndDestroy( 3 );/phone, line, call/Unload the phone device driverUser:LeaveIfError( server.UnloadPhoneModule( KTsyName ) );CleanupStack:PopAndDestroy( ,网络与交换国家重点实验室宽带网研究中心,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医学治疗 > 基础医学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报