新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 由ADuC812與K9S6408V0A構(gòu)成的便攜式數(shù)據(jù)采集系統(tǒng)

由ADuC812與K9S6408V0A構(gòu)成的便攜式數(shù)據(jù)采集系統(tǒng)

作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

摘要:是三星公司生產(chǎn)的快閃存儲器,它具有容量大,接口簡單等特點。而是內(nèi)嵌的多通道12位AD轉(zhuǎn)換器。文中介紹了一種以為主,配以快閃存儲器所構(gòu)成的便攜式系統(tǒng),并給出了AduC812與的硬件接口及軟件編程。

是AD公司生產(chǎn)的內(nèi)嵌的多通道12位AD轉(zhuǎn)換器,K9S6408V0A是三星公司的新型FLASH存儲器,其容量可達(dá)64M,只需3V供電便可進(jìn)行讀、編程、擦除等操作,而且與CPU的接口簡單。用K9S6408V0A和ADuC812構(gòu)成的系統(tǒng),具有體積小、功耗低等特點。

ADuC812是全集成的12位系統(tǒng),它在單個芯片內(nèi)包含了高性能的自校準(zhǔn)多通道ADC和兩個12位DAC及8位與8051兼容的。ADuC812本身帶有8k字節(jié)的Flash程序存儲器、640字節(jié)的Flash數(shù)據(jù)存儲器以及256字節(jié)數(shù)據(jù)SRAM。另外,MCU還支持看門狗定時器、電源監(jiān)視器以及ADC等DMA功能。同時它還為多處理器接口和I/O擴展提供32條可編程的I/O線、I2C兼容的SPI和標(biāo)準(zhǔn)UART串行端口I/O。它的MCU內(nèi)核和模擬轉(zhuǎn)換器均有正常、空閑以及掉電工作模式,可提供適合于低功耗應(yīng)用的靈活的電源管理方案。

ADuC812的AD轉(zhuǎn)換模塊內(nèi)的所有部分均能方便的通過3個SFR來設(shè)置。

因此可見,ADuC812本身就是一個內(nèi)嵌MCU的高性能多通道數(shù)據(jù)采集系統(tǒng),只是內(nèi)部的數(shù)據(jù)存儲器容量有限。如果需要存儲大量數(shù)據(jù)的數(shù)據(jù)采集系統(tǒng),則可外接數(shù)據(jù)存儲器。本文介紹的即屬這類系統(tǒng),則可外接數(shù)據(jù)存儲器。本文介紹的即屬這類系統(tǒng),它是利用一片外接 K9s6408V0A來設(shè)計的,其數(shù)據(jù)容量可達(dá)8M字節(jié)。

1 K9S6408V0A簡介

K9S6408V0A為22腳表面封裝器件,內(nèi)部有(8M+256k)bit×8位存儲空間,可組織成16384行,528列,其中后備的16列的列地址編碼為513至527??蛇M(jìn)行528字節(jié)為一頁的讀、寫和以8k字節(jié)為一塊的擦除操作。一個528位的數(shù)據(jù)寄存器可以用于在頁讀或頁編程操作時存儲單元的數(shù)據(jù)轉(zhuǎn)換。

K9S6408V0A的突出優(yōu)點在于其命令、地址和數(shù)據(jù)信息均通過8條I/O線傳輸,尋址內(nèi)存單元的地址線不作為芯片的引腳。23位地址分三次寫入地址寄存器,譯碼后找到相應(yīng)的單元。對單片機而言,當(dāng)需存儲空間超過64k時,尋址存在一定的困難,而且系統(tǒng)的連線比較復(fù)雜,可靠性低。采用這種快閃存儲器既可克服以上困難,又便于升級至更大容量而無須更改外部連接。圖1為其功能框圖。其中的信號線功能如下:

CLE:命令鎖存使能。當(dāng)其為高時,命令通過I/O口在WE信號的上升沿被鎖入命令寄存器。

ALE:地址鎖存使能。當(dāng)其為高時,地址在WE信號的上升沿被鎖入地址寄存器;為低時,鎖定輸入數(shù)據(jù)。

