<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM芯片LPC2214和μCOS-II的家庭智能終端的設計與實(shí)現

基于A(yíng)RM芯片LPC2214和μCOS-II的家庭智能終端的設計與實(shí)現

作者: 時(shí)間:2015-04-12 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.1 家庭智能終端軟件的總體規劃

本文引用地址:http://dyxdggzs.com/article/272393.htm

  家庭智能終端軟件部分包括遠程通信模塊、RS-485通信模塊、無(wú)線(xiàn)通信模塊、232通信模塊、報警檢測模塊、聯(lián)動(dòng)控制模塊以及電話(huà)和語(yǔ)音控制模塊。根據以上劃分,在μCOS-Ⅱ操作系統中定義了遠程通信任務(wù)、485通信任務(wù)、232通信任務(wù)、報警檢測任務(wù)、聯(lián)動(dòng)控制任務(wù)、電話(huà)語(yǔ)音控制任務(wù)以及藍牙通信任務(wù)。各任務(wù)的優(yōu)先級和堆??臻g分配如表l。

  

 

  軟件設計采用模塊化設計,保證程序具有良好的可移植性和可重用性,各種軟件模塊分別屬于不同的程序層。如圖3所示,筆者將軟件模塊分為三個(gè)程序集合,即軟件的程序層。內層是μCOS-Ⅱ內核,承擔任務(wù)管理、內存管理和時(shí)間管理功能。應用程序層主要完成數據處理和請求內核服務(wù)的功能。中間件層移植和編寫(xiě)各部分通信協(xié)議和底層接口芯片的驅動(dòng)程序。圖3中最外圍層為硬件接口層,它不是實(shí)際的軟件層,并不做軟件編寫(xiě)工作。智能終端的軟件部分非常復雜,由于篇幅所限,本文重點(diǎn)介紹操作系統的移植和遠程監控及控制。

  

 

  2.2 μCOS-Ⅱ操作系統在上的移植

  將μCOS-Ⅱ操作系統移植到上需要0S_CPU.H、OS_CPEL_C.C、OS_CPU_A.ASM三個(gè)文件。OS_CPU.H主要定義不依賴(lài)于編譯的數據類(lèi)型、指定堆棧的生長(cháng)方式以及定義底層接口。

  為了具有良好的可移植性,μCOS-Ⅱ并不使用C語(yǔ)言中的short、im、long等數據類(lèi)型,而是以整數數據類(lèi)型代替。有四種堆棧形式:滿(mǎn)遞減、滿(mǎn)遞增、空遞減、空遞增,但是ADS1.2編譯器只支持滿(mǎn)遞減堆棧,即選擇由上向下增長(cháng)方式。

  定義底層接口是為了在C語(yǔ)言中調用匯編代碼高效地完成某些系統服務(wù)功能。本文采用軟中斷指令實(shí)現底層接口。底層接口代碼如下:

  

 

  OS_CPU_C.C文件首先根據LPC2214體系結構和ADSl.2編譯器定義任務(wù)的堆棧結構。在定義堆棧結構的函數:OS_STK OSTaskStkInit(void(*task)void(*pd).void*plat,OS_STK**ptos,INT16U opt)中定義了一個(gè)全局變量OsEnterSum,主要用于對關(guān)中斷次數進(jìn)行計數,這樣可以實(shí)現開(kāi)中斷和關(guān)中斷的嵌套。此文件也包括實(shí)現軟中斷的詳細代碼。

  

 

  此外,本文件還包括運行多任務(wù)時(shí)系統啟動(dòng)前調用最高優(yōu)先級任務(wù)的函數void0SStartHighRdy(void)以及幾個(gè)供用戶(hù)編寫(xiě)的Hook函數。

  OS_CPU_A.ASM包括四個(gè)簡(jiǎn)單的匯編語(yǔ)言函數:調用啟動(dòng)前最高優(yōu)先級任務(wù)函數OSStartHigh Rdy(),從低優(yōu)先級任務(wù)切換到高優(yōu)先級任務(wù)的函數OSCtxSw()、OS-IntCtxSw(),時(shí)鐘節拍中斷處理函數OSTickISR()。任務(wù)切換函數在任務(wù)切換之前要利用堆棧保存被切換任務(wù)的有用狀態(tài)。LPC2214具有17個(gè)寄存器,但并不是所有的寄存器都需要進(jìn)入堆棧。為了節省堆??諉?wèn)和減少切換時(shí)的時(shí)間開(kāi)銷(xiāo),建立了一個(gè)任務(wù)切換時(shí)的堆棧結構,如圖4所示。

  

 

  2.3 遠程監控和遠程控制

  遠程監控與遠程控制的軟件設計采用客戶(hù)端一服務(wù)器方式。TCP/IP協(xié)議的傳輸層有兩個(gè)數據傳輸協(xié)議:傳輸控制協(xié)議TCP和用戶(hù)數據報傳輸協(xié)議UDP,二者各有特點(diǎn)。UDP協(xié)議是提供最少服務(wù)和費用的協(xié)議,它不基于連接來(lái)傳輸數據,因此UDP的傳送數據是不可靠的。TCP協(xié)議是基于連接的雙向傳輸的可靠數據傳輸協(xié)議,但是TCP協(xié)議的使用費用較高。在智能終端的設計中,充分考慮了數據傳輸的便利性和可靠性,并且鑒于系統能夠提供足夠的資源,根據數據的不同要求,采用了不同的傳輸層協(xié)議。在軟件設計中使用Socket API函數來(lái)編寫(xiě)UDP和TCP通信任務(wù)。TCP和UDP通信時(shí),Socket API的應用流程如圖5所示。

  

 

  家庭智能終端是家庭內外信息交換和家電控制的平臺。本文采用Philipes公司的7芯片LPC2214和μCOS-Ⅱ操作系統設計了硬件和軟件,克服了8位單片機處理速度慢、接口資源和存儲資源不足的限制。利用RS-485和藍牙網(wǎng)絡(luò )作為家庭內部網(wǎng)絡(luò ),局域網(wǎng)和電話(huà)網(wǎng)絡(luò )作為外部網(wǎng)絡(luò ),保證了大數據量傳輸的穩定性和可靠性,并且兼顧了傳統的電話(huà)網(wǎng)絡(luò )遠程控制方式。實(shí)踐表明。系統具有良好的實(shí)時(shí)性和穩定性,在高端家庭智能終端領(lǐng)域具有巨大的發(fā)展潛力。

tcp/ip相關(guān)文章:tcp/ip是什么


藍牙技術(shù)相關(guān)文章:藍牙技術(shù)原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ARM LPC2214

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>