《嵌入式通信软件设计.pptx》由会员分享,可在线阅读,更多相关《嵌入式通信软件设计.pptx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式通信软件设计嵌入式通信软件设计2 21.1 软件构件类型广义地划分,通信系统有两类软件构件:(1)协议软件(应用软件)(2)系统软件协议软件实现协议规范;而系统软件(含基础软件)通常包括一个实时操作系统和管理硬件的基础软件。第1页/共36页3 31.1.1 协议软件协议软件实现协议规范中详细规定的协议。规范由一些国际标准化组织制定,如ISO、IEEE、ITU-T等。协议实现通常基于状态事件机,也叫状态机。状态机是协议实现的核心,其形式通常为一状态事件表,记录一系列规则来指出在某一事件下应执行的动作。第2页/共36页4 41.1.2 基础软件和系统软件基础软件包括缓冲区管理、动态内存管理、
2、定时器管理、资源管理、模块间的通信,其他软件模块的监视、硬件模块的状态管理等。系统软件包括实时操作系统和设备驱动程序等第3页/共36页5 51.2 软件设计考虑硬件体系结构硬件体系结构RTOSRTOS是否选定是否选定需要什么样的性能需要什么样的性能需要实现那些协议需要实现那些协议实现时要使用哪些全局数据结构和表实现时要使用哪些全局数据结构和表需要什么样的缓冲区管理和定时器管需要什么样的缓冲区管理和定时器管理理告警、统计处理机制告警、统计处理机制系统测试方法系统测试方法第4页/共36页6 6第2章 通信软件结构模型2.1 通信软件结构模型2.2 系统块与功能块关系模型第5页/共36页7 7Fla
3、sh控制器SCC定时器网卡控制器硬件平台Flash驱动网卡驱动BSPVXWORKS内核(WIND)系统软件文件系统I/O系统VXWORKS函数库MUXTCP/IP协议栈扩展内存管理缓冲区管理定时器管理资源管理ICCP基础软件协议软件(应用软件)功能块1功能块3功能块N功能块2环境系统块2.1 通信系统软件结构模型第6页/共36页8 82.2 系统块与功能块关系模型系统块由多个功能块组成系统块由多个功能块组成 。在这些功能块。在这些功能块里,只有一块功能块与环境交互,它收集里,只有一块功能块与环境交互,它收集环境中发生的事件,把它们转换成可以处环境中发生的事件,把它们转换成可以处理的消息,发给相
4、应的进程。同时,它还理的消息,发给相应的进程。同时,它还接收各功能块中进程发往环境的消息,把接收各功能块中进程发往环境的消息,把它们转换成硬件可以执行的动作或操作系它们转换成硬件可以执行的动作或操作系统的系统调用。统的系统调用。功能块1功能块2功能块3功能块4功能块5功能块6通道系统环境系统通道通道通道通道通道通道通道通道第7页/共36页9 9第3章 通信系统协议软件实现3.1 状态机3.2 协议数据单元处理3.3 协议接口3.4 协议软件数据结构3.5 配置与控制3.6 系统启动3.7 小结第8页/共36页10103.1 状态机协议是通信系统功能的核心,而协议实现的核心是状态机。协议有些是有
5、状态的,有些是无状态的。如IP转发是无状态的,其转发动作的执行不依赖以前的行为或数据包。而7号信令系统中的TUP协议是有状态的,它呼叫流程是和以前的行为或数据包密切相关的。第9页/共36页1111有状态的协议使用称为状态机(FSM)的结构在状态S2出现事件E4(关机)动作:给对方发送断开消息,终止定时器下一状态:断开状态状态S1断开状态在状态S1出现事件E1(初始化)动作:给对方发送启动消息,启动定时器下一状态:连接状态在状态S2出现事件E3(定时器时间到),动作:处理定时器下一状态:连接状态状态S2连接状态在状态S2出现事件E2(协议消息)动作:处理协议消息下一状态:连接状态第10页/共36
6、页12123.2 协议数据单元处理PDUPDU预处理预处理 主要包括包文法检查及校验和验证等工作。主要包括包文法检查及校验和验证等工作。给状态机的事件给状态机的事件预处理完成确定包的类型,并将适当的事件传给状预处理完成确定包的类型,并将适当的事件传给状态机,状态机完成数据包的解析,将协议数据转换态机,状态机完成数据包的解析,将协议数据转换为编程数据,状态机根据消息类型及消息携带的具为编程数据,状态机根据消息类型及消息携带的具体参数执行下一步动作。体参数执行下一步动作。PDUPDU传输传输 状态机完成相应动作后将产生的结果以消息的形式,状态机完成相应动作后将产生的结果以消息的形式,结合具体所需参
7、数,利用结合具体所需参数,利用PDUPDU组包功能,将编程数组包功能,将编程数据转化为协议数据,发送到线路上,传送给对方。据转化为协议数据,发送到线路上,传送给对方。因此,概括地讲,协议数据单元处理就是因此,概括地讲,协议数据单元处理就是PDUPDU的校验、组包及解包过程,该步骤直接的校验、组包及解包过程,该步骤直接影响状态机的执行。影响状态机的执行。第11页/共36页13133.3 3.3 协议接口协议接口协议任务并非孤立存在或执行,需协议任务并非孤立存在或执行,需要和系统环境中的其他成分接口和要和系统环境中的其他成分接口和交互包括:交互包括:实时操作系统存储管理缓冲区管理时间管理事件管理进
8、程间通信驱动程序接口配置与控制第12页/共36页1414 3.4 协议软件数据结构 3.4.1 3.4.1 表表表主要有四类:表主要有四类:(1 1)配置)配置-用于设置操作参数和边界的读用于设置操作参数和边界的读/写或只读。例如,口令就是配置参数。写或只读。例如,口令就是配置参数。(2 2)控制)控制-用于改变通信软件模块的读用于改变通信软件模块的读/写信息。例如,开启或关断协议,主备用写信息。例如,开启或关断协议,主备用切换标志设置等就是控制。切换标志设置等就是控制。(3 3)状态)状态-详细反映当前操作状态的只读详细反映当前操作状态的只读信息。例如,信息。例如,HDLCHDLC链路的运行
9、状态就是状链路的运行状态就是状态变量。态变量。(4 4)统计)统计-模块记数或监视到的只读信息。模块记数或监视到的只读信息。例如,对一个对模块接收或发送的报文数例如,对一个对模块接收或发送的报文数记数的变量就是统计变量。记数的变量就是统计变量。第13页/共36页15153.4.2 3.4.2 其它的数据结构其它的数据结构进程控制块进程控制块 记录协议模块中各进程状态,参数等信息的数据结构。记录协议模块中各进程状态,参数等信息的数据结构。接口控制块接口控制块 记录模块或进程间通信端口状态及信息的数据结构。记录模块或进程间通信端口状态及信息的数据结构。第14页/共36页16163.4.3 3.4.
10、3 实现实现 在协议软件中使用的数据结构表、在协议软件中使用的数据结构表、进程控制块、接口控制块,通常使用进程控制块、接口控制块,通常使用数组、链表、树结构等方式实现。数组、链表、树结构等方式实现。为了能够快速、有效地访问数据为了能够快速、有效地访问数据结构,主要根据不同对象设计不同的结构,主要根据不同对象设计不同的HASHHASH算法直接定位的方式实现。算法直接定位的方式实现。第15页/共36页17173.5 配置与控制协议的配置与控制是指协议的管理协议的配置与控制是指协议的管理开启和关断协议开启和关断协议开启和关断特定端口的协议开启和关断特定端口的协议特定接口的编址特定接口的编址设定最大帧
11、尺寸设定最大帧尺寸协议消息超时管理协议消息超时管理对等实体的超时处理对等实体的超时处理鉴别安全信息鉴别安全信息流量参数管理流量参数管理封装信息封装信息第16页/共36页18183.6 系统启动(1 1)对各种表的大小参数进行初始化)对各种表的大小参数进行初始化(2 2)为动态数据结构和状态表分配内存)为动态数据结构和状态表分配内存(3 3)状态表变量初始化)状态表变量初始化(4 4)缓冲区和定时器接口初始化)缓冲区和定时器接口初始化(5 5)从本地源读入配置,并对配置初始化)从本地源读入配置,并对配置初始化(6 6)高层和低层接口初始化,包括向高层和)高层和低层接口初始化,包括向高层和/或低层
12、注册或低层注册(7 7)需要时创建和启动其它的协议任务)需要时创建和启动其它的协议任务(8 8)在无限循环中等待)在无限循环中等待第17页/共36页1919第4章 多板通信软件的设计5.1 板间通信协议及实现5.2 多板系统中的故障与容错第18页/共36页2020通信系统很复通信系统很复杂,通常在一杂,通常在一个机壳上有多个机壳上有多块板,甚至有块板,甚至有多个机壳多个机壳本章讨论通信本章讨论通信中常用的多板中常用的多板设计中软件结设计中软件结构的变化。构的变化。第19页/共36页21214.1 板间通信协议及实现板间通信协议(ICCP或ICP)(1)解决各主控板之间的通信问题。(2)解决主控
13、板和硬件插板的通信问题。目前使用的通信方式:TCP、UDP、HDLC等。第20页/共36页2222ICCP实现对底层通信方式进行封装,提供两个统一的接口,分别对应基本对底层通信方式进行封装,提供两个统一的接口,分别对应基本传输服务(传输服务(A A类服务)和带差错控制的服务(类服务)和带差错控制的服务(B B类服务)。类服务)。A A类服务。通信的一方将报文发送给对方,不等对方证实。对方收类服务。通信的一方将报文发送给对方,不等对方证实。对方收到报文后直接交给用户。不回证实。这类服务不提供差错控制。到报文后直接交给用户。不回证实。这类服务不提供差错控制。主要适合两种场合:协议用户本身自己提供差
14、错控制;主要适合两种场合:协议用户本身自己提供差错控制;ICCPICCP底层底层已提供差错控制,如已提供差错控制,如TCPTCP。第21页/共36页2323B类服务。该服务与MTP相似,每个报文都带一个前向序号字节和一个后向序号字节。所谓前向序号是指发送方给当前发送报文的编号,所谓后向序号是本方以正确接收的报文序号。通过对这些序号的判断,实现对丢失报文的重发,从而达到差错控制的目的。B类服务主要用于直接控制HDLC芯片进行通信,或在局域网上使用UDP协议。第22页/共36页2424 4.2 多板系统中的故障与容错 多板系统和单板系统都会受到硬件故障的影响。但多板系统能多板系统和单板系统都会受到
15、硬件故障的影响。但多板系统能够通过切换到另一块板对故障进行处理。这就是多板系统的容错。够通过切换到另一块板对故障进行处理。这就是多板系统的容错。目前,电信级设备普遍要求具有容错功能。目前,电信级设备普遍要求具有容错功能。单控制板单控制板+多线板结构是通信应用中经常使用的多板系统实现。多线板结构是通信应用中经常使用的多板系统实现。本节以此为基础讨论容错问题。本节以此为基础讨论容错问题。第23页/共36页25254.2.1 控制卡与线卡冗余选择方案对于控制卡和线卡的冗余,有两种选择方案:(1)每卡都有一冗余卡(1:1冗余);(2)N个卡有一冗余卡(1:N冗余)。目前通用的方案是主控制卡采用1:1冗
16、余,而线卡不采用冗余备份。第24页/共36页26264.2.2 冗余卡待机方式选择温待机 待机卡在冗余配置中初始化,可向系统操作人员请求下载配置并继续运行。温待机需要操作人员的干预。热待机 热待机操作是在主卡还正常工作时就从它那里获得配置信息。期间不需要操作人员干涉。第25页/共36页27274.2.3 热待机温待机操作不够灵活,因为必须为冗余卡提供新的配置,这会引起系统运行的中断,直到冗余卡处于完全运行状态。因此。目前通信设备容错控制主要为热待机方式。第26页/共36页2828热待机操作需要主卡和冗余卡之间交互三类消息:(1)当冗余卡起来时,主卡发送的初始化或批更新消息提供了当前配置的完整快
17、照。(2)主卡周期性地或按需要向冗余卡发送检查点消息,通知配置的改变。(3)在无检查点消息时,主卡与冗余卡之间发送心搏消息和响应消息。第27页/共36页29294.2.4 冗余功能软件设计数据同步过程设计数据同步过程设计 主主/备用主控机数据的同步分两个阶段:备用主控机数据的同步分两个阶段:第一阶段,在备用机刚刚加载成功时,备用机和主用机的数据是有差别第一阶段,在备用机刚刚加载成功时,备用机和主用机的数据是有差别的,需要备用机一次性地从主用机索取各个的,需要备用机一次性地从主用机索取各个FSMFSM的稳态以及掌握的资源等信的稳态以及掌握的资源等信息;息;第二阶段,备用机在位之后(可以认为备用机
18、和主用机的数据是一致的)第二阶段,备用机在位之后(可以认为备用机和主用机的数据是一致的),即主,即主/备用主控机均在工作时,主用机要把备用主控机均在工作时,主用机要把FSMFSM的稳态和资源的变化通知的稳态和资源的变化通知备用机。对这两个阶段,备用机都要实施相应的备用机。对这两个阶段,备用机都要实施相应的FSMFSM状态迁移、强占资源等,状态迁移、强占资源等,使备用机进入与主用机同步的运行状态。使备用机进入与主用机同步的运行状态。第28页/共36页3030主备用切换设计主备用切换设计(1 1)命令切换和定时切换)命令切换和定时切换所谓命令切换,指的是通过所谓命令切换,指的是通过MMLMML命令
19、命令发送指令给主处理机,要求进行主备发送指令给主处理机,要求进行主备用处理机的倒换,原来的主用处理机用处理机的倒换,原来的主用处理机由主用运行状态进入备用运行状态,由主用运行状态进入备用运行状态,同时原来的备用处理机由备用运行状同时原来的备用处理机由备用运行状态进入主用运行状态。态进入主用运行状态。所谓定时切换,指的是所谓定时切换,指的是MMLMML命令发送命令发送指令给主处理机,要求在指定的时间指令给主处理机,要求在指定的时间进行主备用处理机的倒换。进行主备用处理机的倒换。第29页/共36页3131(2)故障切换所谓故障切换,指的是主用处理机在运行时发生软件或硬件的故障,强制进行的主备用处理
20、机切换,原来的备用处理机进入主用运行状态,而对原来的主用处理机要进行复原和重新加载。对于发生故障切换时,运营部门一般要求不能发生通话中断,计费丢失,但不要求呼叫建立阶段的用户呼叫成功。第30页/共36页3232第5章 通信系统管理软件SNMP管理公共管理信息协议(CMIP)公共对象请求代理结构(CORBA)事务语言1(TL1)命令行接口(CLI、MML)第31页/共36页3333第6章 通信软件开发流程产品需求文档可行性分析系统总体方案系统软件概要设计系统软件详细设计软件代码编写单元调试系统功能调试系统性能测试第32页/共36页3434精品课件精品课件!第33页/共36页3535精品课件精品课件!第34页/共36页3636谢 谢!第35页/共36页3737感谢您的观看。感谢您的观看。第36页/共36页