999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種DSP高可靠性快速數據傳輸方法的研究*

2014-09-28 01:14:10何航峰鄭步生
電子器件 2014年1期
關鍵詞:方法系統

何航峰,鄭步生

(南京航空航天大學電子信息工程學院,南京210016)

一種DSP高可靠性快速數據傳輸方法的研究*

何航峰,鄭步生*

(南京航空航天大學電子信息工程學院,南京210016)

為了避免DSP串行數據傳輸容易出現數據不同步、誤碼率高的情況,介紹了一種以DSP為核心,通過FPGA/CPLD擴展外設,采取幀同步和CRC校驗的數據傳輸方法。該設計在DSP數據傳輸硬件設計的基礎上,依靠有限狀態機幀同步法和按字節計算CRC,將兩種方法相結合定義新的通信協議,將數據存放于所約定的數據幀中進行傳輸。測試結果表明該方法提高了整個DSP系統的效率、穩定性和安全性,適用于眾多信息量大、高速數據傳輸的場合。

DSP;FPGA/CPLD;數據傳輸;CRC校驗;幀同步

1 系統結構

圖1 系統組成結構框圖

從圖1可以看出,DSP通過外部存儲器接口EMIF與FPGA/CPLD相連,FPGA/CPLD再與串口控制芯片、AD芯片等外部芯片相連。通過配置EMIF和中斷,達到了擴展DSP外部接口的功能;同時FPGA/CPLD又可以兼做數據預處理和緩存設置,從而能緩解DSP的壓力[1,5]。

在軟件運行上,DSP除了完成相關運算工作外,還要處理各種中斷服務。若中斷服務程序占用時間較長,在中斷程序運行時又產生了新的中斷,可能會造成數據的丟失。為了保證數據的可靠性和高速性,需要在通信過程中加入一種通信協議[4-6]。本文定義的通訊協議:將數據以數據幀傳輸,并在其中加入特點規則的同步和校驗。圖2所示的數據幀結構是本文所定義的幀結構,其中幀頭是用于幀同步;幀長度和類型用于簡單判斷;校驗采用CRC校驗來判斷數據是否正確。串口數據傳輸的可靠性主要依據幀頭同步和CRC校驗。

圖2 數據幀結構

采用合適幀頭同步方法和CRC校驗算法,是保證數據可靠性和高速性的關鍵。下文將對這兩種方法的選用進行分析探討。

2 幀頭同步研究

幀頭一般是由一個或多個ASCⅡ字符組成,假定約定的幀頭為兩個字節——“0x11,0xBB”。在串口通信中,常用的幀同步方法有逐次比較法、FIFO隊列法和有限狀態機法。

2.1 逐次比較法

逐次比較法的原理就是將所需數據與約定數據逐一比較,它在編碼、數據采集、數學等領域都有廣泛應用。方法程序流程如圖3所示。

圖3 逐次比較法程序流程

逐次比較法所需代碼量小,編程實現簡單,可以簡單擴展到多字節同步等。但是在串口數據傳輸量大、傳輸速率高的場合,容易出現同步耗時長、很難同步的情況。例如,串口數據接收隊列為0x00、0x55、0x11、0x11、0xBB……,當比較第1個“0x11”時,該方法認為第1個接收字節正確,開始比較第2個接收的字節。第2個字節仍為“0x11”,發現不正確,必須等待新的字節重新比較第1個幀頭,因此會導致幀頭的第1個字節也沒有同步上。事實上,前3個字節“0x00、0x55、0x11”為干擾,“0x11、0xBB”才是幀頭。若同步幀頭前干擾字節比較多,完成幀頭同步所需時間也比較久。

該方法一般適用于以非中斷方式接收串口數據,要求系統對實時性要求低,所傳輸的數據幀短的場合。

2.2 FIFO隊列法

為了改進逐次比較法的缺點,可以進行雙或多字節幀頭比較。根據約定好的幀頭長度,定義一個相同長度的全局字節數組,將數組看成一個FIFO隊列,先進先出存放數據。本文所設計的硬件系統可以選擇具有FIFO緩沖區的串口芯片或者在FPGA/CPLD建立FIFO緩沖區,可用于基于FIFO隊列的幀同步方法。該方法的程序流程如圖4所示。

