《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > 基于AVR单片机大容量数据采集系统的设计
基于AVR单片机大容量数据采集系统的设计
摘要: 论文设计了5路A/D采集电路,介绍了如何在实际的电路中实现大容量数据采集。设计要求:5路并行采集电路,A/D采集精度为12位,每路的采集速度约为10 k/s,有效采集时间约为10分钟。由此我们可以得到所需要的存储空间大小大约为3 M(10×5 x10×60 K),一般AVR单片机的数据存储容量是远远达不到的,因此扩展一个FLASH芯片作为数据存储器。
Abstract:
Key words :
  0 引言

  AVR系列單片機(jī)一直以功能強(qiáng)、高可靠性、高速度、低功耗等特點(diǎn)而受到廣泛的應(yīng)用。但是AVR單片機(jī)" title="AVR單片機(jī)">AVR單片機(jī)自身的存儲空間不大,例如在長時(shí)間或者高速數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集系統(tǒng)中,對數(shù)據(jù)存儲空間需求很大,單片機(jī)自身的空間難以滿足存儲要求,所以在大容量數(shù)據(jù)采集的場合下其作用受到了限制。因此,在AVR單片機(jī)的基礎(chǔ)上外擴(kuò)一個(gè)存儲芯片" title="存儲芯片">存儲芯片可以解決其存儲容量小的問題。

  Flash存儲器體積小、容量大、并可隨機(jī)訪問,是作為擴(kuò)展存儲芯片的最佳選擇。設(shè)計(jì)中采用了sumsung公司生產(chǎn)的NAND型的K9F5608UOM芯片作為擴(kuò)展存儲。

  1 硬件設(shè)計(jì)

  論文設(shè)計(jì)了5路A/D采集電路,介紹了如何在實(shí)際的電路中實(shí)現(xiàn)大容量數(shù)據(jù)采集。設(shè)計(jì)要求:5路并行采集電路,A/D采集精度為12位,每路的采集速度約為10 k/s,有效采集時(shí)間約為10分鐘。由此我們可以得到所需要的存儲空間大小大約為3 M(10×5 x10×60 K),一般AVR單片機(jī)的數(shù)據(jù)存儲容量是遠(yuǎn)遠(yuǎn)達(dá)不到的,因此擴(kuò)展一個(gè)FLASH芯片作為數(shù)據(jù)存儲器。

  整個(gè)數(shù)據(jù)控制采集系統(tǒng)由三大模塊組成,分別是MAX1304模數(shù)轉(zhuǎn)化芯片構(gòu)成的數(shù)據(jù)采集模塊、K9F4G08UOM存儲芯片構(gòu)成數(shù)據(jù)存儲模塊以及Atm-ega16L芯片組成的系統(tǒng)控制模塊。系統(tǒng)設(shè)計(jì)構(gòu)架見圖1。

a.jpg

  1.1 系統(tǒng)控制芯片介紹

  ATmage16L是ATMEL公司在2002年第一季度推出的一款A(yù)VR單片機(jī),采用RISC指令系統(tǒng),Havard結(jié)構(gòu)設(shè)計(jì),具有接近1MIPS/MHz的高速處理能力,具有16 k字節(jié)的在線編程FLASH,512字節(jié)的EEPROM數(shù)據(jù)存儲器,32個(gè)可編程雙向I/O口可傳送地址和數(shù)據(jù)。芯片引腳見圖2。

b.jpg

  1.2 A/D芯片接口設(shè)計(jì)

  MAX1304是MAXIM公司推出的可編程12位精度串行輸出A/D轉(zhuǎn)換芯片,它具有8路模擬通道輸入,每路都有獨(dú)立的采樣保持(T/H)電路。并行采樣的功能極大地提高了采樣速率,可應(yīng)用在高速數(shù)據(jù)采集電路中。其電壓輸入范圍為0~+5 V,并具有±6 V的故障保護(hù),為電路提供了很好的安全屏障。內(nèi)部或外部基準(zhǔn)模式以及內(nèi)部或外部時(shí)鐘選擇使得在設(shè)計(jì)電路時(shí)有了很大的靈活性。本設(shè)計(jì)中選用的是內(nèi)部時(shí)鐘及內(nèi)部基準(zhǔn)模式(電路典型接法如圖3所示)。MAX1304的數(shù)據(jù)位與ATmegal6L的B,D兩個(gè)擴(kuò)展口相連,以實(shí)現(xiàn)采集數(shù)據(jù)的讀?。黄淇刂莆慌cATmegal6L的A擴(kuò)展口連接,控制AD轉(zhuǎn)換、芯片配置等操作。

  MAX1304的12個(gè)I/O口中高8位分別與PB的8個(gè)口相連,低4位與PD的前4個(gè)口相連。其中可以通過配置高8位D0~D7來選通要啟動的模擬輸入通道。上電時(shí),在啟動轉(zhuǎn)換位CONVST(接PA4)之前寫入配置寄存器,以選擇有效通道。寫配置寄存器時(shí),將片選CS(接PA3)和寫使能WR(PA2)設(shè)為低電平,然后將D0~D7位裝載到并行總線,再將WR置為高電平,數(shù)據(jù)在WR的上升沿鎖存。轉(zhuǎn)換結(jié)束位EOLC(接PA0),所有選通通道轉(zhuǎn)換結(jié)束指示,在EOLC的下降沿,將CS(接PA3)和讀RD(接PA1)置為低電平,把第一個(gè)轉(zhuǎn)換結(jié)果置于并行總線。RD連續(xù)的低電平脈沖將轉(zhuǎn)換結(jié)果順次放到總線上。時(shí)序中最后一個(gè)轉(zhuǎn)換結(jié)果讀取后,額外的讀脈沖可以使指針重新指向第一個(gè)轉(zhuǎn)換結(jié)果。

  1.3 Flash芯片接口設(shè)計(jì)

  K9F5608UOM 32M×8位閃速存儲器是sumsung公司生產(chǎn)的基于NAND技術(shù)的大容量、高可靠性存儲器。該芯片結(jié)構(gòu)簡單,只有一顆存儲體;數(shù)據(jù)讀、寫、擦除速度快,按頁順序讀取平均每字節(jié)50 ns,與一般的SRAM相當(dāng);接口電路簡潔,8位雙向I/O口端口,地址,數(shù)據(jù)復(fù)用;編程簡單,片內(nèi)的寫操作控制器自動執(zhí)行所有的寫操作和擦除功能,包括提供必要的脈沖、內(nèi)部校驗(yàn)等,完全不用外部控制器考慮;數(shù)據(jù)完全性好,具有硬件寫保護(hù)功能,采用CMOS浮置門技術(shù)提高其壽命(可擦寫100,000次),數(shù)據(jù)保存10年不丟失。本設(shè)計(jì)中Flash的數(shù)據(jù)位與ATme-gal6L的C擴(kuò)展口相連,控制位與ATmegal6L的B,D擴(kuò)展口連接,實(shí)現(xiàn)數(shù)據(jù)的寫入操作。

