国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于串行通信接口的采樣速率測試方法

2015-12-05 02:02楊萌兮
電子與封裝 2015年2期
關(guān)鍵詞:數(shù)據(jù)位發(fā)送器波特率

張 繼,楊萌兮,謝 達

(中國電子科技集團公司第58研究所,江蘇 無錫 214035)

1 引言

在工業(yè)控制領(lǐng)域,絕大部分DSP/MCU系列產(chǎn)品都包含用于通信的串行接口電路(Serial Communications Interface,SCI),以滿足工業(yè)控制高度集成、高性能解決方案的嚴(yán)格要求。本文提出了一種將串口收/發(fā)送器速率與串口接收器采樣速率配置成一定配比關(guān)系,可以實現(xiàn)用于測試串口接收器的任意幀結(jié)構(gòu)數(shù)據(jù)的方法,以驗證串行通信接口相應(yīng)功能的正確性,提高芯片測試的良品率。

2 SCI控制器

一般DSP芯片都包含至少一個SCI接口,用于支持CPU與其他異步外設(shè)之間使用標(biāo)準(zhǔn)非歸零碼(NRZ)格式的數(shù)字通信。通常每個SCI包含一個波特率發(fā)生器、數(shù)據(jù)發(fā)送器、數(shù)據(jù)接收器以及數(shù)據(jù)存儲映射控制和狀態(tài)寄存器,如圖1所示。

2.1 SCI通信原理

由于SCI是串行異步通信方式,因此在通信過程中每次只能傳輸1位(bit),若干位組成一個數(shù)據(jù)幀(frame),幀是通信中最基本的單元,它主要包括起始位、數(shù)據(jù)位、校驗位(如果使能了數(shù)據(jù)校驗,要包括校驗位)和停止位,幀結(jié)構(gòu)如圖2所示。

圖1 SCI內(nèi)部結(jié)構(gòu)

圖2 SCI數(shù)據(jù)幀格式

SCI在通信之前要在發(fā)送端和接收端約定好幀結(jié)構(gòu),也就是約定好傳輸數(shù)據(jù)幀格式:

(1)起始位:必須包含在數(shù)據(jù)幀中,表示一個幀的開始;(2)數(shù)據(jù)位:可選的1~8位,該位長度可由編程人員指定;(3)校驗位:如果在使能了數(shù)據(jù)校驗時,該位必須指定;(4)停止位:可選的1~2位,該位長度可由編程人員指定。

為了確保數(shù)據(jù)完整性,SCI在中斷檢測錯誤位(BRKDT)、奇偶校驗錯誤位(PE)、過載錯誤位(OE)和組幀錯誤位(FE)方面對接收到的數(shù)據(jù)進行檢查。

2.2 SCI數(shù)據(jù)通信速率

SCI數(shù)據(jù)通信速率指設(shè)備在一秒鐘內(nèi)發(fā)送(或接收)了多少比特的數(shù)據(jù),即傳輸時的波特率。通信雙方在約定好幀格式后,通過指定一個16位波特率選擇寄存器的值(BR),可將波特率設(shè)定為65536個不同的速度。波特率的計算公式如下:

Baud rate =LCLK/[(BR+1)×8],when BR≠0;

Baud rate =LCLK/16,when BR=0。

指定同一波特率,數(shù)據(jù)通信的雙方便可以進行數(shù)據(jù)傳輸了。

2.3 SCI接收采樣速率[1]

在數(shù)據(jù)通信時,每一位的信號占用N個SCI內(nèi)部生成的串行時鐘(SCLK)周期,該內(nèi)部時鐘SCLK的頻率可以通過波特率寄存器(BR)來控制,一般計算公式為:SCLK =LCLK/(BR+1)。SCLK與起始位以及其他數(shù)據(jù)位間的關(guān)系如圖3所示。

圖3 SCI接收器信號采樣

如圖3所示,有效的起始位判別為在串行通信總線拉低后滿足連續(xù)采樣到4個SCLK周期的0位信號,如果有任何一位不為0,則處理器將重新開始尋找其他的起始位。在識別了起始位后,后續(xù)的數(shù)據(jù)位采樣采用多數(shù)仲裁機制:采樣判決信號為采樣數(shù)據(jù)信號的4、5、6位上,且其中滿足有2個或3個為邏輯1,則該位的采樣值判定為邏輯1; 若其中有2個或3個為邏輯0,則該位的采樣值判定為邏輯0。

3 SCI的功能驗證設(shè)計

