亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的串口通信電路設計與實現(xiàn)

        2016-07-23 03:50:24黨俊博李雅俊
        電子科技 2016年7期
        關鍵詞:串口通信通信協(xié)議

        黨俊博,李 哲,李雅俊

        (1. 西安郵電大學 電子工程學院,陜西 西安 710061 ;2. 西安北方捷瑞光電科技有限公司,陜西 西安 710111)

        ?

        基于FPGA的串口通信電路設計與實現(xiàn)

        黨俊博1,李哲1,李雅俊2

        (1. 西安郵電大學 電子工程學院,陜西 西安 710061 ;2. 西安北方捷瑞光電科技有限公司,陜西 西安 710111)

        摘要針對計算機與基于FPGA控制系統(tǒng)需要進行數(shù)據(jù)通信的需求,采用有限狀態(tài)機設計了一種串口通信電路。該電路實現(xiàn)了控制系統(tǒng)與計算機之間的通信,包括計算機發(fā)送給控制系統(tǒng)的控制命令和參數(shù);控制系統(tǒng)發(fā)送到計算機的運行狀態(tài)信息。使用ISE軟件中的嵌入式邏輯分析儀Chipscope對通信電路進行測試,結(jié)果表明,該電路工作穩(wěn)定可靠,能夠完成數(shù)據(jù)傳輸?shù)墓δ堋?/p>

        關鍵詞串口通信;FPGA; UART;通信協(xié)議

        串口以其通信電路簡單、可靠性高和傳輸距離遠等優(yōu)點,廣泛應用在計算機與外設之間的通信電路中。串口通信使用通用異步收發(fā)傳輸器(UniversalAsynchronousReceiverTransmitter,UART)和電平轉(zhuǎn)換芯片進行數(shù)據(jù)傳輸。一般FPGA芯片中沒有集成UART,為使FPGA能進行串口通信,可有兩種選擇:一種是使用UART專用集成芯片,這種方法設計簡單,但會增加電路板的面積和成本;另一種方法是在FPGA內(nèi)部設計UART,這種方法設計靈活,可靠性高。本文提出了一種使用硬件描述語言VerilogHDL設計UART和高層協(xié)議電路的方法,實現(xiàn)了FPGA與計算機之間的數(shù)據(jù)通信。

        1串口通信協(xié)議設計

        通信協(xié)議是指通信雙方的一種約定,對數(shù)據(jù)格式、傳輸速度、校驗方式和字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。串口通信協(xié)議[1-3]采用分層結(jié)構(gòu),分為底層協(xié)議和高層協(xié)議。底層協(xié)議采用標準的UART傳輸協(xié)議,高層協(xié)議定義了數(shù)據(jù)包格式和校驗方式。

        1.1底層協(xié)議

        UART最重要的參數(shù)是波特率、起始位、數(shù)據(jù)位和停止位。UART數(shù)據(jù)格式以低電平為起始位,中間傳送8bit的數(shù)據(jù)位,以高電平為停止位,空閑狀態(tài)為高電平,無奇偶校驗位[4]。

        底層協(xié)議的功能是:發(fā)送數(shù)據(jù)時,將高層協(xié)議電路傳遞過來的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)流,并加入起始位和停止位,按照通信雙方約定的波特率,將數(shù)據(jù)流發(fā)送出去;接收數(shù)據(jù)時,去掉起始位和停止位,將串行數(shù)據(jù)流轉(zhuǎn)換成字節(jié),然后傳遞到高層協(xié)議電路中。

        1.2高層協(xié)議

        定義由FPGA發(fā)送到上位機的數(shù)據(jù)為上行數(shù)據(jù),由上位機發(fā)送到FPGA的數(shù)據(jù)為下行數(shù)據(jù)。

        (1)上行數(shù)據(jù)包。上行數(shù)據(jù)長度固定,數(shù)據(jù)包格式如表1所示。

        表1 上行數(shù)據(jù)包格式

        各字段含義定義如下:

        幀頭:作為數(shù)據(jù)包的起始標志;

        幀序號:參數(shù)的順序號,用以將FPGA中使用的參數(shù)讀回到上位機;

        參數(shù)返回:電路當前使用的參數(shù),每個數(shù)據(jù)包中包含1Byte,多個數(shù)據(jù)包能夠解析出來一組控制參數(shù);

        狀態(tài)信息:設備的運行狀態(tài)信息;

        校驗:采用循環(huán)冗余校驗碼(CRC)進行校驗;

        (2)下行數(shù)據(jù)包。下行數(shù)據(jù)包格式如表2所示。

        表2 下行數(shù)據(jù)包格式

        幀頭和校驗:同上行數(shù)據(jù)包;

        參數(shù)地址:FPGA內(nèi)的數(shù)據(jù)斷電后不能保存,因此將參數(shù)數(shù)據(jù)保存到外部EEPROM中,不同的數(shù)據(jù)包使用不同的地址,參數(shù)地址作為一個數(shù)據(jù)包保存到外部EEPROM的起始地址;

        參數(shù)數(shù)據(jù):控制電路的控制參數(shù)。

        2FPGA電路設計

        串口通信電路包括時鐘產(chǎn)生模塊、發(fā)送通道和接收通道,發(fā)送通道和接收通道各自獨立工作,互不干擾。時鐘產(chǎn)生模塊為發(fā)送通道和接收通道提供時鐘信號。發(fā)送通道主要包括發(fā)送控制狀態(tài)機、數(shù)據(jù)寄存器、移位寄存器、CRC校驗模塊[5-6]和UART發(fā)送模塊[7]。接收通道主要包括接收控制狀態(tài)機、控制參數(shù)寄存器、RAM、EEPROM讀寫控制器[8-9]、CRC校驗模塊和UART接收模塊,整體結(jié)構(gòu)如圖1所示。

        圖1 串口通信電路結(jié)構(gòu)框圖

        2.1串口發(fā)送

        串口發(fā)送電路從功能上可分為UART發(fā)送(底層協(xié)議)和發(fā)送控制(高層協(xié)議)兩大模塊。根據(jù)需要,發(fā)送數(shù)據(jù)包采用周期發(fā)送方式,發(fā)送周期為400Hz,在發(fā)送周期信號的下降沿啟動一個數(shù)據(jù)包的發(fā)送。

        (1)UART發(fā)送模塊。UART發(fā)送模塊由發(fā)送狀態(tài)機、位計數(shù)器、數(shù)據(jù)緩存寄存器和移位寄存器組成,結(jié)構(gòu)示意圖如圖2所示。發(fā)送狀態(tài)轉(zhuǎn)移描述如下:

        IDLE:當byte_ready信號有效后,進入下一狀態(tài);

        DATA_LOAD:在當前狀態(tài),load信號有效,將移位寄存器中的數(shù)據(jù)連同起始位和停止位加載到移位寄存器中,進入數(shù)據(jù)發(fā)送狀態(tài)。

        DATA_TRANS:當bit_count<9時,en信號使能計數(shù)器計數(shù),shift信號使移位寄存器右移,移位寄存器高位填充1,移位寄存器最低位與TxD相連,當bit_count計數(shù)到9時,clear信號有效,bit_count清零,TxD_over信號有效一個周期,狀態(tài)機回到IDLE狀態(tài)。

        圖2 uart發(fā)送結(jié)構(gòu)示意圖

        (2)發(fā)送控制模塊。發(fā)送控制模塊主要由發(fā)送控制狀態(tài)機、移位寄存器、MUX和CRC校驗模塊組成,發(fā)送控制模塊采用狀態(tài)機的方式設計,狀態(tài)轉(zhuǎn)移圖如圖3所示。

        圖3 發(fā)送控制模塊狀態(tài)機

        狀態(tài)描述如下:

        IDLE:當400Hz時鐘信號下降沿到來時,load信號有效,將幀頭連同數(shù)據(jù)按照一定順序加載到移位寄存器中,狀態(tài)機進入數(shù)據(jù)發(fā)送狀態(tài);

        TRANS_CTRL:在發(fā)送狀態(tài),byte_count加1,移位寄存器右移一個字節(jié),byte_ready信號置1,狀態(tài)機進入等待狀態(tài)。當byte_count

        WAITING:當TxD_over信號有效后,狀態(tài)機回到發(fā)送狀態(tài)。

        2.2串口接收

        串口接收由UART接收(底層協(xié)議)和接收控制(高層協(xié)議)模塊組成,實現(xiàn)數(shù)據(jù)的串并轉(zhuǎn)換、CRC校驗以及將參數(shù)數(shù)據(jù)保存到外部EEPROM中的功能。

        (1)UART接收模塊。UART接收電路結(jié)構(gòu)示意圖如圖4所示,主要由接收狀態(tài)機、采樣計數(shù)器(sample_count)、位計數(shù)器(bit_count)、移位寄存器和數(shù)據(jù)緩存等部分組成。接收狀態(tài)機的時鐘頻率是波特率的8倍,當連續(xù)四次采樣RxD均為低電平時,認為是啟動信號,否則認為是噪聲信號。此后,在接收電平的中間時刻,將電平數(shù)據(jù)放入移位寄存器中,每接收一位數(shù)據(jù),采樣計數(shù)器清零一次,位計數(shù)器加1,shift信號有效,移位寄存器右移一次。當位計數(shù)器加到8時,位計數(shù)器清零,load信號有效,將移位寄存器內(nèi)的數(shù)據(jù)放入數(shù)據(jù)緩存區(qū),同時RxD_data_ready信號有效,請求高層電路讀取數(shù)據(jù);

        (2)接收控制模塊。接收控制模塊由接收控制狀態(tài)機、RAM、CRC校驗模塊和EEPROM讀寫控制模塊組成。接收控制模塊采用狀態(tài)機的方式設計,狀態(tài)轉(zhuǎn)移圖如圖5所示。

        圖4 UART接收電路結(jié)構(gòu)示意圖

        圖5 接收控制狀態(tài)轉(zhuǎn)移圖

        INIT:上電復位后,狀態(tài)機在此狀態(tài),然后狀態(tài)機進入讀EEPROM狀態(tài);

        IDLE:當RxD_data_ready信號有效后,若RxD_data=0xA5時,狀態(tài)機進入寫RAM狀態(tài);當需要讀取其他段控制參數(shù)時,狀態(tài)機進入讀EEPROM狀態(tài);

        WRITE_RAM:當接收請求信號有效后,將RxD_data寫入到RAM中,同時對接收的字節(jié)數(shù)進行計數(shù),當byte_count=frame_byte時,狀態(tài)機進入校驗狀態(tài);

        CRC_CHECK:當接收請求信號有效后,接收的RxD_data即為上位機發(fā)送過來的校驗字,將其與內(nèi)部生成的CRC校驗字進行對比,當校驗正確后,狀態(tài)機進入寫EEPROM狀態(tài),否則回到空閑狀態(tài);

        WRITE_EEPROM:將數(shù)據(jù)從RAM中讀出寫入到外部EEPROM中,對寫入的字節(jié)數(shù)進行計數(shù),當byte_count=frame_byte時,狀態(tài)機讀EEPROM狀態(tài);

        READ_EEPROM:從EEPROM中讀出剛寫入的數(shù)據(jù),并將數(shù)據(jù)分配到控制參數(shù)寄存器中,每讀一個字節(jié),byte_count加1,當byte_count=frame_byte時,狀態(tài)機進入空閑狀態(tài)。

        3數(shù)據(jù)傳輸測試

        隨著邏輯電路設計復雜性的不斷增加,僅依靠軟件仿真對硬件電路測試具有較大的局限性。使用ISE集成開發(fā)環(huán)境中的嵌入式邏輯分析儀Chipscope,可將測試電路和設計電路一起下載到目標芯片中[10]。測試電路對設計電路中的數(shù)據(jù)流進行采集,而又不影響設計電路的正常工作,測試數(shù)據(jù)通過JTAG發(fā)送到ISE軟件中以波形的形式顯示出來,這是一種高效的測試方法,能夠較好地對硬件電路進行測試。

        FPGA選用Xilinx的XC3S2000器件[11],該器件具有豐富的邏輯資源和硬件乘法器,能滿足電路的設計需求。將測試電路和設計電路一并下載到FPGA芯片中,計算機端運行上位機軟件和ISE軟件,然后分別對發(fā)送通道和接收通道電路進行測試。圖6為串口發(fā)送通道信號測試波形,圖7是串口接收信號測試波形,圖8是將接收到的數(shù)據(jù)從EEPROM中讀出,然后分配到

        圖6 串口發(fā)送數(shù)據(jù)波形

        圖7 串口接收數(shù)據(jù)波形

        圖8 串口接收數(shù)據(jù)分配波形

        控制參數(shù)寄存器中的波形。測試結(jié)果表明,發(fā)送通道和接收通道功能正常。

        4結(jié)束語

        基于FPGA設計實現(xiàn)的UART和高層協(xié)議電路,可使用較少的邏輯資源實現(xiàn)串口通信的功能,能有效提高系統(tǒng)的可靠性和穩(wěn)定性,減小電路板面積,降低成本,且便于移植在其他FPGA通信電路中。串口通信協(xié)議和電路經(jīng)過嚴格的測試,目前已應用到實際產(chǎn)品中。

        參考文獻

        [1]李煊,丁為.常用設備串口通信協(xié)議及其應用[J].自動化儀表,2011,32(10):82-86.

        [2]馮子陵,俞建新.RS485總線通信協(xié)議的設計與實現(xiàn)[J].計算機工程,2012,38(20):215-218.

        [3]張偉.基于FPGA的通信接口模塊設計與實現(xiàn)[J].電子科技,2012,25(7):95-98.

        [4]楊晶.基于FPGA的UART接口協(xié)議轉(zhuǎn)換模塊設計[D].哈爾濱:哈爾濱工業(yè)大學,2014.

        [5]田佳,王一平.基于FPGA的帶CRC校驗的異步串口通信[J].現(xiàn)代電子技術(shù),2010,33(20):5-7.

        [6]劉春陽.基于FPGA的串行通信實現(xiàn)與CRC校驗[D].北京:北京化工大學,2006.

        [7]楊揚,葉芃,李力.基于FPGA的UART設計與實現(xiàn)[J].電子測量技術(shù),2011(7):80-82.

        [8]黃曉敏,張志杰.基于FPGA的IIC總線IP核設計[J].測試科學與儀器:英文版,2015(1):13-18.

        [9]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航空航天大學出版社,2008.

        [10]萬翔.ChipScopePro在FPGA調(diào)試中的應用[J]. 計算機與網(wǎng)絡,2005(21):58-59.

        [11]XilinxCorpration.Spartan-3FPGAfamilydatasheet[EB/OL]. (2013-06-27)[2015-08-22]http://www.xilinx.com.

        Design and Implementation of Serial Communication Circuits Based on FPGA

        DANGJunbo1,LIZhe1,LIYajun2

        (1.SchoolofElectronicEngineering,Xi’anUniversityofPostsandTelecommunications,Xi’an710061,China;

        2.NorthJieruiPhotoelectricTechnologyLtd.,Xi’an710111,China)

        AbstractA serial communication circuit is designed by finite state machine for the requirement of data communication between computer and control system based on FPGA. The circuit realizes the communication between the control system and the computer, including the control commands and parameters the computer sends to the control system and the status information the control system sends to the computer. The communication circuit is tested by the embedded logic analyzer Chipscope in the ISE software. The results show that the circuit is stable and reliable, and can complete the function of data transmission.

        Keywordsserial communication; FPGA; UART; communication protocol

        收稿日期:2015- 11- 15

        作者簡介:黨俊博(1989-),男,碩士研究生。研究方向:通信電路與系統(tǒng)。李哲(1963-),男,教授。研究方向:嵌入式系統(tǒng)和激光陀螺。

        doi:10.16180/j.cnki.issn1007-7820.2016.07.031

        中圖分類號TN79+1

        文獻標識碼A

        文章編號1007-7820(2016)07-106-04

        猜你喜歡
        串口通信通信協(xié)議
        基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設計
        基于Qt和Flash的嵌入式Linux軟件架構(gòu)設計
        串口通信在智能家居監(jiān)控系統(tǒng)中的應用
        基于OpenCV的室內(nèi)照明智能控制系統(tǒng)設計與實現(xiàn)
        科技視界(2016年13期)2016-06-13 22:01:19
        基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設計與研究
        基于NS-3的PLC多頻通信協(xié)議仿真平臺設計與實現(xiàn)
        電測與儀表(2016年2期)2016-04-12 00:24:52
        RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實現(xiàn)技術(shù)簡介
        亚洲综合欧美色五月俺也去| 男女啪啪无遮挡免费网站| 国产永久免费高清在线| 国产农村妇女毛片精品久久| 欧美第一黄网免费网站| 偷窥村妇洗澡毛毛多| 精品国产午夜久久久久九九| 久久青青草原一区网站| 色噜噜亚洲男人的天堂 | 亚洲一区sm无码| 久久精品国产亚洲AV高清y w| 国产av精选一区二区| 俺去啦最新地址| 76少妇精品导航| 亚洲在战AV极品无码| 国产亚洲精品一区在线| 精品视频无码一区二区三区| 麻豆AⅤ无码不卡| 国产精品国产三级国产一地 | 中文无码免费在线| 九七青青草视频在线观看| 内射人妻少妇无码一本一道| 亚洲最大天堂无码精品区| 一本大道久久精品一本大道久久 | 国产小屁孩cao大人免费视频| 日韩av天堂综合网久久| 亚洲人成自拍网站在线观看| 曰本极品少妇videossexhd| 国产丝袜精品丝袜一区二区| 国产三级精品三级在线专区2| 国产在线精品一区二区中文| 亚洲国产18成人中文字幕久久久久无码av| 久久亚洲精品国产精品婷婷| 中文字幕亚洲乱码熟女1区| 国产女人高潮视频在线观看| 97在线视频免费| 蜜桃视频在线在线观看| 妺妺窝人体色www聚色窝仙踪| 亚洲欧美另类自拍| 日韩熟女精品一区二区三区视频 | 99亚洲男女激情在线观看|