基于USB接口的数据采集系统设计

2013-06-21 09:02张春林
长春大学学报 2013年4期
关键词:固件框图寄存器

赵 丽,张春林

(1.长春职业技术学院,长春 130033;2.中国科学院长春光学精密机械与物理研究所,长春 130033)

目前,嵌入式系统已经无处不在,运用数据采集系统可以对生产过程中的工艺参数进行监测,也可对过程参数进行记录。基于USB接口的数据采集系统设计以32位嵌入式芯片为控制核心,通过数模转换将传感器输出的模拟信号变换成数字信号,计算机对该数字信号进行相应的处理,包括逻辑判断和数学运算,最后获得需要数据。

USB(Universal Serial Bus,通用串行总线)使用方便、速度快,易于扩展,该技术将会逐渐取代传统传输方式在数据采集系统中的应用[1]。

1 总体方案设计

本系统是一种便携式数据采集系统,采用了ARM微处理器和USB2.0接口。系统硬件是在计算机基础上,搭配USB接口的下位机硬件板卡。系统硬件结构框图如图1所示。系统软件由PC的控制软件和下位机嵌入式的软件两部分组成。

外界需要测量信号经过传感器的检测,再经测量仪器放大电路的放大后,便可得到质量较高的信号,即被测信号进入下位机硬件系统。在ARM微处理器内部,将模拟信号经过AD转换变成数字信号,通过USB接口,数据被传送给上位机。上位机可对下位机进行控制及相关信息显示[2]。下位机具有较强的数据运算和处理能力,可进行数据的采集和运算,也可以响应上位机的控制指令,对系统进行基本控制。

图1 系统硬件框图

2 硬件系统设计

2.1 信息采集系统设计

系统微处理器选用了PHILIPS公司推出的16/32位RISC芯片LPC2378,数据采集系统以LPC2378为核心,配合外围电路可进行数据的采集、转换、存储、异常报警等。LPC2378芯片内部自带ADC转换器,可将外部采集到的模拟电信号转换为可以处理的数字信号,并通过LPC2378内嵌的USB微处理器来进行电信号的上传[3]。系统硬件总体结构如图2所示。

LPC2378内部的A/D转换器包含一个控制寄存器ADCR和一个数据寄存器ADDR,A/D转换器的工作方式和运行状态是由这两个寄存器来完成的。A/D转换器中设有专门的中断使能位。A/D转换开始前先写入ADCR寄存器来设置工作模式,转换结束后的数据从数据寄存器ADDR读出,该寄存器包含一个转换完成标志位DONE位和10位的转换结果。

图2 系统硬件总体结构框图

LPC2378包含一套局部总线,该总线可与片内ARM7存储器及控制器接口、一个ARM7TDMI-S CPU,该CPU能进行仿真,并包含一套AMBA高性能总线(AHB)和一套VLSI外设总线(VPB),AHB能与中断控制器接口,VPB可连接片内外设。

2.2 LPC2378ARM USB设备控制器

USB设备控制器与LPC2378 ARM内核总线之间的接口如图3所示,LPC2378 ARM USB设备控制器的结构框图清楚地显示了USB设备控制器的内部结构。

图3 LPC2378 ARM USB设备控制器结构框图

LPC2378 ARM通过相关寄存器来实现对USB设备控制器的控制。这些寄存器都工作在AHB时钟域。CPU可以直接访问这些寄存器,最小AHB时钟频率为18MHz,所有寄存器都按字地址边界对齐,32位宽。

LPC2378 ARM内部具有一个完全兼容USB2.0全速规范的USB设备控制器,为提高了芯片性价比,USB设备控制器嵌于LPC2378 ARM CPU内部[4]。

2.3 LPC2378 ARM USB硬件电路设计

LPC2378带有2个USB接口-USB1和USB2。本系统仅需要使用其中一个,即利用其中的USB1接口设计了的USB功能设备,如图4所示。

USB1的USB总线数据线为P0.29(D+)和P0.30(D-),只需将2个匹配电阻(阻值为22欧)接到这2个引脚和USB接口USB1的第三脚和第二脚即可。

图4 LPC2378 ARM USB接口电路

为有效控制主机与USB设备之间的连接,接口电路使用LPC2378 ARM的P2.9(只能使用该引脚)来实现软件连接特性。当P2.9为高电平时,主机断开与USB设备的连接,D+线断开与VDD3.3的连接;P2.9为低电平时,主机与USB设备建立连接3,D+线通过R21(1.5KΩ)上拉到VDD3。

