91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

電子工程師 ? 來源:現(xiàn)代電子技術(shù)第24期 ? 作者:李欣偉 ? 2021-04-08 09:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

0 引言

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

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

1 接口單元驗(yàn)證的必要性

1.1 接口單元驗(yàn)證簡介

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

o4YBAGBuXCKAA3rjAAAujlG6rSQ997.png

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

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

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

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

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

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

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

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

2 接口驗(yàn)證工具的設(shè)計(jì)

2.1 硬件架構(gòu)

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

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

pIYBAGBuXEaAFUr8AAAgGIpagQs792.png

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

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

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

o4YBAGBuXFOAFNFlAAAueU9pgQM440.png

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

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

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

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

o4YBAGBuXG2AaxO3AABXS0ilrRM452.png

(1)用例管理層

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

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

(2)配置接口層

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

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

依據(jù)配置程序與驅(qū)動程序命令/事件接口定義對配置程序發(fā)送的命令進(jìn)行解析,同時(shí)對硬件的狀態(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 接口驗(yàn)證工具的實(shí)現(xiàn)

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

o4YBAGBuXICABpoVAABFJs2DxtA943.png

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 測試用例的生成

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

pIYBAGBuXJiAD38YAAG4QrfyXk8525.png

本文提出的驗(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)

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

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

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

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

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 UART接口驅(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)行讀取操作的時(shí)候,如果使用的是RAW模式,每個read系統(tǒng)調(diào)用將返回當(dāng)前串行輸入緩沖區(qū)中存在的字節(jié)數(shù)。如果沒有數(shù)據(jù),將會一直阻塞到有字符到達(dá)或者間隔時(shí)鐘到期,或者發(fā)生錯誤此時(shí)可采用異步讀取。所謂異步讀取,指的是先查詢串口,看串口是否可用,直到串口可用了再去讀就可以避免阻塞I/O的問題。

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

(1)SPI概述

SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實(shí)上3根也可以(單向傳輸時(shí)或者硬件復(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í)鐘信號,由主設(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()等。

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

pIYBAGBuXNuAYsNcAACn_NUYcF4090.png

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)測試的自動化。采用該測試工具,一方面提高了測試效率,大大節(jié)約了人力資源,時(shí)間和人力成本節(jié)約了50%以上;另一方面可以保證測試用例100%的覆蓋。

編輯:jq

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

    關(guān)注

    2

    文章

    667

    瀏覽量

    76666
  • PCI
    PCI
    +關(guān)注

    關(guān)注

    5

    文章

    689

    瀏覽量

    134277
  • SoC芯片
    +關(guān)注

    關(guān)注

    2

    文章

    669

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    多協(xié)議可編程USB接口適配器

    多協(xié)議可編程USB接口適配器USB2S,全面支持UART/I2C/SPI/CAN/1-Wire USB2S(USB To Serial ports)是款多功能可編程
    的頭像 發(fā)表于 01-15 14:06 ?178次閱讀
    多協(xié)議可編程USB<b class='flag-5'>接口</b>適配器

    瑞芯微(EASY EAI)RV1126B SPI使用

    1.SPI簡介SPI是串行外設(shè)接口(SerialPeripheralInterface)的縮寫,是Motorola公司推出的一種同步串行接口
    的頭像 發(fā)表于 01-03 14:00 ?1745次閱讀
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>SPI</b>使用

    UARTSPI、I2C 實(shí)戰(zhàn)對比:哪個更適合你的項(xiàng)目?

    在嵌入式開發(fā)中,設(shè)備之間的通信是繞不開的話題。常見的三總線接口——UART、SPI、I2C——各有優(yōu)缺點(diǎn)。不同項(xiàng)目需求決定了選擇哪一種協(xié)議
    的頭像 發(fā)表于 11-24 19:04 ?1171次閱讀
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、I2C 實(shí)戰(zhàn)對比:哪個更適合你的項(xiàng)目?

    SPI、I2C、UART串行總線的區(qū)別與對比

    SPI更為強(qiáng)大,但是技術(shù)上也更加麻煩些,因?yàn)镮2C需要有雙向IO的支持,而且使用上拉電阻,我覺得抗干擾能力較弱,般用于同板卡上芯片之間的通信,較少用于遠(yuǎn)距離通信。SPI
    發(fā)表于 11-20 07:19

    【飛凌OK-T153 開發(fā)板試用】SPI驗(yàn)證

    SPI驗(yàn)證 SPI一種常見的4線接口,常用于外接FLASH/SRAM/TPCM等從片,本開發(fā)板引出
    發(fā)表于 11-16 09:04

    多路UART數(shù)據(jù)轉(zhuǎn)發(fā)芯片 支持1主4從UART接口 UART擴(kuò)展芯片

    UART接口
    穩(wěn)控自動化
    發(fā)布于 :2025年11月13日 13:27:11

    多路UART數(shù)據(jù)轉(zhuǎn)發(fā)芯片 支持1主4從UART接口 UART擴(kuò)展芯片

    多路UART數(shù)據(jù)轉(zhuǎn)發(fā)芯片 支持1主4從UART接口 UART擴(kuò)展芯片 EU104 是款高性能 UART
    的頭像 發(fā)表于 11-12 10:33 ?388次閱讀

    深入剖析SPI協(xié)議

    SPI,全稱(Serial Peripheral interface)是由摩托羅拉公司首先定義的協(xié)議,中文名為串型外圍設(shè)備接口。SPI一種高速全雙工的總線協(xié)議。
    的頭像 發(fā)表于 08-21 15:04 ?4068次閱讀
    深入剖析<b class='flag-5'>SPI</b>協(xié)議

    請問系統(tǒng)編程 (ISP) 工具支持哪些接口進(jìn)行系統(tǒng)升級?

    ISP工具支持多種接口進(jìn)行系統(tǒng)升級,包括UART、USB、I2C、SPI、CAN、RS485、I/O和以太網(wǎng),并提供開源代碼供用戶修改以符合自己的系統(tǒng)環(huán)境。
    發(fā)表于 08-18 07:40

    Analog Devices / Maxim Integrated MAX17851 SPI轉(zhuǎn)UART安全監(jiān)控橋接器數(shù)據(jù)手冊

    Analog Devices MAX17851 SPI轉(zhuǎn)UART安全監(jiān)控橋接器支持具有標(biāo)準(zhǔn)SPI端口的主機(jī)控制器與使用電池管理UART協(xié)議的
    的頭像 發(fā)表于 06-27 15:29 ?866次閱讀
    Analog Devices / Maxim Integrated MAX17851 <b class='flag-5'>SPI</b>轉(zhuǎn)<b class='flag-5'>UART</b>安全監(jiān)控橋接器數(shù)據(jù)手冊

    MAX3100 SPI/MICROWIRE兼容UART技術(shù)手冊

    MAX3100通用異步接收器/發(fā)射器(UART)是專為基于微控制器的小型系統(tǒng)優(yōu)化的較早UART。MAX3100采用SPI?/MICROWIRE?接口與主機(jī)微控制器(μC)通信,采用緊湊
    的頭像 發(fā)表于 05-26 14:31 ?1083次閱讀
    MAX3100 <b class='flag-5'>SPI</b>/MICROWIRE兼容<b class='flag-5'>UART</b>技術(shù)手冊

    ESP32平臺 + SPI接口芯片DM9051ANX實(shí)現(xiàn)以太網(wǎng)通信

    可以利用SPIUART等GPIO較少的硬件接口,作為對外通信,在這里我選用在市場上廣泛被采用且僅4條線通信的SPI接口與以太網(wǎng)進(jìn)行通信。
    發(fā)表于 05-23 10:22

    基于RK3576開發(fā)板的SPI使用說明

    SPI是串行外設(shè)接口(Serial Peripheral Interface)的縮寫,是 Motorola 公司推出的一種同步串行接口技術(shù),是一種
    的頭像 發(fā)表于 05-07 10:31 ?1616次閱讀
    基于RK3576開發(fā)板的<b class='flag-5'>SPI</b>使用說明

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制UART外設(shè)

    1、實(shí)驗(yàn)簡介本實(shí)驗(yàn)將演示如何在小凌派-RK2206開發(fā)板上使用IOT庫的UART接口,進(jìn)行UART編程開發(fā)。例程將創(chuàng)建個任務(wù),通過配置UART
    的頭像 發(fā)表于 04-22 14:22 ?1076次閱讀
    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT<b class='flag-5'>接口</b>控制<b class='flag-5'>UART</b>外設(shè)

    一種基于分?jǐn)?shù)階 PID 直流電機(jī)調(diào)速的 AGV 控制系統(tǒng)

    為設(shè)計(jì)一種低成本、抗干擾、穩(wěn)定可靠的 AGV,提出一種基于磁帶導(dǎo)航的 AGV 系統(tǒng)。采用 Megawin 公司的80C51單片機(jī)為控制核心,以并排對稱設(shè)計(jì)的霍爾傳感器實(shí)現(xiàn)循跡和糾偏,紅外光
    發(fā)表于 03-25 15:10