掃描二維碼
隨時(shí)隨地手機(jī)看文章
實(shí)時(shí)嵌入式操作系統(tǒng)mC/OS-II面向中小型嵌入式應(yīng)用,包含全部功能模塊的內(nèi)核大約為10KB,RAM的應(yīng)用量主要與系統(tǒng)中的任務(wù)數(shù)有關(guān)。
GPRS是在目前運(yùn)行的GSM網(wǎng)絡(luò)基礎(chǔ)上發(fā)展起來的數(shù)據(jù)業(yè)務(wù),可以采用與GSM同樣的調(diào)制技術(shù)、頻率,以及同樣的TDMA幀結(jié)構(gòu)。利用現(xiàn)有的基站子系統(tǒng)(BSS),GPRS從一開始就可以提供全面的覆蓋。
GPRS終端系統(tǒng)的硬件組成
GPRS終端系統(tǒng)主要由控制部分和GPRS無線模塊組成,如圖1所示。
圖1 GPRS終端的硬件組成原理
為了適應(yīng)嵌入式技術(shù)在GPRS通信中的應(yīng)用,系統(tǒng)的控制部分采用了S3C44B0x芯片。
S3C44B0x是16/32位RISC微處理器, 為手持設(shè)備和通常應(yīng)用提供了一種高性價(jià)比的解決方案。
S3C44B0x具有豐富的片內(nèi)資源,可以通過串行接口操作GPRS模塊,操作指令為AT命令集。
GPRS無線模塊采用了SIM300,該模塊支持GPRS的語音、數(shù)據(jù)和短信息功能,內(nèi)嵌TCP/IP協(xié)議。該模塊主要由射頻天線、內(nèi)部Flash、SRAM、GSM基帶處理器、匹配電源和一個(gè)60腳的ZIF插座組成。其中,GSM基帶處理器是核心部件,其作用相當(dāng)于一個(gè)協(xié)議處理器,用來處理外部系統(tǒng)通過串口發(fā)送過來的AT指令。GPRS模塊接收速率可達(dá)86.2kbps,發(fā)送速率達(dá)21.5kbps,易于集成。
mC/OS-II的移植
mC/OS-II是一個(gè)移植性很強(qiáng)的操作系統(tǒng),其源代碼分為硬件無關(guān)和硬件有關(guān)兩個(gè)部分,移植時(shí)只需修改與硬件有關(guān)的部分。移植mC/OS-II到S3C44B0X 上,需做以下工作:
(1) 修改數(shù)據(jù)類型
為保持與平臺(tái)的無關(guān)性,mC/OS-II使用經(jīng)過宏定義的通用類型,如INT16U,表示16 位無符號(hào)數(shù)。在移植時(shí),要把它們映射成正確的類型。
(2) 進(jìn)入和退出臨界段
用關(guān)閉和打開中斷的方式,實(shí)現(xiàn)進(jìn)入臨界段函數(shù)OS_ENTER_CRITICAL()和退出臨界段函數(shù)OS_EX2IT_CRITICAL()。
(3) 設(shè)置堆棧生長方向
不同的處理器堆棧的生長方向不同,對(duì)S3C44B0X來說,其生長方向可以向上也可以向下。但是,由于編譯器ADS僅支持堆棧從上往下長,并且必須是滿遞減堆棧,所以這里要設(shè)置的實(shí)際使用方向?yàn)橄蛳略鲩L,即
#define OS_STR_GROWTH 1;
(4) 任務(wù)的切換和調(diào)度
進(jìn)行任務(wù)的切換和調(diào)度有兩種方法,一是當(dāng)前運(yùn)行的任務(wù)主動(dòng)調(diào)用OS_Sched() ,判斷是否有更高優(yōu)先級(jí)的任務(wù)要運(yùn)行,如果有就將其切換到就緒態(tài),然后調(diào)用OS_TASK_SW() ,產(chǎn)生一個(gè)軟中斷,中斷向量指向函數(shù)OSIntCtxSw() ,在其中修改任務(wù)堆棧,運(yùn)行新的任務(wù)。二是產(chǎn)生硬件中斷后,在中斷處理函數(shù)中調(diào)用OSIntEx()。
在上述過程中,產(chǎn)生軟中斷和修改任務(wù)堆棧的代碼都是與處理器相關(guān)的, S3C44B0X 的軟中斷匯編指令是SWI ,壓棧和出棧的匯編指令分別是STM和LDM。
(5) 堆棧的初始化
mC/OS-II在創(chuàng)建任務(wù)時(shí)會(huì)調(diào)用OSTaskStkInt() 函數(shù)對(duì)任務(wù)堆棧進(jìn)行初始化,這里需要將堆棧設(shè)置成和產(chǎn)生中斷后的形式一樣,一般包括任務(wù)起始地址、中斷返回地址、CPU 寄存器等內(nèi)容。另外,還要保證任務(wù)是運(yùn)行在特權(quán)模式下,而不是用戶模式下。
(6) 時(shí)鐘節(jié)拍中斷
mC/OS-II用時(shí)鐘節(jié)拍中斷實(shí)現(xiàn)時(shí)間延遲和超時(shí)功能,定時(shí)頻率一般在10Hz~100Hz。設(shè)置定時(shí)器的代碼與CPU 相關(guān),中斷向量必須指向mC/OS-II時(shí)鐘節(jié)拍中斷服務(wù)子程序OSTickISR() 。
系統(tǒng)的流程和任務(wù)的組成
本系統(tǒng)中,首先調(diào)用OSInit(),初始化mC/OS-II所有的變量和數(shù)據(jù)結(jié)構(gòu),再調(diào)用ARM_init()初始化微控制器的定時(shí)器及串口等硬件,通過調(diào)用OSTaskCreate(),依次創(chuàng)建各個(gè)任務(wù),最后調(diào)用OSStart()啟動(dòng)系統(tǒng),開始多任務(wù)調(diào)度。整個(gè)系統(tǒng)控制程序模塊及流程如圖2所示。
圖2 系統(tǒng)控制程序模塊及流程
整個(gè)系統(tǒng)中的任務(wù)包括ARM控制部分的鍵盤掃描、LCD顯示任務(wù)和通信任務(wù)以及GPRS終端功能的短消息任務(wù),語音通話任務(wù)等。因此,在mC/OS-II系統(tǒng)中的任務(wù)主要包括:
鍵盤掃描任務(wù)task_sys_key scan(),包括4×4鍵盤部分的掃描識(shí)別keyscan(),以及對(duì)應(yīng)按鍵功能編碼的實(shí)現(xiàn)keyscan_code()等。
LCD顯示任務(wù)task_sys_ lcddis(),包括背景內(nèi)容顯示display_context()、輸入內(nèi)容顯示display_input()、輸出內(nèi)容顯示display_output()等。
通信任務(wù)task_sys_ communication(),除了包括系統(tǒng)和主機(jī)進(jìn)行通信的函數(shù)host_msg(),以實(shí)現(xiàn)通過電腦進(jìn)行系統(tǒng)操作,還有各個(gè)任務(wù)之間相互通信的處理msg_tasl()。
話音通話任務(wù)task_sys_ telephone(),其中包括電話呼叫g(shù)prs_phone_call()、電話接聽gprs_phone_recevie()等。 另外,還包括系統(tǒng)短信收發(fā)任務(wù)。
根據(jù)系統(tǒng)進(jìn)行GPRS短消息通信和語音通信的功能要求,設(shè)置各個(gè)任務(wù)的優(yōu)先級(jí)如表1所示。
結(jié)語
mC/OS-II實(shí)時(shí)操作系統(tǒng)是開放源代碼且得到實(shí)際驗(yàn)證的軟件平臺(tái),而S3C44BOx具有強(qiáng)大的32位RISC性能,基于此軟件及硬件平臺(tái)對(duì)GPRS模塊進(jìn)行設(shè)計(jì),能大量減輕研發(fā)任務(wù),提高研發(fā)速度,為在短時(shí)間內(nèi)實(shí)現(xiàn)GPRS終端系統(tǒng)設(shè)計(jì)創(chuàng)造良好條件。
參考文獻(xiàn)
1.周航慈,吳光文等,基于嵌入式實(shí)時(shí)操作系統(tǒng)的程序設(shè)計(jì)技術(shù)[M],北京航空航天大學(xué)出版社,2006
2.曹莉,基于GPRS網(wǎng)絡(luò)的數(shù)據(jù)無線傳輸?shù)膶?shí)現(xiàn)接口[C],現(xiàn)場(chǎng)總線與網(wǎng)羅技術(shù),2006
3.華亮,基于mC/OS-II的嵌入式系統(tǒng)應(yīng)用平臺(tái)的構(gòu)建[C],計(jì)算機(jī)工程,2004年
摘要:隨著農(nóng)業(yè)生產(chǎn)中對(duì)水資源利用率重視程度的不斷提升,農(nóng)業(yè)用水的灌溉效率與灌溉滲漏系數(shù)測(cè)定準(zhǔn)確化與規(guī)范化越來越重要。為實(shí)現(xiàn)渠道水位測(cè)量的精確化與自動(dòng)化,研制開發(fā)出一種基于GPRS的渠道水位監(jiān)測(cè)系統(tǒng)。對(duì)投入式壓力水位檢測(cè)方...
關(guān)鍵字: GPRS 水位監(jiān)測(cè) 上位機(jī)設(shè)計(jì)摘要:隨著農(nóng)業(yè)生產(chǎn)中對(duì)水資源利用率重視程度的不斷提升,農(nóng)業(yè)用水的灌溉效率與灌溉滲漏系數(shù)測(cè)定準(zhǔn)確化與規(guī)范化越來越重要。為實(shí)現(xiàn)渠道水位測(cè)量的精確化與自動(dòng)化,研制開發(fā)出一種基于GPRS的渠道水位監(jiān)測(cè)系統(tǒng)。對(duì)投入式壓力水位檢測(cè)方...
關(guān)鍵字: GPRS 水位監(jiān)測(cè) 上位機(jī)設(shè)計(jì)摘要:針對(duì)目前城市道路井蓋安全存在的問題,提出了一種基于ZigBee組網(wǎng)技術(shù)監(jiān)測(cè)井蓋破損或移位以及丟失的實(shí)時(shí)監(jiān)測(cè)系統(tǒng),其由井蓋數(shù)據(jù)采集系統(tǒng)和上位機(jī)監(jiān)測(cè)系統(tǒng)兩部分構(gòu)成。井蓋數(shù)據(jù)采集系統(tǒng)由多個(gè)ZigBee節(jié)點(diǎn)構(gòu)成,同一個(gè)Zi...
關(guān)鍵字: 井蓋管理 Zigbee GPRS 實(shí)時(shí)監(jiān)測(cè)摘 要:設(shè)計(jì)一種運(yùn)行在嵌入式Linux平臺(tái)下的智能家居控制系統(tǒng)的實(shí)現(xiàn)方案,該系統(tǒng)采用ARM9微處理器S3C2440作 為主處理器,通過傳感器模塊對(duì)溫度、濕度、煙霧信息等進(jìn)行檢測(cè);通辻USB接口的攝像頭采集視頻信息,采用J...
關(guān)鍵字: S3C2440 Linux 傳感器 GPRS 遠(yuǎn)程監(jiān)控摘要:論述了船舶企業(yè)高電耗的主要表現(xiàn),為了達(dá)到船舶建造企業(yè)節(jié)電增效的目標(biāo),利用先進(jìn)的物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)、智能儀表及嵌入式技術(shù),研究并提出了船舶企業(yè)電能智能化應(yīng)用的思路。同時(shí)通過對(duì)國內(nèi)外電能研究的綜合分析,設(shè)計(jì)了電能智...
關(guān)鍵字: 電能 智能化 船舶企業(yè) 物聯(lián)網(wǎng) GPRSGPRS英文全稱為 General packet radio service,中文名稱為通用無線分組業(yè)務(wù),是一種基于GSM系統(tǒng)的無線分組交換技術(shù),提供端到端的、廣域的無線IP連接。相對(duì)原來GSM的撥號(hào)方式的電路交換數(shù)據(jù)傳...
關(guān)鍵字: GPRS GSM 移動(dòng)通信