基於STM32的可攜式人機界面系統

2020-11-25 電子發燒友

基於STM32的可攜式人機界面系統

佚名 發表於 2014-07-11 14:42:32

  摘要:設計應用於全站儀測量計算的基於STM32處理器的可攜式人機界面系統。採用了處理器IO口模擬總線時序和外掛SPI接口Flash存儲字庫的方法,將字庫存儲在外部的SPI接口Flash中,在使用時再從字庫中查詢調出,有效地減少了內部存儲器的消耗。完成了基於ARM最新Cortex—M3處理器漢字顯示系統的硬體電路設計和軟體程序設計。實現了可以自定義漢字字庫的人機界面系統。

  在全站儀應用於飛機的測量過程中,常會涉及到計算,以滿足不同的應用環境與測量要求,以往的方式是測量後期編輯軟體在計算機上實現,現代測量迫切需要一種可攜式手持計算系統,來完成實時的測量要求,而這一系統中中文人機界面成為一種事實上的行業標準。實現顯示漢字的TFT液晶和可輸入數字的小鍵盤已成為智能設備必不可少的組成部分。同時作為可攜式設備基本要求的低功耗特性也貫穿於中文人機界面的設計始終。這種低功耗中文人機互動界面需要在選取處理器和具體元器件上有特殊考慮。微功耗、高性能應作為選擇相關器件的首要要求。本文選用了意法半導體公司基於ARM最新Cortex—M3內核的STM32F103RB作為主控晶片,通過選擇合適的液晶模塊,構建了一個高性能低功耗的中文人機界面系統。

  1 系統的工作原理

  本系統以STM32F103RBT6為核心,採用晶彩光電的AM240320TFT液晶屏作為顯示器,完成內容的顯示,由於STM32F103RBT6內部Flash為128 K,如果用來儲存漢字字庫,對晶片資源是一種極大的浪費,所以本文中採用微控制器外掛SPI接口Flash的設計思路,將不用重複改變的中文字庫存放在外部Flash晶片裡面,需要時再通過SPI口調入處理器。由於STM32F103RBT6不帶有FSMC,所以採用軟體模擬總線的方法,完成對液晶模塊的驅動。

  2 系統硬體設計

  2.1 供電部分電路

  由於整個系統採用3.3 V供電,所以必須外部穩壓電路將電壓穩定到3.3 V,本設計中採用三端穩壓晶片LM1117-3.3,將外部電池電壓穩定為3.3 V位系統提供電源,為處理器、液晶顯示器、SPI Flash供電,採用二極體IN4007串接在電源正極,為系統提供電源反接保護。供電部分原理圖如圖1所示。

  2.2 液晶顯示部分電路設計

  液晶顯示部分主要由微控制器驅動液晶顯示模塊完成人機界面狀態的顯示,通過發送命令字,完成液晶模塊的初始化以及漢字的顯示。

  2.2.1 STM32F系列ARM微控制器的特點

  STM32處理器採用ARM公司最新的V7體系架構的內核Cortex—M3,它的速度比ARM7快三分之一,功耗低四分之三,同時集成了分支預測,單周期乘法,硬體除法等功能,大大地提高了處理器的數據處理能力,同時採用最新的Thumb-2指令集,有效地降低了代碼的密度,提高了程序的執行效率,通過對功耗和性能的分析,本文中採用的處理器為STM32F103RBT6,該處理器工作頻率為72 MHz,內置高速存儲器(高達128 K字節的快閃記憶體和20 K字節的SRAM),豐富的增強I/O埠和聯接到2條APB總線的外設。供電電壓2.0~3.6V,一系列的省電模式保證低功耗應用的要求,達到了性能和功耗的平衡。

  2.2.2 TFT液晶顯示模塊的特點

  TFT液晶顯示屏是薄膜電晶體型液晶顯示屏。TFT液晶為每個像素都設有一個半導體開關,每個像素都可以通過點脈衝直接控制,因而每個節點都相對獨立,並可以連續控制。不僅提高了顯示屏的反應速度,同時可以精確控制顯示色階,所以TFT液晶的色彩更真。

  由於大多數帶有LCD控制器的ARM處理器都沒有內部的程序存儲器和數據存儲器,而一般的Cortex—M3內核微控制器都不帶有專門的LCD控制器,對於不帶有LCD控制器的系統,一般長常用Intel 8080接口或者Motorola的6800接口,本系統中採用STM32高速的IO口模擬8080接口時序。綜上所述,選用的TFT液晶必須滿足兩個條件,第一,帶有獨立的顯存。第二,帶有8080接口。設計中採用了臺灣採用晶彩光電的AM2403 20TFT液晶屏,它的主控制晶片為ILI9320,自帶總大小為172 820(24Ox320x18/8)的顯存,模塊的16位數據線與顯寸的對應關係為565方式,它支持包括8080接口在內多種控制輸入信號。

  STM32採用外部8 MHz的晶振作為輸入時鐘,內部鎖相環將時鐘倍頻到72MHz作為系統時鐘,採用GPIO口模擬8080時序並行驅動2.8寸TFT屏,顯示部分的處理器和液晶顯示器的硬體電路接口電路如圖2所示。

  2.3 SPI接口Flash存儲疊的特點

  由於在本系統中整個的漢字字庫需要存儲在外部Flash中,所以需要選擇一種Flash存儲晶片,Flash晶片選擇需要滿足以下要求。第一,儘量佔用少的IO口,因為液晶顯示器已經採用了並行接口,如果繼續選用並行接口的Flash,對晶片的IO消耗較大,這樣勢必要選用IO更多的晶片,對於可攜式設備來說,這是不合理的,所以本系統的設計過程中選用的Flash為SST公司的SST25VF080B,它採用SPI接口,SPI是一種高速的,全雙工,同步的通信總線,並且在晶片的管腳上只佔用四根線,節約了晶片的管腳,同時為PCB的布局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的晶片集成了這種通信協議,本文中的SPI Flash採用美國SST公司的SST25VF080B晶片,容量為8 M位,它工作電壓範圍為2.7~3.6 V,工作在SPI模式0或者模式3,最高工作在50MHz,最小擦除單位為4K字節的扇區,可擦寫10萬次,數據保持100年以上。而STM32F103RBT6帶有高速的硬體SPI接口,可以很方便與SST25VF080B連接通信。所以我們採用SPI Flash來完成對漢字字庫的存儲,字庫存儲部分的硬體電路接口圖如圖3所示。

  3 系統軟體設計

  系統軟體包括字庫的調用和TFT液晶顯示軟體設計兩個部分,字庫調用主要是通過STM32F103RBT6的SPI接口調用存儲在SST25VF080B中的中文字庫。TFT液晶顯示部分主要是通過STM32F103RBT6通用I/O口模擬16位的8080並口,實現對液晶顯示器的驅動,在軟體設計的過程中需要注意一個問題。就是不同字庫編碼的標準時不一樣的,所以在解碼時略有不同,常用的漢字字庫有GB2312字庫和GBK字庫兩種。

  3.1 GB2312字庫和GBK字庫

  GB2312收錄簡化漢字及符號、字母、日文假名等共7 445個圖形字符,其中漢字佔6 763個。GB2312規定「對任意一個圖形字符都採用兩個字節表示,每個字節均採用七位編碼表示」,習慣上稱第一個字節為「高字節」,第二個字節為「低字節」。GB2312—80包含了大部分常用的一、二級漢字,和9區的符號。該字符集是幾乎所有的中文系統和國際化的軟體都支持的中文字符集,這也是最基本的中文字符集。其編碼範圍是高位0xa1~0xfe,低位也是0xa1~0xfe;漢字從0xb0a1開始,結束於0xf7fe。GB2312將代碼表分為94個區,對應第一字節(0xa1~0xfe);每個區94個位(0xa1~0xfe),對應第二字節,兩個字節的值分別為區號值和位號值加32(20H),因此也稱為區位碼。01~09區為符號、數字區,16~87區為漢字區(0xb0~0xf7),10~15區、88~94區是有待進一步標準化的空白區。GB2312將收錄的漢字分成兩級:第一級是常用漢字計3755個,置於16~55區,按漢語拼音字母/筆形順序排列:第二級漢字是次常用漢字計3 008個,置於56~87區,按部首/筆畫順序排列。故而GB2312最多能表示6763個漢字。

  而GBK內碼完全兼容GB2312,同時支持繁體字,總漢字數有2萬多個,編碼格式如下,每個GBK碼由2個字節組成,第一個字節為0X81~0XFE,第二個字節分為兩部分,一是0X40~0X7E,二是0X80~0XFE。其中與GB2312相同的區域,字完全相同。把第一個字節代表的意義稱為區,那麼GBK裡面總共有126個區(0XFE~0X81+1),每個區內有190個漢字(0XFE~0X80+0X7E~0X40+2),總共就有126x190=23 940個漢字。點陣庫只要按照這個編碼規則從0X8140開始,逐一建立,每個區的點陣大小為每個漢字所用的字節數乘以190。這樣,就可以得到在這個字庫裡面定位漢字的方法:

  當GBKL<0X7F時:Hp=((GBKH-0x81)×190+GBKL-0X40)×(sizex2);

  當GBKL>0X80時:Hp=((GBKH-0x81)×190+GBKL-0X41)×(sizex2);

  其中GBKH、GBKLL分別代表GBK的第一個字節和第二個字節(也就是高位和低位),size代表漢字字體的大小(比如16字體,12字體等),Hp則為對應漢字點陣數據在字庫裡面的起始地址。

  3.2 系統軟體流程

  對於GBK字庫和GB2312字庫,他們的解碼部分部分略有不同,這個區別主要是由於他們的編碼方式不同引起的,對於GBK字庫,解碼的方式如下:

  其中qh、ql分別代表GBK的第一個字節和第二個字節(也就是高位和低位),size代表漢字字體的大小(比如16字體,12字體等),foffset則為對應漢字點陣數據在字庫裡面的起始地址。

  系統啟動以後,首先完成時鐘的初始化,採用外部8 MHz的晶振作為輸入時鐘,內部鎖相環將時鐘倍頻到72 MHz作為系統時鐘,完成GPIO的初始化,作為LCD驅動IO的通用IO口的時鐘設置為50 MHz的推挽模式,接著完成硬體SPI1的初始化,SPI時鐘頻率設置為18 MHz,接著完成液晶的初始化,此過程是通過發送特定的命令序列來實現的,然後刷新顯示背景顏色,設置字體顏色,通過上面的程序完成字庫中漢字點陣序列的查詢,將漢字點陣送液晶屏顯示。

  系統軟體設計的流程圖如圖4所示。

  採用方法還不但可以實現標準字體的顯示,還可以根據系統要求,採用專用軟體生成各種需要的字體,為設計多樣性的人機界面系統提供了一種可行的方案。

  4 結論

  本文根據在全站儀應用於飛機的測量過程中的實際需要,設計了用於測量計算的人機界面系統,在該系統中,採用的處理器內核為ARM最新的Cortex—M3,它基於最新ARMv7架構,採用了至今為止最小的ARM內核,有效地降低了系統功耗。採用SPI Flash來存儲漢字字庫,通過彩色TFT液晶屏顯示,有效地擴展了應用的範圍,經過實驗驗證,本系統的設計方法完全達到設計要求。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於STM32的可攜式二氧化碳監測儀設計
    1傳感原理  紅外吸收型CO2氣體傳感器是基於氣體的吸收光譜隨物質的不同而存在差異的原理製成的。不同氣體分子化學結構不同,對不同波長的紅外輻射的吸收程度就不同,因此,不同波長的紅外輻射依次照射到樣品物質時,某些波長的輻射能被樣品物質選擇吸收而變弱,產生紅外吸收光譜,故當知道某種物質的紅外吸收光譜時,便能從中獲得該物質在紅外區的吸收峰。
  • 13個基於STM32的經典項目設計實例,全套資料~
    尤其對於新手,是一個學習stm32單片機的&ldquo;活生生&rdquo;的範例。本文引用地址:http://www.eepw.com.cn/article/201706/346863.htm1.
  • 人機界面HMI的8大知識點匯總
    一、HMI簡介   HMI是HumanMachineInterface的縮寫,「人機接口」,也叫人機界面。人機界面(又稱用戶界面或使用者界面)是系統和用戶之間進行交互和信息交換的媒介,它實現信息的內部形式與人類可以接受形式之間的轉換。凡參與人機信息交流的領域都存在著人機界面。
  • 人機互動系統現階段的發展狀況以及未來發展方向
    本文著重於在物理級別上進行交互的開發,並說明如何組合不同的交互方法(多模式交互),並探討每種方法如何提高性能(智能交互)以為用戶提供最佳界面。現有的人機互動物理技術基本上可以基於設備根據人類的感知進行設計和分類。這些設備主要依靠三種人類感官:視覺,聽覺和觸覺。視覺輸入設備是最常用的類型,通常基於開關或指示設備。
  • 病房呼叫系統的軟體設計_單片機病房呼叫系統的設計 - CSDN
    不會stm32,那你還不好意思來應聘硬體工程師? stm32的學習資料多是零零散散的,電路城先將stm32資料做了一個整合,也將於STM32單片機的精彩設計實例做了一個匯總,適合新手迅速上手,也適合高手做創作。
  • 可攜式多參數水質檢測分析儀的操作指導視頻
    瀏覽器版本過低,暫不支持視頻播放可攜式多參數水質檢測儀是專為監測、監理人員用於現場測定COD、氨氮、總磷、總氮等各類汙染物指標的一體化智能儀器。水質分析儀批量測試中可攜式水質分析儀支持的部分指標雙LCD顯示器,純中文操作界面,人性化設計,人機互動界面友好;獨特的光學電路設計,抗幹擾能力強,測量數據精度高、穩定性好;自動恆溫控制系統,PID調節技術,消解過程溫度恆定
  • 通過LED固態照明技術提高人機界面的質量
    通過LED固態照明技術提高人機界面的質量 電子設計 發表於 2019-03-08 09:00:00 人機界面(HMI)是物理,電子或虛擬環境,人類操作員和機器之間發生交互
  • 歐普圖斯可攜式雷射拉曼光譜儀通過鑑定
    系列可攜式雷射拉曼光譜儀進行技術鑑定。自主研發的作業系統和自動辨識系統,採用便捷的一鍵式操作界面,縮短分析時間,方便用戶對現場快速檢測的使用。已針對我國的食品安全以及公共安全中的需求,建立了一套具有自主智慧財產權的納米增強拉曼資料庫,為自動辨識系統提供數據支持。  RamTracer-200系列可攜式雷射拉曼光譜儀為自主設計,關鍵技術具有自主智慧財產權,整機的主要性能指標達到國際先進水平。
  • 基於STM32的全彩LED顯示屏系統的設計方案
    目前的LED顯示屏控制系統多採用ARM處理器來完成整個系統的功能,這種控制系統在數據處理速度上存在很大的局限,影響顯示效果的連續性。基於此,在分析了STM32微處理器總線結構特點的基礎上,提出了STM32+FPGA的控制系統方案,該方案充分了利用STM32微處理器的靈活的儲器控制技術和可編程邏輯器件的靈活性,提高了系統數據處理的速度,而且簡化了電路結構,方便調試。
  • 基於STM32的多通道鋰電池充放電測試系統
    因為可攜式電動工具所用的鋰電池包容量、型號以及性能上的差異,系統中的電流檢測模塊必須具有通用性。本系統採用雙量程的電流檢測方案設計,這樣既保證了在小電流和大電流情況下的檢測精度,也提高了系統檢測電流大小的能力。考慮到閉環霍爾電流傳感器具有測量動態範圍寬、測量精度高、響應速度快和隔離測量的特點,所以本系統各個通道均採用一個閉環電流霍爾傳感器MMI-200B來實現充放電電流的採集。
  • 基於STM32的校園照明智能控制系統
    一般的校園照明系統只是運用普通的聲控及光控傳感器組成開環的控制系統,其靈活性差,功耗大,不可人為幹預。而市場上閉環控制的照明系統投入資金大,穩定性差,無法在校園中得到推廣。系統結構框圖如圖1所示。相比之下,STM 32系列是基於專為要求高性能、低成本、低功耗的嵌入式應用而專門設計的ARM Cortex-M3內核的微控制器。本設計採用的是STM32F103型號,屬於中等容量增強型,32位基於ARM核心的帶128K字節快閃記憶體的微控制器,擁有強大的硬體資源:USB,CAN,7個定時器,2個ADC,9個通信接口。最高72MHZ的工作頻率。
  • 基於單片機的可攜式脈衝信號參數測試儀
    摘要:本文介紹了基於C8051F340單片機的脈衝信號參數測試儀的設計與實現。以單片機為核心的脈衝信號參數測試儀和控制裝置,小巧方便,便於攜帶,且易於擴展和技術更新,鑑於此,作者設計開發了基於單片機的信號參數測試儀。測試儀的主控器件採用Silicon Labs公司的一款C8051F340單片機,它具有強大的數據採集、存儲、運算和控制功能。可通過按鍵操作測量信號的幅值、周期、頻率和佔空比等參數,並在YMl2864LCD液晶顯示器上實時顯示。
  • 歐普圖斯光納科技可攜式雷射拉曼光譜儀通過國家技術成果鑑定
    鑑定委員會專家進行實地考察    通過審慎周密的考察和質疑,專家組一致同意並通過了「RamTracer-200系列可攜式雷射拉曼光譜儀」的儀器鑑定。自主研發的作業系統和自動辨識系統,採用便捷的一鍵式操作界面,縮短分析時間,方便用戶對現場快速檢測的使用。已針對我國的食品安全以及公共安全中的需求,建立了一套具有自主智慧財產權的納米增強拉曼資料庫,為自動辨識系統提供數據支持。
  • 基於STM32的電池管理系統觸控螢幕設計
    但由於各個串聯單體電池特性不能保證完全一致,因此相同的電流下充電放電速度也會不同,如果不進行均衡幹預,電池壽命會大大縮短,因此需要實時監控各個單體電池的狀態、總電壓、總電流,根據狀態適時進行電池充放電均衡,並且充放電均衡時,均衡狀態也要實時進行檢測,所以就有了電動車電池能量管理系統(EMS)。實踐證明EMS可以有效延長電動車電池使用壽命,是電動車中十分重要的管理系統。
  • 可攜式數字地震儀在OBN地震採集技術中的應用
    Node下面介紹一種基於DAQlink4,針對常見氣槍自激設計的實時質量監控輔助方法。DAQlink4可攜式數字地震儀是由Seismic Source公司研發的第四代可攜式數字地震採集系統。該系統可以分別設置為獨立工作狀態、折射儀系統以及分布式地震反射儀系統。DAQlink4地震採集系統採用高速24位ADC採樣。每一DAQlink4單元支持6~24道模擬信號輸入。DAQlink4系統使用標準的乙太網連接以及標準的TCP/IP網絡協議。→DAQlink4
  • 基於臺達自動化產品的蒸餾水機控制系統
    系統由臺達PLC建構主控制器,通過RS-485總線與臺達觸控螢幕人機界面構成管理操作和列印記錄系統。系統硬體配置如下表所示。利用臺達人機界面豐富的通訊口功能,可以提供給用戶3個COM口,方便與外圍工控設備通訊聯機。
  • 基於STM32的2μm高功率雷射醫療儀的系統電路和原理圖
    基於STM32的2μm高功率雷射醫療儀的系統電路和原理圖 電路城論壇 發表於 2020-06-17 11:22:03 2μm高功率雷射醫療儀市場需求越來越大,而目人機互動模塊前國內此類設備在控制上缺乏對系統安全和出光精準度的考慮
  • 基於STM32的直流電機PID調速系統設計與實現
    順應調速系統智能化、簡單化的發展趨勢,本設計採用一款性價比高、功耗低的基於ARMCortex⁃M3內核的STM32單片機為控制核心,結合PID控制技術,實現了直流電機範圍大、精度高的調速性能。 1、系統的總體設計 該調速系統能夠實現對電機的啟動、制動、正反轉調速、測速和數據上傳等功能,可方便地實現直流電機的四象限運行。
  • 採用紅外感應器開發人體接近感應系統
    接近感應也可用於檢測最多三維空間內的運動,甚至是手勢,使得下一代電子產品的人機界面更先進、更直觀。  在消費電子產品中,接近感應作為一種探測用戶身體或手部存在的方法,越來越為人們所接受,該技術也能夠用於動作感應,如檢測用戶手勢。用戶手勢作為一種輸入,可以應用於許多設備,如手機,計算機和其他家用電子產品。
  • 基於STM32晶片和TFT-LCD的可攜式心電圖儀設計
    可攜式心電圖設備的出現使心電信號能夠在更多場合進行採集,它既可以實現可移動化,又可以實時的對心電信號進行分析。通過內置大容量存儲器件能夠對患者進行長時間的實時監護,並記錄患者的心電數據,通過USB接口與PC機進行數據傳輸,以提交到專業醫療機構做進一步分析和診斷。