MB90F462在智能家居監(jiān)控系統(tǒng)數(shù)據(jù)采集卡中的應(yīng)用
為了合理有效地管理各個(gè)用戶的數(shù)據(jù),特別是一些報(bào)警數(shù)據(jù),應(yīng)該記錄其出現(xiàn)的實(shí)時(shí)時(shí)間。該數(shù)據(jù)采集卡采用了美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片DS1302,它可以對年、月、日、周日、時(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的功耗很小,但是如果要長時(shí)間保證時(shí)鐘正常,最好選用小型充電電池或0.1F以上的超級電容作為備用電源。如果斷電時(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是目前市場上能夠調(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 端口,(對于MB90460系列,UART0為Bootloader-UART)。
(c)給目標(biāo)板加電。
(2)啟動(dòng)Accemic調(diào)試環(huán)境
(a)打開preference|systerm菜單,設(shè)置CPU類型、封裝形式、工作時(shí)鐘、倍頻數(shù)、通訊波特率、復(fù)位線路和COM端口號等。
(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í)可以通過監(jiān)控內(nèi)核訪問目標(biāo)系統(tǒng)。
(e)按下“Connect”按鈕開始連接調(diào)試。
(3)Accemic MDE調(diào)試注意事項(xiàng)
(a)調(diào)試前將位于Accemic MDE的安裝目錄C:programsAccemicMDEinclude下的文件“monitor.asm”添加到用戶工程中;如果要使用目標(biāo)信息功能,要在應(yīng)用程序中包含“monitor.h”文件(與monitor.asm在同一目錄下)。
(b)如果 Bootloader-UART未使用外部時(shí)鐘,不要使用改變PLL時(shí)鐘寄存器的功能。PLL時(shí)鐘可以通過“start.asm”中的設(shè)置來修正,確保其中CLOCKSPEED的設(shè)置為NOCLOCK。
(c)調(diào)試時(shí)不能改變 Bootloader-UART中斷級別及Bootloader-UART的寄存器設(shè)置,注意在文件“vectors.c”中不要覆蓋Bootloader-UART的中斷級別。
(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ù)程序的中斷級別高于7(因?yàn)锽ootloader-UART的中斷級別是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)場數(shù)據(jù)采集和遠(yuǎn)程傳輸,遠(yuǎn)程通訊及傳輸方式有GPRS和SMS;而且可以對現(xiàn)場設(shè)備實(shí)行遠(yuǎn)程開關(guān)量控制。該數(shù)據(jù)采集卡傳輸與協(xié)議轉(zhuǎn)換透明化,使用方便、可靠,而且配備系統(tǒng)配置和維護(hù)接口,方便現(xiàn)場維護(hù),可普遍應(yīng)用于遠(yuǎn)程監(jiān)控、遠(yuǎn)程儀表數(shù)據(jù)讀取等場合。
評論