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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于UART&SPI的接口驗證工具的設(shè)計與實現(xiàn)

          基于UART&SPI的接口驗證工具的設(shè)計與實現(xiàn)

          作者: 時間:2014-03-20 來源:網(wǎng)絡(luò) 收藏

          摘要:隨著WLAN(無線局域網(wǎng))的普及,各種接口的WLAN網(wǎng)卡層出不窮,像,,USB等。為了驗證接口的功能、性能和兼容性是否符合需求,在此提出了一種支持&接口的驗證工具。傳統(tǒng)的接口驗證采用手動驗證的方法,即手動修改接口的波特率或接口的大小端等來達(dá)到遍歷所有用例的目的,傳統(tǒng)方法存在效率低,容易漏測測試用例等缺陷。而該工具通過命令通道完成上位機和下位機的協(xié)商,保持接口參數(shù)同步;數(shù)據(jù)通道驗證在該接口參數(shù)下的功能和性能,實現(xiàn)了接口的功能和性能驗證的自動化,大大提高了測試效率,保證測試用例的覆蓋率。該工具適用于多種平臺下的UART和SPI接口驗證。

          本文引用地址:http://www.ex-cimer.com/article/235062.htm

          0 引言

          隨著WLAN的廣泛應(yīng)用,越來越多的芯片廠商投入到WLAN芯片開發(fā)上。因此各種接口的WLAN芯片成為了各大廠商發(fā)展的主要方向。目前主流的接口有:USB,SDIO,UART,SPI等。

          本公司設(shè)計了一款支持多接口、多協(xié)議的無線局域網(wǎng)802.11n(1T1R)的SoC芯片。該SoC芯片集成了SDIO,SPI,UART等接口。為了驗證各個接口是否能夠達(dá)到設(shè)計需求,需要對各個接口進(jìn)行功能、性能和兼容性的測試。所謂接口驗證,是指以接口為測試對象,詳細(xì)測試接口功能和性能。本文中是指UART接口和SPI接口。對于UART接口,需要對接口的波特率、數(shù)據(jù)長度、奇偶校驗位、停止位、流控、異常錯誤等進(jìn)行驗證。對于SPI接口,需要對接口的大小端、工作模式、工作速率等進(jìn)行驗證。

          1 接口單元驗證的必要性

          1.1 接口單元驗證簡介

          如圖1所示,是接口單元驗證的示意圖。測試板有兩個UART接口和一個SPI接口。下位機完成固件部分,也就是直接操作硬件;而上位機完成測試用例管理和接口驅(qū)動兩部分。

          ?

          ?

          1.2 對接口進(jìn)行單元驗證的原因

          (1)驗證接口的功能是否實現(xiàn)。保證設(shè)備能夠正確枚舉,各種配置下數(shù)據(jù)收發(fā)通路暢通。

          (2)對各個接口的性能有一個準(zhǔn)確的把握。有了接口性能數(shù)據(jù)后,可以幫助在系統(tǒng)測試階段定位問題。在系統(tǒng)測試階段,性能瓶頸一方面來自于接口,一方面來自于WiFi。在接口驗證階段獲得這個數(shù)據(jù)后可以幫助分析和定位問題。

          (3)在平臺兼容性測試中,由于平臺的兼容性主要與接口有關(guān),與WiFi無關(guān),如果把兼容性放到系統(tǒng)測試階段去做,無形中增加了定位問題的難度。

          1.3 傳統(tǒng)接口驗證的方法及缺陷

          傳統(tǒng)的驗證方法是將上位機與下位機分離開來。首先上位機修改參數(shù),之后下位機修改參數(shù),編譯固件、運行,上位機與下位機進(jìn)行通信。上位機與下位機之間沒有協(xié)商,直接進(jìn)行通信。以UART接口的功能驗證為例來說明一下接口驗證方法的缺陷。

          UART的功能驗證主要是各種配置下(波特率、數(shù)據(jù)長度、奇偶校驗位、停止位的組合)是否能夠準(zhǔn)確無誤地傳輸數(shù)據(jù)。如果按照這種測試方法的話,測試效率很低。另外一個方面,由于主觀因素的影響,采用手動的方法容易漏測測試用例。

          綜上,傳統(tǒng)接口單元驗證方法的缺陷為:測試效率低;容易漏測測試用例。

          2 接口驗證工具的設(shè)計

          2.1 硬件架構(gòu)

          2.1.1 PC下的硬件結(jié)構(gòu)

          如圖2所示,描述的是PC環(huán)境下的UART接口的驗證硬件結(jié)構(gòu)圖。

          ?

          ?

          其中PCI通過JTAG接口控制測試板,完成固件的下載。PC2與測試板通過UART接口連接,UART0接口是命令接口,主要傳輸PC2對測試板的命令及測試板的響應(yīng);UART1是數(shù)據(jù)接口,主要傳輸PC2和測試板之間的數(shù)據(jù)。

          2.1.2 嵌入式平臺下的硬件結(jié)構(gòu)

          如圖3所示,描述的是嵌入式平臺下UART接口和SPI接口的驗證硬件結(jié)構(gòu)圖。

          ?

          ?

          其中PCI通過JTAG接口控制測試板,完成固件的下載。PC2通過串口控制嵌入式平臺。在驗證UART接口時,連接測試板與嵌入式平臺的兩個UART口,UART0接口是命令接口,主要傳輸嵌入式平臺對測試板的命令及測試板的響應(yīng);UART1是數(shù)據(jù)接口,主要傳輸嵌入式平臺與測試板之間的數(shù)據(jù)。

          在驗證SPI接口時,連接測試板與嵌入式平臺的UART0口及SPI接口。同樣地,UART0是命令接口,主要傳輸嵌入式平臺與測試板的命令傳輸;SPI是數(shù)據(jù)接口,傳輸嵌入式平臺與測試板之間的數(shù)據(jù)。

          2.2 軟件結(jié)構(gòu)

          驗證軟件結(jié)構(gòu)見圖4,其中DUT設(shè)備為驗證的對象。

          ?

          ?

          (1)用例管理層

          主要生成各種測試用例。對于UART接口來說,包括UART波特率、數(shù)據(jù)長度、停止位、奇偶校驗位等屬性組合的設(shè)置及高級設(shè)置項等。

          對于SPI接口來說,主要包括SPI的各種模式、各種時鐘、大小端及上下行數(shù)據(jù)的測試用例的生成。

          (2)配置接口層

          依據(jù)配置程序與驅(qū)動程序命令/事件接口定義完成各種命令的發(fā)送,并做相應(yīng)的事件處理。

          (3)驅(qū)動接口層

          依據(jù)配置程序與驅(qū)動程序命令/事件接口定義對配置程序發(fā)送的命令進(jìn)行解析,同時對硬件的狀態(tài)信息進(jìn)行響應(yīng)。

          (4)硬件接口層

          主要負(fù)責(zé)驅(qū)動與固件接口操作,對DUT設(shè)備進(jìn)行設(shè)置,對DUT進(jìn)行寫命令/數(shù)據(jù),或從DUT設(shè)備獲取狀態(tài)/數(shù)據(jù)信息。

          3 接口驗證工具的實現(xiàn)

          考慮到兼容各個嵌入式平臺(Linux系統(tǒng)),故整個上位機軟件工作在Linux系統(tǒng)下。從圖5可以看出,整個軟件的實現(xiàn)主要由配置程序、驅(qū)動程序及固件3部分組成。本文重點介紹配置程序及驅(qū)動程序部分。

          可控硅相關(guān)文章:可控硅工作原理


          比較器相關(guān)文章:比較器工作原理



          上一頁 1 2 下一頁

          關(guān)鍵詞: UART SPI

          評論


          相關(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); })();