圖4 FIFO隊列法程序流程

對于前面提到的隊列0x00、0x55、0x11、0x11、0xBB……測試。幀同步隊列中數據依次為:[0xFF、0xFF]→[0x00、0xFF]→[0x55、0x00]→[0x11、0x55]→[0x11、0x11]→[0xBB、0x11]。當檢測出[Head2、Head1]=[0xBB、0x11],已經實現同步。

FIFO隊列法在同步時間和準確性上比逐次比較法好,但是同步過程中需要進行大量的字節搬移,將占用大量內存,尤其是在中斷時,服務程序將在搬運數據上耗費大量時間。

2.3 有限狀態機法

該方法將數據的接收過程分為若干個狀態:接收信息頭Head1狀態、接收信息頭Head2狀態、接收幀長度狀態、接收數據類型狀態、接收數據狀態機及接收校驗狀態,狀態轉移圖如圖5所示。

圖5 有限狀態機轉移圖

對前面提到的隊列 0x00、0x55、0x11、0x11、0xBB……測試。系統的接收狀態依次為Head1→Head1→Head1→Head2→Head2→Length,此時已經是同步狀態。同步后,程序按照協議開始依次接收數據幀長度、命令類型、數據和校驗位。接收完后,重新設置系統接收狀態為Head1。

由于采用了狀態機和消息機制的結構,該設計方法可以快速有效的實現串口幀同步。該方法的程序編寫結構清晰,后期也便于維護。而且,該方法的中斷服務程序所需處理的工作量比較少,處理速度快,緩解了中斷服務程序的壓力。有限狀態機法也是3種方法中更滿足系統設計的需求。

3 CRC校驗

循環冗余碼校驗 CRC(Cyclic Redundancy Check)編碼簡單、誤判概率極低,被廣泛的應用于控制及通信領域。在許多數據傳輸過程中,都需要這種方法對傳輸的數據進行校驗。CRC計算可以依靠專用的硬件來實現,但對于應用DSP作控制或傳輸的系統,可以通過編程的方法完成編碼過程,而無需外加硬件,實現更加靈活,減少硬件負擔和成本[9]。

3.1 CRC校驗原理

假設p位信息碼為P(X),r位CRC碼為R(X)。將信息碼P(X)左移r位得到一個n=p+r的序列XrP(X),那么必然存在一個r位的多項式G(X),將XrP(X)模2除以G(X),得到的余數就是我們需要的r位CRC碼R(X)。數據傳輸時,將R(X)加在P(X)后面進行傳輸,在接收端再次進行CRC校驗,判斷是否有誤碼。如式(1)所示,Q(X)為整數[11-12]。

生成步驟如下:

(1)將X的最高次冪為r的生成多項式G(X)轉換成對應的r+1位二進制序列;

(2)將信息碼左移r位,得到信息序列XrP(X);

(3)用生成多項式對信息序列進行模2除法,得到r位的余數;

(4)將于r位余數拼接到p位信息碼后面,得到n=p+r的傳輸序列。

3.2 快速CRC算法

CRC校驗的設計需要保證其在更短的時間完成更多的校驗,尤其對于實時性要求高的場合,校驗占用過多的時間和內存,將破壞系統數據交互的實時性,加重系統運算負擔。為了提升DSP系統的CRC計算速率,合理利用DSP的內存。本文提出了一種按字節計算的快速CRC算法。

對于一個信息碼P(X)可以表示為式(2),其中Pn為一個字節八位:

按照前面求該序列的CRC碼方法,先左移16位,即乘以216,再除以多項式G(X),如式(3)所示:

設:

將式(4)代入(2)得到:

將Rn(X)分解成高八位RnH8(X)和第八位RnL8(X),式子如下:

Rn(X)·28=[RnH9(X)·28+RnL8(X)]·28(6)將式(6)代入式(5)得:

再設

將式(8)代入式(7),通過類推整理后可得式(9),其中R0(X)便是要求的余數:

通過(9)可以得出結論:計算本字節后的CRC碼等于上一字節余式CRC碼的低8位左移8位,再加上上一字節CRC右移8位和本字節之和所求得的CRC碼。根據該結論,只要計算出一個字節,八位二進制序列的CRC碼,并將它放到表格里面,在計算CRC碼時便可以方便查詢。八位二進制序列的CRC碼為256個,共占用內存512 byte。

