狀態機在嵌入式系統中的應用
在嵌入式前后臺系統中,外部的異步事件通過中斷來捕獲并運行在后臺,而其他的任務則運行于前臺。提高系統中的任務處理能力,是嵌入式前后臺系統設計的重點。本文描述了利用狀態機來提高嵌入式前后臺系統任務處理能力的實現方法。為了便于研究和描述狀態機在嵌入式前后臺軟件系統中的應用,本文將以移動2G光纖直放站近端機的監控軟件案例來闡述和說明。
本文引用地址:http://www.104case.com/article/150700.htm1 移動2G光纖直放站近端機監控單元
對于移動2G光纖直放站近端機監控單元,只介紹與本文有關部分的原理框圖,如圖1所示。圖中GSM
Modem通過AT91SAM7S256的串口1相連。由于GSM
Modem的特性和短消息的收發,其通信收發處理相對比較繁瑣和復雜。例如,發送短消息時,需要向Modem發送“AT+CMGS=電話號碼”并等待一定的時間,再發送短消息內容,等待發送成功。短消息發送成功后,GSM
Modem將回應“+CMGS序號”的信息。其發送需要等待的時間長短不定。

圖1 直放站近端機監控單元
在移動2G光纖直放站近端機中,通過串口1發送到GSM
Modem的數據不僅僅是短消息,還包括下行功率查詢、信源信息查詢、讀取/刪除短消息等。因此,針對移動2G光纖直放站近端機監控單元的要求和軟件系統為前后臺系統的特點,移動2G光纖直放站近端機監控單元的監控軟件設計采用了狀態機和隊列的方式。
2 軟件的設計思路
根據前后臺軟件系統的特點,結合移動2G光纖直放站近端機的硬件結構,以移動2G光纖直放站近端機的監控軟件中的短消息收發子系統為例,來闡述軟件的設計思路。GSM
Modem的短消息接收采用軟件主動讀取的方式,即軟件以中斷方式接收到短消息在Modem中存儲的序號,然后軟件主動讀取短消息和刪除已讀取的短消息。短消息的收發處理流程如圖2所示。
2.1 短消息的接收
如圖2所示,GSM
Modem主動上報的信息將存儲到串口1接收緩沖區中,軟件從串口1接收緩沖區的數據中解析出短信序號(Modem收到的短消息在Modem中的存儲序號)存儲到短信序號隊列(短信序號緩沖區1~n)中,然后軟件通過短信序號隊列的狀態來決定是否需要向Modem發送讀取短信或者刪除短信命令。
當軟件發送讀短消息命令后,GSM
Modem將對應序號的短信息送出,數據將存儲到串口1接收緩沖區中,軟件再從串口1接收緩沖區的數據中解析出短消存儲到短信隊列(短信緩沖區1~m)中。這樣需要軟件處理的短消息就存儲到了短信隊列中,而處理的事情則交由軟件的其他區處理。

圖2 直放站短信收發處理流程
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論