USB1的第一引脚通过一个1kΩ的限流电阻与专用检测引脚P1.30相连接,用来检测USB线是否已经插入。

如果USB总线已经处于活跃状态,发光二极管LED2能够表征USB总线的运行状态,如USB设备枚举成功,则点亮LED2,如USB处于正常通行状态,则使LED2闪烁,如USB设备处于悬空状态或通行不正常,则熄灭LED2。

静电释放器件U6选用了PRTR5V0U2X,它是专门用于高速数据线或高频信号线的保护器件,可防止静电损坏芯片。LPC2378的USB2接口电路所接的I/O口与USB1接口电路的I/O口不同,其它用法均相同。

3 系统软件设计

3.1 LPC2378 ARM USB固件程序设计思想

尽管LPC2378 ARM内置的USB控制器已经较为智能,但是再智能的硬件也不可能满足客户的所有要求。固件程序的设计思想就是根据用户实际的需要,设计程序流程,编写软件程序,确保USB通信任务能够顺利完成。固件程序首先是完成设备配置,设备配置包括获取设备信息集、识别接口信息和获取设备路径名,其次是接收USB主控制器发来的信息,并且能够向主机发送信息。

固件程序设计包括三个层次,第一个层次是USB设备硬件抽象层,该层的全部函数用于配置LPC2378 ARM USB设备控制器;第二个层次是USB设备接口命令层,通过对相应寄存器的读/写来完成对LPC2378 ARM中USB设备控制器的访问,可采用函数程序的编写完成本层对相关寄存器的操作,协议层和应用层也能够随时调用;第三个层次是协议层,USB设备的所有请求都是协议层处理的;第四个层次是应用层,应用层基本上完成控制器的所有功能,包括抽象层、命令层、协议层的功能,也都是应用层来控制完成的。

为使USB功能设备在总线上达到最大的传输速率,才设计了固件(Fireware)程序,固件程序主要处理USB事务,这样使MCU有更多空闲时间去处理其它的工作。固件程序一般采用中断控制方式。为确保最高的传输速率和简化固件程序,当微处理器在处理前台任务的时候,后台USB的传输可同时进行[5]。

其中一个端点与前台和后台数据的交换过程如下:

(1)USB总线上的数据传输到控制器内部,制器申请中断。

(2)进入中断服务程序后,进行数据的接收并存储。

(3)退出中断程序后,前台对刚接收和存储的数据进行处理。

(4)假设要发送数据到USB主机,将数据发送到LPC2378 ARM USB发送端的缓冲器中。

3.2 上位机识别程序设计

USB HID类上位机识别过程流程如图5所示。

在应用程序可以开始与HID交换数据前,应用程序必须先识别该设备,并且读取它的报表信息,这些动作需要调用一堆的API函数[6]。应用程序应首先识别连接到系统上的HID设备,在和USB设备进行通信前,也一样要进行这些操作,包括获取设备信息集、识别接口信息和获取设备路径名及打开设备。

4 结语

基于USB 2.0的数据采集系统是一种USB接口通讯设备,能进行设备与主机的通讯,主机将本系统作为一个HID类设备使用,无需编写烦琐的驱动程序就可实现PC主机与本系统的数据通讯,因此大大缩短了开发周期,提高了开发效率。

图5 USB HID类设备的PC识别过程

[1]黄洁.基于USB2.0的数据采集系统的研究与设计[J].自动化技术与应用,2009,28(11):47-50.

[2]毕宇辉,黄成军,郭灿新,等.基于USB2.0协议的DSP高速数据采集系统的设计[J].江苏电机工程,2006,25(5):41-44.

[3]李兰,宁永海.基于CH372的USB数据采集系统的设计与实现[J].微计算机信息,2007,23(34):76-78.

[4]朱晓锦,吴小军,李帆.基于双核处理器的机敏结构振动主动控制器设计[J].计算机测量与控制,2010(2):366-369.

[5]乔鹏,葛宝臻.基于USB总线高速数据采集系统[J].电子测量技术,2003(4):13-17.

[6]谢成山,薛磊,陈家松,等.Windows环境下USB应用程序实例的开发[J].计算机工程,2004(14):196-196.

猜你喜欢
固件框图寄存器
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
电路图2017年凯迪拉克XT5
算法框图的补全
基于固件的远程身份认证
提取ROM固件中的APP
基于图表法构建《万有引力定律与航天》知识网络
一种通过USB接口的可靠固件升级技术
多路手机固件升级工具设计