《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于LPC2214的家庭智能終端的設計與實現
基于LPC2214的家庭智能終端的設計與實現
林 勇,李因東,嚴彬彬
摘要: 介紹了智能終端的硬件和軟件實現,重點說明了μCOS-II在LPC2214上的移植以及TCP/IP協議棧的API函數Socket API的工作流程。
關鍵詞: ARM LPC2214
Abstract:
Key words :

  摘 要: 介紹了智能終端的硬件和軟件實現,重點說明了μCOS-II在LPC2214" title="LPC2214">LPC2214上的移植以及TCP/IP協議棧的API函數Socket API的工作流程。
  關鍵詞: 家庭智能終端 ARM μCOS-II嵌入實時操作系統 程序層 Socket API函數


  智能家居是指利用先進的計算機技術、網絡通信技術、綜合布線技術,將與家居生活有關的名種子系統有機地結合,通過統籌管理,使家居生活更加舒適、安全、有效。作為小區智能化的重要組成部分,智能家居平臺是通過其核心——家庭智能終端實現家居智能化。智能家居終端可實現系統信息的采集、信息輸入、邏輯處理、信息輸出、聯動控制等功能。早期的家庭智能終端網絡是基于電話網實現遠程監控和遠程控制。由于電話網絡的帶寬限制以及較高的使用成本,使得家庭智能終端無法推廣。隨著計算機技術和通信技術的發展,基于IP技術的遠程通信已經成為家庭智能終端開發的重點。目前,基于8位單片機和TCP/IP協議的遠程通信設備已大量出現。但是由于8位單片機工作頻率和存儲量的限制,使得操作系統和完整的IP協議無法移植,遠程監控和遠程控制的實時性和大數據量可靠通信難以保證,從而成為家庭智能終端開發的瓶頸。利用成熟的ARM芯片和μCOS-II操作系統,可以有效地解決這一難題。
  ARM(Advanced RISC Machines)是精簡指令集計算機,它集成了典型的RISC結構特性。除此之外,ARM體系結構還具有地址自動增加和自動減少的尋址模式、多寄存器加載和存儲指令等特性。
  從最初開發至今,ARM已經經歷了5種主要的ARM指令集體系結構,以版本號V1~V5表示。常見的ARM7、ARM9、ARM10、SecurCore系列芯片都是ARM V4以上的體系結構。ARM7TDMI系列芯片是目前應用最廣泛的ARM芯片。其廣泛應用于多媒體和嵌入式設備,包括Internet設備、網絡和調制解調設備以及移動電話、PDA等無線設備。
  PLC2214是Philips公司生產的一種高性價比的ARM7TDMI(-S)芯片,主要應用于Internet網關、串行協議轉換、訪問控制等領域。
1 家庭智能終端的系統結構與硬件組成
1.1 家庭智能終端的系統結構
  家庭智能終端是家庭智能化的核心設備,是家庭內部網絡與外部網的中轉站。它通過各種協議轉換模塊和組網方式實現各項功能。該文提出的家庭智能終端主要具有以下功能:安全防范、聯動控制、遠程控制和監控、信息采集、家庭信息管理。外部網絡利用局域網與遠程終端(用戶終端、小區管理終端、收費終端等)進行信息傳送。此外考慮到因特網的不穩定性,系統還預留了PSTN接口以增加系統冗余。采用RS-485總線和藍牙技術實現家庭內部網絡,將無線與有線相結合滿足更多設備的需要。家庭智能終端的網絡系統如圖1所示。


1.2 家庭智能終端的硬件實現
  本文以LPC2214-S作為中心控制芯片。LPC2214-S是基于實時仿真和跟蹤的16/32位ARM7TDMI-S CPU的微控制器,并帶有256KB的高速片內Flash存儲器。片內128位寬度的存儲器接口和加速器結構可實現高達60MHz的操作頻率。LPC2214還在片內集成了16KB的SRAM,并且提供了豐富的接口資源,包括2個16C550工業標準UART異步串行口,1個高速I2C接口(400Kbps),2個SPI接口及112個GPIO口。其片內Boot裝載程序可實現在系統編程(ISP)和在應用編程(IAP)。此外芯片提供空閑和掉電兩種低功耗模式。
  由此可以看出,LPC2214-S具有高性能、低功耗、接口資源豐富的特點。這些特點可以較好地滿足基于網絡的家庭智能終端的設計需要。
  作為家庭自動化的控制中心,家庭智能終端除了具有局域網接口、PSTN接口、RS-485接口、藍牙接口外,還提供音頻視頻接口、HUB接口、RS-232接口、報警傳感器接口等。這些接口可以實現音視頻自動切換、多臺PC同時上網、與PC機結合完成家庭事物管理等功能。圖2為家庭智能終端主控模塊的硬件實現圖。


