0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MCS-51系列單片機(jī)實(shí)現(xiàn)遙測數(shù)據(jù)存儲系統(tǒng)的設(shè)計

電子設(shè)計 ? 來源:電子技術(shù)應(yīng)用 ? 作者:吳芝路,任廣輝,王 ? 2020-11-27 10:12 ? 次閱讀

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

隨著遙測技術(shù)的發(fā)展,被測參數(shù)迅速增加,數(shù)據(jù)傳輸速率越來越高,對系統(tǒng)的存儲容量、體積、造價、穩(wěn)定性等都提出了更高要求。為了實(shí)現(xiàn)較高的傳輸速率和較大的數(shù)據(jù)量,往往采用多處理機(jī)并行處理、傳輸和并行記錄技術(shù)。但這類系統(tǒng)對工作環(huán)境要求較高,加之體積大、占用系統(tǒng)機(jī)時等缺點(diǎn),很難適用于受空間限制的特殊環(huán)境。因此,研制性能可靠、體積小、造價低的數(shù)據(jù)存儲系統(tǒng)是十分必要的。近年來作為數(shù)據(jù)存儲媒介的硬盤,以其容量大、接口智能化程度高、控制方便越來越受到人們的重視。充分發(fā)揮硬盤的優(yōu)勢,脫離系統(tǒng)主機(jī),可為用戶開發(fā)速度高、存儲量大、性能可靠的遙測數(shù)據(jù)存儲系統(tǒng)。

基于上述原因,本文提出了采用單片機(jī)控制硬盤對遙測數(shù)據(jù)進(jìn)行實(shí)時存儲的方案,對數(shù)千秒遙測數(shù)據(jù)進(jìn)行實(shí)時無丟失存儲,其最大優(yōu)點(diǎn)是不占用系統(tǒng)機(jī)時。本系統(tǒng)的特點(diǎn):

·采用PIO模式進(jìn)行塊操作的寫盤方法,從而大大提高了硬盤的寫盤速度;

·以單片機(jī)為核心,采用I/O口與緩沖存儲器之間進(jìn)行高速數(shù)據(jù)傳輸?shù)姆桨?,解決了高速遙測數(shù)據(jù)、CPU和硬盤三者工作速度不一致的矛盾;

·采用EPLD器件對部分電路進(jìn)行集成,提高了系統(tǒng)的穩(wěn)定性和可靠性,具有較好的通用性,可滿足多種場合的需要而無需改動任何硬件

基于MCS-51系列單片機(jī)實(shí)現(xiàn)遙測數(shù)據(jù)存儲系統(tǒng)的設(shè)計

1 系統(tǒng)的硬件介紹

系統(tǒng)分為遙測數(shù)據(jù)采集和存儲兩部分,采集部分包括采集控制和串/并轉(zhuǎn)換電路;存儲部分有:幀計數(shù)、讀寫緩沖地址產(chǎn)生電路、讀寫控制電路及主存儲電路。結(jié)構(gòu)框圖如圖1所示。

由于硬盤的工作時序與遙測數(shù)據(jù)的速率不匹配,從數(shù)據(jù)采集部分得到的并行數(shù)據(jù)需采用SRAM作數(shù)據(jù)緩存,然后在單片機(jī)的控制下,將SRAM中的數(shù)據(jù)直接存入硬盤。而硬盤的尋道時間相對于遙測數(shù)據(jù)的速率來講比較慢,因此采用適當(dāng)?shù)膶懕P方法,提高硬盤的讀寫速度是本系統(tǒng)的重點(diǎn)之一。其難點(diǎn)在于如何利用單片機(jī)控制硬盤進(jìn)行讀寫、復(fù)位、檢測等操作。

1.1 雙片交替式緩沖存儲器

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

1.2 采用MCS-51系列單片機(jī)驅(qū)動硬盤的方案

由于目前還沒有為單片機(jī)設(shè)計的專用硬盤驅(qū)動器及接口電路,利用單片機(jī)系統(tǒng)控制現(xiàn)有的硬盤驅(qū)動器,可極大地提高系統(tǒng)的性能價格比。因此,本系統(tǒng)采用單片機(jī)控制硬盤進(jìn)行高速數(shù)據(jù)的存儲。

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

2 系統(tǒng)的軟件介紹

