APP下载

USB虚拟串口通信实现

2014-12-18李智敏

电子科技 2014年3期
关键词:机系统PC机驱动程序

李智敏

(广东工业大学信息工程学院,广东广州 510006)

在嵌入式系统中,异步串行通信接口多作为标准外围设备出现。随着大量支持USB的个人电脑的普及,易于使用的接口。USB接口逐步成为PC机的标准接口,使得对USB接口相关应用软件的开发和外围设备的研究显得越来越重要[1]。

本文中的智能家居控制系统采用基于USB的虚拟串口同中心汇聚节点通信,中心汇聚节点采用意法半导体公司STM8S103系列微处理器,实现数据的接收与发送。上位机系统控制软件在Windows环境下通过VC++6.0编程开发,基于USB的虚拟串口具有传输数据稳定、安装简便、即插即用等特点[2]。

1 控制系统总体设计

系统总体结构如图1所示,主要由3部分组成,基于PC机的上位机系统控制软件、中心汇聚节点和各家电子设备节点。中心汇聚节点和各家电子设备节点均搭载433无线通信模块。各家电子设备节点可以根据自身设备的状态信息,整合成一定格式的数据帧,经433无线模块将数据信息传送给中心汇聚节点,而后通过基于USB的虚拟串口将数据转发给上位机系统控制软件,上位机软件实时显示家电子设备的状态信息[3]。同样,当用户需要控制和管理家电设备时,控制指令经虚拟串口和433无线模块将指令下发至相应家电设备,根据指令执行相应操作[4]。

图1 控制系统结构示意图

2 虚拟串口硬件电路设计

2.1 芯片简介

CH341是一种高度集成的USB总线转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。在异步串口方式下,CH341提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。具备USB全速接口,兼容USB V2.0,外围器件简单,只需晶振和电容。完全兼容计算机端Windows操作系统下的串口应用程序。硬件全双工串口,内置收发缓冲区,支持通讯速率50 bit·s-1~2 Mbit·s-1和5、6、7 或者 8 位数据位、奇校验、偶校验、空白、标志以及无校验、串口发送使能、串口接收就绪等传输速率控制信号和MODEM联络信号。

2.2 串口硬件电路设计

USB转虚拟串口部分电路主要由CH341和STM8S103构成,其电路原理如图2所示,设备采用USB总线供电方式,时钟电路由12 MHz晶振搭配2个20 pF电容构成,将CH341芯片的SDA和SCL引脚悬空,从而使其工作于异步串行口模式,采用常用的三线式串口通信方式,将CH341芯片的RXD、TXD、GND引脚分别于单片机STM8S103的TXD、RXD和GND引脚相连。在USB接口的电源端连接一个磁珠,以减少PC机与设备的干扰,同时在电源端增加去耦和旁路电容,以提高设备的抗干扰能力[2]。

图2 虚拟串口部分电路图

3 上位机系统软件设计

3.1 USB转虚拟串口驱动安装

当完成硬件连接后,为实现正常的串口通信,还需为PC机安装相应的驱动程序。从互联网上可下载相应芯片的驱动程序,因本设计选用USB总线转接芯片为CH341,故下载并安装对应的CH341SER驱动程序,该驱动程序支持Windows 98//XP/Win7 32位/64位等操作系统。该虚拟串口实现仿真标准串口,完全兼容计算机端 Windows操作系统环境下的串口应用程序,用户可以像访问标准串口设备一样对该虚拟串口进行通信,但实质其数据通信则是通过USB总线完成。待安装完驱动程序后,便可以对该设备进行基于串口的上位机应用程序开发[2]。

3.2 系统控制软件设计

