- ARM嵌入式系統開發完全入門與主流實踐
- 封景剛 吳寶江編著
- 4076字
- 2019-01-01 05:02:24
3.2 輸入/輸出設備
嵌入式系統中的輸入設備一般包括觸摸屏、語音識別、按鍵、鍵盤和虛擬鍵盤。輸出設備主要有LCD顯示和語音輸出。
3.2.1 液晶顯示
液晶顯示屏(Liquid Crystal Display,LCD)用于顯示GUI(圖像用戶界面)環境下的文字和圖像數據,適用于低壓、微功耗電路。
從選型角度看,我們將常見液晶分為段式(也稱8字)、字符型和圖形點陣,分別介紹如下。
(1)段式液晶
常見的段式液晶每字由8段組成,即8字和一點,只能顯示數字和部分字母,如果必須顯示其他少量字符、漢字和符號,一般需要在廠家定做,將所要顯示的字符、漢字和其他符號固化在指定的位置上,比如計算器和電子表所用的液晶。
(2)字符型液晶
顧名思義,字符型液晶是用于顯示字符和數字的,但其對于圖形和漢字的顯示方式與段式液晶無異。字符型液晶一般有以下幾種分辨率:8×1、16×1、16×2、16×4、20×2、20×4、40×2和40×4等,其中8(16、20、40)的含義為一行可顯示的字符(數字)個數,1(2、4)的含義則是指顯示的行數。
(3)圖形點陣式液晶
我們將其分為TN、STN(DSTN)、TFT等幾類。這種分類需從液晶材料和液晶效應講起,具體請參考液晶顯示原理章節。
TN類液晶由于它的局限性,只用于生產字符型液晶模塊;STN(DSTN)類液晶模塊一般為中小型,既有單色的,也有偽彩色的;TFT類液晶,則是從小到大的型號都有,而且幾乎都為真彩色顯示模塊。除了TFT類液晶外,一般小液晶屏都內置控制器(控制器的概念相當于顯示卡上的主控芯片),直接提供MPU接口,而大中液晶屏要想控制其顯示,都需要外加控制器。
從色彩上分,LCD顯示屏分為單色、灰度和彩色3種,其價格按照由低到高排序。單色LCD的點陣只能顯示亮和暗,通常只用于低端的不需顯示圖形的場合;帶灰度級的LCD常用的有2-bit、4級灰度和4-bit、16級灰度,可以顯示簡單的帶有層次的圖形或圖像;彩色LCD的色彩以顏色數為標準。彩色LCD分為有源(Active)及無源(Passive)型兩種,有源型就是常見的TFT(Thin Film Transistor,薄膜晶體管)LCD,其特點是顯示清晰、明亮、視角大,但價格高。之所以如此,是因為有源LCD更新屏幕的頻率較快,而且它的屏幕上的每個像素分別是由一個獨立的晶體管控制的(無源的就不是)。這樣,也導致了有源矩陣LCD的一個缺點,就是這種顯示器要使用相當多的晶體管,其造價也就高了。無源型就是常見的STN(Super Twisted Nematic,超扭曲向列型)LCD,其最顯著的優點是造價低。
按背光將液晶分類,有透射式、反射式、半反半透式3類。因為液晶為被動發光型顯示器,所以必須有外界光源,液晶才會有顯示。透射式液晶必須加上背景光,反射式液晶需要較強的環境光線,半反半透式液晶則要求環境光線較強或加背光。
字符類液晶帶背光的一般為LED背光,并且以黃顏色(紅、綠色調)為主,一般為+5V驅動。單色STN中的小點陣液晶,多用LED或EL背光,EL背光以黃綠色(紅、綠、白色調)常見,一般用400Hz~800Hz、70V~100V的交流驅動,且常用驅動需要約1W的功率。中大點陣STN液晶和TFT類液晶多為冷陰極背光燈管(CCFL/CCFT),背光顏色為白色(紅、綠、藍色調),一般用25kHz~100kHz、300V以上的交流驅動。
3.2.2 觸摸屏
嵌入式系統中的觸摸屏分為電阻式、電容式和電感式3種,其中電阻式觸摸屏最為常用。3種觸摸屏技術的比較如表3-2所示。
表3-2 3種觸摸屏技術的比較

電阻觸摸屏的工作部分一般由3部分組成(如圖3-1所示),分別為兩層透明的阻性導體層、兩層導體之間的隔離層和電極。阻性導體層選用阻性材料,如銦錫氧化物(ITO)涂在襯底上構成,上層襯底用塑料,下層襯底用玻璃。隔離層為黏性絕緣液體材料,如聚酯薄膜。電極選用導電性能極好的材料(如銀粉墨)構成,其導電性能大約為ITO的1000倍。

