顏世威 馮沖 施展



摘要:本文基于FPGA設計了一組串口電路系統,利用該系統可實現微控制器的串行數據通信接口的擴展需求。為驗證該串口電路系統的功能,還基于單片機STC12C5A60S2設計了手機遙控MP3音頻播放系統。經測試,單片機利用FPGA串口電路可控制MP3音樂播放,證明FPGA串口電路實現控制指令傳輸功能。該工作為單片機的多串口擴展提供依據,促進單片機系統方案的多樣性。
關鍵詞:FPGA;VERILOG;UART;MP3
中圖分類號:TN79+1 文獻標識碼:A 文章編號:1007-9416(2019)09-0134-03
0 引言
如今,單片機已經在很多領域得到應用,如科研事業,醫療設備,教育事業甚至于人們日常使用的家用電器等[1]。串行口是單片機中一種常用的利用串行通信實現數據傳輸的工具,它具有很多優越的性能,如對硬件資源的占用率較低、通信成本可以得到控制、通信設備相對簡單、便于維護等。因此,單片機系統中均配備串口資源供開發者使用[2]。但是,通常的單片機串口資源數量不多[3-4]。以STM32F4系列單片機為例,其家族成員擁有串口最多的也只有4-5個[5],導致在一些需要大量串口的項目開發中得不到有效的硬件支持。針對這一問題,本文基于FPGA設計了一組串口電路系統,實現微控制器的串行數據通信接口的擴展需求。其中,串口利用verilog語言在Xilinx芯片XC7A100TFGG484-1中實現,并搭建STC12C5A60S2單片機為控制器的音頻播放系統對串口系統進行功能測試。
1 FPGA串口通信模塊設計
1.1 FPGA串口模塊框架
本設計采用依元素科技有限公司的Minisys實驗板為硬件平臺,其核心芯片為Xilinx Artix-7TM系列FPGA(XC7A100T FGG484C-1)為主芯片[6]。串口電路設計采用Verilog語言編寫,并在Vivado環境中進行仿真和綜合。
如圖1所示,1對1形式的uart擴展電路包括兩個uart設計單元,在FPGA內部兩個uart單元的TX和RX信號是交叉連接的。每個uart單元采用FIFO、波特率發生電路及相應的控制信號電路(如en、rst等)構成,為了便于測試還設置了數碼管顯示單元。
1對多形式的uart擴展電路如圖2所示,左側uart負責接收數據,右側uart負責發送數據,通過增加右側uart單元的數量,可以實現一對多的數據傳輸。
1.2 uart模塊設計
uart模塊是通過調用vivado中IP核中的2個FIFO做出的串口。如圖3所示,uart通過rx_pin接收到的數據存儲于左側FIFO中,將要發送的數據通過tx_send_data存儲于右側FIFO中,再經tx_out發送出去。其余的buf信號、非空信號、使能信號等信號是多個uart互相連接,實現串口拓展所使用的功能信號。
此外,為了方便測試,另設計了sig模塊和data_show模塊。sig模塊主要用來對信號做定義、檢測,內部分為五部分,分別是總復位,總使能,波特率生成模塊,高低電平檢測模塊,還有數據的發送和接收模塊。該模塊會檢測rst、en、rx_pin、get_btn、send_btn五個引腳的電平。當檢測到rst為高電平時系統復位,en為高電平系統才會運行,rx_pin為高電平說明有數據進入uart,get_btn為高電平數據存入存儲器,send_btn為高電平數據經tx_pin發送出去。data_show 模塊連接了FPGA實驗板上的數碼管,可以將uart發送或接收的數據顯示在數碼管上,以便電路系統的調試。
2 UART測試系統設計
2.1 測試系統框圖
為了對UART的數據傳輸功能進行測試,本文設計了一個手機遙控音頻播放系統,該系統利用單片機解碼通過藍夜接收的遙控指令,并利用串口控制音樂播放單元完成音樂播放,其中串口控制電路通過UART擴展實現控制多個音樂播放模塊同時播放音樂,如圖4所示。
2.2 測試系統硬件設計
2.2.1 單片機擴展接口設計
該模塊采用STC12C5A60S2單片機,此單片機具有兩個串口,分別是P3.0、P3.1和P3.6、P3.7,利用串口P3.0、P3.1連接藍牙模塊獲取手機遙控指令,串口P3.6、P3.7用于連接UART擴展電路,實現一對多的數據傳輸。
音樂播放采用MP3-TF-16P模塊實現,該模塊通過串口接收音樂播放、音量調整、樂曲調整等指令,模塊中安裝的TF卡用于存儲播放的應用,音樂類型包括MP3、WAV、WMA。模塊有兩種讀取方式:一種是讀文件地址(按存放順序,只限于根目錄),一種是讀文件名字(只要按芯片要求來命名歌曲名字,限于文件夾)。在本次設計中我們選用第一種讀取方式。將模塊RX、TX接至PCB板上跳線端子,利用短接帽與FPGA拓展出的串口連接。
藍牙無線傳輸模塊采用的是HC-05主從一體藍牙,該模塊用于實現兩個控制器之間的數據通信。手機與主藍牙模塊連接發送指令,從藍牙模塊與另一塊單片機連接接收指令。利用手機與藍牙配對實現智能互聯,可以通過手機APP發送指令,藍牙將接收到的指令發送給微控制器,控制MP3模塊播放音樂。我使用該模塊通過AT指令將藍牙配置為從模式任意地址連接,上電后就可以通過手機的藍牙串口助手連接了。
2.2.2 單片機系統原理圖
根據上述要求設計得到測試系統原理圖如圖5所示,焊接完成后實物圖如圖6所示。
2.3 系統程序設計
單片機主程序里有三個子函數,分別為串口初始化函數Sys_Init,延時函數delay_Nms和數據發送程序HC05Action。通過一個while循環,不斷調用HC05Action()子程序,實現數據掃描傳輸功能。程序框圖如圖7所示。
3 系統調試
串口通信模塊搭建完成后,通過vivado仿真器對其進行仿真測試結果如圖8所示,可以看到該模塊運轉正常,各參數同仿真文件內設定一致。
將串口通信模塊通過CH340與電腦串口調試助手連接,實際測試串口模塊正常。
將串口通信模塊和UART測試系統連接后實物圖如圖9所示,電壓大小符合識別要求,揚聲器播放音樂,整個電路系統測試成功。
4 結語
本文系統由FPGA串口通信模塊和UART測試系統模塊組成。預計實現功能:(1)微控制器的串行數據通信接口的擴展;(2)驗證FPGA串口電路實現控制指令傳輸功能(即通過手機控制實現音頻播放)。目前,兩部分功能均已實現,各模塊運作穩定。
本系統主要創新點為一對多的數據傳輸控制,利用FPGA進行串口擴展。我們只進行了技術的開發實現,該技術的應用層面十分的廣泛。本文設計并驗證了一對一的uart的電路擴展,在此基礎上進一步可實現一對多的uart電路擴展,為電子設計工程師提供參考。
參考文獻
[1] 殷秀壯,等.淺析單片機技術的發展與應用[J].南方農機,2018,49(11):152.
[2] 袁浩然,等.單片機的高效串行通信研究[J].中國高新區,2018(04):163.
[3] 李響,等.淺析PLC與單片機串口通信的實現[J].南方農機,2018,49(11):249.
[4] 宋睿.單片機應用系統開發現狀研究[J].科技創新與應用,2016(14):144.
[5] 孫菁.STM32實戰通關初級篇[M].北京:北京理工大學出版社,2018.
[6] 葉夫根尼·斯塔維諾夫著.FPGA高手設計實戰真經[M].朱江,譯.北京:電子工業出版社,2013.
Abstract:This paper designs a Series-port circuit system based on FPGA, which can realize the expansion requirement of serial data communication interface of MCU. In order to verify the function of the serial circuit system, a remote MP3 audio playback system based on STC12C5A60S2 is designed. After testing, the MCU can control MP3 music playing by using the serial port circuit of the FPGA, which proves that the serial port circuit of the FPGA can realize the control instruction transmission function. This work provides a basis for the expansion of multi-serial ports of single-chip microprocessors and promotes the diversity of single-chip system schemes.
Key words:FPGA;VERILOG;UART;MP3