基於MCS-51系列單片機實現遙測數據存儲系統的設計

2020-12-01 電子發燒友

基於MCS-51系列單片機實現遙測數據存儲系統的設計

吳芝路,任廣輝,王 發表於 2020-11-27 10:12:25

  作者:吳芝路,任廣輝,王桂玲

隨著遙測技術的發展,被測參數迅速增加,數據傳輸速率越來越高,對系統的存儲容量、體積、造價、穩定性等都提出了更高要求。為了實現較高的傳輸速率和較大的數據量,往往採用多處理機並行處理、傳輸和並行記錄技術。但這類系統對工作環境要求較高,加之體積大、佔用系統機時等缺點,很難適用於受空間限制的特殊環境。因此,研製性能可靠、體積小、造價低的數據存儲系統是十分必要的。近年來作為數據存儲媒介的硬碟,以其容量大、接口智能化程度高、控制方便越來越受到人們的重視。充分發揮硬碟的優勢,脫離系統主機,可為用戶開發速度高、存儲量大、性能可靠的遙測數據存儲系統。

基於上述原因,本文提出了採用單片機控制硬碟對遙測數據進行實時存儲的方案,對數千秒遙測數據進行實時無丟失存儲,其最大優點是不佔用系統機時。本系統的特點:

·採用PIO模式進行塊操作的寫盤方法,從而大大提高了硬碟的寫盤速度;

·以單片機為核心,採用I/O口與緩衝存儲器之間進行高速數據傳輸的方案,解決了高速遙測數據、CPU和硬碟三者工作速度不一致的矛盾;

·採用EPLD器件對部分電路進行集成,提高了系統的穩定性和可靠性,具有較好的通用性,可滿足多種場合的需要而無需改動任何硬體。

1 系統的硬體介紹

系統分為遙測數據採集和存儲兩部分,採集部分包括採集控制和串/並轉換電路;存儲部分有:幀計數、讀寫緩衝地址產生電路、讀寫控制電路及主存儲電路。結構框圖如圖1所示。

由於硬碟的工作時序與遙測數據的速率不匹配,從數據採集部分得到的並行數據需採用SRAM作數據緩存,然後在單片機的控制下,將SRAM中的數據直接存入硬碟。而硬碟的尋道時間相對於遙測數據的速率來講比較慢,因此採用適當的寫盤方法,提高硬碟的讀寫速度是本系統的重點之一。其難點在於如何利用單片機控制硬碟進行讀寫、復位、檢測等操作。

1.1 雙片交替式緩衝存儲器

由於時序不匹配,遙測數據無法直接存入硬碟,因此需要一個緩衝存儲器進行匹配或緩衝,使遙測數據和硬碟存儲可以分別按各自不同的時序和速度對緩衝存儲器SRAM進行操作,解決了不同時序的匹配問題。因此採用緩衝存儲方法,將遙測數據存滿一定容量的SRAM,再對其進行塊操作存儲,可極大地提高存儲的速度。為了實現遙測數據無丟失存儲,緩衝存儲器採用雙片交替式,即兩片SRAM分別交替地被寫入遙測數據。首先在地址產生電路控制下將遙測數據寫入其中一片SRAM,寫滿後發出溢出中斷,並且封閉地址產生電路及遙測數據的通路而接通硬碟地址和數據通路,等待CPU響應中斷後,讀取數據存入硬碟。與此同時,另一片SRAM的地址和數據端馬上被接通到地址產生電路和遙測數據通路上,接受遙測數據的寫入。同樣寫滿後發出中斷,切換至被讀取狀態。兩片SRAM如此交替地工作,連續不斷地將遙測數據緩存、寫盤,只要寫盤所用的時間不大於遙測數據寫滿SRAM的時間,數據就會無丟失地全部存儲。

1.2 採用MCS-51系列單片機驅動硬碟的方案

由於目前還沒有為單片機設計的專用硬碟驅動器及接口電路,利用單片機系統控制現有的硬碟驅動器,可極大地提高系統的性能價格比。因此,本系統採用單片機控制硬碟進行高速數據的存儲。

