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

?

一種基于FPGA+DSP的高速串口通信設計

2018-08-06 05:54王蕾李淑婧
現(xiàn)代電子技術(shù) 2018年15期
關(guān)鍵詞:串口通信高速率誤碼率

王蕾 李淑婧

摘 要: 介紹一種基于FPGA和DSP、高速串口驅(qū)動芯片、電源芯片、時鐘芯片等硬件結(jié)構(gòu)耦合設計的高速串口通信方法,使用芯片內(nèi)核,通過軟件編程實現(xiàn)高速串口通信平臺。系統(tǒng)通過DSP進行通信數(shù)據(jù)組包、解析、糾錯;FPGA實現(xiàn)高速率設計、串口時序轉(zhuǎn)換、數(shù)據(jù)交互;結(jié)合高速串口驅(qū)動芯片和串口調(diào)試終端實現(xiàn)高速數(shù)據(jù)傳輸。裝置通信速率可達到10 Mb/s,數(shù)據(jù)傳輸可靠性高,在機載和地面設備中可廣泛應用。

關(guān)鍵詞: 高速率; 串口通信; DSP; FPGA; 誤碼率; 可靠性

中圖分類號: TN919.6?34 文獻標識碼: A 文章編號: 1004?373X(2018)15?0022?04

Design of high?speed serial communication based on FPGA and DSP

WANG Lei, LI Shujing

(Laboratory of Ariation Cluster Technology and Operational Application, College of Air Traffic Control and Navigation,

Air Force Engineering University, Xian 710051, China)

Abstract: The high?speed serial communication platform based on the hardware coupling design of DSP and FPGA, high?speed serial driving chip, power supply chip and clock chip is introduced, which is implemented by means of chip kernel and software programming. DSP is used to realize the communication data packaging, parsing and error correction. FPGA is use to realize the high?speed design, serial conversion of timing sequence and data interaction. The high?speed serial driving chip and serial debugging terminal are combined to realize the high?speed data transmission. The transmission speed of the device can reach up to 10 Mb/s, which has high data transmission reliability, and is widely used in airborne and ground equipments.

Keywords: high speed; serial communication; DSP; FPGA; bit error rate; reliability

在數(shù)字通信領(lǐng)域中,串口通信作為一種通用手段,廣泛應用于任務處理機、監(jiān)控臺、模擬器等通信設備中。簡單的低速串口傳輸在實時性要求高、數(shù)據(jù)量大的機載、地面系統(tǒng)進行人機交互的遠程測控中,不能滿足硬件擴展和調(diào)試要求。本文設計了一種基于DSP+FPGA的硬件平臺。DSP芯片具備普通微處理器的運算和控制功能,F(xiàn)PGA芯片發(fā)揮其快速性、設計的靈活性、可移植性、邏輯資源密度高等特點。將兩者功能耦合設計,使用芯片內(nèi)核和相應語言編程,結(jié)合電源芯片、時鐘芯片、高速驅(qū)動芯片等完成串行數(shù)據(jù)高速精準傳輸。

1 高速串口傳輸系統(tǒng)硬件結(jié)構(gòu)

系統(tǒng)硬件架構(gòu)如圖1所示,由電源管理器、時鐘管理器、高速串口驅(qū)動芯片AM26LV31E和AM26LV32E,DSP,F(xiàn)PGA等模塊構(gòu)成,結(jié)合多串口轉(zhuǎn)換器、PC機中的串口控制終端協(xié)同工作。

電源管理器為系統(tǒng)各模塊提供工作電源。外部穩(wěn)壓源輸入系統(tǒng)5 V電壓,由電壓管理器分別生成1.0 V,1.2 V,3.3 V電壓,為DSP,F(xiàn)PGA,AM26LV32E,AM26LV31E等模塊提供工作電壓。

時鐘管理器為系統(tǒng)中各模塊分配工作時鐘,確保系統(tǒng)中DSP和FPGA的工作時鐘穩(wěn)定可靠。

