国产V亚洲V天堂无码

<em id="7o0hz"><acronym id="7o0hz"><u id="7o0hz"></u></acronym></em>

    <tbody id="7o0hz"></tbody>
  • <rp id="7o0hz"></rp>
  • <li id="7o0hz"><acronym id="7o0hz"></acronym></li>
    1. 電子發燒友網 > 嵌入式技術 > ARM > 正文

      基于Cortex-M3內核的TFT觸摸屏在環境監控系統中的應

      ? 2010年09月29日 10:25 ? 次閱讀

        0 引言

        觸摸屏是一種新型的電子輸入設備,是目前最簡單、方便、自然的一種人機交互方式,它賦予了多媒體以嶄新的面貌,是極富吸引力的全新多媒體交互設備。將ARM Cortex-M3內核和TFT觸摸屏結合在一起,以環境監控系統為應用,對ARM公司的Cortex-M3內核進行了分析,并研究了Cortex-M3內核驅動TFT液晶屏幕的可行性。

        1 系統工作原理

        無線環境監控系統總體的設計框圖如圖1所示。以基于第二代Cortex-M3內核的LPC1758為核心,以TFT觸摸屏為顯示和控制單元,以2.4 GHz無線模塊為通信單元,合理移植μCOS-II系統,對環境參數進行監測和控制。

        

      無線環境監控系統總體的設計框圖 www.anielbakhru.com

        2 硬件電路設計與實現

        2.1 電源方案

        硬件電路降壓穩壓電路采用降壓穩壓芯片SPXlll7-3.3 V。電路在啟動過程中會產生較大的沖擊電流,會對其他電路造成電磁干擾,系統在電源中增加容值較大的電解電容以滿足系統中各項要求。降壓穩壓電路如圖2所示。

        

      降壓穩壓電路 www.anielbakhru.com

        硬件電路升壓穩壓電路是為TFT液晶屏提供直流12 V電壓驅動而設計的。該電路選用PT4102芯片,PT4102是一款由單節鋰電池(持續電流)來驅動至多個串聯LED的升壓轉換器,采用固定頻率電流模式來調節LED電流,并通過一個外部電流監測電阻來測量此電流,95 mV的低反饋電壓可降低功耗和提高效率,PT4102還含有電流限制以避免在輸出過載時對器件造成損害。升壓穩壓電路如圖3所示。

        2.2 MCU方案

        基于CorteX-M3的MCU選用的是荷蘭Philips公司LPCI000系列的LPC1758。運行頻率高達100 MHz,支持8個區域的存儲器保護單元(MPU),高達512 KB片內FLASH程序存儲器。增強型的FLASH存儲器加速器使能高速的100 MHz操作,而無需等待狀態(with zero wait states)?;ミB的多層AHB矩陣為每個AHB主機提供獨立的總線。這種互連所提供的通信不會有仲裁延時分開的APB總線允許高吞吐量,幾乎不會在CPU和DMA之間出現中止。

        系統采用12 MHz的無源晶振,為了保證晶振的諧振頻率和輸出幅度,在晶振的兩個引腳上加入了兩個22 pF的負載電容。在不影響電路正常工作的情況下,為了簡化電路設計,沒有將數字電路和模擬電路區分開來,VDDA與VDD直接相連、GNDA與GND直接相連。但是為了追求更優秀的模擬性能(ADC和模擬比較器模塊),可以另外安排一路3.3 V電源,連接到VDDA和GNDA,使其與VDD和GND分開。LPC1758部分電路圖如圖4所示。

        

      LPC1758部分電路圖 www.anielbakhru.com

        系統采用如圖5所示的RC復位電路。復位電路中的二極管是為了解決電源毛刺和電源緩慢下降等問題,而104電容可避免高頻諧波對電路的干擾。

        2.3 TFT觸摸屏方案

        TFT液晶顯示方案包括觸摸控制和液晶顯示兩個部分。為了保證顯示的速度要求和系統的穩定性,觸摸屏控制器選用的是TI公司的TSC20 46,該控制器為SPI接口,具有觸摸中斷功能,性價比很高。而液晶屏選用的是SPFD5408A,該屏幕為3.5英寸,具有高速8,9,16,18位并行接口??梢燥@示16位和18位的RGB色彩。

        觸摸屏控制電路主要是TSC2046的外圍電路。MISO,MOSI是TSC2046與MCU之間的信號線。SCK是時鐘線。X+/-,Y+/-是觸摸屏的信號,INT中觸摸中斷信號。VCC和VCCl是電路的供電信號。在輸入引腳為了保證電源的波形穩定性,避免高頻諧波對TSC2046的干擾,加入了1個0.1μF的濾波電容。觸摸屏控制電路如圖6所示。

        

      TFT液晶顯示電路 www.anielbakhru.com

        TFT液晶顯示電路包括模式選擇,16位接口,觸摸屏接口三個部分。SPFD5408A接口模式有7種模式,本設計中用的是16位并行接口模式。X+/-,Y+/-是四線電阻式觸摸屏的輸出線。

        3 軟件設計與實現

        為了提高系統的性能和滿足多任務處理的要求,系統中合理地移植了μCOS-Ⅱ操作系統。

        μCOS-Ⅱ可以簡單地看作是一個多任務的調度器,在這個任務調度器之上完善并添加了很多任務操作系統相關的一些系統服務。μCOS-Ⅱ 90%的代碼用C語言編寫,具有可移植性。移植工作的絕大部分都集中在多任務切換的實現上,因為這部分代碼主要是用來保存和恢復處理器現場(即相關寄存器),因此不能用C語言,只能使用特定的處理器匯編語言完成。為了使適時內核μCOS-Ⅱ能在Cortex-M3處理器上運行,同時為了保證代碼不依賴于編譯器和良好的擴展性。采用了不依賴于編譯器的數據類型,使用軟中斷SWI作為底層接口。移植μCOS-Ⅱ到Cortex-M3內核需要3個文件:C語言頭文件(OS_CPU.H),C程序源文件(OS_CPU_C.C),匯編程序源文件(OS_CPU_A.ASM)。除此之外,還有一個文件定義的匯編宏也是移植的重點,它是μCOS-Ⅱ為Cortex-M3通用的中斷服務程序的匯編和C函數的接口代碼。

        

        OS_CPU.H中包含兩部分的代碼,數據類型定義代碼和與處理器相關的代碼。其中數據類型重定義代碼是用C語言中short,int,long等,數據類型是與特定的處理器相關的,因此在μCOS-Ⅱ重新定義為移植性很強的定義方式。在OS_CPU.H剩下的部分是移植必須定義底層函數的聲明。在LPC1758的移植中為了使底層接口函數與處理器的狀態無關,同時使任務調用相應的函數不需要知道函數的位置。在本移植中使用軟中斷指令SWI作為底層接口,使用不同的功能號來區分各函數。調用這些底層函數,只需要使用一條SWI指令并跟上一個功能號來區別你要調用那個函數即可。任務切換函數為OS_TASK_SW(void),并使用軟中斷0x00。CPU_C.C中主要是軟中斷的實現和底層函數的實現及初始化任務堆棧函數的實現,其偽代碼如下:

        

        處理器能支持一定數量的數據存儲硬件堆棧;用C語言可以開中斷/關中斷,根據不同的Num值跳轉到不同的底層服務函數地址。

        系統的應用程序包括三個任務:實時顯示屏幕數據任務,采集數據函數,觸摸屏響應任務。設計中采用了任務嵌套的方式,將數據采集和觸摸屏響應嵌套到實時顯示屏幕數據任務之中,這樣數據在各個任務之間的傳遞很有邏輯性,整個系統比較健壯。任務間的通信如圖8所示。

        

        移植μCOS-Ⅱ是為了在自己系統中使用μ肛COS-Ⅱ,要在自己的系統中使用μCOS-Ⅱ編寫應用程序。應用程序包括相應的頭文件,任務堆棧的宏文件和任務相關的文件。由于每個任務都是獨立的,所以堆棧部分的宏定義的代碼是應用程序必須要有的。建立任務之前必須初始化任務并建立一個空閑的任務。在建立多任務時,必須通過OSTaskCreat()函數建立至少一個用戶任務。建立好任務后,利用OSStart()函數開始任務。應用函數主函數如下:

        

        4 結語

        利用LPC1758處理器成功驗證了采用ARM公司Cortex-M3內核的MCU驅動TFT觸摸屏的可能,包括以上硬件方案的提出和軟件系統移植的實現,TFT觸摸屏單元提供友好的人機界面,且具有堅固耐用、反應速度快、節省空間、易于交流等許多優點。隨著多媒體查詢的與日遞增,在未來的電子產品中,觸摸屏無疑將成為輸入設備的主流。

      歡迎轉載,本文來電子發燒友網(www.anielbakhru.com)

      技術專區

      關注電子發燒友微信

      有趣有料的資訊及技術干貨

      下載發燒友APP

      打造屬于您的人脈電子圈

      關注發燒友課堂

      鎖定最新課程活動及技術直播
      收藏 人收藏
      分享:

      評論

      相關推薦

      基于ARM架構的8051應用程序遷移過程

      Cortex-M處理器系列包括廣泛使用的Cortex-M3處理器、針對FPGA的Cortex-M1處...

      發表于 2018-03-15 15:45 ? 184次閱讀
      基于ARM架構的8051應用程序遷移過程

      詳細剖析Cortex-M3處理器

      線程模式(Thread mode):處理器復位或異常退出時為此模式。此模式下的代碼可以是特權代碼也可...

      發表于 2018-01-15 11:07 ? 1148次閱讀
      詳細剖析Cortex-M3處理器

      如何定制基于Cortex-M0/M3免費內核的自...

      活動主題 如何定制基于Cortex-M0/M3免費內核的自主SoC M0/M3免授權費+第三方設計服...

      發表于 2017-11-21 15:14 ? 2000次閱讀
      如何定制基于Cortex-M0/M3免費內核的自...

      如何定制基于Cortex-M0/M3免費內核的自...

      創易棧將聯合Arm中文社區、電子發燒友舉辦“如何定制基于Cortex-M0/M3 免費內核的自主So...

      發表于 2017-11-21 14:55 ? 0次閱讀
      如何定制基于Cortex-M0/M3免費內核的自...

      周立功——深入淺出Cortex-M3—LPC175X(電子版)

      發表于 2017-11-02 09:07 ? 3471次閱讀
      周立功——深入淺出Cortex-M3—LPC175X(電子版)

      DesignStart Cortex-M3軟件開...

      本次網絡WebEx課程直播對Cortex-M3 DesignStart 包進行了技術介紹。課程重點講...

      發表于 2017-10-17 16:54 ? 1803次閱讀
      DesignStart Cortex-M3軟件開...

      最經典的STM32概述

      發表于 2017-02-10 17:27 ? 792次閱讀
      最經典的STM32概述

      小白想問一個關于Cortex-M3內核的非對齊數據傳送問題

      發表于 2016-10-03 10:36 ? 1011次閱讀
      小白想問一個關于Cortex-M3內核的非對齊數據傳送問題

      MM32開發板活動&資料下載

      發表于 2016-07-08 11:08 ? 14512次閱讀
      MM32開發板活動&資料下載

      Cortex-M3權威指南

      發表于 2016-04-23 17:47 ? 914次閱讀
      Cortex-M3權威指南

      STM32F411的MCU是Cortex-M3,還是Cortex-M4?

      發表于 2015-10-21 16:01 ? 876次閱讀
      STM32F411的MCU是Cortex-M3,還是Cortex-M4?

      兆易創新推出GD32F2系列全新高性能增強型Co...

      兆易創新推出內核性能、集成外設與安全部件全面增強的GD32F2系列MCU新品,持續以創新的增強動力和...

      發表于 2015-08-05 13:56 ? 498次閱讀
      兆易創新推出GD32F2系列全新高性能增強型Co...

      STM32F205ZET6啟動問題

      發表于 2015-03-17 16:02 ? 987次閱讀
      STM32F205ZET6啟動問題

      采用Cortex-M3單片機設計的WiFi物聯網...

      WiFi物聯網小車設計方案,采用電腦上位機軟件通過無線WiFi 控制小車的運動,采集小車的信息。與傳...

      發表于 2014-11-27 16:52 ? 1006次閱讀
      采用Cortex-M3單片機設計的WiFi物聯網...

      野火教程推薦的三大STM32入門進階官方權威學習資料

      發表于 2014-11-01 12:03 ? 5480次閱讀
      野火教程推薦的三大STM32入門進階官方權威學習資料

      你不得不知的Cortex-M3和M4微控制器使用...

      許多嵌入式開發人員對ARM Cortex處理器架構頗為熟悉,但很少有人能夠對這種流行架構了如指掌,從...

      發表于 2014-07-31 14:50 ? 7043次閱讀
      你不得不知的Cortex-M3和M4微控制器使用...

      ARM Cortex M3/M4微控制器最大效率...

      大部分采用Cortex-M3/M4 MCU的目標應用是便攜式的,并且供電電源來自電池或能源收集系統,...

      發表于 2014-05-12 10:09 ? 1289次閱讀
      ARM Cortex M3/M4微控制器最大效率...

      采用ARM Cortex-M3的12位、4-20...

      優勢和特點: T型熱電偶測量系統,可對4-20mA輸出進行環路供電 典型溫度范圍為-200C至+40...

      發表于 2014-03-18 17:17 ? 1082次閱讀
      采用ARM Cortex-M3的12位、4-20...

      物聯網拉升Cortex-M3架構,8051還能撐...

      盡管有人相信基于ARM的MCU對8位元架構變得更有成本競爭力,ARM的Cortex-M0/0+核心很...

      發表于 2014-02-13 11:36 ? 3071次閱讀
      物聯網拉升Cortex-M3架構,8051還能撐...

      自己動手用Cortex-M3與ADXL345做個...

      要實現一個控制電腦游戲的重力感應遙控器原理也非常簡單,無非就是判斷此時遙控器傾斜角度,然后M3將指令...

      發表于 2014-01-22 16:24 ? 2944次閱讀
      自己動手用Cortex-M3與ADXL345做個...

      ARM Cortex-M3微處理器測試方法研究與...

      作為32 位RISC 微處理器主流芯片,ARM 芯片得到長足發展和廣泛應用。因而,ARM 芯片的測試...

      發表于 2013-08-15 11:43 ? 1042次閱讀
      ARM Cortex-M3微處理器測試方法研究與...

      替代8位MCU,Cortex-M3成最強殺手锏?

      張園根先生以Silicon Labs公司已獲成功的Precision32混合信號MCU全系列產品(包...

      發表于 2013-08-09 16:04 ? 3397次閱讀
      替代8位MCU,Cortex-M3成最強殺手锏?

      低成本ARM 32位MCU,開發人員面臨的兩種選...

      要使用低成本的 32位微控制器,開發人員面臨兩種選擇,基于Cortex-M3內核或者ARM7TDMI...

      發表于 2013-05-28 17:11 ? 2872次閱讀
      低成本ARM 32位MCU,開發人員面臨的兩種選...

      Cypress推出PSoC 5LP器件,助力高精...

      Cypress于2012年12月5日推出了完全認證的PSoC 5LP可編程片上系統系列,讓需要單節電...

      發表于 2012-12-07 08:44 ? 1219次閱讀
      Cypress推出PSoC 5LP器件,助力高精...

      聚焦2012 MCU市場 產品解決方案精華集錦

      電子發燒友網訊: 盡管2012年全球MCU市場正經歷著快速的轉變,甚至所有供應商都在加速開發其下一代...

      發表于 2012-09-18 16:27 ? 3817次閱讀
      聚焦2012 MCU市場 產品解決方案精華集錦

      專家揭秘:STM32啟動過程全解

      電子發燒友網核心提示: 本文主要闡述了STM32啟動過程全面解析,包括啟動過程的介紹、啟動代碼的陳列...

      發表于 2012-09-10 08:50 ? 47477次閱讀
      專家揭秘:STM32啟動過程全解

      Cortex-M3權威指南中文版

      發表于 2012-08-04 20:09 ? 799次閱讀
      Cortex-M3權威指南中文版

      基于TMPM374和IPD的變頻冰箱參考方案

      1 引言 以傳統 開關控制 的電機驅動方式消耗了全球近40%的電力,針對 電機 驅動效率的改善要求在...

      發表于 2012-07-03 10:25 ? 1325次閱讀
      基于TMPM374和IPD的變頻冰箱參考方案

      Cortex-M3內核的μC/OSII性能研究

      利用CortexM3內核上選配的MPU(Memory ProtectiON Unit,存儲器保護單元...

      發表于 2012-02-27 09:41 ? 971次閱讀
      Cortex-M3內核的μC/OSII性能研究

      Cortex-M4替代Cortex-M3即將上演

      當ARM剛推出Cortex-M系列產品時,眾多廠商如臨大敵,都在徘徊是否棄用自己的內核或者二者兼顧

      發表于 2011-12-08 10:02 ? 2245次閱讀
      Cortex-M4替代Cortex-M3即將上演

      Cortex-M3基礎學習

      因為項目所需,所以不得不開始研究M3,我用的是NXP公司的 LPC1768 這個芯片,它是具有三級流...

      發表于 2011-10-07 12:07 ? 4251次閱讀
      Cortex-M3基礎學習

      Energy Micro推出100款Cortex...

      Energy Micro日前推出100款全新 EFM 32 Gecko 系列低功耗微控制器( MCU...

      發表于 2011-10-06 09:36 ? 345次閱讀
      Energy Micro推出100款Cortex...

      Cortex M3的SRAM單元故障軟件的自檢測...

      目前,對于存儲單元SRAM的研究都是基于硬件電路來完成,而且這些方法都是運用在生產過程中,但是生產過...

      發表于 2011-07-29 11:12 ? 513次閱讀
      Cortex M3的SRAM單元故障軟件的自檢測...

      愛特梅爾推出全新SAM3S16 Cortex-M...

      愛特梅爾公司宣布提供帶有1MB嵌入式閃存和128KB SRAM的32位ARM Cortex-M3微控...

      發表于 2011-07-15 08:50 ? 182次閱讀
      愛特梅爾推出全新SAM3S16 Cortex-M...

      基于Cortex-M3微處理器的智能家居監控終端...

      本系統采用具有ARM Cortex-M3的嵌入式器件LPC1769作為主控制器件,在uC/OS-Ⅱ平...

      發表于 2011-05-20 09:49 ? 1040次閱讀
      基于Cortex-M3微處理器的智能家居監控終端...

      富士通半導體發布第二批Cortex-M3 MCU

      富士通半導體基于采用英國ARM處理器內核“Cortex-M3”的第二批MCU“FM3系列”,新上市了...

      發表于 2011-04-26 09:53 ? 707次閱讀
      富士通半導體發布第二批Cortex-M3 MCU

      Cortex-M3內核浮點型運算的研究與實現

      在Cortex-M3內核上實現浮點型運算,可以達到所要求的精度,運算速度較快,具有較高的實時性。本文...

      發表于 2011-03-11 11:04 ? 5021次閱讀
      Cortex-M3內核浮點型運算的研究與實現

      Cortex-M3的STM32微控制器處理先進電...

      變頻器的問世和先進的電機控制方法讓三相無刷電機(交流感應電機或永磁同步電機)曾經在調速應用領域取得巨...

      發表于 2010-12-29 15:34 ? 880次閱讀
      Cortex-M3的STM32微控制器處理先進電...

      基于STM32微控制器的電機控制方法

        變頻器的問世和先進的電機控制方法讓三相無刷電機(交流感應電機或永磁同步電機)曾經在調速應用領域取...

      發表于 2010-12-27 09:42 ? 8586次閱讀
      基于STM32微控制器的電機控制方法

      Holtek公司即將推出基于Cortex M3的...

        日前,Holtek公司在位于上海漕河涇開發區的神旺大酒店舉行了一年一度的2010新產品發布會。在...

      發表于 2010-11-12 09:59 ? 375次閱讀
      Holtek公司即將推出基于Cortex M3的...

      根據μc/Os-Ⅱ就緒表算法在ARM架構上的改動

      根據μc/Os-Ⅱ就緒表算法在ARM架構上的改動 ????? μc/Os-Ⅱ的就緒表設置、清除、查...

      發表于 2010-04-21 09:05 ? 365次閱讀
      根據μc/Os-Ⅱ就緒表算法在ARM架構上的改動

      基于新型Cortex-M3內核STM32的三相多...

      基于新型Cortex-M3內核STM32的三相多功能電能表解決方案  電能表作為電能計量的基本設備...

      發表于 2009-11-05 10:28 ? 708次閱讀
      基于新型Cortex-M3內核STM32的三相多...
      国产V亚洲V天堂无码
      <em id="7o0hz"><acronym id="7o0hz"><u id="7o0hz"></u></acronym></em>

      <tbody id="7o0hz"></tbody>
    2. <rp id="7o0hz"></rp>
    3. <li id="7o0hz"><acronym id="7o0hz"></acronym></li>