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

?

多串口并行通信數據傳輸系統(tǒng)設計

2017-03-23 23:16王春媚
現(xiàn)代電子技術 2017年4期
關鍵詞:數據采集

王春媚

摘 要: 傳統(tǒng)多串口并行通信數據傳輸系統(tǒng)無法自主獲取串口號,需手動選擇再打開串口,需要使用者事先了解接口編碼,這無形增加了系統(tǒng)的工作時間。為此,設計一種基于FPGA的多串口并行通信數據傳輸系統(tǒng),該系統(tǒng)中的串口數據接收模塊采集多串口數據,并通過控制寄存器達到控制通信數據波特率的目的。系統(tǒng)利用Nios Ⅱ處理器使8種信道共同進行傳輸工作,其將數據傳輸到并串轉換模塊。并串轉換模塊對輸出的8位并行數據添加通道標識、并串轉換處理,再將處理后的并行數據傳遞到串口輸出選擇模塊中。依據數據脈沖上升沿設計串口輸出選擇模塊,該模塊通過多路分配器將有數據通道的數據串行逐位送出。系統(tǒng)在軟件中進行了傳輸設計、Nios Ⅱ處理器流程設計以及通信設備類的設計與封裝。實驗結果表明,所設計系統(tǒng)在 FPGA上正確實現(xiàn)了8個串口數據的傳輸,并且具有較高的數據接收成功率。

關鍵詞: 多串口; 并行通信; 數據傳輸系統(tǒng); 數據采集

中圖分類號: TN911?34; TP393 文獻標識碼: A 文章編號: 1004?373X(2017)04?0086?05

Design of a data transmission system for multi?serial port parallel communication

WANG Chunmei

(Tianjin Light Industry Vocational Technical College, Tianjin 300350, China)

Abstract: The traditional multi?serial port parallel communication data transmission system is unable to obtain the serial port number autonomously, which means that its users must know the interface code in advance. This increases the working time of the system intangibly. Therefore, a multi?serial port parallel communication data transmission system based on FPGA was designed. In this system, the serial port data receiving module is used to collect the multi?serial port data and control the communication data baud rate through the control register, and the Nios Ⅱ processor is adopted to make eight kinds of channels work together for data transmission to the parallel?serial conversion module. The parallel?serial conversion module adds channel identification to the output 8?bit parallel data, executes the conversion processing. and sends the processed parallel data to the serial port output choosing module. The serial port output choosing module is designed according to the data pulse rising edge. The module sends out the data in each channel bit by bit in serial mode through demux. The transmission system design, the workflow design of Nios Ⅱ processor and communication equipment design and packaging are performed in the software. The experimental results show that the system has realized the data transmission in eight serial ports on the FPGA, and has high success rate of data reception.

Keywords: multi?serial port; parallel communication; data transmission system; data acquisition

0 引 言

隨著計算機技術的迅猛發(fā)展,測試系統(tǒng)的總線技術也得到了一定的提高,人們對計算機與設備的通信能力要求越來越高。串口傳輸技術的出現(xiàn),是實現(xiàn)以上要求的重要發(fā)明[1?4]。傳統(tǒng)多串口并行通信數據傳輸系統(tǒng)無法自主獲取串口號,需手動選擇再打開串口,需要使用者事先了解串口號,大大降低了系統(tǒng)的運行效率。因此,研究出可自主辨識串口號的多串口并行通信數據傳輸系統(tǒng),成為相關人員分析的熱點[5?6]。

