您好,欢迎来到九壹网。
搜索
您的当前位置:首页基于CH375 多通道USB 接口与PC 机通信的实现

基于CH375 多通道USB 接口与PC 机通信的实现

来源:九壹网
基于CH375多通道USB接口与PC机通信的实现 杨全玖,张大伟,吕宗芳,赵书俊,吕运朋

(郑州大学物理工程学院,河南郑州 450052)

摘要:利用USB接口技术,采用USB模块CH375,在加速器核辐射监测系统中实现了多个探测通道USB接口与计算机通信。给出了CH375与单片机接口电路的原理简图,并详细介绍了实现多通道USB数据传输的上、下位机的程序设计。

关键词:USB接口,加速器,核辐射监测系统,多通道 中图分类号:TP39 文献标识码:B

Realization of communication Between

Multi-channel USB Interface Based on CH375 and Computer

YANG Quanjiu,ZHANG Dawei, LV Zognfang, ZHAO Shujun,LV Yunpeng

(Department of Physics, Zhengzhou University, Zhengzhou, Henan 450052)

Abstract: Making use of USB technology, adopting USB module CH375, realizing communication between USB interface of many detection channels and computer in accelerator nuclear radiation monitoring system. This paper showed the interface circuit principle diagram about connecting CH375 to chip microprocessor, and introduced procedure design of the host and slave computer which carry out Multi-channel USB data translation in detail.

Key words: USB interface,Accelerator,Nuclear Radiation Monitoring System,Multi-channel

正离子静电加速器在运转过程中会产生能量较高的γ﹑X和快中子等多种放射性辐射,对周围的环境造成污染,对生命造成危害[1]。由于其体积庞大,辐射范围广,需设计一个多探测端的多通道同步核辐射监测系统,针对加速器周围环境进行辐射防护监测。每个探测端属于一个探测通道,它们相互。各通道将采集到的数据传输给上位机(主控计算机)。上位机进行数据处理并显示各个探测端的辐射强度及吸收剂量。

若采用串口(RS232)实现多通道传输,各通道每次向上位机传输的数据容量大(16K),而串口传输速度慢,花费的时间长。在通信过程中,相应通道进入中断服务程序后,不能够再采集新的信号,更加严重地影响了系统的探测效率。于是就采用CH375构成的USB接口进行数据传输。速率可提高到1Mbit/s以上。同时USB所具有的即插即用、通用性强、易扩展、可靠性好等优点[2,3]也极大地改善了接口的使用性能。 1 CH375模块[4]简介

