收藏本站
网站导航
联系方式
网站首页 | 杂志简介 | 论文欣赏 | 在线订阅 | 征稿启事 | 投稿须知 | 资讯速递 | 写作指南
本刊信息

主管:广西国有资产监督管理委员会
主办:广西轻工业科学技术研究院
协办:广西轻工协会
      广西酿酒协会
编辑/出版:《广西轻工业》编辑部
编委会主任:罗左青
编委会副主任:程劲芝 梁智
编委:白树雄 宋  苹 蒋敬全
      谢晓航 雷光鸿 贤章胜
主编:贤章胜
地址:广西南宁经济技术开发区
      迎凯路8号
邮编:530031
编辑部:0771-4518435
        4518909转8968
投稿信箱:qgkj@vip.126.com
网址:www.qgkjlw.com
国际标准刊号:ISSN2095—3518
国内统一刊号:CN45—1385/TS
订阅:全国各地邮局
邮发代号: 48—123
定价:人民币15元
刊期:月刊

理事单位

广西粮油科学研究所
广西大学轻工与食品工程学院
广西大学生命科学与技术学院
广西农垦糖业集团金光制糖有限公司
广西农垦糖业集团昌菱制糖有限公司
广西机械工业研究院
重庆啤酒集团柳州啤酒有限责任公司
南宁吉然节能环保技术有限公司
柳州柳连机械制造有限责任公司
南京润维热工设备有限公司
广西柳州市嘉诚汽车饰件系统有限公司
广西柳江县柳兴榨辊有限责任公司
广西南宁丰烁电力设备节能有限公司
广西都安密洛陀野生葡萄酒有限公司
广西巴马神酒业有限责任公司
广西中天领御酒业有限公司
广西北海市合浦东园家酒厂
桂林理工大学管理学院
广西工业职业技术学院   
广西农业职业技术学院
广西二轻工业技工学校
广西德保县酒厂
广西全州湘山酒厂
田阳南华纸业有限公司
广西桂平乳泉液酒业有限公司

 
首页>> 论文欣赏 >> 计算机科学与信息技术>> 正 文
 

基于USB总线的16路模拟信号巡检系统设计

2010年第2期(总第135期)
沈广鸿,孟建新,段永霞(蚌埠坦克学院,蚌埠 233050)
 
  【摘 要】 目前,USB已经广泛地应用在PC的外设上,克服传统RS232接口速率的不足,能在短时间内完成大容量的数据传输。本文设计了利用PIC16F873通过 USB接口对多路模拟信号进行采集,大大提高数据传输速度,简化接口和电缆,也为便携式系统提供了方便快捷可靠的接口解决方案。
  【关键词】  PIC16F873USB接口模拟开关巡检
 
1 引言
  PIC16F873单片机是Microchip公司生产的一款精简指令集(RISC),哈佛双总线和两级指令系统流水线结构的高性价比的8位嵌入式控制器,具有集成度高、速度快、工作电压低、功耗低、I/O直接驱动、指令简单易学易用等特点。其内置8k×14 Flash存储器,1个10位四输入通道A/D转换器,和一个UART。并可在线串行编程(ICSP),开发和使用都很方便。本系统的上位机软件采用VB6.0编程语言进行开发,面向对象和可视化编程,界面友好,特别适于在 Windows环境下图形界面和用户程序的编制,数据采集由多个以8位PIC单片机为核心的数据采集模块来完成。
 
2 系统组成和工作原理
  本系统由上位机、主控单片机和若干个数据采集模块所组成,如图1所示。上位机为一台工业控制计算机,其主要功能是通过USB串口实现和主控单片机的通信,接收采集数据和发送控制命令;将测量数据分类保存到数据库,并具有对测量结果进行多种数学分析的功能。数据采集模块中多路模拟信号的输入是通过十六选一模拟开关CD4067来选择的,单片机通过I/O口RC1~RC4来选择具体那一路输入。
1  16路模拟电压巡检系统组成框图
  主控单片机接收来自上位机的控制命令实现对各个数据模块的控制,并将各个模块发来的数据通过USB串口转发给上位机。数据采集由主控单片机和各个数据采集从机设成主从结构。采用RS-485总线进行通信。主控单片机在收到上位机的检测开始命令后,按照轮循的方式依次给各个数据采集模块发采集命令,在每发出一个采集命令后就等待接收该采集模块的采集数据,如果在等待时间内收到采集模块发回的采集数据,就将数据打包转发给上位机;如果等待超时仍然没有接收到数据就直接向下一个采集模块发采集命令,如此反复循环下去。
  各数据采集从机的软硬件构成是完全一样的,并通过RS-485总线实现和主控单片机的通信。每个数据采集从机在收到来自主控单片机的测试命令后开始对其负责测试的模拟电压值进行采样,然后将采样所得电压值打包一起发送给主控单片机。可根据需要采集的总数相应地增减数据采集从机的数量。
 
