近幾年嵌入式技術快速發展,對人機界面的要求越來越高,友好的圖形人機界面為嵌入式系統的人機交互提供豐富的圖形圖像信息、直觀的表達方式。嵌入式GUI(Graphical User Interface)作為人機界面的軟件系統,具有簡潔、美觀、方便好用且更具人性化的特點,采用嵌入式GUI進行人機界面設計能夠提高設備開發效率,節省維護成本,豐富人機交互信息,因而,已經被越來越多的領域所采用。uC/GUI是一款不僅可以實現快速開發,而且能夠提供低功耗型GUI支持的軟件。用戶可以使用它方便地定制出自己的圖形用戶界面,完成各種應用程序的開發。
一、系統總體方案構想
我們所設計的應用系統是一個便攜式高精度數據采集與液顯人機交互系統,系統集高精度數據采集、快速數據處理、彩色液晶顯示于一體。應用系統的硬件部分主要由兩大塊構成,即前端數據采集、處理電路和后端數據處理、液晶顯示電路組成,這兩部分是通過RS-232串行接口進行通信。系統的總體方案構圖如圖1所示。
我們所設計的這套系統,前后端硬件部分接口豐富,擴展性強,硬件一旦成型就相對固定。使用時,根據具體的應用場合不同,前端輔以不同類型的傳感器,組成高精度的數據采集傳輸模塊,前后端分別編寫相應的應用軟件完成高精度的數據采集、處理和人機交互顯示。系統的架構在一定的應用領域具有通用性,可廣泛用于工業過程控制、醫療儀器、智能傳感器等各個領域。
二、數據采集部分的軟硬件設計
1.硬件電路設計
數據采集部分的核心器件MSC1210是德州儀器公司推出的系統級高精度ADC芯片系列,內置24位低功耗Σ—ΔADC前端信號調理電路——多路模擬開關、緩沖器、PGA(可編程增益放大)、電壓參考,且集成了高性能8051處理器內核、Flash存儲器和32位累加器、兼容SPI串口等多種片上外設。
數據采集部分的電路結構原理圖和PCB截圖如圖2所示。
由電路結構原理圖可知,整個數據采集電路是以片上系統——MSC1210Y5為中心的電路,由前面介紹可以看出這個IC芯片已經集成了模擬電路和控制邏輯,一方面內部邏輯功能比較強,另一方面包含了比較完整的測量通道。因此所需要的外圍電路很少,是一種結構緊湊的實用電路。由圖2可見線路中主PuGCSqnU5Vb36vNQ7z2b1A==要2塊IC芯片為:MSC1210Y5和MAX3223,前者是一個片上系統,工作頻率為1.8432MHz,并且包含32kB Flash存儲器;后者提供片上系統與后端人機交互系統串口通信的RS-232接口。由于IC芯片的功耗很低,板上的DVdd電源(3.3V)由后端系統通過RS—232接口提供,除了RS—232接口的接線,就只需要接入J1、J2插座的信號(8個AIN線、REF及公共地)線,不再需要其它連接,使用非常方便。此外,在電路中還預留一部分接口線供以后系統功能擴展使用,包含第二串行口以及四根可配置為SPI接口、中斷輸入和I/O端口線等。
2.軟件設計
在基于此電路的智能高精度測溫模塊應用中,MSC1210Y5完成了微弱信號的多路切換、信號緩沖、PGA編程放大、24位Δ—ΣA/D轉換、數字濾波、數據處理、信號校準及串口通信等功能。MSC1210Y5包含2個串口,我們選取其中的一個串口用來與后端人機交互系統通信,負責接收后端發送的控制命令和控制參數以及發送前端采集、處理的數據。因此數據采集電路的程序主要任務為以下幾點。
(1)控制內部的ADC的測量過程,讀取轉換的數據。
(2)與后端(S3C44B0X系統)通信,讀取上位機的命令和有關的控制參數,同時向上位機傳送轉換的數據。
圖3表示了數據采集電路的程序控制流程。
程序開始部分設置串口通信的基本參數,如設置波特率、數據格式、定時/計數器工作方式、時間常數等,同時使串口處于“接收”狀態——等待上位機送過來的命令和數據,在框圖中將依次讀到的后端系統的2個字節的串碼(暫存在R6,R7)的控制字傳送到MSC1210Y5內部寄存器ADCON1和ADCON0,實現對于ADC的控制命令寫入。其后還將ADCON3、ADCON2、ADMUX和PDCON這幾個寄存器的內部寫入相應的命令或參數值,通過這些過程就能夠完成對于MSC1210Y5內的ADC的設置和啟動。在這之后內部ADC的轉換過程就不需要用程序干預了,控制程序的任務則是不斷地去讀取ADC轉換結果,并且向上位機傳送。在程序流程的后半部分是一個循環過程,在這個循環部分的開始是將MSC1210Y5串口轉換為“發送”狀態——向后端系統發送數據,由于它的ADC是24位精度,轉換數據必須分為3個字節傳送,依次向上位機發送——即首先將ADC轉換結果寄存器1的數據通過SBUF發送,然后是ADC轉換結果寄存器2的數據,最后是ADC轉換結果寄存器3。當然這個過程還應包含:發送同步字符,CRC校驗等過程,這些不是本文研究的重點,因此在此不加細述。
三、嵌入式GUI應用系統概述
前面已經介紹了整個應用系統的總體結構,已知整個系統在硬件上是由兩大塊組成,一個是上面介紹的前端的數據采集部分,另外的一個即是后端的基于S3C44B0X微處理器的數據處理和液晶顯示部分,兩部分是通過RS—232串行接口進行通信。
后端的硬件部分主要是由三大塊構成:以S3C44B0X為核心的系統板,集JTAG調試電路、系統電源、LCD接口電路的輔助板,液晶屏。
為了整個系統的便攜性,我們在設計的過程中充分考慮了系統的整體結構,首先是根據實際應用的需要進行了液晶屏型號的選取,我們選擇的是5.7寸的256色,320×240像素的STN液晶屏,然后根據液晶屏的尺寸大小并結合最終應用系統的外形結構特點,繪制了以S3C44B0X為核心的系統板和集JTAG調試電路、系統電源、LCD接口電路的輔助板。這三大塊的構成模型如圖4所示。
后端的軟件部分也是由三個部分所組成:系統啟動加載程序Boot loader程序,嵌入式實時多任務操作系統uC/OS-II,基于uC/OS-II的應用程序。根據系統應用的需要,其中基于uC/OS-II的應用程序主要包括串行口通信程序和基于uC/GUI的圖形用戶接口程序。圖5為后端軟件部分的啟動和運行過程。
本文研究設計的基于ARM微處理器和嵌入式實時操作系統的嵌入式GUI應用平臺的方案,完成了系統硬件電路的設計與調試,實現了包括:系統啟動加載程序Boot Loader、uC/OS-II操作系統的移植、串口通信程序、uC/GUI圖形軟件應用等系統軟件平臺的設計與應用。該嵌入式GUI應用平臺既可以滿足用戶對應用系統實時性和快速處理的要求,又能夠給用戶提供生動、直觀的圖形人機交互界面,具有廣泛的應用前景。
注:“本文中所涉及到的圖表、公式、注解等請以PDF格式閱讀”