2.1 硬盤速度測試

硬盤的存取速度是決定8Mb/S碼速率硬盤存儲方案可行性的關(guān)鍵。是否存在足夠高速的硬盤與系統(tǒng)相配,是本系統(tǒng)方案能否實(shí)現(xiàn)的一個決定性問題。但是,利用現(xiàn)有的硬盤測試軟件只能比較幾種硬盤之間的優(yōu)劣和差異,而不能比較同一硬盤采用不同寫盤方法的速度差異。為了得到一種較快的寫盤方法,在對硬盤讀寫原理進(jìn)行深入剖析后,自己編程進(jìn)行測試。以邁拓4.3GB硬盤為例,采用三種不同的寫盤方法:調(diào)用BIOS的INT13;利用非塊模式和塊模式寫盤;對硬盤速度進(jìn)行測試。結(jié)果證明:采用PIO4及塊模式寫盤速度最快,可以達(dá)到3.496MB/s。完全可以滿足本系統(tǒng)的需要。

2.2 單片機(jī)控制硬盤讀寫操作

IDE接口是一種任務(wù)寄存器結(jié)構(gòu)的接口,所有輸入輸出操作均通過對相應(yīng)寄存器的讀/寫來完成的。如果主機(jī)要對硬盤機(jī)進(jìn)行寫數(shù)據(jù)操作,首先進(jìn)行(命令和參數(shù))寄存器選擇,通過數(shù)據(jù)總線將相應(yīng)的命令碼用IOW寫入命令寄存器,以及有關(guān)參數(shù)寫入硬盤參數(shù)寄存器。數(shù)據(jù)由數(shù)據(jù)總線(16位寬)傳遞至數(shù)據(jù)寄存器,通過數(shù)據(jù)寄存器存入緩存器。IDE接口會根據(jù)命令自動將數(shù)據(jù)寫到由參數(shù)寄存器指的磁道號、頭號、扇區(qū)號。硬盤的讀操作與寫操作相似,區(qū)別在于首先發(fā)出中斷請求,然后進(jìn)行數(shù)據(jù)傳輸。IDE控制器端口寄存器地址分配見表1。

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

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

設(shè)計過程中,采用PIO模式以塊為單位進(jìn)行讀寫操作,從硬盤讀數(shù)據(jù)的過程描述如下:

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

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

(3)驅(qū)動器置BSY位,準(zhǔn)備數(shù)據(jù)傳輸;

(4)當(dāng)驅(qū)動器準(zhǔn)備好數(shù)據(jù)后,置DRQ位,清除BSY位,發(fā)出中斷請求;

(5)主機(jī)檢測到中斷,讀出狀態(tài)寄存器。測試ERR位,若為1則轉(zhuǎn)入出錯處理,否則循環(huán)使用IN指令通過數(shù)據(jù)寄存器讀一個扇區(qū)或一個塊的數(shù)據(jù)。

(6)驅(qū)動器清除DRQ位,如果還有要傳輸?shù)臄?shù)據(jù)。從第4步重復(fù)執(zhí)行。

數(shù)據(jù)的寫入過程與讀出過程大致相似,區(qū)別在于首先進(jìn)行數(shù)據(jù)傳輸,然后發(fā)出中斷請求,具體過程不再贅述。PIO模式編程的簡單流程圖見圖2。

實(shí)驗證明,本存儲方案可行,系統(tǒng)運(yùn)行穩(wěn)定,實(shí)現(xiàn)了遙測數(shù)據(jù)正確、無丟失存儲,并應(yīng)用到實(shí)際系統(tǒng)中。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44491

    瀏覽量

    632016
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10807

    瀏覽量

    210852
  • 存儲系統(tǒng)
    +關(guān)注

    關(guān)注

    2

    文章

    403

    瀏覽量

    40823
