LCD人機交互的數據采集系統
系統總體方案設計
本系統的硬件部分主要由前端數據采集、處理電路和后端數據處理、LCD電路組成。兩部分通過RS-232串行接口進行通信。系統的總體方案構圖如圖1所示。
圖1 系統總體結構
數據采集部分的軟硬件設計
硬件電路設計
數據采集部分的核心器件選用了MSC1210Y5。這主要是因為該微處理器具有24位的 ADC,其有效精度高于22位。其內部包含完整的前向通道(包括輸入緩存器、模擬開關電路、可編程增益放大器和ADC以及數字濾波部分)和后向通道— DAC,這些都是完成測控系統的必須部分。此外,該處理器通過改變命令寄存器的方式對內部通道功能進行設置,用指令就可以選擇輸入緩存器、設置放大增益、控制通道開關切換、進行偏置校正等,使用非常方便。數據采集部分的電路結構原理圖如圖2所示。
本系統中兩個核心芯片MSC1210Y5和MAX3223的功耗都很低,因此,在設計中板上的電源(3.3V)由后端系統通過RS-232接口提供。除了RS-232接口的接線,以及接入J1、 J2插座的信號(8個AIN線、REF以及公共地)線外,本系統的硬件部分不再需要其它連接,使用非常方便。此外,設計時還在電路中預留了一部分接口線供以后擴展系統功能使用,包含了第二串行口以及四根可配置為SPI接口、中斷輸入和I/O端口的備用接口線。
軟件設計
在基于此電路的高精度測溫模塊應用中,MSC1210Y5完成了微弱信號的多路切換、信號緩沖、編程放大、24位ADC、數字濾波、數據處理、信號校準以及串口通信等功能。MSC1210Y5包含2個串口,本設計中選取其中的一個串口用來與后端人機交互系統通信,負責接收后端發(fā)送的控制命令和控制參數以及發(fā)送前端采集、處理的數據。數據采集電路的程序主要任務是:控制內部的ADC的測量過程,讀取轉換的數據;與后端(S3C44B0X系統)進行通信,讀取上位機的命令和有關的控制參數,同時向上位機傳送轉換后的數據。數據采集電路的程序控制流程如圖3所示。
串口開始接收上位機送過來的命令和數據時,將依次讀到的后端系統的2字節(jié)串碼(暫存在R6,R7)的控制字傳送到MSC1210Y5內部寄存器ADCON1 和ADCON0,從而實現對ADC控制命令的寫入。其后將ADCON3、ADCON2、ADMUX和PDCON寄存器的內部寫入相應的命令和參數值,從而完成對MSC1210Y5內ADC的設置和啟動。向后端系統發(fā)送數據時,由于ADC是24位精度,轉換數據必須分為3個字節(jié)傳送,即將寄存器1、2、3的 ADC轉換結果依次通過送SBUF發(fā)送,同時在這個過程中還包含發(fā)送同步字符、CRC校驗等過程。
圖3 數據采集電路的程序控制流程
嵌入式GUI應用系統概述
該系統后端的硬件部分主要由三大塊構成:以S3C44B0X為核心的系統板,集JTAG調試電路、系統電源、LCD接口電路的輔助板,以及LCD屏。
后端的軟件部分也由三個部分組成:系統啟動加載程序,嵌入式實時多任務操作系統mC/OS-II,和基于mC/OS-II的應用程序。根據系統應用的需要,其中基于mC/OS-II的應用程序主要包括串行口通信程序和基于mC/GUI的圖形用戶接口程序。
系統中的串口用于S3C44B0X控制器向前端數據采集部分發(fā)送控制命令和控制參數,并實時接收前端發(fā)送的采集數據,送由控制器處理和進行LCD顯示。當操作系統mC/OS-II啟動時,自動初始化串行口。由于應用程序是多任務系統,為了實時監(jiān)測串行口信息,設計時在系統中單開了一個串行口掃描任務,從而可保證信息不丟失。
由于mC/GUI提供了源代碼,在開發(fā)應用程序時,用戶可以首先將核心文件、LCD驅動文件和需要的字體文件包含在自己的工程里,然后再根據內存設備、輸入設備、空間和窗口管理部分等硬件的實際需要來具體開發(fā)。開發(fā)步驟如下。
(1) 按照實際需要,定制自己的mC/GUI開發(fā)環(huán)境。其中包括對mC/GUI目錄的篩選,以及目錄中文件的篩選;
(2) 指定硬件設備的地址,編寫接口驅動代碼。這里需要修改LCDConf.h文件;
(3) 編譯、連接、調試子程序;
(4)修改子程序并測試,增加需要的功能;
(5)若開發(fā)多任務應用,則需要修改GUI_MAXTASK和GUI_OS宏,實現mC/GUI與操作系統的結合;
(6)編寫自己的應用程序。
由于mC/GUI不支持ARM7處理器S3C44B0X,因此,要把mC/GUI移植到系統平臺上,需要自己完成mC/GUI在系統硬件平臺上的各種驅動,具體包括S3C44B0X中內置的LCD控制器的正確初始化,以及畫點、畫線、填充等LCD驅動函數的編寫等。
LCD 控制器初始化:S3C44B0X LCD控制器上的正確初始化包括各種控制寄存器的正確配置以及顯存的正確設置與映射。其中顯存的映射是將S3C44B0X專用LCD DMA的源地址設為顯存起始地址值,該值是在rLCDSADDR1中配置。此外,LCD控制器還需對REGBANK中的其他可編程寄存器進行編程,以控制相應的寄存器值,并確定垂直/水平象素、數據接口的數據寬度、接口時間及刷新率等。
LCD驅動函數編程:在LCD的驅動函數中,最底層的驅動函數是畫點函數和取點函數。在mC/GUI中顯示字、圖形都與這兩個函數有關,它們直接與顯存通話。為了顯示出字符和位圖,還須參考uC/GUI的 LCDMemC.c,寫DrawBitLine1BPP、DrawBitLine2BPP和DrawBitLine4BPP函數,并配置 GUIConf.h和LCDConf.h中的常數。完成了上面的各個驅動函數后,就可以采用mC/GUI的Demo程序對所移植的mC/GUI進行測試了。
結語
采用TI公司的微控制器MSC1210Y5開發(fā)的高精度數據采集系統,采集精度高,抗干擾能力強。具有較高的應用和推廣價值。
LCD顯示屏相關文章:lcd顯示屏原理
lcd相關文章:lcd原理
評論