楊曉剛,強小燕,劉太廣
(中國電子科技集團公司第58研究所,江蘇無錫214035)
?
一種多通道緩沖串口的設(shè)計與實現(xiàn)
楊曉剛,強小燕,劉太廣
(中國電子科技集團公司第58研究所,江蘇無錫214035)
摘要:設(shè)計了一種多通道緩沖串口。在標準串口的功能基礎(chǔ)上,增加了多通道控制邏輯來實現(xiàn)串口分時復用。并且加入數(shù)據(jù)壓縮擴展邏輯,能夠按照a律或者u律格式對數(shù)據(jù)進行壓縮和擴展。邏輯綜合結(jié)果表明,該通信串口具有良好的性能,可廣泛應用于數(shù)字信號處理系統(tǒng)中。
關(guān)鍵詞:多通道;串口;A律;u律
隨著DSP芯片得到越來越廣泛的應用,對DSP通信接口的功能要求也越來越高。串行通信接口能有效減少器件引腳數(shù)[1],并且占用硬件資源少,得到廣泛的關(guān)注和研究[2]。本文設(shè)計的多通道緩沖串口在標準串口基礎(chǔ)功能上,增加了多通道傳輸功能和傳輸數(shù)據(jù)的壓縮擴展功能。多通道數(shù)據(jù)傳輸功能,主要應用在一對多傳輸主串口根據(jù)寄存器的通道配置,將各個從串口所需的數(shù)據(jù)發(fā)送到相應通道上[3]。McBSP同時支持a律算法和u律算法的壓縮擴展[4],能夠按照a律或者u律格式對數(shù)據(jù)進行壓縮和擴展。
2.1發(fā)送器
發(fā)送器模塊完成數(shù)據(jù)從FIFO到DX引腳的串行發(fā)送,中間要經(jīng)過壓縮部件、發(fā)送移位寄存器等以及一些控制邏輯,如圖1所示。FSX作為發(fā)送端的幀同步信號,作為一個數(shù)據(jù)字傳輸開始的標志。FSX經(jīng)過幀檢測邏輯、數(shù)據(jù)延時控制和幀忽略控制3個邏輯之后,產(chǎn)生一個有效的幀同步信號Valid FSX,并維持一個CLKX節(jié)拍。該信號可以啟動字長度計數(shù)器和幀長度計數(shù)器,并將相位標志清零,開始一幀數(shù)據(jù)的發(fā)送。字長度計數(shù)器和幀長度計數(shù)器在Valid FSX有效時開始計數(shù),當字長度計數(shù)器的值與配置的字長相等時,幀長度計數(shù)器加1。當幀長度計數(shù)器的值與配置的幀長相等時,數(shù)據(jù)發(fā)送完畢。
圖1 發(fā)送器數(shù)據(jù)和控制通路
2.2接收器
接收器模塊完成數(shù)據(jù)從DR引腳到DRR寄存器的串行接收,中間要經(jīng)過接收移位寄存器RSR、接收控制邏輯、接收緩沖寄存器RBR、擴展部件、數(shù)據(jù)調(diào)整RJUST等邏輯最終到達數(shù)據(jù)接收寄存器FIFO。FSR作為接收端的幀同步信號,經(jīng)過FSR檢測邏輯、數(shù)據(jù)延時控制和FSR忽略控制3個邏輯之后,產(chǎn)生一個有效的幀同步信號Valid FSR,并維持一個CLKR節(jié)拍。該信號可以啟動字長度計數(shù)器和幀長度計數(shù)器,并將相位標志清零,開始一幀數(shù)據(jù)的發(fā)送。字長度計數(shù)器和幀長度計數(shù)器在Valid FSX有效時,開始計數(shù),當字長度計數(shù)器的值與配置的字長相等時,幀長度計數(shù)器加1。當幀長度計數(shù)器的值與配置的幀長相等時,數(shù)據(jù)接收完畢。
圖2 接收器數(shù)據(jù)和控制通路
多通道操作是通過配置多通道控制寄存器MCR2中的XMCM字段來進行的,XMCM是一個2位的字段,當配置XMCM為一個非零值的時候,在串口的發(fā)送端啟動之后就進行發(fā)送端的多通道操作。多通道操作共有3種模式:
模式一:XMCM=01,在這種模式下,發(fā)送端將禁止所有的通道,默認情況下通道全部屏蔽[5]。需要使用的通道通過使能XP(A/B)BLK和XCERA/B來選擇。這些被選中的通道沒有被屏蔽,因此DX引腳總是被驅(qū)動的。
模式二:XMCM=10,在這種模式下,發(fā)送端的所有通道均被啟用,但被屏蔽[6]。由XP(A/B)BLK和XCERA/B來選擇的通道未被屏蔽。
模式三:XMCM=11,該種模式用于對稱的發(fā)送和接收操作中。在這種模式下禁止所有通道,因而默認為屏蔽。需要使用的通道可以通過使能XP(A/B)BLK 和XCERA/B來選擇。選中的通道可以由RP(A/B)BLK和XCERA/B撤銷屏蔽。
多通道的發(fā)送操作同多通道的接收操作類似,由兩個16位的移位器XDTD_SHIFTER(以下用S2表示)、X_DCDTD_SHIFTER(以下用S3來表示)來控制,移位器中的數(shù)據(jù)代表一個數(shù)據(jù)塊中16個連續(xù)的通道,其輸入信號為XCERA~XCERH,輸出信號為S2、S3經(jīng)過右移操作而輸出的S2<0>、S3<0>信號,如圖3所示。圖3為S2、S3的狀態(tài)變化流程框圖。當串口的發(fā)送端處于復位狀態(tài)時,S2=0FFFFH,S3=0FFFFH。當串口發(fā)送端脫離復位狀態(tài)后,首先判斷發(fā)送多通道模式是否使能,若XMCM1,XMCM0=00b,多通道模式禁止,發(fā)送端為正常情況下發(fā)送操作,此時,S2<0>=0,S3<0>=0;若XMCM1,XMCM0!=00b,表示發(fā)送多通道模式使能。此時MCR2寄存器中的XCBLK字段的值等于0,同接收端的RCBLK字段相同。XCBLK是一個3位的字段(范圍為0~7),表示當前發(fā)送的數(shù)據(jù)在哪個塊中。當當前塊中16個通道中的所有數(shù)據(jù)移完以后,XCBLK加1,直至加到7為止,然后清零,依次循環(huán)下去。
當串口執(zhí)行多通道發(fā)送操作時,首先進行塊0數(shù)據(jù)的發(fā)送(即A區(qū)的0~15通道)。若XPABLK!=00b,說明塊0數(shù)據(jù)被屏蔽,發(fā)送到DX引腳的數(shù)據(jù)處于高阻狀態(tài),等待塊1數(shù)據(jù)的發(fā)送。若XPABLK=00b,說明塊0數(shù)據(jù)可以被發(fā)送。接下來判斷是否為對稱發(fā)送操作模式(模式三),如果是對稱發(fā)送操作,S2=XCERA,S3=RCERA;如果不是對稱操作,S2=XCERA,S3=XCERA,當發(fā)送移位寄存器XSR發(fā)送完一個通道的數(shù)據(jù)字時,S2、S3相應地右移一位,直至16個通道的數(shù)據(jù)全部發(fā)送完畢。如果移出的數(shù)據(jù)S2<0>、S3<0>都為1,說明該通道的數(shù)據(jù)發(fā)送到DX引腳有效;如果移出的數(shù)據(jù)S2<0>、S3<0>不全為1,說明該通道的數(shù)據(jù)被屏蔽,發(fā)送到DX引腳的數(shù)據(jù)無效,處于高阻狀態(tài)。XSR移完塊0數(shù)據(jù)后,將進行塊1數(shù)據(jù)的發(fā)送操作。此時,接收當前塊RCBLK=1,表明接收當前塊為B區(qū)的塊1(即16~31通道)。塊1的發(fā)送操作同塊0的發(fā)送操作相同,首先判斷塊1是否被屏蔽,若屏蔽,等待塊2的發(fā)送;若沒有被屏蔽,則判斷是否為對稱發(fā)送操作,若為對稱發(fā)送操作,S2=XCERB,S3=RCERB;若不是對稱發(fā)送操作,S2=XCERB,S3=XCERB。直至塊7數(shù)據(jù)發(fā)送完畢為止,S2、S3再從塊0開始操作。
4.1壓縮算法邏輯設(shè)計
μ律的壓縮算法的實現(xiàn)如圖4所示。DXR1<15>用作算法中的符號位,DXR1<14:2>用于μ律壓縮算法的數(shù)據(jù)來源。DXR1<14:2>與100001b進行加法運算得到偏置值數(shù)據(jù)Data_biased<12:0>,根據(jù)Data_biased的高8位Data_biased<12:5>的值就可以得到不同的三位段碼值(范圍0~7)和四位量化值。將符號位、三位段碼值和四位量化值進行拼接以后進行取反操作,就得到了μ律壓縮后的數(shù)據(jù)值。因此對于μ律算法的實現(xiàn)只需要一個加法器、一個多路復用器和一次取反操作就可以得到壓縮后的數(shù)據(jù)。
在μ律的壓縮算法中,實際進行μ律壓縮算法的數(shù)據(jù)有14位,為DXR<15:2>,而參加A律算法的數(shù)據(jù)有13位,為DXR<15:3>。如圖4所示為A律壓縮算法的實現(xiàn)。同μ律壓縮算法的實現(xiàn)類似,DXR1<15>用作算法中的符號位,DXR1<14:3>用于A律壓縮算法的數(shù)據(jù)來源Data_Alaw<11:0>,其中,Data_Alaw<11: 5>用于多路復用器的數(shù)據(jù)控制端,根據(jù)Data_Alaw<11:5>就可以得到不同的三位段碼值(范圍0~7)和四位量化值。將符號位、三位段碼值和四位量化值進行拼接以后,為了提高系統(tǒng)的性能,再進行異或操作,就得到了A律壓縮后的數(shù)據(jù)值。同樣,對于A律算法的實現(xiàn)只需要一個加法器、一個多路復用器和一次異或操作就可以得到壓縮后的數(shù)據(jù)。
圖3 多通道設(shè)計流程圖
圖4 壓縮算法實現(xiàn)邏輯
4.2擴展算法邏輯設(shè)計
μ律擴展算法的實現(xiàn)如圖5所示,在TO_EXPAND<15:0>中,TO_EXPAND<15>取反得到符號位Data_sign,TO_EXPAND<6:0>取反后得到實際進行擴展的數(shù)據(jù)Datau_expand<6:0>,而TO_EXPAND<14:7>不用于擴展,被忽略掉。Datau_expand<6:0>作為多路復用器的數(shù)據(jù)控制端,這個多路復用器的輸出與100001b進行減法運算便得到了μ律擴展后的結(jié)果Data_ulaw<11:0>。
圖5的下半部分為A律的擴展邏輯。同μ律擴展的來源相同,A律的擴展來源為TO_EXPAND<15>和TO_EXPAND<6:0>。TO_EXPAND<15>取反得到A律的符號位Data_sign,TO_EXPAND<6:0>經(jīng)異或操作后得到數(shù)據(jù)DataA_expand<6:0>。DataA_expand<6: 0>作為多路復用器的數(shù)據(jù)控制端,這個多路復用器的輸出端取反便得到了μ律擴展后的結(jié)果Data_Alaw<11:0>。
圖5 擴展算法實現(xiàn)邏輯
McBSP功能仿真如圖6所示。在多通道工作模式下,通過寄存器配置,只將第0通道和第2通道使能,McBSP發(fā)送的數(shù)據(jù)只能通過第0通道和第2通道進行發(fā)送。其他通道的從設(shè)備都不能接收到數(shù)據(jù)。在壓縮擴展工作模式下,McBSP發(fā)送器將需要發(fā)送的16位數(shù)據(jù),用a律或u律算法壓縮成8位再將數(shù)據(jù)發(fā)送出去。McBSP接收器則將接收到8位數(shù)據(jù),用a律或u律算法擴展成8位再將數(shù)據(jù)存放到FIFO中去。
設(shè)計采用Synopsys公司的Design Compiler為綜合工具,以TSMC 55 nm工藝庫在最壞情況下對McBSP進行邏輯綜合。當時鐘頻率為200 MHz時,最長路徑延時為7.084 ns,動態(tài)功耗為260.9412 μW,漏流功耗為775.3772 nW。
綜合和仿真結(jié)果表明:整個多通道緩沖串口的設(shè)計滿足DSP處理器對功耗及路徑延時的要求。
本文設(shè)計了一種多通道緩沖串口,并在標準串口的功能基礎(chǔ)上加入了多通道分時復用功能,并且支持a律和u律數(shù)據(jù)壓縮擴展協(xié)議,目前該設(shè)計已成功應用于某32位高端DSP中。
參考文獻:
[1] Simon Srot, SPI master core specification[DB/OL]. http: //www.opencores.org, Rev.0.6, 2007.
[2] Leens F. An introduction to I2C and SPI protocols[J]. IEEEInstrumentation & Measurement Magazine, 2009, 12(1): 8-13.
[3] National Semiconductor Corp. USART IPBrochure[EB/OL]. http://www.ip-extreme.com, 2010.
[4]高騰飛.異步串口通信模塊硬IP核的設(shè)計與驗證[D].成都:電子科技大學,2006.
[5] Patterson D A, Hennessy J L.計算機組成與設(shè)計——硬件與軟件接口[M].北京:機械工業(yè)出版社,2008.
[6] Hennessy J L, Patterson D A.計算機系統(tǒng)結(jié)構(gòu)——量化研究方法[M].北京:電子工業(yè)出版社,2004.
圖6 功能仿真
楊曉剛(1983—),男,江蘇江陰人,碩士,主要研究領(lǐng)域為專用集成電路與系統(tǒng)設(shè)計。
The Design and Implementation of a Multichannel Buffered Serial Port
YANG Xiaogang, QIANG Xiaoyan, LIU Taiguang
(China Electronics Technology Group Corporation No.58 Research Institute, Wuxi 214035,China)
Abstract:The paper designed a multichannel buffered serial port(McBSP). In order to accomplish the achievement of time division of multiplexing(TDM), the design added multichannel controlling logic basis of standard serial port. Additionally, compressing and expanding hardware allows compressing and expansion of data in either u-law or a-law format. The serial port has good performance according to the synthesis result and can be widely used in the digital signal processing(DSP)systems.
Keywords:multichannel; serial port; a-law; u-law
作者簡介:
收稿日期:2015-11-7
中圖分類號:TP302
文獻標識碼:A
文章編號:1681-1070(2016)03-0031-06