日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

一種LCU測試系統(tǒng)的設(shè)計

出處:劉 潔,陳特放,李比翼 發(fā)布于:2011-09-02 13:36:54

  隨著我國機車控制水平的不斷提高,微機控制已經(jīng)成為我國機車控制的重要控制方式,而邏輯控制單元LCU(Logic Control Unit)作為主要完成機車運行邏輯控制、電路故障記錄控制等功能的控制模塊,是關(guān)系機車安全運行的重要部件。

  ARM(Advanced RISC Machines)是微處理器行業(yè)的一家企業(yè),設(shè)計了大量高性能、廉價、耗能低的RISC處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。ARM(Advanced RISC Machines)是微處理器行業(yè)的一家企業(yè),設(shè)計了大量高性能、廉價、耗能低的RISC處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。 ARM(Asynchronous Resbonse Mode)異步響應方式異步響應方式ARM(Asynchronous Responses Mode)也是一種非平衡數(shù)據(jù)鏈路操作方式,與NRM不同的是,ARM下的傳輸過程由從站啟動。從站主動發(fā)送給主站的一個或一組幀中可包含有信息,也可以是僅以控制為目的而發(fā)的幀。在這種操作方式下,由從站來控制超時和重發(fā)。該方式對采用輪詢方式的多站鏈路來說是必不可少的。

  1 系統(tǒng)設(shè)計原理

  LCU檢測就是對LCU內(nèi)部運行邏輯做出測試并進行故障診斷。測試系統(tǒng)通過向被測試的LCU發(fā)出初始命令,并查看其輸出結(jié)果是否與參考輸出相同,從而判斷被測試的LCU邏輯是否正確。

  本文沿用傳統(tǒng)繼電器控制中的部分概念進行軟件分析。傳統(tǒng)硬件繼電器觸點分為“常開觸點”和“常閉觸點”兩類。一條線路的運行結(jié)果會反映到另外一個線圈上,因此,繼電器控制的輸出可以用線圈表示。

  線路上的信號都可以采用二進制表達,所以測試的范圍會根據(jù)線路上觸點個數(shù)呈現(xiàn)指數(shù)增長。對于要求不太嚴格的控制信號,只要求在適當?shù)臈l件下,得到開通或閉合的結(jié)果,其動作的條件為充分不必要條件。對于要求嚴格的控制信號,不僅要求在確定的條件下得到應有的結(jié)果,而且要保證這個條件是充分必要條件。因此,很大程度上測試可能會遍歷觸點的所有組合,測試的總體消耗時間就會擴充到很大的時間范圍。

  可見,測試情況的選擇十分重要。測試復雜性的主要矛盾在于:需要證明充分必要條件的線路的多少以及該線路的觸點的多少。工業(yè)標準反映在程序中的情況就是保留測試的選擇性,便于在后續(xù)工作中進行選擇和修改。本系統(tǒng)的硬件框圖如圖1所示。

  2 嵌入式Linux操作系統(tǒng)移植

  Linux是一類Unix計算機操作系統(tǒng)的統(tǒng)稱。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux”。Linux操作系統(tǒng)也是自由軟件和開放源代碼發(fā)展中著名的例子。嚴格來講,Linux這個詞本身只表示Linux內(nèi)核,但在實際上人們已經(jīng)習慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一種克隆系統(tǒng)。它誕生于1991 年的10 月5 日(這是次正式向外公布的時間)。以后借助于Internet 網(wǎng)絡,并經(jīng)過全世界各地計算機愛好者的共同努力下,現(xiàn)已成為今天世界上使用多的一種UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長。

  在一種計算機環(huán)境中運行的編譯程序,能編譯出在另外一種環(huán)境下運行的代碼,我們就稱這種編譯器支持交叉編譯。這個編譯過程就叫交叉編譯。簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。這里需要注意的是所謂平臺,實際上包含兩個概念:體系結(jié)構(gòu)(Architecture)、操作系統(tǒng)(Operating System)。同一個體系結(jié)構(gòu)可以運行不同的操作系統(tǒng);同樣,同一個操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運行。舉例來說,我們常說的x86 Linux平臺實際上是Intel x86體系結(jié)構(gòu)和Linux for x86操作系統(tǒng)的統(tǒng)稱;而x86 WinNT平臺實際上是Intel x86體系結(jié)構(gòu)和Windows NT for x86操作系統(tǒng)的簡稱。要進行交叉編譯,我們需要在主機平臺上安裝對應的交叉編譯工具鏈(cross compilation tool chain),然后用這個交叉編譯工具鏈編譯我們的源代碼,終生成可在目標平臺上運行的代碼。編譯順序如圖2所示。

  搭建ARM交叉編譯器的步驟:(1)編譯安裝binutils;(2)安裝linux 的頭文件;(3)編譯安裝gcc的c 編譯器;(4)編譯安裝 glibc;(5)編譯安裝gcc的c、c++編譯器。

  Boot-loader是RAM芯片的引導程序,它的作用是加載操作系統(tǒng)。兩個著名的開源Boot-loader,其中一個是U-boot,它的形式就是一個代碼包,包中按照Linux一般的編程習慣和不同的目標板,將相應的匯編和C語言代碼羅列在對應的文件夾下,讓開發(fā)人員自行配置。

  修改U-boot的過程:(1)基本的硬件初始化;(2)跳轉(zhuǎn)到 Stage2 的 C 入口點;(3)定義函數(shù)Nand_init;(4)跳轉(zhuǎn)到Kernel。

  Linux內(nèi)核就是一個可執(zhí)行的Linux操作系統(tǒng)的套件集合,簡稱內(nèi)核[3]。套件的選擇,就是內(nèi)核的配置。內(nèi)核的配置表明了內(nèi)核的可調(diào)整性。根據(jù)Linux軟件的開發(fā)規(guī)則,可到Linux內(nèi)核源碼包的路徑下,在終端使用配置命令進行內(nèi)核配置。在配置內(nèi)核的時候,需要定義內(nèi)核啟動的命令行。

  3 LCU檢測系統(tǒng)應用程序

  3.1 軟件設(shè)計及其要素

  軟件的應用設(shè)計,就是確定軟件的各個部分及各部分之間的相互關(guān)系,信息在其中發(fā)送、傳遞和接收,以及部分運動發(fā)展的走向和趨勢,終得到可以預見的結(jié)果。

  面向?qū)ο蟮能浖_發(fā),從不同的對待問題的層次出發(fā)能得到不同問題的解決方案。其基本工作流程如圖3所示。

  3.2 定義基本的類和對象及人機界面的設(shè)計

  在需求分析的說明中,常出現(xiàn)的三個名詞分別是觸點、測試和線圈。每個測試包含了不同的線圈,每個線圈又分別由觸點組成。所以,觸點、線圈和測試能夠分別抽象出來做成單獨的類。觸點必須有ID、常開/常閉的類型和運行中處于的值都應該在屬性中出現(xiàn)。

  首先設(shè)計用二維數(shù)組來模擬測試與觸點的關(guān)系。假設(shè)數(shù)組的橫向和縱向表示分別為測試和觸點,則某個線圈的設(shè)計如圖4所示。

  對照實際情況,可以使用二維數(shù)組進行描述。觸點的加入和刪除就是列的插入和刪除運算,測試的加入和刪除就是行的插入和刪除運算。對某線圈的實驗就是把每行遍歷一遍,結(jié)果對照預計值進行邏輯判斷。

  直觀上看,重疊配置的線圈就像是檢查手冊的一封封頁面,測試整個系統(tǒng)的方法就是翻弄這本“書”,從頭至尾把所有的線圈遍歷一遍。

  3.3 序列化存儲類serial和鏈表類

  如果延續(xù)這樣的思路,則關(guān)于數(shù)組的操作會產(chǎn)生新的問題:C語言中定義數(shù)組必須先確定數(shù)組的大小才能分配合適的內(nèi)存。

  由于文件是測試系統(tǒng)內(nèi)部調(diào)用的接口,應該先沿著采用文件來登記測試項目的結(jié)論進行分析。采用序列化技術(shù)能夠簡單而方便地實現(xiàn)文件存儲。序列化是指將對象實例的狀態(tài)存儲到可持久保持信息的物理設(shè)備的過程,其特點就是線性存儲。序列化技術(shù)實現(xiàn)了文件的存儲,同時它也給出了一種思路:把所有一切都統(tǒng)一對待,變成一根主線。如圖6所示。

  但序列化只提供鏈型的存儲形式,只能用一維的鏈表模擬二維數(shù)組,因為不知道二維鏈表的指針應該如何安排。

  決定采用鏈式聯(lián)系的方法:用指針來實現(xiàn)連接。但是指針的傳遞跨越了類,因此有必要把鏈式結(jié)構(gòu)直接抽象成類,產(chǎn)生定義觸點鏈表類、測試鏈表類和線圈鏈表類,并將它們抽象出一個基本的鏈表類,實現(xiàn)鏈表基本的操作,再從它派生出上述三個鏈表類。

  3.4 計算預計值

  測試隨意地更改其所包含的觸點,隨之變動的是測試的預計值。這可以采取人工輸入來實現(xiàn),但是如果用表達式字符串來表達測試的邏輯計算,可以通過字符替換的方法讓機器來實現(xiàn)。

  表達式字符串中間必須有觸點的ID名字,常閉觸點的名字前加“~”,測試線路的“與”邏輯用字符“*”來表示,或邏輯用字符“|”來表示(也可以選擇其他的計算字符),用括號表示優(yōu)先的線路邏輯,空格是人性化的適應性定義。

  計算預計值的算法如下:

 ?。?) 輸入目標字符串。

 ?。?) 首先去空格。

 ?。?) 用觸點的狀態(tài)值替換觸點ID,如果是FALSE,替換成F,如果是TRUE,替換成T。

 ?。?) 開始循環(huán): F*F 替換成F

  F*T 替換成F

  T*F 替換成F

  T*T 替換成T

  F|F 替換成F

  F|T 替換成T

  T|F 替換成T

  T|T 替換成T

  (T) 替換成T

 ?。‵) 替換成F

  測量字符串長度,如果和上次相比變小,則重新開始循環(huán);如果沒有變化,則跳出循環(huán)進行下一步。

 ?。?) 判斷:如果字符串==T,則說明預計值是TRUE;如果字符串==F,則說明預計值是FALSE;如果字符串是其他值,說明輸入的表達式有誤,提示重新確定表達式。

  3.5 數(shù)據(jù)壓縮

  根據(jù)設(shè)計,直觀上可以定義觸點為一個這樣的類:內(nèi)容包括一個BOOL變量和一個指針。BOOL變量表示觸點的狀態(tài)值,指針指向下一個觸點的位置。但是這樣做會導致文件過于龐大,所以要進行數(shù)據(jù)的壓縮。

  BOOL變量以位置0或置1來表明FALSE或TRUE的狀態(tài),但BOOL變量前面所有的位都沒有利用上。因此,可以把BOOL變量前面所有的位都用來表示觸點的狀態(tài),這就是壓縮的基本思想。

  壓縮效率分析:因為布爾值通常定義為8位長度,現(xiàn)在只用1位來表示,所以壓縮的極限值應該可以達到8倍。這樣的壓縮比率下能夠有效地節(jié)約測試資料的存儲大小。

  3.6 數(shù)據(jù)存儲方式考查

  必須考慮數(shù)據(jù)的存儲方式,不同的存儲方式直接影響了位的操作。因此,在執(zhí)行位操作之前一定要明確存儲方式,小頭(Little-endian)模式對數(shù)據(jù)的存放方式是從低字節(jié)到高字節(jié),而大頭(Big-endian)模式對數(shù)據(jù)的存放方式是從高字節(jié)到低字節(jié)。

  聯(lián)合體(union)的存放順序是所有成員都從低地址開始存放,整數(shù)定義通常占用4字節(jié)32位,char定義通常只占用1字節(jié)8位。一般認為,大頭模式的表達方式更符合生活中的數(shù)學思維習慣,所以不妨在小頭模式的平臺上做轉(zhuǎn)換工作,把表達方式換算成大頭模式。定義一個SWAP轉(zhuǎn)換工作宏,由它把對應字節(jié)調(diào)換位置(與互調(diào),中間兩個互調(diào))從而得到不同的模式。

  本系統(tǒng)是基于Linux操作系統(tǒng)開發(fā)的通用LCU檢測軟件,具有通用性、便攜性和靈活性的特點。采用Linux操作系統(tǒng)平臺,能夠進一步降低成本。ARM嵌入式系統(tǒng)本身對于軟件和數(shù)據(jù)信息具有良好的保密措施,適合保存商業(yè)信息。本系統(tǒng)還采用了測試項目與程序分離的軟件模塊設(shè)計方案,使測試的種類大大增加,不管是同一種車型的測試項目變更,還是其他車型的測試,或者是更廣泛的一般性LCU系統(tǒng)的測試。


  
關(guān)鍵詞:測試

版權(quán)與免責聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務:
賣家服務:
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!