积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 接口设计 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
基于CH375多通道USB接口与PC机通信的实现
 
作者:杨全玖 张大伟 吕宗芳 赵书俊 吕运朋   来源:51 kaifa    点击数:436   更新时间:2007-9-1
您可以添加到网摘 让更多人关注此文章:

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

    正离子静电加速器在运转过程中会产生能量较高的γ﹑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]。用其控制高速模数转换电路,把探测器输出的模拟量转换成计算机可接收的数字量,进行存储,等待上位机的读取。




图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所示。



图3 单片机端ATmega128中断服务处理程序流程图


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


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


{


CH375_WR_CMD_PORT(CMD_GET_STATUS); //向CH375发送中断状态获取命令


InterruptStatus = CH375_RD_DAT_PORT();//获取中断状态,并通知CH375取消中断请求


// 分析中断状态,并做相应处理               


if ( InterruptStatus= =USB_INT_EP2_OUT) // 数据下传


{


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;


}


}


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

[1]



相关文章
· 采用TMS320VC5509A自带的USB接口来完成USB数据传输的方...[245]
· 基于AVR单片机的通用USB接口模块设计[286]
· 基于AVR单片机的通用USB接口模块设计[543]
· 基于CP2102/CP2103的RS232接口转换为USB接口的应用设...[472]
· 富士通选择 IDT 搜索加速器,用于下一代光网络平台[169]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM嵌入式系统基础教程(N

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
华虹NEC的0.13微米嵌入式工艺取
映绿色风潮 奇美电子在日发
尔必达注资力晶半导体新台币35亿-4
WSTS调降近三年IC市场预期&nb
Vishay 推出具有业界
具备革命性数字安全特性的英飞凌SLE
祥硕科技采用一系列 MIP
安森美半导体荣获德尔福苏州E&S优质
赛普拉斯为用于机器视觉与运动分析应用
赛普拉斯针对机器视觉与全息数据存储应
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
硬件工程师面试题及答案(模拟电...
如何在C语言中跳出多重循环?—...
ARM入门开发步骤...
linux学习点滴...
在linux上安装配置samb...
[转帖]WinCE 5 mem...
四折批发各种数码相机,摄相机等...
最低价销售各种品牌手机...
震撼出售各种品牌笔记本电脑等!...
IC design 的流程...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网