c.jpg

  如圖4所示Flash芯片的8個(gè)I/O與ATmega16L的PC0~7相連,作為數(shù)據(jù)總線,用于輸入命令、地址、數(shù)據(jù),在讀操作中輸出數(shù)據(jù)。忙閑指示(R/B)接PD4,器件運(yùn)行狀態(tài)指示,當(dāng)進(jìn)行一個(gè)寫、擦、隨機(jī)讀取操作時(shí),指示為低電平,操作結(jié)束后指示高電平。讀使能RE接PD5,控制把片內(nèi)數(shù)據(jù)放到I/O中線上,在它的下降沿時(shí)數(shù)據(jù)有效,同時(shí)使內(nèi)部的列地址自動加1。寫使能WE接PA5,用于控制把命令、地址和數(shù)據(jù)在它的上升沿寫入到I/O口,而在讀操作時(shí)必須保持高電平。片選CE接PD6,用于器件的選擇控制,在進(jìn)行讀操作時(shí),如果CE變?yōu)楦唠娖?,器件轉(zhuǎn)入待用狀態(tài),而當(dāng)器件寫操作或擦除過程中,則不受CE高的影響。命令鎖存使能CLE接PA7,使輸入的命令發(fā)送到命令寄存器,當(dāng)變成高電平時(shí),在WE上升沿命令通過I/O口鎖存到命令寄存器。地址鎖存器使能ALE接PA6,使輸入的地址發(fā)送到地址寄存器,當(dāng)變成高電平時(shí),地址在WE的上升沿被鎖存。寫保護(hù)WP提供由于芯片供電壓突變而引起的意外擦寫操作保護(hù),當(dāng)WP置低時(shí),內(nèi)部高壓源使芯片復(fù)位,引腳狀態(tài)不定,處于無操作態(tài)。由于本設(shè)計(jì)只需要向Flash中寫入數(shù)據(jù),所以寫保護(hù)WP接VCC強(qiáng)制高電平。

  2 軟件設(shè)計(jì)流程

  數(shù)據(jù)采集模塊負(fù)責(zé)數(shù)字化5個(gè)通道的模擬輸入量,將每路模擬量轉(zhuǎn)化為并行輸出的12位數(shù)字量??刂颇K的作用是將MAX1304所轉(zhuǎn)化的數(shù)據(jù)進(jìn)行讀取并寫入到K9F4G08UOM存儲模塊中。

d.jpg

  由圖5可以看到整個(gè)軟件的設(shè)計(jì)流程。MAX1304在上電時(shí),開始配置寄存器選通前5路模擬通道輸入。在第一個(gè)CONVST脈沖上升沿時(shí),5路并行采樣數(shù)據(jù)開始轉(zhuǎn)換。當(dāng)所選通道數(shù)據(jù)全部轉(zhuǎn)化完畢時(shí),EOLC將輸出低電平,可以通過查詢該端口狀態(tài)來了解轉(zhuǎn)換是否完成。當(dāng)該端口電平為高時(shí),繼續(xù)轉(zhuǎn)換下一路通道數(shù)據(jù);為低時(shí),ATmega16L配置相應(yīng)的讀取端口為讀取狀態(tài),將這一路數(shù)據(jù)讀到ATmega16L的緩存中,并控制Flash芯片將緩存中的數(shù)據(jù)寫入其中。隨著5個(gè)RD的脈沖信號,5路的數(shù)據(jù)將依次放置12位I/O總線上。所以,循環(huán)操作5次即可將一次并行采集的數(shù)據(jù)寫入Flash。然后進(jìn)入下一時(shí)刻讀取寫入操作,整個(gè)過程循環(huán)操作即可。

  3 結(jié)束語

  通過這個(gè)5路采集電路,可以看出ATmega16L單片機(jī)和32M的K9F5608UOM大容量Flash存儲芯片在實(shí)際的接口設(shè)計(jì)是十分簡單的,而且操作靈活多變。在以上設(shè)計(jì)基礎(chǔ)上還可以將5路擴(kuò)展到8路以內(nèi)(通過配置MAX1304芯片可以實(shí)現(xiàn)),實(shí)現(xiàn)更多路的并行采集,并且可以根據(jù)實(shí)際情況來選擇大小合適的Flash芯片。這種可擴(kuò)展的采集電路具有很高的性價(jià)比,無需選擇更昂貴的大容量控制芯片,可廣泛用于大批量數(shù)據(jù)采集記錄系統(tǒng)中。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容