CE:片選。在讀操作期間,CE變高,器件轉(zhuǎn)入standby模式;在編程或擦除期間,器件處于忙狀態(tài),CE高將被忽略。

WE:寫使能。命令、地址和數(shù)據(jù)在WE信號的上升沿被鎖定。

RE:讀使能。下降沿有效。

WP:寫保護(hù)。在電源電壓過渡期間,當(dāng)WP為低電平時,將產(chǎn)生寫/擦保護(hù)。

R/B:操作狀態(tài)指示。為低時,指示正在編程、擦除或讀操作,操作結(jié)束后變成高,為開路輸出。

I/O口:(I/O0~I(xiàn)/O7)三態(tài)。輸出命令、地址和數(shù)據(jù)以及讀操作時輸出數(shù)據(jù)。

2 ADuC812與K9S6408V0A的接口

K9S6408V0A與ADuC812的連接非常簡單,并可為以后的升級提供良好的條件?;布涌陔娐啡鐖D2所示。連接時用ADuC812的P3口的P3.0~P3.3分別與K9S6408V0A的CE、CLE、ALE和R/B相連接,K9S6408V0A的I/O0~I(xiàn)/O7分別連至ADuC812的P0.0~P0.7,K9S6408V0A的RE、WE分別與ADuC812的RD(P3.7)、WE(P3.6)相連,而ADuC812的P1口(模擬輸入口)接至數(shù)據(jù)采集傳感器。這樣就構(gòu)成了一個數(shù)據(jù)采集系統(tǒng)。ADuC812負(fù)責(zé)采集,而K9S6408V0A負(fù)責(zé)存儲數(shù)據(jù)。K9S6408V0A的各種操作具有共同特點,即在I/O口上首先發(fā)送操作命令字到命令寄存器,其后的連續(xù)三個周期發(fā)送要操作單元的地址(順序為A0~A7,A9~A16,A17~A22,其中A8由命令字確定)。表1為其命令集。

表1 命令集

功能第一周期第二周期忙時接受命令
連續(xù)數(shù)據(jù)輸入80H- 
讀一00H/01H- 
讀二50H- 
讀ID90H- 
復(fù)位FFH-O
頁編程10H- 
塊擦除60HD0H 
讀狀態(tài)70H-O

下面以頁編程操作為例,給出K9S6408V0A的標(biāo)準(zhǔn)匯編編程方法。而頁讀以及塊擦除等方法則與頁編程類似,只是讀時是由RE來鎖存數(shù)據(jù),而擦除時只送兩個周期的地址即可。頁編程操作可向一個或若干個單元寫入數(shù)據(jù),以下是頁編程操作的程序:

入口地址:

R1,R2,R3-欲寫入數(shù)據(jù)所在單元的列地址和頁地址;

R7-寫入數(shù)據(jù)的個數(shù)

R0-源數(shù)據(jù)指針

R6-失敗標(biāo)志

START:MOV DPTR,#XXXXH ;地址

CLR P3.0 ;片選

CLR P3.2 ;清ALE

SETB P3.1 ;置CLE

MOV A,#80H

MOVK@DPTR,A ;命令80H

CLR P3.1 ;清CLE

SETB P3.2 ;置ALE

MOV A,R1

MOVX@DPTR,A

MOV A,R2

MOVX@DPTR,A

MOV A,R3

MOVX@DPTR,A ;輸出地址A0-A22

CLR P3.2 ;清ALE

PR1:MOVX A,@R0

MOVX@DPTR,A

DJNZ R7,PR1 ;循環(huán)寫入

SETB P3.1 ;置CLE

MOV A,#10H

MOVX@DPTR,A ;命令10H

PRAM2:MOV C,P3.3

JNC PRAM2 ;忙,循環(huán)

SETB P3.1 ;置CLE

MOV A,#70H

MOVX@DPTR,A ;命令70H,

CLR P3.1 ;清CLE

MOVX A,@DPTR ;讀狀態(tài)

JNB ACC.0,SUC ;SR.0=0,成功

ERR:MOV R6,#0FH

SUC:SETB P3.0

END

3 系統(tǒng)軟件