圖3-1 電阻觸摸屏結構
觸摸屏工作時的上下導體層相當于電阻網絡,如圖3-2 所示。當某一層電極加上電壓時,會在該網絡上形成電壓梯度。如有外力使得上下兩層在某一點接觸,則在電極未加電壓的另一層可以測得接觸點處的電壓,從而知道接觸點處的坐標。比如,在頂層的電極(X+,X-)上加上電壓,則在頂層導體層上形成電壓梯度,當有外力使得上下兩層在某一點接觸時,在底層就可以測得接觸點處的電壓,再根據該電壓與電極(X+)之間的距離關系,就可知道該處的X坐標。然后,將電壓切換到底層電極(Y+,Y-)上,并在頂層測量接觸點處的電壓,即可知道Y坐標。這就是所有電阻技術觸摸屏共同的最基本原理。對電阻式觸摸屏的控制有專門的芯片,如BB(Burr-Brown)公司生產的芯片ADS7843。很顯然,控制芯片要完成兩件事情:其一,完成電極電壓的切換;其二,采集接觸點處的電壓值(即A/D)。

圖3-2 工作時的導體層
電容式觸摸屏是一塊4層復合玻璃屏,并在玻璃屏的內表面和夾層各涂有一層ITO。其中最外層是只有0.0015mm厚的矽土玻璃保護層;夾層ITO涂層做工作面,4個角引出4個電極;內層ITO為屏層以保證工作環境。當用戶觸摸電容屏時,由于人體電場,用戶手指和工作面會形成一個耦合電容,又因為工作面上接有高頻信號,所以手指會吸收一個很小的電流,這個電流分別從屏的4個角上的電極中流出,且理論上流經4個電極的電流與手指頭到4個角的距離成比例,控制器通過對4個電流比例的精密計算,可以得出其位置所在。
電感式觸摸屏的工作原理是在觸摸筆中安裝LC諧振線圈,通過改變與安裝有激勵線圈及感應線圈的觸摸屏之間的空間距離,使電磁場發生變化從而計算出觸點的位置。這種觸摸屏是安裝在液晶顯示屏的后面,而普通的電阻式和電容式觸摸屏需要安裝在液晶顯示屏的前面。兩者相比,使用電感式觸摸屏,輸入筆不必接觸屏幕,可以減少對屏幕的磨損,同時可大大提高輸入的靈敏度。由于觸摸屏安裝在顯示屏的后面,也增加了顯示的清晰度和亮度,減少了背光的使用,進而可以減少系統功耗。
3.2.3 語音輸入/輸出技術
隨著應用的發展,用戶不斷地要求所用的嵌入式裝置更小、更輕便,同時又更易于使用,而能解決這3方面問題的一種可行技術就是語音識別。由于這種技術去掉了傳統的輸入器件,故具有更小和更輕便的特點。語音識別輸入可以在嵌入式處理器功能足夠強大時用相應的軟件實現,也可以使用專用芯片增加一個硬件功能模塊來實現。前者對嵌入式系統硬件配置的要求較高,如處理器的速度和存儲器的容量等。后者則通過專門的DSP芯片來完成語音識別輸入過程中的所有運算工作,不會加重系統主處理器的負擔。這種專用的語音識別芯片現在已經有多種產品出現了,如Sensory公司的語音識別芯片系列,其內部采用神經網絡技術來識別訓練過的單詞或短語,準確度高于99%,并且芯片高度集成化,減少了所需外部元器件的數目,可以快速和方便地嵌入到現存的和新設計的產品中,適用于多種需要語音控制的嵌入式產品。
語音識別技術以識別方法來分,有模板匹配法、隨機模型法和概率語法分析法,這3種方法都屬于統計模式識別方法。它的識別過程大致如下:首先選定語音的特征作為識別參數的模板,然后采用一個可以衡量未知模式和參考模式(即模板)的似然度的測量函數,最后選用一種最佳準則及專家知識作為識別策略,對識別候選者做最后判決,得到最好的識別結果作為輸出。以識別范圍來分,語音識別技術又分為語音從屬(Speaker-Dependent)模式和語音獨立(Speaker-Independent)模式。語音從屬意味著必須有培訓系統,而且通常它只可識別培訓系統的人所講的詞;語音獨立系統則可識別幾乎所有講話人的詞。從目前水平來看,語音從屬模式下的模板匹配法用得比較廣泛。
語音識別技術在嵌入式系統上的使用,不僅可以通過聲音命令來控制設備,還可將輸入的聲音轉換為文本,使得用戶能用聲音口述需要輸入的文本。如果再加上語音合成輸出功能,就可以在嵌入式系統中實現書面語言和口頭語言的雙向轉換,從而構成完整的語音輸入/輸出功能。
3.2.4 鍵盤
鍵盤輸入作為最常用的輸入設備仍有其不可替代的作用。
1.傳統鍵盤的介紹
鍵盤通常有兩種結構形式:線性鍵盤和矩陣鍵盤。在不同的場合下,這兩種鍵盤均得到了廣泛的應用。
線性鍵盤由若干個獨立的按鍵組成,并且每個按鍵的一端與微機的一個I/O口相連,有多少個鍵就要有多少根連線與微機的I/O口相連,因此,只適用于按鍵少的場合。
矩陣鍵盤的按鍵按N行M列排列,每個按鍵占據行列的一個交點,需要的I/O口數目是N+M,容許的最大按鍵數是N×M。顯然,矩陣鍵盤可以減少與微機接口的連線數,簡化了結構,因此是一般微機常用的鍵盤結構。根據矩陣鍵盤的識鍵和譯鍵方法的不同,矩陣鍵盤又可以分為非編碼鍵盤和編碼鍵盤兩種。
● 非編碼鍵盤:主要用軟件的方法識鍵和譯鍵。根據掃描方法的不同,可以分為行掃描法、列掃描法和反轉法3種。
● 編碼鍵盤:主要用硬件來實現鍵的掃描和識別,通常使用8279專用接口芯片,在硬件上要求較高。
2.新型鍵盤的硬件和軟件實現原理
在特殊情況下組成一個最小的單片機系統的過程中,由于通用的I/O口有限,而又需要大量的按鍵輸入,這就要求一種新的鍵盤結構,即用盡量少的I/O口實現盡可能多的鍵盤輸入。經過分析,實際上用N+1個I/O口,輔以適當的接口電路,是可以實現N×N個按鍵的。現以6個端口實現5×5的按鍵為例來敘述。
(1)硬件實現
如圖3-3所示的是用6個I/O口來實現25個按鍵的示意圖。

