《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产视频你懂得| 成在人线AV无码免费高潮喷水| 人妻内射一区二区在线视频 | 日本人与动zozo| 亚洲AV无码专区在线播放| 欧美精品blacked中文字幕| 女仆的味道hd中字在线观看| 久久久精品人妻一区二区三区| 疯狂做受XXXX国产| 国产成人高清在线播放| 91秒拍国产福利一区| 日本插曲的痛的30分钟| 亚洲一卡2卡4卡5卡6卡残暴在线| 波多野结衣中文字幕一区二区三区| 国产动作大片中文字幕| 五月婷婷六月天| 国产精品日本亚洲777| 99久久精品免费视频| 天海翼黄色三级| 一级毛片无遮挡免费全部| 无套内射无矿码免费看黄| 久久国产乱子伦免费精品| 暴力调教一区二区三区| 免费成人福利视频| 黑执事第二季免费观看| 天天影院良辰美景好时光电视剧 | 免费a级毛片出奶水| 精品香蕉久久久午夜福利| 国产v精品成人免费视频400条| 香蕉97碰碰视频免费| 在线天堂中文www官网| mp1pud麻豆媒体| 小荡货公共厕所| 东北女大战28公分黑人| 我和岳乱妇三级高清电影| 亚洲人成网男女大片在线播放 | 日日av拍夜夜添久久免费| 久久亚洲精品无码观看不卡| 日韩欧美综合在线二区三区| 五月天亚洲婷婷| 最近中文字幕国语免费完整|