王 鵬, 張士輝, 琚 靜
(甘肅交通職業技術學院 信息工程系, 甘肅 蘭州 730070)
職業技術教育
基于FPGA的VME總線多串口實驗設計
王 鵬, 張士輝, 琚 靜
(甘肅交通職業技術學院 信息工程系, 甘肅 蘭州 730070)
將現場可編程門陣列技術與VME總線技術相結合,運用VHDL語言編程實現多波特率、多數據位、多停止位的多種類別、不同數量的串口,有益于培養學生的知識應用能力,提高工程實踐能力,全面掌握串行通信技術。這種實驗設計方式有效地實現了教學內容與生產現場實際需求的對接,擴展了實踐教學的深度與廣度。
多串口實驗; 實驗教學; FPGA; VME
串行通信接口因具有支持多種通信協議、傳輸距離遠、抗干擾性強等特點在工業控制領域得到了廣泛應用。在高等職業教育的“微機原理與接口技術”和“單片機原理及接口技術”課程教材中,只涉及到單一的串行通信模式。然而在實際的工業應用中,現場通常需要有多個串口的主控制器與多個現場從設備通過RS232、RS422、RS485等多種串行通信模式進行通信[1]。因此,將FPGA技術與通用模塊VME背板總線技術相結合[2],通過VHDL語言編程實現多種類別、不同數量、不同模式的串行接口,創新實驗設計,對培養學生的綜合應用能力,靈活掌握串行通信知識將大有裨益。
實驗硬件平臺主要包括DB25連接器、串行通信接口模塊、隔離電路、FPGA微控制器、總線驅動電路、VME背板連接器、電源模塊,如圖1所示。
DB25連接器通過串行通信接口模塊與基于FPGA的VME總線多串口卡進行通信;FPGA微控制器接收來自VME總線主模塊的指令,配置本地控制寄存器;FPGA微控制器與串行通信接口模塊之間通過光耦進行隔離,控制多個串口收發模塊發送和接收串行數據。實驗平臺中采用光耦隔離模塊構成的隔離電路,以降低外界電磁的干擾[3]。FPGA微控制器通過總線驅動電路與VME總線主模塊之間實現數據交互。串行通信接口模塊用于實現不同通信方式之間電平轉換[4]。VME總線主模塊通過設定FPGA內部的狀態寄存器改變UART的工作參數,如波特率、停止位和數據幀結束標志等,實現多種串口工作模式[5]。

圖1 基于FPGA的VME總線多串口實驗框圖
2.1 基于FPGA的多串口實現
基于FPGA的多串口,主要通過VHDL語言編程實現內核、移位寄存、信號監測、波特率產生等功能模塊[6],如圖2所示。

圖2 基于FPGA實現的多串口框圖
多串口內核模塊是系統實現的核心。
在接收過程中,信號監測模塊實時監測串行接口上的信號,當有新數據出現時立即通知內核模塊[7]。移位寄存器在內核模塊的控制和波特率發生器的驅動下,同步接收并保存端口上的串行數據。
在發送過程中,內核模塊依據發送數據的格式要求產生待發送序列,移位寄存器在波特率發生器的驅動下,將存儲在內部的數據串行輸出。波特率發生器根據波特率保持寄存器中設定的數值,以32倍波特率時鐘頻率產生時鐘信號實現精確采樣,完成數據同步。
計數模塊用于統計串行通信過程中數據傳輸的數目,并向內核模塊反饋。總線選擇器根據數據收發的不同狀態選擇對應的總線接入奇偶校驗模塊,通過組合邏輯電路實現奇偶校驗位的檢查和添加。
2.2 信號監測處理流程設計
信號監測模塊讀取控制寄存器中的參數,以32倍的波特率設置采樣時鐘,并檢測SIN線上的數據。為防止接收過程中發生誤判,只有在時鐘信號的上升沿到來時,SIN線上連續采樣出現16個低電平,才判定為正確的起始位,然后信號監測模塊通知內核,觸發接收過程,開始接收數據[8],否則重新尋找新的起始位。正常接收過程開始后,在每位數據的中間位置采樣SIN線,并把采樣結果以移位方式送入移位寄存器。接收完畢后,重置信號監測模塊,準備開始接收下一組數據[9]。
信號監測模塊數據處理流程如圖3所示。

圖3 信號監測數據處理流程圖
2.3 內核模塊數據接收的狀態機實現
內核模塊數據接收通過一個包含idle(空閑)、shift(數據接收)、parity(奇偶校驗位接收)以及stop(停止位接收)4種狀態的狀態機實現,如圖4所示。狀態機通過判定轉換條件(未檢測到起始位、檢測到起始位、未接收完全部數據、接收完成無校驗位、接收完成驗證校驗位)的成立,來實現各狀態之間的轉換,例如,若狀態機當前處于shift狀態,當條件“接收完成驗證校驗位”成立時,狀態機轉入parity狀態,完成該狀態下的操作。在數據接收過程中,接收電路對接收數據的有效性和接收過程進行檢查和監測,若發現停止位錯誤時,數據將被自動丟棄[10]。

