分析状态机在嵌入式前后台软件系统中的应用分析状态机在嵌入式前后台软件系统中的应用
状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应
一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子
集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态, 状态机停
止。 本文描述了利用状态机来提高嵌入式前后台系统任务处理能力的实现方法。 1 移动2G光纤直放站近
端机监控单元 对于移动2G光纤直放站近端机监控单元,只介绍与本文有关部分的原理框图,如图1所示。
图中GSM Modem通过AT91SAM7S256的串口1相连。由于GSM Modem的特性和短消
状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件
而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一
个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态, 状态机停止。 本文描述了利用状态机来提高嵌
入式前后台系统任务处理能力的实现方法。
1 移动移动2G光纤直放站近端机监控单元光纤直放站近端机监控单元
对于移动2G光纤直放站近端机监控单元,只介绍与本文有关部分的原理框图,如图1所示。图中GSM Modem通过
AT91SAM7S256的串口1相连。由于GSM Modem的特性和短消息的收发,其通信收发处理相对比较繁琐和复杂。
图1 直放站近端机监控单元
在移动2G光纤直放站近端机中,通过串口1发送到GSM Modem的数据不仅仅是短消息,还包括下行功率查询、信源信息
查询、读取/删除短消息等。因此,针对移动2G光纤直放站近端机监控单元的要求和软件系统为前后台系统的特点,移动2G光
纤直放站近端机监控单元的监控软件设计采用了状态机和队列的方式。
2 软件的设计思路软件的设计思路
2.1 短消息的接收短消息的接收
如图2所示,GSM Modem主动上报的信息将存储到串口1接收缓冲区中,软件从串口1接收缓冲区的数据中解析出短信序
号(Modem收到的短消息在Modem中的存储序号)存储到短信序号队列(短信序号缓冲区1~n)中,然后软件通过短信序号
队列的状态来决定是否需要向Modem发送读取短信或者删除短信命令。
当软件发送读短消息命令后,GSM Modem将对应序号的短信息送出,数据将存储到串口1接收缓冲区中,软件再从串口1
接收缓冲区的数据中解析出短消存储到短信队列(短信缓冲区1~m)中。这样需要软件处理的短消息就存储到了短信队列中,
而处理的事情则交由软件的其他区处理。
图2 直放站短信收发处理流程
2.2 短消息的发送短消息的发送
对所有需要发送到GSM Modem的数据,则通过UART1发送缓冲区来完成。具体发送哪些数据(读取/删除短信、下行功