• 
    

    
    

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

      一種基于FPGA 對(duì)主從通信的優(yōu)化設(shè)計(jì)

      2021-11-19 09:22黃姣英李勝玉楊達(dá)明
      現(xiàn)代電子技術(shù) 2021年22期
      關(guān)鍵詞:雙口接收數(shù)據(jù)主從

      黃姣英,李勝玉,高 成,楊達(dá)明

      (北京航空航天大學(xué)可靠性與系統(tǒng)工程學(xué)院,北京 100191)

      RS 485 是一種采用差分收發(fā)形式的串行通信標(biāo)準(zhǔn),采用其標(biāo)準(zhǔn)的主從通信具有傳輸距離長(zhǎng)、速度較高、電平兼容性好、使用靈活方便、成本低廉和可靠度高等優(yōu)點(diǎn),并在監(jiān)測(cè)、交通、工業(yè)自控中廣泛應(yīng)用[1-4]。魏金文等人提出了一種基于嵌入式的RS 485 多機(jī)通信方案探究,分析了普通自動(dòng)地址識(shí)別模式通信下存在的隱患和傳輸系統(tǒng)效率低下的原因[5]。鄢濤等提出一種基于FPGA 和外接1 MB SRAM,并采用RS 485 標(biāo)準(zhǔn)的數(shù)據(jù)通信協(xié)議的點(diǎn)對(duì)點(diǎn)傳輸設(shè)計(jì)[6]。劉純提出基于FPGA 的RS 485 主從通信協(xié)議,實(shí)現(xiàn)了點(diǎn)對(duì)多的高速數(shù)據(jù)傳輸[7]。白曦提出一種基于狀態(tài)機(jī)的RS 485 總線的主從通信方法,解決了主從設(shè)備收發(fā)沖突問題[8]。

      本文基于FPGA 在RS 485 主從通信接收端利用串并轉(zhuǎn)換模塊對(duì)數(shù)據(jù)進(jìn)行識(shí)別過濾,采用雙口RAM 替代傳統(tǒng)FIFO,使得上位機(jī)PC 可以靈活讀取緩存數(shù)據(jù)。實(shí)驗(yàn)結(jié)果證明,整個(gè)主從系統(tǒng)傳輸效率得到提升,數(shù)據(jù)接收端每步采用反饋機(jī)制,提高了傳輸系統(tǒng)的可靠性。

      1 數(shù)據(jù)幀格式

      8B/10B 編碼內(nèi)含有一些特殊字符,可用作幀同步字符和其他的分隔符或控制字符,有助于比特流的碼組定位和信息識(shí)別[9-10]。根據(jù)同步高速協(xié)議標(biāo)準(zhǔn)把傳輸幀格式的幀頭定義為8B/10B 編碼中的K28.5 字符“0101111100”,幀尾采用K28.1 字符“1001111100”。在任意數(shù)據(jù)組合中,K28.5 與K28.1 只作為控制字符出現(xiàn),而在數(shù)據(jù)部分不會(huì)出現(xiàn),因此可以有效地避免幀同步的假同步現(xiàn)象,如圖1 所示。

      圖1 幀格式

      Label 可以根據(jù)接收端點(diǎn)個(gè)數(shù)進(jìn)行設(shè)計(jì),本次擬采用2 bit,分別為00,01,10,11。User data 可以根據(jù)用戶自己定義,本次采用7 bit,每個(gè)DATA 都采用1 bit 奇偶校驗(yàn)。為避免傳輸數(shù)據(jù)混亂和傳輸效率低下的現(xiàn)象,發(fā)送端和接收端的DATA 格式統(tǒng)一采用包括Label 和Parity 在內(nèi)的10 bit格式,如圖2 所示。

      圖2 DATA 格式

      2 主從通信方案設(shè)計(jì)

      RS 485 主從通信結(jié)構(gòu)如圖3 所示,發(fā)送端由上位機(jī)PC 下達(dá)數(shù)據(jù)發(fā)送指令到數(shù)據(jù)發(fā)送端FPGA,發(fā)送端與接收端均采用Xilinx 公司的Spartan 6 系列FPGA。串行數(shù)據(jù)通過ADM2582E 集成式隔離數(shù)據(jù)收發(fā)器使得TTL 電平與差分信號(hào)相互轉(zhuǎn)換,最后數(shù)據(jù)由接收端FPGA 接收。接收端上位機(jī)PC 通過基于AU9254A21 的USB 集線器向數(shù)據(jù)接收端FPGA 采集數(shù)據(jù),驗(yàn)證主從通信系統(tǒng)的可靠性和完整性。

      圖3 主從通信結(jié)構(gòu)圖

      2.1 接收端設(shè)計(jì)

      接收端在接收數(shù)據(jù)前需要預(yù)設(shè)置,為達(dá)到高精度采樣,本設(shè)計(jì)以最高系統(tǒng)時(shí)鐘50 MHz 進(jìn)行位同步采樣,高速數(shù)據(jù)傳輸需要進(jìn)行位同步與數(shù)據(jù)幀同步[11]。首先進(jìn)行位同步,接收端把每次在系統(tǒng)時(shí)鐘條件下采樣的數(shù)據(jù)存放在2 個(gè)10 bit 寄存器,當(dāng)filt_data1 寄存器為1 與filt_data2 寄存器為0 時(shí)即證明接收數(shù)據(jù)開始,見圖4。

      圖4 位同步示意圖

      當(dāng)檢測(cè)到位同步時(shí),串并轉(zhuǎn)換模塊向采樣時(shí)鐘模塊傳遞一個(gè)使能啟動(dòng)信號(hào),采樣時(shí)鐘開始對(duì)數(shù)據(jù)進(jìn)行采樣,如圖5 所示。本設(shè)計(jì)采用10 MHz 的采樣時(shí)鐘與數(shù)據(jù)傳輸速率相匹配,在設(shè)置一個(gè)10 bit 移位寄存器條件下,每10 bit 串行數(shù)據(jù)進(jìn)行一次串并轉(zhuǎn)換,當(dāng)該寄存器完整收到編碼中的K28.5 字符“0101111100”時(shí),證明位同步和幀同步已完成。

      圖5 接收端結(jié)構(gòu)圖

      2.2 數(shù)據(jù)識(shí)別功能與雙口RAM 設(shè)計(jì)

      本設(shè)計(jì)把數(shù)據(jù)識(shí)別過濾功能融入到了數(shù)據(jù)串并轉(zhuǎn)換模塊中,首先對(duì)接收到的數(shù)據(jù)進(jìn)行Label 識(shí)別判斷,如果符合本接收端數(shù)據(jù),則轉(zhuǎn)移到雙口RAM;如果不符合,直接對(duì)冗余數(shù)據(jù)進(jìn)行過濾。然后基于狀態(tài)機(jī)設(shè)計(jì)了一種反饋裝置,當(dāng)幀同步檢測(cè)、奇偶校驗(yàn)和雙口RAM 任意一步發(fā)現(xiàn)數(shù)據(jù)錯(cuò)誤即向上位機(jī)報(bào)錯(cuò),中止后續(xù)數(shù)據(jù)傳輸操作,如圖6 所示。數(shù)據(jù)識(shí)別過濾部分代碼如下:

      根據(jù)本次主從通信所傳輸?shù)臄?shù)據(jù)格式可知,基于FPGA 設(shè)計(jì)的雙口RAM 是具有兩套完全獨(dú)立的數(shù)據(jù)線、地址線和讀寫使能線,并允許兩個(gè)獨(dú)立的系統(tǒng)同時(shí)對(duì)其進(jìn)行隨機(jī)性訪問的存儲(chǔ)器,即共享多端口存儲(chǔ)器[12-15]?;贗SE 軟件采用Verilog 語言設(shè)計(jì)的雙口RAM 如圖7所示。上位機(jī)PC 可以通過尋址讀取RAM 里任意數(shù)據(jù),并且整體上讀寫可以同時(shí)進(jìn)行,比傳統(tǒng)FIFO 更具有靈活性。

      圖7 雙口RAM 設(shè)計(jì)圖

      雙口RAM 有兩組輸入、輸出數(shù)據(jù)線(RAM_wr_data& RAM_rd_data);兩組地址(RAM_write_addr &RAM_read_addr);兩 個(gè) 使 能 端(RAM_wr_en &RAM_rd_en),一個(gè)端口只讀,另一個(gè)端口只寫,見表1。

      表1 部分端口注釋表

      3 數(shù)據(jù)分析

      為模擬RS 485 主從通信數(shù)據(jù)傳輸,本文采用Matlab 隨機(jī)函數(shù)y=dec2bin(randi([0,1 023],1 000,1),10)生成一組1 000 個(gè)10 bit 0~1 024 的數(shù)據(jù),最后把生成的隨機(jī)數(shù)據(jù)復(fù)制在上位機(jī)PC 來進(jìn)行總線數(shù)據(jù)傳輸。為進(jìn)一步提供大量實(shí)驗(yàn)樣本,本文利用搭建的主從通信傳輸平臺(tái)完成數(shù)倍于樣本的數(shù)據(jù)并且進(jìn)行100 次傳輸。某次傳輸數(shù)據(jù)仿真如圖8 所示,主發(fā)送端數(shù)據(jù)定義為Uart_Send/Data,從屬接收端識(shí)別寄存器數(shù)據(jù)定義為rx_data,4 個(gè)接收端ram 分別定義為rx_data_r1、rx_data_r2、rx_data_r3 和rx_data_r4。為核算每次傳送數(shù)據(jù)是否存在丟幀現(xiàn)象,本次優(yōu)化設(shè)計(jì)為每個(gè)寄存器配備數(shù)據(jù)計(jì)數(shù)器,分別定義為num2,num3,num4,num5 和num6,誤碼率定義為rxw。

      圖8 RS 485 模塊發(fā)送和接收數(shù)據(jù)仿真圖

      本文隨機(jī)抽取5 組數(shù)據(jù),并與常規(guī)接收端的緩存數(shù)據(jù)進(jìn)行對(duì)比,如表2 所示。

      表2 優(yōu)化設(shè)計(jì)與常規(guī)設(shè)計(jì)緩存數(shù)據(jù)對(duì)比

      由第1 組數(shù)據(jù)可知,常規(guī)型主從通信當(dāng)每個(gè)接收端接收到1 000 個(gè)數(shù)據(jù)時(shí)傳遞給緩存器,本設(shè)計(jì)的第一個(gè)接收端根據(jù)識(shí)別傳遞到RAM 寄存器為241 個(gè)數(shù)據(jù),較常規(guī)優(yōu)化率為75.9%;第二個(gè)RAM 寄存器讀數(shù)為237,較常規(guī)優(yōu)化率為76.3%;第三、四個(gè)較常規(guī)優(yōu)化率依次為74.8%,73.0%。

      由上文可知,在傳輸1 000個(gè)數(shù)據(jù)且接收端為4個(gè)的情況下,本設(shè)計(jì)較常規(guī)型主從通信平均優(yōu)化率為75%。為進(jìn)一步證明本設(shè)計(jì)的優(yōu)化性,實(shí)驗(yàn)又分別采取了1 000,2 000,4 000 和6 000 組數(shù)據(jù)進(jìn)行傳輸,如圖9 所示。通過實(shí)驗(yàn)結(jié)果分析證明,通信優(yōu)化率都達(dá)到了75%。本文設(shè)計(jì)雙口RAM 較傳統(tǒng)FIFO 數(shù)據(jù)讀寫平均有50%的提升,由此可知在具有1 個(gè)數(shù)據(jù)發(fā)射器和4 個(gè)從屬接收器的情況下,本文優(yōu)化設(shè)計(jì)相比常規(guī)型主從通信效率提升了37.5%。

      圖9 優(yōu)化與常規(guī)設(shè)計(jì)接收數(shù)據(jù)對(duì)比圖

      4 結(jié) 語

      常規(guī)基于FPGA 的RS 485 主從通信具有體積小和成本低的特點(diǎn),本優(yōu)化通過對(duì)FPGA 進(jìn)行硬件編碼,相對(duì)于常規(guī)主從通信在數(shù)據(jù)處理方面具有顯著效率提升;數(shù)據(jù)收、發(fā)兩端每步都設(shè)置反饋程序,提高了數(shù)據(jù)傳輸?shù)目煽啃?。?jīng)數(shù)據(jù)分析可得,本優(yōu)化設(shè)計(jì)在從屬接收器數(shù)量越多的情況下數(shù)據(jù)處理效率越高。隨著主從通信設(shè)備硬件的發(fā)展,低成本、高效率和高可靠性仍是用戶的首選,實(shí)驗(yàn)證明,本設(shè)計(jì)在主從通信方面具有較好的應(yīng)用前景。

      猜你喜歡
      雙口接收數(shù)據(jù)主從
      沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
      雙口形式的戴維寧定理在電路分析中的應(yīng)用
      低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
      雙口RAM在機(jī)載嵌入式系統(tǒng)中的應(yīng)用
      FANUC系統(tǒng)PROFIBUS主從功能應(yīng)用
      單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
      基于主從控制的微電網(wǎng)平滑切換控制策略研究
      基于飛行試驗(yàn)數(shù)據(jù)的仿真模型主從一體化檢驗(yàn)
      雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
      雙口RAM在無人機(jī)三余度飛控計(jì)算機(jī)數(shù)據(jù)交換中的應(yīng)用
      蓝山县| 安岳县| 伊宁县| 祥云县| 灵武市| 松江区| 德昌县| 虎林市| 凤城市| 武安市| 卓资县| 卢湾区| 金阳县| 邳州市| 卢湾区| 湖南省| 丹棱县| 华亭县| 徐水县| 泰州市| 龙门县| 晋中市| 滨州市| 阿拉善盟| 隆德县| 德令哈市| 丽江市| 包头市| 饶平县| 盐边县| 平邑县| 宣武区| 武定县| 醴陵市| 金堂县| 门源| 长沙县| 中江县| 吉水县| 大名县| 蓝田县|