圖3-3 6個I/O口實現的5×5按鍵矩陣的示意圖
具體的物理實現電路如圖3-4所示。由圖3-3和圖3-4可見,其硬件部分分為兩塊:一塊是普通鍵盤矩陣,另外一塊是中斷和接口電路,主要由相應數目的二極管和電阻組成。具體到6個I/O口的情況,實現5×5的按鍵矩陣的中斷和接口電路(如圖3-4所示)共需要10只二極管、12只電阻和1只三極管。10只二極管按其在電路中所起的作用可分為兩組:第一組包括D6、D7、D8、D9和D10,用于保證按鍵信息的單一流向;第二組包括D1、D2、D3、D4和D5,它們在電路上對NPN三極管的基極構成“或”的邏輯關系,并對單片機進行初始化。除了PORT6(要求其具有中斷功能)以外,其余的I/O口均被置成高電平,這樣當有鍵按下時,三極管的基極由低變高,三極管導通;集電極由高電平跳變成低電平,向單片機發出中斷信號,從而啟動鍵盤掃描程序。

圖3-4 6個I/O口實現的5×5按鍵矩陣的原理圖
(2)軟件實現
按鍵的識別主要靠軟件來實現,需要編寫鍵盤掃描程序。為了更好地說明鍵盤掃描的過程,假設編號為S12的鍵(見圖3-4)被按下,掃描程序已經啟動,掃描的具體過程如表3-3所列。
表3-3 鍵盤掃描過程

注:P-PORT,O-輸出,I-輸入,H-高電平,L-低電平。
- Python Artificial Intelligence Projects for Beginners
- ETL with Azure Cookbook
- 自主研拋機器人技術
- Supervised Machine Learning with Python
- AutoCAD 2012中文版繪圖設計高手速成
- Docker High Performance(Second Edition)
- Windows Server 2008 R2活動目錄內幕
- Linux嵌入式系統開發
- 網絡管理工具實用詳解
- 計算機組網技術
- 自動化生產線安裝與調試(三菱FX系列)(第二版)
- R Data Analysis Projects
- PLC與變頻技術應用
- Mastering Geospatial Analysis with Python
- 空間機器人智能感知技術