论文部分内容阅读
嵌入式系统是一种以微控制器为核心的专用计算机系统,已经被广泛应用于工业控制、电子产品、通信等领域。随着Internet和无线通信技术的发展,以往单一功能的嵌入式系统越来越有接入局域网、互连网、无线通信网等网络的需求,以实现远程监控、自动控制的功能。这就要求在嵌入式系统中实现如TCP/IP等各种网络协议。
由于嵌入式系统有限的软硬件资源限制,在实现TCP/IP等庞大的协议族时往往需要精心的裁剪和简化,以满足终端用户的基本需求。可是,由于用户对象的需求千差万别,设计嵌入式的网络协议就成为一项非常复杂繁琐的工作。
鉴此,我们引入状态机的概念:状态机是描述一个对象或一个交互其生命期内响应事件所经历的状态序列的行为的集合,是用来实现网络协议的主要技术。UML状态机在总结以往各种状态机理论的基础上,吸收了面向对象技术的优点,支持嵌套的层次状态以及改进状态机的状态转换,使得UML状态机有很强的表达能力。UML状态适于用来实现各种复杂的网络协议,它是状态机理论的最新发展,代表了状态机实现技术的最高水平。
本文首先对现有的UML状态机的实现技术进行了研究,并提出了本文的创新点,即根据状态树构造UML状态机的拓扑码,进而利用拓扑码实现一个新的易于实现且效率高的UML状态机状态转换算法。以该算法为基础,从本文的背景项目需求和实际应用出发针对目前广泛应用的8位、16位低端微处理器,完成了一个UML状态机通用实现框架――UF框架。该框架用C语言实现,效率高,不需要嵌入式操作系统的支持,可移植性强;框架提供了实现UML状态机的状态、事件、定时器、测试等各种接口,利用这些接口使状态机的实现易于编码,便于测试。本文同时给出了UF框架的设计模式,使得人们可以很容易地使用UF框架来实现各种嵌入式网络协议。
在本文的背景项目中,笔者利用UF框架开发一个PPP协议,它给出了UF框架使用的一个范例和验证。PPP协议作为GPRS模块中PPP协议的一个客户端,为嵌入式终端和GPRS模块之间的通信提供了数据链路层的链路建立、维护以及承载上层的IP协议等功能。开发环境是Microchip公司的MPLAB-ICD集成开发系统,UF的实现以及其他代码采用C语言编写。
经过测试,用UF实现的PPP协议完全可以为TCP/IP提供稳定可靠的承载。从这个项目中可以看出UF框架具有以下特点:UF易于将网络协议的UML状态图转化为该网络协议的实现代码;能清晰的反映状态机各个状态之间的嵌套层次关系;与以往的框架相比,UF框架所采用新的状态转换算法不仅使得状态转换的效率得到较大提高,而且易于编码实现。
实验测试结果表明:本文所描述的UF软件框架容易构建,便于测试,可用于实现各种嵌入式网络协议。