收藏 人收藏

    評論

    相關(guān)推薦

    MCS-51單片機(jī)包括哪些

    8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品。學(xué)習(xí)單片機(jī),除了搞清單片機(jī)內(nèi)部功能、存儲空間分配及I/O接口外,還應(yīng)掌握其指令系統(tǒng)
    發(fā)表于 07-21 09:29

    MCS-51系列單片機(jī)型號

    0·本文引自《嵌入式和單片機(jī)系統(tǒng)MCS是Intel公司單片機(jī)系列符號。Intel推出有MCS
    發(fā)表于 12-01 07:28

    mcs-51單片機(jī)應(yīng)用教程

    mcs-51單片機(jī)應(yīng)用教程以MCS-51系列單片機(jī)為主線,從實(shí)用的角度出發(fā),通過介紹大量單片機(jī)
    發(fā)表于 10-28 16:21 ?77次下載
    <b class='flag-5'>mcs-51</b><b class='flag-5'>單片機(jī)</b>應(yīng)用教程

    MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)

    1 MCS-51單片機(jī)系統(tǒng)擴(kuò)展的基本概念2 程序存儲器擴(kuò)展技術(shù)3 數(shù)據(jù)存儲器擴(kuò)展4 輸入/輸出口
    發(fā)表于 12-01 14:39 ?65次下載
    <b class='flag-5'>MCS-51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>系統(tǒng)</b>擴(kuò)展技術(shù)

    MCS-51系列單片機(jī)實(shí)用接口技術(shù)

    MCS-51系列單片機(jī)實(shí)用接口技術(shù)全面、系統(tǒng)地介紹了MCS-51系列
    發(fā)表于 12-23 14:27 ?164次下載
    <b class='flag-5'>MCS-51</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>實(shí)用接口技術(shù)

    MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)

    MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù):在MCS-51單片機(jī)的的內(nèi)部雖已集成了很多資源,但這類單片機(jī)
    發(fā)表于 09-20 18:22 ?22次下載

    MCS-51系列單片機(jī)芯片結(jié)構(gòu)

    MCS-51系列單片機(jī)芯片結(jié)構(gòu):2.1  MCS51系列
    發(fā)表于 02-23 12:04 ?69次下載

    MCS51系列單片機(jī)結(jié)構(gòu)及原理

    MCS51系列單片機(jī)組成及工作原理 基本內(nèi)容2.1 MCS-51單片機(jī)基本組成2.2
    發(fā)表于 04-14 14:50 ?44次下載

    MCS-51系列單片機(jī)指令系統(tǒng)數(shù)據(jù)傳送類指令

    MCS-51系列單片機(jī)指令系統(tǒng)數(shù)據(jù)傳送類指令
    發(fā)表于 08-01 16:27 ?24次下載

    MCS-51單片機(jī)系統(tǒng)結(jié)構(gòu)

    2.1  MCS-51單片機(jī)的外特性2.2  MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)2.3  CPU及復(fù)位電路2.4  IO端口2.5 
    發(fā)表于 08-12 11:33 ?46次下載

    MCS-51系列單片機(jī)組成及工作原理

    基本內(nèi)容2.1  MCS-51單片機(jī)基本組成2.2  MCS-51存儲器配置2.3  MCS-51
    發(fā)表于 09-13 07:57 ?56次下載

    MCS-51單片機(jī)應(yīng)用設(shè)計

    本書從應(yīng)用的角度,詳細(xì)地介紹了MCS-51單片機(jī)的硬件結(jié)構(gòu)、指令系統(tǒng)、各種硬件接口設(shè)計、各種常用的數(shù)據(jù)運(yùn)算和處理程序及接口驅(qū)動程序的設(shè)計以及MCS-
    發(fā)表于 10-28 10:06 ?84次下載
    <b class='flag-5'>MCS-51</b><b class='flag-5'>單片機(jī)</b>應(yīng)用設(shè)計

    MCS-51系列單片機(jī)實(shí)用接口技術(shù)

    本書全面、系統(tǒng)地介紹了MCS-51系列單片機(jī)應(yīng)用系統(tǒng)的各種實(shí)用接口技術(shù)及其配置。 內(nèi)容包括:MCS-51
    發(fā)表于 10-28 11:10 ?196次下載
    <b class='flag-5'>MCS-51</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>實(shí)用接口技術(shù)

    MCS-51系列單片機(jī)的特點(diǎn)及應(yīng)用

    MCS-51系列單片機(jī)的特點(diǎn)及應(yīng)用
    發(fā)表于 01-04 13:09 ?0次下載

    mcs-51系列單片機(jī)實(shí)用編程88例

    mcs-51系列單片機(jī)實(shí)用編程88例
    發(fā)表于 09-11 09:17 ?0次下載