文獻[7]通過串行處理方式完成串口數據的并行通信,但是該方式處理長數據幀時,容易出現(xiàn)部分串行口通信數據幀被截斷的問題。文獻[8]通過RTS/CTS硬件流控制串口數據,將串口通信兩端的RTS和CTS線對應相連,數據終端通過RTS調控數據流,數據通信設備用CTS控制計算機的數據流。該方法的缺點是控制過程復雜,效率低。文獻[1]采用XON/OFF完成基于軟件流的多串口并行通信數據傳輸控制,當串口接收端的軟件輸入范圍的數據量高于閾值,則向串口數據發(fā)送端傳遞XOFF字符,發(fā)送端采集到XOFF自發(fā)地后,終止發(fā)送數據;否則,當接收端的數據量低于閾值時,向串口數據發(fā)送端發(fā)送XOF字符,并開始發(fā)送數據。但是該方法用于文本的數據通信,具有較高的局限性。文獻[3]提出一種采用多線程并行的方式,完成多串口并行數據通信的有效控制,但是該方法的控制精度較差,會出現(xiàn)數據幀缺失的問題。針對上述問題,設計基于FPGA的多串口并行通信數據傳輸系統(tǒng)。實驗結果表明,在 FPGA上正確實現(xiàn)了8個串口數據的傳輸,并且具有較高的數據接收成功率。

1 多串口并行通信數據傳輸系統(tǒng)設計與實現(xiàn)

1.1 系統(tǒng)總體設計

基于FPGA的多串口數據傳輸系統(tǒng)包括串口數據接收模塊、并串轉換模塊以及串口輸出選擇模塊,串口數據接收模塊的主要工作內容是電平轉換和數據收發(fā),如圖1所示。系統(tǒng)對串口數據接收模塊的設計,主要進行了電平轉換、UART IP特性參數分析,以及寄存器控制數據波特率的設計;系統(tǒng)對數據并串轉換模塊的設計,主要進行了解析外接信道信號、并串互轉方式和時序模擬設計;系統(tǒng)對串口輸出選擇模塊的設計,主要進行了解析目標信道串口數據以及ModelSim時序仿真,從中可以看出設計的系統(tǒng)實現(xiàn)了多串口數據傳輸的功能,并且串口波特率可調。

通過FPGA UART IP將多串口數據傳遞到DSP處理器中,通過8個UART IP實現(xiàn)了8種串口數據的接收工作,以及通信數據波特率的實時調整,其將8種串口信道中的數據融合成1路數據,串行傳輸到DSP處理器中。通過FPGA完成DSP多串口的拓展工作,簡化系統(tǒng)通信的數據傳輸流程,縮減系統(tǒng)運行成本。

1.2 串口數據接收模塊設計

1.2.1 電平轉換電路設計

串口并行通信數據先通過電平轉換電路實現(xiàn)數據信號轉換,再將數據傳至FPGA 引腳。設計的串口數據接收模塊采用4片 MAX232芯片,完成8路UART的電平轉換,其中的2路電平轉換電路圖,如圖2所示。其他6路與此相似。

1.2.2 NiosⅡ處理器設計

基于FPGA的多串口并行通信數據傳輸系統(tǒng)中的FPGA中NiosⅡ處理器,用于采集數據并將其發(fā)送到計算機,顯控軟件接收數據并存儲。NiosⅡ處理器的組件設計以及如何搭建實現(xiàn)。設計的NiosⅡ處理器架構如圖3所示。

從圖3中可以看出,NiosⅡ處理器包括四種組件,分別為:

(1) NiosⅡ運行μC/OS?Ⅱ所需組件:PLL,CPU,UART,其中的PLL和UART用于系統(tǒng)的調試和信息反饋;

(2) 存儲組件:SRAM Controler,EPCS Controler分別用于控制,系統(tǒng)的易失性存儲器件和非易失性存儲器件。

(3) 以太網組件:TSE是以太網的通信層,SG?DMA用于完成串口數據的傳輸。

(4) 管控組件:停止輸入、輸出PIO串口數據,進而實現(xiàn)對串口數據的管控。

基于上述設計的NiosⅡ處理器,系統(tǒng)利用Altera NiosⅡ UART IP內核實現(xiàn)多串口通信數據的收取。其利用UART IP RXD進行經電平轉換后的串口通信數據的獲取,最后通過移位寄存器將獲取到的數據反饋給rxdata,經由Avalon總線讀取rxdata數據,并將數據傳遞到數據并串轉換模塊中。UART IP核在系統(tǒng)中的應用如圖4所示。

UART IP核寄存器中的rxdata和txdata能夠進行串口通信數據的收發(fā)工作;status主要對數據輸入和讀取進行標識;control管理寄存器,對接收發(fā)送數據時的中斷使能進行管理;divisor寄存器,對串口波特率進行調整。系統(tǒng) NiosⅡ處理器經由多個UART IP進行8種串口信道的傳遞工作,主要將PIO 輸出的通信數據傳輸到并串轉換模塊。

1.3 并串轉換模塊設計

系統(tǒng)利用UART IP中的PIO傳遞出8位串口并行數據(取pio_0_data[7:0]通道為分析對象),這些數據傳遞給并串轉換模塊,該模塊對數據進行通道標識和并串轉換處理,再將處理后的數據傳遞到串口輸出選擇模塊中。并串轉換模塊對串口數據進行通道標識的過程,也就是擴展串口數據pio_0_data到16位,高8位是通道標志,標識第一通道為1,第二通道為2,……,第八通道為8。通過移位寄存器完成16位數據的并串轉換。p2s_u0串口的數據并串轉換RTL視圖如圖5所示,可以看出8′h01被當成首路串口標識賦值在pio_data[15:0]的高8位。

1.4 串口輸出選擇模塊設計

NiosⅡ UART IP 每次接收到串口數據后,會形成對應的脈沖信號,脈沖信號將指引著串口輸出選擇模塊進行工作。每個脈沖信號均會令data_vld產生周期性的電平信號,通常為高電平信號。這是由于Nios Ⅱ為該通道設置了特定的優(yōu)先處理參數,使其在相同情況下僅產生惟一中斷。因此設計多路分配器DSP,逐次輸出存在數據通道的數據串行。DSP 處理器利用其收取到的16位通信數據,進行數據串口的選擇。

2 軟件實現(xiàn)

2.1 μC/OS?Ⅱ多任務執(zhí)行流程設計同通信數據的管控

μC/OS?Ⅱ操作平臺的多方處理能力,使其能夠進行多任務的同時處理,使得CPU在多個程序間進行高速變換,確保各程序在一段時間中獲取多次的CPU占用。在NiosⅡ處理器中嵌入μC/OS?Ⅱ操作系統(tǒng),再在該操作系統(tǒng)中塑造兩個任務:任務Concisee AssociatArchitec Work用于塑造斷開網絡關聯(lián)和數據傳輸管理;任務Concisee AssociatArchitec_trans Work用于發(fā)送串口數據。具體實現(xiàn)過程為:驅動μC/OS?Ⅱ中 UEBegain()函數運行,逐次進行Concisee AssociatArchitec Work任務和Concisee AssociatArchitec_ trans Work 任務的初始化,確保兩個任務并行工作,Concisee AssociatArchitec Work 接收到客戶端的網絡關聯(lián)申請時,連接網絡。

(1) Concisee AssociatArchitec Work獲取客戶端端口網絡指令時,網絡中斷;

(2) Concisee AssociatArchitec Work 獲取客戶端終止發(fā)送指令時,RAM無法進行寫操作,停止串口數據發(fā)送;

(3) Concisee AssociatArchitec Work 采集客戶端發(fā)送串口數據指令后,RAM進行數據的寫操作,若RAM寫入31 543個數據,此時的輸入中斷將移動至脈沖信號的攀升處,調用UEEin Post()進程令數據數量自動傳送出去,Concisee AssociatArchitec_trans Work中UEEin Sinre()函數發(fā)現(xiàn)該信號量后,開始發(fā)送數據,完成全部數據的發(fā)送后,驅動UEEin Glv()函數過濾信號量,接收后續(xù)脈沖沿形成的信號量,上述過程不斷運行,完成串口數據的發(fā)送。

NiosⅡ處理器中融入μC/OS?Ⅱ的工作流程以及串口數據發(fā)送控制過程,如圖6所示。

2.2 通信設備設計和其封裝技術

系統(tǒng)利用Pcomm數據庫對通信設備進行設計,并根據其載入和封裝技術,將其分為串口和設備兩種類型。串口類型能夠進行串口的開啟、封閉以及通信數據的預設工作。

設備類型則能夠將多串口的收發(fā)特點一一分析出并存儲,隨即對其進行編譯和解編譯,CALLBACK函數能夠實現(xiàn)這一操作的調用。

圖6 Nios Ⅱ處理器的工作流程

軟件為串口類型設計的語言如下:

# include"P"

# Circumscription G_ins G_Subscriber+1

classGMoniaIInterface :common MSoe{

common :

int BaudRate,Parity,Amount symbol acters ,StopAmount ,Interface BKU; //串口號和通信參數

Int Kossymbol BKU,iKosAmount ;

//需要接收的字符數和實際的接收字符數

symbol Kosesymbol ;symbol *InBuf;

//接收的終止字符和接收字符串指針

urreKKceRunFlag; //串口打開標識

MSoe* m_phold; //父窗口指針

GMon iaIInterface ();

fiction ?PSerial Interface () ;

remove GMonial Interface *pComArray[10];

remove int Com BKU;

int RunStation (MSoe* pInterface hold,useless(Rreceive *Koseinterrupt request)(int nozzle )); //將串口開啟

null cease Por(); //將串口封閉

null WriteToInterface (CSymbol Uis OutBuf); //寫串口

remove useless Rreceive Teminterrupt request (int nozzle );

//將串口數據讀取出來

null UisBaud(int baud,record,cease,parity);

//設定串口參數

useless UisKosesymbol (symbol BKU){Kose symbol =BKU;}

useless UisKossymbol BKU(int BKU){Kossymbol BKU=BKU;} };

設備類實現(xiàn)代碼如下:

class Element INS:common MSoe{

common :

Dev iceINS();

fiction ?Element INS();

CSymbol Uis Out Cache ,In Cache ;

PSerialInterface Com;

useless Mlcinge(useless){//編碼函數};

useless PctMlcinge(useless){//解碼函數};

useless Imitation (useless){//模擬函數};

};

設備初始化和數據通信控制代碼如下:

urreCPseriaIInterface View::OnKKceunication(LPARAM Interface ){

CPserial Interface Doc* uMre=GetDocument();

If(Interface ==uMre?>ume3.Com.GetInterface BKU()){

uMre?>ume3.In Cache .Empty();

for(int i=0;iume3.Com.Kossymbol BKU;i++)

//數據轉移

uMre?>ume3.In Cache +=BYTE(uMre?>ume3.Com.InBuf[i]);

uMre?>ume3.PctMlcinge(); //數據解碼

}return 0;

}

根據上述語言為多串口構建模型,假設該模型是設備類型內的重要組成變量,將文本的初始數據納入到文本模型和串口通信中,并引用上述語言預設串口通信傳輸類型,進而開啟模型入口,并塑造相應的線程;采用CALLBACK語言對所構建的設備類型模型中的線程進行整理和控制,進而實現(xiàn)多串口并行通信數據的通信處理。

3 實驗分析

實驗在計算機USB接口上連接了UART轉換器,并參考說明對其進行啟動,當UART轉換器亮起綠燈,則代表模型已完成構建。令UART轉換器的信號總線短路,排除外部信號干擾,實現(xiàn)傳輸信號的自動收發(fā)。利用本文所設計的基于FPGA的多串口并行通信數據傳輸系統(tǒng)在上述模型中進行工作,UART轉換器的面板燈的亮滅,代表本文系統(tǒng)的工作狀態(tài)是否正常。利用UART轉換器的串口號,設置合理的比特率、校驗位和停止位,并向發(fā)送區(qū)輸入一周期的正弦數據,按下發(fā)送數據鍵,接收數據區(qū)會呈現(xiàn)發(fā)送的正弦波形,同時隨著時間的變化而進行平穩(wěn)移動,直至按下終止鍵。自發(fā)自收情況下的系統(tǒng)檢測結果如圖7所示。用本文設計的基于FPGA的多串口并行通信數據傳輸系統(tǒng)獲取的結果如圖8所示。

對比分析圖7和圖8能夠看出,本文系統(tǒng)檢測到的串口通信數據與正常運行狀態(tài)下的輸出數據無較大差別,證明本文系統(tǒng)是有效的。實驗解析了本文系統(tǒng)中兩個驗證標準,分別為數據接收的時間延遲以及其成功率。利用多串口將通信數據從各并列系統(tǒng)向終端傳輸,必然會引起數據接收的時間延遲,且不同系統(tǒng)的延遲時間狀態(tài)均不一致。把接收數據的終端時間減去并列系統(tǒng)的時間延遲時間,即可得到延遲時間(稱作“延時值”);數據接收的成功率則用終端接收數據的有效量與并列系統(tǒng)總數據量相比表示。

實驗選取12 m長的串口線,該串口線的收據發(fā)送頻率高達15 Hz,通信中的數據波特率是1 029 622 b/s。通過多次長時間實驗,實驗獲取本文方法和多線程并行方法的相關數據分析結果,如圖9和圖10所示。

分析圖9和圖10可得,相對于多線程并行方法,本文方法具有較低的通信延時和較高的數據接收成功率,能夠實現(xiàn)串口數據的可靠通信。

4 結 論

本文設計基于FPGA的多串口并行通信數據傳輸系統(tǒng),該系統(tǒng)中的串口數據接收模塊采集多串口數據,并通過控制寄存器達到控制通信數據波特率的目的。系統(tǒng)利用NiosⅡ處理器使8種信道共同進行傳輸工作,其將數據傳輸到并串轉換模塊。并串轉換模塊對輸出的8位并行數據添加通道標識、并串轉換處理,再將處理后的并行數據傳遞到串口輸出選擇模塊中。依據數據脈沖上升沿設計串口輸出選擇模塊,該模塊通過多路分配器將有數據通道的數據串行逐位送出。系統(tǒng)在軟件中進行了傳輸設計、NiosⅡ處理器流程設計以及通信設備類的設計與封裝過程。實驗結果表明,在 FPGA上正確實現(xiàn)了8個串口數據的傳輸,并且具有較高的數據接收成功率。

參考文獻

[1] 唐普英,謝啟.基于LabVIEW的多串口通信及數據存儲的研究與實現(xiàn)[J].實驗室研究與探索,2015,34(8):93?97.

[2] 侯志偉,安麗霞,包理群,等.片上雙核數據并行采集及核間通信研究[J].計算機工程,2015,41(5):83?88.

[3] 李曉,李芮,王志斌,等.基于DSP和FPGA的CAN總線通信系統(tǒng)設計[J].計算機測量與控制,2015,23(1):284?286.

[4] 璩金超,周勍.基于XPC目標的數據并行實時通信[J].測控技術,2014,33(2):46?48.

[5] 郭黎利,王百川,孫志國,等.并行組合擴頻通信系統(tǒng)變換域干擾抑制技術研究[J].遙測遙控,2015,36(1):30?35.

[6] 張庭園,李俊,李小兵,等.基于VBLAST系統(tǒng)的并行圖像傳輸策略優(yōu)化[J].重慶郵電大學學報(自然科學版),2014,26(4):488?493.

[7] 崔蔚,周力,吳凱峰,等.基于Hadoop平臺的并行線損分析系統(tǒng)研究與實現(xiàn)[J].電力信息與通信技術,2014,12(2):60?63.

[8] 霍菁,雷曉鳳,李強,等.支持異構集群并行的高能物理數據處理系統(tǒng)[J].計算機工程,2015,41(1):1?5.

猜你喜歡
數據采集
CAN總線通信技術在電梯監(jiān)控系統(tǒng)中的應用
基于AVR單片機的SPI接口設計與實現(xiàn)
CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應用
大數據時代高校數據管理的思考
基于廣播模式的數據實時采集與處理系統(tǒng)
通用Web表單數據采集系統(tǒng)的設計與實現(xiàn)
基于開源系統(tǒng)的綜合業(yè)務數據采集系統(tǒng)的開發(fā)研究
大數據時代的管理會計