1.3 家庭智能終端工作原理
  利用基于藍牙技術的遙控設備或基于RS-485總線的有線鍵盤,可以設置家庭智能終端的各項參數,打開或關閉485總線或具有藍牙模塊的電器設備,設置報警模塊的報警方式、撤布防等。此外遙控設備和鍵盤上還有緊急求助按鈕,可以通過電話和網絡向遠程管理中心發送報警信號。家庭智能終端還具有聯動控制模塊,當485總線或藍牙網絡上的一個設備發生某個特定的動作時,可以引發另外一些設備做設定的狀態變化,從而達到方便用戶和節省能耗的效果。以上介紹的是本地操作的工作原理。關于遠程控制和遠程監控,本文提供了兩種方式:基于電話網絡和基于互聯網。由于基于電話網絡的遠程控制和遠程監控已經有了大量介紹,這里主要介紹互聯網方式的遠程控制和監控。
  家庭智能終端是通過Web技術提供遠程監控和控制服務的。用戶在任意一臺連接到因特網的PC機上打開Windows IE,登錄小區服務器,輸入家庭智能終端的IP地址和相關密碼,便可以看到智能終端上的Web頁。在Web頁上可以查看家庭內部網絡各種設備的狀態,并且可以改變某些設備的狀態。這里利用小區網關完成小區局域網與外網的連接,小區內部局域網上的IP地址可以使用私有地址,從而節省費用。
2 家庭智能終端軟件設計
  嵌入實時操作系統μCOS-II是一種占先式多任務操作系統,可固化、可裁減、移植性好,具有良好的可靠性和穩定性。它支持64個任務,具有信號量、消息郵箱、消息隊列等多種進程間通信機制,已經在商業領域得到了成功的應用。由于μCOS-II操作系統本身并不帶TCP/IP協議棧,因此在操作系統上需要移植IP協議。本文采用μCOS-II+LWIP來實現家庭智能終端的網絡通信。
2.1 家庭智能終端軟件的總體規劃
  家庭智能終端軟件部分包括遠程通信模塊、RS-485通信模塊、無線通信模塊、232通信模塊、報警檢測模塊、聯動控制模塊以及電話和語音控制模塊。根據以上劃分,在μCOS-II操作系統中定義了遠程通信任務、485通信任務、232通信任務、報警檢測任務、聯動控制任務、電話語音控制任務以及藍牙通信任務。各任務的優先級和堆棧空間分配如表1。


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