3 数据采集模块设计
  在本巡检系统中数据采集是由各个数据模块来完成。数据采集模块主要是以PIC16F873单片机为核心加一些外围电路构成如图2所示。
2  数据采集模块原理图
  现场数据采样后接入十六选一多路选择器CD4067的输入端供单片机轮询读取,数据采集模块和主控单片机之间通过485总线通信,单片机的串口输入/输出要经过MAX485进行电平转换后接到485总线上。采样速率可由主控单片机控制。CD4067输入端需加上过压隔离电路,以防输入电压超出CD4067的准许范围而损坏。
  下位机向上位机发送的数据帧格式如图3所示。 每一帧数据由20个字节组成,依次是一个字节的帧起始标志位;一个字节的数据组号;16个字节的数据;然后是一个字节的校验和,校验和是组号和16个字节的数据间相互异或的结果;最后一个字节为帧结束标志位。16个字节的数据中每个字节表示一个模拟电压值。用MSComm进行串行通信接收数据时可采用两种方式实现,一种是查询方式,另一种是事件触发方式。在本系统中选择的是事件触发方式,每当接收缓冲区中数据字节数到达20个时就触发一个接收事件。
3  下位机向上位机发送的20字节数据帧式
 
4 上位机通信程序设计
  上位机利用Visual Basic 6.0编程。VB6.0的MSComm通信控件提供了标准的事件处理函数、事件、方法。并通过控件属性简单的设置与编程, 对串口参数进行设置,就能实现串行数据的发送与接收。MSComm控件提供了一系列封装好的标准串行通信的属性和方法,使用它可以建立应用程序和串口的连接,完成串行数据的发送与接收。其初始化属性设置如下:
If MSComm1.PortOpen=True Then
MSComm1.PortOpen=False
End If
MSComm1.CommPort=CommNum ‘串口号
'9600波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings="9600,N,8,1"
MSComm1.InputLen=0
MSComm1.RThreshold=20  ‘接收数据门限
MSComm1.SThreshold=0 ‘发送完不成事件
MSComm1.InputMode=comInput ModeBinary‘通信为二进制模式
MSComm1.PortOpen=True ‘打开串口
MSComm1.InBufferCount=0 ‘清空接收缓冲区
MSComm1.OutBufferCount=0 ‘清空发送缓冲区
接收通信程序如下:
Private Sub MSComm1.OnComm()
Dim InputData() As Byte
Dim strSum As Byte
Dim i As Integer
Dim Volvalue(0 To 18) As Single
With MSComm1
Select Case CommEvent 判断通信事件
comEvReceive=20   收到20字节的数据
InputData = Input  读接收缓冲区
If InputData(0)=253 And InputData(18)=237 Then‘判断收到的帧格式正确否
For i = 1 To 17 Step 1
Volvalue(i) = InputData(i)
Next I
strSum = InputData(1)
For i = 2 To 17  ‘计算校验和
strSum = InputData(i) Xor strSum
Next I  ‘将接受数据校验和与发送校验和异或
If strSum = "0" Then 如果接收数据正确
Volvalue(N) = InputData(i) / 100‘换算得到电压实际值
数据处理程序
Case Else
MSComm1.InBufferCount = 0 ‘清空接收缓冲区
MsgBox "串口通信错误"
Exit Sub
End  Sub
 
  在此要注意的一点是从缓冲区读数据时,数组InputData()一定要定义成Byte类型不能为Integer或Single,因为接收模式设置为二进制方式。
 
  本文针对多路电压的检测和分析已应用于仓库恒温系统。其它类似的多点检测和控制系统亦可借鉴本系统的设计思路。
 
参考文献
[1]闫慧兰.AT89C52单片机与VB串行通信的实现[J].微计算机信息(测控自动化),2003,19(12).
[2]汉敏,冯毅.串行通信在实时数据采集中的应用[J].微机算机信息,2007,23(5):104-105.
[3]纪宗南.单片机外围器件应用丛书[M].中国电力出版社,2009.
 
作者简介:沈广鸿(1966-),男,讲师,硕士,从事电子技术研究与应用工作。
   
关于我们 | 版权声明 | 广告服务 | 网站地图 | 联系方式
Copyright© 2005 QGKJLW.COM All Rights Reserved. 版权所有.《轻工科技》编辑部
工作QQ:373180636 投稿信箱:qgkj@vip.126.com 咨询电话:0771-4518435 4518909转8968
通讯地址: 广西南宁经济技术开发区迎凯路8号《轻工科技》编辑部 邮编:530031