导言
现在,由北京航空航天大学与冀东展开集团有限责任公司协作研制的科氏粉料流量测控体系(以下简称“测控体系”)现已成功运用到工业现场,运转状况良好,丈量精度优于±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为测控体系原理框图。
体系上层为依据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设备的衔接状况。
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为数据缓冲区结构示意图,其最小单位为数据包。
在程序规划时有如下界说:
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之间的有用数据包。
图5为USBCOMTX_TASK使命流程图。当使命收到发送信号量时,循环发送缓冲区中Datastart至DataStop之间的有用数据包。
2.2 测控体系上层USB通讯规划
体系上层为依据C#言语的Windows运用程序,依据此进行测控体系上层USB通讯规划。测控体系上层USB通讯规划首要有两个方面:USB衔接状况监测和USB数据通讯。
2.2.1 USB衔接状况监测
USB衔接状况监测首要对测控体系的衔接状况进行监测,完结USB正常通讯之前的准备作业。为完结USB衔接状况的实时监测,选用线程的办法进行规划。
图6为USB衔接状况监测线程UsbDeviceStatus流程图。USBConnected用于指示HID设备的衔接状况,若方针USB设备现已衔接主机,则阻塞当时线程,一旦监测到USB设备衔接断开,则持续轮询主机上的HID设备。
2.2.2 USB数据通讯
在Windows操作体系中,运用程序经过文件操作的办法运用USB设备。在USB衔接状况监测线程中,假如查找到方针HID设备,会创立相应的文件操作句柄供运用程序运用。
文件的操作有4种办法:异步读、同步写、异步读和异步写。读、写文件操作即恳求一次接纳、发送数据操作。
在异步形式下,运用程序向USB操控器发送一次恳求之后,不管恳求是否成功,相应的恳求函数立刻回来,将剩下的作业交由USB驱动程序完结;在同步形式下,则有必要比及恳求成功之后才回来。选用同步读的办法能够有用进步运用程序处理通讯数据的实时性。在此选用同步读和异步写的办法进行USB通讯。
选用同步读办法通讯时,若底层没有数据包发送,则当时线程会处于阻塞状况,直到读取到数据线程康复运转。在此选用线程的办法完结USB数据的同步读操作。
图7为USB接纳数据线程流程图。经过ReadFile()函数的回来值即可判别USB的衔接状况。表1为ReadFile()函数回来状况值对应的USB设备衔接状况。
当运用程序需求经过USB总线发送数据时,首先会检测当时USB设备的衔接状况,若状况为“衔接正常”,则调用WriteFile()函数进行相应数据发送。
结语
依据体系功用需,完结了测控体系的USB通讯功用规划,处理了如下几个问题:
①选用USB全速通讯办法,通讯速率高达12Mbps,较大程度进步了测控体系流量数据的收集速率,为流量操控算法研讨供给了愈加完好的数据支撑,处理了RS-232串口通讯速率低的局限性。
②添加USB通讯办法,运用程序能够愈加便利地监测测控体系的通讯状况,有用进步通讯衔接和数据传输的牢靠性。
③有用处理了RS-232串口通讯不支撑热插拔的问题,使得通讯愈加便利灵敏。
针关于RS-232串口通讯的运用局限性,进行了测控体系的USB通讯规划,进步了科氏粉料流量测控体系的灵敏性和运用可扩展性,在往后的商场中将具有更宽广的运用远景,一起,该测控体系的USB通讯规划办法对嵌入式高速数据收集体系有_定的参考价值。