2.2 μCOS-II操作系統在LPC2214上的移植
  將μCOS-II操作系統移植到PLC2214上需要OS_CPU.H、OS_CPU_C.C、OS_CPU_A.ASM三個文件。OS_CPU.H主要定義不依賴于編譯的數據類型、指定堆棧的生長方式以及定義底層接口。
  為了具有良好的可移植性,μCOS-II并不使用C語言中的short、int、long等數據類型,而是以整數數據類型代替。PLC2214有四種堆棧形式:滿遞減、滿遞增、空遞減、空遞增,但是ADS1.2編譯器只支持滿遞減堆棧,即選擇由上向下增長方式。
  定義底層接口是為了在C語言中調用匯編代碼高效地完成某些系統服務功能。本文采用軟中斷指令實現底層接口。底層接口代碼如下:
  #define OS_CRITICAL_METHOD 2
  /*選擇開、關中斷的方式*/
  __swi(0x00) void OS_TASK_SW(void);
  /*任務級任務切換函數*/
  __swi(0x01) void _OSStartHighRdy(void);
  /*運行優先級最高的任務*/
  __swi(0x02) void OS_ENTER_CRITICAL(void);
  /*關中斷*/
  __swi(0x03) void OS_EXIT_CRITICAL(void);
  /*開中斷*/
  __swi(0x40) void*GetOSFunctionAddr(int Index);
  /*獲取系統服務函數入口*/
  __swi(0x41) void *GetUsrFunctionAddr(int Index);
  /*獲取自定義服務函數入口*/
  __swi(0x42) void OSISRBegin(void);
  /*中斷開始處理*/
  __swi(0x43) int OSISRNeedSwap(void);
  /*判斷中斷是否需要切換*/
  __swi(0x80) void ChangeToSYSMode(void);
  /*任務切換到系統模式*/
  __swi(0x81) void ChangeToUSRMode(void);
  /*任務切換到用戶模式*/
  __swi(0x82) void TaskIsARM(INT8U prio);
  /*任務代碼是ARM代碼*/
  __swi(0x83) void TaskIsTHUMB(INT8U prio);
  /*任務代碼是THUMB*/
  OS_CPU_C.C文件首先根據PLC2214體系結構和ADS1.2編譯器定義任務的堆棧結構。在定義堆棧結構的函數:OS_STK OSTaskStkInit(void(*task)void(*pd),void*pdata,OS_STK**ptos,INT16U opt)中定義了一個全局變量OsEnterSum,主要用于對關中斷次數進行計數,這樣可以實現開中斷和關中斷的嵌套。此文件也包括實現軟中斷的詳細代碼。
  void SWI_Exception(int SWI_Num,int*Regs)
  {
  OS_TCB *ptcb;
  switch(SWI_Num)
  {
  case 0x02:/*關中斷函數OS_ENTER_CRITICAL()*/
  __asm
  {
  MRS R0,SPSR
  ORR R0,R0,#NoInt
  MSR SPSR_c,R0
  }
  OsEnterSum++;
  break;
  case 0x03:/*開中斷函數OS_EXIT_CRITICAL()*/
  if (--OsEnterSum == 0)
  {
  __asm
  {
  MRS R0,SPSR
  BIC R0,R0,#NoInt
  MSR SPSR_c,R0
  }
  }
  break;
  ……
  }
  此外,本文件還包括運行多任務時系統啟動前調用最高優先級任務的函數void OSStartHighRdy(void)以及幾個供用戶編寫的Hook函數。
  OS_CPU_A.ASM包括四個簡單的匯編語言函數:調用啟動前最高優先級任務函數OSStartHighRdy( ),從低優先級任務切換到高優先級任務的函數OSCtxSw( )、OSIntCtxSw( ),時鐘節拍中斷處理函數OSTickISR( )。任務切換函數在任務切換之前要利用堆棧保存被切換任務的有用狀態。LPC2214具有17個寄存器,但并不是所有的寄存器都需要進入堆棧。為了節省堆棧空間和減少切換時的時間開銷,建立了一個任務切換時的堆棧結構,如圖4所示。


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


  家庭智能終端是家庭內外信息交換和家電控制的平臺。本文采用Philipes公司的ARM7芯片LPC2214設計了硬件和軟件,克服了8位單片機處理速度慢、接口資源和存儲資源不足的限制。利用RS-485和藍牙網絡作為家庭內部網絡,局域網和電話網絡作為外部網絡,保證了大數據量傳輸的穩定性和可靠性,并且兼顧了傳統的電話網絡遠程控制方式。實踐表明,系統具有良好的實時性和穩定性,在高端家庭智能終端領域具有巨大的發展潛力。
參考文獻
1 周立功.ARM與嵌入式系統基礎教程.北京:北京航空航天大學出版社,2004
2 Labrosse J J.μCOS-II源碼公開的實時嵌入式操作系統.北京:中國電力出版社,2004
3 王田苗.嵌入式系統設計與實例開發.北京:清華大學出版社,2002
4 厲魯衛,包建榮.基于ARM嵌入式WEB服務器的研究與設計.計算機工程與設計,2004;25(5)
5 杜春雷.ARM體系結構與編程.北京:清華大學出版社,2003

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久中文字幕一区| 国产精品久久久久久久久久尿 | 亚洲人成人99网站| 激情久久一区| 激情亚洲一区二区三区四区| 国产欧美精品在线观看| 国产精品久久久久久久久久三级 | 亚洲欧美日韩国产精品| 亚洲影院色无极综合| 在线中文字幕不卡| 一区二区三区久久精品| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲欧美日本精品| 亚洲欧美日韩中文在线制服| 亚洲免费在线电影| 欧美亚洲综合网| 久久精品国产精品| 亚洲国产成人午夜在线一区| 亚洲国产婷婷香蕉久久久久久| 亚洲高清自拍| 亚洲卡通欧美制服中文| 一区二区欧美日韩| 亚洲一区激情| 午夜精品一区二区三区在线播放 | a91a精品视频在线观看| 夜夜嗨av一区二区三区网页| 亚洲视频一区在线| 亚洲永久在线观看| 欧美中文字幕不卡| 久久综合精品国产一区二区三区| 蜜桃av一区二区| 欧美日韩国产大片| 国产精品人人做人人爽人人添| 国产亚洲精品福利| 91久久国产自产拍夜夜嗨| 一本到高清视频免费精品| 亚洲制服丝袜在线| 亚洲国产电影| 一区二区三区鲁丝不卡| 欧美一区二区女人| 久久综合五月| 欧美视频在线不卡| 国产亚洲欧美日韩在线一区| 1024亚洲| 亚洲深爱激情| 久久精品视频99| 亚洲午夜激情| 久久精品亚洲| 欧美精品一区二区三区在线播放| 国产精品国码视频| 樱桃国产成人精品视频| 99热在线精品观看| 久久国产日本精品| 99精品国产在热久久| 午夜天堂精品久久久久| 蜜臀久久99精品久久久久久9| 欧美揉bbbbb揉bbbbb| 国产亚洲人成a一在线v站| 最新日韩av| 午夜久久美女| 99成人免费视频| 久久久国产午夜精品| 欧美日韩麻豆| 黄色国产精品一区二区三区| 99在线|亚洲一区二区| 午夜视频一区二区| 在线视频精品一| 久久全球大尺度高清视频| 欧美视频在线观看免费网址| 韩国亚洲精品| 亚洲视频免费在线| 亚洲片在线资源| 欧美一区日本一区韩国一区| 欧美久久久久免费| 国产一区二区精品久久| 99视频一区二区三区| 亚洲激情校园春色| 久久国产精品72免费观看| 欧美日韩理论| 亚洲大胆av| 久久不射中文字幕| 午夜精品久久久久久久白皮肤| 欧美精品成人| 韩日精品视频一区| 亚洲一区二区三区四区五区午夜| 亚洲人成人99网站| 久久免费偷拍视频| 国产九色精品成人porny| av成人免费在线观看| 亚洲欧洲日产国产综合网| 欧美在线|欧美| 国产精品久久久久免费a∨大胸 | 亚洲免费电影在线| 91久久综合亚洲鲁鲁五月天| 欧美在线视频在线播放完整版免费观看| 欧美另类女人| 亚洲高清资源| 久久精品人人爽| 欧美综合国产精品久久丁香| 国产精品第一区| 99精品免费| 夜夜嗨av色一区二区不卡| 欧美成人69| 黄色成人av在线| 欧美在线播放一区| 欧美伊人精品成人久久综合97| 国产精品久久久久久亚洲调教| 亚洲美女在线视频| 一区二区三区免费网站| 久久精品导航| 久久久99国产精品免费| 国产日韩欧美日韩大片| 欧美亚洲视频在线观看| 午夜欧美精品久久久久久久| 国产精品国产a| 亚洲一区二区视频在线| 午夜精品www| 国产精品任我爽爆在线播放 | 午夜免费久久久久| 国产精品美腿一区在线看| av成人毛片| 亚洲影视在线播放| 国产精品初高中精品久久| 99ri日韩精品视频| 亚洲一级黄色| 国产精品毛片a∨一区二区三区|国 | 亚洲精品国产无天堂网2021| 亚洲欧洲精品成人久久奇米网| 另类国产ts人妖高潮视频| 亚洲高清二区| 亚洲精品在线观看免费| 欧美精品三级日韩久久| 亚洲精品久久久久| 亚洲午夜激情| 国产精品中文字幕在线观看| 欧美一区久久| 蜜臀av国产精品久久久久| 91久久国产综合久久蜜月精品 | 雨宫琴音一区二区在线| 亚洲人成亚洲人成在线观看| 欧美激情aaaa| 一区二区三区精密机械公司| 午夜精品久久久久久99热软件| 国产欧美一区二区精品性色| 久久精品一二三区| 欧美连裤袜在线视频| 亚洲性线免费观看视频成熟| 久久久久久91香蕉国产| 原创国产精品91| 一区二区三区高清不卡| 欧美特黄一区| 欧美一区二区三区在线观看视频| 美脚丝袜一区二区三区在线观看 | 亚洲精品日本| 久久精品99久久香蕉国产色戒| 国产综合av| 久久精品日产第一区二区三区| 欧美大胆成人| 亚洲夜间福利| 另类av一区二区| 亚洲最新视频在线播放| 欧美在线你懂的| 亚洲大胆在线| 亚洲永久免费| 狠狠v欧美v日韩v亚洲ⅴ| 日韩一区二区精品| 国产精品一区二区女厕厕| 91久久精品一区二区别| 国产精品porn| 亚洲国产精品va在线看黑人| 欧美日韩在线大尺度| 欧美在线三级| 欧美日韩视频第一区| 久久国产成人| 欧美日韩美女| 久久激情视频久久| 欧美午夜精品久久久| 亚洲第一精品夜夜躁人人爽 | 国产精品高清网站| 亚洲激情视频网| 国产精品视频免费观看| 91久久在线| 国产欧美三级| 中文日韩欧美| 狠狠久久亚洲欧美| 亚洲欧美在线免费观看| 亚洲缚视频在线观看| 欧美在线看片a免费观看| 日韩视频在线观看| 蜜桃精品久久久久久久免费影院| 亚洲专区欧美专区| 欧美伦理影院| 亚洲国产精品久久久久久女王| 国产精品激情电影| 日韩系列欧美系列| 伊人婷婷欧美激情| 久久精品99| 亚洲一区二区三区四区五区黄| 欧美精品日韩一区| 亚洲级视频在线观看免费1级|