基于USB总线通信数据采集器的设计与实现

发布者:guqian999最新更新时间:2012-11-29 来源: 21IC 关键字:USB总线  数据采集器  智能识别 手机看文章 扫描二维码
随时随地手机看文章
1 引言
在变电站和工业现场的微机监控系统中,要通过通信方式采集许多远程现场数据。目前电力系统的通信、监控和数据采集系统的一体化采用的是一种分布式的通信结构,伴随着新设备、新技术的应用,传统的对终端单元的通信和数据采集方式的缺陷日益突出,如安装麻烦,工作效率较低,适应性和可扩展性较差。电力系统所需要的主站数据采集前端子系统,应该可以智能地、高效可靠地完成与终端单元的数据采集、通信和协议解析任务,并具有良好的经济性。
2 通信数据采集器的硬件结构
通用串行总线(Universal Serial Bus,简称USB)是1995年康柏、微软、IBM、NEC等公司为了解决传统总线的不足而推广的一种新型串行通信标准。该总线接口具有安装使用方便、高带宽、易扩展等优点,已经逐渐成为现代数据传输的发展趋势。本文提出的基于USB总线的智能通信数据采集器就是将RS232、RS485与传输距离短但高速、可靠易扩展的USB有机地结合起来,构成了多点、快速、可靠、低成本的远程数据采集系统,有效地解决了传统数据采集系统的缺陷。
3 通信数据采集器硬件电路的实现
通信数据采集器的硬件电路如图1所示。图1中微控制器(MCU)采用AT89C52,该控制器具有运算速度快、兼容MCS51指令集的特点,内部集成8K flash,性价比高。为了防止外界干扰的影响,MCU与下位机通讯的接口采用光耦隔离,控制接口的隔离采用TLP521-4,串行输入输出口RXD、TXD采用6N137隔离。