IDE接口的硬碟驅動器提供了兩種數據傳輸模式:DMA模式和PIO模式。由於PIO模式控制相對容易,提供了一種編程控制輸入輸出的快速傳輸方法。該模式採用了高速的數據塊I/O,以扇區為單位,用中斷請求方式與處理機進行批量數據交換。在扇區讀寫操作時,一次按16位長度通過內部的高速PIO數據寄存器實現傳輸。通常情況下,數據傳輸以扇區為單位,每傳輸一扇區數據產生一個中斷。在塊模式下以塊為單位,在讀寫一個塊期間,硬碟驅動器不產生中斷,這樣就大大地節省了時間。由於本系統遙測數據的碼速率提高到8Mb/s,對硬碟的寫盤速度要求非常高,因此本系統採用了塊傳輸模式以提高硬碟的讀寫速度。硬碟在讀寫16位數據時,PC機中使用INSW指令或OUTSW指令實現16位數據讀/寫操作,由I/O埠直接到內存。而在本系統中採用MCS-51系列單片機控制硬碟,使數據傳輸在硬碟埠寄存器與緩衝存儲器之間進行,不經過單片機,單片機只是對硬碟進行初始化,並發相應的寫命令。這樣,在單片機的控制下,兩片SRAM交替工作,實現了高速遙測數據無丟失存儲。

2 系統的軟體介紹

2.1 硬碟速度測試

硬碟的存取速度是決定8Mb/S碼速率硬碟存儲方案可行性的關鍵。是否存在足夠高速的硬碟與系統相配,是本系統方案能否實現的一個決定性問題。但是,利用現有的硬碟測試軟體只能比較幾種硬碟之間的優劣和差異,而不能比較同一硬碟採用不同寫盤方法的速度差異。為了得到一種較快的寫盤方法,在對硬碟讀寫原理進行深入剖析後,自己編程進行測試。以邁拓4.3GB硬碟為例,採用三種不同的寫盤方法:調用BIOS的INT13;利用非塊模式和塊模式寫盤;對硬碟速度進行測試。結果證明:採用PIO4及塊模式寫盤速度最快,可以達到3.496MB/s。完全可以滿足本系統的需要。

2.2 單片機控制硬碟讀寫操作

IDE接口是一種任務寄存器結構的接口,所有輸入輸出操作均通過對相應寄存器的讀/寫來完成的。如果主機要對硬碟機進行寫數據操作,首先進行(命令和參數)寄存器選擇,通過數據總線將相應的命令碼用IOW寫入命令寄存器,以及有關參數寫入硬碟參數寄存器。數據由數據總線(16位寬)傳遞至數據寄存器,通過數據寄存器存入緩存器。IDE接口會根據命令自動將數據寫到由參數寄存器指的磁軌號、頭號、扇區號。硬碟的讀操作與寫操作相似,區別在於首先發出中斷請求,然後進行數據傳輸。IDE控制器埠寄存器地址分配見表1。

主狀態寄存器(CS0置0)反映硬碟控制器的操作狀態,決定查詢狀態後的不同流向。定義如下:

在向控制器發出命令之前,必須先檢測控制器是否忙碌(D7=1)。如果在規定時間內控制器一直忙碌,則置超時錯,否則表示控制器空閒可接受命令。

設計過程中,採用PIO模式以塊為單位進行讀寫操作,從硬碟讀數據的過程描述如下:

(1)在相關寄存器中寫入所需的參數,如讀取扇區的起始柱面號、磁頭號、扇區號、讀寫扇區數等;

(2)向命令寄存器中寫入命令代碼;

(3)驅動器置BSY位,準備數據傳輸;

(4)當驅動器準備好數據後,置DRQ位,清除BSY位,發出中斷請求;

(5)主機檢測到中斷,讀出狀態寄存器。測試ERR位,若為1則轉入出錯處理,否則循環使用IN指令通過數據寄存器讀一個扇區或一個塊的數據。

(6)驅動器清除DRQ位,如果還有要傳輸的數據。從第4步重複執行。

數據的寫入過程與讀出過程大致相似,區別在於首先進行數據傳輸,然後發出中斷請求,具體過程不再贅述。PIO模式編程的簡單流程圖見圖2。