上位机控制软件在VC++6.0环境下开发,采用VC++6.0提供的MSComm控件进行应用程序设计。MSCOM控件提供了完善的数据接收与发送功能[2],支持事件驱动和查询两种通信模式。事件驱动方式下,当有串口发生事件或错误时便响应OnComm事件处理程序;查询模式下,则通过定期查询MSComm控件的ComEvent属性变化来进行数据处理。考虑到控制系统的实时响应能力,上位机应用软件采用事件驱动方式,即当串口有数据接收时便响应OnComm事件,然后在OnComm事件处理函数中加入相应的通信处理代码。系统控制软件操作界面如图3所示。

图3 系统控制软件界面

3.2.1 通信参数设置

为保证控制系统能成功进行串口通信,系统控制软件与汇聚节点设备应设置相同的波特率、数据位等通信参数[5],此外因为 PC机为 USB总线转接芯片CH341分配的虚拟串口是不确定的,为此设计了通信参数设置对话框来对虚拟串口的通信参数进行设置,界面如图4所示。

图4 通信参数设置界面

3.2.2 通信数据处理

上位机系统控制软件主要负责用户控制指令的发送与接收,同时及时更新显示当前家用电子设备的状态信息。应用软件主要包含系统初始化程序、串口接收与发送程序和数据处理与显示程序3部分。初始化程序主要负责系统的串口通信参数配置;串口接收与发送程序则负责将数据组合成数据帧,并发送或接收汇聚节点数据帧[6];数据处理与显示程序则根据不同的数据帧进行相应处理,并及时更新对应家电子设备的控制界面,程序流程如图5所示。

图5 上位机控制系统程序流程图

4 实验验证

为进一步验证USB转虚拟串口通信在具体系统应用中的可靠性和稳定性[7],按照图1搭建测试系统,在PC机上安装好对应的USB转虚拟串口驱动程序,打开上位机系统控制软件,选择对应的串口,设置与中心汇聚节点相匹配的串口通信参数,在应用软件中选择加湿器操作界面,改变界面状态以发送控制指令,查看对应的加湿器是否执行相应的操作;通过手动改变加湿器的状态,查看上位机系统控制软件中加湿器界面状态是否及时更新,测试结果如图6所示,实验测试表明系统响应速度快、稳定性强,USB转虚拟串口通信能够满足实际控制系统的通信需求。

图6 加湿器测试界面图

5 结束语

本文设计了基于USB虚拟串口通信技术的串口通信模块,介绍了其设计方法与原理,开发了基于虚拟串口通信的上位机系统控制软件,并将其应用于智能家居控制系统。采用USB虚拟串口解决了传统串口逐渐消失、扩展性差、安装繁琐等问题[2],实验测试表明基于USB的虚拟串口具有传输速率稳定、即插即用等特点。

[1]成芳芳.基于USB虚拟串口技术的漏电保护的研究[D].天津:河北工业大学,2011.

[2]宁辉,孙学艳,刘建,等.VB6.0环境下基于USB的虚拟串口通讯实现[J].现代电子技术,2012,35(6):45 -48.

[3]韦立明.基于USB通信设备类的虚拟串口研究与设计[D].西安:西安电子科技大学,2012.

[4]涂亮,段红光.基于433无线收发模块的物联网智能家居系统设计[J].电视技术,2012,36(6):44 -46

[5]刘杰,章韵,陈建新.利用433 MHz射频通信技术实现智能家居系统[J].计算机应用,2012,32(S2):68 -72.

[6]MUHAMMADR A,MAMUN BI R,MOHDA M A.A review of smart homes- past,present and future[J].IEEE Transactions on Communication Cricuit,2012,42(6):1190 -1203.

[7]温细金,汪波,黄佩伟.智能家居网络中基于RF的信息采集系统设计[J].电视技术,2008,48(2):92 -96.

猜你喜欢

机系统PC机驱动程序
阻止Windows Update更新驱动程序
手持式触摸测试机对闸机系统的维护研究
计算机硬件设备驱动程序分析
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
排除OLT设备登录故障
经济、可靠的自动开关机系统
京石高速公路自助发卡机系统的设计与应用
VIVID3彩色超声仪结构原理及维修
后置式自动发卡机系统应用