狀態(tài)機(jī)在嵌入式系統(tǒng)中的應(yīng)用
在嵌入式前后臺(tái)系統(tǒng)中,外部的異步事件通過(guò)中斷來(lái)捕獲并運(yùn)行在后臺(tái),而其他的任務(wù)則運(yùn)行于前臺(tái)。提高系統(tǒng)中的任務(wù)處理能力,是嵌入式前后臺(tái)系統(tǒng)設(shè)計(jì)的重點(diǎn)。本文描述了利用狀態(tài)機(jī)來(lái)提高嵌入式前后臺(tái)系統(tǒng)任務(wù)處理能力的實(shí)現(xiàn)方法。為了便于研究和描述狀態(tài)機(jī)在嵌入式前后臺(tái)軟件系統(tǒng)中的應(yīng)用,本文將以移動(dòng)2G光纖直放站近端機(jī)的監(jiān)控軟件案例來(lái)闡述和說(shuō)明。
本文引用地址:http://m.butianyuan.cn/article/150700.htm1 移動(dòng)2G光纖直放站近端機(jī)監(jiān)控單元
對(duì)于移動(dòng)2G光纖直放站近端機(jī)監(jiān)控單元,只介紹與本文有關(guān)部分的原理框圖,如圖1所示。圖中GSM
Modem通過(guò)AT91SAM7S256的串口1相連。由于GSM
Modem的特性和短消息的收發(fā),其通信收發(fā)處理相對(duì)比較繁瑣和復(fù)雜。例如,發(fā)送短消息時(shí),需要向Modem發(fā)送“AT+CMGS=電話(huà)號(hào)碼”并等待一定的時(shí)間,再發(fā)送短消息內(nèi)容,等待發(fā)送成功。短消息發(fā)送成功后,GSM
Modem將回應(yīng)“+CMGS序號(hào)”的信息。其發(fā)送需要等待的時(shí)間長(zhǎng)短不定。
圖1 直放站近端機(jī)監(jiān)控單元
在移動(dòng)2G光纖直放站近端機(jī)中,通過(guò)串口1發(fā)送到GSM
Modem的數(shù)據(jù)不僅僅是短消息,還包括下行功率查詢(xún)、信源信息查詢(xún)、讀取/刪除短消息等。因此,針對(duì)移動(dòng)2G光纖直放站近端機(jī)監(jiān)控單元的要求和軟件系統(tǒng)為前后臺(tái)系統(tǒng)的特點(diǎn),移動(dòng)2G光纖直放站近端機(jī)監(jiān)控單元的監(jiān)控軟件設(shè)計(jì)采用了狀態(tài)機(jī)和隊(duì)列的方式。
2 軟件的設(shè)計(jì)思路
根據(jù)前后臺(tái)軟件系統(tǒng)的特點(diǎn),結(jié)合移動(dòng)2G光纖直放站近端機(jī)的硬件結(jié)構(gòu),以移動(dòng)2G光纖直放站近端機(jī)的監(jiān)控軟件中的短消息收發(fā)子系統(tǒng)為例,來(lái)闡述軟件的設(shè)計(jì)思路。GSM
Modem的短消息接收采用軟件主動(dòng)讀取的方式,即軟件以中斷方式接收到短消息在Modem中存儲(chǔ)的序號(hào),然后軟件主動(dòng)讀取短消息和刪除已讀取的短消息。短消息的收發(fā)處理流程如圖2所示。
2.1 短消息的接收
如圖2所示,GSM
Modem主動(dòng)上報(bào)的信息將存儲(chǔ)到串口1接收緩沖區(qū)中,軟件從串口1接收緩沖區(qū)的數(shù)據(jù)中解析出短信序號(hào)(Modem收到的短消息在Modem中的存儲(chǔ)序號(hào))存儲(chǔ)到短信序號(hào)隊(duì)列(短信序號(hào)緩沖區(qū)1~n)中,然后軟件通過(guò)短信序號(hào)隊(duì)列的狀態(tài)來(lái)決定是否需要向Modem發(fā)送讀取短信或者刪除短信命令。
當(dāng)軟件發(fā)送讀短消息命令后,GSM
Modem將對(duì)應(yīng)序號(hào)的短信息送出,數(shù)據(jù)將存儲(chǔ)到串口1接收緩沖區(qū)中,軟件再?gòu)拇?接收緩沖區(qū)的數(shù)據(jù)中解析出短消存儲(chǔ)到短信隊(duì)列(短信緩沖區(qū)1~m)中。這樣需要軟件處理的短消息就存儲(chǔ)到了短信隊(duì)列中,而處理的事情則交由軟件的其他區(qū)處理。
圖2 直放站短信收發(fā)處理流程
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論