一種數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
近年來,隨著微控制器的發(fā)展,各類工業(yè)控制產(chǎn)品對現(xiàn)代數(shù)字控制器的需求也越來越大。微控制器是將微型計算機的主要部分集成在一個芯片上的單芯片微型計算機。微控制器誕生于20世紀70年代中期,經(jīng)過20多年的發(fā)展,其成本越來越低,而性能越來越強大,這使其應用已經(jīng)無處不在,遍及各個領域。例如電機控制、條碼閱讀器/掃描器、消費類電子、游戲設備、電話、HVAC、樓宇安全與門禁控制、工業(yè)控制與自動化和白色家電(洗衣機、微波爐)等。微控制器(Microcontroller Unit,即MCU)可從不同方面進行分類:根據(jù)數(shù)據(jù)總線寬度可分為8位、16位和32位機;根據(jù)存儲器結構可分為Harvard結構和Von Neumann結構;根據(jù)內嵌程序存儲器的類別可分為OTP、掩膜、EPROM/EEPROM和閃存Flash;根據(jù)指令結構又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
1 浮點DSP TMS320C6713簡介
TMS320C6713 DSP是美國TI于1997年推出的C6000系列DSP芯片的一款,它是32位高速浮點型DSP,時鐘最高頻率為300MHz。TMS320C6713主要特點有:(1)體系結構采用超長指令字(VLIW)結構,單指令字長為32位,指令包里有8個指令,總字長達到256位。執(zhí)行指令的功能單元已經(jīng)在編譯時分配好,程序運行時通過專門的指令分配模塊,可以將每個256位的指令包同時分配到8個處理單元,并由8個單元同時運行。其最大處理能力可以達到2400MIPS。(2)采用二級緩沖處理,4KByte直接匹配的程序緩沖L1P,4KByte可匹配的數(shù)據(jù)緩沖L1D,256KByteL2額外匹配內存。32位外部存儲器接口,可無縫連接SRAM、EPROM、Flash、SBSRAM和SDRAM。(3)豐富的外設,包括DMA,EDMA,支持無需CPU參與可以在允許的地址空間里傳送數(shù)據(jù),擴展總線,具有主機口和I/O端口操作等功能,多通道緩沖串口,其通過配置能和多種串行通信接口通信,兩個32位通用定時器等。
CPU中包含8個功能單元,可以并行操作;有兩組寄存器,每組寄存器由16個32位寄存器組成。片內程序存儲器的總線寬度為256 bit,每個周期可取8條32位指令。TMS320C6713功能框圖如圖1所示。
從總體上歸納一下,TMS320C6713具有以下特點:
1)高性能浮點DSP,主頻高達200 MHz,運算速度最高可達1600 MIPS;
2)超長指令字(VLIW)DSP核:8個獨立功能單元(6個累加器和2個乘法器),32個32 bit的通用寄存器的存儲裝載結構,可以大大縮減代碼的指令包;
3)L1/L2存儲器結構:4 KB L1P程序緩存,4 KB L1D數(shù)據(jù)緩存:256 KB L2內存:其中64 K字節(jié)可配置成緩存或存儲器,192 K字節(jié)統(tǒng)一映像內存,可以靈活地定位為程序/數(shù)據(jù)空間;
4)32位外部存儲器接口(EMIF):可配置異步存儲器接口,擴展SRAM和E2PROM;可配置同步存儲器接口,可擴展SDRAM和SBSRAM;可尋址512 MB外存空間;
5)16位的HPI接口,可訪問CPU的任意可尋址空間;
6)2個多通道緩存串口(McBSP);
7)2個I2C總線主/從模式接口;
8)內置靈活的PLL鎖相時鐘電路;
9)支持1EEE-1149.1(JTAG)邊界掃描接口;10)16路GPIO接口。
2 EMIF簡介
外部存儲器接口(EMIF),External Memory Interface,是TMS DSP器件上的一種接口。一般來說,EMIF可實現(xiàn)DSP與不同類型存儲器(SRAM、Flash RAM、DDR-RAM等)的連接。一般EMIF與FPGA相連,從而使FPGA平臺充當一個協(xié)同處理器、高速數(shù)據(jù)處理器或高速數(shù)據(jù)傳輸接口。設計接口提供了一個FPGA塊至RAM的無縫連接。在讀/寫、FIFO或存儲器模式中,雙端口塊RAM的一側被用來實現(xiàn)與DSP的通信。另一側用于實現(xiàn)與內部FPGA邏輯電路或平臺-FPGA嵌入式處理器的通信。在使用DSP的過程中,需要設計外部存儲器接口時可以參考TI的TMS320XX DSP External Memory Interface (EMIF) Reference Guide。其中XX代表某一種具體的dsp處理器。
TMS320C6000的EMIF接口,即外部存儲器接口(The External Memory Interface),支持各種外部器件的無縫接口。
簡單來說,EMIF接口就相當于一個可配置的總線接口,其接口上面的信號線基本囊括了各種存儲器(SRAM、Flash RAM、DDR-RAM等)的讀寫接口信號。通過軟件配置相應的寄存器,可以使EMIF接口工作于和設計中使用的外部存儲器相匹配的固定的接口形式。
下面就本次設計使用的TMS320C6713為例詳細介紹一下EMIF。TMS320C6713的EMIF可以通過下面兩種請求器處理外部總線請求:片內加強型直接存儲器存取EDMA控制器;外部共享存儲器的設備控制器。
圖2是TMS320C6713的EMIF接口信號示意圖。
圖2中,ECLKIN信號是系統(tǒng)提供的一個外部時鐘源。ECLKOUT信號是由內部產(chǎn)生(基于ECLKIN),所有與本控制器EMIF接口對接的存儲器必須工作在ECLKOUT下。SBSRAM接口、SDRAM接口和異步接口的信號合并復用。這里的CE1片選空間支持所有的3種存儲器接口。
表1列出TMS320C6713的EMIF存儲器映射寄存器。通過設置這些寄存器,既可以將EMIF配置成為不同類型、不同位寬的總線接口,又可以配置總線讀寫時序的速度。由于EMIF接口的這一優(yōu)勢,設計者使用集成EMIF接口的控制芯片時,無論是擴展外部存儲設備,還是利用EMIF接口進行外部設備的讀取,其難度都大大降低。
3 硬件電路設計與實現(xiàn)
3.1 需求分析
本設計硬件任務主要是完成對主電路的電壓、電流的采集,具體的要求如表2所示。
3.2 硬件設計
圖3所示是TMS320C6713外圍的主要的功能框圖。
如圖3所示,本設計的外圍器件主要包括:雙口RAM,用于與定點核DSP芯片(如TMS320F2812)交換數(shù)據(jù);Boot Flash,當程序的大小大于192 KB,用于存儲啟動程序;SDRAM,用作運行部分程序的存儲介質;CPLD,用于邏輯擴展;AD7865,用于采集電壓電流的實時數(shù)據(jù)。
AD7865是一種高速、低功耗、四通道同步采樣的14位A/D轉換芯片,該芯片內部有1個2.4μs的逐次逼近型A/D轉換器,4個跟蹤/保持放大器,內部2.5V參考電壓,同時片上還集成有時鐘振蕩器和1個高速并行接口。AD7865可大大簡化硬件電路設計。AD574轉換時間為25μs,而AD7865完成四通道信號的同時轉換,則只需要100 μs。 AD7865內部4個采樣通道的輸入信號是同步采樣的,只需發(fā)送1個脈沖的采樣啟動信號,芯片將自動完成采樣、逼近和存儲數(shù)據(jù)到片內特定寄存器等工作,單路采樣速率350 KSPS,四路同時采集時100 kHz。
根據(jù)設計需求可設定調理電路放大倍數(shù)為2倍(反相放大),則實際值與A/D的采樣值之間的關系可由式(1)表示。
實際值=采樣值/213x10/(-2)×傳感器系數(shù) (1)
若采樣值為正數(shù)時可用式(1),否則需先進行求補處理。
AD7865的前端調理電路如圖4所示。
AD7865的外圍連接電路如圖5所示。
TMS320C6713的EMIF接口各信號線可以根據(jù)EMIF接口的示意圖(圖2)連接。在這里需要注意的是各信號線的上拉、下拉和信號線上的限流等措施??砂凑杖缦略瓌t設計:1)地址線和數(shù)據(jù)線以及控制線出口處可以串聯(lián)33 Ω的電阻,以達到限流的效果;2)對于某些敏感信號在默認狀態(tài)下的電平,應該通過上拉和下拉進行確定。一般情況下,上拉電阻用10 kΩ的電阻,下拉電阻用1 kΩ的電阻。
CPLD的主要功能主要是實現(xiàn)邏輯擴展,在本設計中,CPLD的主要工作是在DSP6713和多片AD7865芯片之間進行信號的解析和傳遞。選用的CPLD芯片是ALTERA公司的EPM570,該芯片相較于其他同類型的CPLD而言,配置簡單、存儲容量大而價格較低廉。其外圍電路比較簡單,可以參考ALTERA公司關于該芯片的引腳功能表,在此不做贅述。
4 軟件實現(xiàn)與部分流程圖
4.1 EMIF接口的配置實現(xiàn)
TMS320C6713要實現(xiàn)EMIF接口數(shù)據(jù)讀取的首要條件是正確配置EMIF接口的寄存器,以達到設計的要求。
本設計將CE3作為外部AD的尋址空間,因此在這里主要需要配置的EMIF寄存器主要是全局控制寄存器GBLCTL和CE3空間控制寄存器。當然,要正確地配置EMIF接口,必須要正確配置TMS320C6713的鎖相環(huán)(PLL)寄存器,在此處不具體說明。本設計中具體主要寄存器配置的幾個參數(shù)如下:
本設計中采用的EMIF接口方式為32位異步接口(MTYPE=0010b)。雖然AD7865是14位MD轉換器,配置為16位寬的接口方式也可以了,但是實際上,由于內部數(shù)據(jù)處理時為了計算方便而采用了32位的數(shù)據(jù),數(shù)據(jù)位寬通常為32位,在進行外部讀取時,如果采用16位寬度,那么一次讀取總線為了匹配數(shù)據(jù)長度,將要發(fā)送連續(xù)讀取兩次的讀信號,這在一定程度上雖然加快了A/D讀取的速度。
4.2 實現(xiàn)A/D轉換和讀取數(shù)據(jù)
實際使用中,AD7865啟動轉換只需要給出片選和ADCONV信號。而它的讀取方式有兩種:
1)轉換過程中讀取數(shù)據(jù),即轉換一路讀取一路;
2)所有通道的信號均轉換完成后再順序讀取各通道數(shù)據(jù)。
兩種讀取方式的主要區(qū)別是:第1種讀取速度較快,但是時序要求較高,硬件連接復雜,增加軟硬件設計的難度;而第2種讀取速度相對較慢,但是時序要求不高,軟硬件設計也相對簡單??紤]到系統(tǒng)的可靠性,同時CPLD完成時序的能力較差,CPLD(Complex Programmable Logic Device)復雜可編程邏輯器件,是從PAL和GAL器件發(fā)展出來的器件,相對而言規(guī)模大,結構復雜,屬于大規(guī)模集成電路范圍。是一種用戶根據(jù)各自需要而自行構造邏輯功能的數(shù)字集成電路。其基本設計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應的目標文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標芯片中,實現(xiàn)設計的數(shù)字系統(tǒng)。
實際采用的A/D轉換和讀取的主要流程如圖6所示。
5 測量結果
本文完成輔助控制器的設計后,對軟硬件進行測試。
主要采用直流電源進行測試,測試分為正向電壓、反向電壓(即認為傳感器系數(shù)為1)。測試結果見表3。由表可知測試結果的誤差小于1%,完全符合設計要求。
6 結束語
由測量數(shù)據(jù)和控制器的計算結果可知,本設計完成了基于EMIF接口的數(shù)據(jù)采集系統(tǒng)的設計任務。由系統(tǒng)采集得到的數(shù)據(jù)誤差較小,可以滿足各類工程的需求。通過在線調試??煽吹皆趯嶋H采樣過程中,采樣數(shù)據(jù)是在一個值附近波動,在某些對于數(shù)據(jù)的實時度需求不是很高,而對數(shù)據(jù)的精確度需求較高的場合,可通過求取某一段較短時間內的采樣平均值的方法來提高數(shù)據(jù)的精度。而且,由于控制器選用性能較高的TMS320C6000系列DSP,其性能和資源還有很大的可利用率。
朦煙