基于USB通信的科氏粉料流量测控系统设计

发布者:阳关三迭最新更新时间:2015-11-30 关键字:测控系统  通信  USB  μC/OS—II 手机看文章 扫描二维码
随时随地手机看文章
引言

目前,由北京航空航天大学与冀东发展集团有限责任公司合作研发的科氏粉料流量测控系统(以下简称“测控系统”)已经成功应用到工业现场,运行状况良好,测量精度优于±0.5%。测控系统底层和PC端上层控制软件通过RS-232串行接口通信。这样,操作者就能够方便地对测控系统的各个参数进行修改,同时研发人员在进行现场调试时进行流量数据采集,然而,基于RS-232通信的测控系统还存在一定的应用限制。

虽然测控系统的流量测量精度高,但是其控制精度并不能满足现场要求,针对于此,作者所在课题组正在开展粉料流量控制技术的相关研究工作,这就要求尽可能完整地采集流量数据,为粉料流量控制技术研究提供精确的数据支持。目前,测控系统的RS-232通信速率为9 600bps,并不能满足需求,必须通过提高通信速率实现,然而,这样会增加CPU处理数据的负担,导致通信数据不正确的情况发生,降低底层程序性能。同时RS-232串口通信为端到端传输模式,在实际运行时,上层应用程序无法对当前通信状态进行实时监测,不利于测控系统对各个设备运行状态的准确实时监测和控制。

综上所述,开发更为快速、方便、可靠的人机通信接口变得尤为重要。结合USB通信速率高、通信可靠、即插即用、成本低廉等优点,本文设计了基于USB通信的测控系统。

1 USB设备简介

USB(Universal Serial Bus,通用串行总线)设备是USB通信系统中不可或缺的部分,随着USB技术的不断发展,USB设备类型也逐渐增加,主要包括Audio设备、Communicat ion device设备、HID设备、Image设备、Printer设备、Mass storage设备、Hub设备等等。其中,HID类是比较大的一个类,属人机交互操作的设备,用于控制计算机操作的一些应用中,如USB鼠标、USB触摸板、遥控等设备。Windows操作系统自带了HID类设备的驱动程序,用户直接调用相应的API函数即可完成通信,不用开发特定的Windows驱动程序,这样能够有效缩短应用程序的开发周期。本文在测控系统中,采用HID设备进行USB通信设计。

2 测控系统USB通信设计

根据系统功能需求,测控系统可分为系统上层、系统底层、中控室和系统外设4个部分。图1为测控系统原理框图。

 

a.jpg

 

系统上层为基于C#语言的Windows应用程序,主要完成测控系统的数据交互功能。

测控系统底层为测控系统核心,主要由STM32F103VET6处理器(简称STM32)和μC/OS—II实时操作系统构成。主要通过对应的命令方式完成对外设进行控制、传感器测量信号采集、粉料流量计算与控制。

中控室为测控系统的远程监控终端,通过4~20 mA电流实现测控系统的流量监测与控制。

系统外设主要包括变频器、继电器、电动机以及各类信号终端。系统底层通过对应的命令方式对外设进行控制,或对传感器测量信号进行采集。

2.1 测控系统底层USB通信设计

STM32为ST公司推出的基于ARM Cortex-M3内核的微控制器,自带USB全速设备接口,支持USB2.0通信协议,可配置1~8个USB端点,包含512字节的SRAM数据缓冲区。因此,基于STMS2的USB通信设计可以有效简化系统硬件电路。

图2为测控系统USB接口硬件电路图。其中,JP-USBENABLE接口用于实现对测控系统USB通信功能控制,USBENABLE用于底层应用程序控制USB设备的连接状态。

 

b.jpg

 

2.1.1 HID设备内核定义

在进行USB通信设计之前,必须完成USB设备的底层驱动设计。将ST公司提供的针对于STMS2的USB固件库移植到现有工程目录中,这样只需修改库文件中关于USB设备的相关定义即可。在该库中,提供了完整的HID设备定义所需描述符,包括设备描述符、配置描述符、报告描述符、厂商字符串、产品字符串等。只需根据需要进行相关描述符的修改即可满足要求,在此,只针对设备描述符、配置描述符、报告描述符做简要介绍。

(1)设备描述符