考虑到现在工业领域常用的总线有RS232、RS485等,采用MAXIM公司的接收发送器MAX232、MAX485实现电平转换。与外界的接口采用光电开关,通过上位机初始化设置总线类型来选择与外界设备通信的接口方式,从而有效地避免了设置值与实际操作中接法的不一致。
USB接口采用PHILIPS的USB控制芯片PDIUSBD12,该控制芯片能够实现微控制器的并行总线到USB总线的接口功能,而且编程方便,适用于多种微控制器,内部集成实现USB功能的PLL、SIE、FIFO模块,与普通的微控制器配合就可以实现功能完备的USB外设。
与USB的连接是通过1.5kΩ上拉电阻将D+(用于高速USB器件)置为高来实现的。1.5kΩ上拉电阻集成在PDIUSBD12内部,默认状态下不与Vcc相连。连接的建立通过外部/系统微控制器发出命令来实现。这就允许系统微控制器在决定与USB建立连接之前完成初始化时序。USB总线连接可以重新初始化而不需要拔出电缆。PDIUSBD12在连接可建立之前会通过EOT-N管脚检测USB VBUS是否可用。
在以12Mb/s的速率传输数据并且与MCU的并口相连接时,存储器管理单元(MMU)和集成RAM作为和USB之间速度差异的缓冲区,这就允许MCU以它自己的速率对USB信息包进行读写。对一个微控制器而言,PDIUSBD12看起来就象一个带8位数据总线和一个地址位(占用两个位置)的存储器件,PDIUSBD12支持多路复用和非复用的地址和数据总线。本设计中采取的是多路复用的地址和数据总线,PDIUSBD12的地址锁存ALE接AT89C52的ALE,在每一下降沿关闭地址信息锁存。
直接存储器寻址(DMA)允许在PDIUSBD12的主端点和本地RAM之间实现数据块的有效自主传输而不需要本地MCU的干预。要处理任何DMA传输,本地MCU从主机接受必要的SET-UP信息并对DMA控制器的传输模式、字节计数寄存器和地址计数器进行相应的编程。在PDIUSBDl2发出请求时开始传输,在字节计数器减少为零时终止。
4 通信数据采集器的软件设计
4.1 MCU的程序设计
通信数据采集器的软件包括微控制器AT89C52的通信采集控制软件和上位机的管理软件。AT89C52主要实现终端协议的识别,对终端设备的数据采集,协议的解析以及数据向上位机的转存。由于数据采集的全过程及协议解析不
占用上位机系统的CPU时间,数据通过USB接口向上位机传输的速度也非常快,这样就把上位机从通信瓶颈中解脱出来,从而可以充分利用其资源来处理其它事务。[page]
AT89C52的控制程序分为初始化、主循环和中断服务3部分。初始化部分完成单片机和所有外围电路(包括PDIUSBD12)的初始化;主循环部分等待来自上位机的命令或来自终端设备的数据;中断服务程序完成相应的中断处理功能。下面列出了中断服务程序的处理过程:
usb_isr( )interrupt( )
{DISABLE
fn_usb_isr( );
ENABLE
}
void fn_usb_isr( )
{unsigned int i_st
bEPPflags.bits.in_isr=1;
i_st=D12_ReadInterruptRegister( );//读中断寄存器
if(i_st !=0)
{ if(i_st&D12_INT_BUSRESET)
{ bus_reset( );//总线复位处理
bEPPflags.bits.bus_reset=1;
}
if(i_st&D12_INT_EOT)
dma_eot( );//DMA结束处理
if(i_st &Dl2_INT_SUSPENDCHANGE)
bEPPflags.bits.suspend=1;
if(i_st &Dl2_INT_ENDPOIN)
ep0-txdone( );//控制端点0输入
if(i_st&D12_INT_ENDPOOUT)
ep0-rxdone( );//控制端点0输出
if(i_st&D12_INT_ENDPlIN)
epl_txdone( );//端点1输入
if(i_st&D12_INT_ENDPlOUT)
epl_rxdone( );//端点1输出
if(i_st&Dl2_INT_ENDP2IN)
main_txdone( );//主端点2输入
if(i_st&D12_INT_ENDP20UT)
main-rxdone( );//主端点2输出
}
bEPPflags.bits.in_isr=0;
}
设备安装完后准备运行前,操作人员可利用上位机管理软件提供的用户界面初始化一些系统参数,如总线类型、终端类型等。在执行对终端单元的智能识别时,MCU首先接收一个上位机客户服务软件下传的指令帧,经过确认是协议识别指令后,上传一个表示就绪的状态帧。然后,接收识别用的数据帧,经过检验,如果数据帧有错就返回相应的状态帧并等待上位机重新发出数据,如果数据正确则先返回状态帧,然后开始对终端单元的识别与数据采集。
对一个固定的终端而言,MCU发出握手信号,远方终端返回相应的信息,数据经RS232/RS485接收,经过MCU的协议解析后得到所需的纯数据,将其暂存入RAM62256中的指定地址;当上位机发出读取数据的命令后MCU将数据经PDIUSBD12传给上位机。
4.2 上位机的程序设计
从上位机来看,通信数据采集器为它的一个USB外设,因此上位机必须提供USB外设的驱动程序。上位机的管理软件包括客户服务程序和USB驱动程序。USB驱动程序(USBD)是驻留在上位机的为客户提供通用服务的软件实体,它管理主控制器上的一个或多个功能。它通过调用适当的主控制器驱动程序(HCD)将用户I/O请求包(IRP)中的数据转化为设备端点的数据,或通过回调适当的HCD将设备端点的数据转化为客户IRP中的数据。
客户服务程序是用VC++6.0编写的,主要完成数据的分析显示功能。MCU上传的数据信息经过相应的校验,如有误,则通知终端重传;如无误,则将校验后的信息转存人计算机指定的内存,并备份到相应的文档,供其他的客户服务程序使用。
USB驱动程序的编写往往是USB设备开发过程中最困难的,通常采用Windows DDK来实现。目前有许多软件厂商提供各种各样的驱动程序生成工具,如Computer ware的Driver Studio,Blue Waters的Driver Wizard等。本设计是采用Driver Studio软件生成的程序框架,添加了适当的用户代码,完成了适合于通信数据采集器的驱动程序的编写。
5 通信数据采集器与传统数据采集方式通信效率的比较
以采集欧姆龙公司的可编程逻辑控制器(PLC)为例,一次采集30个通道,每个通道16个开关量(即4个十六进制数),则有120个十六进制数需要采集和传输,加上通信协议中的其它位,一帧共有131个字符,每一个字符又按串行通信中的一帧11位来发送,则共有1441位ASCII码有待传输。若波特率设为9600b/s,则每采集一次需要用时150ms,在此期间每一帧的接收、效验工作都需CPU的介入。若以传统的方式进行数据的采集和通信,那么主机CPU在这段时间就被串行通信的事务占用而不能处理其它工作,这很耽误时间。而采用通信数据采集器代替主机来完成这一费时的工作后,数据的采集、传输以及协议的解析都不需占用主机的时间,解析后的纯数据经过PDIUS-BDl2上传也仅需很短时间即可完成(大约为0.12ms,PDIUSBD12在同步模式下的数据传输率为1Mb/s),通信效率比传统方式提高了很多倍,这样就把主机从通信瓶颈中解放出来,为主机节省了大量的时间去完成其它工作。
6 结论
本文提出的基于USB总线的智能通信数据采集器具有数据采集和通信的效率高,结构简单,运行可靠,使用方便等优点,在实际应用中取得了良好的效果。它适用于实时监控、数据采集等场合,也可以增强协议识别和协议解析功能,因而在有标准通信协议和规范化的数据格式而缺少详细技术资料的终端设备的通信中具有广泛的使用价值。
关键字:USB总线  数据采集器  智能识别 引用地址:基于USB总线通信数据采集器的设计与实现

