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