DSP模塊具有高度集成性,具備多種存儲器接口,帶有DMA通道控制器,保證數(shù)據(jù)傳輸和計算處理并行工作,編程方便,容易實現(xiàn),精度高、穩(wěn)定性好、抗干擾能力強等特點,在本系統(tǒng)中承擔運算和控制功能。DSP通過外部存儲器接口EMIFA中的片選線、讀寫使能線、地址線、數(shù)據(jù)線與FPGA模塊連接[1]。在DSP調(diào)試軟件CCS4.2中使用C語言和匯編語言進行編程,實現(xiàn)數(shù)據(jù)組包、解析、糾錯、指令控制等。

FPGA模塊具備處理速度快、邏輯資源密度高等特點,在本系統(tǒng)中承擔數(shù)據(jù)收發(fā)、指令交互、時序轉(zhuǎn)換、數(shù)據(jù)存儲等工作[2]。FPGA的通用輸入輸出引腳分別與DSP模塊、串口驅(qū)動芯片相連[3]。FPGA通過在ISE 14.7開發(fā)環(huán)境中使用VHDL語言編程,在ModelSim SE 10.4中仿真模擬,調(diào)用DCM內(nèi)核、RAM內(nèi)核等資源,生成串并轉(zhuǎn)換時序、存取數(shù)據(jù)、指令收發(fā)、信息交互等。

基本的UART通信需要4條信號線: 接收端RXD±和發(fā)送端TXD±。UART數(shù)據(jù)發(fā)送和接收的幀格式,低位先傳: 第一位為起始位,置“0”,表示通信開始; 最后一位為停止位,置“1”,表示通信結(jié)束[4]。本系統(tǒng)選用TI公司的AM26LV31E和AM26LV32E完成高速串口驅(qū)動。通過芯片使能線和4路數(shù)據(jù)線將FPGA與AM26LV31E模塊、AM26LV32E模塊連接。AM26LV31E支持4路RS 422數(shù)據(jù)發(fā)送單端轉(zhuǎn)差分,最高轉(zhuǎn)換速率為32 MHz,4路共用一組使能控制線。AM26LV32E支持4路RS 422數(shù)據(jù)接收差分轉(zhuǎn)單端,最高轉(zhuǎn)換速率為32 MHz,4路共用一組使能控制線。AM26LV31E模塊接收FPGA發(fā)送的使能信號、4路數(shù)字信號。AM26LV32E模塊接收FPGA發(fā)送的接收使能信號,發(fā)送4路數(shù)字接收信號至FPGA。本系統(tǒng)RS 422作為平衡通信接口,可實現(xiàn)10 Mb/s的傳輸速率。4路RS 422信號經(jīng)過9針D型串行接口通過串口轉(zhuǎn)換器合并連接至PC端機。

2 軟件架構(gòu)

高速串口傳輸系統(tǒng)軟件架構(gòu)如圖2所示。

2.1 高速波特率的實現(xiàn)

針對數(shù)據(jù)傳輸需求,將串口傳輸速率設為可調(diào)模式,包括三檔速率:115.2 Kb/s,1.44 Mb/s,10 Mb/s。在DSP中控制串口速率,F(xiàn)PGA中配置相應的DCM核進行分頻。用不同的波特率控制串口收發(fā)。串口調(diào)試終端按協(xié)議發(fā)送、接收數(shù)據(jù),實現(xiàn)通信交互[5]。

2.2 SLIP封裝協(xié)議

RS 422串口通信采用SLIP封裝協(xié)議。SLIP是一個面向字符的協(xié)議,在每個用戶信息幀的首尾各加一個特殊的標志字節(jié),封裝成為SLIP幀,如圖3所示。標識字節(jié)的編碼為0xC0。 若用戶信息幀中的某一個字節(jié)與0xC0一樣,那么將該字節(jié)更換成0xDB,0xDC。這里的特殊字符0xDB稱為SLIP轉(zhuǎn)義字符。本系統(tǒng)中,在DSP中完成數(shù)據(jù)包封裝和解析。

2.3 配置兩個雙口RAM

為解決數(shù)據(jù)的存取和采樣時鐘不匹配問題,系統(tǒng)使用FPGA內(nèi)部兩個雙口RAM,分為A,B兩個接口模塊[6]。串口數(shù)據(jù)在RAM_A模塊中存儲轉(zhuǎn)換,數(shù)據(jù)8比特位傳輸,地址設置為8位。系統(tǒng)處理數(shù)據(jù)在RAM_B模塊中存儲轉(zhuǎn)換,數(shù)據(jù)16比特位傳輸,地址設置為7位。

2.4 DSP傳輸數(shù)據(jù)至串口通信流程

DSP數(shù)據(jù)傳輸至串口通信流程按一包數(shù)據(jù)完成一個進程,具體流程如圖4所示。DSP內(nèi)部首先完成數(shù)據(jù)包初始化。在初始化時,將上文提到的SLIP協(xié)議應用在組包過程中。DSP發(fā)送數(shù)據(jù)包長度、串并轉(zhuǎn)換使能信號給FPGA,準備轉(zhuǎn)換。在FPGA中用VHDL編寫的串并轉(zhuǎn)換文件(P2S.VHDL),將DSP控制的串口速率作為時鐘采樣。FPGA中RAM1的A模塊接收P2S.VHDL文件。A模塊CLKA為DSP配置的高速串口速率,WEA始終為“0”,A模塊始終處于讀狀態(tài)。P2S.VHDL文件每運行一次生成10位串行數(shù)據(jù)和并串轉(zhuǎn)換結(jié)束標志位。其次,串行數(shù)據(jù)實時輸出。而后,并串轉(zhuǎn)換結(jié)束標志位控制RAM1的A模塊讀地址增加,將讀取的字節(jié)依次輸入P2S.VHDL文件,直至轉(zhuǎn)換完全部數(shù)據(jù)包長度的數(shù)據(jù)。在一包數(shù)據(jù)轉(zhuǎn)換結(jié)束后,F(xiàn)PGA發(fā)送回握手信號。通知DSP一次解析完成,繼續(xù)填充下一包數(shù)據(jù)[7]。

2.5 串口傳輸數(shù)據(jù)至DSP通信流程

串口數(shù)據(jù)傳輸至DSP通信流程按一包數(shù)據(jù)完成一個進程,具體流程如圖5所示。

在FPGA中用VHDL編寫的串并轉(zhuǎn)換文件(S2P.VHDL),將DSP控制的串口速率作為時鐘采樣[8]。FPGA中RAM2的A模塊接S2P.VHDL文件。RAM2的A模塊WEA置“1”,A模塊處于寫狀態(tài)。數(shù)據(jù)從串口調(diào)試終端輸入FPGA 中,S2P.VHDL文件每運行一次生成一個字節(jié)和串并轉(zhuǎn)換結(jié)束標志位。首先,對第一字節(jié)進行有效性判斷。第一字節(jié)為0xC0,代表本包數(shù)據(jù)有效,則進入第二字節(jié)判斷;否則,丟棄本包數(shù)據(jù)。其次,對第二字節(jié)進行數(shù)據(jù)包長度判斷。第二字節(jié)為0x11,0x12,0x13等,解析數(shù)據(jù)包長度具體對應如表1所示。將解析的長度值作為本次填寫RAM2的總長度。同時,RAM2的A模塊ADDRA根據(jù)串并轉(zhuǎn)換進程結(jié)束后生成的標志位進行遞增,依次存儲數(shù)據(jù)。將轉(zhuǎn)換的字節(jié)依次填入RAM2中,直至寫入全部數(shù)據(jù),完成RAM2初始化。此時一包數(shù)據(jù)存儲完成,生成標志位返回DSP中斷。DSP判斷中斷到來進入指令解析步驟[9]。

2.6 系統(tǒng)設計的RTL

系統(tǒng)設計的部分RTL如圖6所示,由串口發(fā)送模塊(rs422_trans)、串口接收模塊(rs422_rec)、波特率發(fā)生器(CLK_GEN)3個模塊組成。其中,波特率發(fā)生器產(chǎn)生可調(diào)的串口采樣時鐘。UART_TOP 模塊即串口收發(fā)頂層模塊實現(xiàn)各模塊間的信號連接。rs422_trans模塊負責數(shù)據(jù)串并轉(zhuǎn)換,rs422_rec模塊負責數(shù)據(jù)并串轉(zhuǎn)換。

3 測試結(jié)果

3.1 仿真測試結(jié)果

本系統(tǒng)在ModelSim 10.1環(huán)境中進行驗證[10]。模擬DSP發(fā)送數(shù)據(jù)并串轉(zhuǎn)換,仿真結(jié)果如圖7所示。當buf_ tx_in輸入為“11110001”時,data_tx_out按時鐘輸出“0,1,0,0,0,1,1,1,1,1”,done_tx在轉(zhuǎn)換結(jié)束后輸出“1”。

模擬串口發(fā)送數(shù)據(jù)串并轉(zhuǎn)換,仿真結(jié)果如圖8所示。當data_tx_in按時鐘輸入“0,0,1,1,1,0,1,1,1,1”,buf_rx_ out輸入為“0xEE”時,done_rx在轉(zhuǎn)換結(jié)束后輸出“1”。

3.2 硬件測試結(jié)果

PC端機中設有串口測試終端。測試軟件在Visual Studio 2010平臺上使用C++語言編程。終端界面負責下達、數(shù)據(jù)收發(fā)檢測、實時狀態(tài)上報、誤碼率判斷等工作。如圖9所示,測試時將波特率設定為10 Mb/s,以十進制發(fā)送數(shù)據(jù)包“123456789”,驗證串口傳輸誤碼率。重復次數(shù)為10 000次時,誤碼率為0。驗證了該通信方法的可靠性。

4 結(jié) 語

本文方法在任務處理機原有的硬件平臺上,以DSP+FPGA為基礎開發(fā),結(jié)合電源管理模塊、時鐘配置模塊、驅(qū)動芯片AM26LV31E和AM26LV32E實現(xiàn)串口高速傳輸功能。重點介紹了系統(tǒng)的硬件設計和軟件架構(gòu)。DSP通過外部存儲器接口EMIFA與FPGA模塊連接,使用C語言和匯編語言編程,實現(xiàn)數(shù)據(jù)組包、解析、糾錯、指令控制等。FPGA的通用輸入輸出引腳分別與其他芯片相連,使用VHDL語言編程,在ModelSim SE 10.4中仿真模擬,設計實現(xiàn)UART協(xié)議電路,使用較少的資源實現(xiàn)高速串口通信,可移植性高。在工程應用中結(jié)合串口調(diào)試終端與PC機通信,實現(xiàn)串口通信無差錯傳輸,速率可達到10 Mb/s。該系統(tǒng)可根據(jù)需求加入數(shù)據(jù)校驗方法,對數(shù)據(jù)包進行加解密保護;可選擇不同的串口速率進行高速、大容量的數(shù)據(jù)傳輸,可靠性和穩(wěn)定性能完備;滿足了實時性要求高、數(shù)據(jù)量大的數(shù)字通信系統(tǒng)通信需求,硬件擴展性強,可靠性高、調(diào)試直觀,可廣泛應用于機載和地面設備中。

參考文獻

[1] 桂江華,邵健,潘邈.一種高可靠串行通信協(xié)議[J].電子與封裝,2016,16(2):40?43.

GUI Jianghua, SHAO Jian, PAN Miao. A high reliable serial communication protocol [J]. Electronics and packaging, 2016, 16(2): 40?43.

[2] 丁毅,趙笑龍,豐偉.基于在線調(diào)試的串口通信協(xié)議測試方法[J].航空電子技術(shù),2016,47(2):30?33.

DING Yi, ZHAO Xiaolong, FENG Wei. Test method of serial port communication protocol based on online debugging [J]. Avionics technology, 2016, 47(2): 30?33.

[3] 蔣欣,蔡明,張偉棟,等.基于FPGA 的可反饋式同步串行通信技術(shù)[J].現(xiàn)代電子技術(shù),2015,38(12):139?142.

JIANG Xin, CAI Ming, ZHANG Weidong, et al. Feedback synchronous serial communication technology based on FPGA [J]. Modern electronics technique, 2015, 38(12): 139?142.

[4] 蔡艷輝,胡銳,程鵬飛,等.一種基于FPGA+DSP的北斗兼容型高精度接收機系統(tǒng)設計[J].導航定位學報,2013,1(2):1?6.

CAI Yanhui, HU Rui, CHENG Pengfei, et al. Design of a Beidou compatible high precision receiver based on FPGA+DSP [J]. Journal of navigation and positioning, 2013, 1(2): 1?6.

[5] 李偉.基于FPGA的多串口通信設計與實現(xiàn)[J].數(shù)字技術(shù)與應用,2015(2):174?175.

LI Wei. Design and implementation of multi?serial port communication based on FPGA [J]. Digital technology and applications, 2015(2): 174?175.

[6] 胡焱.基于FPGA+DSP的數(shù)字中頻收發(fā)機的設計[J].現(xiàn)代電子技術(shù),2016,39(15):78?80.

HU Yan. Design of digital medium frequency transmitter based on FPGA+DSP [J]. Modern electronics technique, 2016, 39(15): 78?80.

[7] 肖凡,馬婭婕,尹首一,等.FPGA 串行通信的視頻疊加系統(tǒng)的設計[J].儀表技術(shù)與傳感器,2016(2):72?75.

XIAO Fan, MA Yajie, YIN Shouyi, et al. Design of video overlay system for FPGA serial communication [J]. Instrument technology and sensors, 2016(2): 72?75.

[8] 王斌,張林,鄧軍,等.一種基于高速串口通信的高效數(shù)據(jù)處理方法[J].自動化技術(shù)與應用,2016,35(6):57?60.

WANG Bin, ZHANG Lin, DENG Jun, et al. A high efficiency data processing method based on high?speed serial port communication [J]. Communications and information processing, 2016, 35(6): 57?60.

[9] 李瑩,賈彬.一種基于狀態(tài)機的串口通信協(xié)議的設計與實現(xiàn)[J].電子設計工程,2012,20(7):100?103.

LI Ying, JIA Bin. A serial port communication protocol based on state machine and its implementation [J]. Electronic design engineering, 2012, 20(7): 100?103.

[10] 王沖,汪寶祥.基于FPGA 的串行通訊接口設計[J].微處理機,2016,37(3):73?76.

WANG Chong, WANG Baoxiang. Design of serial communication interface based on FPGA [J]. Microprocessors, 2016, 37(3): 73?76.

猜你喜歡
串口通信高速率誤碼率
面向通信系統(tǒng)的誤碼率計算方法
LTE技術(shù)在城市軌道交通信號系統(tǒng)中的應用探討
一種高速背板連接器的設計
船舶通信導航技術(shù)及發(fā)展趨勢研究
串口通信在智能家居監(jiān)控系統(tǒng)中的應用
基于OpenCV的室內(nèi)照明智能控制系統(tǒng)設計與實現(xiàn)
泰克推出BERTScope誤碼率測試儀
關(guān)于OTN糾錯前誤碼率隨機波動問題的分析
星載干涉合成孔徑雷達系統(tǒng)的誤碼率指標分析