本數(shù)據(jù)采集系統(tǒng)為8通道順序采集,ADuC812的時鐘頻率為11.0592MHz,CPU用斷方式管理A/D轉(zhuǎn)換器。當(dāng)A/D轉(zhuǎn)換完成時,向CPU發(fā)請求信號,CPU響應(yīng)中斷,中斷處理子程序負(fù)責(zé)對轉(zhuǎn)換的數(shù)據(jù)進(jìn)行讀出并將其存儲至K9S6408V0A,然后通道號加1,相應(yīng)的Flash存儲器地址也加1。圖3圖4分別為系統(tǒng)主程序和中斷處理子程序的流程圖。

下面以標(biāo)準(zhǔn)匯編語言給出本系統(tǒng)的主程序及A/D中斷處理子程序。

ORG 0000H

FLAG EQU 60H ;外部存儲器滿標(biāo)志

CHAN EQU 61H ;通道號

JMP MAIN

;;以下為中斷處理子程序

ORG 0033H ;A/D中斷處理程序入口地址

CLR EA ;關(guān)中斷

MOV R0,ADCDATAH ;轉(zhuǎn)換結(jié)果高8位送R0

LCALL WRITEONE ;寫一個數(shù)據(jù)到外部Flash RAM程序,可參考前面給出的頁編程程序段;

INC R1 ;低位地址加1

CJNE R1,#0FFH,NEXT;未超出范圍則處理下一個

MOV R1,#00H ;超出范圍則低位地址清零

INC R2 ;中間地址加1

CJNE R2,#0FFH,NEXT;未超出范圍則處理下一個

MOV R2,#00H ;超出范圍則中間地址清零

INC R3 ;高位地址加1

CJNE R3,#03FH,NEXT;未超出范圍則處理下一個

MOV FLAG,#01H ;否則,標(biāo)準(zhǔn)位置1

SJMP RET1 ;返回

NEXT:MOV R0,#ADCDATAL;轉(zhuǎn)換結(jié)果低8位送R0

LCALL WRITEONE ;寫入一個數(shù)據(jù)

LCALL WRITEONE ;寫入一個數(shù)據(jù)

INC CHAN ;通道號加1

CJNE CHAN,#08H,CHANG ;通道號不等于8,則開始下一通道轉(zhuǎn)換

MOV CHAN,#00H ;否則通道號清零

CHANG:MOV ADCCON1,#07Ch ;啟動A/D轉(zhuǎn)換

MOV ADCCON2,#CHAN ;選擇轉(zhuǎn)換通道

SETB EA ;中斷使能

ETB EADC ;使能A/D轉(zhuǎn)換中斷

SETB ADC1

RET1;RETI ;中斷返回

ORG 1000H

;;以下為主程序

MAIN:

MOV AFLAG,#00H ;標(biāo)志清零

MOV CHAN,#00H ;通道號清零

MOV ADCCON1,#07CH ;啟動A/D轉(zhuǎn)換,一次轉(zhuǎn)換時間14.5μs

MOV ADCCON2,#CHAN ;選擇轉(zhuǎn)換通道

MOV R1,#00H

MOV R2,#00H

MOV R3,#00H ;外部存儲器地址初始化

SETB EA ;中斷使能

SETB EADC ;使能A/D轉(zhuǎn)換中斷

SETB ADC1 ;啟動單個轉(zhuǎn)換周期

HERE:SETB PCON.0 ;CPU進(jìn)入空閑模式,功耗降;低可中斷喚醒

MOV A,F(xiàn)LAG

JNZ HERE ;存儲器未滿則等待

END

4 結(jié)束語

綜上所述,本文所描述的數(shù)據(jù)采集系統(tǒng)的軟硬件設(shè)計具有采集速度快,存儲容量大、系統(tǒng)體積小以及功耗低等特點,適用于隨身攜帶的低功耗應(yīng)用場合。只要將程序稍加修改,即可用于多種場合,還可對采集到的數(shù)據(jù)進(jìn)行實時分析處理,從而使該系統(tǒng)成為智能型的數(shù)據(jù)采集與分析系統(tǒng)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