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