上一篇:DeviceNet总线在智能配电网络系统中的应用
下一篇:RS-485总线理论及实际应用

推荐阅读最新更新时间:2024-05-02 22:27

AIoT创新模式开启新商机 智能感知识别技术“钱”途多
随着 机器视觉 、 深度学习 与各项感测识别软硬件技术的进展,使得IoT系统逐渐趋向人类的情感与即时反应,并且促进智能制造相关技术与产品服务的提升,以及开启更多潜在市场应用商机。 台湾工研院IEK与法国知名MEMS & Sensor前瞻技术研究顾问公司Yole Development进行国际合作,并于5/22举办[AIoT驱动智能感测识别应用商机研讨会],以期通过宏观且全面的分析,完整勾勒出AIoT趋势所驱动的智能感测识别市场的商机何在?如何慎选适合未来产业发展的技术及寻找潜力应用的关键? 工研院IEK产业分析师罗宗惠深入探讨影像识别关键技术环节,他表示在影像识别关键零组件方面,包括摄影机(Camera)、影像处理器(Image
[物联网]
威盛Mobile360 车牌识别系统,引领停车场智能化变革
相信这是每一个停车场管理者都应该关心车主关心的是什么。根据调查结果显示,车主不仅关心停车场的地点、价格和便利程度,他们也将安全性和自身获得的价值设为重要的衡量标准。威盛Mobile360 车牌识别系统(LPR)引领停车场管理系统智能化变革,帮助停车场管理者为客户提供满意、贴心,周到的服务需求。那此系统都有什么特色呢?且看下方解析。   便捷性的飞跃:1秒完成车辆出入 城市经济平稳发展,汽车几乎是每个家庭必有的出行代步工具,但是停车管理方面的问题也接踵而来。传统停车库由于出现管理难到位、吃不饱多空档、停车难等问题,已经无法满足急剧上升的人口和私家车持有量带来的停车需求。 威盛推出Mobile360 车牌识别系统搭载NV
[汽车电子]
基于USB总线和Aduc831单片机的数据采集系统的设计
   由于信息网络化的发展,经常需要将各种设备与主机相连,传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。 PCI总线虽具有高的传输速度(132Mbps),支持"即插即用"功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个)。ISA总线显然存在着同样的问题。RS-232C串行总线虽然连接简单,但其缺点是传输速度慢(56kbps). 而通用串行总线(Universal Serial Bus,简称USB)的出现能很好地解决以上这些冲突。我们利用新型高性能单片机Aduc831设计了基于USB总线的数据采集系统。 1. USB简介 1.1 USB特点     USB的英文全称为Unive