USB模块CH375是一个USB总线的通用设备接口芯片,用户无需编写驱动程序,内置有 USB通讯中的底层协议,完全满足USB1.1标准。具有8位数据总线(D0~D7)、地址输入(A0)、读(RD#)、 写(WR#)、片选控制线(CS#)以及中断输出(INT#),可以方便地挂接到单片机的数据总线上。当A0为低电平时选择数据端口,单片机通过8位并口对CH375进行读写数据;为高电平时选择命令端口,可以向其写入命令。

在本地端,单片机对CH375的操作是采用命令加数据的I/O操作方式,任何操作都是先发命令(其命令格式参考文献3)给CH375,然后执行数据输入输出。CH375接收到上位机发送的数据或者发送完给上位机的数据后,以中断方式通知单片机。

将CH375芯片的驱动程序、动态链接库拷贝到上位机中,利用CH375动态链接库DLL提供的API函数对其进行操作,对USB设备的通信就几乎和访问本地硬盘中的文件差不多了。 2 具有多个USB接口的多通道数据采集系统

图1是加速器的核辐射监测系统。是个具有多个USB接口的多通道数据采集系统。该系统可安装连接多个探测端(最多128个)。监测不同的放射性辐射时,装配相应的探测器。

每个探测通道的工作原理及电子线路都相同,分别连接到USB扩展卡上。多道分析器采用高性能AVR单片机ATmega128作为控制器。ATmega128运用Harvard结构概念,具有预取指令功能,机器周期为1个时钟周期,绝大多数指令为单周期指令,工作频率为16MHz时可达到16MIPS的性能[5]。用其控制高速模数转换电路,把探测器输出的模拟量转换成计算机可接收的数字量,进行存储,等待上位机的读取。

探测通道USB接口电路USB接口电路扩展卡USB接口电路USB接口电路PC机多道分析器探测器多道分析器探测器多道分析器探测器多道分析器探测器

图1加速器多通道核辐射监测系统结构图

单一探测通道,用CH375构成的USB接口电路原理如图2所示。各通道接收到上位机发出读取数据命令后,由ATmega128控制将所有探测数据通过USB接口电路传输给上位机。

图2 CH375构成的USB接口电路原理图

3 多个通道USB接口的软件设计

各通道的USB模块CH375在计算机应用层与其本地端单片机ATmega128之间提供了端对端的连接。统一采用数据加应答方式进行通信,所有的通信都由计算机应用层发起,然后以接收到单片机的应答结束。单一通道完整的通信过程包括:

① 计算机应用层按事先约定的格式将数据请求发送给CH375; ② CH375以中断方式通知单片机。

③ 单片机进入中断服务程序,获取CH375的中断状态并分析;

④ 如果是上传(上传缓冲区的数据被计算机成功读取),则释放当前USB缓冲区,然后退出中断程序;

⑤ 如果是下传(下传缓冲区成功接收到计算机发送的数据),则从数据下传缓冲区读取数据块;

⑥ 分析接收到的数据块,如果是数据请求上传命令,准备应答数据(采集数据); ⑦ 单片机将采集数据写入数据上传缓冲区中,然后退出中断程序; ⑧ CH375将采集数据返回给计算机;

⑨ 计算机应用层接收到应答数据,传输结束;

该通讯方式具有数据自动同步、程序设计简单、较好的交互性和可控性等优点。计算机定时以此方式顺次访问各通道,获取各通道采集到的数据。

3.1 单片机端的程序设计

各通道单片机端程序设计相同。ATmega128中断1(INT1)作为USB的中断入口(参考图2),采用数据加应答方式,其中断1服务处理程序设计流程图如图3所示。

USB传输

中断入口(INT1)分析CH375中断状态数据上传释放当前USB缓冲区数据下传读取下传缓冲区数据块分析接收数据块中断退出数据请求上传Y采集数据写入上传缓冲区N中断退出 图3 单片机端ATmega128中断服务处理程序流程图

采用C语言编程,编写单片机端ATmega128中断1服务处理程序的基本框架如下所示:

//USB中断入口程序 void int1_isr (void)

{

CH375_WR_CMD_PORT(CMD_GET_STATUS); //向CH375发送中断状态获取命令 InterruptStatus = CH375_RD_DAT_PORT();//获取中断状态,并通知CH375取消中断请求 // 分析中断状态,并做相应处理 {

CH375_WR_CMD_PORT( CMD_RD_USB_DATA );// 向CH375发送读数据命令 RD_Data =CH375_RD_DAT_PORT( );//从CH375下传缓冲区读取数据块 ……… //分析接收到的数据块

CH375_WR_CMD_PORT(CMD_WR_USB_DATA7); // 向CH375发送写数据命令 CH375_WR_DAT_PORT( DATA);// 将采集数据DATA写入CH375数据上传缓冲区 return; }

If(InterruptStatus= = USB_INT_EP2_IN) // 数据上传 {

CH375_WR_CMD_PORT( CMD_UNLOCK_USB );// 释放当前USB缓冲区 return; } }

中断退出if ( InterruptStatus= =USB_INT_EP2_OUT) // 数据下传

3.2 计算机端的程序设计

采用Visual C++作为计算机端应用软件的开发平台,以实现两通道USB数据传输为例,计算机端程序设计流程图如图4所示。USB设备1即指通道1;USB设备2即指通道2。

图4 计算机端两通道USB数据传输程序设计流程图

利用MFC(微软基础类)定时器函数[6],计算机定时顺序访问两通道,获取采集数据。编写计算机端定时中断处理程序的基本框架如下所示: OnTimer(UINT nIDEvent) //定时函数入口

{

if (CH375OpenDevice(0 )= =INVALID_HANDLE_VALUE) // 打开USB设备1(通道1 USB模块CH375),

返回句柄,出错无效

………

if (CH375OpenDevice(1 )= =INVALID_HANDLE_VALUE) //打开USB设备2

………

if ( CH375WriteData( 0, WriteBuf, &length) ) //发送数据请求命令给USB设备1,成功发送后返回真。WriteBuf指向放置准备写出数据的缓冲区。Length指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度。

………

if ( CH375ReadData( 0, ReadBuf, & length) ) //从USB设备1读取采集数据,成功读取后返回真。ReadBuf为指向用于保存读取数据的缓冲区。Length指向长度单元,输入时为准备读取得长度,返回后为

实际读取得长度。

………

CH375CloseDevice( 0 ); //关闭USB设备1

if ( CH375WriteData( 1, WriteBuf, &length) ) //发送数据请求命令给USB设备2

………

if ( CH375ReadData( 1, ReadBuf, & length) ) //从USB设备2读取采集数据

………

CH375CloseDevice( 1 ); //关闭USB设备2 }

4 结束语

采用CH375进行USB数据传输速率高,达到1Mbit/s以上。而且无需编写复杂的USB驱动程序,利用其动态链接库即可实现多通道USB接口与PC机通信。研发简单,易于实现,可以使数据传输系统非常方便的从RS232总线转向USB总线,弥补其速度慢的缺点,进行系统升级。并且USB所具有的各种优越性能,也必将使这种接口电路在数据传输中得到更广泛的应用。 参考文献

[1]谢一冈,陈昌,王曼,等. 粒子探测器与数据获取[M]. 北京:科学出版社, 2003. 529-532.

[2]周建斌,黄锦华. USB接口技术在核谱测量系统中的应用研究[J]. 核电子学与探测技术. 2004, 24(5). -506 -510

[3]胡荣强,郝艳杰. USB接口在数据采集系统中的应用[J]. 微计算机信息. 2005,21(1).-51-52 [4]南京沁恒电子有限公司. USB总线接口芯片CH375. http://www.Winchiphead.com, 2005 [5]宋建国. AVR单片机原理及应用[M]. 北京:北京航空航天大学出版社, 2000. 22-26 [6]David Simon, 周瑜萍,等. Visual C++ 6编程宝典[M].电子工业出版社, 2005.314-317

本文创新点:利用USB接口技术,采用USB模块CH375,在加速器核辐射监测系统中实现了多个探测通道USB接口与计算机通信,各通道数据传输速率提高到1Mbit/s以上。而且无需编写复杂的USB驱动程序,利用其动态链接库即可实现多通道USB接口与PC机通信。研发简单,易于实现,可以使数据传输系统非常方便的从RS232总线转向USB总线,弥补其速度慢的缺点,进行系统升级。

项目产生的经济效益:本文所介绍的内容是整个加速器核辐射防护监测系统中数据传输的核心部分,从经济效益角度来看,假设每年以仅生产100套核辐射防护监测系统,300套小型剂量仪,年产值可达4900万元,利润约占产值(30-40)%,估计可得1800万元左右。

作者简介:杨全玖,男,1949年9月出生。1978年7月毕业于郑州大学物理系,现任郑州大学物

理工程学院测控技术与仪表专业副教授,目前主要从事探测技术及核电子学方面的研究。

Author Resume:YANG Quanjiu, Male, September, 1949. Graduated from department of Physics, Zhengzhou University in July, 1978. Currently hold the post associate professor work in department of survey and control technology and equipment, school of physical science & technology, Zhengzhou University. At present mainly engage in study of detection technology and nuclear electronics.

联系地址:郑州市大学路75号郑州大学物理工程学院 杨全玖 邮编:450052

e-mail: yangquanjiu@zzu.edu.cn

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务