日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機測試系統的鏈式存儲方式和應用方案分析

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:趙成 , 袁海文 ? 2020-08-03 09:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

在自動化測試領域里,單片機測試系統憑借其成熟的應用體系,簡單的系統結構以及優(yōu)良的性價比得到了越來越廣泛的應用。近年來,隨著新的測試對象不斷出現,以及測試手段的不斷發(fā)展,測試系統的功能越來越完善,各種應用場合對測試系統的要求也日益提高。現在的大多數測試系統不僅要完成工業(yè)現場的實時測控任務,同時還要進一步實現對測試數據的實時處理和保存。以往在一般的單片機測試系統中,信息的存儲量并不大,系統只須用較少的資源就能實現數據的存儲。但是隨著存儲芯片技術的不斷發(fā)展,適用于單片機系統的存儲芯片已經可以在掉電保護的情況下保存上百KB甚至幾MB的數據;同樣,目前的單片機測試系統也面臨動輒處理并保存上千條乃至近萬條測試數據的問題。這對一般的缺少操作系統支持的單片機測試系統來說,是一項相當復雜的工作,因而目前的測試系統往往只能針對具體數值對象進行處理,對大量采集數據采取簡單的順序存儲方式。顯然,這種方法缺少靈活性,不利于單片機測試系統處理大量測試數據,限制了測試系統在這方面的發(fā)展。

本文主要針對處理測試數據量較大的一類測試系統,討論測試數據的存儲和管理問題。這類測試系統往往由抗干擾能力較強的單片機和大容量、掉電保護的存儲芯片組成,同時配有高精度數字式傳感器;造價便宜,性能穩(wěn)定,適合工作在工業(yè)現場,保存和處理大量測試數據,有的甚至能夠與上位機組成測控網絡完成更為復雜的測試任務。本文將介紹一種應用于單片機測試系統的鏈式存儲方式,能夠在工業(yè)現場進行實時測控的同時,實現對大量測試數據的保存和管理,在實際應用中取得了良好的效果。

大容量單片機測試系統中的存儲結構

在大多數自動測試系統中,測試數據的邏輯結構一般都會遵循線性邏輯關系,即數據元素在時間或者空間順序上只分先后次序而不存在上下層次。因此在設計存儲結構時往往采用順序存儲結構,其優(yōu)點在于處理線性數據結構時速度快,而且結構簡單。

但是上述情況在前文所述的大容量測試系統中并不是普遍適用的。大容量測試系統雖然同樣是線性邏輯結構,但其測試數據變化多樣,構成數據元素的內部結構也非常復雜,而且系統又要執(zhí)行數據保存和數據查詢等多項指令操作,如果再應用順序存儲結構就會面臨許多問題。

首先,測試系統經常會面臨一些較為特殊的測試對象。其測試信息較為復雜且數據長度不固定,顯然不利于采用順序存儲結構。假設系統按照時間或空間上的邏輯順序來進行順序存儲,那么對存儲空間的分配將成為難題。若分配空間過大,則影響存儲效率;反之,又會出現數據溢出的情況。類似地,假設系統能夠安排好數據的存放空間,在進行數據查詢、數據刪除等操作時系統也會顯得力不從心。

其次,采用順序存儲結構不能很好地處理抽象數據類型。系統在進行數據保存、數據查詢以及數據刪除等操作時都要考慮數據元素的長度和內容,不能做到靈活、有效。當系統需要修改或升級時,對數據元素內部結構的修改又會影響到系統的整體操作,從而降低了系統的可靠性和高效性,同時使得系統進行維護和升級的難度大大增加。

綜上所述,順序存儲結構并不能解決大容量測試系統在存儲和管理數據時面臨的所有問題,因此在實際操作中必須考慮非順序存儲結構的應用。長久以來,在單片機系統中較少采用諸如鏈式存儲結構等非順序存儲結構,原因在于鏈式存儲結構必須有一套專門的存儲管理系統來支持。在通用計算機中,這一功能由操作系統或高級語言的編譯系統來實現,但在普通單片機系統中沒有成熟的應用案例,因而使程序設計的難度較高。下面介紹一種應用于大容量單片機系統的存儲管理系統,能夠支持大容量單片機測試系統的應用鏈式存儲方式。

大容量測試系統的存儲管理系統