傳統的CRC算法多采用按位計算CRC和半字節計算CRC。式(10)為按位計算CRC整理所得式子,式(11)為按半字節計算CRC整理所得式子。

根據(10),對于按位計算CRC可以得出結論:計算本位后的CRC碼等于上一位CRC碼乘以2后除以多項式,所得的余數再加上本位值除以多項式所得的余數。

根據式(11),對于按半字節計算CRC可以得出結論:計算本字節后的CRC碼等于上一字節CRC碼的低12位左移4位后,再加上上一字節余式CRC右移4位和本字節之和后所得的CRC碼。通過這種方法,求解一長序列的CRC碼,其實就是求解4位二進制序列的CRC碼。4位二進制序列的CRC碼為16個,所生成的表格將占用32 byte的內存。

上述3種計算CRC校驗的方法,按位計算CRC代碼簡單,所占用的內存比較少。但同時也帶來了速度問題,一位一位計算CRC,在高速通信或者是信息碼較長的情況下,占用了處理器的太多時間。該算法比較適用于內存小、對時間要求不高的系統。按半字節計算CRC內存占用32 byte,速度較按位計算CRC有明顯的提高。半字節計算CRC比較適用于小內存的系統,它既不會占用太多內存,速度上也有顯著的提高。

對于DSP系統,系統本身的內存比較大,數據的傳輸量也比較大。上面的兩種方法在速度上未能達到數據高速傳輸的要求,而且對系統的內存資源利用率也不高。按字節計算CRC碼在所占用512 byte內存,可以滿足DSP的內存需求。在速度上,該方法較其他兩種方法更加快速,滿足了高速通信的要求。

4 方案實現

本文討論的高可靠性數據傳輸方法在DSP上進行了實現和測試。DSP處理芯片選用TMS320VC5509A,將其工作頻率設置在100 MHz; CPLD選用xilinx的XA2C256,工作頻率設置在144 MHz,通過DSP的外部存儲器接口EMIF和中斷與CPLD連接,以此來擴展DSP的外部接口。將串口控制芯片、AD轉換芯片等通過CPLD與DSP進行連接。在CPLD中設立了FIFO空間用于暫時存放數據,并通過CPLD對數據進行預處理,包括有限狀態機法幀頭同步等。在校驗上采用按字節CRC校驗,利用DSP軟件實現。

測試分為2種:幀頭同步測試和CRC校驗測試。幀頭同步測試:隨機產生1 byte~10 byte的幀頭干擾數據,加在約定的幀頭前,通過串口傳輸到平臺測試幀頭同步。CRC校驗測試:根據本文定義的數據幀,產生50 byte大小的數據幀,將其分為正確數據幀和人為錯誤數據幀,輸入到DSP中進行測試。

在幀頭同步測試上,應用有限狀態機法,程序所需處理的工作量少,經過多次同步試驗,相對于另兩種幀頭同步方法未出現同步錯誤,平均耗時短。

CRC校驗測試結果如表1所示。按字節計算CRC校驗在速度上明顯優于其他兩種算法,DSP也能夠滿足該算法占用512 byte的內存。針對不同的微處理器和系統,可以選擇不同的校驗算法來滿足內存和速度的需求。

表1 CRC校驗測試結果

在本文測試的硬件架構下對于按字節CRC校驗,可以理解為以下幾步:

(1)讀取FIFO中的數據;

(2)查找輸入字節對應的CRC碼;

(3)將新輸入字節的CRC碼與原有的CRC碼相加。

對于C5X系列,一般2個時鐘周期可以完成一個字節的CRC校驗。對于C6X系列,采用Galois域乘法指令,僅需1個時鐘周期便可以完成一個字節的CRC校驗[9-10]。

5 結束語

本文中討論了一種DSP的高可靠性快速數據傳輸方法,硬件采用DSP擴展FPGA/CPLD實現。通過這一硬件方案,解決了DSP本身串口數量少的問題,利用中斷查詢等方法可以擴展到6個~8個串口;像AD等高速數據轉換器可以通過FPGA/ CPLD與DSP進行連接,解決數據寬度時鐘等不匹配問題;FPGA/CPLD可以對數據進行預處理,緩解DSP的運算壓力。

