基于FPGA的多串口传输电路设计及验证

2019-12-13 07:22颜世威冯冲施展
数字技术与应用 2019年9期

颜世威 冯冲 施展

摘要:本文基于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