摘 要:為了提高家居的智能化水平,給出一種基于3C44B0X芯片和藍(lán)牙通信技術(shù)的智能家居控制器的硬件設(shè)計和軟件設(shè)計。該系統(tǒng)主要由存儲器系統(tǒng)、以太網(wǎng)接口、藍(lán)牙通信模塊、溫度檢測和實時時鐘等組成。介紹源碼開放的實時多任務(wù)的μC/O-Ⅱ操作系統(tǒng)在ARM微處理器3C44BOX上的移植方法,并簡要說明移植的主要步驟。
關(guān)鍵詞:μC/O-Ⅱ;3C44B0X;智能家居;嵌入式系統(tǒng)
Embedded ystem Design of Intelligent ome Based on 3C44B0X & μC/O-Ⅱ
LIU Gang
(Wenzhou Vocational College of cience & echnology,Wenzhou,32006,China)
Abstract:In order to improve the intelligence level of home,offering one hardware and software design for an intelligent home controller based on the 3C44BOX CMO chip and Bluetooth communication technologyIt is composed of memory systems,Ethernet,Bluetooth communication,temperature detecting and real-time testing systemhe methods to transplant the open-resourced,real-time and multitask μC/O-Ⅱ operating system on the ARM microprocessor and 3C44BOX are introduced,also the main steps for it are explained in brief
Keywords:μC/O-Ⅱ;3C44B0X;intelligent home;embedded system
隨著社會經(jīng)濟的飛速發(fā)展及計算機控制技術(shù)等科技的進(jìn)步,人們對自身的生活和工作環(huán)境有了更高的要求,由此對家居智能化控制系統(tǒng)的要求也越來越緊迫。設(shè)計家居智能化控制系統(tǒng),對促進(jìn)住宅現(xiàn)代化建設(shè)具有重要意義。家居智能化控制系統(tǒng)就是指利用先進(jìn)的計算機技術(shù)、網(wǎng)絡(luò)通信技術(shù)、綜合布線技術(shù),將與家居生活相關(guān)的各種子系統(tǒng)有機結(jié)合,從而進(jìn)行統(tǒng)籌管理,使家居生活更加舒適、安全、有效。
近年來,嵌入式系統(tǒng)設(shè)備全面滲透到人們?nèi)粘I畹母鱾領(lǐng)域,本文針對智能家居嵌入式系統(tǒng)的軟硬件設(shè)計需求,以3C44B0X為處理器進(jìn)行智能家居系統(tǒng)的硬件設(shè)計,以實現(xiàn)μC/O-Ⅱ在3C44B0X上的移植。
1 軟硬件選擇
目前主要的嵌入式處理器類型有386EX,C-400,Power PC,MIP,ARM/trong,ARM系列等,其中ARM以其小體積、低功耗、低成本、高性能成為嵌入式處理器首選。3C44B0X是amsung公司推出的16/32位RIC處理器,基于ARM7DMI內(nèi)核,提供3級流水線結(jié)構(gòu)。它一方面具有ARM處理器低功耗、高性能的特點,同時又具有非常豐富的片上資源。其特點如下:
(1)內(nèi)置鎖相環(huán)(PLL),系統(tǒng)主頻最高達(dá)66 Mz;
(2)8路l0位ADC,I2C,I2總線控制器,6個PWM定時器;
(3)4種工作模式,正常、慢速、閑置和停止,可以根據(jù)需要切換系統(tǒng)工作方式,使系統(tǒng)功耗降低到最低限度;(4)內(nèi)置彩色LCD控制器(最大支持26色的DN),71個通用可編程I/O口和實時時鐘(RC)。
由此可以看出,3C44BOX具有高性能、低功耗、接口資源豐富的特點。這些特點可以較好地滿足家居智能控制系統(tǒng)的設(shè)計需要。作為家居智能控制系統(tǒng),除了具有局域網(wǎng)接口、PN接口、R 48接口、藍(lán)牙接口外,還應(yīng)提供音頻視頻接口、UB接口、報警傳感器接口等。這些接口可以實現(xiàn)音頻視頻自動切換、多臺PC同時上網(wǎng)、與各PC機結(jié)合完成家庭設(shè)備管理等功能。
μC/O-Ⅱ是一種源碼公開的實時嵌入式操作系統(tǒng)。它完全是占先式的實時內(nèi)核,是基于優(yōu)先級的,即總是讓就緒態(tài)中優(yōu)先級最高的任務(wù)先運行,因此實時性比非占先式的內(nèi)核要好。它包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)問通信同步(信號量、郵箱、消息隊列)和內(nèi)存管理等功能;它的絕大部分代碼用C語言編寫,可移植性強。目前,μC/O-Ⅱ絕大多數(shù)可以在8位、l6位、32位以至64位微處理器、微控制器、數(shù)字信號處理器(DP)上運行。
2 智能家居硬件設(shè)計
在選定了處理器之后,外圍電路就可按要求進(jìn)行設(shè)計。其硬件框圖如圖1所示,主要包括:
21 存儲器系統(tǒng)
其中靜態(tài)存儲器由FLA組成,用于存儲智能家居中的嵌入式操作系統(tǒng)、P服務(wù)器、家庭網(wǎng)絡(luò)服務(wù)器以及支持各種服務(wù)所需的文件系統(tǒng)。動態(tài)存儲器采用DRAM,以提高系統(tǒng)的允許速度和采用操作系統(tǒng)來保證系統(tǒng)的穩(wěn)定性,整個智能家居系統(tǒng)軟件平臺存儲在FLA中,在系統(tǒng)啟動時,將從FLA中運行Bootloader,解壓縮操作系統(tǒng),并將其搬移到DRAM中,完成搬移之后,所有程序從DRAM中運行。其中,F(xiàn)LA選用公司生產(chǎn)的39VF160芯片。39VF160采用CMO工藝設(shè)計,支持1 M的地址空間,20條地址總線,16條數(shù)據(jù)總線。DRAM選用ynix公司生產(chǎn)的Y7V641620芯片。Y7V641620存儲容量為4組×16 M(8 MB),由于采用行/列地址鎖存機制,由行列地址共同構(gòu)成20條地址線,完成1 M的尋址范圍。
22 輸入/輸出系統(tǒng)
包含LCD液晶顯示、鍵盤以及微型打印機等,可以基本滿足測試數(shù)據(jù)等顯示以及人機交互的需要。
23 外部通訊接口
包括R 232串口、以太網(wǎng)接口。R 232接口用于系統(tǒng)同PC機之間的通訊,可以把測試系統(tǒng)保存的數(shù)據(jù)導(dǎo)出來,本系統(tǒng)采用國際通用的R 232C作為串行接口;以太網(wǎng)接口則可以把整個測試系統(tǒng)連接到互聯(lián)網(wǎng)上,從而實現(xiàn)該測試系統(tǒng)的遠(yuǎn)程監(jiān)控。
24 藍(lán)牙通信模塊
在家居控制器上使用藍(lán)牙技術(shù)主要是為了給家居控制器的各個功能模塊提供無線傳輸?shù)姆绞�。在家居中央控制器上可以采用藍(lán)牙模塊加開放藍(lán)牙協(xié)議的方式開發(fā)藍(lán)牙功能,綜合考慮成本、結(jié)構(gòu)等因素,信息家電可以采用藍(lán)牙模塊加單片機的方式實現(xiàn)藍(lán)牙功能。將整個藍(lán)牙核心協(xié)議棧移植到單片機中顯然不合實際,可以采用這樣的開發(fā)方案:在藍(lán)牙CI層的基礎(chǔ)上,根據(jù)信息家電信息傳輸?shù)膶嶋H需求,建立相關(guān)協(xié)議,利用單片機直接和藍(lán)牙硬件模塊交換CI指令,實現(xiàn)信息交互。單片機采集信息家電的相關(guān)信息通過藍(lán)牙模塊發(fā)送出去,藍(lán)牙模塊也可以將接收到的命令用CI指令傳遞給單片機執(zhí)行。
2 溫度、濕度檢測和實時時鐘實現(xiàn)模塊
主要實現(xiàn)對室內(nèi)環(huán)境的監(jiān)控,便于控制系統(tǒng)采取適當(dāng)?shù)姆绞娇刂剖覂?nèi)環(huán)境。其中溫度采用溫度傳感器實現(xiàn),實時時鐘采用3C440BX自帶的RC模塊實現(xiàn)。
3 μC/O-Ⅱ在3C44B0X上的移植
μC/O-Ⅱ在3C44B0X上的移植,需要修改3個與ARM體系相關(guān)的文件:O_CPU,O_CPU_CC,O_CPUAM 。在μC/O-Ⅱ的移植過程中,采用AD作為編譯器,AD由一套完備的應(yīng)用程序構(gòu)成,可用來編寫和調(diào)試ARM系列的RIC處理器的應(yīng)用程序,并可通過主機和實時分析工具讓使用者對應(yīng)用程序進(jìn)行完整的分析,加速實時嵌入式系統(tǒng)的開發(fā)和測試。3.1設(shè)置O_CPU中與處理器和編譯器相關(guān)的代碼
這部分代碼的定義主要包括數(shù)據(jù)類型的定義、開關(guān)中斷代碼的宏定義、任務(wù)切換時執(zhí)行代碼的定義和堆棧增長方向的定義。在3C44B0X中,所有的任務(wù)堆棧都是用O_K聲明數(shù)據(jù)類型,用O_ENER_CRIICAL( )和O_EXI_CRIICAL( )實現(xiàn)開關(guān)中斷,用結(jié)構(gòu)常量O_K_GROW來指定堆棧的生長方式。
32 編寫與操作系統(tǒng)相關(guān)的函數(shù)O_CPU_CC
μC/O-Ⅱ定義了6個函數(shù)在該文件中,其中Oasktklnit( )是任務(wù)堆棧初始化函數(shù),其他個函數(shù)都是ook函數(shù),即OaskCreateook( ),OaskDelook( ),Oaskwook( ),Oasktatook( ),0simeickook( )等接口函數(shù),是系統(tǒng)預(yù)留給用戶添加功能的,只要聲明,可以不包含代碼,當(dāng)用戶需要額外擴展功能時,在這個函數(shù)中選擇加入就可。實際上需要修改的只有Oasktklnit( )函數(shù),該函數(shù)用來初始化任務(wù)堆棧,使得任務(wù)堆棧建立時與發(fā)生1次中斷后的堆棧結(jié)構(gòu)相同。3C44B0X的堆棧結(jié)構(gòu)如圖2所示。在修改Oasktklnit( )函數(shù)時應(yīng)依照該結(jié)構(gòu)進(jìn)行。
33 編寫與處理器相關(guān)的函數(shù)O_CPUAM
這部分代碼是對處理器的寄存器進(jìn)行操作,必須用匯編語言來編寫,包括以下4個子函數(shù):
331 OtanighRdy( )
運行優(yōu)先級最高的就緒任務(wù),此函數(shù)是在O-tart( )多任務(wù)啟動后,負(fù)責(zé)從最高優(yōu)先級任務(wù)的CB控制塊中獲得該任務(wù)的堆棧指針P,通過P依次將CPU現(xiàn)場恢復(fù),這時,系統(tǒng)就將控制權(quán)交給用戶創(chuàng)建的該任務(wù)進(jìn)程,直到該任務(wù)堵塞或者被其他更高優(yōu)先級的任務(wù)搶占CPU。該函數(shù)僅在多任務(wù)啟動時被執(zhí)行一次,之后多任務(wù)的調(diào)度和切換由以下函數(shù)實現(xiàn)。
332 OCtxsw( )
可實現(xiàn)任務(wù)級的上下切換,任務(wù)級切換是通過WI或者RAP人為制造的中斷來實現(xiàn)。IR的向量地址必須指向OCtxw( ),這一中斷完成的功能為:保存任務(wù)的環(huán)境變量(主要是寄存器的值,通過入棧來實現(xiàn)),將當(dāng)前P存入任務(wù)控制塊中,載入就緒最高優(yōu)先級任務(wù)的P,恢復(fù)就緒態(tài)最高優(yōu)先級任務(wù)的環(huán)境變量,中斷返回,以完成任務(wù)級的切換。
333 OIntCtxw( )
中斷級的任務(wù)切換,在時鐘中斷IR中(中斷服務(wù)例程)如果發(fā)現(xiàn)有高優(yōu)先級等待的時鐘信號到來,則在中斷中退出后并不返回被中斷任務(wù),而是直接調(diào)度高優(yōu)先級的任務(wù)執(zhí)行,從而能夠盡快地讓高優(yōu)先級任務(wù)得到響應(yīng),保證系統(tǒng)的實時性能。其原理基本上與任務(wù)級的切換相同,但是由于進(jìn)人中斷時已經(jīng)保存了被中斷任務(wù)的CPU現(xiàn)場,因此不再進(jìn)行類似的操作,只需對堆棧指針做相應(yīng)調(diào)整。
334 OicklR( )
OickIR( )是一個周期性函數(shù),為內(nèi)核提供時鐘節(jié)拍中斷。頻率越高、系統(tǒng)負(fù)荷越大、其周期的大小[LL]決定了內(nèi)核所能給應(yīng)用系統(tǒng)提供的最小時間間隔。一般只限于毫秒級(跟處理器有關(guān)),對于要求更加苛刻的任務(wù),需要用戶自己建立中斷來解決。該函數(shù)具體內(nèi)容:保存寄存器,調(diào)用OIntEnter( ),調(diào)用Oimeick( ),調(diào)用OIntExit( ),恢復(fù)寄存器,中斷返回。但注意不要在Otaut( )之前調(diào)用OickIR( )。
完成以上3個程序的改寫,μC/O-Ⅱ就可以在3C44BOX上正確運行。
4 結(jié) 語
家居智能控制系統(tǒng)是家庭內(nèi)外信息交換和家電控制的平臺。本文采用AMUNG公司的3C44BOX芯片設(shè)計硬件和軟件,克服8位單片機處理速度慢、接口資源和存儲資源不足的限制。在實驗調(diào)試過程中,該系統(tǒng)運行狀況良好、工作穩(wěn)定。證明其設(shè)計是實用、有效的。但智能家居嵌入式系統(tǒng)是一個比較大的系統(tǒng),目前只是涉及到其中核心部分,其他部分還需繼續(xù)探討。
參 考 文 獻(xiàn)
[1]戚繼忠,王自強基于ARM7DMI實現(xiàn)CF卡存儲的文件系統(tǒng)設(shè)計[J]微處理機,2007,28(1):114-11,118
�。�2]王田苗嵌入式系統(tǒng)設(shè)計與實例開發(fā)——基于ARM處理器與μC/O-Ⅱ?qū)崟r操作系統(tǒng)[M]北京:清華大學(xué)出版社,2003
�。�3]李蘭英,楊晨基于3C44BOX的智能家居終端控制系統(tǒng)的設(shè)計與實現(xiàn)[J]哈爾濱理工大學(xué)學(xué)報,2007,12(3):87-89,93
�。�4]宋寅卯,張青波μC/O-Ⅱ在3C44B0X上的移植[J]微計算機信息,200(4):131-132
�。郏菔Y小平,施衛(wèi)東,郎濤,等基于ARM 的水泵性能測試系統(tǒng)開發(fā)[J]中國農(nóng)村水利水電,2007(10):102-104
�。�6]Jean JLabrose嵌入式實時操作系統(tǒng)基于μC/O-Ⅱ[M]2版邵貝貝,譯北京:北京航空航天大學(xué)出版社,2003
�。�7]俞露基于ARM的嵌入式系統(tǒng)硬件設(shè)計[D]杭州:浙江大學(xué),2003
�。�8]楊連沁基于嵌入式3G44BOX 的家居智能控制系統(tǒng)設(shè)計[J]儀器儀表標(biāo)準(zhǔn)化與計量,2007(3):-6
�。�9]劉卉,劉建輝,李新嵌入式技術(shù)推動家居智能化發(fā)展[J]中國科技信息,2007():144-14
�。�10]張明健,趙乃卓無線藍(lán)牙技術(shù)在智能家居中的應(yīng)用[J]遼寧師范大學(xué)學(xué)報:自然科學(xué)版,2007(4):18-21
�。�11]薛宏全,楊琳嵌入式智能家居系統(tǒng)連入Internet的研究和實現(xiàn)[J]現(xiàn)代電子技術(shù),2007,30(13 ):17-17
關(guān)鍵詞:μC/O-Ⅱ;3C44B0X;智能家居;嵌入式系統(tǒng)
Embedded ystem Design of Intelligent ome Based on 3C44B0X & μC/O-Ⅱ
LIU Gang
(Wenzhou Vocational College of cience & echnology,Wenzhou,32006,China)
Abstract:In order to improve the intelligence level of home,offering one hardware and software design for an intelligent home controller based on the 3C44BOX CMO chip and Bluetooth communication technologyIt is composed of memory systems,Ethernet,Bluetooth communication,temperature detecting and real-time testing systemhe methods to transplant the open-resourced,real-time and multitask μC/O-Ⅱ operating system on the ARM microprocessor and 3C44BOX are introduced,also the main steps for it are explained in brief
Keywords:μC/O-Ⅱ;3C44B0X;intelligent home;embedded system
隨著社會經(jīng)濟的飛速發(fā)展及計算機控制技術(shù)等科技的進(jìn)步,人們對自身的生活和工作環(huán)境有了更高的要求,由此對家居智能化控制系統(tǒng)的要求也越來越緊迫。設(shè)計家居智能化控制系統(tǒng),對促進(jìn)住宅現(xiàn)代化建設(shè)具有重要意義。家居智能化控制系統(tǒng)就是指利用先進(jìn)的計算機技術(shù)、網(wǎng)絡(luò)通信技術(shù)、綜合布線技術(shù),將與家居生活相關(guān)的各種子系統(tǒng)有機結(jié)合,從而進(jìn)行統(tǒng)籌管理,使家居生活更加舒適、安全、有效。
近年來,嵌入式系統(tǒng)設(shè)備全面滲透到人們?nèi)粘I畹母鱾領(lǐng)域,本文針對智能家居嵌入式系統(tǒng)的軟硬件設(shè)計需求,以3C44B0X為處理器進(jìn)行智能家居系統(tǒng)的硬件設(shè)計,以實現(xiàn)μC/O-Ⅱ在3C44B0X上的移植。
1 軟硬件選擇
目前主要的嵌入式處理器類型有386EX,C-400,Power PC,MIP,ARM/trong,ARM系列等,其中ARM以其小體積、低功耗、低成本、高性能成為嵌入式處理器首選。3C44B0X是amsung公司推出的16/32位RIC處理器,基于ARM7DMI內(nèi)核,提供3級流水線結(jié)構(gòu)。它一方面具有ARM處理器低功耗、高性能的特點,同時又具有非常豐富的片上資源。其特點如下:
(1)內(nèi)置鎖相環(huán)(PLL),系統(tǒng)主頻最高達(dá)66 Mz;
(2)8路l0位ADC,I2C,I2總線控制器,6個PWM定時器;
(3)4種工作模式,正常、慢速、閑置和停止,可以根據(jù)需要切換系統(tǒng)工作方式,使系統(tǒng)功耗降低到最低限度;(4)內(nèi)置彩色LCD控制器(最大支持26色的DN),71個通用可編程I/O口和實時時鐘(RC)。
由此可以看出,3C44BOX具有高性能、低功耗、接口資源豐富的特點。這些特點可以較好地滿足家居智能控制系統(tǒng)的設(shè)計需要。作為家居智能控制系統(tǒng),除了具有局域網(wǎng)接口、PN接口、R 48接口、藍(lán)牙接口外,還應(yīng)提供音頻視頻接口、UB接口、報警傳感器接口等。這些接口可以實現(xiàn)音頻視頻自動切換、多臺PC同時上網(wǎng)、與各PC機結(jié)合完成家庭設(shè)備管理等功能。
μC/O-Ⅱ是一種源碼公開的實時嵌入式操作系統(tǒng)。它完全是占先式的實時內(nèi)核,是基于優(yōu)先級的,即總是讓就緒態(tài)中優(yōu)先級最高的任務(wù)先運行,因此實時性比非占先式的內(nèi)核要好。它包含了實時內(nèi)核、任務(wù)管理、時間管理、任務(wù)問通信同步(信號量、郵箱、消息隊列)和內(nèi)存管理等功能;它的絕大部分代碼用C語言編寫,可移植性強。目前,μC/O-Ⅱ絕大多數(shù)可以在8位、l6位、32位以至64位微處理器、微控制器、數(shù)字信號處理器(DP)上運行。
2 智能家居硬件設(shè)計
在選定了處理器之后,外圍電路就可按要求進(jìn)行設(shè)計。其硬件框圖如圖1所示,主要包括:
21 存儲器系統(tǒng)
其中靜態(tài)存儲器由FLA組成,用于存儲智能家居中的嵌入式操作系統(tǒng)、P服務(wù)器、家庭網(wǎng)絡(luò)服務(wù)器以及支持各種服務(wù)所需的文件系統(tǒng)。動態(tài)存儲器采用DRAM,以提高系統(tǒng)的允許速度和采用操作系統(tǒng)來保證系統(tǒng)的穩(wěn)定性,整個智能家居系統(tǒng)軟件平臺存儲在FLA中,在系統(tǒng)啟動時,將從FLA中運行Bootloader,解壓縮操作系統(tǒng),并將其搬移到DRAM中,完成搬移之后,所有程序從DRAM中運行。其中,F(xiàn)LA選用公司生產(chǎn)的39VF160芯片。39VF160采用CMO工藝設(shè)計,支持1 M的地址空間,20條地址總線,16條數(shù)據(jù)總線。DRAM選用ynix公司生產(chǎn)的Y7V641620芯片。Y7V641620存儲容量為4組×16 M(8 MB),由于采用行/列地址鎖存機制,由行列地址共同構(gòu)成20條地址線,完成1 M的尋址范圍。
22 輸入/輸出系統(tǒng)
包含LCD液晶顯示、鍵盤以及微型打印機等,可以基本滿足測試數(shù)據(jù)等顯示以及人機交互的需要。
23 外部通訊接口
包括R 232串口、以太網(wǎng)接口。R 232接口用于系統(tǒng)同PC機之間的通訊,可以把測試系統(tǒng)保存的數(shù)據(jù)導(dǎo)出來,本系統(tǒng)采用國際通用的R 232C作為串行接口;以太網(wǎng)接口則可以把整個測試系統(tǒng)連接到互聯(lián)網(wǎng)上,從而實現(xiàn)該測試系統(tǒng)的遠(yuǎn)程監(jiān)控。
24 藍(lán)牙通信模塊
在家居控制器上使用藍(lán)牙技術(shù)主要是為了給家居控制器的各個功能模塊提供無線傳輸?shù)姆绞�。在家居中央控制器上可以采用藍(lán)牙模塊加開放藍(lán)牙協(xié)議的方式開發(fā)藍(lán)牙功能,綜合考慮成本、結(jié)構(gòu)等因素,信息家電可以采用藍(lán)牙模塊加單片機的方式實現(xiàn)藍(lán)牙功能。將整個藍(lán)牙核心協(xié)議棧移植到單片機中顯然不合實際,可以采用這樣的開發(fā)方案:在藍(lán)牙CI層的基礎(chǔ)上,根據(jù)信息家電信息傳輸?shù)膶嶋H需求,建立相關(guān)協(xié)議,利用單片機直接和藍(lán)牙硬件模塊交換CI指令,實現(xiàn)信息交互。單片機采集信息家電的相關(guān)信息通過藍(lán)牙模塊發(fā)送出去,藍(lán)牙模塊也可以將接收到的命令用CI指令傳遞給單片機執(zhí)行。
2 溫度、濕度檢測和實時時鐘實現(xiàn)模塊
主要實現(xiàn)對室內(nèi)環(huán)境的監(jiān)控,便于控制系統(tǒng)采取適當(dāng)?shù)姆绞娇刂剖覂?nèi)環(huán)境。其中溫度采用溫度傳感器實現(xiàn),實時時鐘采用3C440BX自帶的RC模塊實現(xiàn)。
3 μC/O-Ⅱ在3C44B0X上的移植
μC/O-Ⅱ在3C44B0X上的移植,需要修改3個與ARM體系相關(guān)的文件:O_CPU,O_CPU_CC,O_CPUAM 。在μC/O-Ⅱ的移植過程中,采用AD作為編譯器,AD由一套完備的應(yīng)用程序構(gòu)成,可用來編寫和調(diào)試ARM系列的RIC處理器的應(yīng)用程序,并可通過主機和實時分析工具讓使用者對應(yīng)用程序進(jìn)行完整的分析,加速實時嵌入式系統(tǒng)的開發(fā)和測試。3.1設(shè)置O_CPU中與處理器和編譯器相關(guān)的代碼
這部分代碼的定義主要包括數(shù)據(jù)類型的定義、開關(guān)中斷代碼的宏定義、任務(wù)切換時執(zhí)行代碼的定義和堆棧增長方向的定義。在3C44B0X中,所有的任務(wù)堆棧都是用O_K聲明數(shù)據(jù)類型,用O_ENER_CRIICAL( )和O_EXI_CRIICAL( )實現(xiàn)開關(guān)中斷,用結(jié)構(gòu)常量O_K_GROW來指定堆棧的生長方式。
32 編寫與操作系統(tǒng)相關(guān)的函數(shù)O_CPU_CC
μC/O-Ⅱ定義了6個函數(shù)在該文件中,其中Oasktklnit( )是任務(wù)堆棧初始化函數(shù),其他個函數(shù)都是ook函數(shù),即OaskCreateook( ),OaskDelook( ),Oaskwook( ),Oasktatook( ),0simeickook( )等接口函數(shù),是系統(tǒng)預(yù)留給用戶添加功能的,只要聲明,可以不包含代碼,當(dāng)用戶需要額外擴展功能時,在這個函數(shù)中選擇加入就可。實際上需要修改的只有Oasktklnit( )函數(shù),該函數(shù)用來初始化任務(wù)堆棧,使得任務(wù)堆棧建立時與發(fā)生1次中斷后的堆棧結(jié)構(gòu)相同。3C44B0X的堆棧結(jié)構(gòu)如圖2所示。在修改Oasktklnit( )函數(shù)時應(yīng)依照該結(jié)構(gòu)進(jìn)行。
33 編寫與處理器相關(guān)的函數(shù)O_CPUAM
這部分代碼是對處理器的寄存器進(jìn)行操作,必須用匯編語言來編寫,包括以下4個子函數(shù):
331 OtanighRdy( )
運行優(yōu)先級最高的就緒任務(wù),此函數(shù)是在O-tart( )多任務(wù)啟動后,負(fù)責(zé)從最高優(yōu)先級任務(wù)的CB控制塊中獲得該任務(wù)的堆棧指針P,通過P依次將CPU現(xiàn)場恢復(fù),這時,系統(tǒng)就將控制權(quán)交給用戶創(chuàng)建的該任務(wù)進(jìn)程,直到該任務(wù)堵塞或者被其他更高優(yōu)先級的任務(wù)搶占CPU。該函數(shù)僅在多任務(wù)啟動時被執(zhí)行一次,之后多任務(wù)的調(diào)度和切換由以下函數(shù)實現(xiàn)。
332 OCtxsw( )
可實現(xiàn)任務(wù)級的上下切換,任務(wù)級切換是通過WI或者RAP人為制造的中斷來實現(xiàn)。IR的向量地址必須指向OCtxw( ),這一中斷完成的功能為:保存任務(wù)的環(huán)境變量(主要是寄存器的值,通過入棧來實現(xiàn)),將當(dāng)前P存入任務(wù)控制塊中,載入就緒最高優(yōu)先級任務(wù)的P,恢復(fù)就緒態(tài)最高優(yōu)先級任務(wù)的環(huán)境變量,中斷返回,以完成任務(wù)級的切換。
333 OIntCtxw( )
中斷級的任務(wù)切換,在時鐘中斷IR中(中斷服務(wù)例程)如果發(fā)現(xiàn)有高優(yōu)先級等待的時鐘信號到來,則在中斷中退出后并不返回被中斷任務(wù),而是直接調(diào)度高優(yōu)先級的任務(wù)執(zhí)行,從而能夠盡快地讓高優(yōu)先級任務(wù)得到響應(yīng),保證系統(tǒng)的實時性能。其原理基本上與任務(wù)級的切換相同,但是由于進(jìn)人中斷時已經(jīng)保存了被中斷任務(wù)的CPU現(xiàn)場,因此不再進(jìn)行類似的操作,只需對堆棧指針做相應(yīng)調(diào)整。
334 OicklR( )
OickIR( )是一個周期性函數(shù),為內(nèi)核提供時鐘節(jié)拍中斷。頻率越高、系統(tǒng)負(fù)荷越大、其周期的大小[LL]決定了內(nèi)核所能給應(yīng)用系統(tǒng)提供的最小時間間隔。一般只限于毫秒級(跟處理器有關(guān)),對于要求更加苛刻的任務(wù),需要用戶自己建立中斷來解決。該函數(shù)具體內(nèi)容:保存寄存器,調(diào)用OIntEnter( ),調(diào)用Oimeick( ),調(diào)用OIntExit( ),恢復(fù)寄存器,中斷返回。但注意不要在Otaut( )之前調(diào)用OickIR( )。
完成以上3個程序的改寫,μC/O-Ⅱ就可以在3C44BOX上正確運行。
4 結(jié) 語
家居智能控制系統(tǒng)是家庭內(nèi)外信息交換和家電控制的平臺。本文采用AMUNG公司的3C44BOX芯片設(shè)計硬件和軟件,克服8位單片機處理速度慢、接口資源和存儲資源不足的限制。在實驗調(diào)試過程中,該系統(tǒng)運行狀況良好、工作穩(wěn)定。證明其設(shè)計是實用、有效的。但智能家居嵌入式系統(tǒng)是一個比較大的系統(tǒng),目前只是涉及到其中核心部分,其他部分還需繼續(xù)探討。
參 考 文 獻(xiàn)
[1]戚繼忠,王自強基于ARM7DMI實現(xiàn)CF卡存儲的文件系統(tǒng)設(shè)計[J]微處理機,2007,28(1):114-11,118
�。�2]王田苗嵌入式系統(tǒng)設(shè)計與實例開發(fā)——基于ARM處理器與μC/O-Ⅱ?qū)崟r操作系統(tǒng)[M]北京:清華大學(xué)出版社,2003
�。�3]李蘭英,楊晨基于3C44BOX的智能家居終端控制系統(tǒng)的設(shè)計與實現(xiàn)[J]哈爾濱理工大學(xué)學(xué)報,2007,12(3):87-89,93
�。�4]宋寅卯,張青波μC/O-Ⅱ在3C44B0X上的移植[J]微計算機信息,200(4):131-132
�。郏菔Y小平,施衛(wèi)東,郎濤,等基于ARM 的水泵性能測試系統(tǒng)開發(fā)[J]中國農(nóng)村水利水電,2007(10):102-104
�。�6]Jean JLabrose嵌入式實時操作系統(tǒng)基于μC/O-Ⅱ[M]2版邵貝貝,譯北京:北京航空航天大學(xué)出版社,2003
�。�7]俞露基于ARM的嵌入式系統(tǒng)硬件設(shè)計[D]杭州:浙江大學(xué),2003
�。�8]楊連沁基于嵌入式3G44BOX 的家居智能控制系統(tǒng)設(shè)計[J]儀器儀表標(biāo)準(zhǔn)化與計量,2007(3):-6
�。�9]劉卉,劉建輝,李新嵌入式技術(shù)推動家居智能化發(fā)展[J]中國科技信息,2007():144-14
�。�10]張明健,趙乃卓無線藍(lán)牙技術(shù)在智能家居中的應(yīng)用[J]遼寧師范大學(xué)學(xué)報:自然科學(xué)版,2007(4):18-21
�。�11]薛宏全,楊琳嵌入式智能家居系統(tǒng)連入Internet的研究和實現(xiàn)[J]現(xiàn)代電子技術(shù),2007,30(13 ):17-17