對于采用鏈式存儲結構的大容量測試系統,鏈表中各結點的物理地址是不固定的。為避免在保存數據時可能出現的存儲空間沖突問題,需要建立專門的存儲管理系統來管理存儲空間的開辟和釋放。其中,數據引導表是存儲管理系統的基礎,負責記錄存儲空間中各個數據元素的存儲信息。利用數據引導表,同時配合實現開辟空間、釋放空間等操作的函數,測試系統能夠實現對大量存儲空間的有效管理。

數據引導表

建立數據引導表,就是建立一種鏈表中各結點與其相應物理地址之間的聯系,規(guī)范每個結點對存儲空間的使用。在測試系統中,引導表只是占用存儲空間內劃分的一段固定區(qū)域,其記錄對象是一段已被分配占用的連續(xù)地址空間的首地址和末地址,標志著保存在存儲空間上的某個結點所分配占用的空間大小,稱為一個“記錄”。各個記錄在引導表中的物理地址是連續(xù)的,并且按照每個記錄首地址的大小依次排列。數據引導表工作原理如圖1所示。

單片機測試系統的鏈式存儲方式和應用方案分析

圖1數據引導表工作原理示意圖

在初始狀態(tài)時,內存引導表只有2個記錄,表明整個存儲空間的首地址和末地址,此時整個頁面空間沒有存儲任何測試數據。一旦有新的結點需要在這一空間上保存,CPU將為該結點開辟一段連續(xù)的存儲區(qū)間供其使用,并將該段空間的首地址和末地址作為一個記錄寫入內存引導表中。同樣的當系統需要在某一頁面上刪除一個鏈表中的結點時,CPU將其對應的記錄在內存引導表中刪除,以此來釋放此段地址空間。值得說明的是,對于在引導表中被釋放的存儲空間部分,其保存的內容并沒有真正刪除;在新的數據覆蓋該地址之前,CPU還是可以通過直接訪問該地址來讀取其中的存儲數據。

管理存儲空間的函數

一般來講,在通用計算機中往往利用C語言中的標準庫函數malloc()、realloc()和free()來實現對存儲空間的分配和管理,但這種方式對于一般的大容量測試系統并不合適。

假設在前文所述的大容量測試系統中,系統采用16位地址的單片機,利用分頁存儲模式對512KB掉電保護存儲器進行訪問。將存儲器分為16個頁面(00H~0FH),每個頁面地址為0000H~7FFFFH,共計32KB。此時系統利用malloc()可以在未被使用的空間中開辟一段存儲空間,但是該函數返回的地址指針是隨機的,有可能將空間分配在系統無法識別的區(qū)間(如7FFFH~FFFFH),因此不能滿 足需要。另外,由于系統中存儲器具有掉電保護功能,CPU在重新上電后將無法識別已保存測試數據的存儲空間,從而使malloc()函數失去意義。因此,還是以數據引導表為基礎來建立存儲空間的管理函數。其具體功能的實現都依賴于函數對數據引導表中各個記錄的操作,程序如下:

void*m_alloc(uintsize,ucharpage)//開辟存儲空間的函數

void*m_free(voidxdata*p_free,ucharpage)//釋放已開辟存儲空間的函數

void*re_alloc(voidxdata*p_re,uintsize,ucharpage)//重新開辟存儲空間的函數

以m_alloc()函數為例,其程序流程圖如圖2所示。

圖2開辟存儲空間函數m_alloc()的程序流程

當系統需要為某一結點開辟存儲空間時,首先給出指定的存儲空間頁面page和需要開辟空間的長度size,然后通過m_alloc()函數在相應頁面的引導表內查詢是否有合適的存儲空間。由于引導表中每個記錄都代表一段已被分配的連續(xù)的地址區(qū)間,因此m_alloc()函數會從第一個記錄開始判斷每兩個相鄰記錄之間未被分配空間的長度是否滿足系統的需要。當有一對記錄滿足條件時,m_alloc()函數會返回該段未被分配存儲空間的首地址(即前一個記錄的末地址)指針,同時在這兩個記錄中間插入此次開辟空間段的新記錄。如果該頁面引導表的所有記錄都不滿足條件,則m_alloc()函數返回空指針。re_alloc()函數和m_free()函數分別完成重新分配指定首地址的一段存儲空間和刪除指定首地址的一段存儲空間的操作。其功能和用法與m_alloc()類似,不再贅述。

鏈式存儲結構和存儲管理系統在實際操作中的應用

利用上文所述的存儲管理系統可以實現在大容量測試系統中應用鏈式存儲結構,這樣做的好處在于能夠有效地簡化系統存儲數據的過程,有利于執(zhí)行多項指令操作,提高系統存儲空間的利用率。

SF6密度繼電器校驗系統

如圖3所示,SF6密度繼電器校驗系統由51系列單片機、512KB掉電保護存儲器、打印機、時鐘系統和LCD組成,配有高精度的數字式壓力傳感器溫度傳感器,可以通過485總線與上位機通信。該系統能夠對不同類型的密度繼電器進行校驗,滿足各種額定參數和接點數目的需要,在校驗過程中實現實時顯示、打印數據等多項功能;對同一繼電器能夠保存多組校驗數據,最多可保存4000多條校驗數據;對于所有的校驗記錄,都可以隨時進行查詢;另外,在與上位機進行通信時,有相應的上位機軟件對下位機系統進行的數據傳輸、存儲器空間查詢和數據刪除等操作。

圖3SF6密度繼電器校驗系統結構框圖

具體來講,SF6密度繼電器校驗系統以SF6密度繼電器作為校驗對象,校驗結果包含SF6氣體的壓力值和溫度值,因此將每個校驗對象的校驗結果抽象為一個數據元素,分別包括該校驗對象的測試信息(如測試日期,繼電器的測試序號、接點數目和額定參數信息)和一組或多組的測量值信息(如校驗次數、報警、閉鎖1、閉鎖2、超壓接點分別動作、返回時的壓力值和溫度值)。系統以每個數據元素為結點建立鏈式存儲結構,并通過上述的管理存儲系統來管理存儲空間的分配,這樣既能保證有效、合理地保存校驗數據,又能很好地實現數據查詢、數據刪除以及與上位機通信等操作,使系統的運行更加高效可靠。

非線性邏輯結構的自動測試系統

當自動測試系統面臨非線性邏輯結構的數據元素時,必須要采取非順序存儲結構來保存數據,此時可以考慮鏈式存儲結構,或者索引存儲結構以及二叉樹等各種非順序存儲結構,但前提條件都是要有一套專門的存儲管理系統來支持。

有了上述的存儲管理系統作基礎,各種非順序存儲結構的應用就成為可能。在設計系統時充分權衡存儲空間的利用率和算法所耗費的時間,就能夠有針對性地應用多種存儲結構并設計出相應的算法,以滿足各種測試對象和測試環(huán)境的要求。

結語

以鏈式結構的形式保存數據和通過數據引導表來管理存儲空間,是應用于大容量單片機測試系統的一種新的數據保存和管理方式。

這種存儲方式既適用于線性邏輯結構測試系統,也適用于非線性邏輯結構測試系統,總體上使得單片機系統在處理多項復雜數據并進行反復保存、查詢和刪除等操作時更加快捷簡便,提高了對有限容量存儲空間的利用率;同時,結構化的數據存儲使得系統的維護和升級更加輕松,實現了系統的結構化管理。

責任編輯:gt

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

    關注

    463

    文章

    54542

    瀏覽量

    470248
  • 單片機
    +關注

    關注

    6078

    文章

    45610

    瀏覽量

    674545
  • 測試系統
    +關注

    關注

    6

    文章

    937

    瀏覽量

    63885
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于U盤的單片機海量存儲方案

    基于U盤的單片機海量存儲方案隨著Flash Memory非易失存儲技術的發(fā)展,基于USB接口的閃存即U盤現已得到廣泛應用。從理論上講,以U盤作為便攜式采集
    發(fā)表于 11-30 08:59

    【轉】不同單片機之間的通信方式

    的主要問題。本文將分析比較幾種單片機之間的方式、難點,并提出一種解決方案。②采用片內SPI接口或I2C總線模塊串行通信形式。SPI/I2C接口具有硬件簡單、軟件編程容易等特點,但目前大
    發(fā)表于 11-20 22:23

    單片機之間的通信方式/難點/解決方案

    合理使用多種不同類型的單片機組合設計,可以得到極高靈活性與性能價格比,因此,多種異型單片機系統設計漸漸成為一種新的思路,但單片機之間的通信一直是困擾這種方法拓展的主要問題?! ”疚膶?/div>
    發(fā)表于 12-31 07:42

    基于AT90系列單片機的過載存儲測試系統

    基于ATMEL 90 系列單片機AT90S8515 為系統控制器的過載存儲測試儀, 實現了野外過載存儲系統的小型化。該過載
    發(fā)表于 06-19 15:33 ?11次下載

    單片機教程八:單片機尋址方式與指令系統

    單片機教程八:單片機尋址方式與指令系統 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制
    發(fā)表于 05-15 23:02 ?740次閱讀

    什么是單片機尋址方式與指令系統

     什么是單片機尋址方式與指令系統 通過前面的學習,我們已經了解了單片機內部的結構,并且也已經知道,要控制單片機,讓它為我們干學,
    發(fā)表于 03-11 09:31 ?3500次閱讀

    單片機系統RAM的測試方法研究

    在各種單片機應用系統中,存儲器的正常與否直接關系到該系統的正常工作。為了提高系統的可靠性,對系統
    發(fā)表于 01-24 14:54 ?1281次閱讀

    基于AVR單片機和CPLD的姿態(tài)測試系統設計

    摘要:本系統采用cPLD和AvR單片機作為邏輯控制核心,設計了姿態(tài)存儲測試系統,以實現姿態(tài)信息的采集、編幀和
    發(fā)表于 03-06 16:00 ?22次下載
    基于AVR<b class='flag-5'>單片機</b>和CPLD的姿態(tài)<b class='flag-5'>測試</b><b class='flag-5'>系統</b>設計

    51單片機匯編語言教程_單片機尋址方式與指令系統

    51單片機匯編語言教程:8課單片機尋址方式與指令系統
    發(fā)表于 01-19 15:25 ?0次下載

    STM32單片機存儲式數據采集系統設計

    STM32單片機存儲式數據采集系統設計
    發(fā)表于 09-20 08:28 ?42次下載
    STM32<b class='flag-5'>單片機</b>的<b class='flag-5'>存儲</b>式數據采集<b class='flag-5'>系統</b>設計

    不同單片機之間的通信方式

    、功能強大的低消耗系統、加密系統等等。如果合理使用多種不同類型的單片機組合設計,可以得到極高靈活性與性能價格比,因此,多種異型單片機系統設計
    發(fā)表于 04-12 17:48 ?1.6w次閱讀
    不同<b class='flag-5'>單片機</b>之間的通信<b class='flag-5'>方式</b>

    單片機教程之單片機總線與存儲器的擴展資料說明

    本文檔的詳細介紹的是單片機教程之單片機總線與存儲器的擴展資料說明主要內容包括了:1.單片機系統總線和系統
    發(fā)表于 02-14 17:34 ?27次下載
    <b class='flag-5'>單片機</b>教程之<b class='flag-5'>單片機</b>總線與<b class='flag-5'>存儲</b>器的擴展資料說明

    51單片機的結構及工作方式等基礎知識詳細說明

    本文檔的主要內容詳細介紹的是51單片機的結構及工作方式等基礎知識詳細說明包括了:1 單片機基本構成系統,2 單片機
    發(fā)表于 10-22 16:11 ?12次下載
    51<b class='flag-5'>單片機</b>的結構及工作<b class='flag-5'>方式</b>等基礎知識詳細說明

    單片機系統RAM故障的幾種測試方法介紹

    在各種單片機應用系統中,芯片存儲器的正常與否直接關系到該系統的正常工作。為了提高系統的可靠性,對系統
    發(fā)表于 10-30 16:52 ?5811次閱讀

    低功耗的單片機系統RAM測試

    在各種單片機應用系統中,存儲器的正常與否,直接關系到該系統的正常工作。為了提高系統的可靠性,對系統
    發(fā)表于 03-18 16:46 ?4次下載
    低功耗的<b class='flag-5'>單片機</b><b class='flag-5'>系統</b>RAM<b class='flag-5'>測試</b>
    治多县| 万年县| 商丘市| 高唐县| 连城县| 德安县| 泗阳县| 商河县| 乐清市| 建昌县| 渝北区| 留坝县| 铜梁县| 临安市| 宣武区| 伊春市| 吉水县| 兴义市| 霍山县| 荃湾区| 伊宁市| 全椒县| 泽库县| 文水县| 晋州市| 桐乡市| 老河口市| 万安县| 天等县| 彰武县| 广南县| 江安县| 西贡区| 屏东市| 尼木县| 华池县| 黔江区| 东乌珠穆沁旗| 小金县| 广饶县| 安多县|