圖4 內核模塊接收狀態機狀態轉換圖
2.4 內核模塊數據發送的狀態機實現
內核模塊數據發送過程通過一個包含start(起始位發送)、shift(數據位發送)、parity(奇偶校驗位發送)以及stop_1bit(1位停止位發送)、stop_2bit(2位停止位發送)共5種狀態的狀態機實現,如圖5所示。通過判斷轉換條件(THR空、THR非空、數據未全部發送、數據全部發送且有校驗位、數據全部發送且無校驗位、1位停止位、2位停止位)的成立,來實現各狀態之間的轉換,完成起始位、數據位、奇偶校驗位以及停止位的發送。例如,若狀態機當前處于shift狀態,一旦“數據全部發送有校驗位”條件成立時,狀態機即轉入parity狀態,執行該狀態下的操作。

圖5 內核模塊發送狀態機狀態轉換圖
基于FPGA的VME總線多串口實驗驗證過程如下。
多串口將接收到的串行數據存入緩沖區,遵循先來先發的原則將各個串口的數據進行串并轉換,并根據數據發送格式的要求進行發送。上位機接收到來自多串口的信號后,確定數據來源于哪一個串口,對數據譯碼處理并進行顯示。通過上下位機相互發送數據,進行誤碼率測試[11],可以驗證多串口通信及邏輯處理功能達到實驗預期目標。
基于FPGA的VME總線多串口實驗,將現場可編程門陣列技術與VME總線技術相結合,使得學生可以有效地擴展和實現已經學習過的串行通信知識。該實驗能很好地融合數字電路、微機原理與接口技術、硬件設計語言等課程知識,既有利于學生對理論知識的學習與掌握,也有利于培養學生對知識的應用能力[12],對于學生創新能力與工程實踐能力的提高將會發揮積極的作用。
References)
[1] 江朝暉,陸元洲,王鵬.電子系統設計中常用串行接口及其應用[J].教育教學論壇,2016(50):50-52.
[2] 韓記曉,萬勇利,張常江,等.基于FPGA的VME自定義總線接口設計[J].自動化技術與應用,2016(4):103-106.
[3] 康華光.電子技術基礎:模擬部分[M].6版.北京:高等教育出版社,2013.
[4] 劉先博.基于FPGA與MCU的多串口通信接口設計與實現[D].南京:南京理工大學,2014.
[5] 陳媛,王再英,彭倩,等.基于嵌入式多串口數據傳輸系統的設計與實現[J].科學技術與工程,2013,13(1):183-187.
[6] 唐明.基于FPGA與PC機串行通信UART模塊設計[D].武漢:華中師范大學,2013.
[7] 呂國成,楊延軍,王志軍.基于BeagleBone的嵌入式教學平臺研制[J].實驗技術與管理,2016,33(3):151-153.
[8] 王昱煜,張杰,侯大勇,等.基于FPGA的UART模塊設計[J].電子技術與軟件工程,2016(7):126-127.
[9] 黨俊博,李哲,李雅俊.基于FPGA的串口通信電路設計與實現[J].電子科技,2016(7):106-109.
[10] 賈亮,冀源.基于FPGA的串口通信控制器設計[J].微型機與應用,2016(22):33-35.
[11] 李盛杰.UART測試技術研究[J].計算機與數字工程,2017(3):598-602.
[12] 嚴文娟,賀國權.基于PSPICE的二階壓控電壓源低通濾波器仿真實驗研究[J].實驗技術與管理,2017,34(2):101-104.
Design on experiment of VME bus multi-serial ports based on FPGA
Wang Peng, Zhang Shihui, Ju Jing
(Department of Information Engineering, Gansu Vocational and Technical College of Communications, Lanzhou 730070, China)
In combination of the field programmable gate array technology and the VME bus technology, the innovation of the serial communication experimental design is realized. By using the VHDL programming language, the multi-baud rate, multi-data bits, multi-stop bits of various categories, the different number of serial ports are achieved, which is beneficial to train the students’ knowledge application ability and improve their engineering practical ability, and is helpful for the students to master the serial communication technology comprehensively. This design method effectively realizes the connection of the teaching content to the actual demand of the field production, and expands the depth and breadth of the practical teaching.
experiment of multi-serial ports; experimental teaching; FPGA; VME
TP23
A
1002-4956(2017)10-0143-03
10.16791/j.cnki.sjg.2017.10.035
2017-05-23
甘肅省高等學校科學研究項目(2015A-200);2016年度甘肅省高等教育內涵發展創新創業教育教學改革研究項目(2016Y-37);甘肅交通職業技術學院科學研究項目(2015Y-03)
王鵬(1978—),男,甘肅華亭,碩士,工程師,主要研究方向為計算機控制、嵌入式系統應用和物聯網應用技術.
E-mail:systemview@126.com