通過有限狀態機法同步和按字節計算CRC法的通信協議,避免了數據傳輸量大、高速情況下容易出線誤碼、干擾碼的情況,確保了數據的可靠性。該協議保證了數據傳輸的高速率,滿足高速傳輸系統的傳輸要求,并且能夠保證傳輸的質量。將該方法稍作修改移植,可以應用于不同的系統。

[1]王永成,黨源源,徐抒巖,等.基于CPLD實現DSP的UART設計[J].電子器件,2008,31(3):1067-1072.

[2]陳文鶴,畢欣,曹云俠,等.FPGA與DSP的雷達數據傳輸接口設計[J].控制工程,2011,18(S1):60-62.

[3]李樂,熊志輝,王斌,等.DSP+FPGA折反射全景視頻處理系統中雙核高速數據通信[J].電子與信息學報,2010,32(3):649-654.

[4]馬秀娟,考麗,趙國良.基于FPGA和DSP的高速數據采集實時處理系統的設計[J].電子器件,2007,30(3):1009-1013.

[5]梁迅,熊水東,姚瓊.基于TMS320C6000 DSP的FIFO—網絡數據傳輸[J].電子器件,2008,31(3):1057-1060.

[6]馮華亮.循環冗余校驗在TMS320C64x+DSP上的高效實現[J].電子技術應用,2008(7):38-40.

[7]羅友寶,李小文,谷向陽.LTE系統的CRC校驗算法研究及DSP實現[J].集成電路應用,2010,36(9):71-73.

[8]汪春梅,孫洪波.TMS320C55x DSP原理及應用[M].電子工業出版社,2011.

[9]呂梅波,張科,趙軍民,等.在DSP中實現高效的CRC算法[J].彈箭與制導學報,2005,25(3):225-227.

[10]成蘭,崔亞量,田原.一種基于TMS320C55x DSP的UART通信設計[J].微計算機信息,2008,24(2):153-155.

[11]Campobello G,Patane G.Parallel CRC Realization[J].IEEE Transaction on Computers,2003,52(10):1312-1319.

[12]Lrvin D R.Cyclic Redundancy Checks with Factorable Generator[J].IEEE.Proc Commun,2003,150(1):179-191.

[13]Chen Z.A Method for DSPAsynchronous Serial Port Expansion Based on TL16C752B[C]//Proceedings of2011 International Conference on Business Management and Electronic Information,2011.

[14]Instruments T.TMS320VC5509A Fixed-Point Digital Signal Processer[M].2008.

[15]胡焰勝,王多,李天陽,等.一種用于DSP芯片的串行通信接口設計[J].計算機工程,2012,38(23):236-239.

[16]Zhangqi X,Kechu Y,Zengji L.A Universal Algorithm for Parallel CRC Computation and Its Implementation[J].Journal of Electronics,2006(4):528-531.

Study on High-Reliability and High-Speed Data Transm ission on DSP*

HE Hangfeng,ZHENG Busheng*
(College of Electronic and Information Engineering,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)

Asynchronous data and high error rate always happen in DSP data transmission.To avoid those problems,data transmission method is designed based on DSP,through FPGA/CPLD expansion peripherals,and taken frame synchronization and CRC.Based on a DSP hardware design,a new communication protocol is defined which depends on finite state frame synchronization and calculated by byte CRC.The data stores in the data frame to transport. Through some tests,themethod can improve the efficiency,stability,security of the DSP system.It also adapts the occasionswhich large amount and high-speed data transfer.

DSP;FPGA/CPLD;data transmission;CRC;communication protocol

隨著科技的發展、應用環境復雜化,對數字信號處理系統的要求也越來越高。特別是在雷達、通信等大型數據處理系統中,數據傳輸量大、處理流程復雜、實時性及傳輸速率要求高[1]。傳統的由單獨DSP構成的數字信號處理系統,其自帶的串口數量有限,難以滿足與多個外設同時進行數據傳輸的需要[2];未經規范的串口數據傳輸,容易出現干擾碼或產生誤碼,從而影響系統的可靠性[9]。因此,對DSP系統與外設之間在數據傳輸的高速且可靠性方面的研究是非常重要的。本文在 DSP與 FPGA/ CPLD硬件架構的基礎上,通過幀頭同步和CRC校驗,來保證數據傳輸的高速且可靠。