通過一個功能正確的SCI可以設(shè)計驗證另一個SCI的功能正確性,并且可以量化生產(chǎn)測試,從而提高測試自動化效率。本文的設(shè)計假設(shè)在SCI采樣信號為8個。SCI模塊的功能驗證主要包括:數(shù)據(jù)幀格式驗證、通信速率(即波特率)驗證、數(shù)據(jù)發(fā)送和接收深度驗證、數(shù)據(jù)有效性檢測邏輯驗證以及SCI中斷響應(yīng)驗證等方面。

以上需要驗證的方面,只有通信速率(即波特率)需要實際測算波特率配置,其他都可以通過設(shè)計好的兩兩間相互通信的數(shù)據(jù)來驗證。這些驗證方面的設(shè)計分為通信速率的計算和通信格式的配置。

3.1 SCI功能驗證通信速率計算

SCI功能驗證數(shù)據(jù)格式的設(shè)計本質(zhì)上是要實現(xiàn)輸入特定的測試數(shù)據(jù),通過檢測對應(yīng)的邏輯功能是否工作(即檢測響應(yīng)數(shù)據(jù))。利用SCI來構(gòu)造滿足要求的測試數(shù)據(jù),需要克服SCI通信格式上的束縛,即測試數(shù)據(jù)的格式能夠向下兼容SCI的通信數(shù)據(jù)格式。

在圖3所示的例子中,接收器1位采樣占用8個SCI內(nèi)部時鐘周期,由此可推斷出:只要滿足發(fā)送器的發(fā)送速率Baud rate TX是接收器的接收速率Baud rate RX的8倍,即可滿足測試數(shù)據(jù)的格式能夠向下兼容SCI的通信數(shù)據(jù)格式,即Baud rate TX = 8×Baud rate RX;又由Baud rate公式可知,發(fā)送器的BR TX和接收器BR RX間滿足BR TX+1=(BR RX+1)/8。

3.2 SCI功能驗證通信格式設(shè)計[2]

如前文所述,SCI的數(shù)據(jù)通信格式包括起始位、數(shù)據(jù)位、空閑線模式/地址位模式位、校驗位(如果使能了數(shù)據(jù)校驗,要包括校驗位)和停止位。考慮到校驗位的值與數(shù)據(jù)位以及校驗?zāi)J接嘘P(guān),為了簡化設(shè)計,發(fā)送器采用如下設(shè)計的幀格式:1個起始位為邏輯0,6個數(shù)據(jù)位為邏輯0或邏輯1,不使能校驗位,以及一個停止位為邏輯1。

發(fā)送需要針對3種類型的數(shù)據(jù)位進行設(shè)計約束(也即對發(fā)送數(shù)據(jù)的有效數(shù)據(jù)位進行設(shè)計):起始位配置、接收器邏輯0配置以及接收器邏輯1配置。

3.2.1 起始位配置

在圖3所示的例子中,接收器的起始位判決邏輯在第1、2、3、4位采樣信號上,因此發(fā)送數(shù)據(jù)的第5、6、7、8位對采樣信號的判決沒有影響。且接收器的起始位是邏輯0,因此發(fā)送器的8位數(shù)據(jù)可以配置為:1個起始位為邏輯0,6個數(shù)據(jù)位為邏輯0,不使能校驗位,以及一個停止位為邏輯1,也即配置寄存器SCITXBUF = 0x01。

3.2.2 接收器邏輯0配置

在圖3所示的例子中,接收器的數(shù)據(jù)位判決邏輯在第4、5、6位采樣信號上,因此發(fā)送數(shù)據(jù)的第1、2、3位以及第7、8位對采樣信號的判決沒有影響。發(fā)送端的8位數(shù)據(jù)配置可以配置為:1個起始位為邏輯0, 6個數(shù)據(jù)位為邏輯0,不使能校驗位,以及一個停止位為邏輯1,也即配置寄存器SCITXBUF = 0x00。

3.2.3 接收器邏輯1配置

在圖3所示的例子中,接收器的數(shù)據(jù)位判決邏輯在第4、5、6位采樣信號上,因此發(fā)送數(shù)據(jù)的第1、2、3位以及第7、8位對采樣信號的判決沒有影響。發(fā)送端的8位數(shù)據(jù)配置可以配置為:1個起始位為邏輯0, 6個數(shù)據(jù)位為邏輯1,不使能校驗位,以及一個停止位為邏輯1,也即配置寄存器SCITXBUF= 0x3F。

綜上所述,發(fā)送器發(fā)送起始位數(shù)據(jù)和邏輯0數(shù)據(jù)可以統(tǒng)一采用發(fā)送數(shù)據(jù)SCITXBUF = 0x01。TI針對小數(shù)據(jù)量多機通信而設(shè)計的地址/數(shù)據(jù)識別也只是在接收器端完成的,利用設(shè)計的8倍速率進行數(shù)據(jù)傳輸,同樣可以實現(xiàn)相關(guān)邏輯的驗證,只要配置發(fā)送器的第7位為相應(yīng)的狀態(tài)即可。

