|
技术文库首页
|
编程
|
IC
|
晶体管
|
精解
|
中频
|
其它
|
电源
|
基础
|
电脑
|
无线
|
液晶
|
微波
|
空调
|
手机
|
|
热水器
|
电动车
|
LED屏
|
焊机
|
您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁體中文

状态机在嵌入式前后台系统中的应用

移动2G光纤直放站近端机监控单元对于移动2G光纤直放站近端机监控单元,只介绍与本文有关部分的原理框图,如图1所示。图中GSMModem通过AT91SAM7S256的串口1相连。由于GSMModem的特性和短消息的收发,其通信收发处理相对比较繁琐和复杂。例如,发送短消息时,需要向Modem发送“AT+CMGS=电话号码”并等待一定的时间,再发送短消息内容,等待发送成功。短消息发送成功后,GSMModem将回应“+CMGS序号”的信息。其发送需要等待的时间长短

       移动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发送缓冲区的数据结构定义如下:

typedef struct{
unsigned char bStBuf;//bStBuf = Uart1_TxBuf_Rdy或者=Uart1_TxBuf_Wait或者=Uart1_TxBuf_Empty
unsigned short Index;
unsigned shortLen;
char Buf[270];
}Uart1Buf_t;

① bStBuf成员: 串口1发送缓冲区的状态。
② Index成员: 串口1发送数据缓冲区索引。
③ Len成员: 串口1发送数据缓冲区中有效数据的长度。
④ Buf成员: 串口1发送数据缓冲区。

     2.串口1发送缓冲区软件定时器

由于GSM Modem的特性致使串口1不能不间断地发送数据,因此,对串口1的数据发送设定一个软件定时器。软件定时器用于控制GSM Modem是否可以接收来自串口1的新数据。软件定时器的结构定义如下:

typedef struct{unsigned char bTimerSt;//软件定时器的状态: Timer_START或Timer_STOPunsigned int TimerCtn;//软件定时器的计数器void (*func)(void);//超时后相应的处理功能函数指针}SoftTimer_t;

① bTimerSt成员: 用于描述软件定时器的状态。它有2种状态:
◆ Timer_START——开始软件定时器;
◆ Timer_STOP——停止软件定时器。
② TimerCtn成员: 用于描述软件定时器的定时时间。它是一个32位的计数器,硬件定时的基准时间为20ms(建议设置在前后台系统主程序循环1次需要的时间),因此最大定时时间为20 ms×232=85 899 345.92 s。
③ func成员: 用于描述软件定时器超时需要去处理相应事情的函数。该函数是在定时器中断服务程序下运行的,因此为了减少中断服务程序占用CPU的时间,函数只作简单的状态设置或者清除工作,如函数Clear_Uart1TxbStBuf。

void Clear_Uart1TxbStBuf(void){Uart1Tx.bStBuf = Uart1_TxBuf_Empty;//设置串口1发送缓冲区为空……}

     3.串口1数据发送状态机

串口1发送缓冲区的成员bStBuf有3种状态。

① Uart1_TxBuf_Rdy: 串口1发送缓冲区数据准备好。
② Uart1_TxBuf_Wait: 串口1发送缓冲区数据等待。
③ Uart1_TxBuf_Empty: 串口1发送缓冲区空。

3种状态的转移情况如图3所示。

图3  串口1的发送缓冲区状态机

      当串口1发送缓冲区在Uart1_TxBuf_Rdy状态下时,软件可以向串口的发送缓冲区中写入数据。写入数据后,串口1发送缓冲区的状态将转移到Uart1_TxBuf_Rdy。

在将需要发送的数据拷贝到串口1发送缓冲区后,开启串口1的发送中断,软件将进入串口1的发送中断服务程序。这个中断服务程序将检测串口1发送缓冲区的状态。如果状态为Uart1_TxBuf_Rdy,则说明串口1发送缓冲区中有数据需要发送,这时串口1缓冲区的数据通过串口1的发送中断把所有的数据发送给GSM Modem。当数据发送完毕后,串口1发送缓冲区的状态将转移到Uart1_TxBuf_Wait状态,否则,将维持当前的状态。

当串口1发送缓冲区的状态在Uart1_TxBuf_Wait状态时,它可以有两条路径让串口1发送缓冲区的状态转移到Uart1_TxBuf_Empty:

其一是串口1软件定时器超时。

其二是相应的条件成立。如发送端消息,当软件从串口1的接收缓冲区中解析出“+CMGSn(1≤n≤255)”信息或者发送失败的信息时,串口1发送缓冲区的状态将转移到Uart1_TxBuf_Empty状态,同时停止串口1软件定时器;读短消息收到“+CMGR……”信息。

     短信数据的发送

如图2所示,需要通过串口1发送的数据包括: 读取/删除短信数据、下行功率查询数据、信源信息查询数据、未读短信查询数据、短消息发送缓冲区数据、告警上报发送缓冲区数据。其中,读取/删除短信数据、下行功率查询数据、信源信息查询数据和未读短信查询数据,
直接由GSM Modem处理,并作出处理结果应答。因此,这类数据直接通过串口1发送缓冲区发送。

而短信数据(短消息发送缓冲区数据、告警上报发送缓冲区数据)发送需要两步操作: 先发送短信的目的电话号码,再发送短信消息内容。发送是否完成,与GSM Modem和GSM网络有关。因此,这类数据的发送,先将发送操作的所有数据存储到短信数据缓冲区中,然后由软件通过短信数据缓冲区的状态,将数据通过串口1发送缓冲区发送给GSM Modem。

      1.短信数据结构

短信数据包括短消息发送缓冲区数据和告警上报发送缓冲区数据。根据短信发送操作的两个步骤,短信数据缓冲区的数据结构定义如下:

typedef struct{unsigned char bStBuf;//bStBuf = SmsTx_Emty或者= SmsTx_CmdRdy或者= SmsTx_Dly1或者= SmsTx_DatRdy或者= SmsTx_Dly2或者= SmsTx _Waitunsigned char cmd_len;char  cmd_buf[32];unsigned short dat_len;char dat_buf[SMS_LEN+1];
unsigned char retry_time;//重传次数}SmsTx_t;

① bStBuf成员: 用于描述短信数据缓冲区的状态。
② cmd_len成员: 用于描述cmd_buf中数据的长度。
③ cmd_buf成员: 用于存储短消息发送中的控制命令,如AT+CMGS=13583823789。
④ dat_len成员: 用于描述存储短消息发送中的信息体长度。
⑤ dat_buf成员: 用于存储短消息发送中的信息体。
⑥ retry_time成员: 用于描述短消息在发送失败时,重传的次数。

     2.短信数据发送状态机

短信数据缓冲区的状态有6种:

① SmsTx_Empty: 短信数据缓冲区空。
② SmsTx_CmdRdy: 短信数据缓冲区控制命令准备好。
③ SmsTx_Dly1: 短信数据缓冲区延时1。
④ SmsTx_DatRdy: 短信数据缓冲区消息体准备好。
⑤ SmsTx_Dly2: 短信数据缓冲区延时2。
⑥ SmsTx_Wait: 短信数据缓冲区等待。

其状态的转移情况如图4所示。

图4  短信数据发送状态机

      状态机的转移过程通过短消息发送缓冲区数据的发送来说明,其告警上报发送缓冲区的数据发送与此相同。

      结语

在整个移动2G光纤直放站近端机的监控软件中,除了短消息收发处理,还包括实时采样、实时告警上报等任务。其所有的软件设计都采用类似于短信收发处理的状态机、队列和软件定时器的设计思路,极大地提高移动2G光纤直放站近端机监控软件的效率。这种在前后台系统中使用状态机、队列和软件定时器的设计思路,可以应用到其他的嵌入式前后台系统中,是一种值得学习、借鉴的嵌入式软件设计思路。


瑞达币购买
桂山秋竹_唐年桂2023年
桂北云雾图_唐年桂202

  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    本站公告

    • 扫一扫,打赏给我们,谢谢!

      本站2016年12月16日起取消ruida.org.cn域名,该域名正式作废,该域名发布任何信息与本站无关。


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    附页内镶内容
    健康养生 商场新品 股市K线、指标知识
     六种药酒配制法[11月7日]
     国公酒_散风祛湿,舒筋活络[3月8日]
     气血双补党参、麦冬、黄芪炖[11月29日]
     参桂再造丸_臂丛神经痛[11月29日]
     臂丛神经痛该怎样治疗[11月29日]
     舒筋络酊、百宝丹擦剂、参桂[11月29日]
     臂丛神经痛针灸治疗[11月29日]
     枳椇子_利水渗湿药[11月29日]
     三七、丹参、西洋参_颈椎病[8月17日]
     枸杞泡姜芽(嫩姜)的做法及功[5月20日]
     瑞达币购买
     桂山秋竹_唐年桂2023年新作品
     桂北云雾图_唐年桂2023年新作品
     广西2019年《高考指南》+《招生计
     金士科前置过滤器
     金牛前置过滤器
     USB口24系列编程器第二版含USB延
     液晶电视、液晶显示器图纸、维修
     彩电、显示器、DVD、EVD打印机等
     高清CRT彩电、显示器图纸刻录 4G
     [理财]各种短视频赚钱方法
     [会员]专业交易实战控制系统
     [理财]1分2分5分硬币回收价格表(20250123)
     [理财]1分2分5分硬币回收价格表(20230928)
     [理财]1分2分5分硬币回收价格表(20230624)
     [理财]2022 年新版1分2分5分硬币回收价格表…
     [理财]微信收款码如何开通商业版收信用卡费…
     [指标]R平方_基金指标
     [指标]标准差_基金指标
     [指标]平均回报_基金指标
    装修案例 网站建设 电器维修
     一般水电安装几个常用尺寸[1月29日]
     三相电表接法及度数的正确读…[5月8日]
     万能通用卧室房门锁更换步骤…[2月22日]
     乳胶漆的八大施工步骤及涂刷…[2月14日]
     旧墙翻新步骤及注意事项[2月14日]
     屋面防水施工工艺流程及注意…[1月16日]
     专利产品“防污吸气帽”新产…[1月8日]
     鲁班尺吉数对照表高清图片查…[10月29日]
     砂浆胶作用与危害[9月21日]
     4种处理水泥地面起砂方法[9月21日]
     网页html点击切换显示内容完[11月7日]
     动易SiteWeaver6.6网站管理系[7月31日]
     中国阴历农历JS支持 HTML网页[2月26日]
     java script error 容错处理[2月15日]
     几款还不错的网页特效显示日[2月14日]
     图片可以调大小的代码[12月14日]
     动易SW6.8网站系统改自适应支[11月20日]
     网站建设_套餐服务[12月4日]
     网站建设-费用明细[12月4日]
     不显示出来的代码[12月3日]
     联想 小新Air 14 2019笔记本…[6月15日]
     滚筒洗衣机脱水声音大原因及…[4月17日]
     智能电视不能开机强制恢复出…[1月16日]
     各大品牌智能电视机恢复出厂…[1月16日]
     洗衣机自己排水或不存水漏水…[6月15日]
     海尔冰箱出现-03还滴滴报警[5月29日]
     TCL电视通用教程安装教程[2月2日]
     TCL L43V7300A-3D液晶彩电出…[2月2日]
     先锋液晶电视LED-32B550无光…[1月17日]
     智能电视主板的应用与维修(…[1月11日]
    电器资料 下载 读书
     三个代码让电脑提速畅通秘籍[3月13日]
     视得安750D6对讲门铃工作原理…[9月13日]
     什么是量子芯片和光子芯片[5月14日]
     沃尔沃S90汽车遥控钥匙失灵的…[1月19日]
     LED显示屏瑞合信PLus单双色全…[12月22日]
     Windows 照片查看器无法显示…[8月6日]
     已经设置IE主页,但是打开还…[7月6日]
     如何调整空压机压力?空压机…[6月8日]
     剪映-视频编辑软件手机版使用…[5月28日]
     锂电池保护板作用及同口和分…[3月18日]
     [书籍]滕王阁序_原文_注释译文_白
     [书籍]《天工开物》明代宋应星初
     [电影]《抓娃娃》高清电影
     [联想]Lenovo S540-14API Compl 
     [书籍]《墨子》原文注释译文
     [LED条屏]瑞合信单双色/全彩控制系统
     [LED条屏]LED显示屏瑞合信手机APP6.
     [书籍]全本新注聊斋志异
     [书籍]广西2023年高考指南 招生计
     [书籍]个人防护手册(第二版)
     广西高考2024~2022年历史类([6月25日]
     凤阳花鼓[3月8日]
     《滕王阁序》[3月2日]
     卷一百二十八 艺文_杂记[2月24日]
     卷一百二十七 艺文_杂记[2月24日]
     卷一百二十六 艺文_国朝[2月24日]
     卷一百二十五 艺文_国朝[2月24日]
     卷一百二十四 艺文_五言排律[2月24日]
     卷一百二十三 艺文_历朝[2月24日]
     卷一百二十二 艺文_历朝[2月24日]
    珠宝玉器 在线电视台
     鸡血石与鸡血玉有什么区别[6月12日]
     鸡血玉[6月12日]
     鸡血石 (bloodstone)[6月12日]
     什么是莫桑石(Moissanite)[6月12日]
     可以戴钻石洗澡吗[1月22日]
     钻石如何保养才好呢?[1月22日]
     PT容易花的问题和钻戒保养问…[1月22日]
     切工 钻石的雕刻艺术[1月22日]
     如何保养好钻戒[1月22日]
     钻戒保养方法[1月22日]
     中央体育台
     中央新闻台
     宁夏卫视
     湖北卫视
     西藏卫视
     辽宁卫视
     河北卫视
     北京卫视
     政法频道
     农民频道
     湖南经视
     湖 南 台
     河南频道
     湖南卫视
     兵团卫视
     江苏卫视
     旅游卫视
     湖南都市
     七彩戏剧
     动漫秀场
     游戏风云
     法制天地
     魅力音乐
     新 娱 乐
     南 方 TV
     浙江卫视
     齐鲁频道
     山西影视
     东南卫视
     上海卫视
     贵州电视台
     重庆电视台
     山东卫视
     哪吒之魔童闹海《哪吒2》在线
     《抓娃娃》在线电影
     流浪地球2剧情介绍
     《万里归途》完整版
     《阿凡达2:水之道》耗资3.1
     2021港剧《梅艳芳》5集全.HD
     误杀2 -电影-完整版视频在线
     亲爱的/亲爱的小孩/打拐/家之
     《第一炉香》-电影-完整版视
     《扬名立万》-电影-完整版视
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj