<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種UART&SPI接口驗(yàn)證工具的設(shè)計與實(shí)現(xiàn)

          一種UART&SPI接口驗(yàn)證工具的設(shè)計與實(shí)現(xiàn)

          作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏
          一種UART&SPI接口驗(yàn)證工具的設(shè)計與實(shí)現(xiàn)

          3.1 配置程序

          配置程序主要由測試用例管理和配置接口層兩部分組成,主要完成測試用例管理及測試用例的生成。

          3.1.1 測試用例管理

          測試用例管理部分主要完成測試用例的分發(fā)、定位以及測試結(jié)果的收集。為了兼容各個Linux版本,測試用例管理部分不采用界面的形式進(jìn)行管理,而是采用命令行的形式運(yùn)行。用例管理部分可以選擇單個或多個測試用例進(jìn)行測試。例如:uart_test case1 case2是對第一、二個測試用例進(jìn)行測試,uart_test all是對所有的測試用例進(jìn)行測試。測試用例管理部分會根據(jù)測試用例ID自動定位到相應(yīng)的程序執(zhí)行。圖5是測試用例管理部分的流程圖。

          3.1.2 測試用例的生成

          接口為例,描述一個完整的測試用例。圖6描述的是一個接口的完整的測試用例。從途中可以清晰地看出配置程序是如何協(xié)調(diào)上位機(jī)與下位機(jī)之間的通信的。

          一種UART&SPI接口驗(yàn)證工具的設(shè)計與實(shí)現(xiàn)

          本文提出的驗(yàn)證工具與以往的驗(yàn)證工具最大的區(qū)別在于配置程序可以協(xié)調(diào)上位機(jī)與下位機(jī)。上位機(jī)與下位機(jī)并不是完全分離的,而是由配置程序統(tǒng)一協(xié)調(diào),分別給上位機(jī)和下位機(jī)下發(fā)命令修改參數(shù)及通信。

          3.1.3 兼容性的實(shí)現(xiàn)

          由于對接口來說,要求兼容PC機(jī)和多個嵌入式平臺,所以在程序的設(shè)計上要考慮兼容性的問題。

          兼容性問題需要考慮兩個方面:

          (1)數(shù)據(jù)類型的重定義。

          (2)采用分層設(shè)計的思想。

          3.2 驅(qū)動程序

          驅(qū)動程序主要包括驅(qū)動接口層和硬件接口層。其中驅(qū)動接口層主要完成將配置程序的命令或數(shù)據(jù)進(jìn)行解析,通過接口發(fā)送出去,而硬件接口層主要負(fù)責(zé)驅(qū)動與硬件(固件)接口操作,負(fù)責(zé)對DUT設(shè)備進(jìn)行設(shè)置,對待測設(shè)備進(jìn)行寫命令/數(shù)據(jù),或從DUT設(shè)備獲取狀態(tài)/數(shù)據(jù)信息。

          3.2.1 接口驅(qū)動開發(fā)

          UART協(xié)議比較簡單,本文不對UART協(xié)議進(jìn)行介紹。由于在LINUX系統(tǒng)下,對串口有相當(dāng)好的支持。Linux下把串口看作一個文件來處理,故對串口的讀寫操作相當(dāng)于對文件直接進(jìn)行讀寫操作。這樣我們可以直接調(diào)用系統(tǒng)函數(shù)如open,write,read,close等對串口進(jìn)行操作。

          需要注意的是,對串口的寫操作比較容易,但是讀操作存在著阻塞I/O的問題。在對串口進(jìn)行讀取操作的時候,如果使用的是RAW模式,每個read系統(tǒng)調(diào)用將返回當(dāng)前串行輸入緩沖區(qū)中存在的字節(jié)數(shù)。如果沒有數(shù)據(jù),將會一直阻塞到有字符到達(dá)或者間隔時鐘到期,或者發(fā)生錯誤此時可采用異步讀取。所謂異步讀取,指的是先查詢串口,看串口是否可用,直到串口可用了再去讀就可以避免阻塞I/O的問題。

          3.2.2 接口驅(qū)動開發(fā)

          (1)概述

          SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時或者硬件復(fù)用兩根數(shù)據(jù)線),也是所有基于SPI的設(shè)備共有的,它們是MISO,MOSI,SCK,CS。

          MOSI為主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;MISO為主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出;SCK為時鐘信號,由主設(shè)備產(chǎn)生;CS為從設(shè)備使能信號,由主設(shè)備控制。

          (2)SPI驅(qū)動開發(fā)

          在Linux下開發(fā)SPI驅(qū)動有兩種方式,一種是采用Linux自帶的SPI子系統(tǒng),一種是采用字符設(shè)備驅(qū)動的形式。本文采用了字符設(shè)備驅(qū)動的形式。在Linux 2.6內(nèi)核中使用cdev結(jié)構(gòu)體描述字符設(shè)備。cdev結(jié)構(gòu)體如下所示。字符設(shè)備的主要工作是初始化、添加和刪除cdev的結(jié)構(gòu)體,申請和釋放設(shè)備號,以及填充file_operations結(jié)構(gòu)體的操作函數(shù),實(shí)現(xiàn)file_operations結(jié)構(gòu)體中的read(),write()和ioctl()等。

          一種UART&SPI接口驗(yàn)證工具的設(shè)計與實(shí)現(xiàn)

          cdev結(jié)構(gòu)體的dev_t成員定義了設(shè)備號,另一個重要成員file_operations定義了字符設(shè)備驅(qū)動提供給虛擬文件系統(tǒng)的接口函數(shù)。file_ operations結(jié)構(gòu)體中的成員函數(shù)是字符設(shè)備驅(qū)動程序設(shè)計的主體內(nèi)容,這些函數(shù)實(shí)際會在應(yīng)用程序進(jìn)行Linux的open(),write(),read(),close()等系統(tǒng)調(diào)用時最終被調(diào)用。

          Linux字符設(shè)備驅(qū)動主要由以下幾部分組成:

          (1)字符設(shè)備驅(qū)動模塊加載與卸載函數(shù)

          在字符設(shè)備驅(qū)動模塊加載函數(shù)中應(yīng)該實(shí)現(xiàn)設(shè)備號的申請和cdev的注冊,對應(yīng)的是insmod過程,而在卸載函數(shù)中應(yīng)實(shí)現(xiàn)設(shè)備號的釋放和cdev的注銷,對應(yīng)的是rmmod過程。

          (2)字符設(shè)備驅(qū)動的file_operations結(jié)構(gòu)體中成員函數(shù)

          file_operations結(jié)構(gòu)體中成員函數(shù)是字符設(shè)備驅(qū)動與內(nèi)核的接口,是用戶空間對Linux進(jìn)行系統(tǒng)調(diào)用最終的落實(shí)者。

          (3)加載字符設(shè)備驅(qū)動之后,在用戶空間建立一個設(shè)備節(jié)點(diǎn),在用戶空間就可以對設(shè)備進(jìn)行操作了,操作方式操作文件的方式相同。

          3.2.3 驅(qū)動與固件的接口

          驅(qū)動與固件之間的交互是通過自定義的“AT+”協(xié)議,協(xié)議交互流程見圖7。

          一種UART&SPI接口驗(yàn)證工具的設(shè)計與實(shí)現(xiàn)

          AT+命令主要包括3個:“AT+”:判斷串口鏈路是否正常。如果正常,返回OK;不正常,返回error;“AT+set”:接口參數(shù)設(shè)置命令。如果參數(shù)設(shè)置完成,返回OK;不正常,返回error;“AT+send”:數(shù)據(jù)發(fā)送命令。如果數(shù)據(jù)發(fā)送/接收正確,返回OK;否則,返回error。

          4 結(jié)語

          本文介紹的工具適用于UART接口和SPI接口的功能、性能和兼容性測試,可實(shí)現(xiàn)測試的



          關(guān)鍵詞: UART SPI 接口驗(yàn)證 自動化

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();