论文部分内容阅读
摘 要:本文利用激光在实时性、抗干扰等方面所具有的优点,提出一种基于STM32单片机,由激光作为触发信号的计时系统。在硬件部分,介绍了激光收发电路的设计,包括激光灯的原理,信号的传输处理以及STM32单片机最小系统板的设计,同时对核心器件做了具体介绍。在软件部分,主要分析单片机的串口通信协议、信号的AD采集、计时规则的设计等;而上位机显示部分软件是为有更好的人机交互界面对计时数据进行显示。
关键词:STM32单片机;激光触发;信号处理;计时系统;串口通信
随着电子行业的发展,电子设备的精密度和稳定度成为人们关注的焦点。在一些电子设备和工业用仪器上,计时系统的地位日益提升,因为它直接关系到仪器设备的精确度、性能、人机交互等。而控制信号的选择关系到一个计时系统的精确度高低和应用范围的大小。早期通过有线传输的信号因为其远程通信需要布线,成本大而且保真度低,所以被无线远距离控制系统所取代。激光有以它独有的特性:能量集中、方向性好、相干性好成为了大家所青睐的控制信号,基于STM32单片机的激光触发计时系统大大提高了计时准确率,降低了成本,实现了远距离控制。
1.激光触发计时系统的基本组成及工作原理
系统组成框图如图1-1所示,其总体设计方案主要由STM32单片机,显示模块,激光收发模块,键盘控制,报警及相应操作等部分组成。
系统工作时,接收电路上的光敏接收管感应来自发射电路的光信号,输出电压经LM358运放,放大后输入到单片机。STM32单片机在系统中起核心控制作用,整个计时规则与附加功能在其中配置。工作时,它通过比对接收到的信号和预设的阈值,判断是否触发计时,若信号超过阈值,则触发计时,计时结果通过串口显示在上位机或者LCD上。系统可通过按键复位,其控制距离可达50米以上,可设置到时报警。
2. 系统硬件电路设计
本章首先对单片机控制芯片STM32F103C8T6的功能进行了介绍,接着对系统供电电源、激光收发电路等作了详细介绍。
2.1单片机最小系统设计
本课题采用的是以STM32芯片为核心最小系统板为控制系统。其外设电路有启动模式和复位电路、晶振电路、供电电路等。
2.1.1启动模式和复位电路的设计
启动电路能增加管脚利用率,通过设BOOT0和BOOT1的值来选模式,1、0时下载代码,0、X时则启动Flash。
复位电路是在单片机受外界干扰,程序陷入死循环状态或跑飞时将程序计数器PC初始化。系统中复位电路设为按键方式复位,低电平有效。
2.1.2晶振电路的设计
晶振电路如图2-1所示,其中8MHz晶振经芯片内部锁相环放大9倍后服务于芯片,而12MHz晶振是驱动PL2303芯片的,32.768kHz是系统实时时钟。外接石英晶体及电容接在反馈回路中构成并联振荡电路。其中电容的大小会轻微影响振荡频率的高低、振荡器工作的稳定性等,故要选值合适。
2.1.3 RS232/USB转换电路的设计
转换电路原理图如图2-2所示,PL2303芯片作为USB/RS232双向转换器,一方面从主机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面从RS232外设接收数据转换为USB数据格式传送回主机,这些工作全部由器件自动完成。
2.2系统电源电路的设计
系统由串口向外设电路提供5V电压,而单片机供电则通过一个以ASM1117为核心的电压转换电路,转成3.3V对芯片进行供电,其电路原理图如图2-3所示。ASM1117是一个低漏失电压调整器,它输出电压可以为1.2V,1.8V,2.85V,3.3V等。其内部集成过热保护和限流电路,温度工作范围达到-40℃~125℃。
2.3激光发射电路的设计
激光发射电路原理图如图2-4所示,电路由电容电阻、二极管、三极管组成,调电容电阻参数,使其产生的光信号波长只需在600nm到980nm之间,就可以用以触发本系统的计时。对于准确度要求不是很高的话,该部分也可用激光笔代替。
2.4激光接收电路的设计
激光接收电路原理图如图2-5所示。激光接收模块的核心器件是一个光敏接收管和一个LM358芯片,整个电路的功能是接收前端光信号产生一个变化的电压,然后通过运放对其进行52倍放大后,传输到单片机输入端AD采样后作为计时系统的触发信号。
3 系统软件设计
本系统深入研究了STM32采集来自输入端电压,触发计时时,通过串口将计时结果用上位机显示的过程。所以系统软件主要分STM32单片机软件和上位机软件两部分。
3.1 上位机软件设计
本系统采用STM32单片机作为下位机,然后PC作为上位机,通过VC++6.0编写显示界面来显示计时结果,以方便人机交互。编写显示界面时,我们需根据需要建立相应的工程以及配置一些功能参数,再在主函数中,调用控件和编写自己需要的界面。因本系统所需实现的界面比较简单,所以只需简单地按照一般流程编写即可,其编写步骤流程图如图3-1所示。
显示界面编写完整后的效果图如图3-2所示,它接收来自下位机发送的数据在接受信息区实时显示,配有打开、关闭以及清除显示的按键控制调试界面,支持COM1-6的端口,能识别9600、57600、112500三种波特率,信息区能实时取读PC机上的日期信息来更新日历。经过测试,接收信息区能有效接收来自下位机的计时信息并且实时显示。
3.2 下位机软件设计
下位机软件可以细化为主程序、AD采集子程序、定时器和中断子程序和USART子程序等。
3.2.1 STM32主程序设计 系统软件基本思路是:系统初始化→A/D采集→判断是否大于阈值→定时器计时→串口发送,按此循环。其流程如图3-3所示,当系统上电工作时,系统开始初始化,然后各个模块开始运行。AD模块从GPIO口采集模拟信号转化后到判断指令中判断,若AD值大于设定的阈值,定时器开始工作,然后将计时结果经串口发送到PC机上,发送的频率通过中断子程序控制,计时单位可调到1ms。
3.2.2 AD采集子程序设计
ADC模块是处理信号的核心模块,它能将模拟信号转为数字信号再与所设阈值进行比较,从而决定是否触发计时。它需经初始化以及对工作模式、通道、启动方式等的设置。
3.2.3定时器和显示中断子程序设计
定时器为芯片内部自带,使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到毫秒间调整,所开启的TIM2其主要功能就是实现系统计时功能。
本系统采用定时中断0来实现对计时结果的计数并显示,每位显示间隔固定为2ms,使 结果在上位机上输出非常稳定,定时刷新显示,使得该显示子程序简单灵活,适用性广。
3.2.4 串口通信子程序设计
串口通信模块实现了PC主机和微控制器之间的通信。PC主机和微控制器之间的通信是通过共享一专用的数据缓冲区来完成,该数据缓冲区能被USB外设直接访问。两者通信是根据USB规范实现令牌分组的检测,数据收发和握手分组的处理。整个传输的格式由硬件完成,其中包括CRC的生成和校验。
4 结论
通过测试,本文设计的基于STM32单片机的激光触发计时系统性能稳定,设计电路简单实用,成本低,达到了预期的目标。其特点如下:
4.1系统采用激光作为控制信号,准确度高,可感应波段在600nm到980nm的光,触发方便并且通讯距离可达50米以上。
4.2高度集成的STM32最小系统板使得系统的外形更加灵巧美观,STM32F103C8T6作为核心处理器让系统在计时准确度和实时性上有了保证。
4.3通过PC上位机显示计时结果和一些其它附加信息,使系统运行结果更加直观和简约,用户还可以根据需要在上位机上执行相关操作,实现了人机交互。
本激光触发计时系统的设计方案,是充分从成本、体积、准确度以及人机交互等方面出发,比对了很多方案后,正式确立并通过实践验证的的,可应用于电子设备和工业用仪器上。
参考文献:
[1] 林超凡、黄继业,基于CAN总线的高分辨率工业显示屏控制器[J],电子器件,2012,35(3):361-365.
[2] 黄维通,Visual C++面向对象与可视化程序设计[M].北京:清华大学出版社,2011:3-39,81-102,198-270.
[3] 邱星武, 激光技术在材料加工领域的发展及应用[J],稀有金属与硬质合金,2010,38(1):60-63.
[4] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011:207-261.
作者简介:
林超凡,男,(1991~),浙江温州人,杭州电子科技大学电子信息学院,本科生,研究方向:现代电子和嵌入式系统集成
陈龙,男,杭州电子科技大学电子信息学院副教授
黄继业,男,杭州电子科技大学电子信息学院讲师
关键词:STM32单片机;激光触发;信号处理;计时系统;串口通信
随着电子行业的发展,电子设备的精密度和稳定度成为人们关注的焦点。在一些电子设备和工业用仪器上,计时系统的地位日益提升,因为它直接关系到仪器设备的精确度、性能、人机交互等。而控制信号的选择关系到一个计时系统的精确度高低和应用范围的大小。早期通过有线传输的信号因为其远程通信需要布线,成本大而且保真度低,所以被无线远距离控制系统所取代。激光有以它独有的特性:能量集中、方向性好、相干性好成为了大家所青睐的控制信号,基于STM32单片机的激光触发计时系统大大提高了计时准确率,降低了成本,实现了远距离控制。
1.激光触发计时系统的基本组成及工作原理
系统组成框图如图1-1所示,其总体设计方案主要由STM32单片机,显示模块,激光收发模块,键盘控制,报警及相应操作等部分组成。
系统工作时,接收电路上的光敏接收管感应来自发射电路的光信号,输出电压经LM358运放,放大后输入到单片机。STM32单片机在系统中起核心控制作用,整个计时规则与附加功能在其中配置。工作时,它通过比对接收到的信号和预设的阈值,判断是否触发计时,若信号超过阈值,则触发计时,计时结果通过串口显示在上位机或者LCD上。系统可通过按键复位,其控制距离可达50米以上,可设置到时报警。
2. 系统硬件电路设计
本章首先对单片机控制芯片STM32F103C8T6的功能进行了介绍,接着对系统供电电源、激光收发电路等作了详细介绍。
2.1单片机最小系统设计
本课题采用的是以STM32芯片为核心最小系统板为控制系统。其外设电路有启动模式和复位电路、晶振电路、供电电路等。
2.1.1启动模式和复位电路的设计
启动电路能增加管脚利用率,通过设BOOT0和BOOT1的值来选模式,1、0时下载代码,0、X时则启动Flash。
复位电路是在单片机受外界干扰,程序陷入死循环状态或跑飞时将程序计数器PC初始化。系统中复位电路设为按键方式复位,低电平有效。
2.1.2晶振电路的设计
晶振电路如图2-1所示,其中8MHz晶振经芯片内部锁相环放大9倍后服务于芯片,而12MHz晶振是驱动PL2303芯片的,32.768kHz是系统实时时钟。外接石英晶体及电容接在反馈回路中构成并联振荡电路。其中电容的大小会轻微影响振荡频率的高低、振荡器工作的稳定性等,故要选值合适。
2.1.3 RS232/USB转换电路的设计
转换电路原理图如图2-2所示,PL2303芯片作为USB/RS232双向转换器,一方面从主机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面从RS232外设接收数据转换为USB数据格式传送回主机,这些工作全部由器件自动完成。
2.2系统电源电路的设计
系统由串口向外设电路提供5V电压,而单片机供电则通过一个以ASM1117为核心的电压转换电路,转成3.3V对芯片进行供电,其电路原理图如图2-3所示。ASM1117是一个低漏失电压调整器,它输出电压可以为1.2V,1.8V,2.85V,3.3V等。其内部集成过热保护和限流电路,温度工作范围达到-40℃~125℃。
2.3激光发射电路的设计
激光发射电路原理图如图2-4所示,电路由电容电阻、二极管、三极管组成,调电容电阻参数,使其产生的光信号波长只需在600nm到980nm之间,就可以用以触发本系统的计时。对于准确度要求不是很高的话,该部分也可用激光笔代替。
2.4激光接收电路的设计
激光接收电路原理图如图2-5所示。激光接收模块的核心器件是一个光敏接收管和一个LM358芯片,整个电路的功能是接收前端光信号产生一个变化的电压,然后通过运放对其进行52倍放大后,传输到单片机输入端AD采样后作为计时系统的触发信号。
3 系统软件设计
本系统深入研究了STM32采集来自输入端电压,触发计时时,通过串口将计时结果用上位机显示的过程。所以系统软件主要分STM32单片机软件和上位机软件两部分。
3.1 上位机软件设计
本系统采用STM32单片机作为下位机,然后PC作为上位机,通过VC++6.0编写显示界面来显示计时结果,以方便人机交互。编写显示界面时,我们需根据需要建立相应的工程以及配置一些功能参数,再在主函数中,调用控件和编写自己需要的界面。因本系统所需实现的界面比较简单,所以只需简单地按照一般流程编写即可,其编写步骤流程图如图3-1所示。
显示界面编写完整后的效果图如图3-2所示,它接收来自下位机发送的数据在接受信息区实时显示,配有打开、关闭以及清除显示的按键控制调试界面,支持COM1-6的端口,能识别9600、57600、112500三种波特率,信息区能实时取读PC机上的日期信息来更新日历。经过测试,接收信息区能有效接收来自下位机的计时信息并且实时显示。
3.2 下位机软件设计
下位机软件可以细化为主程序、AD采集子程序、定时器和中断子程序和USART子程序等。
3.2.1 STM32主程序设计 系统软件基本思路是:系统初始化→A/D采集→判断是否大于阈值→定时器计时→串口发送,按此循环。其流程如图3-3所示,当系统上电工作时,系统开始初始化,然后各个模块开始运行。AD模块从GPIO口采集模拟信号转化后到判断指令中判断,若AD值大于设定的阈值,定时器开始工作,然后将计时结果经串口发送到PC机上,发送的频率通过中断子程序控制,计时单位可调到1ms。
3.2.2 AD采集子程序设计
ADC模块是处理信号的核心模块,它能将模拟信号转为数字信号再与所设阈值进行比较,从而决定是否触发计时。它需经初始化以及对工作模式、通道、启动方式等的设置。
3.2.3定时器和显示中断子程序设计
定时器为芯片内部自带,使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到毫秒间调整,所开启的TIM2其主要功能就是实现系统计时功能。
本系统采用定时中断0来实现对计时结果的计数并显示,每位显示间隔固定为2ms,使 结果在上位机上输出非常稳定,定时刷新显示,使得该显示子程序简单灵活,适用性广。
3.2.4 串口通信子程序设计
串口通信模块实现了PC主机和微控制器之间的通信。PC主机和微控制器之间的通信是通过共享一专用的数据缓冲区来完成,该数据缓冲区能被USB外设直接访问。两者通信是根据USB规范实现令牌分组的检测,数据收发和握手分组的处理。整个传输的格式由硬件完成,其中包括CRC的生成和校验。
4 结论
通过测试,本文设计的基于STM32单片机的激光触发计时系统性能稳定,设计电路简单实用,成本低,达到了预期的目标。其特点如下:
4.1系统采用激光作为控制信号,准确度高,可感应波段在600nm到980nm的光,触发方便并且通讯距离可达50米以上。
4.2高度集成的STM32最小系统板使得系统的外形更加灵巧美观,STM32F103C8T6作为核心处理器让系统在计时准确度和实时性上有了保证。
4.3通过PC上位机显示计时结果和一些其它附加信息,使系统运行结果更加直观和简约,用户还可以根据需要在上位机上执行相关操作,实现了人机交互。
本激光触发计时系统的设计方案,是充分从成本、体积、准确度以及人机交互等方面出发,比对了很多方案后,正式确立并通过实践验证的的,可应用于电子设备和工业用仪器上。
参考文献:
[1] 林超凡、黄继业,基于CAN总线的高分辨率工业显示屏控制器[J],电子器件,2012,35(3):361-365.
[2] 黄维通,Visual C++面向对象与可视化程序设计[M].北京:清华大学出版社,2011:3-39,81-102,198-270.
[3] 邱星武, 激光技术在材料加工领域的发展及应用[J],稀有金属与硬质合金,2010,38(1):60-63.
[4] 刘军.例说STM32[M].北京:北京航空航天大学出版社,2011:207-261.
作者简介:
林超凡,男,(1991~),浙江温州人,杭州电子科技大学电子信息学院,本科生,研究方向:现代电子和嵌入式系统集成
陈龙,男,杭州电子科技大学电子信息学院副教授
黄继业,男,杭州电子科技大学电子信息学院讲师