基于MB90F462的智能家居數(shù)據(jù)采集卡設(shè)計(jì)
文章出處:http://xianjuhong.com 作者:姚雨迎 張東來(lái)等 人氣: 發(fā)表時(shí)間:2011年09月22日
[文章內(nèi)容簡(jiǎn)介]:MB90F462是Fujitsu公司生產(chǎn)的一款通用16位單片機(jī),最小指令周期僅為62.5m,適用于工業(yè)控制和高速實(shí)時(shí)數(shù)據(jù)處理等場(chǎng)合;同時(shí),該芯片具有多功能定時(shí)器和多脈沖發(fā)生器,適用于交流感應(yīng)電機(jī)和直流無(wú)刷電機(jī)的控制。本文利用MB90F462豐富的片內(nèi)資源設(shè)計(jì)了一款智能家居系統(tǒng)的低速數(shù)據(jù)采集卡。
隨著人們對(duì)居住環(huán)境的舒適度、便捷性和安全性需求的日益提高,智能家居系統(tǒng)應(yīng)運(yùn)而生。智能家居系統(tǒng)的核心功能是實(shí)現(xiàn)家用設(shè)備運(yùn)行狀況的實(shí)時(shí)監(jiān)測(cè)和傳輸,主要包括:安全防盜報(bào)警;火警、水電、煤氣泄漏等實(shí)時(shí)監(jiān)測(cè)和自動(dòng)報(bào)警;室內(nèi)溫度、濕度、燈光自動(dòng)調(diào)節(jié)和遙控等。因此采集和傳輸各種設(shè)備的運(yùn)行信息是保證智能家居系統(tǒng)正常運(yùn)行的關(guān)鍵。MB90F462是Fujitsu公司生產(chǎn)的一款通用16位單片機(jī),最小指令周期僅為62.5m,適用于工業(yè)控制和高速實(shí)時(shí)數(shù)據(jù)處理等場(chǎng)合;同時(shí),該芯片具有多功能定時(shí)器和多脈沖發(fā)生器,適用于交流感應(yīng)電機(jī)和直流無(wú)刷電機(jī)的控制。本文利用MB90F462豐富的片內(nèi)資源設(shè)計(jì)了一款智能家居系統(tǒng)的低速數(shù)據(jù)采集卡。
1系統(tǒng)結(jié)構(gòu)及功能概述
根據(jù)智能家居系統(tǒng)在線設(shè)備比較多的特點(diǎn)和方便控制的需求,數(shù)據(jù)采集卡應(yīng)具有足夠的輸入、輸出接口和遠(yuǎn)程通信功能。基于MB90F462的數(shù)據(jù)采集卡的系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)按功能可分為以下幾個(gè)模塊:8路模擬量輸入;8路數(shù)字量輸入;GSM短信數(shù)據(jù)傳輸;RS-232、RS-485通信;GPRS數(shù)據(jù)傳輸;實(shí)時(shí)時(shí)鐘;狀態(tài)指示;EEPROM數(shù)據(jù)存儲(chǔ)。
2 主要功能模塊的設(shè)計(jì)
2.1信號(hào)輸入模塊
在智能家居系統(tǒng)中,需要采集的數(shù)據(jù)信息包括空氣溫度、濕度、燈光的調(diào)節(jié)和水、電、煤氣、煙、火等報(bào)警信息,按照信號(hào)的性質(zhì)可分為模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù)兩類。該數(shù)據(jù)采集卡可支持的輸入電平有5V、3.3V、RS-232和RS-485接口。
MB90F462帶有8路8/10位精度可選的A/D通道,可供輸入8路傳感器的模擬量信號(hào)。對(duì)于溫度、濕度、燈光、水流量等信息,可通過(guò)相應(yīng)的傳感器將設(shè)備的實(shí)時(shí)數(shù)據(jù)通過(guò)A/D通道采集到管理中心。由于該系統(tǒng)數(shù)據(jù)量不大,軟件設(shè)計(jì)采用查詢的方式來(lái)檢查各路A/D的采樣完成標(biāo)志,并讀入數(shù)據(jù)至管理中心的計(jì)算機(jī)中。A/D采樣需要設(shè)置的寄存器包括:ADER、ADCS1、ADCS0、ADCR1和ADCR0。A/D轉(zhuǎn)換共有四種可選模式:?jiǎn)尾睫D(zhuǎn)換模式1(運(yùn)行時(shí)允許重復(fù)激活)、單步轉(zhuǎn)換模式2(運(yùn)行時(shí)不允許重復(fù)激活)、連續(xù)轉(zhuǎn)換模式(運(yùn)行時(shí)不允許重復(fù)激活)、停止轉(zhuǎn)換模式(運(yùn)行時(shí)不允許重復(fù)激活)。
對(duì)于設(shè)備的報(bào)警信息和一些特殊的開關(guān)量,利用MB90F462的8路外部中斷對(duì)數(shù)字量輸入信號(hào)進(jìn)行觸發(fā)或脈沖計(jì)數(shù)。由于外部中斷和GPIO管腳是復(fù)用的,所以使用外部中斷時(shí)必須設(shè)置相應(yīng)的管腳為輸入。每?jī)蓚€(gè)外部中斷共用一個(gè)中斷控制寄存器,使用外部中斷時(shí)需要設(shè)置的寄存器有ICRXX、ENIR、ELVR和EIRR。中斷信號(hào)的觸發(fā)信號(hào)電平可以為高電平、低電平、上升沿或下降沿。使用外部中斷之前和中斷處理完成后要清除標(biāo)志位。
2.2短消息通信模塊
為了更方便地服務(wù)于用戶,智能家居系統(tǒng)采用GSM短消息(SMS)服務(wù)來(lái)實(shí)現(xiàn)遠(yuǎn)程報(bào)警和遙控功能,用戶通過(guò)個(gè)人移動(dòng)電話即可監(jiān)測(cè)家用設(shè)備的實(shí)時(shí)狀態(tài)和報(bào)警信息,同時(shí)還可通過(guò)發(fā)送短消息遠(yuǎn)程控制某個(gè)設(shè)備的開關(guān)。SIEMENS公司的GSM無(wú)線模塊TC35具有可靠的數(shù)據(jù)、語(yǔ)音、短消息服務(wù)和傳真四種數(shù)據(jù)傳輸功能。該模塊的工作電壓為3.3~5.5v,可以工作在900MHz和1800MHz兩個(gè)頻段,所在頻段功耗分別為2W(900MHz)和1W(1800MHz)。TC35的數(shù)據(jù)接口采用串行異步收發(fā),符合ITU-T RS-232接口電路標(biāo)準(zhǔn),工作在CMOS電平。數(shù)據(jù)接口配置:8位數(shù)據(jù)位、1位停止位、無(wú)校驗(yàn)位,可以在300bps~115Kbps的波特率下運(yùn)行,支持的自動(dòng)波特率為4.8~115Kbps(14.4Kbps和28.8Kbps除外)。
在進(jìn)行短信通信之前,通過(guò)在/IGT管腳輸出一電壓下降沿激活GSM模塊,待模塊穩(wěn)定之后,設(shè)置短信服務(wù)中心號(hào)碼和數(shù)據(jù)格式,并進(jìn)行短信收發(fā)、刪除、查詢等操作。GSM的短消息程序設(shè)計(jì)流程如圖2所示,用于SMS通信的AT指令如表1所示。
2.3 GPRS通信模塊
與傳統(tǒng)的GSM相比,GPRS通信的特點(diǎn)是終端可移動(dòng)、接入時(shí)間短、傳輸速度快、按流量計(jì)費(fèi)、可接入Internet網(wǎng)、時(shí)時(shí)在線等。GPRS網(wǎng)絡(luò)使用TCP/IP協(xié)議棧進(jìn)行組網(wǎng),可以實(shí)現(xiàn)與Internet網(wǎng)絡(luò)的無(wú)縫連接,但是在傳輸時(shí)數(shù)據(jù)格式應(yīng)該符合TCP/IP協(xié)議棧的數(shù)據(jù)包格式。GPRS網(wǎng)絡(luò)為實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通訊,在數(shù)據(jù)鏈路層上使用PPP協(xié)議,物理層上使用串口通信。因此,實(shí)現(xiàn)基于GPRS的數(shù)據(jù)傳輸系統(tǒng)時(shí)需要對(duì)數(shù)據(jù)進(jìn)行打包,并需要在數(shù)據(jù)鏈路層上實(shí)現(xiàn)PPP協(xié)議?;赥CP/IP專用模塊的GPRS遠(yuǎn)程數(shù)據(jù)傳輸?shù)牧鞒倘鐖D3所示。
基于TCP/IP專用模塊的移動(dòng)終端主要由數(shù)據(jù)獲取模塊(數(shù)據(jù)采集卡)、數(shù)據(jù)打包模塊和數(shù)據(jù)發(fā)送模塊組成。數(shù)據(jù)打包模塊采用ConnectOne公司生產(chǎn)的Iconnector模塊,數(shù)據(jù)發(fā)送模塊采用SIEMENS公司生產(chǎn)的具有GPRS功能的GSM手機(jī)模塊MC35。在Iconnector內(nèi)部的Flash中存儲(chǔ)有Internet協(xié)議棧,支持PPP、IP、UDP、TCP、DNS、SMTP、POP3、HTTP、FTP、Telnet等幾乎所有的網(wǎng)絡(luò)協(xié)議。通過(guò)AT+i指令設(shè)置并控制Iconnector,以實(shí)現(xiàn)數(shù)據(jù)的打包。Iconnector有兩個(gè)標(biāo)準(zhǔn)的RS-232串行接口,在標(biāo)有Modem字樣的一端與MC35相連接,在另外標(biāo)有Device字樣的一端與數(shù)據(jù)采集卡相連接。用于GPRS數(shù)據(jù)傳輸?shù)腁T+i指令如表2所示。
2.4實(shí)時(shí)時(shí)鐘模塊
為了合理有效地管理各個(gè)用戶的數(shù)據(jù),特別是一些報(bào)警數(shù)據(jù),應(yīng)該記錄其出現(xiàn)的實(shí)時(shí)時(shí)間。該數(shù)據(jù)采集卡采用了美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘DS1302,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能;DS1302與CPU同步串行通訊,接口只需三根線:/RST、I/O、SCLK;一次可以讀寫1個(gè)字節(jié)數(shù)據(jù)或31個(gè)字節(jié)的字符串;共有七個(gè)數(shù)據(jù)寄存器,即秒、分鐘、小時(shí)、日期、月份、周和年份寄存器;命令字的地址從80H~8DH,奇數(shù)為讀,偶數(shù)為寫;一個(gè)時(shí)鐘周期由下降沿開始,上升沿結(jié)束;寫入數(shù)據(jù)時(shí),在時(shí)鐘的上升沿期間數(shù)據(jù)必須保持有效,讀出數(shù)據(jù)時(shí),在時(shí)鐘的下降沿期間數(shù)據(jù)有效;如果,RST輸入低電平,中止所有的數(shù)據(jù)傳輸并且I/O呈高阻態(tài);數(shù)據(jù)輸入/輸出的時(shí)序是首先寫入一個(gè)字節(jié)的命令字節(jié)(讀或?qū)?,后面緊跟8個(gè)時(shí)鐘周期讀出/寫入一個(gè)字節(jié)的數(shù)據(jù)。
雖然DS1302的功耗很小,但是如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池或0.1F以上的超級(jí)電容作為備用電源。如果斷電時(shí)間較短,可以用漏電較小的普通電解電容器代替。DS1302在第一次加電后必須進(jìn)行初始化操作,之后即可按正常方法調(diào)整時(shí)間。
此外,系統(tǒng)還配置了RS-232、RS-485接口和EEPROM數(shù)據(jù)存儲(chǔ)器,方便與其他設(shè)備的連接,并實(shí)現(xiàn)掉電數(shù)據(jù)保護(hù)功能。
3 Accemic MDE調(diào)試
Accemic MDE是目前市場(chǎng)上能夠調(diào)試Fujitsu 16LX系列不帶仿真器的單片機(jī)的首選工具,其監(jiān)控內(nèi)核與應(yīng)用程序是并行運(yùn)行的,所以了解其監(jiān)控內(nèi)核的工作方式非常重要。使用Accemic MDE進(jìn)行調(diào)試應(yīng)嚴(yán)格按照如下步驟進(jìn)行:
(1)在啟動(dòng)Accemic之前按以下步驟連接硬件(勿接電源)
(a)將MB90F462置為編程狀態(tài),即MD0、MD1、MD2、P00、P01分別設(shè)為ON(=0)、OFF(=1)、OFF、ON、ON。
(b)用串行電纜連接目標(biāo)板的Bootloader-UART和PC機(jī)的COM端口,(對(duì)于MB90460系列,UART0為Bootloader-UART)。
(c)給目標(biāo)板加電。
(2)啟動(dòng)Accemic調(diào)試環(huán)境
(a)打開preference│systerm菜單,設(shè)置CPU類型、封裝形式、工作時(shí)鐘、倍頻數(shù)、通訊波特率、復(fù)位線路和COM端口號(hào)等。
(b)按下"Download Monitor"按鈕導(dǎo)入監(jiān)控內(nèi)核;
(c)使目標(biāo)系統(tǒng)處于復(fù)位狀態(tài),將單片機(jī)切換到工作狀態(tài),即MD0、MD1、MD2、P00、P01分別設(shè)為OFF、OFF、ON、X、X。
(d)退出復(fù)位狀態(tài),此時(shí)可以通過(guò)監(jiān)控內(nèi)核訪問(wèn)目標(biāo)系統(tǒng)。
(e)按下"Connect"按鈕開始連接調(diào)試。
(3)Aecemic MDE調(diào)試注意事項(xiàng)
(a)調(diào)試前將位于Accemic MDE的安裝目錄C:\programs\AccemicMDE\include下的文件"monitor.a(chǎn)sm"添加到用戶工程中;如果要使用目標(biāo)信息功能,要在應(yīng)用程序中包含"monitor.h"文件(與monitor.a(chǎn)sm在同一目錄下)。
(b)如果Bootloader-UART未使用外部時(shí)鐘,不要使用改變PLL時(shí)鐘寄存器的功能。PLL時(shí)鐘可以通過(guò)"start.a(chǎn)sm"中的設(shè)置來(lái)修正,確保其中CLOCKSPEED的設(shè)置為NOCLOCK。
(c)調(diào)試時(shí)不能改變Bootloader-UART中斷級(jí)別及Bootloader-UART的寄存器設(shè)置,注意在文件"vectors.c"中不要覆蓋Bootloader-UART的中斷級(jí)別。
(d)如果要使用看門狗定時(shí)器,需要開啟Accemic MDE的看門狗定時(shí)器自動(dòng)更新功能,即在程序中調(diào)用acc_WatchdogEnable()函數(shù)。
(e)調(diào)試中為了讓Monitor能夠進(jìn)入中斷服務(wù)程序中的斷點(diǎn),必須滿足兩個(gè)條件:一是在程序中允許中斷,即調(diào)用_EI()函數(shù);二是中斷服務(wù)程序的中斷級(jí)別高于7(因?yàn)锽ootloader-UART的中斷級(jí)別是7)。
(f)MB90F462帶有兩個(gè)UART,其中UART0是BootloaderUart,用于在線調(diào)試和燒錄程序,也可以和用戶程序復(fù)用。復(fù)用時(shí)需要調(diào)用Accemic MDE中定義的函數(shù)acc_KernelUART(1),參數(shù)默認(rèn)值為1,表示UART0用作正常的用戶程序通信;參數(shù)默認(rèn)值為0,表示UART0用作調(diào)試接口,用戶程序中沒有用到UART0時(shí)不需要調(diào)用此函數(shù)。
綜上所述,該數(shù)據(jù)采集卡提供8路模擬量輸入及8路開關(guān)量輸入接口,具備兩路RS-232接口,支持RS-485、RS-232、3.3V、5V等多種輸入電平,可以實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)采集和遠(yuǎn)程傳輸,遠(yuǎn)程通訊及傳輸方式有GPRS和SMS;而且可以對(duì)現(xiàn)場(chǎng)設(shè)備實(shí)行遠(yuǎn)程開關(guān)量控制。該數(shù)據(jù)采集卡傳輸與協(xié)議轉(zhuǎn)換透明化,使用方便、可靠,而且配備系統(tǒng)配置和維護(hù)接口,方便現(xiàn)場(chǎng)維護(hù),可普遍應(yīng)用于遠(yuǎn)程監(jiān)控、遠(yuǎn)程儀表數(shù)據(jù)讀取等場(chǎng)合。
本文關(guān)鍵詞:MB90F462,數(shù)據(jù)采集卡,智能家居,,B90F462,數(shù)據(jù)采集卡,智能家居,數(shù),90F462,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù),0F462,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采,F462,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采集,462,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采集,,62,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采集,G,2,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采集,GP,,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采集,GPR,數(shù)據(jù)采集卡,智能家居,數(shù)據(jù)采集,GPRS,據(jù)采集卡,智能家居,數(shù)據(jù)采集,GPRS,,采集卡,智能家居,數(shù)據(jù)采集,GPRS,通,集
上一篇:IC卡存儲(chǔ)結(jié)構(gòu)和工作原理[ 09-22 ]
下一篇:射頻接收芯片結(jié)構(gòu)選擇的幾個(gè)要點(diǎn)[ 09-22 ]