[单片机]
基于<font color='red'>USB总线</font>和Aduc831单片机的<font color='red'>数据</font>采集系统的设计
基于PIC16F87X系列单片机开发的高精度数据采集器
1ADS1210引脚及功能   ADS1210是一种高精度、宽动态范围,采用单5V电源供电,具有24位分辨率的新型A/D转换器。封装形式有18脚双列直插式和18线贴片式,引脚功能描述如表1。    ●指令寄存器(INSR)   指令寄存器是一个8位寄存器,它指明了系统是进行读操作还是写操作,并确定读/写操作的字节长度以及读/写操作寄存器的起始地址。   ●命令寄存器(CMR)   命令寄存器是ADS1210的关键,它控制着ADS1210的所有特性功能。一旦串口时钟的下降沿将数据字节的最后一位写入命令寄存器,新的模式就开始生效。命令寄存器控制ADS1210所选用的选项和操作模式,包括可编程增益放大器的增益(G)设置、增强模
[单片机]
基于PIC16F87X系列单片机开发的高精度<font color='red'>数据</font><font color='red'>采集器</font>
微软智能语音识别出错率低至5.1%,达到专业速录员水平
微软公司在当地时间周日宣布,其对话式语音识别系统的出错率达到5.1%,创下目前为止的最低水平,超过了去年微软人工智能及研究事业部一组研究人员所实现的5.9%出错率,达到了专业速录员的同等水平。在此次研究中,专业速录员具备重复收听录音等优势。下面就随手机便携小编一起来了解一下相关内容吧。 据科技博客TechCrunch北京时间8月21日报道,微软公司在当地时间周日宣布,其对话式语音识别系统的出错率达到5.1%,创下目前为止的最低水平,超过了去年微软人工智能及研究事业部一组研究人员所实现的5.9%出错率,达到了专业速录员的同等水平。在此次研究中,专业速录员具备重复收听录音等优势。 这两次研究转录的是Switchboard语料库中的录
[手机便携]
国外大学生发明出一款智能除草机器人 能有效的避开庄稼识别杂草
传统的除草方式就是用手慢慢拔,或者使用一些除 草的逐个把杂草清理干净,当然也有的农民会用一 些除草剂清理地里的杂草,虽然相对人工清理杂草来说 用除草剂比较方便,但是危害性大,环境。 随着科 技的发展,农业也走向了智能化的时代,对于给庄稼除 草这件事情,就有国外大学生发明出了一款智能的除草 机器人。这款产品可以有效的避开庄稼,识别杂草并进 行清理,可以说是一款非常便捷的智能工具。 这款除草机器人是由来自昆士兰大学的学生研发的,机 器人名字叫Agbot ll,它的除草效率是人工的五倍,一 台机器人就可以轻松完成上百亩地的除草工作。机器人 的内部加入了世界先进的智能人工系统,可以通过先 进的设备准确分辨杂草和庄稼,做到不伤害
[机器人]
摄像头识别智能车硬件系统设计
0 引言 近年来,智能车辆和智能交通已成为汽车和智能控制领域的研究热点之一。智能车即轮式移动机器人,智能车的设计涉及模式识别、传感技术、电子、控制、计算机、机械和电源等多个学科。智能小车能在非特定环境下工作,在探测、救生等方面具有广阔的应用前景,对智能循迹系统的研制和改进,对上述领域产品的研发具有推动作用。 本文以第七届飞思卡尔智能车比赛为背景,讨论摄像头识别的智能车在复杂道路条件下的运行情况。该系统采用MC9S12XS128微控制器作为核心控制器并结合OV7620图像传感器获取路况信息。微控制器输出三路PWM信号,其中两路用来控制车速,一路用来控制舵机的方向。三路信号均通过调节PWM信号的占空比,来控制直流电机的正转、反
[单片机]
摄像头<font color='red'>识别</font>的<font color='red'>智能</font>车硬件系统设计
法国智能卡和身份识别行业发展和创新现状
  非接触式身份识别和交易技术(NFC,“近距离无线通信”)在2010年全球市场上得到了迅猛发展,并于2011年继续保持增长势头。根据Eurosmart的统计,2011年全球使用的“智能安全设备”(非接触式智能卡)总计近610万张,主要应用于电信(微处理器芯片卡 - 460万张)、金融和支付服务(100万张)及护照、身份证和医疗保健卡(电子政务和电子医疗保健 - 22万张)领域,其余广泛分布于各种应用,特别是交通运输(车票、过路费等)和付费电视。   在这个领域专长的知名法国公司包括位于普罗旺斯艾克斯的Inside Contactless,卡昂创新产业群TES(安全电子交易)的成员,其收购了爱特梅尔(ATMEL)的SMS(安全
[安防电子]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved