當(dāng)前位置:首頁 > 電源 > 電源AC/DC
[導(dǎo)讀]摘 要: 介紹了智能終端的硬件和軟件實(shí)現(xiàn),重點(diǎn)說明了μCOS-II在LPC2214上的移植以及TCP/IP協(xié)議棧的API函數(shù)Socket API的工作流程。   關(guān)鍵詞: 家庭智能終端 ARM μCOS-II嵌入實(shí)時操作系統(tǒng) 程序?qū)?Socket API函數(shù)

摘 要: 介紹了智能終端的硬件和軟件實(shí)現(xiàn),重點(diǎn)說明了μCOS-IILPC2214上的移植以及TCP/IP協(xié)議棧的API函數(shù)Socket API的工作流程。
  關(guān)鍵詞: 家庭智能終端 ARM μCOS-II嵌入實(shí)時操作系統(tǒng) 程序?qū)?Socket API函數(shù)


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


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


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


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


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


2.3 遠(yuǎn)程監(jiān)控和遠(yuǎn)程控制
  遠(yuǎn)程監(jiān)控與遠(yuǎn)程控制的軟件設(shè)計采用客戶端-服務(wù)器方式。TCP/IP協(xié)議的傳輸層有兩個數(shù)據(jù)傳輸協(xié)議:傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報傳輸協(xié)議UDP,二者各有特點(diǎn)。UDP協(xié)議是提供最少服務(wù)和費(fèi)用的協(xié)議,它不基于連接來傳輸數(shù)據(jù),因此UDP的傳送數(shù)據(jù)是不可靠的。TCP協(xié)議是基于連接的雙向傳輸?shù)目煽繑?shù)據(jù)傳輸協(xié)議,但是TCP協(xié)議的使用費(fèi)用較高。在智能終端的設(shè)計中,充分考慮了數(shù)據(jù)傳輸?shù)谋憷院涂煽啃?,并且鑒于ARM系統(tǒng)能夠提供足夠的資源,根據(jù)數(shù)據(jù)的不同要求,采用了不同的傳輸層協(xié)議。在軟件設(shè)計中使用Socket API函數(shù)來編寫UDP和TCP通信任務(wù)。TCP和UDP通信時,Socket API的應(yīng)用流程如圖5所示。


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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