APP下载

STM32单片机多串口通信仿真测试技术研究※

2015-11-23郭勇何军

单片机与嵌入式系统应用 2015年7期
关键词:接收数据发送数据中断

郭勇,何军

(南京北方信息控制集团有限公司产品研发中心,南京 211153)

STM32单片机多串口通信仿真测试技术研究※

郭勇,何军

(南京北方信息控制集团有限公司产品研发中心,南京 211153)

使用STM32单片机进行多串口通信,采用虚拟串口软件(VSPD)结合串口调试软件进行多串口通信发送和接收功能的仿真测试研究,克服了RealView软件不能仿真接收通信的缺点。介绍了虚拟串口和仿真串口的绑定方法,给出了各模块的软件代码。仿真测试结果表明,采用该方法,可以在没有硬件平台的情况下,完成基于STM32多串口收发通信的软件开发应用。

STM32;多串口;虚拟串口软件;仿真测试;串口调试软件

引 言

STM32单片机是基于高性能Cortex-M3内核的32位单片机,其外设功能强大,最大工作频率为72MHz。本文选用的STM32103VET6芯片,有5个USART、3个SPI口、2个I2C接口,便于产品与上位机的通信。采用基于库函数的编程方法,能很快地进行产品开发。

本文采用基于RealView、VSPD(虚拟串口)和串口调试软件的联合仿真调试技术,可以在没有硬件平台的情况下,完成多串口收发通信软件的开发和测试。

1 多串口通信的软件设计原理

使用STM32的USART1~USART3。在不进行引脚重映射的情况下,USART1_Tx引脚为PA9,USART1_Rx引脚为PA10,USART2_Tx引脚为PA2,USART2_Rx引脚为PA3,USART3_Tx引脚为PB10,USART3_Rx引脚为PB11。

软件的设计采用模块化,包括RCC时钟配置模块、NVIC中断向量配置模块、USART1~USART3引脚配置模块、USART1~USART3初始化模块,USART1~USART3通信模块等。软件流程图如图1所示。

1.1 RCC时钟设置模块

采用8MHz外部晶振作为PLL时钟,再倍频到72MHz。该时钟作为系统时钟,待系统时钟稳定后,再进行各模块时钟的分配。时钟初始化函数为void RCC_Configuration(void),代码如下:

图1 软件流程图

1.2 UASRT通信引脚配置模块

采用全双工通信,STM32单片机功能引脚由GPIO引脚进行映射,仅给出USART1_Tx和USART1_Rx引脚配置的软件代码,USART2 和USART3的引脚配置类似。代码如下:

1.3 NVlC中断向量配置模块

NVIC是向量中断控制器,用来控制多个中断向量的优先级,在NVIC中设置USART1中断为最高优先级,USART2次之,USART3中断优先级最低。本文设置发送为顺序发送,接收为中断响应接收。代码如下:

USART1~USART3的抢占优先级相同,USART1的从优先级值最小,所以USART1的优先级别最高。

1.4 USART的通信配置模块

采用全双工通信,对USART1进行配置,USART1的波特率为115 200b/s,数据位为8位,停止位1位,无校验位,无流量控制,接收、发送使能,采用接收中断方式,USART2和USART3的配置类似。

1.5 USART的中断接收模块

在该中断响应函数中,当USART1接收事件完成时,产生中断信号,通知微处理器进行串口通信的接收处理。

当USART2和USART3产生接收中断时,进入相应的中断函数进行处理。

2 虚拟串口和仿真串口的绑定

