基于STM32和CH9343的手机虚拟信号源设计

2018-09-13 07:40王鹏李红波苏加斌
无线互联科技 2018年11期

王鹏 李红波 苏加斌

摘要:文章利用Android智能手机作为应用平台,通过设计信号调理电路、主控电路和CH9343主机接口电路,实现DAC数模转换,使得模拟数据按照设定参数产生波形输出,通过编写手机APP应用软件,完成波形参数输入功能。实验证明,该虚拟信号源实用新颖,使用方便。

关键词:CH9343; STM32;虚拟信号源;手机示波器

实验室信号源是电子实验中常用的仪器,目标电路通过接入信号评估测试电路参数或性能。实验用信号源往往采用交流供电,体积大,功能多,使用起来也较为复杂。本文设计了一种基于STM32和CH9343的手机配件,通过利用安卓手机和接入应用配件,制作了一款便携式虚拟信号源。该信号源具有携带方便、新颖实用、即插即用等特点,较好地解决了工程技术人员的快速测试需要。近年来,有关智能手机在虚拟信号源方面的应用,更多的只是论述硬件设计方面[1-5],较少的结合智能手机平台方面的应用设计。

1 STM32单片机

本设计采用意法半导体(STMicroelectronics,ST)公司的STM32F103RC单片机,以ARM Cortex-M3为内核的增强型32位微控制器,专门为高性能、低成本、低功耗的嵌入式应用设计。工作频率高达72 MHz,是同类产品中性能最高的;256 kB 片上FLASH ROM, 48 kB SRAM; 5个超高速USART;支持DMA操作的2通道12位同步DAC转换器;8个定时器;支持多路PWM带死区控制的通道等,其资源丰富,可以满足数据快速传输和复杂的数据运算等功能。

2 CH9343接口芯片

该芯片是沁恒公司的一个单芯片全速USB安卓主机接口芯片,符合Android开方文式配件(Android Open Accessory,AOA)规范,芯片内部配置有USB协议解析器,用于内置安卓设备对外部组件的访问。该芯片提供了 USB转GPIO,UART,SPI和I2C等多种可配置硬件接口,可方便地实现安卓设备接口的扩展,用途广泛。

3 系统硬件设计

系统硬件主要包括智能手机和信号源配件两部分。信号源配件由CH9343主机接口电路、STM32主控电路和信号调理电路组成。系统框如图1所示。

3.1 信号调理电路

信号调理电路主要用来实现信号电流放大和极性变换功能,信号调理电路如图2所示,图中给出了其中1路。输入信号uil范围为0?+3 V,输出信号uol范围为-3?+ 3 V。由前级运放进行信号的双极性变换,后级进行了 2倍增益和50Ω阻抗输出等功能。

3.2 STM32主控电路

该电路完成用户参数到高速的数模转换,以产生需求的模拟信号。主控电路如图3所示。图中ui1和ui2分别是数字模拟转换器(Digital to analog converter,DAC)通道0和通道 1的输出信号,它们分别连接至信号调理电路上。STM32控制器的串口(TXD和RXD)与CH9343芯片的扩展串口(RXD和TXD)交叉相连。

3.3 CH9343主机接口电路

STM32控制器高速串口连接至CH9343的串口上,串口采用交叉连接。CH9343芯片的USB端口信号连接至安卓手机的USB接口上。当用户设定好波形参数后,数据从手机虚拟信号源软件中下传到CH9343的USB接口电路,后由CH9343主机接口电路转发至STM32的高速串口。CH9343主机接口电路如图4所示。

4 固件程序设计

固件程序设计主要包括主程序和定时器中断程序两部分,其中主程序用于完成控制器初始化设置和数据接收功能,定时器中断程序主要完成波形产生等功能。

4.1 主程序设计

主程序主要包括初始化数据缓冲区、I/O口、串口 1、DAC模块和定时器TIM1及产生波形等。主程序主要代码如下:

int main()

{

ClearBuffer 。; //数据缓冲区清零ConfigurationPort(); //配置 I/O端口ConfigurationUart ();//配置高速串口,波特率

921600bps

ConfigurationDAC(); //配置DAC,12位分辨率ConfigurationTIMlO; //初始化定时器while(1)

4.2 定时器中断程序设计

在该子程序中,启用了定时器TIM1的中断功能。当定时时间到达设定值时,进入TIM2_IRQHandler。中断服务程序,完成一次数据DAC数据发送工作。定时周期与波形频率和周期采样点数有关,由下位机计算设置。

定时器中断服务程序主要代码如下:

void TIM2-IRQHandler(void)

{

DACSetChannel 1 Dat a(DAC-Align-l 2b-R,DA-ROMValue[0][k]); //发出通道0数据

DAC- S etChannel 1 Dat a(DAC- Align- 12b-R ,D A-ROMValue[l][k]); //发出通道 1 数据cnt++;

if(cnt>=Count)//每通道 20 个点

{

cnt=0;

flagOK=l;

……

}

}

5 应用软件设计

虚拟信号源应用软件采用Eclispe开发环境编写。沁恒公司为安卓手机用户使用外部组件提供了固件支持,只要通过CH9343的安卓Demo模板,就可方便地完成手机APP界面设计和逻辑功能编写。APP运行时,智能手机与CH9343的通信建立分4个过程:(1)检测安卓设备是否连接;(2)判断安卓设备是否支持AOA模式;(3)试图在AOA模式下启动设备;(4)支持AOA协议的情况下,建立通信连接。运行在华为安卓智能手机上的虚拟信号源软件界面如图5所示,图中通道1为双极性,幅值1.0 V,频率为1 kHz的正弦波设定情况,通道2为单极性,幅值2.0 V,频率为5 kHz的三角波设定情况。如图6所示為图沖设定参数的实测波形,上面波形为通道1波形,下面为通道2波形。由图可知本手机虚拟信号源工作效果良好。

6 结语

本文利用STM32控制器和安卓主机接口芯片,设计了一款手机虚拟信号源。该信号源创新性地把传统信号发生器和智能移动终端相结合,扩展了信号源的应用空间,是传统信号源的有利补充,给工程技术人员带来便利。实验证明,该信号源能较好地满足中低频信号的发生需要,使智能手机成为一种便携式信号源,可以较好地满足快速便捷测量需求。

[参考文献]

[1]张海鹏.简易信号发生器及手持信号检测仪[J].电子世界,2017(9):85.

[2]姜建国.基于STM32的新型信号发生器设计[J].化工自动化及仪表,2017(3):273.

[3]苏加斌,李红波.基于IAP15W和CH9343的手机虚拟示波器设计[J].电子世界,2016(5):76.

[4]牟光红.STM32的双路信号源及其配置平台设计[J].单片机与嵌入式系统应用,2014(10):37.

[5]王永胜.USB+OTG在手持数字存储示波表中的应用研究[D].成都:电子科技大学,2009.