實驗證明,本存儲方案可行,系統運行穩定,實現了遙測數據正確、無丟失存儲,並應用到實際系統中。

責任編輯:gt

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於KEIL 51的單片機開發系統設計
    以其性能優越、使用方便,受到眾多單片機愛好者的歡迎。KEIL 51以軟體包的形式向用戶提供包括C51交叉編譯器、A51宏彙編、BL連接定位器等一系列工具和μVision2軟體仿真器dScope51等開發平臺。但是目前支持高版本KEIL 51編程的仿真器價格較高。為此提供了基於KEIL 51開發系統的設計方案。2.硬體電路設計基於KEIL 51開發環境設計開發系統電路原理如圖1所示。
  • 基於51系列單片機的智能照明控制系統設計方案
    目前我國高校的教學樓和學生宿舍的照明系統大多採用定時方式控制,存在電能的大量浪費和照明模式不靈活等問題。本文基於51單片機,通過設置時間、感應光照與聲音,針對教學樓和宿舍的不同需求設定照明狀態,實現對照明系統智能動態的控制。測試結果表明該系統可以在不同條件下改變照明狀態,適應不同場所的需求,達到智能控制的目的。
  • 基於GPS的航標遙測系統數值優化方法
    基於這種思想,本文在終端控制器上電初始化的時候連續測量n(可調)次經緯度數據並將它們從小到大進行排隊,去掉最大的m次數據和最小的m次數據,以中間的n-2m次數據作為基準,並存於一個存儲單元。由於航道遙測系統對實時性要求並不高,所以把n儘量取得大些。
  • 基於51單片機的嵌入式SNMP代理器設計與實現
    2 嵌入式代理器的硬體實現 我們設計的基於SNMP的控制系統原理見圖2。 控制現場的信號採集由A/D轉換模塊輸入單片機。單片機對信號進行處理,並且執行SNMP代理器的任務,硬體部分主要包括A/D、串口、乙太網、小邏輯、單片機、監控信號採集、電源及監控等模塊,本文著重介紹與嵌入式SNMP代理器密切相關的部分。
  • 基於AT89C51單片機的十進位計算器系統設計
    AT89C51 單片機進行的十進位計算器系統設計,可以完成計算器的鍵盤輸入,進行加、減、乘、除4 位無符號數字的簡單四則運算,並在LED 上相應的顯示結果。硬體方面從功能考慮,首先選擇內部存儲資源豐富的AT89C51 單片機,輸入採用4×4 矩陣鍵盤。顯示採用4 位7 段共陽極LED 動態顯示。軟體方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計。  引言  本系統採用AT89C51 單片機作為控制器,用來實現實現四位數的「+」,「-」,「*」,「/」運算,運算結果通過數碼管顯示,並具有有清零功能。
  • MCS-51單片機的結構和工作原理
    3.1.1 MCS-51單片機系列:兩大系列:MCS-51子系列和MCS-52子系列。其中51子系列是基本型,而52子系列屬於增強型。片內ROM形式  無 ROM EPROM51子系統 8031 8051 875180C31 80C51 87C5152子系統 8032 8052 875280C32 80C52 87C5252子系列與51子系列相比,其功能增強的具體方面如下:1、
  • 基於51單片機的人體紅外模塊的自動門設計
    CPLD可以實現各種複雜的邏輯功能、規模大、密度高、IO資源豐富,適合作為大規模控制系統的控制核心。但本系統不需要複雜的邏輯功能,對數據的處理速度的要求也不是很高,且從使用及經濟的角度考慮,我們放棄了此方案。方案二:採用51系列單片機。系統的要求不高,程序的編寫也比較簡單,需要用到的I/O口的數量用該系列的單片機來操作完全能夠實現,無需再擴展,充分的利用了單片機資源。
  • Proteus軟體仿真與Keil的51單片機系統設計
    它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN兩大組成部分,在PC機上就能實現原理圖電路設計、電路分析與仿真、單片機代碼級調試與仿真、系統測試與功能驗證以及形成PCB文件的完整嵌入式系統設計與研發過程。
  • 一款基於51單片機的簡易示波器設計
    它由前向控制部分,數據採集和存儲部分,51單片機控制部分以及按鍵和MS12864R顯示部分組成。本文引用地址:http://www.eepw.com.cn/article/248283.htm1 簡易數字示波器的工作原理以及總體框架本設計硬體電路部分由單片機控制系統電路,前向輸入調理電路,模數轉換和存儲電路,以及按鍵顯示電路組成。
  • 基於51單片機定時器的電子時鐘設計方案
    今天我們將會為大家分享一種比較基礎的電子時鐘設計方案,該方案基於51單片機定時器進行設計,精度較高,時鐘鬧鐘調節簡單。本文引用地址:http://www.eepw.com.cn/article/201808/387025.htm在本方案中,我們所設計的這種電子時鐘主要由51單片機定時器、1602LCD液晶屏等構成。
  • 基於51單片機設計的簡易智慧機器人
    同時,能檢測埋在地下的金屬片,發出聲光指示信息,並能實時存儲、顯示檢測到的斷點數目以及各斷點至起跑線間的距離,最後能停在指定地點,顯示出整個運行過程的時間。1.2 總體設計方案和框圖本設計以at89c5l單片機作為檢測和控制核心。
  • 基於51單片機的兩路溫度控制器的設計方案
    本方案中所設計的溫度控制器,採用AT89C51單片機作為內核,採用DS18B20作為溫度傳感器,通過四位LED顯示,通過循環掃描實現了兩路溫度的採集與顯示。
  • 《電子發燒友網51單片機設計方案TOP10》
    隨著Flash rom技術的發展,它也得到了不斷的發展,廣泛應用於工業測控系統中ATMEL公司的AT89系列,是8031單片機中最有代表性的型號。51單片機是基礎入門的一個單片機,也是應用最廣泛的一種,在目前乃至今後很長的一段時問內。51系列的兼容機型都將佔有大量的市場。   控制系統傳統的設計思想和設計方法,因51單片機的應用從根本上得到了改變。
  • 基於Modbus通信協議的eView觸控螢幕與51單片機的通信設計
    基於Modbus通信協議的eView觸控螢幕與51單片機的通信設計 電子工程網 發表於 2019-09-27 16:27:48 Modbus協議由於其具有開放性、透明性、成本低、易於開發等特點,已成為當今工業領域通信協議的首選
  • 基於HYM8563的80C51系列單片機低功耗系統設計
    介紹一種利用I2C實時時鐘晶片HYM8563產生的多種中斷方式,喚醒進入掉電狀態的80C51系列單片機,由此技術構建的低功耗單片機系統。
  • MCS_51單片機與8255A的接口設計
    目前,各生產廠家已提供了很多系列的可編程接口,MCS-51單片機常用的兩種接口晶片是8255以及8155。本文引用地址:http://www.eepw.com.cn/article/170507.htm8255和MCS-51相連,可以為外設提供三個8位的I/O埠:A口、B口和C口,三個埠的功能完全由編程來決定。
  • 51單片機訪問大容量存儲器的實現
    1 引言  MCS-51系列單片機有著優越的性價比,因此應用面寬,使用量也非常大;然而它只有16位地址線,最大能訪問的存儲空間為64K,且擴展接口與存儲器統一編址,擴展接口會佔用大量的地址空間,致使該系列單片機在數據量大的數據採集系統中,存儲空間明顯不足
  • 51單片機+PID算法水溫控制系統設計
    本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。
  • 基於51單片機的電子時鐘課程設計
    2.題目與要求本次課程設計的題目為:電子時鐘的設計,其具體要求為:(1)能實現時、分、秒的顯示;(2)能實現12、24小時制的切換;(3)能設定時間;(4)能設定鬧鐘;整個系統要設計鍵盤和顯示器,利用單片機內部時鐘完成定時器的定時設計。
  • 基於AT89C51單片機和傳感器實現家庭安全報警系統的設計
    警情採集電路當採集到警情信號時,單片機立即接通報警驅動電路實現聲光報警,同時由雙音多頻收發電路通過電話網絡撥打報警號碼向外界報警,當摘、掛機檢測電路檢測到被呼叫方摘機後,單片機接通語音報警電路,通過事先錄製好的語音信號告知對方與警情相關的信息,對方掛機後,模擬掛機,完成自動報警。