1 引言
隨著超大規(guī)模高速集成電路的發(fā)展,現(xiàn)代電子技術(shù)進(jìn)入了片上系統(tǒng)SoC(System on a Chip,簡(jiǎn)稱SoC)的設(shè)計(jì)與應(yīng)用階段。SoC從系統(tǒng)的整體功能及性能出發(fā),把微處理器(MPU)、芯片結(jié)構(gòu)、數(shù)字/模擬等外圍器件全部放置在一塊芯片中,實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。與傳統(tǒng)功能單一的MCU芯片相比,SoC可以根據(jù)系統(tǒng)要求增加多種功能,在相同的工藝條件下可實(shí)現(xiàn)更高性能的系統(tǒng)指標(biāo),所需的晶體管數(shù)目可降低2~3個(gè)數(shù)量級(jí);同時(shí)SoC技術(shù)的應(yīng)用減小了集成系統(tǒng)的體積,降低了功耗,提高了系統(tǒng)的抗電磁干擾性和可靠性[1]。
本文基于SoC技術(shù)研制了一種多通道數(shù)據(jù)同步采集系統(tǒng),該系統(tǒng)選用集成有七通道A/D轉(zhuǎn)換電路的SoC微處理器采集七個(gè)通道的模擬信號(hào);采用鐵電存儲(chǔ)技術(shù)擴(kuò)展存儲(chǔ)器FM1808,彌補(bǔ)微處理器存儲(chǔ)單元容量有限的問(wèn)題,并實(shí)現(xiàn)數(shù)據(jù)的長(zhǎng)時(shí)間存儲(chǔ)。為了顯示采集的數(shù)據(jù)信息,本文設(shè)計(jì)了LED串行接口驅(qū)動(dòng)電路。另外,該系統(tǒng)也可實(shí)時(shí)將所采集數(shù)據(jù)發(fā)送至上位機(jī)。
SoC技術(shù)是當(dāng)今超大規(guī)模集成電路的發(fā)展趨勢(shì),也是21世紀(jì)集成電路技術(shù)的主流,為集成電路產(chǎn)業(yè)提供了前所未有的廣闊市場(chǎng)和難得的發(fā)展機(jī)遇[2]。SoC技術(shù)是一種高度集成化、固件化的系統(tǒng)集成技術(shù),其核心思想是把整個(gè)應(yīng)用電子系統(tǒng)全部集成在一個(gè)芯片中。使用SoC技術(shù)設(shè)計(jì)應(yīng)用系統(tǒng)時(shí),除了那些無(wú)法集成的外部電路或機(jī)械部分以外,其他所有的系統(tǒng)電路全部集成在一起。
本文根據(jù)系統(tǒng)的要求選擇相應(yīng)的微處理器CPU內(nèi)核和IP模塊,設(shè)計(jì)并實(shí)現(xiàn)了基于SoC技術(shù)的多通道數(shù)據(jù)采集系統(tǒng),使得系統(tǒng)的固件特性和功能得到了充分的優(yōu)化。
2 基于SoC技術(shù)的多通道數(shù)據(jù)采集系統(tǒng)硬件結(jié)構(gòu)
本系統(tǒng)主要由核心控制單元、數(shù)據(jù)存儲(chǔ)和讀取單元、LED顯示單元和數(shù)據(jù)上傳單元組成,系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
本系統(tǒng)設(shè)置了四個(gè)功能鍵,系統(tǒng)模塊的功能選擇由功能鍵調(diào)用,具體功能如下:
(1) LED顯示鍵:每按一下則顯示一個(gè)通道采集的數(shù)據(jù)及其通道號(hào),可通過(guò)連續(xù)操作來(lái)顯示各個(gè)通道的采集數(shù)據(jù)。該鍵連接微處理器端口IOB2,執(zhí)行中斷功能。
(2) 讀取鍵:按一下則將存入鐵電存儲(chǔ)器的歷史數(shù)據(jù)全部發(fā)送至上位機(jī)。該鍵連接微處理器端口IOB3,執(zhí)行中斷功能。
(3) 上傳鍵:按下去則不斷的向上位機(jī)發(fā)送各個(gè)通道采集的數(shù)據(jù),將鍵復(fù)位則停止數(shù)據(jù)發(fā)送。該鍵連接微處理器端口IOB10,實(shí)現(xiàn)導(dǎo)通數(shù)據(jù)流的功能。
(4) 存儲(chǔ)鍵:按下去則將實(shí)時(shí)采集的數(shù)據(jù)存入鐵電存儲(chǔ)器,將鍵復(fù)位則停止存儲(chǔ)。該鍵連接微處理器端口IOB13,實(shí)現(xiàn)片選存儲(chǔ)芯片的功能。
2.1 核心控制單元
由于該系統(tǒng)最基本的功能是采集多路模擬信號(hào)并將其轉(zhuǎn)換為數(shù)字信號(hào),因此選用具有多通道A/D轉(zhuǎn)換功能的微處理器CPU內(nèi)核和IP模塊。本系統(tǒng)核心控制單元采用基于SoC的新型數(shù)/模混合系統(tǒng)級(jí)芯片SPCE061A,該芯片的CPU內(nèi)核為凌陽(yáng)科技公司最新推出µ’nsp(Microcontroller and Signal Processor)16位微處理器芯片(簡(jiǎn)稱µ’nSPTM)。
傳統(tǒng)的多通道數(shù)據(jù)采集系統(tǒng)需外擴(kuò)多個(gè)A/D轉(zhuǎn)換電路來(lái)實(shí)現(xiàn)多通道數(shù)據(jù)采集,使得系統(tǒng)結(jié)構(gòu)復(fù)雜化,且A/D轉(zhuǎn)換精度易受干擾。本系統(tǒng)采用的SPCE061A芯片內(nèi)集成了模擬/數(shù)字?jǐn)?shù)據(jù)采集的外設(shè)及其它功能部件,其中有七路通道(Line_In)和IOA[0~6] 端口可復(fù)用的10位ADC通道,可以直接通過(guò)引線(IOA[0~6])輸入,用于將輸入的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。這樣,MCU可在片內(nèi)實(shí)現(xiàn)通道轉(zhuǎn)換及A/D轉(zhuǎn)換,既降低了硬件成本,又縮短了數(shù)據(jù)傳送距離,提高了系統(tǒng)的抗干擾能力[3]。SPCE061A的A/D轉(zhuǎn)換性能指標(biāo)如表1所示。
核心控制單元將七個(gè)通道采集的模擬量通過(guò)A/D轉(zhuǎn)換變成數(shù)字量存儲(chǔ)在相應(yīng)地址的內(nèi)存中,然后根據(jù)要求將這些數(shù)據(jù)送到LED或上位機(jī)中顯示,同時(shí)也可將大量采集的歷史數(shù)據(jù)存儲(chǔ)起來(lái),用作以后分析。
表1 A/D轉(zhuǎn)換性能指標(biāo)
注:[1] LSB表示為最小有效單位,在VRT=3V的情況下,1LSB為2.93 mV。
[2] 此由最大采樣率(Samplerate_max)得來(lái),即Samplerate_max =ADC響應(yīng)率/16=1536kHz/16=96kHz。
2.2 數(shù)據(jù)存儲(chǔ)和讀取單元
傳統(tǒng)易失性RAM存儲(chǔ)器在掉電的時(shí)候均會(huì)失去保存的數(shù)據(jù),而源于只讀存儲(chǔ)器(ROM)技術(shù)的非易失性存儲(chǔ)器不僅寫入速度慢,而且只能有限次的擦寫,寫入時(shí)功耗大。為了準(zhǔn)確、實(shí)時(shí)、快速的存儲(chǔ)和傳輸大量數(shù)據(jù)信息,本文采用先進(jìn)的鐵電存儲(chǔ)技術(shù)對(duì)數(shù)據(jù)存儲(chǔ)和傳輸性能進(jìn)行優(yōu)化,選用擴(kuò)展芯片SPBA01B和鐵電存儲(chǔ)器FM1808構(gòu)成數(shù)據(jù)存儲(chǔ)讀取單元。
系統(tǒng)中所用的256K位鐵電非易失性隨機(jī)存儲(chǔ)器FM1808能兼容RAM的一切功能和ROM的非易失性技術(shù),是一種非易失性的快速讀寫存儲(chǔ)器,其特性如下:
(1) 結(jié)構(gòu)容量為32 768×8位;
(2) 100億次以上的讀寫次數(shù);
(3) 掉電數(shù)據(jù)保持10年;
(4) 寫數(shù)據(jù)無(wú)延時(shí)。本文采用的鐵電存儲(chǔ)技術(shù)不僅能使系統(tǒng)快速無(wú)延時(shí)的讀寫數(shù)據(jù),而且能使之在掉電情況下保存數(shù)據(jù)10年之久[4]。
由于SoC微處理器端口資源有限,因此本文采用可級(jí)連單片總線擴(kuò)展芯片SPBA01B來(lái)擴(kuò)展鐵電存儲(chǔ)器FM1808。SPBA01B是一款8bit總線擴(kuò)展芯片,可擴(kuò)展4MBytes的Memory 或25個(gè)IO口。SPBA01B支持各種Memory類型的擴(kuò)展,在對(duì)Memory操作的時(shí)候,不需要直接操作Memory 的片選、讀、寫信號(hào),只要對(duì)相應(yīng)的寄存器寫入命令、數(shù)據(jù)即可,數(shù)據(jù)存儲(chǔ)讀取單元內(nèi)部結(jié)構(gòu)圖如圖2所示。
系統(tǒng)只需對(duì)SPBA01B內(nèi)部寄存器進(jìn)行相應(yīng)的設(shè)置,即可實(shí)現(xiàn)對(duì)SPBA01B的讀、寫以及片選信號(hào)線的自動(dòng)控制。其中MC1決定AD總線是地址還是數(shù)據(jù)總線,MC0決定操作模式(讀或?qū)懀?BR>
圖2 數(shù)據(jù)存儲(chǔ)和讀取單元內(nèi)部結(jié)構(gòu)圖
2.3 LED顯示單元
該單元由三片8-BIT串行輸入/串并行輸出移位寄存器74HC595A和三片LED構(gòu)成。
傳統(tǒng)的多路數(shù)據(jù)采集系統(tǒng)常常借助于多路開關(guān)實(shí)現(xiàn)數(shù)據(jù)分時(shí)輸入,MCU將數(shù)據(jù)處理完畢后利用并行I/O口將結(jié)果存儲(chǔ)、顯示。這樣系統(tǒng)結(jié)構(gòu)復(fù)雜,電路連線多,工作可靠性及穩(wěn)定性差[5]。因此本文設(shè)計(jì)了串行接口電路擴(kuò)展外圍器件,使得接口電路簡(jiǎn)單,信號(hào)獲取質(zhì)量高,穩(wěn)定性及可靠性大大提高。
微處理器將采集的數(shù)據(jù)(包含通道號(hào)和電壓值)通過(guò)I/O端口IOB0串行輸入到第一片74HC595A中,然后通過(guò)端口IOB2(連接到每片74HC595A“SHIFT CLOCK”引腳)來(lái)控制數(shù)據(jù)在三片74HC595A中的移位。當(dāng)發(fā)送完一個(gè)通道采集的信息(即24bit數(shù)據(jù))后,再用端口IOB1(連接到每片74HC595A“LATCH CLOCK”引腳)鎖存數(shù)據(jù)到3個(gè)LED中顯示(每片74HC595A的引腳“QA至QH”連接一個(gè)LED),擴(kuò)展移位寄存器74HC595A電路圖如圖3所示。
圖3 擴(kuò)展移位寄存器74HC595A電路圖
2.4 數(shù)據(jù)上傳單元
該單元由RS232驅(qū)動(dòng)芯片MAX232構(gòu)成。
微處理器SPCE061A的I/O端口IOB10和IOB7(內(nèi)置串口)負(fù)責(zé)數(shù)據(jù)的發(fā)送與接受,其波特率可達(dá)114841bps。為了使微處理器SPCE061A的TTL串行接口與上位機(jī)RS232C串行接口正常通訊,本系統(tǒng)采用RS232驅(qū)動(dòng)芯片MAX232來(lái)轉(zhuǎn)換電平,實(shí)現(xiàn)通訊功能。
3 基于SoC技術(shù)的多通道數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件采用C語(yǔ)言和匯編語(yǔ)言混合編寫,程序流程如圖4所示。
系統(tǒng)軟件采用模塊化結(jié)構(gòu),主要由主模塊、A/D轉(zhuǎn)換模塊、LED顯示模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)存儲(chǔ)模塊和數(shù)據(jù)讀取模塊構(gòu)成,便于系統(tǒng)軟件的修改和維護(hù)。
圖4 系統(tǒng)軟件流程圖
系統(tǒng)主模塊主要完成微處理器SPCE061A的初始化,并設(shè)置系統(tǒng)時(shí)鐘和中斷字,以及調(diào)用A/D轉(zhuǎn)換模塊,然后根據(jù)不同的按鍵轉(zhuǎn)入相應(yīng)的中斷程序,完成對(duì)各個(gè)功能模塊的調(diào)用,實(shí)現(xiàn)不同的功能。其中多通道A/D轉(zhuǎn)換程序如下所示:
R1 = 0x0001
L_AD: [P_ADC_mux_Ctrl] = R1 //選擇通道LINE_IN為IOA0
R1 = 0x0003 //允許A/D轉(zhuǎn)換
[P_ADC_Ctrl] = R1
R1 = [P_ADC_mux_Ctrl] //讀寄存器[P_ADC_MUX_Ctrl]的B15位
TEST R1,0x8000 //判斷是否轉(zhuǎn)換完畢
JZ L_AD //否,繼續(xù)轉(zhuǎn)換
R1 = [P_ADC_mux_data] //是,則讀出[P_ADC_MUX_DATA]轉(zhuǎn)換結(jié)果
R1=R1 lsr 4
R1=R1 lsr 2
[AD1]=r1
通過(guò)模擬量輸入口LINE_IN輸入電壓值,再通過(guò)讀取P_ADC_MUX_Data單元可以獲得10位A/D轉(zhuǎn)換的數(shù)據(jù)。從該單元讀取數(shù)據(jù)后,又會(huì)使RDY自動(dòng)清“0”來(lái)重新開始進(jìn)行A/D轉(zhuǎn)換。若未讀取P_ADC_MUX_Data單元中的數(shù)據(jù),RDY仍保持為“1”,則不會(huì)啟動(dòng)下一次的A/D轉(zhuǎn)換。
4 結(jié)語(yǔ)
本文基于SoC技術(shù)設(shè)計(jì)了一種多通道數(shù)據(jù)同步采集系統(tǒng),通過(guò)模塊化設(shè)計(jì),系統(tǒng)把各功能部件集成在一個(gè)芯片里,內(nèi)部采用總線結(jié)構(gòu),減少了各功能部件之間的連線,提高了其可靠性和抗干擾能力;另外,系統(tǒng)采用鐵電存儲(chǔ)技術(shù)擴(kuò)展了存儲(chǔ)單元容量,彌補(bǔ)了數(shù)據(jù)存儲(chǔ)時(shí)間短的問(wèn)題。該系統(tǒng)可在復(fù)雜的工業(yè)現(xiàn)場(chǎng)等環(huán)境中穩(wěn)定、實(shí)時(shí)采集多路模擬信號(hào),并實(shí)現(xiàn)數(shù)據(jù)長(zhǎng)時(shí)間存儲(chǔ)和顯示。