状态机在嵌入式前后台系统中的应用
移动2G光纤直放站近端机监控单元
对于移动2G光纤直放站近端机监控单元,只介绍与本文有关部分的原理框图,如图1所示。图中GSM Modem通过AT91SAM7S256的串口1相连。由于GSM Modem的特性和短消息的收发,其通信收发处理相对比较繁琐和复杂。例如,发送短消息时,需要向Modem发送“AT+CMGS=电话号码”并等待一定的时间,再发送短消息内容,等待发送成功。短消息发送成功后,GSM Modem将回应“+CMGS序号”的信息。其发送需要等待的时间长短不定。
图1 直放站近端机监控单元
在移动2G光纤直放站近端机中,通过串口1发送到GSM Modem的数据不仅仅是短消息,还包括下行功率查询、信源信息查询、读取/删除短消息等。因此,针对移动2G光纤直放站近端机监控单元的要求和软件系统为前后台系统的特点,移动2G光纤直放站近端机监控单元的监控软件设计采用了状态机和队列的方式。
软件的设计思路
根据前后台软件系统的特点,结合移动2G光纤直放站近端机的硬件结构,以移动2G光纤直放站近端机的监控软件中的短消息收发子系统为例,来阐述软件的设计思路。GSM Modem的短消息接收采用软件主动读取的方式,即软件以中断方式接收到短消息在Modem中存储的序号,然后软件主动读取短消息和删除已读取的短消息。短消息的收发处理流程如图2所示。
1.短消息的接收
如图2所示,GSM Modem主动上报的信息将存储到串口1接收缓冲区中,软件从串口1接收缓冲区的数据中解析出短信序号(Modem收到的短消息在Modem中的存储序号)存储到短信序号队列(短信序号缓冲区1~n)中,然后软件通过短信序号队列的状态来决定是否需要向Modem发送读取短信或者删除短信命令。
当软件发送读短消息命令后,GSM Modem将对应序号的短信息送出,数据将存储到串口1接收缓冲区中,软件再从串口1接收缓冲区的数据中解析出短消存储到短信队列(短信缓冲区1~m)中。这样需要软件处理的短消息就存储到了短信队列中,而处理的事情则交由软件的其他区处理。
图2 直放站短信收发处理流程
2.短消息的发送
对所有需要发送到GSM Modem的数据,则通过UART1发送缓冲区来完成。具体发送哪些数据(读取/删除短信、下行功率查询、信源信息查询、未读短信查询)或者缓冲区的数据(短消息发送缓冲区、告警上报发送缓冲区)由软件根据相应的状态来选择确定。
设计思路的实现
串口1数据的发送
1.串口1发送缓冲区的数据结构
串口1是否有数据需要发送,由串口1的发送缓冲区的状态来决定。串口1发送缓冲区的数据结构定义如下:
相关文章
- 2023-06-17远心镜头在回转体测量系统中的应用
- 2022-06-11JavaCardCPU的设计与FPGA实现
- 2022-06-27S671A型血液钾钠分析仪应用的研究
- 2021-11-21基于FPGA的伪码测距电路的设计与实现
- 2022-12-02水平定向钻进随钻姿态测量及误差补偿
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。