<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SD2300的定時(shí)采集存儲系統設計

基于SD2300的定時(shí)采集存儲系統設計

作者: 時(shí)間:2016-10-24 來(lái)源:網(wǎng)絡(luò ) 收藏

  隨著(zhù)科技的高速發(fā)展,現代工業(yè)測控領(lǐng)域的很多應用中都需要實(shí)現大量數據的定時(shí)采集存儲。筆者以為海流計設計的海流數據采集存儲接口電路為例,介紹一種定時(shí)采集存儲系統的工作原理及其實(shí)現方法。

本文引用地址:http://dyxdggzs.com/article/201610/311725.htm

  1 總體結構

  在很多情況下,尤其是惡劣的工作環(huán)境下,高性能的單片機和大容量的Flash存儲器是數據采集存儲系統的最佳選擇,本文介紹的系統也是基于這樣的考慮。系統硬件結構并不復雜,包括高性能單片機、實(shí)時(shí)時(shí)鐘芯片、大容量Flash存儲器K9G8G08及其外圍電路,如圖1所示。工作原理也較為簡(jiǎn)單,通過(guò)串口將單片機與海流計相連,通過(guò)對單片機的編程實(shí)現對海流計的控制和使用。同時(shí),為了實(shí)現定時(shí)采集和數據存儲的功能,還需將實(shí)時(shí)時(shí)鐘芯片和大容量Flash存儲器K9G8G08的相應引腳與的GPIO相連。通過(guò)發(fā)送定時(shí)中斷使得C8051F021在預定時(shí)刻通過(guò)串口采集若干組流速和流向數據,然后將其存儲在K9G8G08中。

  

 

  2 硬件設計

  2.1 高性能單片機C8051F021

  C8051F021單片機是集成在一塊芯片上的混合信號系統級單片機。芯片上有64位數字I/O。C8051F021單片機具有片內看門(mén)狗定時(shí)器、VDD 監視器和時(shí)鐘發(fā)生器,可以說(shuō)是真正的、可獨立工作的、完整的SoC(片上系統)。片上所有的模擬和數字設備都可以使能或關(guān)閉,也可以由用戶(hù)設置。片內的 Flash存儲器可以在電路(即由用戶(hù)程序在運行時(shí))編程(讀寫(xiě)),為用戶(hù)提供了非揮發(fā)性存儲器,并允許現場(chǎng)更新8051程序。

  2.2 SD2300與C8051F021的硬件接口設計

  SD2300是深圳市興威帆電子技術(shù)有限公司開(kāi)發(fā)的一種具有內置晶振、兩線(xiàn)式串行接口的高精度實(shí)時(shí)時(shí)鐘芯片。較SD2000而言,SD2300具有更寬的定時(shí)范圍、更多的周期性中斷選擇,并增加了數字精度調整寄存器、30s時(shí)間調整和晶振停振檢測等功能。最顯著(zhù)的改動(dòng)是對時(shí)鐘數據/寄存器的訪(fǎng)問(wèn)由通過(guò)不同命令字改為地址直接尋址,使得芯片的使用更加靈活,并提高了程序編寫(xiě)的可讀性。

  SD2300的接口為I2C總線(xiàn)。對于具有I2C總線(xiàn)接口的單片機,只需將SD2300的SCL、SDA腳與單片機的SCL、SDA腳相連;對于沒(méi)有 I2C總線(xiàn)接口的單片機,可以用通用I/O口來(lái)模擬I2C總線(xiàn)。如圖2所示,單片機C8051F021的PO.6模擬SCL,產(chǎn)生I2C總線(xiàn)的時(shí)序同步信號;PO.7模擬SDA,實(shí)現I2C總線(xiàn)的串行數據輸入/輸出。圖2中的INTRA、INTRB為定時(shí)中斷輸出,SDA和SCL為時(shí)鐘電路的串行時(shí)鐘腳, SDAE和SCLE為E2PROM的串行時(shí)鐘腳。

  

 

  2.3 K9G8G08與C8051F021的硬件接口設計

  K9G8G08容量為8 Gb(8 858 370 048位),包含524 288行(頁(yè))和2 112×8列。在列地址2 048~2 111處有備用的64列存儲單元。2 112字節的數據寄存器與存儲器陣列相連,用來(lái)為在頁(yè)讀或頁(yè)編程操作時(shí)I/O端口和存儲陣列間的數據傳輸服務(wù)。存儲器陣列由32個(gè)存儲單元串行連接在一起,構成了一個(gè)NAND結構。每32個(gè)存儲單元處于不同的頁(yè)中。一個(gè)存儲單元包括2位數據。一個(gè)塊由2個(gè)NAND結構串組成,總共包含1 081 344個(gè)NAND結構。編程和讀操作均以頁(yè)為單位,而擦除操作以塊為單位。存儲器陣列包含4 096個(gè)256 KB的可擦除塊。K9G8G08采用8個(gè)I/O引腳的多次復用方案。這就使得其外部引腳數顯著(zhù)減少,并且可以不改變現有系統的板級設計而進(jìn)行系統升級。指令、地址和數據通過(guò)在CE為低電平時(shí)把WE引腳拉低而寫(xiě)入I/O引腳,在麗的上升沿被鎖存。CLE和ALE通過(guò)I/O引腳分別被用在指令和地址的多路傳輸中。一些指令需要1個(gè)總線(xiàn)周期,例如重啟指令、讀狀態(tài)指令等;另一些指令則需要2個(gè)周期,例如頁(yè)讀、塊擦除和頁(yè)編程操作,一個(gè)周期用來(lái)設置,另一個(gè)周期用來(lái)執行。1 Gb的物理地址空問(wèn)需要30位的地址,5個(gè)周期來(lái)尋址(2個(gè)列地址,3個(gè)行地址)。頁(yè)讀和頁(yè)編程操作在相應的指令后需要同樣的5個(gè)地址周期。而在一個(gè)塊擦除操作中,只需要3個(gè)行地址。因此,可將C8051F021的P2口直接與這8根I/O連接,其他控制引腳接C8051F021、的相應引腳,如圖3所示。K9G8G08通過(guò)CLE和ALE信號線(xiàn)實(shí)現I/O口上指令和地址的復用。指令、地址和數據都通過(guò)拉低WE和CE從I/O口寫(xiě)入。

  

 

  3 軟件設計

  3.1 系統軟件設計

  系統軟件的設計流程如圖4所示。首先完成系統的初始化工作,包括C8051F021的初始化和SD2300的定時(shí)中斷設置,然后系統進(jìn)入等待狀態(tài)。待到達預定時(shí)刻后,SD2300發(fā)出定時(shí)中斷,使C8051F021進(jìn)入中斷處理程序,進(jìn)行數據采集和存儲。存儲完畢,系統再次進(jìn)入等待狀態(tài),等待下一次定時(shí)中斷的到來(lái)。

  

 

  3.2 SD2300的軟件接口設計

  SD2300的I2C接口與C8051F021的GPIO相連,通過(guò)GPIO來(lái)模擬I2C,編程簡(jiǎn)單,操作方便。SD2300的訪(fǎng)問(wèn)控制通過(guò)寄存器直接尋址實(shí)現,其內部的寄存器如表1所列。

  

 

  SD2300通過(guò)兩線(xiàn)式串行接口方式接收各種命令并讀寫(xiě)數據。下面具體介紹兩線(xiàn)式串行接口方式。

 ?、匍_(kāi)始條件:當SCL處于高電平時(shí),SDA由高電平變成低電平構成一個(gè)開(kāi)始條件。對SD2300的所有操作均必須由開(kāi)始條件開(kāi)始。

 ?、谕V箺l件:當SCL處于高電平時(shí),SDA由低電平變成高電平構成一個(gè)停止條件。此時(shí)SD2300所有的操作均停止,系統進(jìn)入待機狀態(tài)。

 ?、蹟祿鬏敚寒擲CL為低電平,且SDA電平變化時(shí),數據由C8051F021傳輸給SD2300;當SCL為高電平,且SDA電平不變時(shí), C8051F021讀取SD2300 E2PROM發(fā)送來(lái)的數據;當SCL為高電平,且SDA電平變化時(shí),SD2300收到一個(gè)開(kāi)始或停止條件。

 ?、艽_認:數據傳輸以8位序列進(jìn)行。SD2300在第9個(gè)時(shí)鐘周期時(shí)將SDA置位為低電平,即送出一個(gè)確認信號,標明數據被其收到。

  鑒于篇幅所限,僅以SD2300的設定開(kāi)始采集時(shí)間程序為例,介紹一下SD2300的軟件接口編寫(xiě)。

  

 

  3.3 K9G8G08的軟件接口設計

  相比于三星公司的Flash存儲器KM29U128T,K9G8G08不僅在容量上得到了極大的提高,操作的多樣性和靈活性也有顯著(zhù)改進(jìn)。例如,支持一頁(yè)內的隨機數據讀寫(xiě),并提供了一種特殊的Two-Plane頁(yè)編程操作,可以支持兩頁(yè)的同時(shí)寫(xiě)入,其操作指令如表2所列。

  

 

  

 

  4 總結

  筆者為海流計設計的數據定時(shí)采集存儲系統,經(jīng)過(guò)反復實(shí)驗,能夠按照預定時(shí)刻準時(shí)進(jìn)行數據采集工作,數據存儲完整準確,整個(gè)系統工作穩定可靠。該系統的設計為相關(guān)應用提供了參考。

  參考文獻

  1. Samsung Electronic K9XXG08UXM Datasheet 2009

  2. 深圳市興威帆電子技術(shù)有限公司 高精度實(shí)時(shí)時(shí)鐘SD2300L系列 2009

  3. 李剛.林凌 與8051兼容的高性能、高速單片機C8051Fxxx 2002

  4. 范勉之.陳立元 Visual Basic與RS232串行通信控制最新版 2002

  5. 王盛安.龍小敏.陳俊昌.姚小桂 大容量快閃存儲器在壓力式波潮儀中的應用 [期刊論文] -儀表技術(shù)與傳感器2000(10)



關(guān)鍵詞: SD2300 C8051F021

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>