4 SCI功能驗證的仿真

在Linux環(huán)境下,利用Candence的NC-Verilog軟件對某款DSP芯片進行仿真。配置好仿真參數(shù)后,加載采用了基于8倍通信速率設(shè)計的測試代碼,對SCI通信模塊進行仿真驗證。設(shè)計實現(xiàn)仿真用的主要配置的偽代碼如下[3]:

在上面的代碼中,前面初始化部分包括SCI的LCLK時鐘配置,GPIO引腳功能復(fù)用配置以及SCI模塊使能等;之后便是配置SCI收發(fā)數(shù)據(jù)的雙方配置為所設(shè)計的幀格式以及相應(yīng)的波特率配置,最重要的配置為幀格式配置寄存器和波特率寄存器的配置,發(fā)送器的波特率配置為1,接收器的波特率配置為15(即0xF),從而滿足公式:BR TX+1 =(BR RX+1)/8。發(fā)送數(shù)據(jù)的高兩位(第7、8位)不會發(fā)送,可以為任意值,代碼中統(tǒng)一配置為1或者0。

配置好軟硬件環(huán)境和代碼后進行仿真,得到仿真實驗結(jié)果如圖4所示。從仿真結(jié)果可以看到,SCI接口A發(fā)送數(shù)據(jù)速率是SCI接口B接收速率的8倍,SCI接口A每發(fā)送8個數(shù)據(jù),對應(yīng)完成SCI接口B接收到的1位數(shù)據(jù);SCI接口A每發(fā)送8位數(shù)據(jù),SCI接口B接收到完整的1幀數(shù)據(jù)。

圖4 仿真實驗結(jié)果

5 結(jié)束語

本文重在如何簡化并快速進行串口模塊的功能驗證,在研究了模塊自身功能特性的基礎(chǔ)上,提出了一種具有一定通用性的設(shè)計思想,即利用通信速率和采樣速率之間的關(guān)系,將串口收/發(fā)送器速率與串口接收器采樣速率配置成一定配比關(guān)系,從而實現(xiàn)用于測試串口接收器的任意幀結(jié)構(gòu)數(shù)據(jù)。

本文的設(shè)計方法的主要思路是:首先,依據(jù)設(shè)計的幀格式應(yīng)該能夠向下兼容SCI的通信格式,即要實現(xiàn)發(fā)送器發(fā)送數(shù)據(jù)可以實現(xiàn)任意所需要接收端測試數(shù)據(jù),從而設(shè)計了通信速率上8倍的關(guān)系;其次,根據(jù)接收器采樣信號的判決位置,設(shè)計了長度為8個位的發(fā)送器數(shù)據(jù)幀結(jié)構(gòu),并選擇了最簡的位配置,定義了用于確定接收器起始位、邏輯0和邏輯1的發(fā)送數(shù)據(jù)。利用所設(shè)計的幀格式配置進行仿真驗證,證明該設(shè)計方法確實可以實現(xiàn)滿足任意要求的測試數(shù)據(jù),并完成了接收數(shù)據(jù)正確性檢驗標(biāo)識(OE、PE、FE、BRKDT)、多處理器通信地址位模式、SCI中斷控制以及16級數(shù)據(jù)緩沖等相關(guān)功能的驗證。

利用該方法,可以簡化對DSP芯片中SCI接口功能的測試設(shè)備要求,從而提高測試自動化效率。

[1] Texas Instruments.TMS320F28335 Digital Signal Controllers (DSCs) Data Manual[P]. 2007.

[2] 張雄偉,等. DSP芯片的原理與開發(fā)應(yīng)用(第二版)[M].北京:電子工業(yè)出版社,2000.

[3] 汪安民,程昱. DSP應(yīng)用開發(fā)實用子程序[M]. 北京:清華大學(xué)出版社,2009.

猜你喜歡
數(shù)據(jù)位發(fā)送器波特率
UART 波特率檢測電路的FPGA 設(shè)計算法與實現(xiàn)
A320飛機大氣數(shù)據(jù)的采集和計算在排故中的應(yīng)用
移頻發(fā)送器冗余切換設(shè)計研究
CAN 總線波特率自適應(yīng)程序設(shè)計
波特率自適應(yīng)的CAN驅(qū)動在嵌入式Linux下的實現(xiàn)①
微弱GPS信號避開比特跳變的捕獲算法
多特征脈沖軌道電路探究
一種適用于FPGA系統(tǒng)中的變速箱電路設(shè)計
詳解lAP15W4K58S4單片機的串行口通信
減少調(diào)度自動化設(shè)備通訊串口丟包率的措施