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