传统的USART调试必须有相应的开发板,连接开发板的串口和上位机的串口,开发软件RealView MDK在调试时,有3个串口的仿真输出窗口(UART#1、UART #2、UART#3),但这3个窗口只能仿真串口输出,不能仿真串口的接收通信。采用虚拟串口软件VSPD(Virtual Serial Port Driver),可以虚拟出多对串口,如图2所示。分别把每一对虚拟串口中的一个与STM32单片机的每个串口进行绑定,就可以进行串口的通信仿真测试。

图2 产生的3对虚拟串口

用VSPD软件虚拟了3对串口,分别是COM4和COM5,COM6和COM7,COM8和COM9。COM4发送数据时,COM5接收数据,反之亦然。为了仿真STM32单片机3个串口的收发通信,把UART1和COM4绑定在一起,把UART2和COM6绑定在一起,把UART3和COM8绑定在一起。因为虚拟串口COM4和COM5互相通信,所以用COM5发数据,可以模拟串口COM4的中断接收数据。配置文件为COM4_OUT.txt,把后缀名改为.ini。内容如下:

文件的作用是配置COM4的波特率为115 200b/s,8个数据位,1个停止位,无校验位。把COM4和STM32的第一个串口绑定在一起,配置COM6的波特率与COM4一样,绑定COM6和STM32的第二个串口在一起,依次类推。把COM4_OUT.ini文件放在工程文件中,编译后,就可以利用RealView MDK软件和串口调试软件进行串口的通信仿真测试。

3 USART通信发送、接收数据测试

3.1 发送数据测试

设置3个发送数组:uart1_tx[64]、uart2_tx[64]、uart3_tx[64]。因为COM4和COM5相连接,当COM4发送数据时,COM5接收数据,由图3可知,当COM4发送数组uart1_tx[64]的数据时,COM5的接收区正确显示数组uart1_tx[64]的数据。

图3 COM5接收数据测试

COM8和COM9相连,由图4可知,COM9的接收区能够正确显示数组uart3_tx[64]的数据。

图4 COM9接收数据测试

3.2 接收数据测试

用uart1_rx[64]、uart2_rx[64]、uart3_rx[64]分别模拟COM4、COM6和COM8中断接收数据,这时COM5、 COM7和COM9分别发出数据。该实验用于测试多串口中断接收通信的准确率。

COM5发送数据测试略——编者注。uart1_rx[64]正确接收到COM5发出的64个数据,表明COM4中断接收数据正确。

uart2_rx[64]正确接收到COM7发送的64个数据,表明COM6和COM7串口通信正确COM7发送数据测试略——编者注。

结 语

针对目前广泛使用的STM32单片机,提出了一种使用VSPD(虚拟串口)结合串口调试软件进行多串口收发通信的仿真测试方法。本文详细介绍了虚拟串口和仿真串口的绑定方法,给出了各模块的软件代码,并给出了实验结果。

该方法可以在没有硬件平台的条件下,精确地进行多个串口发送和接收通信的测试。测试结果表明,采用该方法可以很好地完成STM32多串口通信的测试。

编者注:本文为期刊缩略版,全文见本刊网站www. mesnet.com.cn。

[1]李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008.

[2]喻金钱,喻斌.STM32F系列ARM Cortex-M3核微控制器开发与应用[M].北京:清华大学出版社,2011.

[3]刘波文.ARM Cortex-M3应用开发实例详解[M].北京:电子工业出版社,2011.

[4]张爱民,王云沼.STM32微控制器的可靠串口通信技术研究[J].单片机与嵌入式系统应用,2013,10(2):21-24.

[5]陈宫,王三胜,张庆荣,等.基于STM32F103VCT6的微位移控制系统设计[J].现代电子技术,2012,35(3):144-147.

[6]勾慧兰,刘光超.基于STM32的最小系统及串口通信的实现[J].工业控制计算机,2012,25(9):26-29.

[7]索云天,梁龙学,林冲锋,等.基于STM32的多点温度采集系统设计[J].兰州交通大学学报,2013,32(6):61-63.

[8]薛震宇.基于虚拟串口的嵌入式系统测试卡设计[J].仪表技术,2008,10(2):54-58.

[9]孙林军,贺锋涛.基于STM32F103控制液晶的接口实现[J].电视技术,2013,37(1):77-79.

郭勇(高级工程师),主要研究方向为调制解调、信道纠错编解码、无线通信中的信号处理等;何军(高级工程师),主要研究方向为军用无线通信系统设计、军用无线组网设计等。

Research on Multi-USART Communication Simulation and Test Technology of STM32※

Guo Yong,He Jun
(Research Department of North Information Control Group Co.,Ltd.,Nanjing 211153,China)

The paper uses the STM32MCU to accomplish the multi-USART communication.It makes use of the VSPD software and USART debugging software to finish the serial communication for sending and receiving,and it overcomes the shortcoming of RealView software which can not simulate the receiving communication.The paper introduces the method of binding dummy USART and simulation USART,and gives the software codes of all modules.The simulation experimental results show that the technology can complete the software development and application based on the STM32multiport serial transceiver communications in the absence of the hardware platform.

STM32;multi-USART;VSPD;simulation test;USART debugging software

TN911.12

A

��杨迪娜

2015-01-28)

猜你喜欢

接收数据发送数据中断
低复杂度多输入多输出雷达目标角度估计方法
一种车载自组织网络的媒体接入控制协议
基于FPGA的中断控制器设计*
带标记方式的CRDSA++协议性能分析*
跟踪导练(二)(5)
千里移防,卫勤保障不中断
使用IPSec安全传输数据
基于主控同步的CAN总线多点实时数据采集技术
单片机模拟串口数据接收程序的实现及优化
基于ESPRIT的ULA波达方向估计改进算法