微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于USB通信的多功能智能插座

基于USB通信的多功能智能插座

时间:08-02 来源:互联网 点击:


  
图1 USB接口通信电路  
  
3.3 通信系统软件设计  

3.3.1 USB设备驱动程序开发  

Windows2000提供了一些常见USB设备的驱动程序,但是要使D12构成的USB设备正常工作仍需要自己编写驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的,通常采用Windows DDK来实现。  
   
3.3.2 USB设备固件(firmware)设计  

设备固件是设备运行的核心,采用汇编语言设计。其主要功能是控制芯片PDIUSBD12接受并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等共10种USB1.1标准请求);控制芯片PDIUSBD12接受应用程序的控制指令;控制A/D模块的数据采集;通过PDIUSBD12存储数据并实时上传PC。  

下位机程序主要的工作是初始化D12,通过D12进行数据传输以及按协议对数据进行格式转换。USB单片机控制程序通常由三部分组成:第一,初始化部分,完成单片机和所有的外围电路(包括D12)的初始化;第二,主循环部分,等待来自数据采集设备或上位机的数据,并启动数据格式转换程序,进行数据通信,是固件的主体部分;第三,中断服务程序,由上位机和数据采集设备触发,进行一些低工作量的实时处理(如置相应标志位),然后在主循环部分对数据作进一步的处理。  

PDIUSBD12的初始化过程如下:  

(1) 设置地址使能;  
(2) 设置端点(EndPoint)使能(这时候LED亮);  
(3) 软断开(Disconnect);  
(4) 延时(1~2s);  
(5) 软连接(Soft Connect ,用Set Mode命令,此时LED灭);  
(6) 中断使能,等待中断。  
(7)响应来自主机的Setup包,完成枚举。步骤3~5就是利用Soft Connect TM技术,不必进行物理插拔而使主机初始化USB总线。虽然USB协议对枚举过程作了统一的规定,但是不同公司的芯片实现起来可能有所不同。USB枚举的过程实际上就是主机和USB设备的一个握手过程:主机发送出包含某个枚举请求的Setup包,USB设备响应该请求并返回必要的信息。在主机得到USB通信所需要的所有USB设备的信息之后,枚举即告结束。  

D12构成的USB设备的枚举过程如下:(1)Get Device Descriptor:主机请求代码为8006000100004000,然后89C52通过D12发送设备描述符,第一次只需发送设备描述的前8个字节,如:1201000100000010。(2)Set Address:主机请求代码为0005020000000000,说明主机设置其地址为0X02,收到该请求后D12只需使能该地址(0X82),并对控制输入端写0长度的数据。(3)读取全部Device Descriptor:主机请求代码为8006000100001200,与1不同的是此时是读取全部设备描述符,一般为18个字节,可以分为多次传输,D12发送的前8字节与1相同,后10个字节为:71048888000100000001。其中,前两个字节是厂商ID(VID),本例中的为0X0471,即分配给Philips公司的ID号。后两个字节是设备ID(PID),设计定义为0X8888。VID和PID决定了驱动程序的匹配,一定要与最后生成的主机驱动程序一致。(4)Get Config Descriptor:主机请求代码为8006000200000900,根据USB协议的定义,第四字节的0X02表明该请求是一配置描述符请求。D12发送9字节的配置描述符给主机,为09022e000101006001。(5)读取全部Config Descriptor:主机请求代码为8006000200001200,此时D12必须把包括配置描述符、接口描述符、各端点(D12为四个)的描述符在内的所有的配置情况分多次发送给主机。(6)如果以上步骤都正确,主机将找到新设备,提示安装驱动程序,否则找到未知设备,不可用。安装驱动程序后,以后的每次设备插入,枚举次序与以上步骤略有不同,之后会有Set Configuration、Get Configuration和Get Interface等调用。  

3.3.3系统应用程序设计  

PC机应用程序是该插座数据采集系统的中心,采用VC++6.0编程。其功能主要有:开启或关闭USB设备、检测USB设备、设置USB数据传输管道(pipe)、设置A/D状态和数据采集端口、实时从USB接口采集数据、存储显示并分析数据。程序主框图如图2所示:  

4.工业用的智能监测插座  

4.1 USB通信在工业现场的局限  

USB电缆的最大传输距离是5米,因此上述的USB通信方案仅适用于家庭用的监测插座。即使增加了中继或HUB,USB传输距离通常也不超过几十米,这对工业现场而言显然是太小了。目前,工业现场有大量采用RS-485传输数据的采集设备。RS-485总线传输距离可以达到1200m以上,并且可以挂接多个设备。不足之处是传输速度慢、可靠性差、需要板卡的支持、成本高、安装麻烦等。RS-485的这些缺点恰好能被USB所弥补,而USB传输距离的限制又是RS-485的优势所在。为此,我们采用一种RS-485和USB的接口转换卡来解决上述问题。  

4.2 RS-485和USB转换卡的原理与硬件电路图  

  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top