楊 兵,陶 偉,李江達(dá)
(1.江南大學(xué)物聯(lián)網(wǎng)學(xué)院,江蘇 無(wú)錫,214122;2.中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫,214035)
數(shù)據(jù)采集系統(tǒng)廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、軍事及日常生活等各個(gè)領(lǐng)域。通常對(duì)數(shù)據(jù)采集系統(tǒng)的要求是速度快,精度高,存儲(chǔ)容量大,抗干擾能力強(qiáng),能實(shí)時(shí)記錄數(shù)據(jù)采集的時(shí)間,并能靈活選擇數(shù)據(jù)輸出的方式,而采用普通的數(shù)據(jù)采集系統(tǒng)很難滿足上述要求。該文介紹了一種以8051核為核心、配合大容量存儲(chǔ)器和各種通用外設(shè)所構(gòu)成的數(shù)據(jù)采集系統(tǒng)的單芯片SOC設(shè)計(jì)方法。
該系統(tǒng)(如圖1)是高度集成的高精度12位數(shù)據(jù)采集系統(tǒng)。系統(tǒng)組合了帶有片內(nèi)可重新編程非易失性FLASH存儲(chǔ)器的高性能8051核,它用于控制多通道的12位DAC和12位ADC以及處理采集數(shù)據(jù);它還組合了全部輔助功能模塊以充分支持可編程的數(shù)據(jù)采集核心,這些功能模塊包括FLASH數(shù)據(jù)存儲(chǔ)器、看門狗WTD、電源監(jiān)視器PSM以及各種標(biāo)準(zhǔn)并行和串行接口。
系統(tǒng)主要工作流程:
(1)根據(jù)數(shù)據(jù)采集系統(tǒng)實(shí)際應(yīng)用情況,向8kb的程序存儲(chǔ)器燒寫用戶程序;
(2)根據(jù)用戶程序配置相應(yīng)的各種外設(shè),包括8通道的DAC以及8051 CORE的各種通用外設(shè);
(3)被選擇的速率為200ksps的12位ADC進(jìn)行有效的數(shù)據(jù)轉(zhuǎn)換;
(4)采樣數(shù)據(jù)或者加工處理后的采樣數(shù)據(jù)可以選擇性地存儲(chǔ)在RAM中或者640B的FLASH中;
(5)根據(jù)具體應(yīng)用情況,8051核可以對(duì)采樣數(shù)據(jù)進(jìn)行處理;
(6)采樣數(shù)據(jù)或者加工處理后的采樣數(shù)據(jù)可以選擇性地存儲(chǔ)在片內(nèi)存儲(chǔ)器中或者通過(guò)8051核的外設(shè)通道直接送出。
(1)工作頻率12MHz(最大16 MHz);
(2) 3個(gè)16位定時(shí)器/計(jì)數(shù)器;
(3) 32條可編程的I/O線;
(4) 高電流驅(qū)動(dòng)能力;
(5) 9個(gè)中斷源,2個(gè)優(yōu)先級(jí);
(6) 8kB片內(nèi)FLASH程序存儲(chǔ)器,640B片內(nèi)FLASH數(shù)據(jù)存儲(chǔ)器和片內(nèi)充電部分;
(7) 16MB外部數(shù)據(jù)地址空間和64kB外部程序地址空間;
(8)片外UART串行I/O,I2C總線和SPI總線;
(9) 片外看門狗定時(shí)器和電源監(jiān)視器;
(10)8051核有三條總線,與內(nèi)部數(shù)據(jù)RAM的數(shù)據(jù)傳輸通過(guò)IRAM BUS,與內(nèi)部程序ROM的數(shù)據(jù)傳輸通過(guò)IROM BUS,與外部存儲(chǔ)器的數(shù)據(jù)傳輸通過(guò)MEM BUS,而與外設(shè)之間的數(shù)據(jù)傳輸是通過(guò)SFR BUS來(lái)實(shí)現(xiàn)的。電路基本結(jié)構(gòu)如圖2。
與所有8051兼容的器件一樣,對(duì)于程序和數(shù)據(jù)存儲(chǔ)器,該系統(tǒng)具有分開地址空間,如圖3、圖4所示。
圖2 8051核電路結(jié)構(gòu)
圖3 程序存儲(chǔ)器空間
圖4 數(shù)據(jù)存儲(chǔ)器空間
內(nèi)部數(shù)據(jù)存儲(chǔ)器的最低32字節(jié)分為8個(gè)寄存器(R0到R7)的4個(gè)組;寄存器組上緊接的16個(gè)字節(jié)構(gòu)成了位可尋址的存儲(chǔ)器空間塊,位地址從00H到7FH;而SFR空間映射到內(nèi)部數(shù)據(jù)存儲(chǔ)器空間的高128字節(jié)。SFR區(qū)僅通過(guò)直接尋址來(lái)訪問并提供CPU和所有片內(nèi)外圍設(shè)備之間的接口。
3.3.1 基本工作原理
ADC轉(zhuǎn)換塊包含了5μs / 8通道12位單電源A/D轉(zhuǎn)換器。此模塊為用戶提供多通道多路轉(zhuǎn)換器、跟蹤/保持、片內(nèi)基準(zhǔn)、校準(zhǔn)特性以及A/D轉(zhuǎn)換器,并且模塊內(nèi)所有部件都能方便地通過(guò)3-寄存器SFR接口來(lái)設(shè)置。
A/D轉(zhuǎn)換器由基于DAC的常規(guī)逐次逼近轉(zhuǎn)換器組成,轉(zhuǎn)換器接收的模擬輸入范圍為0至參考電壓Vref。片內(nèi)提供高精度、低漂移并經(jīng)過(guò)工廠校準(zhǔn)的2.5V基準(zhǔn)電壓。片內(nèi)基準(zhǔn)可經(jīng)外部Vref引腳過(guò)驅(qū)動(dòng),外部基準(zhǔn)可在2.3V到AVDD的范圍內(nèi)。在此范圍內(nèi),設(shè)計(jì)的代碼跳變發(fā)生在連續(xù)的整數(shù)LSB值的中間(即1/2LSB,1/2LSB,1/2LSB—— FS-3/2LSBs)。當(dāng)Vref=2.5V時(shí),輸出碼是直接的二進(jìn)制數(shù),1LSB=FS/4096或2.5V/4096=0.61mV。在0到Vref范圍內(nèi)理想的輸入/輸出轉(zhuǎn)移特性如圖5所示。
圖5 AD輸入輸出轉(zhuǎn)移特性
用軟件或者通過(guò)把轉(zhuǎn)換信號(hào)加到外部引腳CONVST可啟動(dòng)單步或連續(xù)轉(zhuǎn)換模式,也可以設(shè)定定時(shí)器2來(lái)產(chǎn)生用于ADC轉(zhuǎn)換的重復(fù)觸發(fā)信號(hào),也可以配置ADC以便工作在DMA模式,因此ADC塊連續(xù)轉(zhuǎn)換并把采樣值捕獲到外部RAM空間不需來(lái)自MCU核的任何干擾,并且這種自動(dòng)捕獲功能可以擴(kuò)展到16MB外部數(shù)據(jù)存儲(chǔ)器空間。
系統(tǒng)設(shè)計(jì)芯片裝有工廠編程的校準(zhǔn)系數(shù),它在上電時(shí)自動(dòng)下載到ADC,以確保最佳的ADC性能。ADC核包括內(nèi)部失調(diào)和增益校準(zhǔn)寄存器,所提供的軟件校準(zhǔn)子程序可允許用戶在需要時(shí)重寫工廠編程的校準(zhǔn)系數(shù),以便使用戶目標(biāo)系統(tǒng)中端點(diǎn)誤差的影響最小。
來(lái)自片內(nèi)溫度傳感器的電壓輸出正比于絕對(duì)溫度,它也可以通過(guò)前端ADC多路轉(zhuǎn)換器(實(shí)際上是第九個(gè)ADC通道輸入)傳送,這方便了溫度傳感器的實(shí)現(xiàn)。
3.3.2 基本功能電路
ADC的工作狀態(tài)完全由3個(gè)SFR寄存器控制:ADCCON1寄存器控制ADC的轉(zhuǎn)換和采集時(shí)間,硬件轉(zhuǎn)換模式和掉電模式;ADCCON2寄存器控制ADC的通道選擇和轉(zhuǎn)換模式;而ADCCON3寄存器對(duì)用戶軟件給出ADC忙狀態(tài)的指示。
該系統(tǒng)使用4個(gè)通用數(shù)據(jù)端口與外部器件交換數(shù)據(jù)。除了實(shí)現(xiàn)通用I/O外,某些端口能實(shí)現(xiàn)外部存儲(chǔ)器操作;其他端口則與器件上外圍設(shè)備其他功能多路復(fù)用。端口0、2和3是雙向端口,端口1只是輸入端口。所有端口都包含輸出鎖存器和輸入緩沖器,I/O端口也包含輸出驅(qū)動(dòng)器。對(duì)端口0~3引腳的讀和寫訪問通過(guò)它們對(duì)應(yīng)的特殊功能寄存器SFR來(lái)實(shí)現(xiàn)。
圖6 12位ADC功能電路
UART是全雙工的,可以同時(shí)發(fā)送和接收數(shù)據(jù),通過(guò)8051核可以配置為四種工作模式之一;而串行外設(shè)SPI接口是工業(yè)標(biāo)準(zhǔn)的同步串行接口,它允許8位數(shù)據(jù)同時(shí)同步地被發(fā)送和接收,系統(tǒng)可配置為主(Master)或從(Slaver)操作;與I2C兼容的串行接口有兩個(gè),可配置為軟件主(Software Master)或硬件從(Hardware Slave)模式,并且可與SPI串行接口多路復(fù)用。
該系統(tǒng)具有三個(gè)16位定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都包含兩個(gè)8位寄存器THx和TLx(x=0、1和2),所有三個(gè)定時(shí)器/計(jì)數(shù)器均可配置作為定時(shí)器或者事件計(jì)數(shù)器。在“計(jì)數(shù)器”功能中,每個(gè)機(jī)器周期TLx寄存器增量,而在“計(jì)數(shù)器”中,TLx寄存器根據(jù)其對(duì)應(yīng)的外部輸入引腳T0或T1上的1到0的跳變?cè)隽俊?/p>
該系統(tǒng)集成了兩個(gè)片內(nèi)監(jiān)視器功能以便使災(zāi)難性的編程或其他外部系統(tǒng)故障期間內(nèi)代碼或數(shù)據(jù)的破壞最小,并且兩個(gè)監(jiān)視器功能完全可通過(guò)SFR空間來(lái)配置。
看門狗定時(shí)器的用途是當(dāng)該系統(tǒng)可能由于編程錯(cuò)誤、電氣噪聲或RFI而進(jìn)入出錯(cuò)狀態(tài)達(dá)到適當(dāng)時(shí)間時(shí)產(chǎn)生器件的復(fù)位。它是通過(guò)清除看門狗控制(WDCON)SFR中WDE(看門狗使能)位而永遠(yuǎn)被禁止。當(dāng)它被使能時(shí),如果在預(yù)定時(shí)間間隔內(nèi)用戶程序沒有刷新看門狗,那么看門狗電路將產(chǎn)生系統(tǒng)復(fù)位,復(fù)位時(shí)間間隔可通過(guò)SFR預(yù)定標(biāo)位在16ms~204ms范圍內(nèi)進(jìn)行調(diào)整。
該系統(tǒng)芯片集成了大量的外圍設(shè)備,是一個(gè)可編程、自校正、高精度的數(shù)據(jù)采集系統(tǒng),可以取代傳統(tǒng)的MCU+A/D+RAM高成本、大體積產(chǎn)品,尤其是它的高精度和高速度A/D模塊,特別適應(yīng)于智能傳感、瞬間獲取、數(shù)據(jù)采集和各種通訊系統(tǒng)。
[1] 潘名蓮,童義生. 微計(jì)算機(jī)原理[M]. 北京:電子工業(yè)出版社,1989.
[2] 沈美明,溫冬嬋. IBM-PC匯編語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1991.
[3] [美] L.C.埃格布雷赫編著,孫承鑒等譯. IBM-PC微型機(jī)接口[M]. 北京:科學(xué)技術(shù)出版社.