基于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转换卡的原理与硬件电路图
电压 电流 稳压电源 电路 传感器 温度传感器 单片机 总线 USB MCU 收发器 LED 电路图 仿真 相关文章:
- 不用软件工具能开展设计吗?(02-28)
- 保护CAN总线收发器不受静电释放和瞬态电压影响的方法(03-22)
- 基于C5509A的功放闭环数字控制系统(01-28)
- HSP3824扩频通信芯片的功能及应用(04-08)
- 通信系统中超高效率Buck变换器设计考虑(05-02)
- 智能化网络家电控制中电力载波模块的设计(03-23)