TN913 文獻標識碼:A 文章編號:1005-9490(2014)01-0157-05

DSP系統與外部設備進行信息交流時,串口通信是最常用的通訊方式[1],但存在下幾個問題:(1)串口數量,一般DSP自帶的串口為2個~3個,但是現在外設越來越多,往往要求系統擁有3個以上串口;(2)DSP系統通常會遇到高速的數據,但是大部分的高速數據轉換器不能直接與DSP相互連接; (3)一些數據的預處理會增加DSP的負擔[2-4]。

為了克服上述問題,可在硬件上通過 FPGA/ CPLD來擴展DSP的外設,而在軟件上重新定義新的通信協議。本系統組成結構如圖1所示。

項目來源:江蘇高校優勢學科建設工程項目

2013-04-23修改日期:2013-06-04

EEACC:6210

10.3969/j.issn.1005-9490.2014.01.038

何航峰(1988-),男,漢族,浙江慈溪人,南京航空航天大學電子信息工程學院研究生,碩士,主要研究方向為電路與系統,172849190@qq.com;

鄭步生(1961-),男,漢族,江蘇濱海人,南京航空航天大學電子信息工程學院,副教授,主要研究領域為電路與系統、射頻仿真等,bszheng@nuaa.edu.cn。

猜你喜歡
方法系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
學習方法
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 97se亚洲综合在线韩国专区福利| 欧美黄网在线| 久久人妻xunleige无码| 中文字幕无码av专区久久| 免费观看欧美性一级| 国产麻豆永久视频| 激情影院内射美女| 亚洲最大福利视频网| 真人免费一级毛片一区二区| 国产va欧美va在线观看| 日本亚洲最大的色成网站www| 超碰精品无码一区二区| av性天堂网| 精品自窥自偷在线看| 国产在线无码av完整版在线观看| 九九九久久国产精品| 在线人成精品免费视频| 国产成人免费手机在线观看视频| 91在线免费公开视频| 日本精品中文字幕在线不卡| 国产特级毛片aaaaaa| 国产成人综合久久精品尤物| 亚洲区欧美区| 国产一级特黄aa级特黄裸毛片| 免费无码网站| 无码日韩精品91超碰| 天天躁夜夜躁狠狠躁图片| 久久 午夜福利 张柏芝| 国产欧美日本在线观看| 成人韩免费网站| 97在线国产视频| 91系列在线观看| 黄色国产在线| 中文字幕在线永久在线视频2020| 国产一区二区精品福利| 91在线播放免费不卡无毒| 一区二区影院| 欧美成人一区午夜福利在线| 国产精品亚洲片在线va| 91娇喘视频| 亚洲色精品国产一区二区三区| 成人综合网址| 男女性色大片免费网站| WWW丫丫国产成人精品| 99久久精品免费视频| 日本亚洲成高清一区二区三区| 亚洲成a人在线播放www| 国产女人水多毛片18| 69视频国产| 国产交换配偶在线视频| 国产丰满大乳无码免费播放| 亚洲日韩精品欧美中文字幕| 精品国产一区91在线| 伊人久久精品无码麻豆精品 | 亚洲系列无码专区偷窥无码| 亚洲香蕉久久| 日本午夜视频在线观看| 日本高清免费不卡视频| 国产视频只有无码精品| 中文字幕乱码中文乱码51精品| 亚洲欧美激情小说另类| 免费无码网站| 欧美视频在线播放观看免费福利资源| 69精品在线观看| 国产xx在线观看| 国内嫩模私拍精品视频| 国产欧美日本在线观看| 一区二区三区在线不卡免费| 免费人成视频在线观看网站| 婷婷色一二三区波多野衣| 亚洲高清在线天堂精品| 精品久久综合1区2区3区激情| 欧美亚洲国产精品久久蜜芽| 最新加勒比隔壁人妻| 噜噜噜久久| a级毛片网| www.99在线观看| 成人毛片在线播放| 国产精品美女网站| 国产美女91呻吟求| 国产精品久久久免费视频| 波多野结衣亚洲一区|