殷安龍,張持健,陳林,許矛盾
(安徽師范大學安徽蕪湖241000)
基于FPGA的多串口通信設(shè)計與實現(xiàn)
殷安龍,張持健,陳林,許矛盾
(安徽師范大學安徽蕪湖241000)
為了實現(xiàn)PC機同時與多個外設(shè)終端實時進行通信顯示的要求,從而達到PC機對所屬串口設(shè)備的實時監(jiān)測與控制,本文采用基于FPGA和NiOSⅡ軟核的方法開發(fā)出一套多串口通信系統(tǒng)。文章通過以CycloneⅡ系列的EP2C8Q208C8N為MCU設(shè)計電路和Verilog語言描述生成UART IP軟核實現(xiàn)多串口數(shù)據(jù)傳輸至處理器的設(shè)計方案,結(jié)合ModelSim仿真以及串口調(diào)試助手模擬PC機與串口設(shè)備之間通信的試驗。結(jié)果表明,該系統(tǒng)能實現(xiàn)PC機與所屬串口設(shè)備之間的通信,通信準確率高,速度快,具有可行性。
多串口通信;FPGA;軟核
Altera公司自1984年以來,發(fā)明了第一塊FPGA(現(xiàn)場可編程門陣列)芯片,隨著半導體技術(shù)水平的不斷提高,,在單位面積上硅片可以集成更多的晶體管,這使得FPGA價格繼續(xù)下降,性能越來越強大。Altera公司與2000提出的SOPC技術(shù)以及SOPC Builder開發(fā)軟件,其技術(shù)實現(xiàn)了在FPGA上嵌入處理器,利用SOPC來構(gòu)建NiosII軟核處理器,具有控制能力強、靈活裁剪等獨特優(yōu)勢。
由于現(xiàn)代工業(yè)企業(yè)中在線監(jiān)測的日益增長,需要PC機與更多設(shè)備進行通信,串口通信具有實現(xiàn)簡單,使用靈活,數(shù)據(jù)傳輸準確等優(yōu)點,在工業(yè)監(jiān)控和實時監(jiān)控系統(tǒng)中得到了廣泛應用。由于監(jiān)測設(shè)備的增加,PC機原有的串口不能再滿足通信的需求,傳統(tǒng)的設(shè)計方法是使用硬件擴展八個串口,但是額外增加了硬件設(shè)計成本和實際編程的難度。然而FPGA的UART IP可靈活定制的優(yōu)點使得基于FPGA的設(shè)計方法無需額外的硬件串口擴展,減少了硬件開發(fā)調(diào)試的難度,同時滿足串行傳輸?shù)囊?。文中將選擇信號處理和控制能力強的CycloneⅡ系列FPGA來實現(xiàn)PC機與設(shè)備之間的多串口通信。
文中選擇Altera公司的信號處理和控制能力強的CycloneⅡ系列EP2C8Q208C8N FPGA芯片來實現(xiàn)PC機和設(shè)備之間的串行通信,串行端口處理模塊使用對UART進行RS232電平轉(zhuǎn)換的MAX3232芯片,再經(jīng)過9針D型串行接口與設(shè)備以串行數(shù)據(jù)格式通信。
圖1 系統(tǒng)總體框圖
文中提出利用FPGA UART IP實現(xiàn)多串口數(shù)據(jù)傳輸至處理器的設(shè)計方案。方案中,8個UART IP實現(xiàn)8個串口數(shù)據(jù)的接收,傳輸波特率可調(diào),8路并行數(shù)據(jù)合并為1路數(shù)據(jù),串行傳輸至處理器。系統(tǒng)可分為硬件設(shè)計和軟件設(shè)計兩部分:硬件設(shè)計部分包括處理器模塊、串口模塊;軟件設(shè)計部分包括系統(tǒng)啟動代碼實現(xiàn)、多串口通信設(shè)計。
電平轉(zhuǎn)換電路中串口的數(shù)據(jù)在接入至FPGA的引腳之前,需要進行電平轉(zhuǎn)換。利用4片MAX232芯片即可實現(xiàn)8路UART的電平轉(zhuǎn)換,其中2路的電平轉(zhuǎn)換電路圖如圖2所示,其它6路與此類似,不再贅述。
圖2 電平轉(zhuǎn)換電路
3.1UART串口通信模塊
如圖3所示UART串口通信由以下4個模塊組成:發(fā)送模塊(uart_tx)、接收模塊(uart_rx)、接收波特率發(fā)生器(speed_rx)和發(fā)送波特率發(fā)生器(speed_tx),其中,發(fā)送波特率發(fā)生器主要用來產(chǎn)生發(fā)送模塊發(fā)送數(shù)據(jù)時所需的波特率時鐘,接收波特率發(fā)生器主要用來產(chǎn)生接收模塊接收數(shù)據(jù)時的波特率時鐘,發(fā)送模塊主要負責在指定波特率的速率下將待發(fā)送字節(jié)發(fā)送出去,接收模塊則主要負責接收來自其他設(shè)備發(fā)送過來的串口數(shù)據(jù)。
uart_top模塊即串口收發(fā)頂層模塊實現(xiàn)了各個模塊間的信號連接功能,通過該頂層模塊的連接,實現(xiàn)了將串口接收到的數(shù)據(jù)再發(fā)送出去的功能,即我們測試串口通信最常用的一種方式—回環(huán)測試。
圖3 串口通信軟核RTL視圖
3.2UART串口通信ModelSim仿真
串口接收模塊在檢測到數(shù)據(jù)起始位時,rs_int置1,該信號作為啟動串口接收波特率發(fā)送器的控制信號,然后在每個波特率時鐘clk_bps上升沿到來時讀取串口接收端口(rs232_rx)上的數(shù)據(jù)。一幀(字節(jié))數(shù)據(jù)接收完成后,接收中斷信號拉低,停止波特率發(fā)生器工作,接收完成,等待下一次的數(shù)據(jù)到來,由圖4仿真波形圖可以看出接收來自串口的三幀數(shù)據(jù)分別為00、b6、e7。
3.3串口數(shù)據(jù)傳輸測試
接收中斷信號的下降沿也作為串口發(fā)送模塊的發(fā)送使能信號(tx_en置1),使能串口發(fā)送波特率發(fā)生器,串口發(fā)送模塊則在波特率時鐘的上升沿到來時依次將接收模塊接收到的數(shù)據(jù)的每一位依次發(fā)送出去,接收模塊通過串口接收數(shù)據(jù)。如圖5所示,測試時將串口調(diào)試助手的波特率設(shè)定為9600 bps,先以十六進制發(fā)送和接收字節(jié)10、AA、AB、68、69、hi六幀字節(jié),而后發(fā)送和接收字符串a(chǎn)bcdef,發(fā)送和接收數(shù)據(jù)均正確,驗證了串口數(shù)據(jù)正常傳輸。
圖4 串口通信仿真波形
圖5 串口調(diào)試助手發(fā)送接收數(shù)據(jù)圖
文章圍繞著基于FPGA的多串口通信設(shè)計與實現(xiàn)的數(shù)據(jù)傳輸展開研究,根據(jù)通信要求,在系統(tǒng)數(shù)字平臺FPGA上,完成了串口數(shù)據(jù)傳輸?shù)挠布娐吩O(shè)計、UART IP軟核設(shè)計以及串口通信數(shù)據(jù)傳輸?shù)姆抡媾c測試等的實現(xiàn)。
文中提出利用FPGA UART IP實現(xiàn)多串口數(shù)據(jù)傳輸至處理器的設(shè)計方案。在此方案中,8個UART IP實現(xiàn)8個串口數(shù)據(jù)的接收,傳輸波特率可調(diào),8路并行數(shù)據(jù)合并為1路數(shù)據(jù),串行傳輸至處理器。文中一改傳統(tǒng)的串口擴展方案,并沒有使用具有并轉(zhuǎn)串功能的TL16C754芯片將8路并行的UART發(fā)送至處理器,解決多串口通信中硬件電路復雜、成本高、調(diào)試困難等問題,同時從ModelSim仿真波形圖和串口調(diào)試助手測試可以看出,基于FPGA的UART IP串口通信設(shè)計正確快速地實現(xiàn)了8個串口數(shù)據(jù)的傳輸。
[1]SOC FPGA Product Overview Advance Information Brief[M].Altera Corporation,2012.
[2]張明.基于FPGA的UART控制器的多模塊設(shè)計與實現(xiàn)[J].中國科技信息,2006(16):138-140.
[3]劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計與幵發(fā)實例導航[M].北京:人民郵電出版社,2005.
[4]Nios II ProcessorReference Handbook[M].Altera Corporation,2011.
[5]顧仁濤,王強.FPGA設(shè)計開發(fā)與工程實現(xiàn)[M].北京:北京郵電大學出版社,2013.
[6]胡志雄,華澤璽.基于Nios II的多串口轉(zhuǎn)發(fā)通信處理機設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2011(6):44-46.
[7]向樂樂,盧艷娥.基于Nios II的多串口數(shù)據(jù)通信的實現(xiàn)[J].電子設(shè)計工程,2011,19(2):24-26.
[8]QuartusII 9.1 SP1 HandbookVolume 5 UART Core[M].Altera Corporation,2009.
Design and implementation of multi-serial communication based on FPGA
YIN An-long,ZHANG Chi-jian,CHEN Lin,XU Mao-dun
(Anhui Normal University,Wuhu 241000,China)
In order to achieve the computer simultaneously with multiple peripheral terminal display real-time communication requirements,so as to achieve the real-time monitoring and control between the computerand its serial equipments.Based on FPGA and NiOSⅡsoft core,this paper developed a serial communication system.The article using the CycloneⅡseries' EP2C8Q208C8N for the MCU circuit's design and Verilog language to describe the generation UART IP soft-core to achieve theMulti-serialdatatransmissiondesign.CombinedwithModelSimsoftware'ssimulationandserialdebugging assistantsimulation communication between computer and serial devices.The results show that the system can achieve communication between computer and its serial equipments,the communication is High accuracy and speedy,and the system has feasibility.
serial communication;FPGA;soft core
TN911.72
A
1674-6236(2016)17-0045-03
2015-09-01稿件編號:201509004
殷安龍(1990—),男,安徽蕪湖人,碩士研究生。研究方向:嵌入式開發(fā)與智能控制。