设备描述符主要完成USB设备的基本定义,主要包括设备类、最大数据包大小、配置个数等。在这里进行如下定义:

设备类:HID设备。

最大包大小:64字节。

配置个数:1。

(2)配置描述符

配置描述符主要完成USB设备的配置定义,包括当前配置下的接口个数、接口定义、每个接口下的端点定义。在本测控系统的USB设备配置描述符中有如下定义:

接口个数:1。

接口端点个数:2(一个IN端点和一个OUT端点)。

端点最大包大小:64字节。

(3)报告描述符

HID设备要和主机进行正常通信,必须在主机对设备枚举时提供完整的通信报文描述符,主机将根据设备提供的报告描述符进行USB通信控制。在报告描述符中可以定义多个报告(输入报告、输出报告),在这里,只定义一个输入报告和一个输出报告,其中报告大小均为64字节。

2.1.2 基于μC/OS—II的USB通信设计

μC/OS—II为多任务实时操作系统,通过多任务的编程方式易于实现具有较高性能的嵌入式系统。目前测控系统包含5个任务:

CACULATE_TASK:计算任务,完成粉料流量的计算。

CTRL_TASK:控制任务,完成测控系统流量的控制。

GETWEIGHT_TASK:称重任务,读取称重仓的数据。

UART_TFASK:串口通信任务,完成串口的数据交换。

DETECT_TASK:检测任务。实时监测测控系统的工作状态。

基于此,测控系统底层应用程序新增USB通信数据接收任务USBCOMRX_TASK和数据发送任务USBCOMTX_TASK。其中,USBCOMRX_TASK任务实时接收上层应用程序下发的命令,并将命令进行解析处理;USBCOMTX_TASK任务实时将相关数据通过USB接口发送到上层应用程序。

为提高通信数据的可靠性,设计了专用的环形数据缓冲区。图3为数据缓冲区结构示意图,其最小单位为数据包。

 

c.jpg

 

在程序设计时有如下定义:

typedef struct{

//数据缓冲区

U8 DataBuffer[BUFLEN][CMDLEN];

//数据起始位置

U8 DataStart;

//数据结束位置

U8 DataStop;

//通信信号量

OS_EVENT*USB_sem;

}UsbBuffer;

缓冲区由二维数组构成,每一行代表一帧数据,由BUFLEN帧数据组成,每帧数据长度为CMDLEN。其中,DataStart指示缓冲区有效数据包的起始位置,Datastop指示缓冲区有效数据包的结束位置。USB_sem为通信所需信号量,对于接收数据缓冲区,USB接收中断服务子程序中将接收到的数据包复制到该缓冲区中,并更新DataStop值,然后通过该信号量通知USBCOMRX_TASK进行数据处理;对于发送数据缓冲区,需要通过USB接口发送数据的任务,将待发送数据填充到相应的缓冲区中,并更新DataStop值,然后利用该信号量通知USBCOMTX_TASK进行数据发送。

图4为USBCOMRX_TASK任务流程图。当任务收到接收信号量时,循环处理缓冲区中DataStart至DataStop之间的有效数据包。

 

e.jpg

 

图5为USBCOMTX_TASK任务流程图。当任务收到发送信号量时,循环发送缓冲区中Datastart至DataStop之间的有效数据包。

 

f.jpg

 

2.2 测控系统上层USB通信设计

系统上层为基于C#语言的Windows应用程序,基于此进行测控系统上层USB通信设计。测控系统上层USB通信设计主要有两个方面:USB连接状态监测和USB数据通信。

2.2.1 USB连接状态监测

USB连接状态监测主要对测控系统的连接状态进行监测,完成USB正常通信之前的准备工作。为实现USB连接状态的实时监测,采用线程的方式进行设计。

图6为USB连接状态监测线程UsbDeviceStatus流程图。USBConnected用于指示HID设备的连接状态,若目标USB设备已经连接主机,则堵塞当前线程,一旦监测到USB设备连接断开,则继续轮询主机上的HID设备。

 

g.jpg

 

2.2.2 USB数据通信

在Windows操作系统中,应用程序通过文件操作的方式使用USB设备。在USB连接状态监测线程中,如果查找到目标HID设备,会创建相应的文件操作句柄供应用程序使用。

文件的操作有4种方式:异步读、同步写、异步读和异步写。读、写文件操作即申请一次接收、发送数据操作。

在异步模式下,应用程序向USB控制器发送一次请求之后,无论请求是否成功,相应的请求函数即刻返回,将剩余的工作交由USB驱动程序完成;在同步模式下,则必须等到请求成功之后才返回。采用同步读的方式可以有效提高应用程序处理通信数据的实时性。在此采用同步读和异步写的方式进行USB通信。

采用同步读方式通信时,若底层没有数据包发送,则当前线程会处于堵塞状态,直到读取到数据线程恢复运行。在此采用线程的方式完成USB数据的同步读操作。

图7为USB接收数据线程流程图。通过ReadFile()函数的返回值即可判断USB的连接状态。表1为ReadFile()函数返回状态值对应的USB设备连接状态。

 

h.jpg

 

 

i.jpg

 

当应用程序需要通过USB总线发送数据时,首先会检测当前USB设备的连接状态,若状态为“连接正常”,则调用WriteFile()函数进行相应数据发送。

结语

根据系统功能需,完成了测控系统的USB通信功能设计,解决了如下几个问题:

①采用USB全速通信方式,通信速率高达12Mbps,较大程度提高了测控系统流量数据的采集速率,为流量控制算法研究提供了更加完整的数据支持,解决了RS-232串口通信速率低的局限性。

②增加USB通信方式,应用程序可以更加方便地监测测控系统的通信状态,有效提高通信连接和数据传输的可靠性。

③有效解决了RS-232串口通信不支持热插拔的问题,使得通信更加方便灵活。

针对于RS-232串口通信的应用局限性,进行了测控系统的USB通信设计,提高了科氏粉料流量测控系统的灵活性和应用可扩展性,在今后的市场中将具有更广阔的应用前景,同时,该测控系统的USB通信设计方法对嵌入式高速数据采集系统有_定的参考价值

关键字:测控系统  通信  USB  μC/OS—II 引用地址:基于USB通信的科氏粉料流量测控系统设计

上一篇:基于MSP430单片机的无线信号采集系统
下一篇:完美世界成为中国首家授权Enlighten全局光照技术游戏开发商

推荐阅读最新更新时间:2024-05-03 00:07

飞思卡尔已向超过60个客户提供双核MPC8641D器件样本
MPC8641D将在Multicore Expo 2007展览会上演示,EEMBC基准测试结果已可提供 德克萨斯州奥斯汀讯-2007年3月27日- 飞思卡尔将在3月27日至29日举办的第二届年度Multicore Expo博览会上展示其基于Power Architecture 技术MPC8641D双核器件的先进性能。 在此次大会上,飞思卡尔计划演示MPC8641D的均衡多重处理功能。该产品目前已开始正式发售,而且已有60多家客户开始使用。此外,飞思卡尔还将在3月27日进行一场演示,简要介绍多核器件设计选择方面的合理方法。 嵌入式微处理器基准协会(Embedded Microprocessor Benchmark Conso
[新品]
无线电通信设备的防雷措施
雷电是一种自然天气现象,如不注意防护将对人们的生命财产造成严重的危害。对于无线电通信工程而言,在进行工程设计时,尤其要把防雷设计作为重要的工作来做。 通信设备的防雷措施 一般来说,建筑物的避免雷击的途径大致有四条:1)疏导,即将雷云中的电荷疏导之大地,从而避免直接雷击或感应雷击电流流经被保护的建筑物或设备,使这些建筑物或设备免受雷击。2)隔离,即将雷电信号和被保护物隔离开来从而避免雷击。3)等位,即将铁塔地、工作地、建筑物的公共地等至于同一电位。4)消散,即释放出异性电荷和雷云中的电荷进行中和,从而阻止雷电的形成。根据以上的四种避雷途径,具体到一个无线电通信工程的防雷设计来说,其主要的防雷措施有以下几种方法。 1、 安装避雷
[模拟电子]
通信与光纤传输网
  光通讯是人类最早应用的通讯方式之一。从烽火传递信号,到信号灯﹑旗语等通讯方式,都是光通讯的范畴。但由于受到视距﹑大气衰减﹑地形阻挡等诸多因素的限制,光通讯的发展缓慢。   一、 光纤传输   直到1960年,美国科学家Maiman发明了世界上第一台激光器后,为光通讯提供了良好的光源。随后二十多年,人们对光传输介质进行了攻关,终于制成了低损耗光纤,从而奠定了光通讯的基石。从此,光通讯进入了飞速发展的阶段。   光纤传输有许多突出的优点:   1.频带宽   频带的宽窄代表传输容量的大小。载波的频率越高,可以传输信号的频带宽度就越大。在VHF频段,载波频率为48.5MHz~300Mhz。带宽约250MHz,只能传输2
[家用电子]
光<font color='red'>通信</font>与光纤传输网
2440下的USB实验
static void __irq IsrUsbd(void) { U8 usbdIntpnd, epIntpnd; U8 saveIndexReg = rINDEX_REG; //保存索引寄存器值(现场保护) usbdIntpnd = rUSB_INT_REG; //保存中断标志寄存器 epIntpnd = rEP_INT_REG; if(usbdIntpnd&SUSPEND_INT) //总线上超过 3ms 没有活动信号引起中断 { rUSB_INT_REG = SUSPEND_INT;//清除中断标志位 } if(usbdIntpnd&RESUME_INT) { rUSB_INT_REG = RESUME_INT;
[单片机]
台湾上诠光通信落户江西鹰潭 年产值3亿元
    江西上诠通信科技有限公司近日举行奠基仪式,这标志着江西上诠通信科技有限公司 光纤 器项目在鹰潭高新区经过10个月试生产后,正式落户鹰潭高新区。   江西上诠通信科技有限公司是由台湾上市企业——台湾上诠 光纤通信 股份有限公司投资,是国内首家投入光纤融烧产品研制的企业。项目分二期建设。一期投资1000万美元,占地面积40亩,建成后可实现年主营业务收入3亿元,提供就业岗位1000余个。该项目的落户将进一步推动电子信息产业向鹰潭高新区聚集,为高新区经济发展注入新的活力。
[手机便携]
关于STM32串口通信之疑惑小结
图1 如上图所示,第1420行,USART1_BASE为USART1基地址,(USART_TypeDef*) USART1_BASE 的作用是将USART1_BASE强制转换为 USART_TypeDef* 类型的指针,这条语句的整体作用是:将USART1_BASE强制转换为 USART_TypeDef* 类型的指针,然后将这个指针命名为USART1.(个人理解:USART1是一个指向USART_Typedef结构体类型的指针,即相当于USART1是一块空间的地址(首地址),在这个空间上按照 STM32的USART1寄存器地址的顺序依次排列着这个结构体的各个成员,每个结构体成员的地址(顺序)和STM32硬件上相应的寄存器地址相照
[单片机]
关于STM32串口<font color='red'>通信</font>之疑惑小结
数字信号处理器在多媒体通信中的应用
近年来多媒体技术得到了广泛的应用,在消费类和通信类产品中占据了越来越多的比重。多媒体技术得以广泛应用的一个重要基础是数字图像和数字视频的压缩编码技术的突破,使得原来无法廉价地存储、处理和传输的大数据量信息得到有效的利用。因此静止图像和视频图像的压缩编码技术,是多媒体产品中的一个非常关键的技术,也是近十多年学术和工业界非常关注的热点领越,发展非常地迅速,应用范围迅速地扩张。 为了规范多媒体信息的表示,使各生产商的产品可以互相兼容,使工业界采用尽可能先进的技术,一些国际组织结合学术界和工业界的成果,制定了一系列关于多媒体应用的标准,表1列出了有关图像、视频和多媒体终端的几个典型标准。 由于多媒体技术是发展中的新型技术,各种技术和标准的
[应用]
PN8386-5V 3A智能USB插座手机充电器方案
PN8386-5v3a充电器方案特征: ■输入电压:90~265V全电压 ■输出功率:15W ■输出电压:5V ■输出电流:3A±3% ■效 率:85.64% ■高压启动+多工作模式+同步整流技术,满足COC V5 Tier 2 ■PN8386独特PFM 工作曲线,降低变压器体积,简化EMC 设计 PN8386-5v3a充电器方案电路具有过载保护,过流保护,开环保护,以及VDD过压保护等功能,提高了整个系统的可靠性; 待机小于50mW,动态性能好,可满足六级能效,更多六级能效5v3a充电器方案
[嵌入式]
PN8386-5V 3A智能<font color='red'>USB</font>插座手机充电器方案
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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