• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于FPGA+DSP的高速串口通信設(shè)計(jì)

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

      王蕾 李淑婧

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

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

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

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

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

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

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

      FPGA模塊具備處理速度快、邏輯資源密度高等特點(diǎn),在本系統(tǒng)中承擔(dān)數(shù)據(jù)收發(fā)、指令交互、時(shí)序轉(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í)序、存取數(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作為平衡通信接口,可實(shí)現(xiàn)10 Mb/s的傳輸速率。4路RS 422信號經(jīng)過9針D型串行接口通過串口轉(zhuǎn)換器合并連接至PC端機(jī)。

      2 軟件架構(gòu)

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

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

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

      2.2 SLIP封裝協(xié)議

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

      2.3 配置兩個雙口RAM

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

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

      DSP數(shù)據(jù)傳輸至串口通信流程按一包數(shù)據(jù)完成一個進(jìn)程,具體流程如圖4所示。DSP內(nèi)部首先完成數(shù)據(jù)包初始化。在初始化時(shí),將上文提到的SLIP協(xié)議應(yīng)用在組包過程中。DSP發(fā)送數(shù)據(jù)包長度、串并轉(zhuǎn)換使能信號給FPGA,準(zhǔn)備轉(zhuǎn)換。在FPGA中用VHDL編寫的串并轉(zhuǎn)換文件(P2S.VHDL),將DSP控制的串口速率作為時(shí)鐘采樣。FPGA中RAM1的A模塊接收P2S.VHDL文件。A模塊CLKA為DSP配置的高速串口速率,WEA始終為“0”,A模塊始終處于讀狀態(tài)。P2S.VHDL文件每運(yùn)行一次生成10位串行數(shù)據(jù)和并串轉(zhuǎn)換結(jié)束標(biāo)志位。其次,串行數(shù)據(jù)實(shí)時(shí)輸出。而后,并串轉(zhuǎn)換結(jié)束標(biāo)志位控制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ù)完成一個進(jìn)程,具體流程如圖5所示。

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

      2.6 系統(tǒng)設(shè)計(jì)的RTL

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

      3 測試結(jié)果

      3.1 仿真測試結(jié)果

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

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

      3.2 硬件測試結(jié)果

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

      4 結(jié) 語

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

      參考文獻(xiàn)

      [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的北斗兼容型高精度接收機(jī)系統(tǒng)設(shè)計(jì)[J].導(dǎo)航定位學(xué)報(bào),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的多串口通信設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,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ī)的設(shè)計(jì)[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)的設(shè)計(jì)[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ù)與應(yīng)用,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)機(jī)的串口通信協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(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 的串行通訊接口設(shè)計(jì)[J].微處理機(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)的誤碼率計(jì)算方法
      LTE技術(shù)在城市軌道交通信號系統(tǒng)中的應(yīng)用探討
      科技資訊(2020年22期)2020-09-23 08:02:27
      一種高速背板連接器的設(shè)計(jì)
      船舶通信導(dǎo)航技術(shù)及發(fā)展趨勢研究
      基于Qt和Flash的嵌入式Linux軟件架構(gòu)設(shè)計(jì)
      串口通信在智能家居監(jiān)控系統(tǒng)中的應(yīng)用
      基于OpenCV的室內(nèi)照明智能控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      科技視界(2016年13期)2016-06-13 22:01:19
      泰克推出BERTScope誤碼率測試儀
      關(guān)于OTN糾錯前誤碼率隨機(jī)波動問題的分析
      星載干涉合成孔徑雷達(dá)系統(tǒng)的誤碼率指標(biāo)分析
      普安县| 安多县| 汉川市| 顺昌县| 衡水市| 铁岭市| 木里| 商城县| 梅河口市| 望都县| 弥勒县| 陆河县| 浦东新区| 新巴尔虎右旗| 邯郸市| 古丈县| 锡林郭勒盟| 贡山| 嘉峪关市| 普安县| 马尔康县| 石首市| 托里县| 凌云县| 台湾省| 浠水县| 罗平县| 怀宁县| 城固县| 井冈山市| 井陉县| 射阳县| 安岳县| 和顺县| 福州市| 晴隆县| 宣城市| 海口市| 仁寿县| 乳源| 左权县|